diff options
author | waker <wakeroid@gmail.com> | 2009-08-23 18:25:33 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2009-08-23 18:25:33 +0200 |
commit | 50253414092b1aba7922e186817f9a25b02ab477 (patch) | |
tree | c650671e9ddc98e62e31996cba8a6157a0de88f6 /callbacks.c | |
parent | 7a9743ed0bb526ba6290e53a9a98b83347e6bfd7 (diff) |
some basic session management
Diffstat (limited to 'callbacks.c')
-rw-r--r-- | callbacks.c | 45 |
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; +} + |