Consolidate owner title setter into gnc_owner_window_set_title

8d44c1c38c rewritten to call common code.
This commit is contained in:
Christopher Lam 2023-06-04 07:55:04 +08:00
parent 81902ba8bb
commit 6fc3691401
6 changed files with 41 additions and 72 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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