diff options
author | Ignacy Kuchciński <ignacykuchcinski@gmail.com> | 2022-08-01 22:01:05 +0200 |
---|---|---|
committer | Ignacy Kuchciński <ignacykuchcinski@gmail.com> | 2022-09-11 00:03:53 +0200 |
commit | d89a0b0742f6215883b14ac78cc4e50032bccfb1 (patch) | |
tree | 61d7c7be985b2db79956af6bd42703b91e5bd603 | |
parent | 62d9dea807f09e3887cf83120bf5a32ec25cd9ac (diff) | |
download | nautilus-gsoc-2022.tar.gz |
files-view: Allow creating new filesgsoc-2022
-rw-r--r-- | data/meson.build | 1 | ||||
-rw-r--r-- | data/templates/document.odt | bin | 0 -> 8197 bytes | |||
-rw-r--r-- | data/templates/meson.build | 9 | ||||
-rw-r--r-- | data/templates/presentation.odp | bin | 0 -> 13165 bytes | |||
-rw-r--r-- | data/templates/spreadsheet.ods | bin | 0 -> 6956 bytes | |||
-rw-r--r-- | src/nautilus-files-view.c | 27 |
6 files changed, 35 insertions, 2 deletions
diff --git a/data/meson.build b/data/meson.build index 2df5a226c..953b81408 100644 --- a/data/meson.build +++ b/data/meson.build @@ -135,4 +135,5 @@ if appstream_util.found() endif subdir('ontology') +subdir('templates') subdir('tracker') diff --git a/data/templates/document.odt b/data/templates/document.odt Binary files differnew file mode 100644 index 000000000..2a9ef52de --- /dev/null +++ b/data/templates/document.odt diff --git a/data/templates/meson.build b/data/templates/meson.build new file mode 100644 index 000000000..1b00e15ab --- /dev/null +++ b/data/templates/meson.build @@ -0,0 +1,9 @@ +templates_data = files( + 'document.odt', + 'spreadsheet.ods', + 'presentation.odp' +) + +install_data(templates_data, + install_dir: join_paths(datadir, 'nautilus', 'templates') +)
\ No newline at end of file diff --git a/data/templates/presentation.odp b/data/templates/presentation.odp Binary files differnew file mode 100644 index 000000000..6095afffb --- /dev/null +++ b/data/templates/presentation.odp diff --git a/data/templates/spreadsheet.ods b/data/templates/spreadsheet.ods Binary files differnew file mode 100644 index 000000000..16d4f2348 --- /dev/null +++ b/data/templates/spreadsheet.ods 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); |