diff --git a/gnucash/gnome-utils/dialog-transfer.c b/gnucash/gnome-utils/dialog-transfer.c
index 13204f0f0f..89a4bd9d24 100644
--- a/gnucash/gnome-utils/dialog-transfer.c
+++ b/gnucash/gnome-utils/dialog-transfer.c
@@ -272,6 +272,16 @@ lookup_price(PriceReq *pr, PriceDate pd)
prc = gnc_pricedb_lookup_latest (pr->pricedb, pr->from, pr->to);
break;
}
+
+ if (!prc) //no price found
+ {
+ PINFO("No price Found for %s, %s",
+ gnc_commodity_get_mnemonic(pr->from),
+ gnc_commodity_get_mnemonic(pr->to));
+ pr->price = NULL;
+ return FALSE;
+ }
+
if (gnc_commodity_equiv(gnc_price_get_currency(prc), pr->from))
{
pr->reverse = TRUE;
@@ -279,7 +289,6 @@ lookup_price(PriceReq *pr, PriceDate pd)
gnc_commodity_get_mnemonic(pr->to),
gnc_numeric_to_double(gnc_price_get_value(prc)),
gnc_commodity_get_mnemonic(pr->from));
-
}
else
{
@@ -288,8 +297,6 @@ lookup_price(PriceReq *pr, PriceDate pd)
gnc_numeric_to_double(gnc_price_get_value(prc)),
gnc_commodity_get_mnemonic(pr->to));
}
- if (!prc)
- return FALSE;
pr->price = prc;
return TRUE;
}
@@ -1639,7 +1646,7 @@ new_price(XferDialog *xferData, Timespec ts)
PINFO("Created price: 1 %s = %f %s", gnc_commodity_get_mnemonic(from),
gnc_numeric_to_double(value), gnc_commodity_get_mnemonic(to));
gnc_price_unref (price);
-}
+}
static void
create_price(XferDialog *xferData, Timespec ts)
diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index b77b56ad46..2a1558282d 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -2028,11 +2028,46 @@ gnc_main_window_update_tab_color (gpointer gsettings, gchar *pref, gpointer user
}
+/** Set the tab label ellipsize value. The special check for a zero
+ * value handles the case where a user hasn't set a tab width and
+ * the preference default isn't detected.
+ *
+ * @internal
+ *
+ * @param label GtkLabel for the tab.
+ *
+ * @param tab_width Tab width the user has set in preferences.
+ *
+ */
+static void
+gnc_main_window_set_tab_ellipsize (GtkWidget *label, gint tab_width)
+{
+ const gchar *lab_text = gtk_label_get_text (GTK_LABEL(label));
+
+ if (tab_width != 0)
+ {
+ if (g_utf8_strlen (lab_text, -1) < tab_width)
+ {
+ gtk_label_set_width_chars (GTK_LABEL(label), strlen (lab_text));
+ gtk_label_set_ellipsize (GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
+ }
+ else
+ {
+ gtk_label_set_width_chars (GTK_LABEL(label), tab_width);
+ gtk_label_set_ellipsize (GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
+ }
+ }
+ else
+ {
+ gtk_label_set_width_chars (GTK_LABEL(label), 15);
+ gtk_label_set_ellipsize (GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
+ }
+}
+
+
/** Update the width of the label in the tab of a notebook page. This
- * function adjusts both the width and the ellipsize mode so that the tab
- * label looks correct. The special check for a zero value handles the
- * case where a user hasn't set a tab width and the preference default isn't
- * detected.
+ * function adjusts both the width and the ellipsize mode so that the
+ * tab label looks correct.
*
* @internal
*
@@ -2046,7 +2081,6 @@ gnc_main_window_update_tab_width_one_page (GncPluginPage *page,
{
gint *new_value = user_data;
GtkWidget *label;
- const gchar *lab_text;
ENTER("page %p, visible %d", page, *new_value);
label = g_object_get_data(G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL);
@@ -2055,23 +2089,7 @@ gnc_main_window_update_tab_width_one_page (GncPluginPage *page,
LEAVE("no label");
return;
}
-
- lab_text = gtk_label_get_text (GTK_LABEL(label));
-
- if (*new_value != 0)
- {
- if (g_utf8_strlen (lab_text, -1) < *new_value)
- gtk_label_set_width_chars (GTK_LABEL(label), strlen (lab_text));
- else
- gtk_label_set_width_chars (GTK_LABEL(label), *new_value);
-
- gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
- }
- else
- {
- gtk_label_set_width_chars (GTK_LABEL(label), 15);
- gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
- }
+ gnc_main_window_set_tab_ellipsize (label, *new_value);
LEAVE(" ");
}
@@ -2940,15 +2958,8 @@ gnc_main_window_open_page (GncMainWindow *window,
label = gtk_label_new (lab_text);
g_object_set_data (G_OBJECT (page), PLUGIN_PAGE_TAB_LABEL, label);
- if (width != 0)
- {
- if (g_utf8_strlen (lab_text, -1) < width)
- gtk_label_set_width_chars (GTK_LABEL(label), strlen (lab_text));
- else
- gtk_label_set_width_chars (GTK_LABEL(label), width);
+ gnc_main_window_set_tab_ellipsize (label, width);
- gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE);
- }
gtk_widget_show (label);
tab_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
diff --git a/gnucash/gtkbuilder/dialog-preferences.glade b/gnucash/gtkbuilder/dialog-preferences.glade
index abd34291be..092f822635 100644
--- a/gnucash/gtkbuilder/dialog-preferences.glade
+++ b/gnucash/gtkbuilder/dialog-preferences.glade
@@ -3280,6 +3280,7 @@ many months before the current month:
True
True
To retrieve online quotes from Alphavantage, this key needs to be set. A key can be retrieved from the Alpha Vantage website.
+ True
1
@@ -3316,5 +3317,8 @@ many months before the current month:
helpbutton2
closebutton2
+
+
+
diff --git a/gnucash/register/ledger-core/split-register-control.c b/gnucash/register/ledger-core/split-register-control.c
index 235befa260..fe14cd2828 100644
--- a/gnucash/register/ledger-core/split-register-control.c
+++ b/gnucash/register/ledger-core/split-register-control.c
@@ -1250,7 +1250,7 @@ gnc_split_register_xfer_dialog(SplitRegister *reg, Transaction *txn,
cur = reg->table->current_cursor;
/* Create the exchange rate dialog. */
- xfer = gnc_xfer_dialog(GTK_WIDGET (reg), NULL);
+ xfer = gnc_xfer_dialog(gnc_split_register_get_parent (reg), NULL);
g_return_val_if_fail(xfer, NULL);
/* Set the description. */