category: bugfix bugzilla: https://gitee.com/src-openeuler/nautilus/issues/I66CA7?from=project-issue Signed-off-by: Guangzhong Yao <yaoguangzhong@xfusion.com>
165 lines
6.3 KiB
Diff
165 lines
6.3 KiB
Diff
From dbb570fc748d0c2743c58f601fa7df54515f8ed0 Mon Sep 17 00:00:00 2001
|
|
From: yangzhuangzhuang <yangzhuangzhuang@xfusion.com>
|
|
Date: Thu, 1 Sep 2022 17:01:47 +0800
|
|
Subject: [PATCH] Right-click to add new text document function
|
|
|
|
Add the text document button and place the text document and new folder in the New button
|
|
|
|
---
|
|
po/zh_CN.po | 6 +++
|
|
src/nautilus-files-view.c | 47 +++++++++++++++++++
|
|
.../ui/nautilus-files-view-context-menus.ui | 23 +++++++--
|
|
3 files changed, 72 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/po/zh_CN.po b/po/zh_CN.po
|
|
index 7b484cf..7fbb840 100644
|
|
--- a/po/zh_CN.po
|
|
+++ b/po/zh_CN.po
|
|
@@ -5887,3 +5887,9 @@ msgstr "显示侧边栏(S)"
|
|
|
|
msgid "Sort"
|
|
msgstr "排序"
|
|
+
|
|
+msgid "_Document"
|
|
+msgstr "文本文档"
|
|
+
|
|
+msgid "_Create"
|
|
+msgstr "新建"
|
|
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
|
|
index 666fcf3..1b2cf73 100644
|
|
--- a/src/nautilus-files-view.c
|
|
+++ b/src/nautilus-files-view.c
|
|
@@ -2413,6 +2413,16 @@ nautilus_files_view_new_file (NautilusFilesView *directory_view,
|
|
g_free (container_uri);
|
|
}
|
|
|
|
+static void
|
|
+action_new_file (GSimpleAction *action,
|
|
+ GVariant *state,
|
|
+ gpointer user_data)
|
|
+{
|
|
+ g_assert (NAUTILUS_IS_FILES_VIEW (user_data));
|
|
+
|
|
+ nautilus_files_view_new_file (NAUTILUS_FILES_VIEW (user_data), NULL, NULL);
|
|
+}
|
|
+
|
|
static void
|
|
action_new_folder (GSimpleAction *action,
|
|
GVariant *state,
|
|
@@ -6955,6 +6965,7 @@ const GActionEntry view_entries[] =
|
|
{ "paste_accel", action_paste_files_accel },
|
|
{ "create-link", action_create_links },
|
|
{ "new-document" },
|
|
+ { "new-file", action_new_file },
|
|
/* Selection menu */
|
|
{ "scripts" },
|
|
{ "new-folder-with-selection", action_new_folder_with_selection },
|
|
@@ -7353,6 +7364,11 @@ real_update_actions_state (NautilusFilesView *view)
|
|
gboolean show_star;
|
|
gboolean show_unstar;
|
|
gchar *uri;
|
|
+ GAppInfo *default_app;
|
|
+ gboolean can_create_text;
|
|
+ gboolean can_create_document;
|
|
+ gboolean can_create_spreadsheet;
|
|
+ gboolean can_create_presentation;
|
|
|
|
priv = nautilus_files_view_get_instance_private (view);
|
|
|
|
@@ -7448,6 +7464,32 @@ real_update_actions_state (NautilusFilesView *view)
|
|
"new-folder");
|
|
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), can_create_files);
|
|
|
|
+ action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group),
|
|
+ "new-file");
|
|
+
|
|
+ default_app = g_app_info_get_default_for_type ("text/plain", FALSE);
|
|
+ can_create_text = default_app != NULL;
|
|
+ g_object_unref (default_app);
|
|
+
|
|
+ default_app = g_app_info_get_default_for_type ("application/vnd.oasis.opendocument.text", FALSE);
|
|
+ can_create_document = default_app != NULL;
|
|
+ g_object_unref (default_app);
|
|
+
|
|
+ default_app = g_app_info_get_default_for_type ("application/vnd.oasis.opendocument.spreadsheet", FALSE);
|
|
+ can_create_spreadsheet = default_app != NULL;
|
|
+ g_object_unref (default_app);
|
|
+
|
|
+ default_app = g_app_info_get_default_for_type ("application/vnd.oasis.opendocument.presentation", FALSE);
|
|
+ can_create_presentation = default_app != NULL;
|
|
+ g_object_unref (default_app);
|
|
+
|
|
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
|
|
+ can_create_files && (
|
|
+ can_create_text ||
|
|
+ can_create_document ||
|
|
+ can_create_spreadsheet ||
|
|
+ can_create_presentation));
|
|
+
|
|
item_opens_in_view = selection_count != 0;
|
|
|
|
for (l = selection; l != NULL; l = l->next)
|
|
@@ -7646,6 +7688,10 @@ real_update_actions_state (NautilusFilesView *view)
|
|
!selection_contains_starred &&
|
|
priv->templates_present);
|
|
|
|
+ action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group),
|
|
+ "new-file");
|
|
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), can_create_files);
|
|
+
|
|
g_object_ref (view); /* Need to keep the object alive until we get the reply */
|
|
gtk_clipboard_request_text (nautilus_clipboard_get (GTK_WIDGET (view)),
|
|
on_clipboard_contents_received,
|
|
@@ -9776,6 +9822,7 @@ nautilus_files_view_init (NautilusFilesView *view)
|
|
nautilus_application_set_accelerator (app, "view.cut", "<control>x");
|
|
nautilus_application_set_accelerator (app, "view.copy", "<control>c");
|
|
nautilus_application_set_accelerator (app, "view.create-link-in-place", "<control><shift>m");
|
|
+ nautilus_application_set_accelerator (app, "view.new-file", "<control><shift>f");
|
|
nautilus_application_set_accelerator (app, "view.new-folder", "<control><shift>n");
|
|
/* Only accesible by shorcuts */
|
|
nautilus_application_set_accelerator (app, "view.select-pattern", "<control>s");
|
|
diff --git a/src/resources/ui/nautilus-files-view-context-menus.ui b/src/resources/ui/nautilus-files-view-context-menus.ui
|
|
index 279646d..420b0b5 100644
|
|
--- a/src/resources/ui/nautilus-files-view-context-menus.ui
|
|
+++ b/src/resources/ui/nautilus-files-view-context-menus.ui
|
|
@@ -1,10 +1,24 @@
|
|
<?xml version="1.0"?>
|
|
<interface>
|
|
<menu id="background-menu">
|
|
- <item>
|
|
- <attribute name="label" translatable="yes">New _Folder</attribute>
|
|
- <attribute name="action">view.new-folder</attribute>
|
|
- </item>
|
|
+ <section>
|
|
+ <submenu>
|
|
+ <attribute name="label" translatable="yes">_Create</attribute>
|
|
+ <section>
|
|
+ <item>
|
|
+ <attribute name="label" translatable="yes">New _Folder</attribute>
|
|
+ <attribute name="action">view.new-folder</attribute>
|
|
+ </item>
|
|
+ </section>
|
|
+ <section>
|
|
+ <item>
|
|
+ <attribute name="label" translatable="yes">_Document</attribute>
|
|
+ <attribute name="action">view.new-file</attribute>
|
|
+ </item>
|
|
+ </section>
|
|
+ </submenu>
|
|
+ </section>
|
|
+ <section>
|
|
<submenu>
|
|
<attribute name="id">templates-submenu</attribute>
|
|
<attribute name="label" translatable="yes">New _Document</attribute>
|
|
@@ -46,6 +60,7 @@
|
|
</item>
|
|
</section>
|
|
</submenu>
|
|
+ </section>
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Paste</attribute>
|
|
--
|
|
2.27.0
|
|
|