From 5209995eeddbba2a37bfba866ee3a97fd941574e Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 12 May 2009 22:41:24 +0000 Subject: [PATCH] Enable (re)storing a VirtualTree layout on different forms without naming conflicts in registry. Plus: use that in the new table editor. --- source/main.pas | 25 ++++++++++++++++--------- source/table_editor.pas | 4 ++++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/source/main.pas b/source/main.pas index 53d5b24c..94f2f71d 100644 --- a/source/main.pas +++ b/source/main.pas @@ -798,8 +798,6 @@ type function GetSelectedTable: WideString; procedure SetSelectedDatabase(db: WideString); procedure SetSelectedTable(table: WideString); - procedure SaveListSetup( List: TVirtualStringTree ); - procedure RestoreListSetup( List: TVirtualStringTree ); procedure SetVisibleListColumns( List: TVirtualStringTree; Columns: WideStrings.TWideStringList ); function GetTableSize(ds: TDataSet): Int64; procedure ToggleFilterPanel(ForceVisible: Boolean = False); @@ -934,6 +932,8 @@ type procedure DataViewClick(Sender: TObject); procedure LoadDataView(ViewName: String); function GetRegKeyTable: String; + procedure SaveListSetup( List: TVirtualStringTree ); + procedure RestoreListSetup( List: TVirtualStringTree ); function GetCollations: TDataset; end; @@ -6672,7 +6672,7 @@ end; procedure TMainForm.SaveListSetup( List: TVirtualStringTree ); var i : Byte; - ColWidths, ColsVisible, ColPos : String; + ColWidths, ColsVisible, ColPos, Regname: String; begin ColWidths := ''; ColsVisible := ''; @@ -6699,9 +6699,12 @@ begin end; OpenRegistry; - MainReg.WriteString( REGPREFIX_COLWIDTHS + List.Name, ColWidths ); - MainReg.WriteString( REGPREFIX_COLSVISIBLE + List.Name, ColsVisible ); - MainReg.WriteString( REGPREFIX_COLPOS + List.Name, ColPos ); + Regname := List.Name; + if GetParentForm(List) <> Self then + Regname := GetParentForm(List).Name + '.' + Regname; + MainReg.WriteString( REGPREFIX_COLWIDTHS + Regname, ColWidths ); + MainReg.WriteString( REGPREFIX_COLSVISIBLE + Regname, ColsVisible ); + MainReg.WriteString( REGPREFIX_COLPOS + Regname, ColPos ); end; @@ -6714,11 +6717,15 @@ var colwidth, colpos : Integer; Value : WideString; ValueList : WideStrings.TWideStringList; + Regname: String; begin ValueList := WideStrings.TWideStringList.Create; // Column widths - Value := GetRegValue(REGPREFIX_COLWIDTHS + List.Name, ''); + Regname := List.Name; + if GetParentForm(List) <> Self then + Regname := GetParentForm(List).Name + '.' + Regname; + Value := GetRegValue(REGPREFIX_COLWIDTHS + Regname, ''); if Value <> '' then begin ValueList := Explode( ',', Value ); for i := 0 to ValueList.Count - 1 do @@ -6731,14 +6738,14 @@ begin end; // Column visibility - Value := GetRegValue(REGPREFIX_COLSVISIBLE + List.Name, ''); + Value := GetRegValue(REGPREFIX_COLSVISIBLE + Regname, ''); if Value <> '' then begin ValueList := Explode( ',', Value ); SetVisibleListColumns( List, ValueList ); end; // Column position - Value := GetRegValue(REGPREFIX_COLPOS + List.Name, ''); + Value := GetRegValue(REGPREFIX_COLPOS + Regname, ''); if Value <> '' then begin ValueList := Explode( ',', Value ); for i := 0 to ValueList.Count - 1 do diff --git a/source/table_editor.pas b/source/table_editor.pas index c0449ce8..985d67bb 100644 --- a/source/table_editor.pas +++ b/source/table_editor.pas @@ -182,6 +182,8 @@ begin InheritFont(Font); FixVT(listColumns); FixVT(treeIndexes); + Mainform.RestoreListSetup(listColumns); + Mainform.RestoreListSetup(treeIndexes); FLoaded := False; comboRowFormat.Items.CommaText := 'DEFAULT,DYNAMIC,FIXED,COMPRESSED,REDUNDANT,COMPACT'; comboInsertMethod.Items.CommaText := 'NO,FIRST,LAST'; @@ -204,6 +206,8 @@ begin MainReg.WriteInteger(REGNAME_TABLEEDITOR_WIDTH, Width); MainReg.WriteInteger(REGNAME_TABLEEDITOR_HEIGHT, Height); MainReg.WriteInteger(REGNAME_TABLEEDITOR_TABSHEIGHT, PageControlMain.Height); + Mainform.SaveListSetup(listColumns); + Mainform.SaveListSetup(treeIndexes); end;