Skip to content

Commit

Permalink
Consolidate owner title setter into gnc_owner_window_set_title
Browse files Browse the repository at this point in the history
8d44c1c rewritten to call common code.
  • Loading branch information
christopherlam committed Jun 3, 2023
1 parent 81902ba commit 6fc3691
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 72 deletions.
19 changes: 19 additions & 0 deletions gnucash/gnome-utils/dialog-utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -832,3 +832,22 @@ gnc_get_negative_color (void)

return gdk_rgba_to_string (&color);
}

void
gnc_owner_window_set_title (GtkWindow *window, const char *header,
GtkWidget *owner_entry, GtkWidget *id_entry)
{
const char *name = gtk_entry_get_text (GTK_ENTRY (owner_entry));
if (!name || *name == '\0')
name = _("<No name>");

const char *id = gtk_entry_get_text (GTK_ENTRY (id_entry));

char *title = (id && *id) ?
g_strdup_printf ("%s - %s (%s)", header, name, id) :
g_strdup_printf ("%s - %s", header, name);

gtk_window_set_title (window, title);

g_free (title);
}
6 changes: 6 additions & 0 deletions gnucash/gnome-utils/dialog-utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,12 @@ gnc_cost_policy_select_new (void);
*/
gchar* gnc_get_negative_color (void);



/** This function sets the title of an owner dialog */
void gnc_owner_window_set_title (GtkWindow*, const char*, GtkWidget*, GtkWidget*);


#ifdef __cplusplus
}
#endif
Expand Down
22 changes: 4 additions & 18 deletions gnucash/gnome/dialog-customer.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,27 +399,13 @@ void
gnc_customer_name_changed_cb (GtkWidget *widget, gpointer data)
{
CustomerWindow *cw = data;
char *title;

if (!cw)
return;

const char *header = (cw->dialog_type == EDIT_CUSTOMER) ?
_("Edit Customer") : _("New Customer");

const char *name = gtk_entry_get_text (GTK_ENTRY (cw->company_entry));
if (!name || *name == '\0')
name = _("<No name>");

const char *id = gtk_entry_get_text (GTK_ENTRY (cw->id_entry));
if (id && *id)
title = g_strdup_printf ("%s - %s (%s)", header, name, id);
else
title = g_strdup_printf ("%s - %s", header, name);

gtk_window_set_title (GTK_WINDOW (cw->dialog), title);

g_free (title);
gnc_owner_window_set_title (GTK_WINDOW (cw->dialog),
(cw->dialog_type == EDIT_CUSTOMER) ?
_("Edit Customer") : _("New Customer"),
cw->company_entry, cw->id_entry);
}

void
Expand Down
22 changes: 4 additions & 18 deletions gnucash/gnome/dialog-employee.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,27 +280,13 @@ void
gnc_employee_name_changed_cb (GtkWidget *widget, gpointer data)
{
EmployeeWindow *ew = data;
char *title;

if (!ew)
return;

const char *header = (ew->dialog_type == EDIT_EMPLOYEE) ?
_("Edit Employee") : _("New Employee");

const char *name = gtk_entry_get_text (GTK_ENTRY (ew->name_entry));
if (!name || *name == '\0')
name = _("<No name>");

const char *id = gtk_entry_get_text (GTK_ENTRY (ew->id_entry));
if (id && *id)
title = g_strdup_printf ("%s - %s (%s)", header, name, id);
else
title = g_strdup_printf ("%s - %s", header, name);

gtk_window_set_title (GTK_WINDOW (ew->dialog), title);

g_free (title);
gnc_owner_window_set_title (GTK_WINDOW (ew->dialog),
(ew->dialog_type == EDIT_EMPLOYEE) ?
_("Edit Employee") : _("New Employee"),
ew->name_entry, ew->id_entry);
}

void
Expand Down
22 changes: 4 additions & 18 deletions gnucash/gnome/dialog-job.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,27 +237,13 @@ void
gnc_job_name_changed_cb (GtkWidget *widget, gpointer data)
{
JobWindow *jw = data;
char *title;

if (!jw)
return;

const char *header = (jw->dialog_type == EDIT_JOB) ?
_("Edit Job") : _("New Job");

const char *name = gtk_entry_get_text (GTK_ENTRY (jw->name_entry));
if (!name || *name == '\0')
name = _("<No name>");

const char *id = gtk_entry_get_text (GTK_ENTRY (jw->id_entry));
if (id && *id)
title = g_strdup_printf ("%s - %s (%s)", header, name, id);
else
title = g_strdup_printf ("%s - %s", header, name);

gtk_window_set_title (GTK_WINDOW (jw->dialog), title);

g_free (title);
gnc_owner_window_set_title (GTK_WINDOW (jw->dialog),
(jw->dialog_type == EDIT_JOB) ?
_("Edit Job") : _("New Job"),
jw->name_entry, jw->id_entry);
}

static void
Expand Down
22 changes: 4 additions & 18 deletions gnucash/gnome/dialog-vendor.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,27 +267,13 @@ void
gnc_vendor_name_changed_cb (GtkWidget *widget, gpointer data)
{
VendorWindow *vw = data;
char *title;

if (!vw)
return;

const char *header = (vw->dialog_type == EDIT_VENDOR) ?
_("Edit Vendor") : _("New Vendor");

const char *name = gtk_entry_get_text (GTK_ENTRY (vw->company_entry));
if (!name || *name == '\0')
name = _("<No name>");

const char *id = gtk_entry_get_text (GTK_ENTRY (vw->id_entry));
if (id && *id)
title = g_strdup_printf ("%s - %s (%s)", header, name, id);
else
title = g_strdup_printf ("%s - %s", header, name);

gtk_window_set_title (GTK_WINDOW (vw->dialog), title);

g_free (title);
gnc_owner_window_set_title (GTK_WINDOW (vw->dialog),
(vw->dialog_type == EDIT_VENDOR) ?
_("Edit Vendor") : _("New Vendor"),
vw->company_entry, vw->id_entry);
}

void
Expand Down

0 comments on commit 6fc3691

Please sign in to comment.