@@ -101,6 +101,7 @@ on_row_selected (GtkWidget *box,
101101
102102 gtk_widget_set_sensitive (widget -> remove_button , row != NULL );
103103 gtk_widget_set_sensitive (widget -> rename_button , row != NULL );
104+ gtk_widget_set_sensitive (widget -> edit_button , row != NULL );
104105}
105106
106107static void
@@ -228,7 +229,7 @@ refresh_widget (NemoTemplateConfigWidget *widget)
228229 GtkWidget * empty_label = gtk_label_new (NULL );
229230 gchar * markup = NULL ;
230231
231- markup = g_strdup_printf ("<i>%s</i>" , _ ("No templates found" ));
232+ markup = g_strdup_printf ("<i>%s</i>" , _ ("No templates found. Click New or drag a file here to create one. " ));
232233
233234 gtk_label_set_markup (GTK_LABEL (empty_label ), markup );
234235 g_free (markup );
@@ -452,6 +453,29 @@ on_rename_row_clicked (GtkWidget *button, gpointer user_data)
452453 start_renaming_selected_row (widget , row );
453454}
454455
456+ static void
457+ on_edit_template_clicked (GtkWidget * button , gpointer user_data )
458+ {
459+ NemoTemplateConfigWidget * widget = NEMO_TEMPLATE_CONFIG_WIDGET (user_data );
460+ GtkWidget * row = GTK_WIDGET (gtk_list_box_get_selected_row (GTK_LIST_BOX (NEMO_CONFIG_BASE_WIDGET (widget )-> listbox )));
461+
462+ if (row == NULL ) {
463+ return ;
464+ }
465+
466+ TemplateInfo * info = g_object_get_data (G_OBJECT (row ), "template-info" );
467+ GFile * file = g_file_new_for_path (info -> path );
468+ gchar * uri = g_file_get_uri (file );
469+ g_object_unref (file );
470+
471+ GAppLaunchContext * context = G_APP_LAUNCH_CONTEXT (gdk_display_get_app_launch_context (gdk_display_get_default ()));
472+
473+ g_app_info_launch_default_for_uri_async (uri , context , NULL , NULL , NULL );
474+ g_object_unref (context );
475+
476+ g_free (uri );
477+ }
478+
455479static void
456480on_open_folder_clicked (GtkWidget * button , NemoTemplateConfigWidget * widget )
457481{
@@ -603,6 +627,16 @@ nemo_template_config_widget_init (NemoTemplateConfigWidget *self)
603627 g_signal_connect (widget , "clicked" , G_CALLBACK (on_rename_row_clicked ), self );
604628 self -> rename_button = widget ;
605629
630+ widget = gtk_button_new_with_label (_ ("Edit" ));
631+ gtk_widget_set_tooltip_text (widget , _ ("Modify the selected template's contents" ));
632+
633+ gtk_box_pack_start (GTK_BOX (bb ),
634+ widget ,
635+ FALSE, FALSE, 0 );
636+ gtk_widget_show (widget );
637+ g_signal_connect (widget , "clicked" , G_CALLBACK (on_edit_template_clicked ), self );
638+ self -> edit_button = widget ;
639+
606640 gtk_widget_hide (nemo_config_base_widget_get_enable_button (NEMO_CONFIG_BASE_WIDGET (self )));
607641 gtk_widget_hide (nemo_config_base_widget_get_disable_button (NEMO_CONFIG_BASE_WIDGET (self )));
608642
0 commit comments