[gnumeric] Hyperlinks: don't store default tips.



commit 5ed500b9c57aa00cde46b9e409c07d4f00be06bb
Author: Morten Welinder <terra gnome org>
Date:   Fri Mar 17 11:10:11 2017 -0400

    Hyperlinks: don't store default tips.
    
    They are locale dependent and probably wrong when the file is loaded into
    another spreadsheet program.

 samples/hlink-tests.gnumeric   |  Bin 2643 -> 2559 bytes
 src/dialogs/ChangeLog          |    5 +++++
 src/dialogs/dialog-hyperlink.c |   22 +++++++++++-----------
 3 files changed, 16 insertions(+), 11 deletions(-)
---
diff --git a/samples/hlink-tests.gnumeric b/samples/hlink-tests.gnumeric
index d3e03af..9abeeab 100644
Binary files a/samples/hlink-tests.gnumeric and b/samples/hlink-tests.gnumeric differ
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index db11333..21a530f 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-17  Morten Welinder  <terra gnome org>
+
+       * dialog-hyperlink.c (dhl_get_tip): Return NULL for default tip so
+       we don't store it.
+
 2017-01-30  Morten Welinder <terra gnome org>
 
        * Release 1.12.33
diff --git a/src/dialogs/dialog-hyperlink.c b/src/dialogs/dialog-hyperlink.c
index ce3f5a1..e446bf7 100644
--- a/src/dialogs/dialog-hyperlink.c
+++ b/src/dialogs/dialog-hyperlink.c
@@ -61,6 +61,8 @@ typedef struct {
        GnmExprEntry *internal_link_ee;
        GnmHLink  *link;
        gboolean   is_new;
+
+       GtkWidget *use_def_widget;
 } HyperlinkState;
 
 static void
@@ -104,14 +106,12 @@ dhl_set_tip (HyperlinkState* state)
        if (tip != NULL) {
                char const * const target = gnm_hlink_get_target (state->link);
                char *default_tip = dhl_get_default_tip (target);
-
-               if (strcmp (tip, default_tip) == 0) {
-                       w = go_gtk_builder_get_widget (state->gui, "use-default-tip");
-                       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
-                       g_free (default_tip);
+               gboolean is_default = (strcmp (tip, default_tip) == 0);
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (state->use_def_widget),
+                                             is_default);
+               g_free (default_tip);
+               if (is_default)
                        return;
-               } else
-                       g_free (default_tip);
        }
        w = go_gtk_builder_get_widget (state->gui, "use-this-tip");
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
@@ -125,10 +125,8 @@ dhl_set_tip (HyperlinkState* state)
 static char *
 dhl_get_tip (HyperlinkState *state, char const *target)
 {
-       GtkWidget *w = go_gtk_builder_get_widget (state->gui, "use-default-tip");
-
-       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)))
-               return dhl_get_default_tip (target);
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (state->use_def_widget)))
+               return NULL;
        else {
                char *tip;
                GtkTextBuffer *tb = gtk_text_view_get_buffer
@@ -595,6 +593,8 @@ dialog_hyperlink (WBCGtk *wbcg, SheetControl *sc)
        state->gui  = gui;
         state->dialog = go_gtk_builder_get_widget (state->gui, "hyperlink-dialog");
 
+       state->use_def_widget = go_gtk_builder_get_widget (state->gui, "use-default-tip");
+
        state->sheet = sc_sheet (sc);
        for (ptr = sc_view (sc)->selections; ptr != NULL; ptr = ptr->next) {
                GnmRange const *r = ptr->data;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]