Skip to content

Commit deb5ff4

Browse files
committed
Fix some default column setup issues; "reset" -> use explicit default
1 parent 5113a7d commit deb5ff4

File tree

1 file changed

+37
-21
lines changed

1 file changed

+37
-21
lines changed

core/src/com/biglybt/ui/common/table/impl/TableColumnManager.java

+37-21
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,7 @@ public void setTableConfigMap(String sTableID, Map mapTableConfig ) {
817817

818818
Map mapTablesConfig = getTablesConfigMap();
819819

820-
return((Map)mapTablesConfig.get(key));
820+
return( BEncoder.cloneMap((Map)mapTablesConfig.get(key)));
821821
}
822822
}
823823

@@ -826,6 +826,8 @@ public void setTableConfigMap(String sTableID, Map mapTableConfig ) {
826826
String sTableID,
827827
Map mapTableConfigDefault )
828828
{
829+
mapTableConfigDefault = BEncoder.cloneMap( mapTableConfigDefault);
830+
829831
sTableID = getBaseViewID( sTableID );
830832
synchronized (this) {
831833
String key = "TableDefault." + sTableID;
@@ -993,31 +995,45 @@ public TableColumnInfo getColumnInfo( TableColumnCore column ){
993995
}
994996
}
995997

996-
public void resetColumns(Class dataSourceType, String tableID) {
997-
TableColumnCore[] allTableColumns = getAllTableColumnCoreAsArray(
998-
dataSourceType, tableID);
999-
if (allTableColumns != null) {
1000-
for (TableColumnCore column : allTableColumns) {
1001-
if (column != null) {
1002-
column.setVisible(false);
1003-
column.reset();
998+
public void
999+
resetColumns(
1000+
Class dataSourceType, String tableID)
1001+
{
1002+
Map defaults = getTableConfigDefaultMap(tableID);
1003+
1004+
if ( defaults == null ){
1005+
TableColumnCore[] allTableColumns = getAllTableColumnCoreAsArray(
1006+
dataSourceType, tableID);
1007+
if (allTableColumns != null) {
1008+
for (TableColumnCore column : allTableColumns) {
1009+
if (column != null) {
1010+
column.setVisible(false);
1011+
column.reset();
1012+
}
10041013
}
10051014
}
1006-
}
1007-
String[] defaultColumnNames = getDefaultColumnNames(tableID);
1008-
if (defaultColumnNames != null) {
1009-
int i = 0;
1010-
for (String name : defaultColumnNames) {
1011-
TableColumnCore column = getTableColumnCore(tableID, name);
1012-
if (column != null) {
1013-
column.setVisible(true);
1014-
column.setPositionNoShift(i++);
1015+
String[] defaultColumnNames = getDefaultColumnNames(tableID);
1016+
if (defaultColumnNames != null) {
1017+
int i = 0;
1018+
for (String name : defaultColumnNames) {
1019+
TableColumnCore column = getTableColumnCore(tableID, name);
1020+
if (column != null) {
1021+
column.setVisible(true);
1022+
column.setPositionNoShift(i++);
1023+
}
10151024
}
10161025
}
1026+
1027+
saveTableColumns(dataSourceType, tableID);
1028+
1029+
}else{
1030+
1031+
setTableConfigMap(tableID, defaults );
1032+
1033+
loadTableColumnSettings( dataSourceType, tableID );
10171034
}
1018-
saveTableColumns(dataSourceType, tableID);
1019-
TableStructureEventDispatcher.getInstance(tableID).tableStructureChanged(
1020-
true, dataSourceType);
1035+
1036+
TableStructureEventDispatcher.getInstance(tableID).tableStructureChanged(true, dataSourceType);
10211037
}
10221038

10231039
private void markDirty() {

0 commit comments

Comments
 (0)