summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authordudemanguy2019-10-04 19:36:02 -0500
committerdudemanguy2019-10-04 19:36:02 -0500
commit95b9aa0b1035973080812d4b16e095373aa33ebf (patch)
treebc1f460ac68c1db8bca2f27a8e6cdb59aea8ddaf
parentf95f0e0749b03c793f8bdc4a4df347ca8f55527a (diff)
downloadaur-95b9aa0b1035973080812d4b16e095373aa33ebf.tar.gz
3.24.12-1
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD6
-rw-r--r--gtk3-filechooser-icon-view.patch254
3 files changed, 151 insertions, 115 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 523d1aed5a3b..6f52831dad69 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index f8a072f649be..df18aeb9ccf9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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>