[gnumeric] Text export: fix handling of custom format in the gui.
- From: Morten Welinder <mortenw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnumeric] Text export: fix handling of custom format in the gui.
- Date: Sun, 6 Sep 2009 00:56:49 +0000 (UTC)
commit 49fc2a73050d18b78e0903c32c02a46da348696c
Author: Morten Welinder <terra gnome org>
Date: Sat Sep 5 20:56:17 2009 -0400
Text export: fix handling of custom format in the gui.
NEWS | 3 +++
src/dialogs/ChangeLog | 11 +++++++++++
src/dialogs/dialog-stf-export.c | 31 ++++++++++++++++++++++++++-----
src/dialogs/dialog-stf-export.glade | 1 -
4 files changed, 40 insertions(+), 6 deletions(-)
---
diff --git a/NEWS b/NEWS
index 96c90f4..3c15006 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
Gnumeric 1.9.13
+Morten:
+ * Fixes text export GUI issue. [#594155]
+
--------------------------------------------------------------------------
Gnumeric 1.9.12
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 04ae897..db8c5b2 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,14 @@
+2009-09-05 Morten Welinder <terra gnome org>
+
+ * dialog-stf-export.c (sheet_page_separator_menu_changed): Don't
+ make custom format insensitive. Set format custom's text to match
+ item chosen.
+ (cb_custom_separator_changed): New function.
+ (stf_export_dialog_format_page_init): Hook up
+ cb_custom_separator_changed. Call
+ sheet_page_separator_menu_changed to boot strap.
+ Fixes #594155.
+
2009-09-05 Morten Welinder <terra gnome org>
* Release 1.9.12
diff --git a/src/dialogs/dialog-stf-export.c b/src/dialogs/dialog-stf-export.c
index fb7aa4d..59ec446 100644
--- a/src/dialogs/dialog-stf-export.c
+++ b/src/dialogs/dialog-stf-export.c
@@ -88,18 +88,34 @@ static void
sheet_page_separator_menu_changed (TextExportState *state)
{
unsigned active = gtk_combo_box_get_active (state->format.separator);
- if (active < G_N_ELEMENTS (format_seps) && !format_seps[active]) {
- gtk_widget_set_sensitive (state->format.custom, TRUE);
+ if (active >= G_N_ELEMENTS (format_seps))
+ active = 0;
+
+ if (!format_seps[active]) {
gtk_widget_grab_focus (state->format.custom);
gtk_editable_select_region (GTK_EDITABLE (state->format.custom), 0, -1);
} else {
- gtk_widget_set_sensitive (state->format.custom, FALSE);
- /* If we don't use this the selection will remain blue */
- gtk_editable_select_region (GTK_EDITABLE (state->format.custom), 0, 0);
+ gtk_entry_set_text (GTK_ENTRY (state->format.custom),
+ format_seps[active]);
}
}
static void
+cb_custom_separator_changed (TextExportState *state)
+{
+ const char *text = gtk_entry_get_text (GTK_ENTRY (state->format.custom));
+ unsigned active = gtk_combo_box_get_active (state->format.separator);
+ unsigned ui;
+
+ for (ui = 0; format_seps[ui]; ui++)
+ if (strcmp (text, format_seps[ui]) == 0)
+ break;
+
+ if (ui != active)
+ gtk_combo_box_set_active (state->format.separator, ui);
+}
+
+static void
stf_export_dialog_format_page_init (TextExportState *state)
{
GtkWidget *table;
@@ -243,6 +259,11 @@ stf_export_dialog_format_page_init (TextExportState *state)
g_signal_connect_swapped (state->format.separator,
"changed",
G_CALLBACK (sheet_page_separator_menu_changed), state);
+ g_signal_connect_swapped (state->format.custom,
+ "changed",
+ G_CALLBACK (cb_custom_separator_changed), state);
+
+ sheet_page_separator_menu_changed (state);
}
static gboolean
diff --git a/src/dialogs/dialog-stf-export.glade b/src/dialogs/dialog-stf-export.glade
index e0eed97..2b502fa 100644
--- a/src/dialogs/dialog-stf-export.glade
+++ b/src/dialogs/dialog-stf-export.glade
@@ -687,7 +687,6 @@ Never</property>
<child>
<widget class="GtkEntry" id="format_custom">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]