mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 00:19:26 +02:00
IDE: project inspector: drop files from other applications
git-svn-id: trunk@45574 -
This commit is contained in:
parent
fbf842866c
commit
7a606f8061
@ -11965,10 +11965,10 @@ var
|
|||||||
OkToAdd: boolean;
|
OkToAdd: boolean;
|
||||||
begin
|
begin
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
|
AnUnitInfo.IsPartOfProject:=true;
|
||||||
//debugln(['TMainIDE.ProjInspectorAddUnitToProject ',AnUnitInfo.Filename]);
|
//debugln(['TMainIDE.ProjInspectorAddUnitToProject ',AnUnitInfo.Filename]);
|
||||||
ActiveSourceEditor:=nil;
|
ActiveSourceEditor:=nil;
|
||||||
BeginCodeTool(ActiveSourceEditor,ActiveUnitInfo,[]);
|
BeginCodeTool(ActiveSourceEditor,ActiveUnitInfo,[]);
|
||||||
AnUnitInfo.IsPartOfProject:=true;
|
|
||||||
OkToAdd:=True;
|
OkToAdd:=True;
|
||||||
if FilenameIsPascalUnit(AnUnitInfo.Filename) then begin
|
if FilenameIsPascalUnit(AnUnitInfo.Filename) then begin
|
||||||
OkToAdd:=SourceFileMgr.CheckDirIsInSearchPath(AnUnitInfo,False,False);
|
OkToAdd:=SourceFileMgr.CheckDirIsInSearchPath(AnUnitInfo,False,False);
|
||||||
|
@ -4,9 +4,11 @@ object ProjectInspectorForm: TProjectInspectorForm
|
|||||||
Top = 104
|
Top = 104
|
||||||
Width = 425
|
Width = 425
|
||||||
ActiveControl = ItemsTreeView
|
ActiveControl = ItemsTreeView
|
||||||
|
AllowDropFiles = True
|
||||||
Caption = 'ProjectInspectorForm'
|
Caption = 'ProjectInspectorForm'
|
||||||
ClientHeight = 474
|
ClientHeight = 474
|
||||||
ClientWidth = 425
|
ClientWidth = 425
|
||||||
|
OnDropFiles = FormDropFiles
|
||||||
OnShow = ProjectInspectorFormShow
|
OnShow = ProjectInspectorFormShow
|
||||||
LCLVersion = '1.3'
|
LCLVersion = '1.3'
|
||||||
object ItemsTreeView: TTreeView
|
object ItemsTreeView: TTreeView
|
||||||
|
@ -31,7 +31,6 @@
|
|||||||
TProjectInspectorForm is the form of the project inspector.
|
TProjectInspectorForm is the form of the project inspector.
|
||||||
|
|
||||||
ToDo:
|
ToDo:
|
||||||
- draw red line for missing files
|
|
||||||
- drop files
|
- drop files
|
||||||
- multi select
|
- multi select
|
||||||
- popup menu
|
- popup menu
|
||||||
@ -59,14 +58,16 @@ unit ProjectInspector;
|
|||||||
|
|
||||||
{$mode objfpc}{$H+}
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
{$DEFINE VerboseProjInspDrag}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, LCLProc, LCLType, Forms, Controls, Buttons, ComCtrls,
|
Classes, SysUtils, LCLProc, LCLType, Forms, Controls, Buttons, ComCtrls,
|
||||||
Menus, Dialogs, FileUtil, LazFileCache, ExtCtrls, Graphics, IDEHelpIntf,
|
Menus, Dialogs, FileUtil, LazFileCache, ExtCtrls, Graphics, IDEHelpIntf,
|
||||||
IDECommands, IDEDialogs, IDEImagesIntf, LazIDEIntf, ProjectIntf, Project,
|
IDECommands, IDEDialogs, IDEImagesIntf, LazIDEIntf, ProjectIntf, PackageIntf,
|
||||||
LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, AddToProjectDlg, PackageDefs,
|
Project, LazarusIDEStrConsts, IDEProcs, IDEOptionDefs, AddToProjectDlg,
|
||||||
TreeFilterEdit, EnvironmentOpts;
|
PackageDefs, TreeFilterEdit, CodeToolManager, CodeCache, EnvironmentOpts;
|
||||||
|
|
||||||
type
|
type
|
||||||
TOnAddUnitToProject =
|
TOnAddUnitToProject =
|
||||||
@ -79,11 +80,9 @@ type
|
|||||||
ADependency: TPkgDependency): TModalResult of object;
|
ADependency: TPkgDependency): TModalResult of object;
|
||||||
|
|
||||||
TProjectInspectorFlag = (
|
TProjectInspectorFlag = (
|
||||||
pifAllChanged,
|
pifNeedUpdateItems,
|
||||||
pifItemsChanged,
|
pifNeedUpdateButtons,
|
||||||
pifButtonsChanged,
|
pifNeedUpdateTitle
|
||||||
pifTitleChanged,
|
|
||||||
pifWasHidden
|
|
||||||
);
|
);
|
||||||
TProjectInspectorFlags = set of TProjectInspectorFlag;
|
TProjectInspectorFlags = set of TProjectInspectorFlag;
|
||||||
|
|
||||||
@ -119,6 +118,7 @@ type
|
|||||||
HelpBitBtn: TToolButton;
|
HelpBitBtn: TToolButton;
|
||||||
procedure AddBitBtnClick(Sender: TObject);
|
procedure AddBitBtnClick(Sender: TObject);
|
||||||
procedure DirectoryHierarchyButtonClick(Sender: TObject);
|
procedure DirectoryHierarchyButtonClick(Sender: TObject);
|
||||||
|
procedure FormDropFiles(Sender: TObject; const FileNames: array of String);
|
||||||
procedure ItemsPopupMenuPopup(Sender: TObject);
|
procedure ItemsPopupMenuPopup(Sender: TObject);
|
||||||
procedure ItemsTreeViewAdvancedCustomDrawItem(Sender: TCustomTreeView;
|
procedure ItemsTreeViewAdvancedCustomDrawItem(Sender: TCustomTreeView;
|
||||||
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
|
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
|
||||||
@ -176,7 +176,7 @@ type
|
|||||||
function GetNodeDataItem(TVNode: TTreeNode; out NodeData: TPINodeData;
|
function GetNodeDataItem(TVNode: TTreeNode; out NodeData: TPINodeData;
|
||||||
out Item: TObject): boolean;
|
out Item: TObject): boolean;
|
||||||
procedure SetDependencyDefaultFilename(AsPreferred: boolean);
|
procedure SetDependencyDefaultFilename(AsPreferred: boolean);
|
||||||
procedure SetIdleConnected(const AValue: boolean);
|
procedure SetIdleConnected(AValue: boolean);
|
||||||
procedure SetLazProject(const AValue: TProject);
|
procedure SetLazProject(const AValue: TProject);
|
||||||
procedure SetShowDirectoryHierarchy(const AValue: boolean);
|
procedure SetShowDirectoryHierarchy(const AValue: boolean);
|
||||||
procedure SetSortAlphabetically(const AValue: boolean);
|
procedure SetSortAlphabetically(const AValue: boolean);
|
||||||
@ -186,21 +186,21 @@ type
|
|||||||
procedure UpdateRequiredPackages;
|
procedure UpdateRequiredPackages;
|
||||||
procedure OnProjectBeginUpdate(Sender: TObject);
|
procedure OnProjectBeginUpdate(Sender: TObject);
|
||||||
procedure OnProjectEndUpdate(Sender: TObject; ProjectChanged: boolean);
|
procedure OnProjectEndUpdate(Sender: TObject; ProjectChanged: boolean);
|
||||||
procedure OnCloseIDE(Sender: TObject);
|
|
||||||
protected
|
protected
|
||||||
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
|
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
|
||||||
procedure IdleHandler(Sender: TObject; var Done: Boolean);
|
procedure IdleHandler(Sender: TObject; var Done: Boolean);
|
||||||
procedure UpdateShowing; override;
|
|
||||||
public
|
public
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure BeginUpdate;
|
procedure BeginUpdate;
|
||||||
procedure EndUpdate;
|
procedure EndUpdate;
|
||||||
function IsUpdateLocked: boolean;
|
function IsUpdateLocked: boolean; inline;
|
||||||
procedure UpdateAll(Immediately: boolean);
|
procedure UpdateAll(Immediately: boolean = false);
|
||||||
procedure UpdateTitle;
|
procedure UpdateTitle(Immediately: boolean = false);
|
||||||
procedure UpdateButtons;
|
procedure UpdateItems(Immediately: boolean = false);
|
||||||
procedure UpdateItems(Immediately: boolean);
|
procedure UpdateButtons(Immediately: boolean = false);
|
||||||
|
procedure UpdatePending;
|
||||||
|
function CanUpdate(Flag: TProjectInspectorFlag): boolean;
|
||||||
function GetSelectedFile: TUnitInfo;
|
function GetSelectedFile: TUnitInfo;
|
||||||
function GetSelectedDependency: TPkgDependency;
|
function GetSelectedDependency: TPkgDependency;
|
||||||
public
|
public
|
||||||
@ -232,6 +232,12 @@ implementation
|
|||||||
|
|
||||||
{ TProjectInspectorForm }
|
{ TProjectInspectorForm }
|
||||||
|
|
||||||
|
// inline
|
||||||
|
function TProjectInspectorForm.IsUpdateLocked: boolean;
|
||||||
|
begin
|
||||||
|
Result:=FUpdateLock>0;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.ItemsTreeViewDblClick(Sender: TObject);
|
procedure TProjectInspectorForm.ItemsTreeViewDblClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
OpenButtonClick(Self);
|
OpenButtonClick(Self);
|
||||||
@ -363,6 +369,44 @@ begin
|
|||||||
ShowDirectoryHierarchy:=DirectoryHierarchyButton.Down;
|
ShowDirectoryHierarchy:=DirectoryHierarchyButton.Down;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectInspectorForm.FormDropFiles(Sender: TObject;
|
||||||
|
const FileNames: array of String);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
NewFilename: String;
|
||||||
|
NewFile: TUnitInfo;
|
||||||
|
begin
|
||||||
|
{$IFDEF VerboseProjInspDrag}
|
||||||
|
debugln(['TProjectInspectorForm.FormDropFiles ',length(FileNames)]);
|
||||||
|
{$ENDIF}
|
||||||
|
if length(FileNames)=0 then exit;
|
||||||
|
BeginUpdate;
|
||||||
|
try
|
||||||
|
for i:=0 to high(Filenames) do begin
|
||||||
|
NewFilename:=CleanAndExpandFilename(FileNames[i]);
|
||||||
|
if not FileExistsUTF8(NewFilename) then continue;
|
||||||
|
if DirPathExists(NewFilename) then continue;
|
||||||
|
NewFile:=LazProject.UnitInfoWithFilename(NewFilename);
|
||||||
|
if (NewFile<>nil) and (NewFile.IsPartOfProject) then continue;
|
||||||
|
{$IFDEF VerboseProjInspDrag}
|
||||||
|
debugln(['TProjectInspectorForm.FormDropFiles Adding files: ',NewFilename]);
|
||||||
|
{$ENDIF}
|
||||||
|
if NewFile=nil then begin
|
||||||
|
NewFile:=TUnitInfo.Create(nil);
|
||||||
|
NewFile.Filename:=NewFilename;
|
||||||
|
LazProject.AddFile(NewFile,false);
|
||||||
|
end;
|
||||||
|
NewFile.IsPartOfProject:=true;
|
||||||
|
if Assigned(OnAddUnitToProject) then begin
|
||||||
|
if OnAddUnitToProject(Self,NewFile)<>mrOk then break;
|
||||||
|
end;
|
||||||
|
UpdateAll(false);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.ItemsPopupMenuPopup(Sender: TObject);
|
procedure TProjectInspectorForm.ItemsPopupMenuPopup(Sender: TObject);
|
||||||
var
|
var
|
||||||
ItemCnt: integer;
|
ItemCnt: integer;
|
||||||
@ -586,6 +630,7 @@ begin
|
|||||||
DirectoryHierarchyButton.Down:=FShowDirectoryHierarchy;
|
DirectoryHierarchyButton.Down:=FShowDirectoryHierarchy;
|
||||||
FilterEdit.ShowDirHierarchy:=FShowDirectoryHierarchy;
|
FilterEdit.ShowDirHierarchy:=FShowDirectoryHierarchy;
|
||||||
FilterEdit.InvalidateFilter;
|
FilterEdit.InvalidateFilter;
|
||||||
|
EnvironmentOptions.ProjInspShowDirHierarchy := ShowDirectoryHierarchy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.SetSortAlphabetically(const AValue: boolean);
|
procedure TProjectInspectorForm.SetSortAlphabetically(const AValue: boolean);
|
||||||
@ -595,6 +640,7 @@ begin
|
|||||||
SortAlphabeticallyButton.Down:=FSortAlphabetically;
|
SortAlphabeticallyButton.Down:=FSortAlphabetically;
|
||||||
FilterEdit.SortData:=FSortAlphabetically;
|
FilterEdit.SortData:=FSortAlphabetically;
|
||||||
FilterEdit.InvalidateFilter;
|
FilterEdit.InvalidateFilter;
|
||||||
|
EnvironmentOptions.ProjInspSortAlphabetically := SortAlphabetically;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.SetDependencyDefaultFilename(AsPreferred: boolean);
|
procedure TProjectInspectorForm.SetDependencyDefaultFilename(AsPreferred: boolean);
|
||||||
@ -615,8 +661,10 @@ begin
|
|||||||
UpdateButtons;
|
UpdateButtons;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.SetIdleConnected(const AValue: boolean);
|
procedure TProjectInspectorForm.SetIdleConnected(AValue: boolean);
|
||||||
begin
|
begin
|
||||||
|
if csDestroying in ComponentState then
|
||||||
|
AValue:=false;
|
||||||
if FIdleConnected=AValue then exit;
|
if FIdleConnected=AValue then exit;
|
||||||
FIdleConnected:=AValue;
|
FIdleConnected:=AValue;
|
||||||
if FIdleConnected then
|
if FIdleConnected then
|
||||||
@ -829,12 +877,6 @@ begin
|
|||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.OnCloseIDE(Sender: TObject);
|
|
||||||
begin
|
|
||||||
EnvironmentOptions.ProjInspSortAlphabetically := SortAlphabetically;
|
|
||||||
EnvironmentOptions.ProjInspShowDirHierarchy := ShowDirectoryHierarchy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TProjectInspectorForm.KeyUp(var Key: Word; Shift: TShiftState);
|
procedure TProjectInspectorForm.KeyUp(var Key: Word; Shift: TShiftState);
|
||||||
begin
|
begin
|
||||||
inherited KeyDown(Key, Shift);
|
inherited KeyDown(Key, Shift);
|
||||||
@ -843,38 +885,11 @@ end;
|
|||||||
|
|
||||||
procedure TProjectInspectorForm.IdleHandler(Sender: TObject; var Done: Boolean);
|
procedure TProjectInspectorForm.IdleHandler(Sender: TObject; var Done: Boolean);
|
||||||
begin
|
begin
|
||||||
if not IsVisible then begin
|
if IsUpdateLocked then begin
|
||||||
Include(FFlags,pifWasHidden);
|
|
||||||
IdleConnected:=false;
|
IdleConnected:=false;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
Exclude(FFlags,pifWasHidden);
|
UpdatePending;
|
||||||
if FUpdateLock>0 then begin
|
|
||||||
IdleConnected:=false;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
if pifAllChanged in FFlags then
|
|
||||||
UpdateAll(true)
|
|
||||||
else if pifItemsChanged in FFlags then
|
|
||||||
UpdateItems(true)
|
|
||||||
else if pifTitleChanged in FFlags then
|
|
||||||
UpdateTitle
|
|
||||||
else if pifButtonsChanged in FFlags then
|
|
||||||
UpdateButtons
|
|
||||||
else
|
|
||||||
IdleConnected:=false;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateShowing;
|
|
||||||
begin
|
|
||||||
inherited UpdateShowing;
|
|
||||||
if IsVisible and (pifWasHidden in FFlags) then begin
|
|
||||||
Exclude(FFlags,pifWasHidden);
|
|
||||||
if FFlags<>[] then begin
|
|
||||||
// the form is visible again and some updates are pending
|
|
||||||
IdleConnected:=true;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectInspectorForm.GetSelectedFile: TUnitInfo;
|
function TProjectInspectorForm.GetSelectedFile: TUnitInfo;
|
||||||
@ -907,7 +922,6 @@ begin
|
|||||||
KeyPreview:=true;
|
KeyPreview:=true;
|
||||||
SortAlphabetically := EnvironmentOptions.ProjInspSortAlphabetically;
|
SortAlphabetically := EnvironmentOptions.ProjInspSortAlphabetically;
|
||||||
ShowDirectoryHierarchy := EnvironmentOptions.ProjInspShowDirHierarchy;
|
ShowDirectoryHierarchy := EnvironmentOptions.ProjInspShowDirHierarchy;
|
||||||
LazarusIDE.AddHandlerOnIDEClose(@OnCloseIDE);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TProjectInspectorForm.Destroy;
|
destructor TProjectInspectorForm.Destroy;
|
||||||
@ -932,36 +946,25 @@ procedure TProjectInspectorForm.EndUpdate;
|
|||||||
begin
|
begin
|
||||||
if FUpdateLock=0 then RaiseException('TProjectInspectorForm.EndUpdate');
|
if FUpdateLock=0 then RaiseException('TProjectInspectorForm.EndUpdate');
|
||||||
dec(FUpdateLock);
|
dec(FUpdateLock);
|
||||||
end;
|
if FUpdateLock=0 then
|
||||||
|
IdleConnected:=true;
|
||||||
function TProjectInspectorForm.IsUpdateLocked: boolean;
|
|
||||||
begin
|
|
||||||
Result:=FUpdateLock>0;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateAll(Immediately: boolean);
|
procedure TProjectInspectorForm.UpdateAll(Immediately: boolean);
|
||||||
begin
|
begin
|
||||||
if (FUpdateLock>0) or (not Visible) then begin
|
UpdateItems;
|
||||||
Include(FFlags,pifAllChanged);
|
|
||||||
IdleConnected:=true;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
Exclude(FFlags,pifAllChanged);
|
|
||||||
UpdateTitle;
|
UpdateTitle;
|
||||||
UpdateButtons;
|
UpdateButtons;
|
||||||
UpdateItems(true);
|
if Immediately then
|
||||||
|
UpdatePending;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateTitle;
|
procedure TProjectInspectorForm.UpdateTitle(Immediately: boolean);
|
||||||
var
|
var
|
||||||
NewCaption: String;
|
NewCaption: String;
|
||||||
begin
|
begin
|
||||||
if (FUpdateLock>0) or (not Visible) then begin
|
if not CanUpdate(pifNeedUpdateTitle) then exit;
|
||||||
Include(FFlags,pifTitleChanged);
|
|
||||||
IdleConnected:=true;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
Exclude(FFlags,pifTitleChanged);
|
|
||||||
if LazProject=nil then
|
if LazProject=nil then
|
||||||
Caption:=lisMenuProjectInspector
|
Caption:=lisMenuProjectInspector
|
||||||
else begin
|
else begin
|
||||||
@ -972,17 +975,25 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateButtons;
|
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);
|
||||||
var
|
var
|
||||||
CurFile: TUnitInfo;
|
CurFile: TUnitInfo;
|
||||||
CurDependency: TPkgDependency;
|
CurDependency: TPkgDependency;
|
||||||
begin
|
begin
|
||||||
if (FUpdateLock>0) or (not Visible) then begin
|
if not CanUpdate(pifNeedUpdateButtons) then exit;
|
||||||
Include(FFlags,pifButtonsChanged);
|
|
||||||
IdleConnected:=true;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
Exclude(FFlags,pifButtonsChanged);
|
|
||||||
if LazProject<>nil then begin
|
if LazProject<>nil then begin
|
||||||
AddBitBtn.Enabled:=true;
|
AddBitBtn.Enabled:=true;
|
||||||
CurFile:=GetSelectedFile;
|
CurFile:=GetSelectedFile;
|
||||||
@ -1000,20 +1011,29 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectInspectorForm.UpdateItems(Immediately: boolean);
|
procedure TProjectInspectorForm.UpdatePending;
|
||||||
begin
|
begin
|
||||||
if (FUpdateLock>0) or (not Visible) then begin
|
if pifNeedUpdateItems in FFlags then
|
||||||
Include(FFlags,pifItemsChanged);
|
UpdateItems(true);
|
||||||
|
if pifNeedUpdateTitle in FFlags then
|
||||||
|
UpdateTitle(true);
|
||||||
|
if pifNeedUpdateButtons in FFlags then
|
||||||
|
UpdateButtons(true);
|
||||||
|
IdleConnected:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TProjectInspectorForm.CanUpdate(Flag: TProjectInspectorFlag): boolean;
|
||||||
|
begin
|
||||||
|
Result:=false;
|
||||||
|
if csDestroying in ComponentState then exit;
|
||||||
|
if LazProject=nil then exit;
|
||||||
|
if IsUpdateLocked then begin
|
||||||
|
Include(fFlags,Flag);
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
exit;
|
Result:=false;
|
||||||
end;
|
end else begin
|
||||||
Exclude(FFlags,pifItemsChanged);
|
Exclude(fFlags,Flag);
|
||||||
ItemsTreeView.BeginUpdate;
|
Result:=true;
|
||||||
try
|
|
||||||
UpdateProjectFiles;
|
|
||||||
UpdateRequiredPackages;
|
|
||||||
finally
|
|
||||||
ItemsTreeView.EndUpdate;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -2189,7 +2189,8 @@ begin
|
|||||||
if fUpdateLock=0 then
|
if fUpdateLock=0 then
|
||||||
RaiseException('');
|
RaiseException('');
|
||||||
dec(fUpdateLock);
|
dec(fUpdateLock);
|
||||||
UpdatePending;
|
if fUpdateLock=0 then
|
||||||
|
IdleConnected:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.UpdateTitle(Immediately: boolean);
|
procedure TPackageEditorForm.UpdateTitle(Immediately: boolean);
|
||||||
|
Loading…
Reference in New Issue
Block a user