summaryrefslogtreecommitdiff
path: root/thunar
diff options
context:
space:
mode:
authorAlexander Schwinn <alexxcons@xfce.org>2021-12-29 16:33:26 +0100
committerAlexander Schwinn <alexxcons@xfce.org>2021-12-29 22:53:21 +0100
commit9657a28263b1a593fe36b54a7baf3c5094f83ad9 (patch)
tree63ef73bd4db129a42472e5dee9833965a4596286 /thunar
parent7c5fa27f21f0ebe67f0e0aba8b1dd19e44b62664 (diff)
downloadthunar-9657a28263b1a593fe36b54a7baf3c5094f83ad9.tar.gz
Support for thumbnail size x-large and xx-large (Issue #606)
Diffstat (limited to 'thunar')
-rw-r--r--thunar/thunar-enum-types.c80
-rw-r--r--thunar/thunar-enum-types.h30
-rw-r--r--thunar/thunar-preferences-dialog.c4
3 files changed, 70 insertions, 44 deletions
diff --git a/thunar/thunar-enum-types.c b/thunar/thunar-enum-types.c
index 37d57fa1..9e0ba1f4 100644
--- a/thunar/thunar-enum-types.c
+++ b/thunar/thunar-enum-types.c
@@ -185,6 +185,8 @@ thunar_icon_size_get_type (void)
{ THUNAR_ICON_SIZE_160, "THUNAR_ICON_SIZE_160", "160px", },
{ THUNAR_ICON_SIZE_192, "THUNAR_ICON_SIZE_192", "192px", },
{ THUNAR_ICON_SIZE_256, "THUNAR_ICON_SIZE_256", "256px", },
+ { THUNAR_ICON_SIZE_512, "THUNAR_ICON_SIZE_512", "512px", },
+ { THUNAR_ICON_SIZE_1024, "THUNAR_ICON_SIZE_1024", "1024px", },
/* Support of old type-strings for two thunar stable releases. Old strings will be transformed to new ones on write*/
{ THUNAR_ICON_SIZE_16, "THUNAR_ICON_SIZE_SMALLEST", "16px", },
{ THUNAR_ICON_SIZE_24, "THUNAR_ICON_SIZE_SMALLER", "24px", },
@@ -242,28 +244,30 @@ thunar_zoom_level_get_type (void)
{
static const GEnumValue values[] =
{
- { THUNAR_ZOOM_LEVEL_25_PERCENT, "THUNAR_ZOOM_LEVEL_25_PERCENT", "25%", },
- { THUNAR_ZOOM_LEVEL_38_PERCENT, "THUNAR_ZOOM_LEVEL_38_PERCENT", "38%", },
- { THUNAR_ZOOM_LEVEL_50_PERCENT, "THUNAR_ZOOM_LEVEL_50_PERCENT", "50%", },
- { THUNAR_ZOOM_LEVEL_75_PERCENT, "THUNAR_ZOOM_LEVEL_75_PERCENT", "75%", },
- { THUNAR_ZOOM_LEVEL_100_PERCENT, "THUNAR_ZOOM_LEVEL_100_PERCENT", "100%", },
- { THUNAR_ZOOM_LEVEL_150_PERCENT, "THUNAR_ZOOM_LEVEL_150_PERCENT", "150%", },
- { THUNAR_ZOOM_LEVEL_200_PERCENT, "THUNAR_ZOOM_LEVEL_200_PERCENT", "200%", },
- { THUNAR_ZOOM_LEVEL_250_PERCENT, "THUNAR_ZOOM_LEVEL_250_PERCENT", "250%", },
- { THUNAR_ZOOM_LEVEL_300_PERCENT, "THUNAR_ZOOM_LEVEL_300_PERCENT", "300%", },
- { THUNAR_ZOOM_LEVEL_400_PERCENT, "THUNAR_ZOOM_LEVEL_400_PERCENT", "400%", },
+ { THUNAR_ZOOM_LEVEL_25_PERCENT, "THUNAR_ZOOM_LEVEL_25_PERCENT", "25%", },
+ { THUNAR_ZOOM_LEVEL_38_PERCENT, "THUNAR_ZOOM_LEVEL_38_PERCENT", "38%", },
+ { THUNAR_ZOOM_LEVEL_50_PERCENT, "THUNAR_ZOOM_LEVEL_50_PERCENT", "50%", },
+ { THUNAR_ZOOM_LEVEL_75_PERCENT, "THUNAR_ZOOM_LEVEL_75_PERCENT", "75%", },
+ { THUNAR_ZOOM_LEVEL_100_PERCENT, "THUNAR_ZOOM_LEVEL_100_PERCENT", "100%", },
+ { THUNAR_ZOOM_LEVEL_150_PERCENT, "THUNAR_ZOOM_LEVEL_150_PERCENT", "150%", },
+ { THUNAR_ZOOM_LEVEL_200_PERCENT, "THUNAR_ZOOM_LEVEL_200_PERCENT", "200%", },
+ { THUNAR_ZOOM_LEVEL_250_PERCENT, "THUNAR_ZOOM_LEVEL_250_PERCENT", "250%", },
+ { THUNAR_ZOOM_LEVEL_300_PERCENT, "THUNAR_ZOOM_LEVEL_300_PERCENT", "300%", },
+ { THUNAR_ZOOM_LEVEL_400_PERCENT, "THUNAR_ZOOM_LEVEL_400_PERCENT", "400%", },
+ { THUNAR_ZOOM_LEVEL_800_PERCENT, "THUNAR_ZOOM_LEVEL_800_PERCENT", "800%", },
+ { THUNAR_ZOOM_LEVEL_1600_PERCENT, "THUNAR_ZOOM_LEVEL_1600_PERCENT", "1600%",},
/* Support of old type-strings for two thunar stable releases. Old strings will be transformed to new ones on write*/
- { THUNAR_ZOOM_LEVEL_25_PERCENT, "THUNAR_ZOOM_LEVEL_SMALLEST", "25%", },
- { THUNAR_ZOOM_LEVEL_38_PERCENT, "THUNAR_ZOOM_LEVEL_SMALLER", "38%", },
- { THUNAR_ZOOM_LEVEL_50_PERCENT, "THUNAR_ZOOM_LEVEL_SMALL", "50%", },
- { THUNAR_ZOOM_LEVEL_75_PERCENT, "THUNAR_ZOOM_LEVEL_NORMAL", "75%", },
- { THUNAR_ZOOM_LEVEL_100_PERCENT, "THUNAR_ZOOM_LEVEL_LARGE", "100%", },
- { THUNAR_ZOOM_LEVEL_150_PERCENT, "THUNAR_ZOOM_LEVEL_LARGER", "150%", },
- { THUNAR_ZOOM_LEVEL_200_PERCENT, "THUNAR_ZOOM_LEVEL_LARGEST", "200%", },
+ { THUNAR_ZOOM_LEVEL_25_PERCENT, "THUNAR_ZOOM_LEVEL_SMALLEST", "25%", },
+ { THUNAR_ZOOM_LEVEL_38_PERCENT, "THUNAR_ZOOM_LEVEL_SMALLER", "38%", },
+ { THUNAR_ZOOM_LEVEL_50_PERCENT, "THUNAR_ZOOM_LEVEL_SMALL", "50%", },
+ { THUNAR_ZOOM_LEVEL_75_PERCENT, "THUNAR_ZOOM_LEVEL_NORMAL", "75%", },
+ { THUNAR_ZOOM_LEVEL_100_PERCENT, "THUNAR_ZOOM_LEVEL_LARGE", "100%", },
+ { THUNAR_ZOOM_LEVEL_150_PERCENT, "THUNAR_ZOOM_LEVEL_LARGER", "150%", },
+ { THUNAR_ZOOM_LEVEL_200_PERCENT, "THUNAR_ZOOM_LEVEL_LARGEST", "200%", },
/* g_value_transform will pick the last value if nothing else matches. So we put the default there */
/* this is required here, because the names of the enum values have changed since the previous thunar-version*/
- { THUNAR_ZOOM_LEVEL_100_PERCENT, "*", "*", },
- { 0, NULL, NULL, },
+ { THUNAR_ZOOM_LEVEL_100_PERCENT, "*", "*", },
+ { 0, NULL, NULL, },
};
type = g_enum_register_static (I_("ThunarZoomLevel"), values);
@@ -358,8 +362,10 @@ thunar_thumbnail_size_get_type (void)
{
static const GEnumValue values[] =
{
- { THUNAR_THUMBNAIL_SIZE_NORMAL, "THUNAR_THUMBNAIL_SIZE_NORMAL", "normal", },
- { THUNAR_THUMBNAIL_SIZE_LARGE, "THUNAR_THUMBNAIL_SIZE_LARGE", "large", },
+ { THUNAR_THUMBNAIL_SIZE_NORMAL, "THUNAR_THUMBNAIL_SIZE_NORMAL", "normal", },
+ { THUNAR_THUMBNAIL_SIZE_LARGE, "THUNAR_THUMBNAIL_SIZE_LARGE", "large", },
+ { THUNAR_THUMBNAIL_SIZE_X_LARGE, "THUNAR_THUMBNAIL_SIZE_X_LARGE", "x-large", },
+ { THUNAR_THUMBNAIL_SIZE_XX_LARGE, "THUNAR_THUMBNAIL_SIZE_XX_LARGE", "xx-large", },
{ 0, NULL, NULL, },
};
@@ -416,17 +422,19 @@ thunar_zoom_level_to_icon_size (ThunarZoomLevel zoom_level)
{
switch (zoom_level)
{
- case THUNAR_ZOOM_LEVEL_25_PERCENT: return THUNAR_ICON_SIZE_16;
- case THUNAR_ZOOM_LEVEL_38_PERCENT: return THUNAR_ICON_SIZE_24;
- case THUNAR_ZOOM_LEVEL_50_PERCENT: return THUNAR_ICON_SIZE_32;
- case THUNAR_ZOOM_LEVEL_75_PERCENT: return THUNAR_ICON_SIZE_48;
- case THUNAR_ZOOM_LEVEL_100_PERCENT: return THUNAR_ICON_SIZE_64;
- case THUNAR_ZOOM_LEVEL_150_PERCENT: return THUNAR_ICON_SIZE_96;
- case THUNAR_ZOOM_LEVEL_200_PERCENT: return THUNAR_ICON_SIZE_128;
- case THUNAR_ZOOM_LEVEL_250_PERCENT: return THUNAR_ICON_SIZE_160;
- case THUNAR_ZOOM_LEVEL_300_PERCENT: return THUNAR_ICON_SIZE_192;
- case THUNAR_ZOOM_LEVEL_400_PERCENT: return THUNAR_ICON_SIZE_256;
- default: return THUNAR_ICON_SIZE_64; // default = 100 %zoom
+ case THUNAR_ZOOM_LEVEL_25_PERCENT: return THUNAR_ICON_SIZE_16;
+ case THUNAR_ZOOM_LEVEL_38_PERCENT: return THUNAR_ICON_SIZE_24;
+ case THUNAR_ZOOM_LEVEL_50_PERCENT: return THUNAR_ICON_SIZE_32;
+ case THUNAR_ZOOM_LEVEL_75_PERCENT: return THUNAR_ICON_SIZE_48;
+ case THUNAR_ZOOM_LEVEL_100_PERCENT: return THUNAR_ICON_SIZE_64;
+ case THUNAR_ZOOM_LEVEL_150_PERCENT: return THUNAR_ICON_SIZE_96;
+ case THUNAR_ZOOM_LEVEL_200_PERCENT: return THUNAR_ICON_SIZE_128;
+ case THUNAR_ZOOM_LEVEL_250_PERCENT: return THUNAR_ICON_SIZE_160;
+ case THUNAR_ZOOM_LEVEL_300_PERCENT: return THUNAR_ICON_SIZE_192;
+ case THUNAR_ZOOM_LEVEL_400_PERCENT: return THUNAR_ICON_SIZE_256;
+ case THUNAR_ZOOM_LEVEL_800_PERCENT: return THUNAR_ICON_SIZE_512;
+ case THUNAR_ZOOM_LEVEL_1600_PERCENT: return THUNAR_ICON_SIZE_1024;
+ default: return THUNAR_ICON_SIZE_64; // default = 100 %zoom
}
}
@@ -435,7 +443,13 @@ thunar_zoom_level_to_icon_size (ThunarZoomLevel zoom_level)
static ThunarThumbnailSize
thunar_icon_size_to_thumbnail_size (ThunarIconSize icon_size)
{
- if (icon_size > THUNAR_ICON_SIZE_128)
+ if (icon_size >= THUNAR_ICON_SIZE_1024)
+ return THUNAR_THUMBNAIL_SIZE_XX_LARGE;
+
+ if (icon_size >= THUNAR_ICON_SIZE_512)
+ return THUNAR_THUMBNAIL_SIZE_X_LARGE;
+
+ if (icon_size >= THUNAR_ICON_SIZE_128)
return THUNAR_THUMBNAIL_SIZE_LARGE;
return THUNAR_THUMBNAIL_SIZE_NORMAL;
diff --git a/thunar/thunar-enum-types.h b/thunar/thunar-enum-types.h
index 3757e478..ab4470d8 100644
--- a/thunar/thunar-enum-types.h
+++ b/thunar/thunar-enum-types.h
@@ -139,16 +139,18 @@ gboolean thunar_column_value_from_string (const gchar *value_string,
**/
typedef enum
{
- THUNAR_ICON_SIZE_16 = 16,
- THUNAR_ICON_SIZE_24 = 24,
- THUNAR_ICON_SIZE_32 = 32,
- THUNAR_ICON_SIZE_48 = 48,
- THUNAR_ICON_SIZE_64 = 64,
- THUNAR_ICON_SIZE_96 = 96,
- THUNAR_ICON_SIZE_128 = 128,
- THUNAR_ICON_SIZE_160 = 160,
- THUNAR_ICON_SIZE_192 = 192,
- THUNAR_ICON_SIZE_256 = 256,
+ THUNAR_ICON_SIZE_16 = 16,
+ THUNAR_ICON_SIZE_24 = 24,
+ THUNAR_ICON_SIZE_32 = 32,
+ THUNAR_ICON_SIZE_48 = 48,
+ THUNAR_ICON_SIZE_64 = 64,
+ THUNAR_ICON_SIZE_96 = 96,
+ THUNAR_ICON_SIZE_128 = 128,
+ THUNAR_ICON_SIZE_160 = 160,
+ THUNAR_ICON_SIZE_192 = 192,
+ THUNAR_ICON_SIZE_256 = 256,
+ THUNAR_ICON_SIZE_512 = 512,
+ THUNAR_ICON_SIZE_1024 = 1024,
} ThunarIconSize;
GType thunar_icon_size_get_type (void) G_GNUC_CONST;
@@ -178,11 +180,15 @@ GType thunar_thumbnail_mode_get_type (void) G_GNUC_CONST;
* ThunarThumbnailSize:
* @THUNAR_THUMBNAIL_NORMAL : max 128px x 128px
* @THUNAR_THUMBNAIL_LARGE : max 256px x 256px
+ * @THUNAR_THUMBNAIL_X_LARGE : max 512px x 512px
+ * @THUNAR_THUMBNAIL_XX_LARGE : max 1024px x 1024px
**/
typedef enum
{
THUNAR_THUMBNAIL_SIZE_NORMAL,
- THUNAR_THUMBNAIL_SIZE_LARGE
+ THUNAR_THUMBNAIL_SIZE_LARGE,
+ THUNAR_THUMBNAIL_SIZE_X_LARGE,
+ THUNAR_THUMBNAIL_SIZE_XX_LARGE
} ThunarThumbnailSize;
GType thunar_thumbnail_size_get_type (void) G_GNUC_CONST;
@@ -248,6 +254,8 @@ typedef enum
THUNAR_ZOOM_LEVEL_250_PERCENT,
THUNAR_ZOOM_LEVEL_300_PERCENT,
THUNAR_ZOOM_LEVEL_400_PERCENT,
+ THUNAR_ZOOM_LEVEL_800_PERCENT,
+ THUNAR_ZOOM_LEVEL_1600_PERCENT,
/*< private >*/
THUNAR_ZOOM_N_LEVELS,
diff --git a/thunar/thunar-preferences-dialog.c b/thunar/thunar-preferences-dialog.c
index 315e0f50..8ea14635 100644
--- a/thunar/thunar-preferences-dialog.c
+++ b/thunar/thunar-preferences-dialog.c
@@ -653,6 +653,8 @@ thunar_preferences_dialog_init (ThunarPreferencesDialog *dialog)
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("160px"));
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("192px"));
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("256px"));
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("512px"));
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("1024px"));
g_object_bind_property_full (G_OBJECT (dialog->preferences),
"shortcuts-icon-size",
G_OBJECT (combo),
@@ -717,6 +719,8 @@ thunar_preferences_dialog_init (ThunarPreferencesDialog *dialog)
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("160px"));
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("192px"));
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("256px"));
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("512px"));
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("1024px"));
g_object_bind_property_full (G_OBJECT (dialog->preferences),
"tree-icon-size",
G_OBJECT (combo),