diff options
author | dudemanguy | 2018-04-20 12:06:11 -0500 |
---|---|---|
committer | dudemanguy | 2018-04-20 12:06:11 -0500 |
commit | 66d453208029688d9c94c366fbdac6da5bbdc036 (patch) | |
tree | 29e1d8a1fb097e795514e284dbd0339303b2d59e | |
parent | b414b0bae119770389b18072476bf18283d7e874 (diff) | |
download | aur-66d453208029688d9c94c366fbdac6da5bbdc036.tar.gz |
fix tree view columns and icon view popover
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | gtk3-filechooser-icon-view.patch | 374 |
3 files changed, 265 insertions, 117 deletions
@@ -1,7 +1,7 @@ pkgbase = gtk3-patched-filechooser-icon-view pkgdesc = GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch. pkgver = 3.22.30 - pkgrel = 1 + pkgrel = 2 url = https://gist.github.com/Dudemanguy911/c172394e30e1e7d0f477ad15c719bc71 install = gtk3.install arch = x86_64 @@ -52,7 +52,7 @@ pkgbase = gtk3-patched-filechooser-icon-view sha256sums = SKIP sha256sums = 01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202 sha256sums = de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845 - sha256sums = aa25ef34086e1b47a647006fa3946328b15f82ba16dac2ab37ceed0693c5425c + sha256sums = 3cb0c1ee424f9d9bff8e97c18ba2d4680606ee4beee1e409fbee4b0dbad6c86e pkgname = gtk3-patched-filechooser-icon-view @@ -5,7 +5,7 @@ pkgname=gtk3-patched-filechooser-icon-view pkgver=3.22.30 -pkgrel=1 +pkgrel=2 pkgdesc="GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch." arch=(x86_64) url="https://gist.github.com/Dudemanguy911/c172394e30e1e7d0f477ad15c719bc71" @@ -30,7 +30,7 @@ source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit" sha256sums=('SKIP' '01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202' 'de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845' - 'aa25ef34086e1b47a647006fa3946328b15f82ba16dac2ab37ceed0693c5425c') + '3cb0c1ee424f9d9bff8e97c18ba2d4680606ee4beee1e409fbee4b0dbad6c86e') pkgver() { cd gtk git describe --tags | sed 's/-/+/g' diff --git a/gtk3-filechooser-icon-view.patch b/gtk3-filechooser-icon-view.patch index d809823a338e..2f95ead87439 100644 --- a/gtk3-filechooser-icon-view.patch +++ b/gtk3-filechooser-icon-view.patch @@ -18,7 +18,7 @@ index 0094beb299..433a623963 100644 #define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column" #define SETTINGS_KEY_SORT_COLUMN "sort-column" diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c -index 09a119049c..abf53f1b9d 100644 +index d1dd2f0059..cfbc18d715 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -1,4 +1,4 @@ @@ -40,15 +40,15 @@ index 09a119049c..abf53f1b9d 100644 #include "gtkpaned.h" #include "gtkpathbar.h" #include "gtkplacessidebar.h" -@@ -80,6 +82,7 @@ - #include "gtkdebug.h" +@@ -79,6 +81,7 @@ + #include "gtkgesturelongpress.h" #include <cairo-gobject.h> +#include <math.h> #ifdef HAVE_UNISTD_H #include <unistd.h> -@@ -197,6 +200,11 @@ typedef enum { +@@ -196,6 +199,11 @@ typedef enum { STARTUP_MODE_CWD } StartupMode; @@ -60,7 +60,7 @@ index 09a119049c..abf53f1b9d 100644 typedef enum { CLOCK_FORMAT_24, CLOCK_FORMAT_12 -@@ -221,8 +229,12 @@ struct _GtkFileChooserWidgetPrivate { +@@ -220,8 +228,12 @@ struct _GtkFileChooserWidgetPrivate { GtkWidget *browse_header_revealer; GtkWidget *browse_header_stack; GtkWidget *browse_files_stack; @@ -74,7 +74,7 @@ index 09a119049c..abf53f1b9d 100644 GtkWidget *remote_warning_bar; GtkWidget *browse_files_popover; -@@ -253,6 +265,7 @@ struct _GtkFileChooserWidgetPrivate { +@@ -252,6 +264,7 @@ struct _GtkFileChooserWidgetPrivate { GtkGesture *long_press_gesture; @@ -82,7 +82,7 @@ index 09a119049c..abf53f1b9d 100644 GtkFileSystemModel *browse_files_model; char *browse_files_last_selected_name; -@@ -337,10 +350,17 @@ struct _GtkFileChooserWidgetPrivate { +@@ -336,10 +349,17 @@ struct _GtkFileChooserWidgetPrivate { guint location_changed_id; gulong settings_signal_id; @@ -101,7 +101,7 @@ index 09a119049c..abf53f1b9d 100644 gulong toplevel_set_focus_id; GtkWidget *toplevel_last_focus_widget; -@@ -403,7 +423,8 @@ enum { +@@ -402,7 +422,8 @@ enum { MODEL_COL_NAME_COLLATED, MODEL_COL_IS_FOLDER, MODEL_COL_IS_SENSITIVE, @@ -111,7 +111,7 @@ index 09a119049c..abf53f1b9d 100644 MODEL_COL_SIZE_TEXT, MODEL_COL_DATE_TEXT, MODEL_COL_TIME_TEXT, -@@ -422,7 +443,8 @@ enum { +@@ -421,7 +442,8 @@ enum { G_TYPE_STRING, /* MODEL_COL_NAME_COLLATED */ \ G_TYPE_BOOLEAN, /* MODEL_COL_IS_FOLDER */ \ G_TYPE_BOOLEAN, /* MODEL_COL_IS_SENSITIVE */ \ @@ -121,7 +121,7 @@ index 09a119049c..abf53f1b9d 100644 G_TYPE_STRING, /* MODEL_COL_SIZE_TEXT */ \ G_TYPE_STRING, /* MODEL_COL_DATE_TEXT */ \ G_TYPE_STRING, /* MODEL_COL_TIME_TEXT */ \ -@@ -432,7 +454,10 @@ enum { +@@ -431,7 +453,10 @@ enum { #define DEFAULT_RECENT_FILES_LIMIT 50 /* Icon size for if we can't get it from the theme */ @@ -133,7 +133,7 @@ index 09a119049c..abf53f1b9d 100644 #define PREVIEW_HBOX_SPACING 12 #define NUM_LINES 45 -@@ -553,7 +578,7 @@ static gboolean list_select_func (GtkTreeSelection *selection, +@@ -552,7 +577,7 @@ static gboolean list_select_func (GtkTreeSelection *selection, gboolean path_currently_selected, gpointer data); @@ -142,7 +142,7 @@ index 09a119049c..abf53f1b9d 100644 GtkFileChooserWidget *impl); static void list_row_activated (GtkTreeView *tree_view, GtkTreePath *path, -@@ -561,6 +586,13 @@ static void list_row_activated (GtkTreeView *tree_view, +@@ -560,6 +585,13 @@ static void list_row_activated (GtkTreeView *tree_view, GtkFileChooserWidget *impl); static void list_cursor_changed (GtkTreeView *treeview, GtkFileChooserWidget *impl); @@ -156,7 +156,7 @@ index 09a119049c..abf53f1b9d 100644 static void path_bar_clicked (GtkPathBar *path_bar, GFile *file, -@@ -573,6 +605,13 @@ static void update_cell_renderer_attributes (GtkFileChooserWidget *impl); +@@ -572,6 +604,13 @@ static void update_cell_renderer_attributes (GtkFileChooserWidget *impl); static void load_remove_timer (GtkFileChooserWidget *impl, LoadState new_load_state); static void browse_files_center_selected_row (GtkFileChooserWidget *impl); @@ -170,7 +170,7 @@ index 09a119049c..abf53f1b9d 100644 static void location_switch_to_path_bar (GtkFileChooserWidget *impl); static void stop_loading_and_clear_list_model (GtkFileChooserWidget *impl, -@@ -602,13 +641,33 @@ static gboolean recent_should_respond (GtkFileChooserWidget *impl); +@@ -601,13 +640,33 @@ static gboolean recent_should_respond (GtkFileChooserWidget *impl); static void set_file_system_backend (GtkFileChooserWidget *impl); static void unset_file_system_backend (GtkFileChooserWidget *impl); @@ -205,7 +205,7 @@ index 09a119049c..abf53f1b9d 100644 G_DEFINE_TYPE_WITH_CODE (GtkFileChooserWidget, gtk_file_chooser_widget, GTK_TYPE_BOX, G_ADD_PRIVATE (GtkFileChooserWidget) -@@ -937,7 +996,7 @@ update_preview_widget_visibility (GtkFileChooserWidget *impl) +@@ -936,7 +995,7 @@ update_preview_widget_visibility (GtkFileChooserWidget *impl) } } @@ -214,7 +214,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_show (priv->preview_box); else gtk_widget_hide (priv->preview_box); -@@ -1205,19 +1264,17 @@ selection_check (GtkFileChooserWidget *impl, +@@ -1204,19 +1263,17 @@ selection_check (GtkFileChooserWidget *impl, gboolean *all_files, gboolean *all_folders) { @@ -238,7 +238,7 @@ index 09a119049c..abf53f1b9d 100644 g_assert (closure.num_selected == 0 || !(closure.all_files && closure.all_folders)); -@@ -1339,7 +1396,7 @@ browse_files_key_press_event_cb (GtkWidget *widget, +@@ -1338,7 +1395,7 @@ browse_files_key_press_event_cb (GtkWidget *widget, return TRUE; } @@ -247,7 +247,7 @@ index 09a119049c..abf53f1b9d 100644 { if (gtk_widget_child_focus (priv->places_sidebar, GTK_DIR_LEFT)) return TRUE; -@@ -1442,12 +1499,8 @@ add_to_shortcuts_cb (GSimpleAction *action, +@@ -1441,12 +1498,8 @@ add_to_shortcuts_cb (GSimpleAction *action, gpointer data) { GtkFileChooserWidget *impl = data; @@ -261,7 +261,76 @@ index 09a119049c..abf53f1b9d 100644 add_bookmark_foreach_cb, impl); } -@@ -2332,9 +2385,9 @@ file_list_show_popover (GtkFileChooserWidget *impl, +@@ -2262,26 +2315,51 @@ file_list_build_popover (GtkFileChooserWidget *impl) + if (priv->browse_files_popover) + return; + +- priv->browse_files_popover = gtk_popover_new (priv->browse_files_tree_view); +- box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); +- g_object_set (box, "margin", 10, NULL); +- gtk_widget_show (box); +- gtk_container_add (GTK_CONTAINER (priv->browse_files_popover), box); ++ if (priv->view_mode == VIEW_MODE_LIST) ++ { ++ priv->browse_files_popover = gtk_popover_new (priv->browse_files_tree_view); ++ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); ++ g_object_set (box, "margin", 10, NULL); ++ gtk_widget_show (box); ++ gtk_container_add (GTK_CONTAINER (priv->browse_files_popover), box); ++ ++ priv->visit_file_item = add_button (box, _("_Visit File"), "item.visit"); ++ priv->open_folder_item = add_button (box, _("_Open With File Manager"), "item.open"); ++ priv->copy_file_location_item = add_button (box, _("_Copy Location"), "item.copy-location"); ++ priv->add_shortcut_item = add_button (box, _("_Add to Bookmarks"), "item.add-shortcut"); ++ priv->rename_file_item = add_button (box, _("_Rename"), "item.rename"); ++ priv->delete_file_item = add_button (box, _("_Delete"), "item.delete"); ++ priv->trash_file_item = add_button (box, _("_Move to Trash"), "item.trash"); ++ ++ append_separator (box); ++ ++ priv->hidden_files_item = add_button (box, _("Show _Hidden Files"), "item.toggle-show-hidden"); ++ priv->size_column_item = add_button (box, _("Show _Size Column"), "item.toggle-show-size"); ++ priv->show_time_item = add_button (box, _("Show _Time"), "item.toggle-show-time"); ++ priv->sort_directories_item = add_button (box, _("Sort _Folders before Files"), "item.toggle-sort-dirs-first"); ++ } + +- priv->visit_file_item = add_button (box, _("_Visit File"), "item.visit"); +- priv->open_folder_item = add_button (box, _("_Open With File Manager"), "item.open"); +- priv->copy_file_location_item = add_button (box, _("_Copy Location"), "item.copy-location"); +- priv->add_shortcut_item = add_button (box, _("_Add to Bookmarks"), "item.add-shortcut"); +- priv->rename_file_item = add_button (box, _("_Rename"), "item.rename"); +- priv->delete_file_item = add_button (box, _("_Delete"), "item.delete"); +- priv->trash_file_item = add_button (box, _("_Move to Trash"), "item.trash"); ++ if (priv->view_mode == VIEW_MODE_ICON) ++ { ++ priv->browse_files_popover = gtk_popover_new (priv->browse_files_tree_view); ++ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); ++ g_object_set (box, "margin", 10, NULL); ++ gtk_widget_show (box); ++ gtk_container_add (GTK_CONTAINER (priv->browse_files_popover), box); ++ ++ priv->visit_file_item = add_button (box, _("_Visit File"), "item.visit"); ++ priv->open_folder_item = add_button (box, _("_Open With File Manager"), "item.open"); ++ priv->copy_file_location_item = add_button (box, _("_Copy Location"), "item.copy-location"); ++ priv->add_shortcut_item = add_button (box, _("_Add to Bookmarks"), "item.add-shortcut"); ++ priv->rename_file_item = add_button (box, _("_Rename"), "item.rename"); ++ priv->delete_file_item = add_button (box, _("_Delete"), "item.delete"); ++ priv->trash_file_item = add_button (box, _("_Move to Trash"), "item.trash"); + +- append_separator (box); ++ append_separator (box); + +- priv->hidden_files_item = add_button (box, _("Show _Hidden Files"), "item.toggle-show-hidden"); +- priv->size_column_item = add_button (box, _("Show _Size Column"), "item.toggle-show-size"); +- priv->show_time_item = add_button (box, _("Show _Time"), "item.toggle-show-time"); +- priv->sort_directories_item = add_button (box, _("Sort _Folders before Files"), "item.toggle-sort-dirs-first"); ++ priv->hidden_files_item = add_button (box, _("Show _Hidden Files"), "item.toggle-show-hidden"); ++ priv->sort_directories_item = add_button (box, _("Sort _Folders before Files"), "item.toggle-sort-dirs-first"); ++ } + } + + /* Updates the popover for the file list, creating it if necessary */ +@@ -2331,9 +2409,9 @@ file_list_show_popover (GtkFileChooserWidget *impl, { GtkFileChooserWidgetPrivate *priv = impl->priv; GdkRectangle rect; @@ -272,7 +341,7 @@ index 09a119049c..abf53f1b9d 100644 GtkTreePath *path; -@@ -2342,15 +2395,16 @@ file_list_show_popover (GtkFileChooserWidget *impl, +@@ -2341,15 +2419,16 @@ file_list_show_popover (GtkFileChooserWidget *impl, selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->browse_files_tree_view)); list = gtk_tree_selection_get_selected_rows (selection, &model); @@ -287,14 +356,21 @@ index 09a119049c..abf53f1b9d 100644 + gtk_tree_view_convert_bin_window_to_widget_coords (GTK_TREE_VIEW (priv->browse_files_tree_view), + rect.x, rect.y, &rect.x, &rect.y); -- rect.x = CLAMP (x - 20, 0, gtk_widget_get_allocated_width (priv->browse_files_tree_view) - 40); + rect.x = CLAMP (x - 20, 0, gtk_widget_get_allocated_width (priv->browse_files_tree_view) - 40); - rect.width = 40; -+ rect.x = CLAMP (x - 20, 0, gtk_widget_get_allocated_width (priv->browse_files_icon_view) - 40); + rect.width = 40; g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); } -@@ -2446,7 +2500,7 @@ list_button_press_event_cb (GtkWidget *widget, +@@ -2386,7 +2465,6 @@ list_button_press_event_cb (GtkWidget *widget, + GdkEventButton *event, + GtkFileChooserWidget *impl) + { +- GtkFileChooserWidgetPrivate *priv = impl->priv; + static gboolean in_press = FALSE; + + if (in_press) +@@ -2396,7 +2474,7 @@ list_button_press_event_cb (GtkWidget *widget, return FALSE; in_press = TRUE; @@ -303,7 +379,7 @@ index 09a119049c..abf53f1b9d 100644 in_press = FALSE; file_list_show_popover (impl, event->x, event->y); -@@ -2477,12 +2531,15 @@ file_list_set_sort_column_ids (GtkFileChooserWidget *impl) +@@ -2427,12 +2505,15 @@ file_list_set_sort_column_ids (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -324,7 +400,7 @@ index 09a119049c..abf53f1b9d 100644 } static gboolean -@@ -2505,11 +2562,22 @@ file_list_query_tooltip_cb (GtkWidget *widget, +@@ -2455,11 +2536,22 @@ file_list_query_tooltip_cb (GtkWidget *widget, return FALSE; @@ -352,7 +428,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_tree_model_get (model, &iter, MODEL_COL_FILE, &file, -@@ -2523,10 +2591,18 @@ file_list_query_tooltip_cb (GtkWidget *widget, +@@ -2473,10 +2565,18 @@ file_list_query_tooltip_cb (GtkWidget *widget, filename = g_file_get_path (file); gtk_tooltip_set_text (tooltip, filename); @@ -375,7 +451,7 @@ index 09a119049c..abf53f1b9d 100644 g_free (filename); g_object_unref (file); gtk_tree_path_free (path); -@@ -2542,8 +2618,8 @@ set_icon_cell_renderer_fixed_size (GtkFileChooserWidget *impl) +@@ -2492,8 +2592,8 @@ set_icon_cell_renderer_fixed_size (GtkFileChooserWidget *impl) gtk_cell_renderer_get_padding (priv->list_pixbuf_renderer, &xpad, &ypad); gtk_cell_renderer_set_fixed_size (priv->list_pixbuf_renderer, @@ -386,7 +462,7 @@ index 09a119049c..abf53f1b9d 100644 } static gboolean -@@ -2827,7 +2903,7 @@ location_mode_set (GtkFileChooserWidget *impl, +@@ -2777,7 +2877,7 @@ location_mode_set (GtkFileChooserWidget *impl, location_switch_to_path_bar (impl); if (switch_to_file_list) @@ -395,7 +471,7 @@ index 09a119049c..abf53f1b9d 100644 break; -@@ -2898,6 +2974,117 @@ location_toggle_popup_handler (GtkFileChooserWidget *impl) +@@ -2848,6 +2948,118 @@ location_toggle_popup_handler (GtkFileChooserWidget *impl) } } @@ -421,6 +497,7 @@ index 09a119049c..abf53f1b9d 100644 + GtkFileChooserWidgetPrivate *priv = impl->priv; + GtkWidget *old_view = NULL; + ViewMode old_view_mode = priv->view_mode; ++ priv->browse_files_popover = NULL; + + if (old_view_mode == view_mode) + return; @@ -513,7 +590,7 @@ index 09a119049c..abf53f1b9d 100644 static void gtk_file_chooser_widget_constructed (GObject *object) { -@@ -2933,7 +3120,6 @@ set_extra_widget (GtkFileChooserWidget *impl, +@@ -2883,7 +3095,6 @@ set_extra_widget (GtkFileChooserWidget *impl, if (extra_widget) { g_object_ref (extra_widget); @@ -521,7 +598,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_show (extra_widget); } -@@ -3006,18 +3192,11 @@ set_select_multiple (GtkFileChooserWidget *impl, +@@ -2956,18 +3167,11 @@ set_select_multiple (GtkFileChooserWidget *impl, gboolean property_notify) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -541,7 +618,7 @@ index 09a119049c..abf53f1b9d 100644 priv->select_multiple = select_multiple; g_object_notify (G_OBJECT (impl), "select-multiple"); -@@ -3144,6 +3323,7 @@ operation_mode_set_enter_location (GtkFileChooserWidget *impl) +@@ -3094,6 +3298,7 @@ operation_mode_set_enter_location (GtkFileChooserWidget *impl) gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_header_stack), "location"); gtk_revealer_set_reveal_child (GTK_REVEALER (priv->browse_header_revealer), TRUE); location_bar_update (impl); @@ -549,7 +626,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_set_sensitive (priv->filter_combo, TRUE); location_mode_set (impl, LOCATION_MODE_FILENAME_ENTRY); } -@@ -3173,7 +3353,7 @@ operation_mode_set_search (GtkFileChooserWidget *impl) +@@ -3123,7 +3328,7 @@ operation_mode_set_search (GtkFileChooserWidget *impl) visible_widget = gtk_stack_get_visible_child (GTK_STACK (priv->browse_files_stack)); if (visible_widget != priv->places_view && @@ -558,7 +635,7 @@ index 09a119049c..abf53f1b9d 100644 { gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_files_stack), "list"); } -@@ -3298,6 +3478,12 @@ update_appearance (GtkFileChooserWidget *impl) +@@ -3248,6 +3453,12 @@ update_appearance (GtkFileChooserWidget *impl) location_mode_set (impl, priv->location_mode); } @@ -571,7 +648,7 @@ index 09a119049c..abf53f1b9d 100644 if (priv->location_entry) _gtk_file_chooser_entry_set_action (GTK_FILE_CHOOSER_ENTRY (priv->location_entry), priv->action); -@@ -3306,7 +3492,7 @@ update_appearance (GtkFileChooserWidget *impl) +@@ -3256,7 +3467,7 @@ update_appearance (GtkFileChooserWidget *impl) /* This *is* needed; we need to redraw the file list because the "sensitivity" * of files may change depending whether we are in a file or folder-only mode. */ @@ -580,7 +657,7 @@ index 09a119049c..abf53f1b9d 100644 emit_default_size_changed (impl); } -@@ -3739,14 +3925,28 @@ change_icon_theme (GtkFileChooserWidget *impl) +@@ -3686,14 +3897,28 @@ change_icon_theme (GtkFileChooserWidget *impl) profile_start ("start", NULL); if (gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height)) @@ -613,7 +690,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_queue_resize (priv->browse_files_tree_view); profile_end ("end", NULL); -@@ -3847,7 +4047,7 @@ set_sort_column (GtkFileChooserWidget *impl) +@@ -3794,7 +4019,7 @@ set_sort_column (GtkFileChooserWidget *impl) GtkFileChooserWidgetPrivate *priv = impl->priv; GtkTreeSortable *sortable; @@ -622,7 +699,7 @@ index 09a119049c..abf53f1b9d 100644 /* can happen when we're still populating the model */ if (sortable == NULL) -@@ -3862,11 +4062,12 @@ static void +@@ -3809,11 +4034,12 @@ static void settings_load (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -636,7 +713,7 @@ index 09a119049c..abf53f1b9d 100644 GtkSortType sort_order; StartupMode startup_mode; gint sidebar_width; -@@ -3874,6 +4075,8 @@ settings_load (GtkFileChooserWidget *impl) +@@ -3821,6 +4047,8 @@ settings_load (GtkFileChooserWidget *impl) settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (impl)); @@ -645,7 +722,7 @@ index 09a119049c..abf53f1b9d 100644 show_hidden = g_settings_get_boolean (settings, SETTINGS_KEY_SHOW_HIDDEN); show_size_column = g_settings_get_boolean (settings, SETTINGS_KEY_SHOW_SIZE_COLUMN); sort_column = g_settings_get_enum (settings, SETTINGS_KEY_SORT_COLUMN); -@@ -3883,10 +4086,16 @@ settings_load (GtkFileChooserWidget *impl) +@@ -3830,10 +4058,16 @@ settings_load (GtkFileChooserWidget *impl) sort_directories_first = g_settings_get_boolean (settings, SETTINGS_KEY_SORT_DIRECTORIES_FIRST); date_format = g_settings_get_enum (settings, SETTINGS_KEY_DATE_FORMAT); @@ -663,7 +740,7 @@ index 09a119049c..abf53f1b9d 100644 priv->sort_column = sort_column; priv->sort_order = sort_order; -@@ -3914,6 +4123,8 @@ settings_save (GtkFileChooserWidget *impl) +@@ -3861,6 +4095,8 @@ settings_save (GtkFileChooserWidget *impl) /* All the other state */ g_settings_set_enum (settings, SETTINGS_KEY_LOCATION_MODE, priv->location_mode); @@ -672,7 +749,7 @@ index 09a119049c..abf53f1b9d 100644 g_settings_set_boolean (settings, SETTINGS_KEY_SHOW_HIDDEN, gtk_file_chooser_get_show_hidden (GTK_FILE_CHOOSER (impl))); g_settings_set_boolean (settings, SETTINGS_KEY_SHOW_SIZE_COLUMN, priv->show_size_column); -@@ -4388,10 +4599,14 @@ load_set_model (GtkFileChooserWidget *impl) +@@ -4335,10 +4571,14 @@ load_set_model (GtkFileChooserWidget *impl) g_assert (priv->browse_files_model != NULL); profile_msg (" gtk_tree_view_set_model start", NULL); @@ -691,7 +768,7 @@ index 09a119049c..abf53f1b9d 100644 set_sort_column (impl); profile_msg (" gtk_tree_view_set_model end", NULL); priv->list_sort_ascending = TRUE; -@@ -4471,7 +4686,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) +@@ -4418,7 +4658,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) GtkTreeIter dummy_iter; GtkTreeModel *tree_model; @@ -700,7 +777,7 @@ index 09a119049c..abf53f1b9d 100644 if (!tree_model) return; -@@ -4490,8 +4705,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) +@@ -4437,8 +4677,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) */ priv->auto_selecting_first_row = TRUE; @@ -710,7 +787,7 @@ index 09a119049c..abf53f1b9d 100644 priv->auto_selecting_first_row = FALSE; } gtk_tree_path_free (path); -@@ -4517,7 +4731,13 @@ center_selected_row_foreach_cb (GtkTreeModel *model, +@@ -4464,7 +4703,13 @@ center_selected_row_foreach_cb (GtkTreeModel *model, if (closure->already_centered) return; @@ -725,7 +802,7 @@ index 09a119049c..abf53f1b9d 100644 closure->already_centered = TRUE; } -@@ -4525,15 +4745,12 @@ center_selected_row_foreach_cb (GtkTreeModel *model, +@@ -4472,15 +4717,12 @@ center_selected_row_foreach_cb (GtkTreeModel *model, static void browse_files_center_selected_row (GtkFileChooserWidget *impl) { @@ -742,7 +819,7 @@ index 09a119049c..abf53f1b9d 100644 } static gboolean -@@ -4541,7 +4758,6 @@ show_and_select_files (GtkFileChooserWidget *impl, +@@ -4488,7 +4730,6 @@ show_and_select_files (GtkFileChooserWidget *impl, GSList *files) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -750,7 +827,7 @@ index 09a119049c..abf53f1b9d 100644 GtkFileSystemModel *fsmodel; gboolean enabled_hidden, removed_filters; gboolean selected_a_file; -@@ -4550,8 +4766,7 @@ show_and_select_files (GtkFileChooserWidget *impl, +@@ -4497,8 +4738,7 @@ show_and_select_files (GtkFileChooserWidget *impl, g_assert (priv->load_state == LOAD_FINISHED); g_assert (priv->browse_files_model != NULL); @@ -760,7 +837,7 @@ index 09a119049c..abf53f1b9d 100644 g_assert (fsmodel == priv->browse_files_model); -@@ -4606,11 +4821,10 @@ show_and_select_files (GtkFileChooserWidget *impl, +@@ -4553,11 +4793,10 @@ show_and_select_files (GtkFileChooserWidget *impl, { GtkTreePath *path; @@ -774,7 +851,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_tree_path_free (path); selected_a_file = TRUE; -@@ -4731,12 +4945,14 @@ stop_loading_and_clear_list_model (GtkFileChooserWidget *impl, +@@ -4678,12 +4917,14 @@ stop_loading_and_clear_list_model (GtkFileChooserWidget *impl, { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -790,7 +867,7 @@ index 09a119049c..abf53f1b9d 100644 } /* Replace 'target' with 'replacement' in the input string. */ -@@ -4914,6 +5130,18 @@ file_system_model_got_thumbnail (GObject *object, +@@ -4861,6 +5102,18 @@ file_system_model_got_thumbnail (GObject *object, gdk_threads_leave (); } @@ -809,7 +886,7 @@ index 09a119049c..abf53f1b9d 100644 static gboolean file_system_model_set (GtkFileSystemModel *model, GFile *file, -@@ -4973,12 +5201,15 @@ file_system_model_set (GtkFileSystemModel *model, +@@ -4920,12 +5173,15 @@ file_system_model_set (GtkFileSystemModel *model, else g_value_set_boolean (value, TRUE); break; @@ -827,7 +904,7 @@ index 09a119049c..abf53f1b9d 100644 } else { -@@ -5032,6 +5263,76 @@ file_system_model_set (GtkFileSystemModel *model, +@@ -4979,6 +5235,76 @@ file_system_model_set (GtkFileSystemModel *model, else g_value_set_boxed (value, NULL); break; @@ -904,7 +981,7 @@ index 09a119049c..abf53f1b9d 100644 case MODEL_COL_SIZE: g_value_set_int64 (value, info ? g_file_info_get_size (info) : 0); break; -@@ -5214,7 +5515,6 @@ static void +@@ -5161,7 +5487,6 @@ static void update_chooser_entry (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -912,7 +989,7 @@ index 09a119049c..abf53f1b9d 100644 struct update_chooser_entry_selected_foreach_closure closure; /* no need to update the file chooser's entry if there's no entry */ -@@ -5231,9 +5531,8 @@ update_chooser_entry (GtkFileChooserWidget *impl) +@@ -5178,9 +5503,8 @@ update_chooser_entry (GtkFileChooserWidget *impl) g_assert (priv->location_entry != NULL); @@ -923,7 +1000,7 @@ index 09a119049c..abf53f1b9d 100644 if (closure.num_selected == 0) { -@@ -5730,19 +6029,15 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser, +@@ -5677,19 +6001,15 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser, { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser); GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -947,7 +1024,7 @@ index 09a119049c..abf53f1b9d 100644 } static gboolean -@@ -5753,12 +6048,9 @@ maybe_select (GtkTreeModel *model, +@@ -5700,12 +6020,9 @@ maybe_select (GtkTreeModel *model, { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (data); GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -960,7 +1037,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_tree_model_get (model, iter, MODEL_COL_IS_FOLDER, &is_folder, MODEL_COL_IS_SENSITIVE, &is_sensitive, -@@ -5767,9 +6059,9 @@ maybe_select (GtkTreeModel *model, +@@ -5714,9 +6031,9 @@ maybe_select (GtkTreeModel *model, if (is_sensitive && ((is_folder && priv->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER) || (!is_folder && priv->action == GTK_FILE_CHOOSER_ACTION_OPEN))) @@ -972,7 +1049,7 @@ index 09a119049c..abf53f1b9d 100644 return FALSE; } -@@ -5785,8 +6077,15 @@ gtk_file_chooser_widget_select_all (GtkFileChooser *chooser) +@@ -5732,8 +6049,15 @@ gtk_file_chooser_widget_select_all (GtkFileChooser *chooser) { GtkTreeSelection *selection; @@ -990,7 +1067,7 @@ index 09a119049c..abf53f1b9d 100644 return; } -@@ -5799,10 +6098,7 @@ static void +@@ -5746,10 +6070,7 @@ static void gtk_file_chooser_widget_unselect_all (GtkFileChooser *chooser) { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser); @@ -1002,7 +1079,7 @@ index 09a119049c..abf53f1b9d 100644 pending_select_files_free (impl); } -@@ -5958,15 +6254,13 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) +@@ -5905,15 +6226,13 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) current_focus = NULL; file_list_seen = FALSE; @@ -1021,7 +1098,7 @@ index 09a119049c..abf53f1b9d 100644 /* If there is no selection in the file list, we probably have this situation: * -@@ -6000,7 +6294,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) +@@ -5947,7 +6266,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) else return NULL; } @@ -1030,7 +1107,7 @@ index 09a119049c..abf53f1b9d 100644 goto file_list; else if (priv->location_entry && priv->toplevel_last_focus_widget == priv->location_entry) goto file_entry; -@@ -6278,8 +6572,6 @@ switch_folder_foreach_cb (GtkTreeModel *model, +@@ -6225,8 +6544,6 @@ switch_folder_foreach_cb (GtkTreeModel *model, static void switch_to_selected_folder (GtkFileChooserWidget *impl) { @@ -1039,7 +1116,7 @@ index 09a119049c..abf53f1b9d 100644 struct switch_folder_closure closure; /* We do this with foreach() rather than get_selected() as we may be in -@@ -6290,8 +6582,7 @@ switch_to_selected_folder (GtkFileChooserWidget *impl) +@@ -6237,8 +6554,7 @@ switch_to_selected_folder (GtkFileChooserWidget *impl) closure.file = NULL; closure.num_selected = 0; @@ -1049,7 +1126,7 @@ index 09a119049c..abf53f1b9d 100644 g_assert (closure.file && closure.num_selected == 1); -@@ -6309,19 +6600,33 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl, +@@ -6256,19 +6572,33 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl, GtkTreeSelection *selection; GtkTreeIter iter; GFileInfo *info; @@ -1091,7 +1168,7 @@ index 09a119049c..abf53f1b9d 100644 return info; } -@@ -6814,7 +7119,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed) +@@ -6761,7 +7091,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed) current_focus = gtk_window_get_focus (GTK_WINDOW (toplevel)); @@ -1100,7 +1177,7 @@ index 09a119049c..abf53f1b9d 100644 { /* The following array encodes what we do based on the priv->action and the * number of files selected. -@@ -7061,7 +7366,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserEmbed *chooser_embed) +@@ -7008,7 +7338,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserEmbed *chooser_embed) { if (priv->location_mode == LOCATION_MODE_PATH_BAR || priv->operation_mode == OPERATION_MODE_RECENT) @@ -1109,7 +1186,7 @@ index 09a119049c..abf53f1b9d 100644 else widget = priv->location_entry; } -@@ -7099,45 +7404,24 @@ selected_foreach_get_file_cb (GtkTreeModel *model, +@@ -7046,45 +7376,24 @@ selected_foreach_get_file_cb (GtkTreeModel *model, static GSList * get_selected_files (GtkFileChooserWidget *impl) { @@ -1157,7 +1234,7 @@ index 09a119049c..abf53f1b9d 100644 result = g_slist_reverse (result); return result; -@@ -7208,6 +7492,7 @@ search_engine_finished_cb (GtkSearchEngine *engine, +@@ -7155,6 +7464,7 @@ search_engine_finished_cb (GtkSearchEngine *engine, gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_files_stack), "empty"); gtk_entry_grab_focus_without_selecting (GTK_ENTRY (priv->search_entry)); } @@ -1165,7 +1242,7 @@ index 09a119049c..abf53f1b9d 100644 } static void -@@ -7233,7 +7518,7 @@ search_clear_model (GtkFileChooserWidget *impl, +@@ -7180,7 +7490,7 @@ search_clear_model (GtkFileChooserWidget *impl, if (remove && gtk_tree_view_get_model (GTK_TREE_VIEW (priv->browse_files_tree_view)) == GTK_TREE_MODEL (priv->search_model)) @@ -1174,7 +1251,7 @@ index 09a119049c..abf53f1b9d 100644 g_clear_object (&priv->search_model); } -@@ -7442,7 +7727,7 @@ recent_clear_model (GtkFileChooserWidget *impl, +@@ -7389,7 +7699,7 @@ recent_clear_model (GtkFileChooserWidget *impl, return; if (remove) @@ -1183,7 +1260,7 @@ index 09a119049c..abf53f1b9d 100644 g_set_object (&priv->recent_model, NULL); } -@@ -7495,8 +7780,7 @@ recent_idle_cleanup (gpointer data) +@@ -7442,8 +7752,7 @@ recent_idle_cleanup (gpointer data) GtkFileChooserWidget *impl = load_data->impl; GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1193,7 +1270,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_tree_view_set_search_column (GTK_TREE_VIEW (priv->browse_files_tree_view), -1); gtk_tree_view_column_set_sort_column_id (priv->list_name_column, -1); -@@ -7623,12 +7907,10 @@ static gboolean +@@ -7570,12 +7879,10 @@ static gboolean recent_should_respond (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1207,7 +1284,7 @@ index 09a119049c..abf53f1b9d 100644 } static void -@@ -7688,29 +7970,41 @@ check_preview_change (GtkFileChooserWidget *impl) +@@ -7635,29 +7942,41 @@ check_preview_change (GtkFileChooserWidget *impl) GtkTreeModel *model; GtkTreeSelection *selection; @@ -1265,7 +1342,7 @@ index 09a119049c..abf53f1b9d 100644 { GtkTreeIter iter; -@@ -7794,15 +8088,13 @@ list_select_func (GtkTreeSelection *selection, +@@ -7741,15 +8060,13 @@ list_select_func (GtkTreeSelection *selection, return TRUE; } @@ -1284,7 +1361,7 @@ index 09a119049c..abf53f1b9d 100644 if (priv->location_entry) update_chooser_entry (impl); -@@ -7826,16 +8118,35 @@ list_row_activated (GtkTreeView *tree_view, +@@ -7773,16 +8090,35 @@ list_row_activated (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, GtkFileChooserWidget *impl) @@ -1323,7 +1400,7 @@ index 09a119049c..abf53f1b9d 100644 if (!gtk_tree_model_get_iter (model, &iter, path)) return; -@@ -7855,7 +8166,7 @@ list_row_activated (GtkTreeView *tree_view, +@@ -7802,7 +8138,7 @@ list_row_activated (GtkTreeView *tree_view, priv->action == GTK_FILE_CHOOSER_ACTION_SAVE) g_signal_emit_by_name (impl, "file-activated"); @@ -1332,7 +1409,7 @@ index 09a119049c..abf53f1b9d 100644 if (file) g_object_unref (file); -@@ -7886,10 +8197,13 @@ static void +@@ -7833,10 +8169,13 @@ static void update_cell_renderer_attributes (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1347,7 +1424,7 @@ index 09a119049c..abf53f1b9d 100644 "sensitive", MODEL_COL_IS_SENSITIVE, NULL); gtk_tree_view_column_set_attributes (priv->list_name_column, -@@ -8465,16 +8779,20 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8412,16 +8751,20 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, browse_widgets_hpaned); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, browse_files_stack); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, places_sidebar); @@ -1369,7 +1446,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, preview_box); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_align); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_and_filters); -@@ -8491,6 +8809,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8438,6 +8781,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_size_renderer); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_location_column); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_location_renderer); @@ -1377,7 +1454,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_name_entry); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_create_button); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, new_folder_error_label); -@@ -8500,6 +8819,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8447,6 +8791,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, rename_file_error_label); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, rename_file_popover); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, remote_warning_bar); @@ -1385,7 +1462,7 @@ index 09a119049c..abf53f1b9d 100644 /* And a *lot* of callbacks to bind ... */ gtk_widget_class_bind_template_callback (widget_class, browse_files_key_press_event_cb); -@@ -8514,6 +8834,10 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8461,6 +8806,10 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_callback (widget_class, file_list_drag_end_cb); gtk_widget_class_bind_template_callback (widget_class, list_selection_changed); gtk_widget_class_bind_template_callback (widget_class, list_cursor_changed); @@ -1396,7 +1473,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_widget_class_bind_template_callback (widget_class, filter_combo_changed); gtk_widget_class_bind_template_callback (widget_class, path_bar_clicked); gtk_widget_class_bind_template_callback (widget_class, places_sidebar_open_location_cb); -@@ -8560,6 +8884,18 @@ post_process_ui (GtkFileChooserWidget *impl) +@@ -8507,6 +8856,18 @@ post_process_ui (GtkFileChooserWidget *impl) GDK_ACTION_COPY | GDK_ACTION_MOVE); gtk_drag_dest_add_uri_targets (impl->priv->browse_files_tree_view); @@ -1415,7 +1492,7 @@ index 09a119049c..abf53f1b9d 100644 /* File browser treemodel columns are shared between GtkFileChooser implementations, * so we don't set cell renderer attributes in GtkBuilder, but rather keep that * in code. -@@ -8591,6 +8927,8 @@ post_process_ui (GtkFileChooserWidget *impl) +@@ -8538,6 +8899,8 @@ post_process_ui (GtkFileChooserWidget *impl) * that priv->icon_size be already setup. */ set_icon_cell_renderer_fixed_size (impl); @@ -1424,7 +1501,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_popover_set_default_widget (GTK_POPOVER (impl->priv->new_folder_popover), impl->priv->new_folder_create_button); gtk_popover_set_default_widget (GTK_POPOVER (impl->priv->rename_file_popover), impl->priv->rename_file_rename_button); -@@ -8636,7 +8974,8 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) +@@ -8583,7 +8946,8 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) priv->select_multiple = FALSE; priv->show_hidden = FALSE; priv->show_size_column = TRUE; @@ -1434,7 +1511,7 @@ index 09a119049c..abf53f1b9d 100644 priv->load_state = LOAD_EMPTY; priv->reload_state = RELOAD_EMPTY; priv->pending_select_files = NULL; -@@ -8647,6 +8986,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) +@@ -8594,6 +8958,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) priv->recent_manager = gtk_recent_manager_get_default (); priv->create_folders = TRUE; priv->auto_selecting_first_row = FALSE; @@ -1442,7 +1519,7 @@ index 09a119049c..abf53f1b9d 100644 /* Ensure GTK+ private types used by the template * definition before calling gtk_widget_init_template() -@@ -8694,6 +9034,258 @@ gtk_file_chooser_widget_new (GtkFileChooserAction action) +@@ -8641,6 +9006,258 @@ gtk_file_chooser_widget_new (GtkFileChooserAction action) NULL); } @@ -1701,7 +1778,7 @@ index 09a119049c..abf53f1b9d 100644 static void gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser, const char *id, -@@ -8746,7 +9338,7 @@ gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser, +@@ -8693,7 +9310,7 @@ gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser, widget = check; } @@ -1710,7 +1787,7 @@ index 09a119049c..abf53f1b9d 100644 gtk_container_add (GTK_CONTAINER (priv->choice_box), widget); } -@@ -8813,4 +9405,3 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser, +@@ -8760,4 +9377,3 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser, return NULL; } @@ -1753,7 +1830,7 @@ index c3753f2f6a..e35a9c7cb0 100644 <default>false</default> <summary>Show hidden files</summary> diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui -index ef227bdc70..5d1f6d9d33 100644 +index ef227bdc70..ee8d0e82f0 100644 --- a/gtk/ui/gtkfilechooserwidget.ui +++ b/gtk/ui/gtkfilechooserwidget.ui @@ -8,6 +8,56 @@ @@ -1813,7 +1890,7 @@ index ef227bdc70..5d1f6d9d33 100644 <child> <object class="GtkPaned" id="browse_widgets_hpaned"> <property name="visible">1</property> -@@ -155,49 +205,50 @@ +@@ -155,98 +205,160 @@ <property name="visible">1</property> <property name="orientation">vertical</property> <child> @@ -1856,9 +1933,6 @@ index ef227bdc70..5d1f6d9d33 100644 - <property name="title" translatable="yes">Name</property> - <property name="resizable">1</property> - <property name="expand">1</property> -- <child> -- <object class="GtkCellRendererPixbuf" id="list_pixbuf_renderer"> -- <property name="xpad">6</property> + <object class="GtkTreeView" id="browse_files_tree_view"> + <property name="visible">True</property> + <property name="can_focus">True</property> @@ -1876,12 +1950,11 @@ index ef227bdc70..5d1f6d9d33 100644 + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection2"> + <signal name="changed" handler="list_selection_changed" swapped="no"/> - </object> - </child> ++ </object> ++ </child> <child> -- <object class="GtkCellRendererText" id="list_name_renderer"> -- <property name="width-chars">10</property> -- <property name="ellipsize">end</property> +- <object class="GtkCellRendererPixbuf" id="list_pixbuf_renderer"> +- <property name="xpad">6</property> + <object class="GtkTreeViewColumn" id="list_name_column"> + <property name="resizable">True</property> + <property name="title" translatable="yes">Name</property> @@ -1899,11 +1972,79 @@ index ef227bdc70..5d1f6d9d33 100644 + </child> </object> </child> + <child> +- <object class="GtkCellRendererText" id="list_name_renderer"> +- <property name="width-chars">10</property> +- <property name="ellipsize">end</property> ++ <object class="GtkTreeViewColumn" id="list_location_column"> ++ <property name="title" translatable="yes">Location</property> ++ <property name="resizable">1</property> ++ <property name="visible">0</property> ++ <property name="expand">1</property> ++ <child> ++ <object class="GtkCellRendererText" id="list_location_renderer"> ++ <property name="xalign">0</property> ++ <property name="width-chars">10</property> ++ <property name="ellipsize">start</property> ++ <property name="xpad">6</property> ++ </object> ++ </child> + </object> + </child> +- </object> +- </child> +- <child> +- <object class="GtkTreeViewColumn" id="list_location_column"> +- <property name="title" translatable="yes">Location</property> +- <property name="resizable">1</property> +- <property name="visible">0</property> +- <property name="expand">1</property> + <child> +- <object class="GtkCellRendererText" id="list_location_renderer"> +- <property name="xalign">0</property> +- <property name="width-chars">10</property> +- <property name="ellipsize">start</property> +- <property name="xpad">6</property> ++ <object class="GtkTreeViewColumn" id="list_size_column"> ++ <property name="title" translatable="yes">Size</property> ++ <property name="sizing">fixed</property> ++ <child> ++ <object class="GtkCellRendererText" id="list_size_renderer"> ++ <property name="xalign">0</property> ++ <property name="xpad">6</property> ++ </object> ++ </child> + </object> + </child> +- </object> +- </child> +- <child> +- <object class="GtkTreeViewColumn" id="list_size_column"> +- <property name="title" translatable="yes">Size</property> +- <property name="sizing">fixed</property> + <child> +- <object class="GtkCellRendererText" id="list_size_renderer"> +- <property name="xalign">0</property> +- <property name="xpad">6</property> ++ <object class="GtkTreeViewColumn" id="list_time_column"> ++ <property name="title" translatable="yes">Modified</property> ++ <property name="sizing">fixed</property> ++ <child> ++ <object class="GtkCellRendererText" id="list_date_renderer"> ++ <property name="xpad">6</property> ++ </object> ++ </child> ++ <child> ++ <object class="GtkCellRendererText" id="list_time_renderer"> ++ <property name="xpad">6</property> ++ </object> ++ </child> + </object> + </child> </object> -@@ -248,6 +299,67 @@ </child> - </object> - </child> ++ </object> ++ </child> + <child type="tab"> + <object class="GtkLabel" id="label_list_view"> + <property name="visible">True</property> @@ -1920,7 +2061,10 @@ index ef227bdc70..5d1f6d9d33 100644 + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <property name="hscrollbar-policy">GTK_POLICY_AUTOMATIC</property> -+ <child> + <child> +- <object class="GtkTreeViewColumn" id="list_time_column"> +- <property name="title" translatable="yes">Modified</property> +- <property name="sizing">fixed</property> + <object class="GtkIconView" id="browse_files_icon_view"> + <property name="visible">True</property> + <property name="can_focus">True</property> @@ -1934,16 +2078,21 @@ index ef227bdc70..5d1f6d9d33 100644 + <signal name="popup-menu" handler="list_popup_menu_cb" swapped="no"/> + <signal name="query-tooltip" handler="file_list_query_tooltip_cb" swapped="no"/> + <signal name="selection-changed" handler="list_selection_changed" swapped="no"/> -+ <child> + <child> +- <object class="GtkCellRendererText" id="list_date_renderer"> +- <property name="xpad">6</property> + <object class="GtkCellRendererText" id="list_icon_renderer"> -+ </object> -+ </child> -+ <child> + </object> + </child> + <child> +- <object class="GtkCellRendererText" id="list_time_renderer"> +- <property name="xpad">6</property> +- </object> + <object class="GtkCellRendererPixbuf" id="icon_view_pixbuf_renderer"/> -+ </child> -+ </object> -+ </child> -+ </object> + </child> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> @@ -1964,10 +2113,9 @@ index ef227bdc70..5d1f6d9d33 100644 + </child> + <child type="tab"> + <placeholder/> -+ </child> + </child> </object> <packing> - <property name="expand">1</property> @@ -365,7 +477,7 @@ </object> <packing> |