mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
Save and restore the selected row in the bookmark list and the save folder
2005-01-17 Matthias Clasen <mclasen@redhat.com> * gtk/gtkfilechooserdefault.c (shortcuts_add_bookmarks): Save and restore the selected row in the bookmark list and the save folder combo. (#164290)
This commit is contained in:
parent
5a1da160a3
commit
a1f0b89d92
@ -1,3 +1,9 @@
|
||||
2005-01-17 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkfilechooserdefault.c (shortcuts_add_bookmarks): Save
|
||||
and restore the selected row in the bookmark list and the
|
||||
save folder combo. (#164290)
|
||||
|
||||
2005-01-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_new_with_backend):
|
||||
|
@ -1,3 +1,9 @@
|
||||
2005-01-17 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkfilechooserdefault.c (shortcuts_add_bookmarks): Save
|
||||
and restore the selected row in the bookmark list and the
|
||||
save folder combo. (#164290)
|
||||
|
||||
2005-01-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_new_with_backend):
|
||||
|
@ -1,3 +1,9 @@
|
||||
2005-01-17 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkfilechooserdefault.c (shortcuts_add_bookmarks): Save
|
||||
and restore the selected row in the bookmark list and the
|
||||
save folder combo. (#164290)
|
||||
|
||||
2005-01-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_new_with_backend):
|
||||
|
@ -376,6 +376,8 @@ static gboolean shortcuts_select_func (GtkTreeSelection *selection,
|
||||
GtkTreePath *path,
|
||||
gboolean path_currently_selected,
|
||||
gpointer data);
|
||||
static gboolean shortcuts_get_selected (GtkFileChooserDefault *impl,
|
||||
GtkTreeIter *iter);
|
||||
static void shortcuts_activate_iter (GtkFileChooserDefault *impl,
|
||||
GtkTreeIter *iter);
|
||||
static int shortcuts_get_index (GtkFileChooserDefault *impl,
|
||||
@ -1056,9 +1058,9 @@ shortcuts_reload_icons (GtkFileChooserDefault *impl)
|
||||
} while (gtk_tree_model_iter_next (GTK_TREE_MODEL (impl->shortcuts_model),&iter));
|
||||
}
|
||||
|
||||
/* If a shortcut corresponds to the current folder, selects it */
|
||||
static void
|
||||
shortcuts_find_current_folder (GtkFileChooserDefault *impl)
|
||||
static void
|
||||
shortcuts_find_folder (GtkFileChooserDefault *impl,
|
||||
GtkFilePath *folder)
|
||||
{
|
||||
GtkTreeSelection *selection;
|
||||
int pos;
|
||||
@ -1066,8 +1068,8 @@ shortcuts_find_current_folder (GtkFileChooserDefault *impl)
|
||||
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_shortcuts_tree_view));
|
||||
|
||||
g_assert (impl->current_folder != NULL);
|
||||
pos = shortcut_find_position (impl, impl->current_folder);
|
||||
g_assert (folder != NULL);
|
||||
pos = shortcut_find_position (impl, folder);
|
||||
if (pos == -1)
|
||||
{
|
||||
gtk_tree_selection_unselect_all (selection);
|
||||
@ -1079,6 +1081,13 @@ shortcuts_find_current_folder (GtkFileChooserDefault *impl)
|
||||
gtk_tree_path_free (path);
|
||||
}
|
||||
|
||||
/* If a shortcut corresponds to the current folder, selects it */
|
||||
static void
|
||||
shortcuts_find_current_folder (GtkFileChooserDefault *impl)
|
||||
{
|
||||
shortcuts_find_folder (impl, impl->current_folder);
|
||||
}
|
||||
|
||||
/* Convenience function to get the display name and icon info for a path */
|
||||
static GtkFileInfo *
|
||||
get_file_info (GtkFileSystem *file_system,
|
||||
@ -1452,10 +1461,41 @@ shortcuts_add_bookmarks (GtkFileChooserDefault *impl)
|
||||
{
|
||||
GSList *bookmarks;
|
||||
gboolean old_changing_folders;
|
||||
|
||||
GtkTreeIter iter;
|
||||
GtkFilePath *list_selected = NULL;
|
||||
GtkFilePath *combo_selected = NULL;
|
||||
gboolean is_volume;
|
||||
gpointer col_data;
|
||||
|
||||
old_changing_folders = impl->changing_folder;
|
||||
impl->changing_folder = TRUE;
|
||||
|
||||
if (shortcuts_get_selected (impl, &iter))
|
||||
{
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (impl->shortcuts_model),
|
||||
&iter,
|
||||
SHORTCUTS_COL_DATA, &col_data,
|
||||
SHORTCUTS_COL_IS_VOLUME, &is_volume,
|
||||
-1);
|
||||
|
||||
if (col_data && !is_volume)
|
||||
list_selected = gtk_file_path_copy (col_data);
|
||||
}
|
||||
|
||||
if (impl->save_folder_combo &&
|
||||
gtk_combo_box_get_active_iter (GTK_COMBO_BOX (impl->save_folder_combo),
|
||||
&iter))
|
||||
{
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (impl->shortcuts_model),
|
||||
&iter,
|
||||
SHORTCUTS_COL_DATA, &col_data,
|
||||
SHORTCUTS_COL_IS_VOLUME, &is_volume,
|
||||
-1);
|
||||
|
||||
if (col_data && !is_volume)
|
||||
combo_selected = gtk_file_path_copy (col_data);
|
||||
}
|
||||
|
||||
if (impl->num_bookmarks > 0)
|
||||
shortcuts_remove_rows (impl,
|
||||
shortcuts_get_index (impl, SHORTCUTS_BOOKMARKS_SEPARATOR),
|
||||
@ -1466,12 +1506,28 @@ shortcuts_add_bookmarks (GtkFileChooserDefault *impl)
|
||||
gtk_file_paths_free (bookmarks);
|
||||
|
||||
if (impl->num_bookmarks > 0)
|
||||
{
|
||||
shortcuts_insert_separator (impl, SHORTCUTS_BOOKMARKS_SEPARATOR);
|
||||
}
|
||||
shortcuts_insert_separator (impl, SHORTCUTS_BOOKMARKS_SEPARATOR);
|
||||
|
||||
if (impl->shortcuts_filter_model)
|
||||
gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (impl->shortcuts_filter_model));
|
||||
|
||||
if (list_selected)
|
||||
{
|
||||
shortcuts_find_folder (impl, list_selected);
|
||||
gtk_file_path_free (list_selected);
|
||||
}
|
||||
|
||||
if (combo_selected)
|
||||
{
|
||||
gint pos;
|
||||
|
||||
pos = shortcut_find_position (impl, combo_selected);
|
||||
if (pos != -1)
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (impl->save_folder_combo),
|
||||
pos);
|
||||
gtk_file_path_free (combo_selected);
|
||||
}
|
||||
|
||||
impl->changing_folder = old_changing_folders;
|
||||
}
|
||||
|
||||
@ -1918,6 +1974,9 @@ shortcuts_get_selected (GtkFileChooserDefault *impl,
|
||||
GtkTreeSelection *selection;
|
||||
GtkTreeIter parent_iter;
|
||||
|
||||
if (!impl->browse_shortcuts_tree_view)
|
||||
return FALSE;
|
||||
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (impl->browse_shortcuts_tree_view));
|
||||
|
||||
if (!gtk_tree_selection_get_selected (selection, NULL, &parent_iter))
|
||||
|
Loading…
Reference in New Issue
Block a user