gnucash master: Bug 798792 - "Delete Split" missing from context menu

Robert Fewell bobit at code.gnucash.org
Mon Mar 20 07:11:42 EDT 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/0110442c (commit)
	from  https://github.com/Gnucash/gnucash/commit/46d38294 (commit)



commit 0110442c287673224238b4b3cf46f6cde2988912
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Mon Mar 20 10:57:10 2023 +0000

    Bug 798792 - "Delete Split" missing from context menu
    
    Missed adding the 'Delete and Duplicate Split' context menu entries
    when the menu opened from the expanded split.

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index f622817856..13b2ff9951 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -312,7 +312,9 @@ static GActionEntry gnc_plugin_page_register_actions [] =
     { "CopyTransactionAction", gnc_plugin_page_register_cmd_copy_transaction, NULL, NULL, NULL },
     { "PasteTransactionAction", gnc_plugin_page_register_cmd_paste_transaction, NULL, NULL, NULL },
     { "DuplicateTransactionAction", gnc_plugin_page_register_cmd_duplicate_transaction, NULL, NULL, NULL },
+    { "DuplicateSplitAction", gnc_plugin_page_register_cmd_duplicate_transaction, NULL, NULL, NULL },
     { "DeleteTransactionAction", gnc_plugin_page_register_cmd_delete_transaction, NULL, NULL, NULL },
+    { "DeleteSplitAction", gnc_plugin_page_register_cmd_delete_transaction, NULL, NULL, NULL },
     { "RemoveTransactionSplitsAction", gnc_plugin_page_register_cmd_reinitialize_transaction, NULL, NULL, NULL },
     { "RecordTransactionAction", gnc_plugin_page_register_cmd_enter_transaction, NULL, NULL, NULL },
     { "CancelTransactionAction", gnc_plugin_page_register_cmd_cancel_transaction, NULL, NULL, NULL },
@@ -405,7 +407,7 @@ static GncToolBarShortNames toolbar_labels[] =
     { "LinkTransactionAction",              N_ ("Manage Document Link") },
     { "LinkedTransactionOpenAction",        N_ ("Open Linked Document") },
     { "JumpLinkedInvoiceAction",            N_ ("Invoice") },
-    { "ActionsStockAssistantAction",        N_ ("Stock Assistant") }, 
+    { "ActionsStockAssistantAction",        N_ ("Stock Assistant") },
     { NULL, NULL },
 };
 
@@ -850,6 +852,24 @@ static const char* split_action_tips[] =
     NULL
 };
 
+static void
+update_context_menu (GncPluginPage *page, gboolean read_only, gboolean voided, gboolean enable_split)
+{
+    GAction *action;
+
+    action = gnc_plugin_page_get_action (page, "DuplicateTransactionAction");
+    g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided & !enable_split);
+
+    action = gnc_plugin_page_get_action (page, "DeleteTransactionAction");
+    g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided & !enable_split);
+
+    action = gnc_plugin_page_get_action (page, "DuplicateSplitAction");
+    g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided & enable_split);
+
+    action = gnc_plugin_page_get_action (page, "DeleteSplitAction");
+    g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided & enable_split);
+}
+
 static void
 gnc_plugin_page_register_ui_update (gpointer various,
                                     GncPluginPageRegister* page)
@@ -953,16 +973,10 @@ gnc_plugin_page_register_ui_update (gpointer various,
                                              "PasteTransactionAction");
         g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided);
 
-        action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE(page),
-                                             "DeleteTransactionAction");
-        g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided);
-
         if (cursor_class == CURSOR_CLASS_SPLIT)
-        {
-            action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE(page),
-                                                 "DuplicateTransactionAction");
-            g_simple_action_set_enabled (G_SIMPLE_ACTION(action), !read_only & !voided);
-        }
+            update_context_menu (GNC_PLUGIN_PAGE(page), read_only, voided, TRUE);
+        else
+            update_context_menu (GNC_PLUGIN_PAGE(page), read_only, voided, FALSE);
 
         action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE(page),
                                              "RemoveTransactionSplitsAction");
diff --git a/gnucash/ui/gnc-plugin-page-register.ui b/gnucash/ui/gnc-plugin-page-register.ui
index 40d06fa8c8..923b95de4e 100644
--- a/gnucash/ui/gnc-plugin-page-register.ui
+++ b/gnucash/ui/gnc-plugin-page-register.ui
@@ -365,11 +365,25 @@
         <attribute name="label" translatable="yes">Dup_licate Transaction</attribute>
         <attribute name="action">GncPluginPageRegisterActions.DuplicateTransactionAction</attribute>
         <attribute name="tooltip" translatable="yes">Make a copy of the current transaction</attribute>
+        <attribute name="hidden-when">action-disabled</attribute>
       </item>
       <item>
         <attribute name="label" translatable="yes">_Delete Transaction</attribute>
         <attribute name="action">GncPluginPageRegisterActions.DeleteTransactionAction</attribute>
         <attribute name="tooltip" translatable="yes">Delete the current transaction</attribute>
+        <attribute name="hidden-when">action-disabled</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">Dup_licate Split</attribute>
+        <attribute name="action">GncPluginPageRegisterActions.DuplicateSplitAction</attribute>
+        <attribute name="tooltip" translatable="yes">Make a copy of the current split</attribute>
+        <attribute name="hidden-when">action-disabled</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">_Delete Split</attribute>
+        <attribute name="action">GncPluginPageRegisterActions.DeleteSplitAction</attribute>
+        <attribute name="tooltip" translatable="yes">Delete the current split</attribute>
+        <attribute name="hidden-when">action-disabled</attribute>
       </item>
       <item>
         <attribute name="label" translatable="yes">Remo_ve Other Splits</attribute>



Summary of changes:
 gnucash/gnome/gnc-plugin-page-register.c | 34 ++++++++++++++++++++++----------
 gnucash/ui/gnc-plugin-page-register.ui   | 14 +++++++++++++
 2 files changed, 38 insertions(+), 10 deletions(-)



More information about the gnucash-changes mailing list