mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 18:49:19 +02:00
IdeInspector: 2.4.0 comp
git-svn-id: trunk@28708 -
This commit is contained in:
parent
32a62507fe
commit
e476e14b73
@ -99,15 +99,17 @@ type
|
|||||||
procedure DoPropSelChanged(Sender: TObject);
|
procedure DoPropSelChanged(Sender: TObject);
|
||||||
protected
|
protected
|
||||||
FPropertiesGrid: TCustomPropertiesGrid;
|
FPropertiesGrid: TCustomPropertiesGrid;
|
||||||
procedure SetSelected(AComp: TComponent);
|
|
||||||
procedure UpdateTree;
|
procedure UpdateTree;
|
||||||
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
procedure DoActiveFormChanged(Sender: TObject; Form: TCustomForm);
|
procedure DoActiveFormChanged(Sender: TObject; Form: TCustomForm);
|
||||||
procedure DoActiveControChanged(Sender: TObject; LastControl: TControl);
|
procedure DoActiveControChanged(Sender: TObject; LastControl: TControl);
|
||||||
procedure DoKeyDownBefore(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure DoKeyDownBefore(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
|
|
||||||
function IndexOfCurrent: Integer;
|
function IndexOfCurrent: Integer;
|
||||||
|
procedure SetSelected(AComp: TComponent);
|
||||||
|
procedure UpdateCurrent; // set to Fselected
|
||||||
|
procedure DisplayCurrent;
|
||||||
procedure UpdateHistory(ForceAdd: Boolean = False);
|
procedure UpdateHistory(ForceAdd: Boolean = False);
|
||||||
procedure UpdateCurrent;
|
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
@ -212,7 +214,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if FCurEntry.Comp <> nil then
|
if FCurEntry.Comp <> nil then
|
||||||
SetSelected(FCurEntry.Comp);
|
SetSelected(FCurEntry.Comp);
|
||||||
UpdateCurrent;
|
DisplayCurrent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TIdeInspectForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
procedure TIdeInspectForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
@ -247,11 +249,17 @@ var
|
|||||||
begin
|
begin
|
||||||
Row := FPropertiesGrid.GetActiveRow;
|
Row := FPropertiesGrid.GetActiveRow;
|
||||||
Method.Code := nil;;
|
Method.Code := nil;;
|
||||||
if (Row <> nil) and (Row.Editor is TMethodPropertyEditor) then
|
if (Row <> nil) then begin
|
||||||
Method := TMethodPropertyEditor(Row.Editor).GetMethodValue;
|
if (Row.Editor is TMethodPropertyEditor) then begin
|
||||||
|
Method := TMethodPropertyEditor(Row.Editor).GetMethodValue;
|
||||||
|
FPropertiesGrid.PropertyEditorHook.LookupRoot := nil; // prevent edit
|
||||||
|
end
|
||||||
|
else
|
||||||
|
FPropertiesGrid.PropertyEditorHook.LookupRoot := FSelected;
|
||||||
|
end;
|
||||||
|
|
||||||
if Method.Code = nil then begin
|
if Method.Code = nil then begin
|
||||||
SetSelected(FSelected);
|
UpdateCurrent;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -288,7 +296,7 @@ begin
|
|||||||
|
|
||||||
FCurEntry.Display := s;
|
FCurEntry.Display := s;
|
||||||
FCurEntry.Comp := nil;
|
FCurEntry.Comp := nil;
|
||||||
FCurEntry.TheUnitName := TObject(Method.Data).ClassType.UnitName;
|
FCurEntry.TheUnitName := GetClassUnitName(TObject(Method.Data).ClassType);
|
||||||
FCurEntry.FileName := LazarusIDE.FindUnitFile(FCurEntry.TheUnitName, LazarusIDE);
|
FCurEntry.FileName := LazarusIDE.FindUnitFile(FCurEntry.TheUnitName, LazarusIDE);
|
||||||
if MethName <> '' then
|
if MethName <> '' then
|
||||||
FCurEntry.IdentifierName := TObject(Method.Data).ClassName + '.' + MethName
|
FCurEntry.IdentifierName := TObject(Method.Data).ClassName + '.' + MethName
|
||||||
@ -340,9 +348,13 @@ end;
|
|||||||
|
|
||||||
procedure TIdeInspectForm.btnOpenFileClick(Sender: TObject);
|
procedure TIdeInspectForm.btnOpenFileClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if FCurEntry.IdentifierName <> '' then
|
if (FCurEntry.IdentifierName <> '') and
|
||||||
LazarusIDE.DoOpenFileAndJumpToIdentifier(EditFile.Text, FCurEntry.IdentifierName, -1, -1, [ofOnlyIfExists, ofRegularFile])
|
(LazarusIDE.DoOpenFileAndJumpToIdentifier
|
||||||
else
|
(EditFile.Text, FCurEntry.IdentifierName, -1, -1, [ofOnlyIfExists, ofRegularFile])
|
||||||
|
= mrOK)
|
||||||
|
then
|
||||||
|
exit;
|
||||||
|
|
||||||
if FCurEntry.Line > 0 then
|
if FCurEntry.Line > 0 then
|
||||||
LazarusIDE.DoOpenFileAndJumpToPos(EditFile.Text, Point(1,FCurEntry.Line), Max(FCurEntry.Line-1,1), -1, -1, [ofOnlyIfExists, ofRegularFile])
|
LazarusIDE.DoOpenFileAndJumpToPos(EditFile.Text, Point(1,FCurEntry.Line), Max(FCurEntry.Line-1,1), -1, -1, [ofOnlyIfExists, ofRegularFile])
|
||||||
else
|
else
|
||||||
@ -497,35 +509,6 @@ begin
|
|||||||
SetSelected(TComponent(TreeView1.Selected.Data));
|
SetSelected(TComponent(TreeView1.Selected.Data));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TIdeInspectForm.SetSelected(AComp: TComponent);
|
|
||||||
begin
|
|
||||||
FSelected := AComp;
|
|
||||||
FPropertiesGrid.TIObject := FSelected;
|
|
||||||
btnSubComponent.Enabled := (FSelected <> nil) and (FSelected.ComponentCount > 0);
|
|
||||||
btnControls.Enabled := (FSelected <> nil) and
|
|
||||||
(FSelected is TWinControl) and (TWinControl(FSelected).ControlCount > 0);
|
|
||||||
UpdateTree;
|
|
||||||
|
|
||||||
// keep date, if the component gets destroyed
|
|
||||||
if FCurEntry.Comp <> FSelected then begin
|
|
||||||
FCurEntry.Comp := FSelected;
|
|
||||||
FCurEntry.UpdateDisplayName;
|
|
||||||
if FSelected <> nil then begin
|
|
||||||
FCurEntry.TheUnitName := FSelected.UnitName;
|
|
||||||
FCurEntry.FileName := LazarusIDE.FindUnitFile(FCurEntry.TheUnitName, LazarusIDE);
|
|
||||||
FCurEntry.IdentifierName := FSelected.ClassName;
|
|
||||||
FCurEntry.Line := -1;
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
FCurEntry.TheUnitName := '';
|
|
||||||
FCurEntry.FileName := '';
|
|
||||||
FCurEntry.IdentifierName := '';
|
|
||||||
FCurEntry.Line := -1;
|
|
||||||
end;
|
|
||||||
UpdateHistory;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TIdeInspectForm.UpdateTree;
|
procedure TIdeInspectForm.UpdateTree;
|
||||||
function FindNode(AComp: TComponent): TTreeNode;
|
function FindNode(AComp: TComponent): TTreeNode;
|
||||||
var
|
var
|
||||||
@ -574,7 +557,7 @@ begin
|
|||||||
if (Operation = opRemove) and (FCurEntry <> nil) and (FCurEntry.Comp = AComponent) then begin
|
if (Operation = opRemove) and (FCurEntry <> nil) and (FCurEntry.Comp = AComponent) then begin
|
||||||
FCurEntry.Comp := nil;
|
FCurEntry.Comp := nil;
|
||||||
FCurEntry.UpdateDisplayName;
|
FCurEntry.UpdateDisplayName;
|
||||||
UpdateCurrent;
|
DisplayCurrent;
|
||||||
end;
|
end;
|
||||||
if (Operation = opRemove) and (FHistoryList <> nil) then begin
|
if (Operation = opRemove) and (FHistoryList <> nil) then begin
|
||||||
f := False;
|
f := False;
|
||||||
@ -707,10 +690,44 @@ begin
|
|||||||
ComboHistory.Items.Add(THistoryEntry(FHistoryList[i]).Display);
|
ComboHistory.Items.Add(THistoryEntry(FHistoryList[i]).Display);
|
||||||
|
|
||||||
FIsUpdatingHistory := False;
|
FIsUpdatingHistory := False;
|
||||||
|
DisplayCurrent;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIdeInspectForm.SetSelected(AComp: TComponent);
|
||||||
|
begin
|
||||||
|
FSelected := AComp;
|
||||||
|
FPropertiesGrid.TIObject := FSelected;
|
||||||
|
btnSubComponent.Enabled := (FSelected <> nil) and (FSelected.ComponentCount > 0);
|
||||||
|
btnControls.Enabled := (FSelected <> nil) and
|
||||||
|
(FSelected is TWinControl) and (TWinControl(FSelected).ControlCount > 0);
|
||||||
|
UpdateTree;
|
||||||
|
|
||||||
UpdateCurrent;
|
UpdateCurrent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TIdeInspectForm.UpdateCurrent;
|
procedure TIdeInspectForm.UpdateCurrent;
|
||||||
|
begin
|
||||||
|
// keep date, if the component gets destroyed
|
||||||
|
if FCurEntry.Comp <> FSelected then begin
|
||||||
|
FCurEntry.Comp := FSelected;
|
||||||
|
FCurEntry.UpdateDisplayName;
|
||||||
|
if FSelected <> nil then begin
|
||||||
|
FCurEntry.TheUnitName := GetClassUnitName(FSelected.ClassType);
|
||||||
|
FCurEntry.FileName := LazarusIDE.FindUnitFile(FCurEntry.TheUnitName, LazarusIDE);
|
||||||
|
FCurEntry.IdentifierName := FSelected.ClassName;
|
||||||
|
FCurEntry.Line := -1;
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
FCurEntry.TheUnitName := '';
|
||||||
|
FCurEntry.FileName := '';
|
||||||
|
FCurEntry.IdentifierName := '';
|
||||||
|
FCurEntry.Line := -1;
|
||||||
|
end;
|
||||||
|
UpdateHistory;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TIdeInspectForm.DisplayCurrent;
|
||||||
begin
|
begin
|
||||||
FIsUpdatingHistory := True;
|
FIsUpdatingHistory := True;
|
||||||
ComboHistory.Text := FCurEntry.Display;
|
ComboHistory.Text := FCurEntry.Display;
|
||||||
@ -744,6 +761,7 @@ begin
|
|||||||
Name := 'FPropertiesGrid';
|
Name := 'FPropertiesGrid';
|
||||||
Parent := TabControl1;
|
Parent := TabControl1;
|
||||||
Align := alClient;
|
Align := alClient;
|
||||||
|
SaveOnChangeTIObject := False;
|
||||||
OnSelectionChange := @DoPropSelChanged;
|
OnSelectionChange := @DoPropSelChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user