Bug 796911 - Minimum window width to large.

This is down to the amount of information that is displayed on the
register status bar which can also be influenced by the type of
register being displayed. To fix this the text labels used have been
enabled to ellipsize at the end and also the displayed information has
been added to a tooltip. So for example the minimum app size was
957x736 and after the changes it can be 610x475.
This commit is contained in:
Robert Fewell
2020-02-13 15:00:54 +00:00
parent f66b7ed275
commit 7577afe0a9

View File

@@ -511,10 +511,17 @@ gsr_update_summary_label( GtkWidget *label,
{
gnc_numeric amount;
char string[256];
const gchar *label_str = NULL;
GtkWidget *text_label, *hbox;
gchar *tooltip;
if ( label == NULL )
return;
hbox = g_object_get_data (G_OBJECT(label), "text_box");
text_label = g_object_get_data (G_OBJECT(label), "text_label");
label_str = gtk_label_get_text (GTK_LABEL(text_label));
amount = (*getter)( leader );
if ( reverse )
@@ -534,6 +541,13 @@ gsr_update_summary_label( GtkWidget *label,
gnc_set_label_color( label, amount );
gtk_label_set_text( GTK_LABEL(label), string );
if (label_str)
{
tooltip = g_strdup_printf ("%s %s", label_str, string);
gtk_widget_set_tooltip_text (GTK_WIDGET(hbox), tooltip);
g_free (tooltip);
}
}
static
@@ -2418,7 +2432,7 @@ GtkWidget*
add_summary_label (GtkWidget *summarybar, gboolean pack_start, const char *label_str, GtkWidget *extra)
{
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *text_label, *secondary_label;
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
@@ -2427,18 +2441,21 @@ add_summary_label (GtkWidget *summarybar, gboolean pack_start, const char *label
else
gtk_box_pack_end( GTK_BOX(summarybar), hbox, FALSE, FALSE, 5 );
label = gtk_label_new( label_str );
gnc_label_set_alignment(label, 1.0, 0.5 );
gtk_box_pack_start( GTK_BOX(hbox), label, FALSE, FALSE, 0 );
text_label = gtk_label_new (label_str);
gnc_label_set_alignment (text_label, 1.0, 0.5 );
gtk_label_set_ellipsize (GTK_LABEL(text_label), PANGO_ELLIPSIZE_END);
gtk_box_pack_start (GTK_BOX(hbox), text_label, FALSE, FALSE, 0);
label = gtk_label_new( "" );
gnc_label_set_alignment(label, 1.0, 0.5 );
gtk_box_pack_start( GTK_BOX(hbox), label, FALSE, FALSE, 0 );
secondary_label = gtk_label_new ( "" );
g_object_set_data (G_OBJECT(secondary_label), "text_label", text_label);
g_object_set_data (G_OBJECT(secondary_label), "text_box", hbox);
gnc_label_set_alignment (secondary_label, 1.0, 0.5 );
gtk_box_pack_start (GTK_BOX(hbox), secondary_label, FALSE, FALSE, 0);
if (extra != NULL)
gtk_box_pack_start( GTK_BOX(hbox), extra, FALSE, FALSE, 0 );
return label;
return secondary_label;
}
static void