[gtk+/bgo141154-filechooser-icon-view: 18/23] Save the list/icon view mode in GSettings
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/bgo141154-filechooser-icon-view: 18/23] Save the list/icon view mode in GSettings
- Date: Wed, 17 Oct 2012 19:59:42 +0000 (UTC)
commit 8a0cf6b850e7303cf12f1528a32aa5883fa92358
Author: Federico Mena Quintero <federico gnome org>
Date: Sun May 1 02:00:25 2011 -0500
Save the list/icon view mode in GSettings
gtk/gtkfilechooserdefault.c | 34 ++++++++++++++++++-------
gtk/org.gtk.Settings.FileChooser.gschema.xml | 8 ++++++
2 files changed, 32 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index 2f1cc14..358512d 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -264,6 +264,7 @@ typedef enum {
#define SETTINGS_KEY_LAST_FOLDER_URI "last-folder-uri"
#define SETTINGS_KEY_LOCATION_MODE "location-mode"
+#define SETTINGS_KEY_VIEW_MODE "view-mode"
#define SETTINGS_KEY_SHOW_HIDDEN "show-hidden"
#define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column"
#define SETTINGS_KEY_SORT_COLUMN "sort-column"
@@ -419,6 +420,7 @@ static void update_cell_renderer_attributes (GtkFileChooserDefault *impl);
static void load_remove_timer (GtkFileChooserDefault *impl);
static void browse_files_center_selected_row (GtkFileChooserDefault *impl);
+static void view_mode_set (GtkFileChooserDefault *impl, ViewMode view_mode);
static void view_mode_combo_box_changed_cb (GtkComboBox *combo,
GtkFileChooserDefault *impl);
static void location_button_toggled_cb (GtkToggleButton *toggle,
@@ -4885,27 +4887,25 @@ location_toggle_popup_handler (GtkFileChooserDefault *impl)
}
}
-/* Callback used when view mode combo box active item is changed */
static void
-view_mode_combo_box_changed_cb (GtkComboBox *combo,
- GtkFileChooserDefault *impl)
+view_mode_set (GtkFileChooserDefault *impl, ViewMode view_mode)
{
GtkWidget *old_view = NULL;
ViewMode old_view_mode = impl->view_mode;
- ViewMode target = gtk_combo_box_get_active (combo);
- if (old_view_mode == target)
+
+ if (old_view_mode == view_mode)
return;
- impl->view_mode = target;
+ impl->view_mode = view_mode;
/* Creating the target view */
- if (target == VIEW_MODE_ICON)
+ if (view_mode == VIEW_MODE_ICON)
{
create_browse_files_icon_view (impl);
impl->browse_files_current_view = impl->browse_files_icon_view;
old_view = impl->browse_files_tree_view;
}
- else if (target == VIEW_MODE_LIST)
+ else if (view_mode == VIEW_MODE_LIST)
{
create_browse_files_tree_view (impl);
impl->browse_files_current_view = impl->browse_files_tree_view;
@@ -4920,14 +4920,14 @@ view_mode_combo_box_changed_cb (GtkComboBox *combo,
copy_old_selection_to_current_view (impl, old_view_mode);
/* Destroy the old view */
- if (target == VIEW_MODE_ICON)
+ if (view_mode == VIEW_MODE_ICON)
{
impl->browse_files_tree_view = NULL;
impl->list_name_column = NULL;
impl->list_mtime_column = NULL;
impl->list_size_column = NULL;
}
- else if (target == VIEW_MODE_LIST)
+ else if (view_mode == VIEW_MODE_LIST)
impl->browse_files_icon_view = NULL;
else
g_assert_not_reached ();
@@ -4943,6 +4943,16 @@ view_mode_combo_box_changed_cb (GtkComboBox *combo,
gtk_widget_show (impl->browse_files_current_view);
}
+/* Callback used when view mode combo box active item is changed */
+static void
+view_mode_combo_box_changed_cb (GtkComboBox *combo,
+ GtkFileChooserDefault *impl)
+{
+ ViewMode target = gtk_combo_box_get_active (combo);
+
+ view_mode_set (impl, target);
+}
+
/* Callback used when one of the location mode buttons is toggled */
static void
location_button_toggled_cb (GtkToggleButton *toggle,
@@ -6221,6 +6231,7 @@ static void
settings_load (GtkFileChooserDefault *impl)
{
LocationMode location_mode;
+ ViewMode view_mode;
gboolean show_hidden;
gboolean show_size_column;
gint sort_column;
@@ -6229,12 +6240,14 @@ settings_load (GtkFileChooserDefault *impl)
settings_ensure (impl);
location_mode = g_settings_get_enum (impl->settings, SETTINGS_KEY_LOCATION_MODE);
+ view_mode = g_settings_get_enum (impl->settings, SETTINGS_KEY_VIEW_MODE);
show_hidden = g_settings_get_boolean (impl->settings, SETTINGS_KEY_SHOW_HIDDEN);
show_size_column = g_settings_get_boolean (impl->settings, SETTINGS_KEY_SHOW_SIZE_COLUMN);
sort_column = g_settings_get_enum (impl->settings, SETTINGS_KEY_SORT_COLUMN);
sort_order = g_settings_get_enum (impl->settings, SETTINGS_KEY_SORT_ORDER);
location_mode_set (impl, location_mode, TRUE);
+ view_mode_set (impl, view_mode);
gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (impl), show_hidden);
@@ -6290,6 +6303,7 @@ settings_save (GtkFileChooserDefault *impl)
/* All the other state */
g_settings_set_enum (impl->settings, SETTINGS_KEY_LOCATION_MODE, impl->location_mode);
+ g_settings_set_enum (impl->settings, SETTINGS_KEY_VIEW_MODE, impl->view_mode);
g_settings_set_boolean (impl->settings, SETTINGS_KEY_SHOW_HIDDEN,
gtk_file_chooser_get_show_hidden (GTK_FILE_CHOOSER (impl)));
g_settings_set_boolean (impl->settings, SETTINGS_KEY_SHOW_SIZE_COLUMN, impl->show_size_column);
diff --git a/gtk/org.gtk.Settings.FileChooser.gschema.xml b/gtk/org.gtk.Settings.FileChooser.gschema.xml
index 849e8ff..44a8d2a 100644
--- a/gtk/org.gtk.Settings.FileChooser.gschema.xml
+++ b/gtk/org.gtk.Settings.FileChooser.gschema.xml
@@ -33,6 +33,11 @@
<value nick='descending' value='1'/>
</enum>
+ <enum id='org.gtk.Settings.FileChooser.ViewMode'>
+ <value nick='list-view' value='0'/>
+ <value nick='icon-view' value='1'/>
+ </enum>
+
<schema id='org.gtk.Settings.FileChooser'>
<key name='last-folder-uri' type='s'>
<default>""</default>
@@ -40,6 +45,9 @@
<key name='location-mode' enum='org.gtk.Settings.FileChooser.LocationMode'>
<default>'path-bar'</default>
</key>
+ <key name='view-mode' enum='org.gtk.Settings.FileChooser.ViewMode'>
+ <default>'list-view'</default>
+ </key>
<key name='show-hidden' type='b'>
<default>false</default>
</key>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]