playlist open/close dialogs basic handlers added
authorMaksym Veremeyenko <verem@m1stereo.tv>
Wed, 15 Jun 2011 07:30:56 +0000 (10:30 +0300)
committerMaksym Veremeyenko <verem@m1stereo.tv>
Wed, 15 Jun 2011 07:30:56 +0000 (10:30 +0300)
src/dv1394app.c
src/dv1394app.h

index 6d0487b..6e5a2a3 100644 (file)
@@ -162,6 +162,87 @@ void on_item_quit_activate( GtkMenuItem *menuitem, gpointer user_data )
        gtk_main_quit( );
 }
 
+/** Main window - playlist open menu item selected.
+*/
+
+void on_item_open_playlist_activate( GtkMenuItem *menuitem, gpointer user_data )
+{
+       dv1394app this = user_data;
+       GtkWidget *dialog;
+
+       dialog = gtk_file_chooser_dialog_new ("Open File",
+               GTK_WINDOW (this->window),
+               GTK_FILE_CHOOSER_ACTION_OPEN,
+               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+               GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+               NULL);
+
+       gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog),
+               (this->playlist_folder)?this->playlist_folder:getenv("HOME"));
+
+       if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+       {
+               char *filename;
+
+               filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+               fprintf(stderr, "on_item_open_playlist_activate: %s\n", filename);
+
+               if ( this->playlist_folder )
+                       g_free (this->playlist_folder);
+               this->playlist_folder = filename;
+               if ( this->playlist_folder )
+               {
+                       char* e = strrchr(this->playlist_folder, '/');
+                       if(e) *e = 0;
+               }
+               fprintf(stderr, "on_item_open_playlist_activate: this->playlist_folder=[%s]\n", this->playlist_folder);
+       }
+
+       gtk_widget_destroy (dialog);
+}
+
+/** Main window - playlist save menu item selected.
+*/
+
+void on_item_save_playlist_activate( GtkMenuItem *menuitem, gpointer user_data )
+{
+       dv1394app this = user_data;
+       GtkWidget *dialog;
+
+       dialog = gtk_file_chooser_dialog_new ("Save File",
+               GTK_WINDOW (this->window),
+               GTK_FILE_CHOOSER_ACTION_SAVE,
+               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+               GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+               NULL);
+
+       gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
+
+       gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog),
+               (this->playlist_folder)?this->playlist_folder:getenv("HOME"));
+       gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Untitled document");
+
+       if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+       {
+               char *filename;
+
+               filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+               fprintf(stderr, "on_item_save_playlist_activate: filename=[%s]\n", filename);
+
+               if ( this->playlist_folder )
+                       g_free (this->playlist_folder);
+               this->playlist_folder = filename;
+               if ( this->playlist_folder )
+               {
+                       char* e = strrchr(this->playlist_folder, '/');
+                       if(e) *e = 0;
+               }
+               fprintf(stderr, "on_item_save_playlist_activate: this->playlist_folder=[%s]\n", this->playlist_folder);
+       }
+
+       gtk_widget_destroy (dialog);
+}
+
 static gboolean on_page_switch_pressed( GtkWidget *button, gpointer user_data )
 {
        dv1394app this = user_data;
@@ -401,7 +482,12 @@ dv1394app dv1394app_init( GtkWidget *window, char *instance )
 //             gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_quit_activate ), this );
 //             widget = lookup_widget( this->window, "button_quit" );
 //             gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_quit_activate ), this );
-               
+               widget = lookup_widget( this->window, "button_open_playlist" );
+               gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_open_playlist_activate ), this );
+               widget = lookup_widget( this->window, "button_save_playlist" );
+               gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_save_playlist_activate ), this );
+
+
                /* Initialise the pages. */
                dv1394app_register_page( this, page_operate_init( this ) );
                dv1394app_register_page( this, page_command_init( this ) );
index 4243601..0287e1d 100644 (file)
@@ -49,6 +49,7 @@ typedef struct
        int trim_out;
        int guard;
        int eof[16];
+       char* playlist_folder;
 }
 *dv1394app, dv1394app_t;