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