@@ -350,8 +350,6 @@ private JabRefGuiPreferences() {
350350
351351 // region: Main table, main table column, and search dialog column preferences
352352 defaults .put (EXTRA_FILE_COLUMNS , Boolean .FALSE );
353- defaults .put (COLUMN_NAMES , "groups;group_icons;files;linked_id;field:citationkey;field:entrytype;field:author/editor;field:title;field:year;field:journal/booktitle;special:ranking;special:readstatus;special:priority" );
354- defaults .put (COLUMN_WIDTHS , "28;40;28;28;100;75;300;470;60;130;50;50;50" );
355353
356354 defaults .put (SIDE_PANE_COMPONENT_NAMES , "" );
357355 defaults .put (SIDE_PANE_COMPONENT_PREFERRED_POSITIONS , "" );
@@ -410,6 +408,8 @@ public void clear() throws BackingStoreException {
410408 getWorkspacePreferences ().setAll (WorkspacePreferences .getDefault ());
411409 getGuiPreferences ().setAll (CoreGuiPreferences .getDefault ());
412410 getDonationPreferences ().setAll (DonationPreferences .getDefault ());
411+ getMainTablePreferences ().setAll (MainTablePreferences .getDefault ());
412+ getMainTableColumnPreferences ().setAll (ColumnPreferences .getDefault ());
413413 }
414414
415415 @ Override
@@ -420,6 +420,8 @@ public void importPreferences(Path file) throws JabRefException {
420420 getWorkspacePreferences ().setAll (getWorkspacePreferencesFromBackingStore (getWorkspacePreferences ()));
421421 getGuiPreferences ().setAll (getCoreGuiPreferencesFromBackingStore (getGuiPreferences ()));
422422 getDonationPreferences ().setAll (getDonationPreferencesFromBackingStore (getDonationPreferences ()));
423+ getMainTablePreferences ().setAll (getMainTablePreferencesFromBackingStore (getMainTablePreferences ()));
424+ getMainTableColumnPreferences ().setAll (getMainTableColumnPreferencesFromBackingStore (getMainTableColumnPreferences ()));
423425 }
424426
425427 // region EntryEditorPreferences
@@ -1000,10 +1002,7 @@ public MainTablePreferences getMainTablePreferences() {
10001002 return mainTablePreferences ;
10011003 }
10021004
1003- mainTablePreferences = new MainTablePreferences (
1004- getMainTableColumnPreferences (),
1005- getBoolean (AUTO_RESIZE_MODE ),
1006- getBoolean (EXTRA_FILE_COLUMNS ));
1005+ mainTablePreferences = getMainTablePreferencesFromBackingStore (MainTablePreferences .getDefault ());
10071006
10081007 EasyBind .listen (mainTablePreferences .resizeColumnsToFitProperty (),
10091008 (obs , oldValue , newValue ) -> putBoolean (AUTO_RESIZE_MODE , newValue ));
@@ -1018,9 +1017,7 @@ public ColumnPreferences getMainTableColumnPreferences() {
10181017 return mainTableColumnPreferences ;
10191018 }
10201019
1021- List <MainTableColumnModel > columns = getColumns (COLUMN_NAMES , COLUMN_WIDTHS , COLUMN_SORT_TYPES , ColumnPreferences .DEFAULT_COLUMN_WIDTH );
1022- List <MainTableColumnModel > columnSortOrder = getColumnSortOrder (COLUMN_SORT_ORDER , columns );
1023- mainTableColumnPreferences = new ColumnPreferences (columns , columnSortOrder );
1020+ mainTableColumnPreferences = getMainTableColumnPreferencesFromBackingStore (ColumnPreferences .getDefault ());
10241021
10251022 mainTableColumnPreferences .getColumns ().addListener ((InvalidationListener ) change -> {
10261023 putStringList (COLUMN_NAMES , getColumnNamesAsStringList (mainTableColumnPreferences ));
@@ -1054,6 +1051,28 @@ public ColumnPreferences getSearchDialogColumnPreferences() {
10541051 return searchDialogColumnPreferences ;
10551052 }
10561053
1054+ private MainTablePreferences getMainTablePreferencesFromBackingStore (MainTablePreferences defaults ) {
1055+ return new MainTablePreferences (
1056+ getMainTableColumnPreferences (),
1057+ getBoolean (AUTO_RESIZE_MODE , defaults .getResizeColumnsToFit ()),
1058+ getBoolean (EXTRA_FILE_COLUMNS , defaults .getExtraFileColumnsEnabled ())
1059+ );
1060+ }
1061+
1062+ private ColumnPreferences getMainTableColumnPreferencesFromBackingStore (ColumnPreferences defaults ) {
1063+ List <String > storedColumnNames = getStringList (COLUMN_NAMES );
1064+
1065+ if (storedColumnNames .isEmpty ()) {
1066+ return defaults ;
1067+ }
1068+
1069+ List <MainTableColumnModel > columns = getColumns (COLUMN_NAMES , COLUMN_WIDTHS , COLUMN_SORT_TYPES , ColumnPreferences .DEFAULT_COLUMN_WIDTH );
1070+ List <MainTableColumnModel > columnSortOrder = getColumnSortOrder (COLUMN_SORT_ORDER , columns );
1071+ return new ColumnPreferences (columns , columnSortOrder );
1072+ }
1073+
1074+ // end region
1075+
10571076 // --- Generic column handling ---
10581077 @ SuppressWarnings ("SameParameterValue" )
10591078 private List <MainTableColumnModel > getColumns (String columnNamesList , String columnWidthList , String sortTypeList , double defaultWidth ) {
@@ -1216,7 +1235,7 @@ public DonationPreferences getDonationPreferences() {
12161235 }
12171236
12181237 donationPreferences = getDonationPreferencesFromBackingStore (DonationPreferences .getDefault ());
1219-
1238+
12201239 EasyBind .listen (donationPreferences .neverShowAgainProperty (), (_ , _ , newValue ) -> putBoolean (DONATION_NEVER_SHOW , newValue ));
12211240 EasyBind .listen (donationPreferences .lastShownEpochDayProperty (), (_ , _ , newValue ) -> putInt (DONATION_LAST_SHOWN_EPOCH_DAY , newValue .intValue ()));
12221241 return donationPreferences ;
0 commit comments