summaryrefslogtreecommitdiff
path: root/callbacks.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2009-08-23 18:25:33 +0200
committerGravatar waker <wakeroid@gmail.com>2009-08-23 18:25:33 +0200
commit50253414092b1aba7922e186817f9a25b02ab477 (patch)
treec650671e9ddc98e62e31996cba8a6157a0de88f6 /callbacks.c
parent7a9743ed0bb526ba6290e53a9a98b83347e6bfd7 (diff)
some basic session management
Diffstat (limited to 'callbacks.c')
-rw-r--r--callbacks.c45
1 files changed, 41 insertions, 4 deletions
diff --git a/callbacks.c b/callbacks.c
index 712f2feb..3bc07513 100644
--- a/callbacks.c
+++ b/callbacks.c
@@ -43,6 +43,7 @@
#include "streamer.h"
#include "progress.h"
#include "volume.h"
+#include "session.h"
#include "cvorbis.h"
#include "cdumb.h"
@@ -201,8 +202,16 @@ on_open_activate (GtkMenuItem *menuitem,
gtk_file_filter_add_pattern (flt, "*");
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dlg), flt);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dlg), TRUE);
-
- if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_OK)
+ // restore folder
+ gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dlg), session_get_directory ());
+ int response = gtk_dialog_run (GTK_DIALOG (dlg));
+ // store folder
+ gchar *folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dlg));
+ if (folder) {
+ session_set_directory (folder);
+ g_free (folder);
+ }
+ if (response == GTK_RESPONSE_OK)
{
pl_free ();
GSList *lst = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (dlg));
@@ -256,7 +265,16 @@ on_add_files_activate (GtkMenuItem *menuitem,
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dlg), flt);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dlg), TRUE);
- if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_OK)
+ // restore folder
+ gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dlg), session_get_directory ());
+ int response = gtk_dialog_run (GTK_DIALOG (dlg));
+ // store folder
+ gchar *folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dlg));
+ if (folder) {
+ session_set_directory (folder);
+ g_free (folder);
+ }
+ if (response == GTK_RESPONSE_OK)
{
GSList *lst = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (dlg));
gtk_widget_destroy (dlg);
@@ -307,7 +325,16 @@ on_add_folder1_activate (GtkMenuItem *menuitem,
gtk_file_filter_set_name (flt, "Other files (*)");
gtk_file_filter_add_pattern (flt, "*");
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dlg), flt);
- if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_OK)
+ // restore folder
+ gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dlg), session_get_directory ());
+ int response = gtk_dialog_run (GTK_DIALOG (dlg));
+ // store folder
+ gchar *folder = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dlg));
+ if (folder) {
+ session_set_directory (folder);
+ g_free (folder);
+ }
+ if (response == GTK_RESPONSE_OK)
{
gchar *folder = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dlg));
gtk_widget_destroy (dlg);
@@ -1145,3 +1172,13 @@ on_volumebar_scroll_event (GtkWidget *widget,
}
+
+gboolean
+on_mainwin_configure_event (GtkWidget *widget,
+ GdkEventConfigure *event,
+ gpointer user_data)
+{
+ session_capture_window_attrs ((uintptr_t)widget);
+ return FALSE;
+}
+