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

Reply via email to