From 25c9935c888006f8a540d7bcaadb99a9a52bf4d0 Mon Sep 17 00:00:00 2001 From: Wu Xiaotian Date: Thu, 25 Jul 2019 22:32:36 +0800 Subject: Add preference option to hide icons in list view. --- libcaja-private/caja-global-preferences.h | 1 + libcaja-private/org.mate.caja.gschema.xml | 5 ++++ src/caja-file-management-properties.c | 5 ++++ src/caja-file-management-properties.ui | 49 +++++++++++++++++++++++++++++++ src/file-manager/fm-list-model.c | 14 +++++++++ src/ui-a11y.suppr | 1 + 6 files changed, 75 insertions(+) diff --git a/libcaja-private/caja-global-preferences.h b/libcaja-private/caja-global-preferences.h index d3e4b7ce..a7df4928 100644 --- a/libcaja-private/caja-global-preferences.h +++ b/libcaja-private/caja-global-preferences.h @@ -68,6 +68,7 @@ G_BEGIN_DECLS #define CAJA_PREFERENCES_SHOW_ADVANCED_PERMISSIONS "show-advanced-permissions" #define CAJA_PREFERENCES_DATE_FORMAT "date-format" #define CAJA_PREFERENCES_USE_IEC_UNITS "use-iec-units" +#define CAJA_PREFERENCES_HIDE_ICON_IN_LIST_VIEW "hide-icons-in-list-view" /* Mouse */ #define CAJA_PREFERENCES_MOUSE_USE_EXTRA_BUTTONS "mouse-use-extra-buttons" diff --git a/libcaja-private/org.mate.caja.gschema.xml b/libcaja-private/org.mate.caja.gschema.xml index 8ecc1977..481372ee 100644 --- a/libcaja-private/org.mate.caja.gschema.xml +++ b/libcaja-private/org.mate.caja.gschema.xml @@ -259,6 +259,11 @@ Whether to show file sizes with IEC units If set to true, file sizes are shown using IEC (base 1024) units with "KiB" style suffixes, instead of default with SI units. + + false + Whether to hide icons in list view + If set to true, hide file icons in list view. + true Whether to show desktop notifications diff --git a/src/caja-file-management-properties.c b/src/caja-file-management-properties.c index d361d15d..9596461e 100644 --- a/src/caja-file-management-properties.c +++ b/src/caja-file-management-properties.c @@ -73,6 +73,7 @@ #define CAJA_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTOMOUNT_OPEN "media_automount_open_checkbutton" #define CAJA_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTORUN_NEVER "media_autorun_never_checkbutton" #define CAJA_FILE_MANAGEMENT_PROPERTIES_USE_IEC_UNITS_WIDGET "use_iec_units" +#define CAJA_FILE_MANAGEMENT_PROPERTIES_HIDE_ICON_IN_LIST_VIEW "hide_icons_in_list_view" /* int enums */ #define CAJA_FILE_MANAGEMENT_PROPERTIES_THUMBNAIL_LIMIT_WIDGET "preview_image_size_combobox" @@ -1192,6 +1193,10 @@ caja_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow *wi CAJA_FILE_MANAGEMENT_PROPERTIES_USE_IEC_UNITS_WIDGET, CAJA_PREFERENCES_USE_IEC_UNITS); + bind_builder_bool (builder, caja_preferences, + CAJA_FILE_MANAGEMENT_PROPERTIES_HIDE_ICON_IN_LIST_VIEW, + CAJA_PREFERENCES_HIDE_ICON_IN_LIST_VIEW); + bind_builder_enum (builder, caja_preferences, CAJA_FILE_MANAGEMENT_PROPERTIES_DEFAULT_VIEW_WIDGET, CAJA_PREFERENCES_DEFAULT_FOLDER_VIEWER, diff --git a/src/caja-file-management-properties.ui b/src/caja-file-management-properties.ui index aa337c2f..903301e7 100644 --- a/src/caja-file-management-properties.ui +++ b/src/caja-file-management-properties.ui @@ -1519,6 +1519,55 @@ 2 + + + True + False + vertical + 6 + + + True + False + <b>List View</b> + True + 0 + + + False + False + 0 + + + + + True + False + 12 + + + _Hide icons in list view + True + True + False + True + True + + + + + False + False + 1 + + + + + False + False + 3 + + 2 diff --git a/src/file-manager/fm-list-model.c b/src/file-manager/fm-list-model.c index d8b99aad..3b7f03b0 100644 --- a/src/file-manager/fm-list-model.c +++ b/src/file-manager/fm-list-model.c @@ -37,6 +37,7 @@ #include #include +#include #include "fm-list-model.h" @@ -321,6 +322,19 @@ fm_list_model_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int column case FM_LIST_MODEL_LARGE_ICON_COLUMN: case FM_LIST_MODEL_LARGER_ICON_COLUMN: case FM_LIST_MODEL_LARGEST_ICON_COLUMN: + if (g_settings_get_boolean (caja_preferences, CAJA_PREFERENCES_HIDE_ICON_IN_LIST_VIEW)) { + cairo_surface_t *surface; + int icon_size; + + g_value_init (value, CAIRO_GOBJECT_TYPE_SURFACE); + + zoom_level = fm_list_model_get_zoom_level_from_column_id (column); + icon_size = caja_get_icon_size_for_zoom_level (zoom_level); + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, icon_size, icon_size); + g_value_take_boxed (value, surface); + break; + } g_value_init (value, CAIRO_GOBJECT_TYPE_SURFACE); if (file != NULL) diff --git a/src/ui-a11y.suppr b/src/ui-a11y.suppr index c257b3c7..cc6decc2 100644 --- a/src/ui-a11y.suppr +++ b/src/ui-a11y.suppr @@ -32,4 +32,5 @@ caja-file-management-properties.ui://GtkLabel[@id='label60'] orphan-label caja-file-management-properties.ui://GtkLabel[@id='label61'] orphan-label caja-file-management-properties.ui://GtkLabel[@id='label65'] orphan-label caja-file-management-properties.ui://GtkLabel[@id='label7'] orphan-label +caja-file-management-properties.ui://GtkLabel[@id='label8'] orphan-label caja-file-management-properties.ui://GtkTreeView[@id='extension_view'] no-labelled-by -- cgit v1.2.1