diff --git a/debugger/breakpointsdlg.pp b/debugger/breakpointsdlg.pp index 219ca8c905..3d0c6fef19 100644 --- a/debugger/breakpointsdlg.pp +++ b/debugger/breakpointsdlg.pp @@ -182,6 +182,7 @@ const COL_BREAK_ACTION = 5; COL_BREAK_PASS = 6; COL_BREAK_GROUP = 7; + COL_WIDTHS: Array[0..6] of integer = ( 50, 150, 100, 75, 150, 100, 80); function BreakPointDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -317,6 +318,8 @@ begin end; constructor TBreakPointsDlg.Create(AOwner: TComponent); +var + i: Integer; begin inherited; Name:='BreakPointsDlg'; @@ -362,6 +365,8 @@ begin actEnableAllInSrc.Caption:= lisEnableAllInSameSource; actDisableAllInSrc.Caption:= lisDisableAllInSameSource; actDeleteAllInSrc.Caption:= lisDeleteAllInSameSource; + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + lvBreakPoints.Column[i].Width := COL_WIDTHS[i]; FLockActionUpdate := 0; end; @@ -815,18 +820,12 @@ end; function TBreakPointsDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_BREAK_STATE: ASize := lvBreakPoints.Column[0].Width; - COL_BREAK_FILE: ASize := lvBreakPoints.Column[1].Width; - COL_BREAK_LINE: ASize := lvBreakPoints.Column[2].Width; - COL_BREAK_CONDITION: ASize := lvBreakPoints.Column[3].Width; - COL_BREAK_ACTION: ASize := lvBreakPoints.Column[4].Width; - COL_BREAK_PASS: ASize := lvBreakPoints.Column[5].Width; - COL_BREAK_GROUP: ASize := lvBreakPoints.Column[6].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvBreakPoints.ColumnCount) then begin + ASize := lvBreakPoints.Column[AColId - 1].Width; + Result := ASize <> COL_WIDTHS[AColId - 1]; + end + else + Result := False; end; procedure TBreakPointsDlg.ColSizeSetter(AColId: Integer; ASize: Integer); diff --git a/debugger/callstackdlg.pp b/debugger/callstackdlg.pp index 0b502366d5..d935ad4b9f 100644 --- a/debugger/callstackdlg.pp +++ b/debugger/callstackdlg.pp @@ -163,6 +163,7 @@ const COL_STACK_SOURCE = 3; COL_STACK_LINE = 4; COL_STACK_FUNC = 5; + COL_WIDTHS: Array[0..4] of integer = ( 50, 0, 150, 50, 280); function CallStackDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -180,6 +181,8 @@ end; { TCallStackDlg } constructor TCallStackDlg.Create(AOwner: TComponent); +var + i: Integer; begin inherited Create(AOwner); CallStackNotification.OnChange := @CallStackChanged; @@ -196,6 +199,12 @@ begin FInUpdateView := False; actViewLimit.Caption := popLimit10.Caption; actToggleBreakPoint.ShortCut := IDECommandList.FindIDECommand(ecToggleBreakPoint).AsShortCut; + + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + if COL_WIDTHS[i] > 0 then + lvCallStack.Column[i].Width := COL_WIDTHS[i] + else + lvCallStack.Column[i].AutoSize := True; end; procedure TCallStackDlg.CallStackChanged(Sender: TObject); @@ -217,16 +226,12 @@ end; function TCallStackDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_STACK_BRKPOINT: ASize := lvCallStack.Column[0].Width; - COL_STACK_INDEX: ASize := lvCallStack.Column[1].Width; - COL_STACK_SOURCE: ASize := lvCallStack.Column[2].Width; - COL_STACK_LINE: ASize := lvCallStack.Column[3].Width; - COL_STACK_FUNC: ASize := lvCallStack.Column[4].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvCallStack.ColumnCount) then begin + ASize := lvCallStack.Column[AColId - 1].Width; + Result := (ASize <> COL_WIDTHS[AColId - 1]) and (not lvCallStack.Column[AColId - 1].AutoSize); + end + else + Result := False; end; procedure TCallStackDlg.ColSizeSetter(AColId: Integer; ASize: Integer); diff --git a/debugger/historydlg.pp b/debugger/historydlg.pp index 12e58749ce..d3f05a0d78 100644 --- a/debugger/historydlg.pp +++ b/debugger/historydlg.pp @@ -67,6 +67,7 @@ const COL_HISTORY_CUR = 1; COL_HISTORY_TIME = 2; COL_HISTORY_LOC = 3; + COL_WIDTHS: Array[0..2] of integer = ( 25, 120, 250); function HistoryDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -290,14 +291,12 @@ end; function THistoryDialog.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_HISTORY_CUR: ASize := lvHistory.Column[0].Width; - COL_HISTORY_TIME: ASize := lvHistory.Column[1].Width; - COL_HISTORY_LOC: ASize := lvHistory.Column[2].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvHistory.ColumnCount) then begin + ASize := lvHistory.Column[AColId - 1].Width; + Result := ASize <> COL_WIDTHS[AColId - 1]; + end + else + Result := False; end; procedure THistoryDialog.ColSizeSetter(AColId: Integer; ASize: Integer); @@ -310,6 +309,8 @@ begin end; constructor THistoryDialog.Create(TheOwner: TComponent); +var + i: Integer; begin inherited Create(TheOwner); FInSnapshotChanged := False; @@ -357,6 +358,10 @@ begin tbPowerClick(nil); tbHistorySelectedClick(nil); + + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + lvHistory.Column[i].Width := COL_WIDTHS[i]; + end; initialization diff --git a/debugger/inspectdlg.pas b/debugger/inspectdlg.pas index 923403e324..226a3f458e 100644 --- a/debugger/inspectdlg.pas +++ b/debugger/inspectdlg.pas @@ -434,7 +434,7 @@ end; function TIDEInspectDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; + ASize := -1; case AColId of COL_INSPECT_DNAME: ASize := FGridData.ColWidths[0]; COL_INSPECT_DTYPE: ASize := FGridData.ColWidths[1]; @@ -443,9 +443,8 @@ begin COL_INSPECT_MTYPE: ASize := FGridMethods.ColWidths[1]; COL_INSPECT_MRETURNS: ASize := FGridMethods.ColWidths[2]; COL_INSPECT_MADDRESS: ASize := FGridMethods.ColWidths[3]; - else - Result := False; end; + Result := (ASize > 0) and (ASize <> 100); // The default for all end; procedure TIDEInspectDlg.ColSizeSetter(AColId: Integer; ASize: Integer); diff --git a/debugger/localsdlg.pp b/debugger/localsdlg.pp index 8d19462405..5d2f367964 100644 --- a/debugger/localsdlg.pp +++ b/debugger/localsdlg.pp @@ -100,6 +100,7 @@ var const COL_LOCALS_NAME = 1; COL_LOCALS_VALUE = 2; + COL_WIDTHS: Array[0..1] of integer = ( 50, 150); function LocalsDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -117,6 +118,8 @@ end; { TLocalsDlg } constructor TLocalsDlg.Create(AOwner: TComponent); +var + i: Integer; begin inherited Create(AOwner); LocalsNotification.OnChange := @LocalsChanged; @@ -132,6 +135,9 @@ begin actEvaluate.Caption := lisEvaluateModify; actCopyName.Caption := lisLocalsDlgCopyName; actCopyValue.Caption := lisLocalsDlgCopyValue; + + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + lvLocals.Column[i].Width := COL_WIDTHS[i]; end; procedure TLocalsDlg.actInspectUpdate(Sender: TObject); @@ -336,13 +342,12 @@ end; function TLocalsDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_LOCALS_NAME: ASize := lvLocals.Column[0].Width; - COL_LOCALS_VALUE: ASize := lvLocals.Column[1].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvLocals.ColumnCount) then begin + ASize := lvLocals.Column[AColId - 1].Width; + Result := (ASize <> COL_WIDTHS[AColId - 1]) and (not lvLocals.Column[AColId - 1].AutoSize); + end + else + Result := False; end; procedure TLocalsDlg.ColSizeSetter(AColId: Integer; ASize: Integer); diff --git a/debugger/registersdlg.pp b/debugger/registersdlg.pp index 021783f1cf..0159c0aa97 100644 --- a/debugger/registersdlg.pp +++ b/debugger/registersdlg.pp @@ -97,6 +97,7 @@ var const COL_REGISTER_NAME = 1; COL_REGISTER_VALUE = 2; + COL_WIDTHS: Array[0..1] of integer = ( 150, 50); function RegisterDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -114,6 +115,8 @@ end; { TRegistersDlg } constructor TRegistersDlg.Create(AOwner: TComponent); +var + i: Integer; begin inherited Create(AOwner); FRegistersNotification := TIDERegistersNotification.Create; @@ -146,6 +149,9 @@ begin DispOct.Tag := ord(rdOctal); DispDec.Tag := ord(rdDecimal); DispRaw.Tag := ord(rdRaw); + + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + lvRegisters.Column[i].Width := COL_WIDTHS[i]; end; destructor TRegistersDlg.Destroy; @@ -351,13 +357,12 @@ end; function TRegistersDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_REGISTER_NAME: ASize := lvRegisters.Column[0].Width; - COL_REGISTER_VALUE: ASize := lvRegisters.Column[1].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvRegisters.ColumnCount) then begin + ASize := lvRegisters.Column[AColId - 1].Width; + Result := ASize <> COL_WIDTHS[AColId - 1]; + end + else + Result := False; end; procedure TRegistersDlg.ColSizeSetter(AColId: Integer; ASize: Integer); diff --git a/debugger/threaddlg.pp b/debugger/threaddlg.pp index 8fa60a3987..d311aa1240 100644 --- a/debugger/threaddlg.pp +++ b/debugger/threaddlg.pp @@ -54,6 +54,7 @@ const COL_THREAD_SOURCE = 5; COL_THREAD_LINE = 6; COL_THREAD_FUNC = 7; + COL_WIDTHS: Array[0..6] of integer = ( 20, 50, 100, 50, 150, 50, 300); function ThreadsDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -153,18 +154,12 @@ end; function TThreadsDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_THREAD_BRKPOINT: ASize := lvThreads.Column[0].Width; - COL_THREAD_INDEX: ASize := lvThreads.Column[1].Width; - COL_THREAD_NAME: ASize := lvThreads.Column[2].Width; - COL_THREAD_STATE: ASize := lvThreads.Column[3].Width; - COL_THREAD_SOURCE: ASize := lvThreads.Column[4].Width; - COL_THREAD_LINE: ASize := lvThreads.Column[5].Width; - COL_THREAD_FUNC: ASize := lvThreads.Column[6].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvThreads.ColumnCount) then begin + ASize := lvThreads.Column[AColId - 1].Width; + Result := ASize <> COL_WIDTHS[AColId - 1]; + end + else + Result := False; end; procedure TThreadsDlg.ColSizeSetter(AColId: Integer; ASize: Integer); @@ -238,6 +233,8 @@ begin end; constructor TThreadsDlg.Create(TheOwner: TComponent); +var + i: Integer; begin inherited Create(TheOwner); Caption:= lisThreads; @@ -255,6 +252,9 @@ begin imgCurrentLine := IDEImages.LoadImage(16, 'debugger_current_line'); lvThreads.SmallImages := IDEImages.Images_16; + + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + lvThreads.Column[i].Width := COL_WIDTHS[i]; end; initialization diff --git a/debugger/watchesdlg.pp b/debugger/watchesdlg.pp index 2694c41668..7a28210a98 100644 --- a/debugger/watchesdlg.pp +++ b/debugger/watchesdlg.pp @@ -153,6 +153,7 @@ var const COL_WATCH_EXPR = 1; COL_WATCH_VALUE = 2; + COL_WIDTHS: Array[0..1] of integer = ( 100, 200); function WatchesDlgColSizeGetter(AForm: TCustomForm; AColId: Integer; var ASize: Integer): Boolean; begin @@ -170,6 +171,8 @@ end; { TWatchesDlg } constructor TWatchesDlg.Create(AOwner: TComponent); +var + i: Integer; begin inherited Create(AOwner); FWatchesInView := nil; @@ -230,8 +233,9 @@ begin lvWatches.Columns[0].Caption:=liswlExpression; lvWatches.Columns[1].Caption:=dlgValueColor; - lvWatches.Column[0].Width := 100; - lvWatches.Column[1].Width := 200; + + for i := low(COL_WIDTHS) to high(COL_WIDTHS) do + lvWatches.Column[i].Width := COL_WIDTHS[i]; end; function TWatchesDlg.GetSelected: TCurrentWatch; @@ -515,13 +519,12 @@ end; function TWatchesDlg.ColSizeGetter(AColId: Integer; var ASize: Integer): Boolean; begin - Result := True; - case AColId of - COL_WATCH_EXPR: ASize := lvWatches.Column[0].Width; - COL_WATCH_VALUE: ASize := lvWatches.Column[1].Width; - else - Result := False; - end; + if (AColId - 1 >= 0) and (AColId - 1 < lvWatches.ColumnCount) then begin + ASize := lvWatches.Column[AColId - 1].Width; + Result := ASize <> COL_WIDTHS[AColId - 1]; + end + else + Result := False; end; procedure TWatchesDlg.ColSizeSetter(AColId: Integer; ASize: Integer); diff --git a/ideintf/idewindowintf.pas b/ideintf/idewindowintf.pas index 6364c5f186..0808b19ce2 100644 --- a/ideintf/idewindowintf.pas +++ b/ideintf/idewindowintf.pas @@ -615,8 +615,10 @@ var begin c := 0; for i := 0 to Count - 1 do - if Items[i].SaveToConfig(Config, Path + 'Item' + IntToStr(i) + '/') then + if Items[i].SaveToConfig(Config, Path + 'Item' + IntToStr(c) + '/') then inc(c); + for i := c to Count - 1 do + Config.DeletePath(Path + 'Item' + IntToStr(i) + '/'); Config.SetDeleteValue(Path+'Count', c, 0); end; @@ -1314,7 +1316,7 @@ begin if Creator.OnGetDividerSize(fForm, FDividers[i].Id, j) then FDividers[i].Size := j else - FDividers[i].Size := -1; + FDividers[i].Size := -1; // Default / Not Changed / Unavailable end; end;