diff options
Diffstat (limited to 'src/nautilus-files-view.c')
-rw-r--r-- | src/nautilus-files-view.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index 0b48c822e..d65d4cf58 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -350,6 +350,11 @@ static void set_search_query_internal (NautilusFilesView *files_view, static gboolean nautilus_files_view_is_read_only (NautilusFilesView *view); +static void nautilus_files_view_new_file (NautilusFilesView *directory_view, + const char *parent_uri, + const char *target_filename, + NautilusFile *source); + G_DEFINE_TYPE_WITH_CODE (NautilusFilesView, nautilus_files_view, ADW_TYPE_BIN, @@ -2068,9 +2073,26 @@ new_file_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *c NautilusFilesView *self) { NautilusFilesViewPrivate *priv; + gchar *template_name = NULL; + g_autofree gchar *template_path = NULL; + g_autoptr (GFile) template_location = NULL; + g_autofree gchar *name = NULL; + g_autoptr (NautilusFile) file = NULL; priv = nautilus_files_view_get_instance_private (self); + template_name = nautilus_new_file_dialog_controller_get_template_name (NAUTILUS_NEW_FILE_DIALOG_CONTROLLER (controller)); + name = nautilus_file_name_widget_controller_get_new_name (controller); + + if (template_name != NULL) + { + template_path = g_build_filename (NAUTILUS_DATADIR, "templates", template_name, NULL); + template_location = g_file_new_for_path (template_path); + file = nautilus_file_get (template_location); + } + + nautilus_files_view_new_file (self, NULL, name, file); + g_clear_object (&priv->new_file_controller); gtk_widget_grab_focus (GTK_WIDGET (self)); @@ -2428,6 +2450,7 @@ nautilus_files_view_new_file_with_initial_contents (NautilusFilesView *view, static void nautilus_files_view_new_file (NautilusFilesView *directory_view, const char *parent_uri, + const char *target_filename, NautilusFile *source) { NewFolderData *data; @@ -2445,7 +2468,7 @@ nautilus_files_view_new_file (NautilusFilesView *directory_view, { nautilus_files_view_new_file_with_initial_contents (directory_view, parent_uri != NULL ? parent_uri : container_uri, - NULL, + target_filename, NULL, 0); g_free (container_uri); @@ -2458,7 +2481,7 @@ nautilus_files_view_new_file (NautilusFilesView *directory_view, nautilus_file_operations_new_file_from_template (GTK_WIDGET (directory_view), parent_uri != NULL ? parent_uri : container_uri, - NULL, + target_filename, source_uri, new_folder_done, data); |