From 4bf40df327a2570c7d253b68f00ae8f4b11835f3 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Tue, 22 Sep 2026 15:15:34 +0200 Subject: [PATCH 1/2] Add requirement for multi-column sorting of the main table Co-Authored-By: Claude Opus 5 (1M context) --- docs/requirements/ux.md | 9 +++++++++ .../jabref/gui/maintable/ColumnPreferencesApplier.java | 1 + 2 files changed, 10 insertions(+) diff --git a/docs/requirements/ux.md b/docs/requirements/ux.md index b745b12e3b25..42510b400f11 100644 --- a/docs/requirements/ux.md +++ b/docs/requirements/ux.md @@ -49,6 +49,15 @@ Headers use Title Case, as an exception to the sentence-case rule for UI text, s Needs: impl +## Main table sorts by several columns +`req~maintable.sort.multi-column~1` + +The main table sorts by a primary column and, for entries equal in it, by a secondary, tertiary, … column. +Shift+click on a column header adds it as the next sort level. +The sort levels are kept across restarts. + +Needs: impl + ## Critical startup failures show an error dialog `req~ux.startup.critical-error-dialog~1` diff --git a/jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferencesApplier.java b/jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferencesApplier.java index 99cd35583004..1ac59ba4df94 100644 --- a/jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferencesApplier.java +++ b/jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferencesApplier.java @@ -66,6 +66,7 @@ void unbind() { mainTablePreferences.resizeColumnsToFitProperty().removeListener(resizeColumnsListener); } + // [impl->req~maintable.sort.multi-column~1] void applySortOrder() { List> sortOrder = configured(mainTablePreferences.getColumnPreferences().getColumnSortOrder()) .stream() From 33de17e22a24700e097026be3d4fb8f2c35f1111 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Tue, 22 Sep 2026 15:21:12 +0200 Subject: [PATCH 2/2] Format Shift key in multi-column sort requirement Co-Authored-By: Claude Opus 5 (1M context) --- docs/requirements/ux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements/ux.md b/docs/requirements/ux.md index 42510b400f11..9834e5659696 100644 --- a/docs/requirements/ux.md +++ b/docs/requirements/ux.md @@ -53,7 +53,7 @@ Needs: impl `req~maintable.sort.multi-column~1` The main table sorts by a primary column and, for entries equal in it, by a secondary, tertiary, … column. -Shift+click on a column header adds it as the next sort level. +Shift + click on a column header adds it as the next sort level. The sort levels are kept across restarts. Needs: impl