Ralf, I have had a look and was able to pull your branch and build it but needed to replace the de.po file with one from maint but that is besides the point.
I have added a patch file with some changes I have noticed but you will need to fix / test them. I am not sure whether you have changed dialog-customer.glade by mistake or in the middle of a change but there were some changes to coowner. As for the menus, they are present and the Co-Owner Overview page displays but I could not create a new Co-Owner due to issues with the glade files. Regards, Bob On Thu, 30 Jun 2022 at 14:03, Ralf Zerres <ralf.zer...@mail.de> wrote: > Rob, > > thanks for anwering. And yes, i do have a specific problem. > It's more a comprehension problem when creating new menu entries. > > What i extended > =============== > > This is an extact just to explain the involed gui stuff: > > > inside "gnucash/gnome/gnc-plugin-business.c" i did create new/needed > "BusinessActions" > > /* Co-Owner submenu */ > { "CoOwnerMenuAction", NULL, N_("Co-Owner"), NULL, NULL, NULL }, > > { > "CoOwnerOverviewPageAction", NULL, N_("Co-Owners > Overview"),NULL, > N_("Open a Co-Owner overview page"), > G_CALLBACK (gnc_plugin_business_cmd_coowner_page) > }, > > ... > > { > "CoOwnerNewSettlementOpenAction", NULL, N_("New > _Settlement..."), NULL, > N_("Open the New Settlement dialog"), > G_CALLBACK (gnc_plugin_business_cmd_coowner_new_settlement) > }, > > As well as the associated callbacks. > > UI definitions are in > > * gnucash/ui/gnc-plugin-business-ui.xml > > that introduce a new menu "CoOwnerMenuAction" with menuitems > "COOwnerNewCoOwnerOpenAction", etc. They extend the given placeholder > "AdditionalMenusPlacehoder" inside menu "Business". Fine until here. > > The book handling will use "Set" and "Get" functions from > "libgnucash/engine/gncCoOwner.c". To make that accessible, funtions in > "libgnucash/engine/gncOwner.c" are extended to handle the CoOwner > cases. That means, we now handle a new "owner->type = > GNC_OWNER_COOWNER". > > Bindings have been enhanced > > * bindings/business-core.i > * bindings/python/gnucash_business.py > * bindings/python/gnucash_core.i > > Next i had to extend the "OT" actions to have the needed new callbacks > for the owner_tree. > > * gnucash/gnome/gnc-plugin-page-owner-tree.c > * gnc-plugin-page-owner-tree-ui.xml > > This should make them accessible as "plugin-page"-s, right? > > conlusion > ========= > > All that stuff compiles. > But i never see any new submenu entry "CoOwner" nor do i get the GUI > for the Owner-Tree stuff. > I'm on arch, all the depends like in "util/ci/actions/archlinux- > test/Dockerfile". > > What is needed to make the subsystem use the new Menus? > > Greetings > Ralf > > PS: you will find my coowner branch at > https://github.com/rzerres/gnucash/tree/coowner > > Am Donnerstag, dem 30.06.2022 um 08:39 +0100 schrieb Robert Fewell: > > Ralf, > > The current minimum Gtk3 version is 3.22.30. All the glade files have > > been generated with Glade 3.38.2 with the minimum Gtk version set to > > 3.22. > > > > Is there a specific problem you have found that you need help with? > > > > Regards, > > Bob > > > > > >
diff --git a/gnucash/gnome/dialog-coowner.c b/gnucash/gnome/dialog-coowner.c index 18fb14fc4..7bc509537 100644 --- a/gnucash/gnome/dialog-coowner.c +++ b/gnucash/gnome/dialog-coowner.c @@ -596,8 +596,9 @@ gnc_coowner_new_window (GtkWindow *parent, /* Find the dialog */ builder = gtk_builder_new(); - gnc_builder_add_from_file (builder, "dialog-coowner.glade", "taxincluded_store"); + gnc_builder_add_from_file (builder, "dialog-coowner.glade", "tax_included_store"); gnc_builder_add_from_file (builder, "dialog-coowner.glade", "taxtable_store"); + gnc_builder_add_from_file (builder, "dialog-coowner.glade", "terms_store"); gnc_builder_add_from_file (builder, "dialog-coowner.glade", "coowner_dialog"); ow->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "coowner_dialog")); gtk_window_set_transient_for (GTK_WINDOW(ow->dialog), parent); @@ -633,17 +634,17 @@ gnc_coowner_new_window (GtkWindow *parent, ow->apt_share = edit; gtk_widget_show (edit); - hbox = GTK_WIDGET(gtk_builder_get_object (builder, "apt_share_box")); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); +//FIXME hbox = GTK_WIDGET(gtk_builder_get_object (builder, "apt_share_box")); //apt_share_box missing +//FIXME gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); /* Property unit value */ - ow->property_unit = GTK_WIDGET(gtk_builder_get_object (builder, "property_unit")); +//FIXME ow->property_unit = GTK_WIDGET(gtk_builder_get_object (builder, "property_unit")); //propert_unit missing - ow->distribution_key = GTK_WIDGET(gtk_builder_get_object (builder, "distribution_key")); +//FIXME ow->distribution_key = GTK_WIDGET(gtk_builder_get_object (builder, "distribution_key")); //distribution_key missing /* Language */ - ow->language_entry = GTK_WIDGET(gtk_builder_get_object (builder, "language_entry")); +//FIXME ow->language_entry = GTK_WIDGET(gtk_builder_get_object (builder, "language_entry")); //language_entry missing /* Credit: Monetary Value */ edit = gnc_amount_edit_new(); @@ -670,8 +671,8 @@ gnc_coowner_new_window (GtkWindow *parent, ow->ccard_acct_sel = edit; gtk_widget_show (edit); - hbox = GTK_WIDGET(gtk_builder_get_object (builder, "ccard_acct_hbox")); - gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); +//FIXME hbox = GTK_WIDGET(gtk_builder_get_object (builder, "ccard_acct_hbox")); // ccard_acct_hbox missing +// gtk_box_pack_start (GTK_BOX (hbox), edit, TRUE, TRUE, 0); /* Currency */ edit = gnc_currency_edit_new(); @@ -708,6 +709,8 @@ gnc_coowner_new_window (GtkWindow *parent, /* Username */ ow->username_entry = GTK_WIDGET(gtk_builder_get_object (builder, "username_entry")); +//FIXME no call backs for the shipping address. + /* Setup signals */ gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, ow); @@ -804,16 +807,17 @@ gnc_coowner_new_window (GtkWindow *parent, /* Set Credit-Card entities */ ccard_acct = gncCoOwnerGetCCard (coowner); - if (ccard_acct == NULL) - { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->ccard_acct_check), FALSE); - gtk_widget_set_sensitive (ow->ccard_acct_sel, FALSE); - } - else - { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->ccard_acct_check), TRUE); - gnc_account_sel_set_account (GNC_ACCOUNT_SEL (ow->ccard_acct_sel), ccard_acct, FALSE); - } +//FIXME see above +// if (ccard_acct == NULL) +// { +// gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->ccard_acct_check), FALSE); +// gtk_widget_set_sensitive (ow->ccard_acct_sel, FALSE); +// } +// else +// { +// gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->ccard_acct_check), TRUE); +// gnc_account_sel_set_account (GNC_ACCOUNT_SEL (ow->ccard_acct_sel), ccard_acct, FALSE); +// } /* Set billing terms */ gnc_billterms_combo (GTK_COMBO_BOX(ow->terms_menu), bookp, TRUE, ow->terms); diff --git a/gnucash/gnome/gnc-plugin-business.c b/gnucash/gnome/gnc-plugin-business.c index f0a9f92b4..ab91f91f9 100644 --- a/gnucash/gnome/gnc-plugin-business.c +++ b/gnucash/gnome/gnc-plugin-business.c @@ -210,6 +210,11 @@ static GtkActionEntry gnc_plugin_actions [] = N_("Open the New Co-Owner dialog"), G_CALLBACK (gnc_plugin_business_cmd_coowner_new_coowner) }, + { + "CoOwnerFindInvoiceOpenAction", NULL, N_("Find In_voice..."), NULL, + N_("Open the Find Invoice dialog"), + G_CALLBACK (gnc_plugin_business_cmd_coowner_find_invoice) + }, { "CoOwnerNewInvoiceOpenAction", NULL, N_("New In_voice..."), NULL, N_("Open the New Invoice dialog"), diff --git a/gnucash/gtkbuilder/dialog-customer.glade b/gnucash/gtkbuilder/dialog-customer.glade index 76833508c..7f0bf4054 100644 --- a/gnucash/gtkbuilder/dialog-customer.glade +++ b/gnucash/gtkbuilder/dialog-customer.glade @@ -130,7 +130,7 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="halign">end</property> - <property name="label" translatable="yes">Coowner Number</property> + <property name="label" translatable="yes">Customer Number</property> <property name="justify">right</property> </object> <packing> @@ -478,7 +478,7 @@ <object class="GtkLabel" id="label9"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="label" translatable="yes">Coowner</property> + <property name="label" translatable="yes">Customer</property> <property name="justify">center</property> </object> <packing> @@ -877,7 +877,7 @@ <property name="hexpand">True</property> <property name="activates-default">True</property> <signal name="insert-text" handler="gnc_coowner_shipaddr4_insert_cb" swapped="no"/> - <signal name="key-press-event" handler="gnc_coowner_shipaddr4_key_press_cb" swapped="no"/> + <signal name="key-press-event" handler="gnc_customer_shipaddr4_key_press_cb" swapped="no"/> </object> <packing> <property name="left-attach">1</property> @@ -891,7 +891,7 @@ <property name="hexpand">True</property> <property name="activates-default">True</property> <signal name="insert-text" handler="gnc_coowner_shipaddr3_insert_cb" swapped="no"/> - <signal name="key-press-event" handler="gnc_coowner_shipaddr3_key_press_cb" swapped="no"/> + <signal name="key-press-event" handler="gnc_customer_shipaddr3_key_press_cb" swapped="no"/> </object> <packing> <property name="left-attach">1</property> @@ -905,7 +905,7 @@ <property name="hexpand">True</property> <property name="activates-default">True</property> <signal name="insert-text" handler="gnc_coowner_shipaddr2_insert_cb" swapped="no"/> - <signal name="key-press-event" handler="gnc_coowner_shipaddr2_key_press_cb" swapped="no"/> + <signal name="key-press-event" handler="gnc_customer_shipaddr2_key_press_cb" swapped="no"/> </object> <packing> <property name="left-attach">1</property> diff --git a/libgnucash/engine/cashobjects.c b/libgnucash/engine/cashobjects.c index f971648af..39ba3bc9f 100644 --- a/libgnucash/engine/cashobjects.c +++ b/libgnucash/engine/cashobjects.c @@ -54,14 +54,14 @@ static void business_core_init(void) { /* initialize known types */ - gncAddressRegister (); + gncInvoiceRegister (); + gncJobRegister (); gncBillTermRegister (); gncCoOwnerRegister (); gncCustomerRegister (); + gncAddressRegister (); gncEmployeeRegister (); gncEntryRegister (); - gncInvoiceRegister (); - gncJobRegister (); gncOrderRegister (); gncOwnerRegister (); gncTaxTableRegister (); diff --git a/libgnucash/engine/gncAddress.c b/libgnucash/engine/gncAddress.c index dbe034b91..468370714 100644 --- a/libgnucash/engine/gncAddress.c +++ b/libgnucash/engine/gncAddress.c @@ -696,7 +696,7 @@ gboolean gncAddressRegister (void) }; qof_class_register (GNC_ID_ADDRESS, (QofSortFunc)gncAddressCompare, params); - if (!qof_choice_add_class(GNC_ID_COOWNER, GNC_ID_ADDRESS, ADDRESS_OWNER)) + if (!qof_choice_add_class (GNC_ID_COOWNER, GNC_ID_ADDRESS, ADDRESS_OWNER)) { return FALSE; }
_______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel