summaryrefslogtreecommitdiff
path: root/src/file-manager
diff options
context:
space:
mode:
authorMoritz Bruder <[email protected]>2018-04-04 09:39:47 +0200
committerlukefromdc <[email protected]>2018-04-08 15:01:05 -0400
commit0585258dc117b50cf8e8f6b5361fd815cc292cca (patch)
tree07f4a10ba806c9acd9b46989e6649c3a24880107 /src/file-manager
parent68ace006c2443c5f4f263bcdb949ad4685a42081 (diff)
downloadcaja-0585258dc117b50cf8e8f6b5361fd815cc292cca.tar.bz2
caja-0585258dc117b50cf8e8f6b5361fd815cc292cca.tar.xz
Add sort criterion by reversed extension segments
The basenames of files are split by dots and then starting from the end each segment is compared to find a sort order. Example: bar.tar.bz2 foo.tar.bz2 a.bar.gz x.tar.gz z.tar.gz test.tex A heuristic determines what extension segments are part of the extension. There is probably no perfect solution but there are much less false positives. As a result the sorting is more intuitive and the displayed column in the list view is better readable and displays extensions more accurately. In addition a bug related to the default sort criteria in the preferences has been fixed.
Diffstat (limited to 'src/file-manager')
-rw-r--r--src/file-manager/caja-icon-view-ui.xml2
-rw-r--r--src/file-manager/fm-icon-view.c13
2 files changed, 15 insertions, 0 deletions
diff --git a/src/file-manager/caja-icon-view-ui.xml b/src/file-manager/caja-icon-view-ui.xml
index 89c4cb6e..865daaf3 100644
--- a/src/file-manager/caja-icon-view-ui.xml
+++ b/src/file-manager/caja-icon-view-ui.xml
@@ -17,6 +17,7 @@
<menuitem name="Sort by Modification Date" action="Sort by Modification Date"/>
<menuitem name="Sort by Emblems" action="Sort by Emblems"/>
<menuitem name="Sort by Trash Time" action="Sort by Trash Time"/>
+ <menuitem name="Sort by Extension" action="Sort by Extension"/>
</placeholder>
<separator name="Layout separator"/>
<menuitem name="Tighter Layout" action="Tighter Layout"/>
@@ -40,6 +41,7 @@
<menuitem name="Sort by Modification Date" action="Sort by Modification Date"/>
<menuitem name="Sort by Emblems" action="Sort by Emblems"/>
<menuitem name="Sort by Trash Time" action="Sort by Trash Time"/>
+ <menuitem name="Sort by Extension" action="Sort by Extension"/>
</placeholder>
<separator name="Layout separator"/>
<menuitem name="Tighter Layout" action="Tighter Layout"/>
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index aadb3463..2d533bfc 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -169,6 +169,13 @@ static const SortCriterion sort_criteria[] =
"Sort by Trash Time",
N_("by T_rash Time"),
N_("Keep icons sorted by trash time in rows")
+ },
+ {
+ CAJA_FILE_SORT_BY_EXTENSION,
+ "extension",
+ "Sort by Extension",
+ N_("by E_xtension"),
+ N_("Keep icons sorted by reversed extension segments in rows")
}
};
@@ -1770,6 +1777,12 @@ static const GtkRadioActionEntry arrange_radio_entries[] =
N_("Keep icons sorted by trash time in rows"),
CAJA_FILE_SORT_BY_TRASHED_TIME
},
+ {
+ "Sort by Extension", NULL,
+ N_("By E_xtension"), NULL,
+ N_("Keep icons sorted by reverse extension segments in rows"),
+ CAJA_FILE_SORT_BY_EXTENSION
+ },
};
static void