diff options
author | dudemanguy | 2019-10-04 19:36:02 -0500 |
---|---|---|
committer | dudemanguy | 2019-10-04 19:36:02 -0500 |
commit | 95b9aa0b1035973080812d4b16e095373aa33ebf (patch) | |
tree | bc1f460ac68c1db8bca2f27a8e6cdb59aea8ddaf | |
parent | f95f0e0749b03c793f8bdc4a4df347ca8f55527a (diff) | |
download | aur-95b9aa0b1035973080812d4b16e095373aa33ebf.tar.gz |
3.24.12-1
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 6 | ||||
-rw-r--r-- | gtk3-filechooser-icon-view.patch | 254 |
3 files changed, 151 insertions, 115 deletions
@@ -1,6 +1,6 @@ pkgbase = gtk3-patched-filechooser-icon-view pkgdesc = GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch. - pkgver = 3.24.11 + pkgver = 3.24.12 pkgrel = 1 epoch = 1 url = https://github.com/Dudemanguy911/gtk @@ -44,12 +44,12 @@ pkgbase = gtk3-patched-filechooser-icon-view depends = iso-codes depends = gtk-update-icon-cache optdepends = glib2-patched-thumbnailer: Thumbnail generation in upload dialog - provides = gtk3=3.24.11 + provides = gtk3=3.24.12 provides = gtk3-print-backends conflicts = gtk3 conflicts = gtk3-print-backends replaces = gtk3-print-backends<=3.22.26-1 - source = git+https://gitlab.gnome.org/GNOME/gtk.git#commit=622111f1caf9104251de79bfa27ccfba9614cc90 + source = git+https://gitlab.gnome.org/GNOME/gtk.git#commit=075dcc142aa525778268165095de019b736f3efa source = settings.ini source = gtk-query-immodules-3.0.hook source = gtk3-filechooser-icon-view.patch @@ -4,7 +4,7 @@ # Contributor: Ionut Biru <ibiru@archlinux.org> pkgname=gtk3-patched-filechooser-icon-view -pkgver=3.24.11 +pkgver=3.24.12 pkgrel=1 epoch=1 pkgdesc="GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch." @@ -22,7 +22,7 @@ makedepends=(gobject-introspection gtk-doc git glib2-docs sassc meson) license=(LGPL) install=gtk3.install -_commit=622111f1caf9104251de79bfa27ccfba9614cc90 # tags/3.24.11^0 +_commit=075dcc142aa525778268165095de019b736f3efa # tags/3.24.12^0 source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit" settings.ini gtk-query-immodules-3.0.hook @@ -31,7 +31,7 @@ source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit" sha256sums=('SKIP' '01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202' 'de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845' - '60e7708a09c6773b871b2083e172edbf5cfbe50cd7c3ce92eb48e4f57f9e81c8') + '1e7758171795a524fac8e7220762c28a3aa146a15b7b9c9f953891bbbcdb9ae8') pkgver() { cd gtk git describe --tags | sed 's/-/+/g' diff --git a/gtk3-filechooser-icon-view.patch b/gtk3-filechooser-icon-view.patch index 8642a829719e..7344b9618ad5 100644 --- a/gtk3-filechooser-icon-view.patch +++ b/gtk3-filechooser-icon-view.patch @@ -1,5 +1,5 @@ diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h -index 0094beb299..433a623963 100644 +index a0a622c111..1fc93e44a4 100644 --- a/gtk/gtkfilechooserprivate.h +++ b/gtk/gtkfilechooserprivate.h @@ -32,10 +32,14 @@ @@ -16,9 +16,9 @@ index 0094beb299..433a623963 100644 +#define SETTINGS_KEY_ICON_VIEW_SCALE "icon-view-scale" #define SETTINGS_KEY_SHOW_HIDDEN "show-hidden" #define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column" - #define SETTINGS_KEY_SORT_COLUMN "sort-column" + #define SETTINGS_KEY_SHOW_TYPE_COLUMN "show-type-column" diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c -index fe9bceacdc..6456f59802 100644 +index 9c7aadb8fd..f84f65e80c 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -1,4 +1,4 @@ @@ -60,7 +60,7 @@ index fe9bceacdc..6456f59802 100644 typedef enum { CLOCK_FORMAT_24, CLOCK_FORMAT_12 -@@ -221,8 +229,12 @@ struct _GtkFileChooserWidgetPrivate { +@@ -227,8 +235,12 @@ struct _GtkFileChooserWidgetPrivate { GtkWidget *browse_header_revealer; GtkWidget *browse_header_stack; GtkWidget *browse_files_stack; @@ -74,7 +74,7 @@ index fe9bceacdc..6456f59802 100644 GtkWidget *remote_warning_bar; GtkWidget *browse_files_popover; -@@ -237,6 +249,12 @@ struct _GtkFileChooserWidgetPrivate { +@@ -244,6 +256,12 @@ struct _GtkFileChooserWidgetPrivate { GtkWidget *delete_file_item; GtkWidget *sort_directories_item; GtkWidget *show_time_item; @@ -87,7 +87,7 @@ index fe9bceacdc..6456f59802 100644 GtkWidget *browse_new_folder_button; GtkSizeGroup *browse_path_bar_size_group; -@@ -253,6 +271,7 @@ struct _GtkFileChooserWidgetPrivate { +@@ -260,6 +278,7 @@ struct _GtkFileChooserWidgetPrivate { GtkGesture *long_press_gesture; @@ -95,7 +95,7 @@ index fe9bceacdc..6456f59802 100644 GtkFileSystemModel *browse_files_model; char *browse_files_last_selected_name; -@@ -338,10 +357,17 @@ struct _GtkFileChooserWidgetPrivate { +@@ -347,10 +366,17 @@ struct _GtkFileChooserWidgetPrivate { guint location_changed_id; gulong settings_signal_id; @@ -114,7 +114,7 @@ index fe9bceacdc..6456f59802 100644 gulong toplevel_set_focus_id; GtkWidget *toplevel_last_focus_widget; -@@ -404,7 +430,8 @@ enum { +@@ -417,7 +443,8 @@ enum { MODEL_COL_NAME_COLLATED, MODEL_COL_IS_FOLDER, MODEL_COL_IS_SENSITIVE, @@ -124,7 +124,7 @@ index fe9bceacdc..6456f59802 100644 MODEL_COL_SIZE_TEXT, MODEL_COL_DATE_TEXT, MODEL_COL_TIME_TEXT, -@@ -423,7 +450,8 @@ enum { +@@ -437,7 +464,8 @@ enum { G_TYPE_STRING, /* MODEL_COL_NAME_COLLATED */ \ G_TYPE_BOOLEAN, /* MODEL_COL_IS_FOLDER */ \ G_TYPE_BOOLEAN, /* MODEL_COL_IS_SENSITIVE */ \ @@ -134,7 +134,7 @@ index fe9bceacdc..6456f59802 100644 G_TYPE_STRING, /* MODEL_COL_SIZE_TEXT */ \ G_TYPE_STRING, /* MODEL_COL_DATE_TEXT */ \ G_TYPE_STRING, /* MODEL_COL_TIME_TEXT */ \ -@@ -433,7 +461,10 @@ enum { +@@ -447,7 +475,10 @@ enum { #define DEFAULT_RECENT_FILES_LIMIT 50 /* Icon size for if we can't get it from the theme */ @@ -146,7 +146,7 @@ index fe9bceacdc..6456f59802 100644 #define PREVIEW_HBOX_SPACING 12 #define NUM_LINES 45 -@@ -554,7 +585,7 @@ static gboolean list_select_func (GtkTreeSelection *selection, +@@ -568,7 +599,7 @@ static gboolean list_select_func (GtkTreeSelection *selection, gboolean path_currently_selected, gpointer data); @@ -155,7 +155,7 @@ index fe9bceacdc..6456f59802 100644 GtkFileChooserWidget *impl); static void list_row_activated (GtkTreeView *tree_view, GtkTreePath *path, -@@ -562,6 +593,13 @@ static void list_row_activated (GtkTreeView *tree_view, +@@ -576,6 +607,13 @@ static void list_row_activated (GtkTreeView *tree_view, GtkFileChooserWidget *impl); static void list_cursor_changed (GtkTreeView *treeview, GtkFileChooserWidget *impl); @@ -169,7 +169,7 @@ index fe9bceacdc..6456f59802 100644 static void path_bar_clicked (GtkPathBar *path_bar, GFile *file, -@@ -574,6 +612,13 @@ static void update_cell_renderer_attributes (GtkFileChooserWidget *impl); +@@ -588,6 +626,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); @@ -183,7 +183,7 @@ index fe9bceacdc..6456f59802 100644 static void location_switch_to_path_bar (GtkFileChooserWidget *impl); static void stop_loading_and_clear_list_model (GtkFileChooserWidget *impl, -@@ -603,13 +648,33 @@ static gboolean recent_should_respond (GtkFileChooserWidget *impl); +@@ -617,13 +662,33 @@ static gboolean recent_should_respond (GtkFileChooserWidget *impl); static void set_file_system_backend (GtkFileChooserWidget *impl); static void unset_file_system_backend (GtkFileChooserWidget *impl); @@ -218,7 +218,7 @@ index fe9bceacdc..6456f59802 100644 G_DEFINE_TYPE_WITH_CODE (GtkFileChooserWidget, gtk_file_chooser_widget, GTK_TYPE_BOX, G_ADD_PRIVATE (GtkFileChooserWidget) -@@ -941,7 +1006,7 @@ update_preview_widget_visibility (GtkFileChooserWidget *impl) +@@ -955,7 +1020,7 @@ update_preview_widget_visibility (GtkFileChooserWidget *impl) } } @@ -227,7 +227,7 @@ index fe9bceacdc..6456f59802 100644 gtk_widget_show (priv->preview_box); else gtk_widget_hide (priv->preview_box); -@@ -1209,19 +1274,17 @@ selection_check (GtkFileChooserWidget *impl, +@@ -1223,19 +1288,17 @@ selection_check (GtkFileChooserWidget *impl, gboolean *all_files, gboolean *all_folders) { @@ -251,7 +251,7 @@ index fe9bceacdc..6456f59802 100644 g_assert (closure.num_selected == 0 || !(closure.all_files && closure.all_folders)); -@@ -1343,7 +1406,7 @@ browse_files_key_press_event_cb (GtkWidget *widget, +@@ -1357,7 +1420,7 @@ browse_files_key_press_event_cb (GtkWidget *widget, return TRUE; } @@ -260,7 +260,7 @@ index fe9bceacdc..6456f59802 100644 { if (gtk_widget_child_focus (priv->places_sidebar, GTK_DIR_LEFT)) return TRUE; -@@ -1446,12 +1509,8 @@ add_to_shortcuts_cb (GSimpleAction *action, +@@ -1460,12 +1523,8 @@ add_to_shortcuts_cb (GSimpleAction *action, gpointer data) { GtkFileChooserWidget *impl = data; @@ -274,7 +274,7 @@ index fe9bceacdc..6456f59802 100644 add_bookmark_foreach_cb, impl); } -@@ -1815,6 +1874,86 @@ open_folder_cb (GSimpleAction *action, +@@ -1829,6 +1888,86 @@ open_folder_cb (GSimpleAction *action, } G_GNUC_END_IGNORE_DEPRECATIONS @@ -361,7 +361,7 @@ index fe9bceacdc..6456f59802 100644 /* callback used when the "Show Hidden Files" menu item is toggled */ static void change_show_hidden_state (GSimpleAction *action, -@@ -2126,6 +2265,7 @@ check_file_list_popover_sensitivity (GtkFileChooserWidget *impl) +@@ -2156,6 +2295,7 @@ check_file_list_popover_sensitivity (GtkFileChooserWidget *impl) gboolean all_files; gboolean all_folders; gboolean active; @@ -369,7 +369,7 @@ index fe9bceacdc..6456f59802 100644 GActionGroup *actions; GAction *action, *action2; -@@ -2134,6 +2274,7 @@ check_file_list_popover_sensitivity (GtkFileChooserWidget *impl) +@@ -2164,6 +2304,7 @@ check_file_list_popover_sensitivity (GtkFileChooserWidget *impl) selection_check (impl, &num_selected, &all_files, &all_folders); active = (num_selected != 0); @@ -377,7 +377,7 @@ index fe9bceacdc..6456f59802 100644 action = g_action_map_lookup_action (G_ACTION_MAP (actions), "copy-location"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), active); -@@ -2147,6 +2288,21 @@ check_file_list_popover_sensitivity (GtkFileChooserWidget *impl) +@@ -2177,6 +2318,21 @@ check_file_list_popover_sensitivity (GtkFileChooserWidget *impl) action = g_action_map_lookup_action (G_ACTION_MAP (actions), "open"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (num_selected == 1) && all_folders); @@ -399,7 +399,7 @@ index fe9bceacdc..6456f59802 100644 action = g_action_map_lookup_action (G_ACTION_MAP (actions), "rename"); if (num_selected == 1) { -@@ -2212,6 +2368,11 @@ static GActionEntry entries[] = { +@@ -2242,6 +2398,11 @@ static GActionEntry entries[] = { { "rename", rename_file_cb, NULL, NULL, NULL }, { "delete", delete_file_cb, NULL, NULL, NULL }, { "trash", trash_file_cb, NULL, NULL, NULL }, @@ -410,8 +410,8 @@ index fe9bceacdc..6456f59802 100644 + { "descending", descending_cb, NULL, NULL, NULL }, { "toggle-show-hidden", NULL, NULL, "false", change_show_hidden_state }, { "toggle-show-size", NULL, NULL, "false", change_show_size_state }, - { "toggle-show-time", NULL, NULL, "false", change_show_time_state }, -@@ -2235,17 +2396,9 @@ static GtkWidget * + { "toggle-show-type", NULL, NULL, "false", change_show_type_state }, +@@ -2266,17 +2427,9 @@ static GtkWidget * append_separator (GtkWidget *box) { GtkWidget *separator; @@ -432,7 +432,7 @@ index fe9bceacdc..6456f59802 100644 return separator; } -@@ -2257,13 +2410,13 @@ add_button (GtkWidget *box, +@@ -2288,13 +2441,13 @@ add_button (GtkWidget *box, { GtkWidget *item; @@ -453,7 +453,7 @@ index fe9bceacdc..6456f59802 100644 return item; } -@@ -2276,11 +2429,9 @@ file_list_build_popover (GtkFileChooserWidget *impl) +@@ -2307,11 +2460,9 @@ file_list_build_popover (GtkFileChooserWidget *impl) if (priv->browse_files_popover) return; @@ -468,7 +468,7 @@ index fe9bceacdc..6456f59802 100644 priv->visit_file_item = add_button (box, _("_Visit File"), "item.visit"); priv->open_folder_item = add_button (box, _("_Open With File Manager"), "item.open"); -@@ -2289,13 +2440,30 @@ file_list_build_popover (GtkFileChooserWidget *impl) +@@ -2320,14 +2471,31 @@ file_list_build_popover (GtkFileChooserWidget *impl) 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"); @@ -478,6 +478,7 @@ index fe9bceacdc..6456f59802 100644 + { + 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->type_column_item = add_button (box, _("Show T_ype Column"), "item.toggle-show-type"); + 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"); + } @@ -487,6 +488,7 @@ index fe9bceacdc..6456f59802 100644 - 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->type_column_item = add_button (box, _("Show T_ype Column"), "item.toggle-show-type"); - 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->arrange_item = add_button (box, _("Arrange Items"), NULL); @@ -504,7 +506,7 @@ index fe9bceacdc..6456f59802 100644 } /* Updates the popover for the file list, creating it if necessary */ -@@ -2344,39 +2512,10 @@ file_list_show_popover (GtkFileChooserWidget *impl, +@@ -2379,39 +2547,10 @@ file_list_show_popover (GtkFileChooserWidget *impl, gdouble y) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -546,7 +548,7 @@ index fe9bceacdc..6456f59802 100644 } /* Callback used for the GtkWidget::popup-menu signal of the file list */ -@@ -2400,7 +2539,6 @@ list_button_press_event_cb (GtkWidget *widget, +@@ -2435,7 +2574,6 @@ list_button_press_event_cb (GtkWidget *widget, GdkEventButton *event, GtkFileChooserWidget *impl) { @@ -554,7 +556,7 @@ index fe9bceacdc..6456f59802 100644 static gboolean in_press = FALSE; if (in_press) -@@ -2410,7 +2548,7 @@ list_button_press_event_cb (GtkWidget *widget, +@@ -2445,7 +2583,7 @@ list_button_press_event_cb (GtkWidget *widget, return FALSE; in_press = TRUE; @@ -563,7 +565,7 @@ index fe9bceacdc..6456f59802 100644 in_press = FALSE; file_list_show_popover (impl, event->x, event->y); -@@ -2441,12 +2579,15 @@ file_list_set_sort_column_ids (GtkFileChooserWidget *impl) +@@ -2476,13 +2614,16 @@ file_list_set_sort_column_ids (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -575,16 +577,18 @@ index fe9bceacdc..6456f59802 100644 - gtk_tree_view_column_set_sort_column_id (priv->list_name_column, MODEL_COL_NAME); - gtk_tree_view_column_set_sort_column_id (priv->list_time_column, MODEL_COL_TIME); - gtk_tree_view_column_set_sort_column_id (priv->list_size_column, MODEL_COL_SIZE); +- gtk_tree_view_column_set_sort_column_id (priv->list_type_column, MODEL_COL_TYPE); - gtk_tree_view_column_set_sort_column_id (priv->list_location_column, MODEL_COL_LOCATION_TEXT); + gtk_tree_view_column_set_sort_column_id (priv->list_name_column, MODEL_COL_NAME); + gtk_tree_view_column_set_sort_column_id (priv->list_time_column, MODEL_COL_TIME); + gtk_tree_view_column_set_sort_column_id (priv->list_size_column, MODEL_COL_SIZE); ++ gtk_tree_view_column_set_sort_column_id (priv->list_type_column, MODEL_COL_TYPE); + gtk_tree_view_column_set_sort_column_id (priv->list_location_column, MODEL_COL_LOCATION_TEXT); + } } static gboolean -@@ -2469,11 +2610,22 @@ file_list_query_tooltip_cb (GtkWidget *widget, +@@ -2505,11 +2646,22 @@ file_list_query_tooltip_cb (GtkWidget *widget, return FALSE; @@ -612,7 +616,7 @@ index fe9bceacdc..6456f59802 100644 gtk_tree_model_get (model, &iter, MODEL_COL_FILE, &file, -@@ -2487,10 +2639,18 @@ file_list_query_tooltip_cb (GtkWidget *widget, +@@ -2523,10 +2675,18 @@ file_list_query_tooltip_cb (GtkWidget *widget, filename = g_file_get_path (file); gtk_tooltip_set_text (tooltip, filename); @@ -635,7 +639,7 @@ index fe9bceacdc..6456f59802 100644 g_free (filename); g_object_unref (file); gtk_tree_path_free (path); -@@ -2506,8 +2666,8 @@ set_icon_cell_renderer_fixed_size (GtkFileChooserWidget *impl) +@@ -2542,8 +2702,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, @@ -646,7 +650,7 @@ index fe9bceacdc..6456f59802 100644 } static gboolean -@@ -2791,7 +2951,7 @@ location_mode_set (GtkFileChooserWidget *impl, +@@ -2827,7 +2987,7 @@ location_mode_set (GtkFileChooserWidget *impl, location_switch_to_path_bar (impl); if (switch_to_file_list) @@ -655,7 +659,7 @@ index fe9bceacdc..6456f59802 100644 break; -@@ -2862,6 +3022,118 @@ location_toggle_popup_handler (GtkFileChooserWidget *impl) +@@ -2898,6 +3058,118 @@ location_toggle_popup_handler (GtkFileChooserWidget *impl) } } @@ -774,7 +778,7 @@ index fe9bceacdc..6456f59802 100644 static void gtk_file_chooser_widget_constructed (GObject *object) { -@@ -2897,7 +3169,6 @@ set_extra_widget (GtkFileChooserWidget *impl, +@@ -2933,7 +3205,6 @@ set_extra_widget (GtkFileChooserWidget *impl, if (extra_widget) { g_object_ref (extra_widget); @@ -782,7 +786,7 @@ index fe9bceacdc..6456f59802 100644 gtk_widget_show (extra_widget); } -@@ -2970,18 +3241,11 @@ set_select_multiple (GtkFileChooserWidget *impl, +@@ -3006,18 +3277,11 @@ set_select_multiple (GtkFileChooserWidget *impl, gboolean property_notify) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -802,7 +806,7 @@ index fe9bceacdc..6456f59802 100644 priv->select_multiple = select_multiple; g_object_notify (G_OBJECT (impl), "select-multiple"); -@@ -3108,6 +3372,7 @@ operation_mode_set_enter_location (GtkFileChooserWidget *impl) +@@ -3144,6 +3408,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); @@ -810,7 +814,7 @@ index fe9bceacdc..6456f59802 100644 gtk_widget_set_sensitive (priv->filter_combo, TRUE); location_mode_set (impl, LOCATION_MODE_FILENAME_ENTRY); } -@@ -3137,7 +3402,7 @@ operation_mode_set_search (GtkFileChooserWidget *impl) +@@ -3173,7 +3438,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 && @@ -819,7 +823,7 @@ index fe9bceacdc..6456f59802 100644 { gtk_stack_set_visible_child_name (GTK_STACK (priv->browse_files_stack), "list"); } -@@ -3262,6 +3527,12 @@ update_appearance (GtkFileChooserWidget *impl) +@@ -3298,6 +3563,12 @@ update_appearance (GtkFileChooserWidget *impl) location_mode_set (impl, priv->location_mode); } @@ -832,7 +836,7 @@ index fe9bceacdc..6456f59802 100644 if (priv->location_entry) _gtk_file_chooser_entry_set_action (GTK_FILE_CHOOSER_ENTRY (priv->location_entry), priv->action); -@@ -3270,7 +3541,7 @@ update_appearance (GtkFileChooserWidget *impl) +@@ -3306,7 +3577,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. */ @@ -841,7 +845,7 @@ index fe9bceacdc..6456f59802 100644 emit_default_size_changed (impl); } -@@ -3700,14 +3971,28 @@ change_icon_theme (GtkFileChooserWidget *impl) +@@ -3736,14 +4007,28 @@ change_icon_theme (GtkFileChooserWidget *impl) profile_start ("start", NULL); if (gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height)) @@ -874,7 +878,7 @@ index fe9bceacdc..6456f59802 100644 gtk_widget_queue_resize (priv->browse_files_tree_view); profile_end ("end", NULL); -@@ -3808,7 +4093,7 @@ set_sort_column (GtkFileChooserWidget *impl) +@@ -3844,7 +4129,7 @@ set_sort_column (GtkFileChooserWidget *impl) GtkFileChooserWidgetPrivate *priv = impl->priv; GtkTreeSortable *sortable; @@ -883,21 +887,23 @@ index fe9bceacdc..6456f59802 100644 /* can happen when we're still populating the model */ if (sortable == NULL) -@@ -3823,11 +4108,12 @@ static void +@@ -3859,13 +4144,14 @@ static void settings_load (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; + ViewMode view_mode; gboolean show_hidden; gboolean show_size_column; + gboolean show_type_column; gboolean sort_directories_first; DateFormat date_format; + TypeFormat type_format; - gint sort_column; + gint sort_column, icon_view_scale; GtkSortType sort_order; StartupMode startup_mode; gint sidebar_width; -@@ -3835,6 +4121,8 @@ settings_load (GtkFileChooserWidget *impl) +@@ -3873,6 +4159,8 @@ settings_load (GtkFileChooserWidget *impl) settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (impl)); @@ -905,10 +911,10 @@ index fe9bceacdc..6456f59802 100644 + icon_view_scale = g_settings_get_int (settings, SETTINGS_KEY_ICON_VIEW_SCALE); 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); -@@ -3844,10 +4132,16 @@ settings_load (GtkFileChooserWidget *impl) - sort_directories_first = g_settings_get_boolean (settings, SETTINGS_KEY_SORT_DIRECTORIES_FIRST); + show_type_column = g_settings_get_boolean (settings, SETTINGS_KEY_SHOW_TYPE_COLUMN); +@@ -3884,12 +4172,21 @@ settings_load (GtkFileChooserWidget *impl) date_format = g_settings_get_enum (settings, SETTINGS_KEY_DATE_FORMAT); + type_format = g_settings_get_enum (settings, SETTINGS_KEY_TYPE_FORMAT); + view_mode_set (impl, view_mode); + @@ -917,14 +923,21 @@ index fe9bceacdc..6456f59802 100644 + if (!priv->show_hidden_set) set_show_hidden (impl, show_hidden); ++ priv->show_size_column = show_size_column; - gtk_tree_view_column_set_visible (priv->list_size_column, show_size_column); -+ if (priv->list_size_column) +- priv->show_type_column = show_type_column; +- gtk_tree_view_column_set_visible (priv->list_type_column, show_type_column); ++ ++ if (priv->list_size_column) { + gtk_tree_view_column_set_visible (priv->list_size_column, show_size_column); ++ priv->show_type_column = show_type_column; ++ gtk_tree_view_column_set_visible (priv->list_type_column, show_type_column); ++ } priv->sort_column = sort_column; priv->sort_order = sort_order; -@@ -3875,6 +4169,8 @@ settings_save (GtkFileChooserWidget *impl) +@@ -3918,6 +4215,8 @@ settings_save (GtkFileChooserWidget *impl) /* All the other state */ g_settings_set_enum (settings, SETTINGS_KEY_LOCATION_MODE, priv->location_mode); @@ -933,7 +946,7 @@ index fe9bceacdc..6456f59802 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); -@@ -4349,10 +4645,14 @@ load_set_model (GtkFileChooserWidget *impl) +@@ -4427,10 +4726,14 @@ load_set_model (GtkFileChooserWidget *impl) g_assert (priv->browse_files_model != NULL); profile_msg (" gtk_tree_view_set_model start", NULL); @@ -952,7 +965,7 @@ index fe9bceacdc..6456f59802 100644 set_sort_column (impl); profile_msg (" gtk_tree_view_set_model end", NULL); priv->list_sort_ascending = TRUE; -@@ -4432,7 +4732,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) +@@ -4510,7 +4813,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) GtkTreeIter dummy_iter; GtkTreeModel *tree_model; @@ -961,7 +974,7 @@ index fe9bceacdc..6456f59802 100644 if (!tree_model) return; -@@ -4451,8 +4751,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) +@@ -4529,8 +4832,7 @@ browse_files_select_first_row (GtkFileChooserWidget *impl) */ priv->auto_selecting_first_row = TRUE; @@ -971,7 +984,7 @@ index fe9bceacdc..6456f59802 100644 priv->auto_selecting_first_row = FALSE; } gtk_tree_path_free (path); -@@ -4478,7 +4777,13 @@ center_selected_row_foreach_cb (GtkTreeModel *model, +@@ -4556,7 +4858,13 @@ center_selected_row_foreach_cb (GtkTreeModel *model, if (closure->already_centered) return; @@ -986,7 +999,7 @@ index fe9bceacdc..6456f59802 100644 closure->already_centered = TRUE; } -@@ -4486,15 +4791,12 @@ center_selected_row_foreach_cb (GtkTreeModel *model, +@@ -4564,15 +4872,12 @@ center_selected_row_foreach_cb (GtkTreeModel *model, static void browse_files_center_selected_row (GtkFileChooserWidget *impl) { @@ -1003,7 +1016,7 @@ index fe9bceacdc..6456f59802 100644 } static gboolean -@@ -4502,7 +4804,6 @@ show_and_select_files (GtkFileChooserWidget *impl, +@@ -4580,7 +4885,6 @@ show_and_select_files (GtkFileChooserWidget *impl, GSList *files) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1011,7 +1024,7 @@ index fe9bceacdc..6456f59802 100644 GtkFileSystemModel *fsmodel; gboolean enabled_hidden, removed_filters; gboolean selected_a_file; -@@ -4511,8 +4812,7 @@ show_and_select_files (GtkFileChooserWidget *impl, +@@ -4589,8 +4893,7 @@ show_and_select_files (GtkFileChooserWidget *impl, g_assert (priv->load_state == LOAD_FINISHED); g_assert (priv->browse_files_model != NULL); @@ -1021,7 +1034,7 @@ index fe9bceacdc..6456f59802 100644 g_assert (fsmodel == priv->browse_files_model); -@@ -4567,11 +4867,10 @@ show_and_select_files (GtkFileChooserWidget *impl, +@@ -4645,11 +4948,10 @@ show_and_select_files (GtkFileChooserWidget *impl, { GtkTreePath *path; @@ -1035,7 +1048,7 @@ index fe9bceacdc..6456f59802 100644 gtk_tree_path_free (path); selected_a_file = TRUE; -@@ -4722,12 +5021,14 @@ stop_loading_and_clear_list_model (GtkFileChooserWidget *impl, +@@ -4800,12 +5102,14 @@ stop_loading_and_clear_list_model (GtkFileChooserWidget *impl, { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1051,8 +1064,8 @@ index fe9bceacdc..6456f59802 100644 } /* Replace 'target' with 'replacement' in the input string. */ -@@ -4905,6 +5206,18 @@ file_system_model_got_thumbnail (GObject *object, - gdk_threads_leave (); +@@ -5069,6 +5373,18 @@ get_type_information (GtkFileChooserWidget *impl, + return g_strdup (""); } +static gboolean @@ -1070,7 +1083,7 @@ index fe9bceacdc..6456f59802 100644 static gboolean file_system_model_set (GtkFileSystemModel *model, GFile *file, -@@ -4964,12 +5277,15 @@ file_system_model_set (GtkFileSystemModel *model, +@@ -5128,12 +5444,15 @@ file_system_model_set (GtkFileSystemModel *model, else g_value_set_boolean (value, TRUE); break; @@ -1088,7 +1101,7 @@ index fe9bceacdc..6456f59802 100644 } else { -@@ -5023,6 +5339,76 @@ file_system_model_set (GtkFileSystemModel *model, +@@ -5187,6 +5506,76 @@ file_system_model_set (GtkFileSystemModel *model, else g_value_set_boxed (value, NULL); break; @@ -1165,7 +1178,7 @@ index fe9bceacdc..6456f59802 100644 case MODEL_COL_SIZE: g_value_set_int64 (value, info ? g_file_info_get_size (info) : 0); break; -@@ -5208,7 +5594,6 @@ static void +@@ -5379,7 +5768,6 @@ static void update_chooser_entry (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1173,7 +1186,7 @@ index fe9bceacdc..6456f59802 100644 struct update_chooser_entry_selected_foreach_closure closure; /* no need to update the file chooser's entry if there's no entry */ -@@ -5225,9 +5610,8 @@ update_chooser_entry (GtkFileChooserWidget *impl) +@@ -5396,9 +5784,8 @@ update_chooser_entry (GtkFileChooserWidget *impl) g_assert (priv->location_entry != NULL); @@ -1184,7 +1197,7 @@ index fe9bceacdc..6456f59802 100644 if (closure.num_selected == 0) { -@@ -5724,19 +6108,15 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser, +@@ -5895,19 +6282,15 @@ gtk_file_chooser_widget_unselect_file (GtkFileChooser *chooser, { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser); GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1208,7 +1221,7 @@ index fe9bceacdc..6456f59802 100644 } static gboolean -@@ -5747,12 +6127,9 @@ maybe_select (GtkTreeModel *model, +@@ -5918,12 +6301,9 @@ maybe_select (GtkTreeModel *model, { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (data); GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1221,7 +1234,7 @@ index fe9bceacdc..6456f59802 100644 gtk_tree_model_get (model, iter, MODEL_COL_IS_FOLDER, &is_folder, MODEL_COL_IS_SENSITIVE, &is_sensitive, -@@ -5761,9 +6138,9 @@ maybe_select (GtkTreeModel *model, +@@ -5932,9 +6312,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))) @@ -1233,7 +1246,7 @@ index fe9bceacdc..6456f59802 100644 return FALSE; } -@@ -5779,8 +6156,15 @@ gtk_file_chooser_widget_select_all (GtkFileChooser *chooser) +@@ -5950,8 +6330,15 @@ gtk_file_chooser_widget_select_all (GtkFileChooser *chooser) { GtkTreeSelection *selection; @@ -1251,7 +1264,7 @@ index fe9bceacdc..6456f59802 100644 return; } -@@ -5793,10 +6177,7 @@ static void +@@ -5964,10 +6351,7 @@ static void gtk_file_chooser_widget_unselect_all (GtkFileChooser *chooser) { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (chooser); @@ -1263,7 +1276,7 @@ index fe9bceacdc..6456f59802 100644 pending_select_files_free (impl); } -@@ -5952,15 +6333,13 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) +@@ -6123,15 +6507,13 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) current_focus = NULL; file_list_seen = FALSE; @@ -1282,7 +1295,7 @@ index fe9bceacdc..6456f59802 100644 /* If there is no selection in the file list, we probably have this situation: * -@@ -5994,7 +6373,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) +@@ -6165,7 +6547,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) else return NULL; } @@ -1291,7 +1304,7 @@ index fe9bceacdc..6456f59802 100644 goto file_list; else if (priv->location_entry && priv->toplevel_last_focus_widget == priv->location_entry) goto file_entry; -@@ -6272,8 +6651,6 @@ switch_folder_foreach_cb (GtkTreeModel *model, +@@ -6443,8 +6825,6 @@ switch_folder_foreach_cb (GtkTreeModel *model, static void switch_to_selected_folder (GtkFileChooserWidget *impl) { @@ -1300,7 +1313,7 @@ index fe9bceacdc..6456f59802 100644 struct switch_folder_closure closure; /* We do this with foreach() rather than get_selected() as we may be in -@@ -6284,8 +6661,7 @@ switch_to_selected_folder (GtkFileChooserWidget *impl) +@@ -6455,8 +6835,7 @@ switch_to_selected_folder (GtkFileChooserWidget *impl) closure.file = NULL; closure.num_selected = 0; @@ -1310,7 +1323,7 @@ index fe9bceacdc..6456f59802 100644 g_assert (closure.file && closure.num_selected == 1); -@@ -6303,19 +6679,33 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl, +@@ -6474,19 +6853,33 @@ get_selected_file_info_from_file_list (GtkFileChooserWidget *impl, GtkTreeSelection *selection; GtkTreeIter iter; GFileInfo *info; @@ -1352,7 +1365,7 @@ index fe9bceacdc..6456f59802 100644 return info; } -@@ -6808,7 +7198,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed) +@@ -6979,7 +7372,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserEmbed *chooser_embed) current_focus = gtk_window_get_focus (GTK_WINDOW (toplevel)); @@ -1361,7 +1374,7 @@ index fe9bceacdc..6456f59802 100644 { /* The following array encodes what we do based on the priv->action and the * number of files selected. -@@ -7055,7 +7445,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserEmbed *chooser_embed) +@@ -7226,7 +7619,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserEmbed *chooser_embed) { if (priv->location_mode == LOCATION_MODE_PATH_BAR || priv->operation_mode == OPERATION_MODE_RECENT) @@ -1370,7 +1383,7 @@ index fe9bceacdc..6456f59802 100644 else widget = priv->location_entry; } -@@ -7093,45 +7483,24 @@ selected_foreach_get_file_cb (GtkTreeModel *model, +@@ -7264,45 +7657,24 @@ selected_foreach_get_file_cb (GtkTreeModel *model, static GSList * get_selected_files (GtkFileChooserWidget *impl) { @@ -1418,7 +1431,7 @@ index fe9bceacdc..6456f59802 100644 result = g_slist_reverse (result); return result; -@@ -7202,6 +7571,7 @@ search_engine_finished_cb (GtkSearchEngine *engine, +@@ -7373,6 +7745,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)); } @@ -1426,7 +1439,7 @@ index fe9bceacdc..6456f59802 100644 } static void -@@ -7227,7 +7597,7 @@ search_clear_model (GtkFileChooserWidget *impl, +@@ -7398,7 +7771,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)) @@ -1435,7 +1448,7 @@ index fe9bceacdc..6456f59802 100644 g_clear_object (&priv->search_model); } -@@ -7436,7 +7806,7 @@ recent_clear_model (GtkFileChooserWidget *impl, +@@ -7608,7 +7981,7 @@ recent_clear_model (GtkFileChooserWidget *impl, return; if (remove) @@ -1444,7 +1457,7 @@ index fe9bceacdc..6456f59802 100644 g_set_object (&priv->recent_model, NULL); } -@@ -7489,8 +7859,7 @@ recent_idle_cleanup (gpointer data) +@@ -7661,8 +8034,7 @@ recent_idle_cleanup (gpointer data) GtkFileChooserWidget *impl = load_data->impl; GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1454,7 +1467,7 @@ index fe9bceacdc..6456f59802 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); -@@ -7637,12 +8006,10 @@ static gboolean +@@ -7810,12 +8182,10 @@ static gboolean recent_should_respond (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1468,7 +1481,7 @@ index fe9bceacdc..6456f59802 100644 } static void -@@ -7702,29 +8069,41 @@ check_preview_change (GtkFileChooserWidget *impl) +@@ -7875,29 +8245,41 @@ check_preview_change (GtkFileChooserWidget *impl) GtkTreeModel *model; GtkTreeSelection *selection; @@ -1526,7 +1539,7 @@ index fe9bceacdc..6456f59802 100644 { GtkTreeIter iter; -@@ -7808,15 +8187,13 @@ list_select_func (GtkTreeSelection *selection, +@@ -7981,15 +8363,13 @@ list_select_func (GtkTreeSelection *selection, return TRUE; } @@ -1545,7 +1558,7 @@ index fe9bceacdc..6456f59802 100644 if (priv->location_entry) update_chooser_entry (impl); -@@ -7840,16 +8217,35 @@ list_row_activated (GtkTreeView *tree_view, +@@ -8013,16 +8393,35 @@ list_row_activated (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, GtkFileChooserWidget *impl) @@ -1584,7 +1597,7 @@ index fe9bceacdc..6456f59802 100644 if (!gtk_tree_model_get_iter (model, &iter, path)) return; -@@ -7869,7 +8265,7 @@ list_row_activated (GtkTreeView *tree_view, +@@ -8042,7 +8441,7 @@ list_row_activated (GtkTreeView *tree_view, priv->action == GTK_FILE_CHOOSER_ACTION_SAVE) g_signal_emit_by_name (impl, "file-activated"); @@ -1593,7 +1606,7 @@ index fe9bceacdc..6456f59802 100644 if (file) g_object_unref (file); -@@ -7900,10 +8296,13 @@ static void +@@ -8073,10 +8472,13 @@ static void update_cell_renderer_attributes (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; @@ -1608,7 +1621,7 @@ index fe9bceacdc..6456f59802 100644 "sensitive", MODEL_COL_IS_SENSITIVE, NULL); gtk_tree_view_column_set_attributes (priv->list_name_column, -@@ -8479,16 +8878,20 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8658,16 +9060,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); @@ -1630,15 +1643,15 @@ index fe9bceacdc..6456f59802 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); -@@ -8505,6 +8908,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) - gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_size_renderer); +@@ -8686,6 +9092,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) + gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_type_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); + gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, list_icon_renderer); 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); -@@ -8514,6 +8918,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8695,6 +9102,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); @@ -1646,7 +1659,7 @@ index fe9bceacdc..6456f59802 100644 /* And a *lot* of callbacks to bind ... */ gtk_widget_class_bind_template_callback (widget_class, browse_files_key_press_event_cb); -@@ -8528,6 +8933,10 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) +@@ -8709,6 +9117,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); @@ -1657,7 +1670,7 @@ index fe9bceacdc..6456f59802 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); -@@ -8575,6 +8984,18 @@ post_process_ui (GtkFileChooserWidget *impl) +@@ -8756,6 +9168,18 @@ post_process_ui (GtkFileChooserWidget *impl) GDK_ACTION_COPY | GDK_ACTION_MOVE); gtk_drag_dest_add_uri_targets (impl->priv->browse_files_tree_view); @@ -1676,7 +1689,7 @@ index fe9bceacdc..6456f59802 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. -@@ -8606,6 +9027,8 @@ post_process_ui (GtkFileChooserWidget *impl) +@@ -8787,6 +9211,8 @@ post_process_ui (GtkFileChooserWidget *impl) * that priv->icon_size be already setup. */ set_icon_cell_renderer_fixed_size (impl); @@ -1685,17 +1698,19 @@ index fe9bceacdc..6456f59802 100644 atk_obj = gtk_widget_get_accessible (impl->priv->browse_new_folder_button); if (GTK_IS_ACCESSIBLE (atk_obj)) -@@ -8655,7 +9078,8 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) +@@ -8836,9 +9262,10 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) priv->select_multiple = FALSE; priv->show_hidden = FALSE; priv->show_size_column = TRUE; -- priv->icon_size = FALLBACK_ICON_SIZE; + priv->list_view_icon_size = FALLBACK_LIST_VIEW_ICON_SIZE; + priv->icon_view_icon_size = FALLBACK_ICON_VIEW_ICON_SIZE; + priv->show_type_column = TRUE; + priv->type_format = TYPE_FORMAT_MIME; +- priv->icon_size = FALLBACK_ICON_SIZE; priv->load_state = LOAD_EMPTY; priv->reload_state = RELOAD_EMPTY; priv->pending_select_files = NULL; -@@ -8667,6 +9091,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) +@@ -8850,6 +9277,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) priv->create_folders = TRUE; priv->auto_selecting_first_row = FALSE; priv->renamed_file = NULL; @@ -1703,7 +1718,7 @@ index fe9bceacdc..6456f59802 100644 /* Ensure GTK+ private types used by the template * definition before calling gtk_widget_init_template() -@@ -8714,6 +9139,258 @@ gtk_file_chooser_widget_new (GtkFileChooserAction action) +@@ -8897,6 +9325,258 @@ gtk_file_chooser_widget_new (GtkFileChooserAction action) NULL); } @@ -1962,7 +1977,7 @@ index fe9bceacdc..6456f59802 100644 static void gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser, const char *id, -@@ -8766,7 +9443,7 @@ gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser, +@@ -8949,7 +9629,7 @@ gtk_file_chooser_widget_add_choice (GtkFileChooser *chooser, widget = check; } @@ -1971,16 +1986,16 @@ index fe9bceacdc..6456f59802 100644 gtk_container_add (GTK_CONTAINER (priv->choice_box), widget); } -@@ -8833,4 +9510,3 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser, +@@ -9016,4 +9696,3 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser, return NULL; } - diff --git a/gtk/org.gtk.Settings.FileChooser.gschema.xml b/gtk/org.gtk.Settings.FileChooser.gschema.xml -index c3753f2f6a..e35a9c7cb0 100644 +index dda603ab61..f0f59b44b1 100644 --- a/gtk/org.gtk.Settings.FileChooser.gschema.xml +++ b/gtk/org.gtk.Settings.FileChooser.gschema.xml -@@ -43,6 +43,11 @@ +@@ -44,6 +44,11 @@ <value nick='12h' value='1'/> </enum> @@ -1992,7 +2007,7 @@ index c3753f2f6a..e35a9c7cb0 100644 <enum id='org.gtk.Settings.FileChooser.DateFormat'> <value nick='regular' value='0'/> <value nick='with-time' value='1'/> -@@ -61,6 +66,20 @@ +@@ -68,6 +73,20 @@ possible values for these modes are "path-bar" and "filename-entry". </description> </key> @@ -2014,7 +2029,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..ebd9f0af47 100644 +index c1b4b43d50..9d9f48d2d8 100644 --- a/gtk/ui/gtkfilechooserwidget.ui +++ b/gtk/ui/gtkfilechooserwidget.ui @@ -8,6 +8,56 @@ @@ -2074,7 +2089,7 @@ index ef227bdc70..ebd9f0af47 100644 <child> <object class="GtkPaned" id="browse_widgets_hpaned"> <property name="visible">1</property> -@@ -155,98 +205,160 @@ +@@ -155,110 +205,172 @@ <property name="visible">1</property> <property name="orientation">vertical</property> <child> @@ -2210,6 +2225,27 @@ index ef227bdc70..ebd9f0af47 100644 - <object class="GtkCellRendererText" id="list_size_renderer"> - <property name="xalign">0</property> - <property name="xpad">6</property> ++ <object class="GtkTreeViewColumn" id="list_type_column"> ++ <property name="title" translatable="yes">Type</property> ++ <property name="resizable">1</property> ++ <child> ++ <object class="GtkCellRendererText" id="list_type_renderer"> ++ <property name="xalign">0</property> ++ <property name="xpad">6</property> ++ </object> ++ </child> + </object> + </child> +- </object> +- </child> +- <child> +- <object class="GtkTreeViewColumn" id="list_type_column"> +- <property name="title" translatable="yes">Type</property> +- <property name="resizable">1</property> + <child> +- <object class="GtkCellRendererText" id="list_type_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> @@ -2300,7 +2336,7 @@ index ef227bdc70..ebd9f0af47 100644 </child> </object> <packing> -@@ -365,7 +477,7 @@ +@@ -377,7 +489,7 @@ </object> <packing> <property name="expand">1</property> |