Skip to content

Commit 44770f8

Browse files
committed
nemo-template-config-widget: Allow editing of a template.
Add a button that launches the default app for the template to edit the file in-place (not a template copy).
1 parent 9f227e9 commit 44770f8

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

src/nemo-template-config-widget.c

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

106107
static 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+
455479
static void
456480
on_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

src/nemo-template-config-widget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ struct _NemoTemplateConfigWidget
3535
GList *dir_monitors;
3636
GtkWidget *remove_button;
3737
GtkWidget *rename_button;
38+
GtkWidget *edit_button;
3839
};
3940

4041
struct _NemoTemplateConfigWidgetClass

0 commit comments

Comments
 (0)