summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2011-07-27 17:44:55 -0500
committerFederico Mena Quintero <federico@gnome.org>2011-07-27 18:46:27 -0500
commit4b492443886c15c496c344b46d5ad23d81b3cc10 (patch)
tree44ee57679ac5bfa04ff299498830edca741e9f5e
parenta4927d05d822fd6247879a1dadc609cf039f7c82 (diff)
downloadgtk+-4b492443886c15c496c344b46d5ad23d81b3cc10.tar.gz
Create the location_entry in a single function
We had duplicated code to create the entry in two cases, for Open and for Save modes. Signed-off-by: Federico Mena Quintero <federico@gnome.org>
-rw-r--r--gtk/gtkfilechooserdefault.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index 902e2443f7..4c383f1ea8 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -4388,6 +4388,20 @@ file_pane_create (GtkFileChooserDefault *impl,
return vbox;
}
+static void
+location_entry_create (GtkFileChooserDefault *impl)
+{
+ if (!impl->location_entry)
+ impl->location_entry = _gtk_file_chooser_entry_new (TRUE);
+
+ _gtk_file_chooser_entry_set_file_system (GTK_FILE_CHOOSER_ENTRY (impl->location_entry),
+ impl->file_system);
+ _gtk_file_chooser_entry_set_local_only (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), impl->local_only);
+ _gtk_file_chooser_entry_set_action (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), impl->action);
+ gtk_entry_set_width_chars (GTK_ENTRY (impl->location_entry), 45);
+ gtk_entry_set_activates_default (GTK_ENTRY (impl->location_entry), TRUE);
+}
+
/* Creates the widgets specific to Save mode */
static void
save_widgets_create (GtkFileChooserDefault *impl)
@@ -4420,12 +4434,7 @@ save_widgets_create (GtkFileChooserDefault *impl)
/* Location entry */
- impl->location_entry = _gtk_file_chooser_entry_new (TRUE);
- _gtk_file_chooser_entry_set_file_system (GTK_FILE_CHOOSER_ENTRY (impl->location_entry),
- impl->file_system);
- _gtk_file_chooser_entry_set_local_only (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), impl->local_only);
- gtk_entry_set_width_chars (GTK_ENTRY (impl->location_entry), 45);
- gtk_entry_set_activates_default (GTK_ENTRY (impl->location_entry), TRUE);
+ location_entry_create (impl);
gtk_table_attach (GTK_TABLE (impl->save_widgets_table), impl->location_entry,
1, 2, 0, 1,
GTK_EXPAND | GTK_FILL, 0,
@@ -4539,7 +4548,10 @@ location_switch_to_filename_entry (GtkFileChooserDefault *impl)
return;
if (impl->location_entry)
- gtk_widget_destroy (impl->location_entry);
+ {
+ gtk_widget_destroy (impl->location_entry);
+ impl->location_entry = NULL;
+ }
/* Box */
@@ -4547,19 +4559,13 @@ location_switch_to_filename_entry (GtkFileChooserDefault *impl)
/* Entry */
- impl->location_entry = _gtk_file_chooser_entry_new (TRUE);
- _gtk_file_chooser_entry_set_file_system (GTK_FILE_CHOOSER_ENTRY (impl->location_entry),
- impl->file_system);
- gtk_entry_set_activates_default (GTK_ENTRY (impl->location_entry), TRUE);
- _gtk_file_chooser_entry_set_action (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), impl->action);
-
+ location_entry_create (impl);
gtk_box_pack_start (GTK_BOX (impl->location_entry_box), impl->location_entry, TRUE, TRUE, 0);
gtk_label_set_mnemonic_widget (GTK_LABEL (impl->location_label), impl->location_entry);
/* Configure the entry */
_gtk_file_chooser_entry_set_base_folder (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), impl->current_folder);
- _gtk_file_chooser_entry_set_local_only (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), impl->local_only);
/* Done */