mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 02:39:15 +02:00
IDE: project inspector: multi selection for readd, delete, open, clear deps, set dep defaults
git-svn-id: trunk@45586 -
This commit is contained in:
parent
2fa4bf34b6
commit
44b1fcc42d
13
ide/main.pp
13
ide/main.pp
@ -578,7 +578,6 @@ type
|
|||||||
procedure OnGetDesignerSelection(const ASelection: TPersistentSelectionList);
|
procedure OnGetDesignerSelection(const ASelection: TPersistentSelectionList);
|
||||||
|
|
||||||
// project inspector
|
// project inspector
|
||||||
procedure ProjInspectorOpen(Sender: TObject);
|
|
||||||
function ProjInspectorAddUnitToProject(Sender: TObject;
|
function ProjInspectorAddUnitToProject(Sender: TObject;
|
||||||
AnUnitInfo: TUnitInfo): TModalresult;
|
AnUnitInfo: TUnitInfo): TModalresult;
|
||||||
function ProjInspectorRemoveFile(Sender: TObject;
|
function ProjInspectorRemoveFile(Sender: TObject;
|
||||||
@ -6427,7 +6426,6 @@ procedure TMainIDE.DoShowProjectInspector(Show: boolean);
|
|||||||
begin
|
begin
|
||||||
if ProjInspector=nil then begin
|
if ProjInspector=nil then begin
|
||||||
ProjInspector:=TProjectInspectorForm.Create(OwningComponent);
|
ProjInspector:=TProjectInspectorForm.Create(OwningComponent);
|
||||||
ProjInspector.OnOpen:=@ProjInspectorOpen;
|
|
||||||
ProjInspector.OnShowOptions:=@mnuProjectOptionsClicked;
|
ProjInspector.OnShowOptions:=@mnuProjectOptionsClicked;
|
||||||
ProjInspector.OnAddUnitToProject:=@ProjInspectorAddUnitToProject;
|
ProjInspector.OnAddUnitToProject:=@ProjInspectorAddUnitToProject;
|
||||||
ProjInspector.OnAddDependency:=@PkgBoss.OnProjectInspectorAddDependency;
|
ProjInspector.OnAddDependency:=@PkgBoss.OnProjectInspectorAddDependency;
|
||||||
@ -12018,17 +12016,6 @@ begin
|
|||||||
Result:=CheckCompOptsAndMainSrcForNewUnit(CompOpts);
|
Result:=CheckCompOptsAndMainSrcForNewUnit(CompOpts);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.ProjInspectorOpen(Sender: TObject);
|
|
||||||
var
|
|
||||||
CurUnitInfo: TUnitInfo;
|
|
||||||
begin
|
|
||||||
CurUnitInfo:=ProjInspector.GetSelectedFile;
|
|
||||||
if CurUnitInfo<>nil then
|
|
||||||
DoOpenEditorFile(CurUnitInfo.Filename,-1,-1,[ofRegularFile])
|
|
||||||
else
|
|
||||||
PkgBoss.OnProjectInspectorOpen(Sender);
|
|
||||||
end;
|
|
||||||
|
|
||||||
{$IFNDEF EnableOldExtTools}
|
{$IFNDEF EnableOldExtTools}
|
||||||
procedure TMainIDE.FPCMsgFilePoolLoadFile(aFilename: string; out s: string);
|
procedure TMainIDE.FPCMsgFilePoolLoadFile(aFilename: string; out s: string);
|
||||||
// Note: called by any thread
|
// Note: called by any thread
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
object ProjectInspectorForm: TProjectInspectorForm
|
object ProjectInspectorForm: TProjectInspectorForm
|
||||||
Left = 393
|
Left = 393
|
||||||
Height = 474
|
Height = 456
|
||||||
Top = 104
|
Top = 104
|
||||||
Width = 425
|
Width = 299
|
||||||
ActiveControl = ItemsTreeView
|
ActiveControl = ItemsTreeView
|
||||||
AllowDropFiles = True
|
AllowDropFiles = True
|
||||||
Caption = 'ProjectInspectorForm'
|
Caption = 'ProjectInspectorForm'
|
||||||
ClientHeight = 474
|
ClientHeight = 456
|
||||||
ClientWidth = 425
|
ClientWidth = 299
|
||||||
OnDropFiles = FormDropFiles
|
OnDropFiles = FormDropFiles
|
||||||
OnShow = ProjectInspectorFormShow
|
|
||||||
LCLVersion = '1.3'
|
LCLVersion = '1.3'
|
||||||
object ItemsTreeView: TTreeView
|
object ItemsTreeView: TTreeView
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 396
|
Height = 378
|
||||||
Top = 78
|
Top = 78
|
||||||
Width = 425
|
Width = 299
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Anchors = [akTop, akLeft, akBottom]
|
Anchors = [akTop, akLeft, akBottom]
|
||||||
BorderSpacing.Top = 2
|
BorderSpacing.Top = 2
|
||||||
DefaultItemHeight = 18
|
DefaultItemHeight = 18
|
||||||
|
MultiSelect = True
|
||||||
PopupMenu = ItemsPopupMenu
|
PopupMenu = ItemsPopupMenu
|
||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
RightClickSelect = True
|
RightClickSelect = True
|
||||||
@ -28,16 +28,16 @@ object ProjectInspectorForm: TProjectInspectorForm
|
|||||||
OnDblClick = ItemsTreeViewDblClick
|
OnDblClick = ItemsTreeViewDblClick
|
||||||
OnKeyDown = ItemsTreeViewKeyDown
|
OnKeyDown = ItemsTreeViewKeyDown
|
||||||
OnSelectionChanged = ItemsTreeViewSelectionChanged
|
OnSelectionChanged = ItemsTreeViewSelectionChanged
|
||||||
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||||
end
|
end
|
||||||
object BtnPanel: TPanel
|
object BtnPanel: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 28
|
Height = 28
|
||||||
Top = 48
|
Top = 48
|
||||||
Width = 425
|
Width = 299
|
||||||
Align = alTop
|
Align = alTop
|
||||||
ClientHeight = 28
|
ClientHeight = 28
|
||||||
ClientWidth = 425
|
ClientWidth = 299
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object OpenButton: TSpeedButton
|
object OpenButton: TSpeedButton
|
||||||
AnchorSideLeft.Control = BtnPanel
|
AnchorSideLeft.Control = BtnPanel
|
||||||
@ -102,7 +102,7 @@ object ProjectInspectorForm: TProjectInspectorForm
|
|||||||
Left = 91
|
Left = 91
|
||||||
Height = 25
|
Height = 25
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 311
|
Width = 185
|
||||||
UseFormActivate = True
|
UseFormActivate = True
|
||||||
ButtonWidth = 23
|
ButtonWidth = 23
|
||||||
NumGlyphs = 1
|
NumGlyphs = 1
|
||||||
@ -119,7 +119,7 @@ object ProjectInspectorForm: TProjectInspectorForm
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 48
|
Height = 48
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 425
|
Width = 299
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
ButtonHeight = 46
|
ButtonHeight = 46
|
||||||
ShowCaptions = True
|
ShowCaptions = True
|
||||||
|
@ -80,7 +80,8 @@ type
|
|||||||
ADependency: TPkgDependency): TModalResult of object;
|
ADependency: TPkgDependency): TModalResult of object;
|
||||||
|
|
||||||
TProjectInspectorFlag = (
|
TProjectInspectorFlag = (
|
||||||
pifNeedUpdateItems,
|
pifNeedUpdateFiles,
|
||||||
|
pifNeedUpdateDependencies,
|
||||||
pifNeedUpdateButtons,
|
pifNeedUpdateButtons,
|
||||||
pifNeedUpdateTitle
|
pifNeedUpdateTitle
|
||||||
);
|
);
|
||||||
@ -134,7 +135,6 @@ type
|
|||||||
procedure OpenButtonClick(Sender: TObject);
|
procedure OpenButtonClick(Sender: TObject);
|
||||||
procedure OptionsBitBtnClick(Sender: TObject);
|
procedure OptionsBitBtnClick(Sender: TObject);
|
||||||
procedure HelpBitBtnClick(Sender: TObject);
|
procedure HelpBitBtnClick(Sender: TObject);
|
||||||
procedure ProjectInspectorFormShow(Sender: TObject);
|
|
||||||
procedure ReAddMenuItemClick(Sender: TObject);
|
procedure ReAddMenuItemClick(Sender: TObject);
|
||||||
procedure RemoveBitBtnClick(Sender: TObject);
|
procedure RemoveBitBtnClick(Sender: TObject);
|
||||||
procedure RemoveNonExistingFilesMenuItemClick(Sender: TObject);
|
procedure RemoveNonExistingFilesMenuItemClick(Sender: TObject);
|
||||||
@ -145,7 +145,6 @@ type
|
|||||||
FIdleConnected: boolean;
|
FIdleConnected: boolean;
|
||||||
FOnAddDependency: TAddProjInspDepEvent;
|
FOnAddDependency: TAddProjInspDepEvent;
|
||||||
FOnAddUnitToProject: TOnAddUnitToProject;
|
FOnAddUnitToProject: TOnAddUnitToProject;
|
||||||
FOnOpen: TNotifyEvent;
|
|
||||||
FOnReAddDependency: TAddProjInspDepEvent;
|
FOnReAddDependency: TAddProjInspDepEvent;
|
||||||
FOnRemoveDependency: TRemoveProjInspDepEvent;
|
FOnRemoveDependency: TRemoveProjInspDepEvent;
|
||||||
FOnRemoveFile: TRemoveProjInspFileEvent;
|
FOnRemoveFile: TRemoveProjInspFileEvent;
|
||||||
@ -183,8 +182,6 @@ type
|
|||||||
procedure SetSortAlphabetically(const AValue: boolean);
|
procedure SetSortAlphabetically(const AValue: boolean);
|
||||||
procedure SetupComponents;
|
procedure SetupComponents;
|
||||||
function OnTreeViewGetImageIndex(Str: String; Data: TObject; var AIsEnabled: Boolean): Integer;
|
function OnTreeViewGetImageIndex(Str: String; Data: TObject; var AIsEnabled: Boolean): Integer;
|
||||||
procedure UpdateProjectFiles;
|
|
||||||
procedure UpdateRequiredPackages;
|
|
||||||
procedure OnProjectBeginUpdate(Sender: TObject);
|
procedure OnProjectBeginUpdate(Sender: TObject);
|
||||||
procedure OnProjectEndUpdate(Sender: TObject; ProjectChanged: boolean);
|
procedure OnProjectEndUpdate(Sender: TObject; ProjectChanged: boolean);
|
||||||
procedure EnableI18NForSelectedLFM(TheEnable: boolean);
|
procedure EnableI18NForSelectedLFM(TheEnable: boolean);
|
||||||
@ -199,15 +196,14 @@ type
|
|||||||
function IsUpdateLocked: boolean; inline;
|
function IsUpdateLocked: boolean; inline;
|
||||||
procedure UpdateAll(Immediately: boolean = false);
|
procedure UpdateAll(Immediately: boolean = false);
|
||||||
procedure UpdateTitle(Immediately: boolean = false);
|
procedure UpdateTitle(Immediately: boolean = false);
|
||||||
procedure UpdateItems(Immediately: boolean = false);
|
procedure UpdateProjectFiles(Immediately: boolean = false);
|
||||||
|
procedure UpdateRequiredPackages(Immediately: boolean = false);
|
||||||
procedure UpdateButtons(Immediately: boolean = false);
|
procedure UpdateButtons(Immediately: boolean = false);
|
||||||
procedure UpdatePending;
|
procedure UpdatePending;
|
||||||
function CanUpdate(Flag: TProjectInspectorFlag): boolean;
|
function CanUpdate(Flag: TProjectInspectorFlag): boolean;
|
||||||
function GetSelectedFile: TUnitInfo;
|
|
||||||
function GetSingleSelectedDependency: TPkgDependency;
|
function GetSingleSelectedDependency: TPkgDependency;
|
||||||
public
|
public
|
||||||
property LazProject: TProject read FLazProject write SetLazProject;
|
property LazProject: TProject read FLazProject write SetLazProject;
|
||||||
property OnOpen: TNotifyEvent read FOnOpen write FOnOpen;
|
|
||||||
property OnShowOptions: TNotifyEvent read FOnShowOptions write FOnShowOptions;
|
property OnShowOptions: TNotifyEvent read FOnShowOptions write FOnShowOptions;
|
||||||
property OnAddUnitToProject: TOnAddUnitToProject read FOnAddUnitToProject
|
property OnAddUnitToProject: TOnAddUnitToProject read FOnAddUnitToProject
|
||||||
write FOnAddUnitToProject;
|
write FOnAddUnitToProject;
|
||||||
@ -306,16 +302,27 @@ end;
|
|||||||
procedure TProjectInspectorForm.ClearDependencyFilenameMenuItemClick(Sender: TObject);
|
procedure TProjectInspectorForm.ClearDependencyFilenameMenuItemClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
CurDependency: TPkgDependency;
|
CurDependency: TPkgDependency;
|
||||||
|
i: Integer;
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NodeData: TPINodeData;
|
||||||
|
Item: TObject;
|
||||||
begin
|
begin
|
||||||
CurDependency:=GetSingleSelectedDependency;
|
BeginUpdate;
|
||||||
if (CurDependency=nil) then exit;
|
try
|
||||||
if CurDependency.RequiredPackage=nil then exit;
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
if CurDependency.DefaultFilename='' then exit;
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
CurDependency.DefaultFilename:='';
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
CurDependency.PreferDefaultFilename:=false;
|
if not (Item is TPkgDependency) then continue;
|
||||||
LazProject.Modified:=true;
|
CurDependency:=TPkgDependency(Item);
|
||||||
UpdateRequiredPackages;
|
if CurDependency.DefaultFilename='' then exit;
|
||||||
UpdateButtons;
|
CurDependency.DefaultFilename:='';
|
||||||
|
CurDependency.PreferDefaultFilename:=false;
|
||||||
|
LazProject.Modified:=true;
|
||||||
|
UpdateRequiredPackages;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.AddBitBtnClick(Sender: TObject);
|
procedure TProjectInspectorForm.AddBitBtnClick(Sender: TObject);
|
||||||
@ -347,7 +354,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
FNextSelectedPart:=NewFile;
|
FNextSelectedPart:=NewFile;
|
||||||
end;
|
end;
|
||||||
UpdateAll(false);
|
UpdateAll;
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -357,7 +364,7 @@ begin
|
|||||||
if Assigned(OnAddDependency) then
|
if Assigned(OnAddDependency) then
|
||||||
OnAddDependency(Self,AddResult.Dependency);
|
OnAddDependency(Self,AddResult.Dependency);
|
||||||
FNextSelectedPart:=AddResult.Dependency;
|
FNextSelectedPart:=AddResult.Dependency;
|
||||||
UpdateItems(false);
|
UpdateRequiredPackages;
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -402,7 +409,7 @@ begin
|
|||||||
if Assigned(OnAddUnitToProject) then begin
|
if Assigned(OnAddUnitToProject) then begin
|
||||||
if OnAddUnitToProject(Self,NewFile)<>mrOk then break;
|
if OnAddUnitToProject(Self,NewFile)<>mrOk then break;
|
||||||
end;
|
end;
|
||||||
UpdateAll(false);
|
UpdateAll;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
@ -445,6 +452,9 @@ var
|
|||||||
CanReAddCount: Integer;
|
CanReAddCount: Integer;
|
||||||
SingleSelectedDep: TPkgDependency;
|
SingleSelectedDep: TPkgDependency;
|
||||||
DepCount: Integer;
|
DepCount: Integer;
|
||||||
|
Dependency: TPkgDependency;
|
||||||
|
HasValidDep: Integer;
|
||||||
|
CanClearDep: Integer;
|
||||||
begin
|
begin
|
||||||
ItemCnt:=0;
|
ItemCnt:=0;
|
||||||
|
|
||||||
@ -455,6 +465,8 @@ begin
|
|||||||
CanReAddCount:=0;
|
CanReAddCount:=0;
|
||||||
SingleSelectedDep:=nil;
|
SingleSelectedDep:=nil;
|
||||||
DepCount:=0;
|
DepCount:=0;
|
||||||
|
HasValidDep:=0;
|
||||||
|
CanClearDep:=0;
|
||||||
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
TVNode:=ItemsTreeView.Selections[i];
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
@ -470,16 +482,21 @@ begin
|
|||||||
inc(DisabledI18NForLFMCount);
|
inc(DisabledI18NForLFMCount);
|
||||||
end;
|
end;
|
||||||
end else if Item is TPkgDependency then begin
|
end else if Item is TPkgDependency then begin
|
||||||
inc(DepCount);
|
Dependency:=TPkgDependency(Item);
|
||||||
if DepCount=1 then
|
|
||||||
SingleSelectedDep:=TPkgDependency(Item)
|
|
||||||
else
|
|
||||||
SingleSelectedDep:=nil;
|
|
||||||
if NodeData.Removed then begin
|
if NodeData.Removed then begin
|
||||||
inc(CanReAddCount);
|
inc(CanReAddCount);
|
||||||
end else begin
|
end else begin
|
||||||
|
inc(DepCount);
|
||||||
|
if DepCount=1 then
|
||||||
|
SingleSelectedDep:=Dependency
|
||||||
|
else
|
||||||
|
SingleSelectedDep:=nil;
|
||||||
inc(CanRemoveCount);
|
inc(CanRemoveCount);
|
||||||
inc(CanOpenCount);
|
inc(CanOpenCount);
|
||||||
|
if Dependency.RequiredPackage<>nil then
|
||||||
|
inc(HasValidDep);
|
||||||
|
if (Dependency.DefaultFilename<>'') then
|
||||||
|
inc(CanClearDep);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -508,15 +525,16 @@ begin
|
|||||||
(SingleSelectedDep.PrevRequiresDependency<>nil));
|
(SingleSelectedDep.PrevRequiresDependency<>nil));
|
||||||
AddPopupMenuItem(lisPckEditMoveDependencyDown, @MoveDependencyDownClick,
|
AddPopupMenuItem(lisPckEditMoveDependencyDown, @MoveDependencyDownClick,
|
||||||
(SingleSelectedDep.NextRequiresDependency<>nil));
|
(SingleSelectedDep.NextRequiresDependency<>nil));
|
||||||
|
end;
|
||||||
|
if HasValidDep>0 then begin
|
||||||
AddPopupMenuItem(lisPckEditStoreFileNameAsDefaultForThisDependency,
|
AddPopupMenuItem(lisPckEditStoreFileNameAsDefaultForThisDependency,
|
||||||
@SetDependencyDefaultFilenameMenuItemClick,
|
@SetDependencyDefaultFilenameMenuItemClick, true);
|
||||||
(SingleSelectedDep.RequiredPackage<>nil));
|
|
||||||
AddPopupMenuItem(lisPckEditStoreFileNameAsPreferredForThisDependency,
|
AddPopupMenuItem(lisPckEditStoreFileNameAsPreferredForThisDependency,
|
||||||
@SetDependencyPreferredFilenameMenuItemClick,
|
@SetDependencyPreferredFilenameMenuItemClick, true);
|
||||||
(SingleSelectedDep.RequiredPackage<>nil));
|
end;
|
||||||
|
if CanClearDep>0 then begin
|
||||||
AddPopupMenuItem(lisPckEditClearDefaultPreferredFilenameOfDependency,
|
AddPopupMenuItem(lisPckEditClearDefaultPreferredFilenameOfDependency,
|
||||||
@ClearDependencyFilenameMenuItemClick,
|
@ClearDependencyFilenameMenuItemClick, true);
|
||||||
(SingleSelectedDep.DefaultFilename<>''));
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
while ItemsPopupMenu.Items.Count>ItemCnt do
|
while ItemsPopupMenu.Items.Count>ItemCnt do
|
||||||
@ -548,8 +566,34 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.OpenButtonClick(Sender: TObject);
|
procedure TProjectInspectorForm.OpenButtonClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NodeData: TPINodeData;
|
||||||
|
Item: TObject;
|
||||||
|
CurFile: TUnitInfo;
|
||||||
|
CurDependency: TPkgDependency;
|
||||||
begin
|
begin
|
||||||
if Assigned(OnOpen) then OnOpen(Self);
|
BeginUpdate;
|
||||||
|
try
|
||||||
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
|
if Item is TUnitInfo then begin
|
||||||
|
CurFile:=TUnitInfo(Item);
|
||||||
|
if LazarusIDE.DoOpenEditorFile(CurFile.Filename,-1,-1,[ofAddToRecent])<>mrOk
|
||||||
|
then exit;
|
||||||
|
end else if Item is TPkgDependency then begin
|
||||||
|
CurDependency:=TPkgDependency(Item);
|
||||||
|
if PackageEditingInterface.DoOpenPackageWithName(
|
||||||
|
CurDependency.PackageName,[],false)<>mrOk
|
||||||
|
then
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.OptionsBitBtnClick(Sender: TObject);
|
procedure TProjectInspectorForm.OptionsBitBtnClick(Sender: TObject);
|
||||||
@ -562,21 +606,29 @@ begin
|
|||||||
LazarusHelp.ShowHelpForIDEControl(Self);
|
LazarusHelp.ShowHelpForIDEControl(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.ProjectInspectorFormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
UpdateAll(false);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TProjectInspectorForm.ReAddMenuItemClick(Sender: TObject);
|
procedure TProjectInspectorForm.ReAddMenuItemClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
Dependency: TPkgDependency;
|
Dependency: TPkgDependency;
|
||||||
|
i: Integer;
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NodeData: TPINodeData;
|
||||||
|
Item: TObject;
|
||||||
begin
|
begin
|
||||||
Dependency:=GetSingleSelectedDependency;
|
|
||||||
if (Dependency=nil) or (not Dependency.Removed)
|
|
||||||
or (not CheckAddingDependency(LazProject,Dependency)) then exit;
|
|
||||||
BeginUpdate;
|
BeginUpdate;
|
||||||
if Assigned(OnReAddDependency) then OnReAddDependency(Self,Dependency);
|
try
|
||||||
EndUpdate;
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
|
if not NodeData.Removed then continue;
|
||||||
|
if not (Item is TPkgDependency) then continue;
|
||||||
|
Dependency:=TPkgDependency(Item);
|
||||||
|
if not CheckAddingDependency(LazProject,Dependency) then exit;
|
||||||
|
if Assigned(OnReAddDependency) then
|
||||||
|
OnReAddDependency(Self,Dependency);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.RemoveBitBtnClick(Sender: TObject);
|
procedure TProjectInspectorForm.RemoveBitBtnClick(Sender: TObject);
|
||||||
@ -649,19 +701,24 @@ var
|
|||||||
HasChanged: Boolean;
|
HasChanged: Boolean;
|
||||||
begin
|
begin
|
||||||
if LazProject.IsVirtual then exit;
|
if LazProject.IsVirtual then exit;
|
||||||
HasChanged:=false;
|
BeginUpdate;
|
||||||
AnUnitInfo:=LazProject.FirstPartOfProject;
|
try
|
||||||
while AnUnitInfo<>nil do begin
|
HasChanged:=false;
|
||||||
NextUnitInfo:=AnUnitInfo.NextPartOfProject;
|
AnUnitInfo:=LazProject.FirstPartOfProject;
|
||||||
if not (AnUnitInfo.IsVirtual or FileExistsUTF8(AnUnitInfo.Filename)) then begin
|
while AnUnitInfo<>nil do begin
|
||||||
AnUnitInfo.IsPartOfProject:=false;
|
NextUnitInfo:=AnUnitInfo.NextPartOfProject;
|
||||||
HasChanged:=true;
|
if not (AnUnitInfo.IsVirtual or FileExistsUTF8(AnUnitInfo.Filename)) then begin
|
||||||
|
AnUnitInfo.IsPartOfProject:=false;
|
||||||
|
HasChanged:=true;
|
||||||
|
end;
|
||||||
|
AnUnitInfo:=NextUnitInfo;
|
||||||
end;
|
end;
|
||||||
AnUnitInfo:=NextUnitInfo;
|
if HasChanged then begin
|
||||||
end;
|
LazProject.Modified:=true;
|
||||||
if HasChanged then begin
|
UpdateProjectFiles;
|
||||||
LazProject.Modified:=true;
|
end;
|
||||||
UpdateProjectFiles;
|
finally
|
||||||
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -694,7 +751,7 @@ begin
|
|||||||
FLazProject.OnBeginUpdate:=@OnProjectBeginUpdate;
|
FLazProject.OnBeginUpdate:=@OnProjectBeginUpdate;
|
||||||
FLazProject.OnEndUpdate:=@OnProjectEndUpdate;
|
FLazProject.OnEndUpdate:=@OnProjectEndUpdate;
|
||||||
end;
|
end;
|
||||||
UpdateAll(false);
|
UpdateAll;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.SetShowDirectoryHierarchy(const AValue: boolean);
|
procedure TProjectInspectorForm.SetShowDirectoryHierarchy(const AValue: boolean);
|
||||||
@ -721,18 +778,31 @@ procedure TProjectInspectorForm.SetDependencyDefaultFilename(AsPreferred: boolea
|
|||||||
var
|
var
|
||||||
NewFilename: String;
|
NewFilename: String;
|
||||||
CurDependency: TPkgDependency;
|
CurDependency: TPkgDependency;
|
||||||
|
i: Integer;
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NodeData: TPINodeData;
|
||||||
|
Item: TObject;
|
||||||
begin
|
begin
|
||||||
CurDependency:=GetSingleSelectedDependency;
|
BeginUpdate;
|
||||||
if (CurDependency=nil) then exit;
|
try
|
||||||
if CurDependency.RequiredPackage=nil then exit;
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
NewFilename:=CurDependency.RequiredPackage.Filename;
|
TVNode:=ItemsTreeView.Selections[i];
|
||||||
if (NewFilename=CurDependency.DefaultFilename) // do not use CompareFilenames
|
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
|
||||||
and (CurDependency.PreferDefaultFilename=AsPreferred) then exit;
|
if NodeData.Removed then continue;
|
||||||
CurDependency.DefaultFilename:=NewFilename;
|
if not (Item is TPkgDependency) then continue;
|
||||||
CurDependency.PreferDefaultFilename:=AsPreferred;
|
CurDependency:=TPkgDependency(Item);
|
||||||
LazProject.Modified:=true;
|
if CurDependency.RequiredPackage=nil then continue;
|
||||||
UpdateRequiredPackages;
|
NewFilename:=CurDependency.RequiredPackage.Filename;
|
||||||
UpdateButtons;
|
if (NewFilename=CurDependency.DefaultFilename) // do not use CompareFilenames
|
||||||
|
and (CurDependency.PreferDefaultFilename=AsPreferred) then continue;
|
||||||
|
CurDependency.DefaultFilename:=NewFilename;
|
||||||
|
CurDependency.PreferDefaultFilename:=AsPreferred;
|
||||||
|
LazProject.Modified:=true;
|
||||||
|
UpdateRequiredPackages;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.SetIdleConnected(AValue: boolean);
|
procedure TProjectInspectorForm.SetIdleConnected(AValue: boolean);
|
||||||
@ -841,13 +911,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateProjectFiles;
|
procedure TProjectInspectorForm.UpdateProjectFiles(Immediately: boolean);
|
||||||
var
|
var
|
||||||
CurFile: TUnitInfo;
|
CurFile: TUnitInfo;
|
||||||
FilesBranch: TTreeFilterBranch;
|
FilesBranch: TTreeFilterBranch;
|
||||||
Filename: String;
|
Filename: String;
|
||||||
ANodeData : TPINodeData;
|
ANodeData : TPINodeData;
|
||||||
begin
|
begin
|
||||||
|
if not CanUpdate(pifNeedUpdateFiles) then exit;
|
||||||
ItemsTreeView.BeginUpdate;
|
ItemsTreeView.BeginUpdate;
|
||||||
try
|
try
|
||||||
FilesBranch:=FilterEdit.GetBranch(FFilesNode);
|
FilesBranch:=FilterEdit.GetBranch(FFilesNode);
|
||||||
@ -873,15 +944,17 @@ begin
|
|||||||
finally
|
finally
|
||||||
ItemsTreeView.EndUpdate;
|
ItemsTreeView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
UpdateButtons;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateRequiredPackages;
|
procedure TProjectInspectorForm.UpdateRequiredPackages(Immediately: boolean);
|
||||||
var
|
var
|
||||||
Dependency: TPkgDependency;
|
Dependency: TPkgDependency;
|
||||||
RequiredBranch, RemovedBranch: TTreeFilterBranch;
|
RequiredBranch, RemovedBranch: TTreeFilterBranch;
|
||||||
NodeText, AFilename: String;
|
NodeText, AFilename: String;
|
||||||
ANodeData : TPINodeData;
|
ANodeData : TPINodeData;
|
||||||
begin
|
begin
|
||||||
|
if not CanUpdate(pifNeedUpdateDependencies) then exit;
|
||||||
ItemsTreeView.BeginUpdate;
|
ItemsTreeView.BeginUpdate;
|
||||||
try
|
try
|
||||||
RequiredBranch:=FilterEdit.GetBranch(DependenciesNode);
|
RequiredBranch:=FilterEdit.GetBranch(DependenciesNode);
|
||||||
@ -937,6 +1010,7 @@ begin
|
|||||||
finally
|
finally
|
||||||
ItemsTreeView.EndUpdate;
|
ItemsTreeView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
UpdateButtons;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.OnProjectBeginUpdate(Sender: TObject);
|
procedure TProjectInspectorForm.OnProjectBeginUpdate(Sender: TObject);
|
||||||
@ -947,7 +1021,7 @@ end;
|
|||||||
procedure TProjectInspectorForm.OnProjectEndUpdate(Sender: TObject;
|
procedure TProjectInspectorForm.OnProjectEndUpdate(Sender: TObject;
|
||||||
ProjectChanged: boolean);
|
ProjectChanged: boolean);
|
||||||
begin
|
begin
|
||||||
UpdateAll(false);
|
UpdateAll;
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -984,16 +1058,6 @@ begin
|
|||||||
UpdatePending;
|
UpdatePending;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectInspectorForm.GetSelectedFile: TUnitInfo;
|
|
||||||
var
|
|
||||||
Item: TObject;
|
|
||||||
begin
|
|
||||||
Result:=nil;
|
|
||||||
Item:=GetNodeItem(GetNodeData(ItemsTreeView.Selected));
|
|
||||||
if Item is TUnitInfo then
|
|
||||||
Result:=TUnitInfo(Item);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TProjectInspectorForm.GetSingleSelectedDependency: TPkgDependency;
|
function TProjectInspectorForm.GetSingleSelectedDependency: TPkgDependency;
|
||||||
var
|
var
|
||||||
Item: TObject;
|
Item: TObject;
|
||||||
@ -1045,11 +1109,17 @@ end;
|
|||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateAll(Immediately: boolean);
|
procedure TProjectInspectorForm.UpdateAll(Immediately: boolean);
|
||||||
begin
|
begin
|
||||||
UpdateItems;
|
ItemsTreeView.BeginUpdate;
|
||||||
UpdateTitle;
|
try
|
||||||
UpdateButtons;
|
UpdateTitle;
|
||||||
if Immediately then
|
UpdateProjectFiles;
|
||||||
UpdatePending;
|
UpdateRequiredPackages;
|
||||||
|
UpdateButtons;
|
||||||
|
if Immediately then
|
||||||
|
UpdatePending;
|
||||||
|
finally
|
||||||
|
ItemsTreeView.EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateTitle(Immediately: boolean);
|
procedure TProjectInspectorForm.UpdateTitle(Immediately: boolean);
|
||||||
@ -1068,18 +1138,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateItems(Immediately: boolean);
|
|
||||||
begin
|
|
||||||
if not CanUpdate(pifNeedUpdateItems) then exit;
|
|
||||||
ItemsTreeView.BeginUpdate;
|
|
||||||
try
|
|
||||||
UpdateProjectFiles;
|
|
||||||
UpdateRequiredPackages;
|
|
||||||
finally
|
|
||||||
ItemsTreeView.EndUpdate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateButtons(Immediately: boolean);
|
procedure TProjectInspectorForm.UpdateButtons(Immediately: boolean);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -1126,13 +1184,20 @@ end;
|
|||||||
|
|
||||||
procedure TProjectInspectorForm.UpdatePending;
|
procedure TProjectInspectorForm.UpdatePending;
|
||||||
begin
|
begin
|
||||||
if pifNeedUpdateItems in FFlags then
|
ItemsTreeView.BeginUpdate;
|
||||||
UpdateItems(true);
|
try
|
||||||
if pifNeedUpdateTitle in FFlags then
|
if pifNeedUpdateFiles in FFlags then
|
||||||
UpdateTitle(true);
|
UpdateProjectFiles(true);
|
||||||
if pifNeedUpdateButtons in FFlags then
|
if pifNeedUpdateDependencies in FFlags then
|
||||||
UpdateButtons(true);
|
UpdateRequiredPackages(true);
|
||||||
IdleConnected:=false;
|
if pifNeedUpdateTitle in FFlags then
|
||||||
|
UpdateTitle(true);
|
||||||
|
if pifNeedUpdateButtons in FFlags then
|
||||||
|
UpdateButtons(true);
|
||||||
|
IdleConnected:=false;
|
||||||
|
finally
|
||||||
|
ItemsTreeView.EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectInspectorForm.CanUpdate(Flag: TProjectInspectorFlag): boolean;
|
function TProjectInspectorForm.CanUpdate(Flag: TProjectInspectorFlag): boolean;
|
||||||
|
@ -96,7 +96,6 @@ type
|
|||||||
function CheckProjectHasInstalledPackages(AProject: TProject; Interactive: boolean): TModalResult; virtual; abstract;
|
function CheckProjectHasInstalledPackages(AProject: TProject; Interactive: boolean): TModalResult; virtual; abstract;
|
||||||
function CanOpenDesignerForm(AnUnitInfo: TUnitInfo;
|
function CanOpenDesignerForm(AnUnitInfo: TUnitInfo;
|
||||||
Interactive: boolean): TModalResult; virtual; abstract;
|
Interactive: boolean): TModalResult; virtual; abstract;
|
||||||
function OnProjectInspectorOpen(Sender: TObject): boolean; virtual; abstract;
|
|
||||||
function OnProjectInspectorAddDependency(Sender: TObject;
|
function OnProjectInspectorAddDependency(Sender: TObject;
|
||||||
ADependency: TPkgDependency): TModalResult; virtual; abstract;
|
ADependency: TPkgDependency): TModalResult; virtual; abstract;
|
||||||
function OnProjectInspectorRemoveDependency(Sender: TObject;
|
function OnProjectInspectorRemoveDependency(Sender: TObject;
|
||||||
|
@ -294,7 +294,7 @@ type
|
|||||||
procedure SetupComponents;
|
procedure SetupComponents;
|
||||||
function OnTreeViewGetImageIndex(Str: String; Data: TObject; var AIsEnabled: Boolean): Integer;
|
function OnTreeViewGetImageIndex(Str: String; Data: TObject; var AIsEnabled: Boolean): Integer;
|
||||||
procedure UpdatePending;
|
procedure UpdatePending;
|
||||||
function CanUpdate(Flag: TPEFlag): boolean;
|
function CanUpdate(Flag: TPEFlag; Immediately: boolean): boolean;
|
||||||
procedure UpdateTitle(Immediately: boolean = false);
|
procedure UpdateTitle(Immediately: boolean = false);
|
||||||
procedure UpdateFiles(Immediately: boolean = false);
|
procedure UpdateFiles(Immediately: boolean = false);
|
||||||
procedure UpdateRequiredPkgs(Immediately: boolean = false);
|
procedure UpdateRequiredPkgs(Immediately: boolean = false);
|
||||||
@ -2197,7 +2197,7 @@ procedure TPackageEditorForm.UpdateTitle(Immediately: boolean);
|
|||||||
var
|
var
|
||||||
NewCaption: String;
|
NewCaption: String;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateTitle) then exit;
|
if not CanUpdate(pefNeedUpdateTitle,Immediately) then exit;
|
||||||
NewCaption:=Format(lisPckEditPackage, [FLazPackage.Name]);
|
NewCaption:=Format(lisPckEditPackage, [FLazPackage.Name]);
|
||||||
if LazPackage.Modified then
|
if LazPackage.Modified then
|
||||||
NewCaption:=NewCaption+'*';
|
NewCaption:=NewCaption+'*';
|
||||||
@ -2216,7 +2216,7 @@ var
|
|||||||
FileCount: Integer;
|
FileCount: Integer;
|
||||||
DepCount: Integer;
|
DepCount: Integer;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateButtons) then exit;
|
if not CanUpdate(pefNeedUpdateButtons,Immediately) then exit;
|
||||||
|
|
||||||
FileCount:=0;
|
FileCount:=0;
|
||||||
DepCount:=0;
|
DepCount:=0;
|
||||||
@ -2293,28 +2293,35 @@ end;
|
|||||||
|
|
||||||
procedure TPackageEditorForm.UpdatePending;
|
procedure TPackageEditorForm.UpdatePending;
|
||||||
begin
|
begin
|
||||||
if pefNeedUpdateTitle in fFlags then
|
ItemsTreeView.BeginUpdate;
|
||||||
UpdateTitle(true);
|
try
|
||||||
if pefNeedUpdateFiles in fFlags then
|
if pefNeedUpdateTitle in fFlags then
|
||||||
UpdateFiles(true);
|
UpdateTitle(true);
|
||||||
if pefNeedUpdateRequiredPkgs in fFlags then
|
if pefNeedUpdateFiles in fFlags then
|
||||||
UpdateRequiredPkgs(true);
|
UpdateFiles(true);
|
||||||
if pefNeedUpdateProperties in fFlags then
|
if pefNeedUpdateRequiredPkgs in fFlags then
|
||||||
UpdatePEProperties(true);
|
UpdateRequiredPkgs(true);
|
||||||
if pefNeedUpdateButtons in fFlags then
|
if pefNeedUpdateProperties in fFlags then
|
||||||
UpdateButtons(true);
|
UpdatePEProperties(true);
|
||||||
if pefNeedUpdateApplyDependencyButton in fFlags then
|
if pefNeedUpdateButtons in fFlags then
|
||||||
UpdateApplyDependencyButton(true);
|
UpdateButtons(true);
|
||||||
if pefNeedUpdateStatusBar in fFlags then
|
if pefNeedUpdateApplyDependencyButton in fFlags then
|
||||||
UpdateStatusBar(true);
|
UpdateApplyDependencyButton(true);
|
||||||
|
if pefNeedUpdateStatusBar in fFlags then
|
||||||
|
UpdateStatusBar(true);
|
||||||
|
IdleConnected:=false;
|
||||||
|
finally
|
||||||
|
ItemsTreeView.EndUpdate;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPackageEditorForm.CanUpdate(Flag: TPEFlag): boolean;
|
function TPackageEditorForm.CanUpdate(Flag: TPEFlag; Immediately: boolean
|
||||||
|
): boolean;
|
||||||
begin
|
begin
|
||||||
Result:=false;
|
Result:=false;
|
||||||
if csDestroying in ComponentState then exit;
|
if csDestroying in ComponentState then exit;
|
||||||
if LazPackage=nil then exit;
|
if LazPackage=nil then exit;
|
||||||
if fUpdateLock>0 then begin
|
if (fUpdateLock>0) and not Immediately then begin
|
||||||
Include(fFlags,Flag);
|
Include(fFlags,Flag);
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
Result:=false;
|
Result:=false;
|
||||||
@ -2333,7 +2340,7 @@ var
|
|||||||
NodeData: TPENodeData;
|
NodeData: TPENodeData;
|
||||||
OldFilter : String;
|
OldFilter : String;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateFiles) then exit;
|
if not CanUpdate(pefNeedUpdateFiles,Immediately) then exit;
|
||||||
|
|
||||||
OldFilter := FilterEdit.ForceFilter('');
|
OldFilter := FilterEdit.ForceFilter('');
|
||||||
|
|
||||||
@ -2397,7 +2404,7 @@ var
|
|||||||
CurNodeText, aFilename, OldFilter: String;
|
CurNodeText, aFilename, OldFilter: String;
|
||||||
NodeData: TPENodeData;
|
NodeData: TPENodeData;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateRequiredPkgs) then exit;
|
if not CanUpdate(pefNeedUpdateRequiredPkgs,Immediately) then exit;
|
||||||
|
|
||||||
OldFilter := FilterEdit.ForceFilter('');
|
OldFilter := FilterEdit.ForceFilter('');
|
||||||
|
|
||||||
@ -2518,7 +2525,7 @@ var
|
|||||||
HasRegisterProcCount: integer;
|
HasRegisterProcCount: integer;
|
||||||
AddToUsesPkgSectionCount: integer;
|
AddToUsesPkgSectionCount: integer;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateProperties) then exit;
|
if not CanUpdate(pefNeedUpdateProperties,Immediately) then exit;
|
||||||
|
|
||||||
FPlugins.Clear;
|
FPlugins.Clear;
|
||||||
|
|
||||||
@ -2676,7 +2683,7 @@ var
|
|||||||
NodeData: TPENodeData;
|
NodeData: TPENodeData;
|
||||||
Item: TObject;
|
Item: TObject;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateApplyDependencyButton) then exit;
|
if not CanUpdate(pefNeedUpdateApplyDependencyButton,Immediately) then exit;
|
||||||
|
|
||||||
FSingleSelectedDependency:=nil;
|
FSingleSelectedDependency:=nil;
|
||||||
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
|
||||||
@ -2724,7 +2731,7 @@ procedure TPackageEditorForm.UpdateStatusBar(Immediately: boolean);
|
|||||||
var
|
var
|
||||||
StatusText: String;
|
StatusText: String;
|
||||||
begin
|
begin
|
||||||
if not CanUpdate(pefNeedUpdateStatusBar) then exit;
|
if not CanUpdate(pefNeedUpdateStatusBar,Immediately) then exit;
|
||||||
|
|
||||||
if LazPackage.IsVirtual and (not LazPackage.ReadOnly) then begin
|
if LazPackage.IsVirtual and (not LazPackage.ReadOnly) then begin
|
||||||
StatusText:=Format(lisPckEditpackageNotSaved, [LazPackage.Name]);
|
StatusText:=Format(lisPckEditpackageNotSaved, [LazPackage.Name]);
|
||||||
@ -3847,7 +3854,7 @@ begin
|
|||||||
mtConfirmation,[mbYes,mbNo],0)<>mrYes
|
mtConfirmation,[mbYes,mbNo],0)<>mrYes
|
||||||
then exit;
|
then exit;
|
||||||
PackageEditors.RevertPackage(LazPackage);
|
PackageEditors.RevertPackage(LazPackage);
|
||||||
UpdateAll(true);
|
UpdateAll(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.DoPublishProject;
|
procedure TPackageEditorForm.DoPublishProject;
|
||||||
|
@ -264,7 +264,6 @@ type
|
|||||||
procedure AddProjectLCLDependency(AProject: TProject); override;
|
procedure AddProjectLCLDependency(AProject: TProject); override;
|
||||||
function AddProjectDependencies(AProject: TProject; const Packages: string;
|
function AddProjectDependencies(AProject: TProject; const Packages: string;
|
||||||
OnlyTestIfPossible: boolean = false): TModalResult; override;
|
OnlyTestIfPossible: boolean = false): TModalResult; override;
|
||||||
function OnProjectInspectorOpen(Sender: TObject): boolean; override;
|
|
||||||
function OnProjectInspectorAddDependency(Sender: TObject;
|
function OnProjectInspectorAddDependency(Sender: TObject;
|
||||||
ADependency: TPkgDependency): TModalResult; override;
|
ADependency: TPkgDependency): TModalResult; override;
|
||||||
function OnProjectInspectorRemoveDependency(Sender: TObject;
|
function OnProjectInspectorRemoveDependency(Sender: TObject;
|
||||||
@ -960,7 +959,7 @@ begin
|
|||||||
if PackageEditors<>nil then
|
if PackageEditors<>nil then
|
||||||
PackageEditors.UpdateAllEditors(false);
|
PackageEditors.UpdateAllEditors(false);
|
||||||
if ProjInspector<>nil then
|
if ProjInspector<>nil then
|
||||||
ProjInspector.UpdateItems(false);
|
ProjInspector.UpdateRequiredPackages;
|
||||||
DoCallNotifyHandler(pihtGraphChanged,Self);
|
DoCallNotifyHandler(pihtGraphChanged,Self);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -4851,21 +4850,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPkgManager.OnProjectInspectorOpen(Sender: TObject): boolean;
|
|
||||||
var
|
|
||||||
Dependency: TPkgDependency;
|
|
||||||
begin
|
|
||||||
Result:=false;
|
|
||||||
if (Sender=nil) or (not (Sender is TProjectInspectorForm)) then exit;
|
|
||||||
Dependency:=TProjectInspectorForm(Sender).GetSingleSelectedDependency;
|
|
||||||
if Dependency=nil then exit;
|
|
||||||
// user has selected a dependency -> open package
|
|
||||||
Result:=true;
|
|
||||||
if PackageGraph.OpenDependency(Dependency,false)<>lprSuccess then
|
|
||||||
exit;
|
|
||||||
DoOpenPackage(Dependency.RequiredPackage,[],false);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TPkgManager.OnProjectInspectorAddDependency(Sender: TObject;
|
function TPkgManager.OnProjectInspectorAddDependency(Sender: TObject;
|
||||||
ADependency: TPkgDependency): TModalResult;
|
ADependency: TPkgDependency): TModalResult;
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user