mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-06 00:00:16 +02:00
IDE: Refactor code in InstallPkgSetDialog, remove Cancel button. Issue #40496, patch by n7800.
This commit is contained in:
parent
4cd413a986
commit
8563725a77
@ -10,9 +10,11 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
ClientWidth = 607
|
||||
Constraints.MinHeight = 400
|
||||
Constraints.MinWidth = 450
|
||||
KeyPreview = True
|
||||
OnClose = FormClose
|
||||
OnCreate = InstallPkgSetDialogCreate
|
||||
OnDestroy = InstallPkgSetDialogDestroy
|
||||
OnKeyDown = FormKeyDown
|
||||
OnResize = InstallPkgSetDialogResize
|
||||
OnShow = InstallPkgSetDialogShow
|
||||
Position = poScreenCenter
|
||||
@ -96,21 +98,6 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
OnClick = HelpButtonClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object CancelButton: TBitBtn
|
||||
Left = 164
|
||||
Height = 29
|
||||
Top = 6
|
||||
Width = 83
|
||||
Align = alRight
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 6
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
Constraints.MinWidth = 75
|
||||
Kind = bkCancel
|
||||
ModalResult = 2
|
||||
TabOrder = 1
|
||||
end
|
||||
object SaveAndExitButton: TBitBtn
|
||||
Left = 442
|
||||
Height = 29
|
||||
@ -121,6 +108,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'SaveAndExitButton'
|
||||
Constraints.MinWidth = 75
|
||||
Enabled = False
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||
@ -158,7 +146,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
FF00FFFFFF00FFFFFF00FFFFFF006D9CD4896A9AD2FB6697CFEE
|
||||
}
|
||||
OnClick = SaveAndExitButtonClick
|
||||
TabOrder = 3
|
||||
TabOrder = 2
|
||||
end
|
||||
object SaveAndRebuildButton: TBitBtn
|
||||
Left = 253
|
||||
@ -170,6 +158,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'SaveAndRebuildButton'
|
||||
Constraints.MinWidth = 75
|
||||
Enabled = False
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000000000000000
|
||||
@ -207,7 +196,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
0000000000000000000000000000000000000000000000000000
|
||||
}
|
||||
OnClick = SaveAndRebuildButtonClick
|
||||
TabOrder = 2
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
object Splitter1: TSplitter
|
||||
@ -293,8 +282,8 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
ShowRoot = False
|
||||
TabOrder = 1
|
||||
OnAdvancedCustomDrawItem = TreeViewAdvancedCustomDrawItem
|
||||
OnDblClick = InstallTreeViewDblClick
|
||||
OnKeyPress = InstallTreeViewKeyPress
|
||||
OnDblClick = AddToUninstall
|
||||
OnKeyDown = InstallTreeViewKeyDown
|
||||
OnSelectionChanged = InstallTreeViewSelectionChanged
|
||||
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoToolTips, tvoThemedDraw]
|
||||
end
|
||||
@ -312,7 +301,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
BorderSpacing.Bottom = 6
|
||||
Caption = 'UninstallButton'
|
||||
Layout = blGlyphRight
|
||||
OnClick = UninstallButtonClick
|
||||
OnClick = AddToUninstall
|
||||
TabOrder = 2
|
||||
end
|
||||
object InstalledFilterEdit: TTreeFilterEdit
|
||||
@ -422,8 +411,8 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
ShowRoot = False
|
||||
TabOrder = 1
|
||||
OnAdvancedCustomDrawItem = TreeViewAdvancedCustomDrawItem
|
||||
OnDblClick = AvailableTreeViewDblClick
|
||||
OnKeyPress = AvailableTreeViewKeyPress
|
||||
OnDblClick = AddToInstall
|
||||
OnKeyDown = AvailableTreeViewKeyDown
|
||||
OnSelectionChanged = AvailableTreeViewSelectionChanged
|
||||
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoToolTips, tvoThemedDraw]
|
||||
end
|
||||
@ -441,7 +430,7 @@ object InstallPkgSetDialog: TInstallPkgSetDialog
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Bottom = 6
|
||||
Caption = 'AddToInstallButton'
|
||||
OnClick = AddToInstallButtonClick
|
||||
OnClick = AddToInstall
|
||||
TabOrder = 2
|
||||
end
|
||||
object AvailableFilterEdit: TTreeFilterEdit
|
||||
|
@ -50,7 +50,7 @@ uses
|
||||
// BuildIntf
|
||||
PackageIntf, PackageLinkIntf, PackageDependencyIntf,
|
||||
// IdeIntf
|
||||
IdeIntfStrConsts, IDEImagesIntf, IDEHelpIntf, IDEDialogs, IDEWindowIntf, InputHistory,
|
||||
IDEImagesIntf, IDEHelpIntf, IDEDialogs, IDEWindowIntf, InputHistory,
|
||||
// IdeConfig
|
||||
LazConf,
|
||||
// IDE
|
||||
@ -66,7 +66,6 @@ type
|
||||
AvailablePkgGroupBox: TGroupBox;
|
||||
MiddleBevel: TBevel;
|
||||
HelpButton: TBitBtn;
|
||||
CancelButton: TBitBtn;
|
||||
ExportButton: TButton;
|
||||
BtnPanel: TPanel;
|
||||
InstallTreeView: TTreeView;
|
||||
@ -86,32 +85,33 @@ type
|
||||
Splitter1: TSplitter;
|
||||
Splitter2: TSplitter;
|
||||
UninstallButton: TBitBtn;
|
||||
procedure AddToInstallButtonClick(Sender: TObject);
|
||||
procedure AvailableTreeViewKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
function FilterEditGetImageIndex({%H-}Str: String; {%H-}Data: TObject;
|
||||
var {%H-}AIsEnabled: Boolean): Integer;
|
||||
procedure FormClose(Sender: TObject; var {%H-}CloseAction: TCloseAction);
|
||||
procedure InstallTreeViewKeyPress(Sender: TObject; var Key: char);
|
||||
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
procedure InstallTreeViewKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
procedure LPKParsingTimerTimer(Sender: TObject);
|
||||
procedure OnAllLPKParsed(Sender: TObject);
|
||||
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
|
||||
procedure TreeViewAdvancedCustomDrawItem(Sender: TCustomTreeView;
|
||||
Node: TTreeNode; {%H-}State: TCustomDrawState; Stage: TCustomDrawStage;
|
||||
var PaintImages, {%H-}DefaultDraw: Boolean);
|
||||
procedure AvailableTreeViewDblClick(Sender: TObject);
|
||||
procedure AvailableTreeViewKeyPress(Sender: TObject; var Key: char);
|
||||
procedure AvailableTreeViewSelectionChanged(Sender: TObject);
|
||||
procedure ExportButtonClick(Sender: TObject);
|
||||
procedure HelpButtonClick(Sender: TObject);
|
||||
procedure ImportButtonClick(Sender: TObject);
|
||||
procedure SaveAndRebuildButtonClick(Sender: TObject);
|
||||
procedure InstallTreeViewDblClick(Sender: TObject);
|
||||
procedure InstallPkgSetDialogCreate(Sender: TObject);
|
||||
procedure InstallPkgSetDialogDestroy(Sender: TObject);
|
||||
procedure InstallPkgSetDialogShow(Sender: TObject);
|
||||
procedure InstallPkgSetDialogResize(Sender: TObject);
|
||||
procedure InstallTreeViewSelectionChanged(Sender: TObject);
|
||||
procedure SaveAndExitButtonClick(Sender: TObject);
|
||||
procedure UninstallButtonClick(Sender: TObject);
|
||||
procedure AddToInstall(Sender: TObject);
|
||||
procedure AddToUninstall(Sender: TObject);
|
||||
private
|
||||
FIdleConnected: boolean;
|
||||
FNewInstalledPackages: TObjectList; // list of TLazPackageID (not TLazPackage)
|
||||
@ -152,8 +152,6 @@ type
|
||||
procedure SavePackageListToFile(const AFilename: string);
|
||||
procedure LoadPackageListFromFile(const AFilename: string);
|
||||
function ExtractNameFromPkgID(ID: string): string;
|
||||
procedure AddToInstall;
|
||||
procedure AddToUninstall;
|
||||
procedure PkgInfosChanged;
|
||||
procedure ChangePkgVersion(PkgInfo: TLPKInfo; NewVersion: TPkgVersion);
|
||||
function FindOnlinePackageLink(const AName: String): TPackageLink;
|
||||
@ -166,9 +164,11 @@ type
|
||||
property IdleConnected: boolean read FIdleConnected write SetIdleConnected;
|
||||
end;
|
||||
|
||||
function ShowEditInstallPkgsDialog(OldInstalledPackages: TPkgDependency;
|
||||
var NewInstalledPackages: TObjectList; // list of TLazPackageID (must be freed)
|
||||
var RebuildIDE: boolean): TModalResult;
|
||||
function ShowEditInstallPkgsDialog(
|
||||
OldInstalledPackages: TPkgDependency;
|
||||
out NewInstalledPackages: TObjectList; // list of TLazPackageID (must be freed, may be null)
|
||||
out RebuildIDE: boolean
|
||||
): boolean;
|
||||
|
||||
implementation
|
||||
|
||||
@ -186,19 +186,26 @@ begin
|
||||
AControls[i].Constraints.MinWidth:=MaxWidth; // AutoSize=True
|
||||
end;
|
||||
|
||||
function ShowEditInstallPkgsDialog(OldInstalledPackages: TPkgDependency;
|
||||
var NewInstalledPackages: TObjectList; var RebuildIDE: boolean): TModalResult;
|
||||
function ShowEditInstallPkgsDialog(
|
||||
OldInstalledPackages: TPkgDependency;
|
||||
out NewInstalledPackages: TObjectList; // list of TLazPackageID (must be freed, may be null)
|
||||
out RebuildIDE: boolean
|
||||
): boolean;
|
||||
var
|
||||
InstallPkgSetDialog: TInstallPkgSetDialog;
|
||||
begin
|
||||
NewInstalledPackages:=nil;
|
||||
InstallPkgSetDialog:=TInstallPkgSetDialog.Create(nil);
|
||||
result := false;
|
||||
NewInstalledPackages := nil;
|
||||
RebuildIDE := false;
|
||||
InstallPkgSetDialog := TInstallPkgSetDialog.Create(nil);
|
||||
try
|
||||
InstallPkgSetDialog.OldInstalledPackages:=OldInstalledPackages;
|
||||
InstallPkgSetDialog.UpdateButtonStates;
|
||||
Result:=InstallPkgSetDialog.ShowModal;
|
||||
NewInstalledPackages:=InstallPkgSetDialog.GetNewInstalledPackages;
|
||||
RebuildIDE:=InstallPkgSetDialog.RebuildIDE;
|
||||
InstallPkgSetDialog.OldInstalledPackages := OldInstalledPackages;
|
||||
result := InstallPkgSetDialog.ShowModal = mrOK;
|
||||
if result then
|
||||
begin
|
||||
NewInstalledPackages := InstallPkgSetDialog.GetNewInstalledPackages;
|
||||
RebuildIDE := InstallPkgSetDialog.RebuildIDE;
|
||||
end;
|
||||
finally
|
||||
InstallPkgSetDialog.Free;
|
||||
end;
|
||||
@ -210,43 +217,47 @@ procedure TInstallPkgSetDialog.InstallPkgSetDialogCreate(Sender: TObject);
|
||||
begin
|
||||
IDEDialogLayoutList.ApplyLayout(Self);
|
||||
|
||||
InstallTreeView.Images := IDEImages.Images_16;
|
||||
{ Captions }
|
||||
|
||||
Self .Caption := lisInstallUninstallPackages;
|
||||
NoteLabel .Caption := lisIDECompileAndRestart;
|
||||
AvailablePkgGroupBox.Caption := lisAvailableForInstallation;
|
||||
ExportButton .Caption := lisExportList;
|
||||
ImportButton .Caption := lisImportList;
|
||||
UninstallButton .Caption := lisUninstallSelection;
|
||||
InstallPkgGroupBox .Caption := lisPckEditInstall;
|
||||
AddToInstallButton .Caption := lisInstallSelection;
|
||||
PkgInfoGroupBox .Caption := lisPackageInfo;
|
||||
SaveAndRebuildButton.Caption := lisSaveAndRebuildIDE;
|
||||
SaveAndExitButton .Caption := lisSaveAndExitDialog;
|
||||
HelpButton .Caption := lisMenuHelp;
|
||||
|
||||
{ Images }
|
||||
|
||||
InstallTreeView .Images := IDEImages.Images_16;
|
||||
AvailableTreeView.Images := IDEImages.Images_16;
|
||||
ImgIndexPackage := IDEImages.LoadImage('item_package');
|
||||
ImgIndexInstalledPackage := IDEImages.LoadImage('pkg_installed');
|
||||
ImgIndexInstallPackage := IDEImages.LoadImage('pkg_package_autoinstall');
|
||||
ImgIndexUninstallPackage := IDEImages.LoadImage('pkg_package_uninstall');
|
||||
ImgIndexCirclePackage := IDEImages.LoadImage('pkg_package_circle');
|
||||
ImgIndexMissingPackage := IDEImages.LoadImage('pkg_conflict');
|
||||
ImgIndexAvailableOnline := IDEImages.LoadImage('pkg_install');
|
||||
ImgIndexOverlayUnknown := IDEImages.LoadImage('state_unknown');
|
||||
ImgIndexOverlayBasePackage := IDEImages.LoadImage('pkg_core_overlay');
|
||||
ImgIndexOverlayFPCPackage := IDEImages.LoadImage('pkg_fpc_overlay');
|
||||
ImgIndexOverlayLazarusPackage := IDEImages.LoadImage('pkg_lazarus_overlay');
|
||||
ImgIndexOverlayDesignTimePackage := IDEImages.LoadImage('pkg_design_overlay');
|
||||
ImgIndexOverlayRunTimePackage := IDEImages.LoadImage('pkg_runtime_overlay');
|
||||
|
||||
Caption:=lisInstallUninstallPackages;
|
||||
NoteLabel.Caption:=lisIDECompileAndRestart;
|
||||
|
||||
AvailablePkgGroupBox.Caption:=lisAvailableForInstallation;
|
||||
|
||||
ExportButton.Caption:=lisExportList;
|
||||
ImportButton.Caption:=lisImportList;
|
||||
UninstallButton.Caption:=lisUninstallSelection;
|
||||
IDEImages.AssignImage(UninstallButton, 'arrow__darkred_right');
|
||||
InstallPkgGroupBox.Caption:=lisPckEditInstall;
|
||||
AddToInstallButton.Caption:=lisInstallSelection;
|
||||
IDEImages.AssignImage(AddToInstallButton, 'arrow__darkgreen_left');
|
||||
PkgInfoGroupBox.Caption := lisPackageInfo;
|
||||
SaveAndRebuildButton.Caption:=lisSaveAndRebuildIDE;
|
||||
SaveAndExitButton.Caption:=lisSaveAndExitDialog;
|
||||
HelpButton.Caption:=lisMenuHelp;
|
||||
CancelButton.Caption:=lisCancel;
|
||||
IDEImages.AssignImage(UninstallButton , 'arrow__darkred_right');
|
||||
|
||||
ImgIndexPackage := IDEImages.LoadImage('item_package');
|
||||
ImgIndexInstalledPackage := IDEImages.LoadImage('pkg_installed');
|
||||
ImgIndexInstallPackage := IDEImages.LoadImage('pkg_package_autoinstall');
|
||||
ImgIndexUninstallPackage := IDEImages.LoadImage('pkg_package_uninstall');
|
||||
ImgIndexCirclePackage := IDEImages.LoadImage('pkg_package_circle');
|
||||
ImgIndexMissingPackage := IDEImages.LoadImage('pkg_conflict');
|
||||
ImgIndexAvailableOnline := IDEImages.LoadImage('pkg_install');
|
||||
ImgIndexOverlayUnknown := IDEImages.LoadImage('state_unknown');
|
||||
ImgIndexOverlayBasePackage := IDEImages.LoadImage('pkg_core_overlay');
|
||||
ImgIndexOverlayFPCPackage := IDEImages.LoadImage('pkg_fpc_overlay');
|
||||
ImgIndexOverlayLazarusPackage := IDEImages.LoadImage('pkg_lazarus_overlay');
|
||||
ImgIndexOverlayDesignTimePackage := IDEImages.LoadImage('pkg_design_overlay');
|
||||
ImgIndexOverlayRunTimePackage := IDEImages.LoadImage('pkg_runtime_overlay');
|
||||
|
||||
{}
|
||||
|
||||
FNewInstalledPackages := TObjectList.Create(true);
|
||||
|
||||
FNewInstalledPackages:=TObjectList.Create(true);
|
||||
PkgInfoMemo.Clear;
|
||||
PkgInfoMemoLicense.Clear;
|
||||
LPKInfoCache.AddOnQueueEmpty(@OnAllLPKParsed);
|
||||
LPKInfoCache.StartLPKReaderWithAllAvailable;
|
||||
|
||||
@ -277,11 +288,6 @@ begin
|
||||
ModalResult:=mrOk;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.InstallTreeViewDblClick(Sender: TObject);
|
||||
begin
|
||||
AddToUninstall;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.AvailableTreeViewSelectionChanged(Sender: TObject);
|
||||
begin
|
||||
UpdateButtonStates;
|
||||
@ -337,9 +343,14 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.AddToInstallButtonClick(Sender: TObject);
|
||||
procedure TInstallPkgSetDialog.AvailableTreeViewKeyDown(Sender: TObject;
|
||||
var Key: Word; Shift: TShiftState);
|
||||
begin
|
||||
AddToInstall;
|
||||
if (Key = VK_RETURN) and (Shift = []) then
|
||||
begin
|
||||
AddToInstall(Sender);
|
||||
Key := 0;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TInstallPkgSetDialog.FilterEditGetImageIndex(Str: String;
|
||||
@ -354,10 +365,24 @@ begin
|
||||
IDEDialogLayoutList.SaveLayout(Self);
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.InstallTreeViewKeyPress(Sender: TObject; var Key: char);
|
||||
procedure TInstallPkgSetDialog.FormKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
begin
|
||||
if Key = char(VK_RETURN) then
|
||||
AddToUninstall;
|
||||
if (Key = VK_ESCAPE) and (Shift = []) then
|
||||
begin
|
||||
Close;
|
||||
Key := 0;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.InstallTreeViewKeyDown(Sender: TObject;
|
||||
var Key: Word; Shift: TShiftState);
|
||||
begin
|
||||
if (Key = VK_RETURN) and (Shift = []) then
|
||||
begin
|
||||
AddToUninstall(Sender);
|
||||
Key := 0;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.LPKParsingTimerTimer(Sender: TObject);
|
||||
@ -368,9 +393,8 @@ end;
|
||||
|
||||
procedure TInstallPkgSetDialog.OnAllLPKParsed(Sender: TObject);
|
||||
begin
|
||||
LPKParsingTimer.Enabled:=false;
|
||||
UpdateNewInstalledPackages;
|
||||
UpdateAvailablePackages;
|
||||
LPKParsingTimer.Enabled := false;
|
||||
LPKParsingTimerTimer(Sender);
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.OnIdle(Sender: TObject; var Done: Boolean);
|
||||
@ -446,17 +470,6 @@ begin
|
||||
PaintImages:=false;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.AvailableTreeViewDblClick(Sender: TObject);
|
||||
begin
|
||||
AddToInstall;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.AvailableTreeViewKeyPress(Sender: TObject; var Key: char);
|
||||
begin
|
||||
if Key = char(VK_RETURN) then
|
||||
AddToInstall;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.InstallPkgSetDialogResize(Sender: TObject);
|
||||
var
|
||||
w: Integer;
|
||||
@ -479,11 +492,6 @@ begin
|
||||
ModalResult:=mrOk;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.UninstallButtonClick(Sender: TObject);
|
||||
begin
|
||||
AddToUninstall;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.SetOldInstalledPackages(const AValue: TPkgDependency);
|
||||
begin
|
||||
if FOldInstalledPackages=AValue then exit;
|
||||
@ -754,33 +762,31 @@ begin
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.UpdateButtonStates;
|
||||
var
|
||||
Cnt: Integer;
|
||||
Dependency: TPkgDependency;
|
||||
s: String;
|
||||
ListChanged: Boolean;
|
||||
FilteredBranch: TTreeFilterBranch;
|
||||
begin
|
||||
UninstallButton.Enabled:=InstallTreeView.Selected<>nil;
|
||||
AddToInstallButton.Enabled:=AvailableTreeView.Selected<>nil;
|
||||
// check for changes
|
||||
ListChanged:=false;
|
||||
Cnt:=0;
|
||||
Dependency:=OldInstalledPackages;
|
||||
while Dependency<>nil do begin
|
||||
s:=Dependency.PackageName;
|
||||
if not PackageInInstallList(s) then begin
|
||||
ListChanged:=true;
|
||||
break;
|
||||
//
|
||||
function ChangesFound: boolean;
|
||||
var
|
||||
Cnt: Integer;
|
||||
Dependency: TPkgDependency;
|
||||
FilteredBranch: TTreeFilterBranch;
|
||||
begin
|
||||
Cnt := 0;
|
||||
Dependency := OldInstalledPackages;
|
||||
while Dependency <> nil do
|
||||
begin
|
||||
if not PackageInInstallList(Dependency.PackageName) then
|
||||
exit(true);
|
||||
Dependency := Dependency.NextRequiresDependency;
|
||||
inc(Cnt);
|
||||
end;
|
||||
Dependency:=Dependency.NextRequiresDependency;
|
||||
inc(Cnt);
|
||||
FilteredBranch := InstalledFilterEdit.GetExistingBranch(nil);
|
||||
result := assigned(FilteredBranch) and (FilteredBranch.Items.Count <> Cnt);
|
||||
end;
|
||||
FilteredBranch:=InstalledFilterEdit.GetExistingBranch(nil);
|
||||
if Assigned(FilteredBranch) and (FilteredBranch.Items.Count<>Cnt) then
|
||||
ListChanged:=true;
|
||||
SaveAndExitButton.Enabled:=ListChanged;
|
||||
SaveAndRebuildButton.Enabled:=ListChanged;
|
||||
//
|
||||
begin
|
||||
SaveAndRebuildButton.Enabled := ChangesFound;
|
||||
SaveAndExitButton .Enabled := SaveAndRebuildButton.Enabled;
|
||||
UninstallButton .Enabled := InstallTreeView.Selected <> nil;
|
||||
AddToInstallButton .Enabled := AvailableTreeView.Selected <> nil;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.UpdatePackageInfo(Tree: TTreeView);
|
||||
@ -1015,7 +1021,7 @@ begin
|
||||
Result:=GetIdentifier(PChar(ID));
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.AddToInstall;
|
||||
procedure TInstallPkgSetDialog.AddToInstall(Sender: TObject);
|
||||
|
||||
function SelectionOk(aPackageID: TLazPackageID): Boolean;
|
||||
var
|
||||
@ -1077,11 +1083,12 @@ var
|
||||
begin
|
||||
NewSelectedIndex:=-1;
|
||||
LastNonSelectedIndex:=-1;
|
||||
FilteredBranch := AvailableFilterEdit.GetExistingBranch(Nil); // All items are top level
|
||||
|
||||
Additions:=TObjectList.Create(false);
|
||||
AddedPkgNames:=TStringList.Create;
|
||||
PkgLinks := TList.Create;
|
||||
NewPackageID:=TLazPackageID.Create;
|
||||
FilteredBranch := AvailableFilterEdit.GetExistingBranch(Nil); // All items are top level.
|
||||
try
|
||||
for i:=0 to AvailableTreeView.Items.TopLvlCount-1 do
|
||||
begin
|
||||
@ -1175,7 +1182,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TInstallPkgSetDialog.AddToUninstall;
|
||||
procedure TInstallPkgSetDialog.AddToUninstall(Sender: TObject);
|
||||
|
||||
function SelectionOk(aPackageID: TLazPackageID): Boolean;
|
||||
var
|
||||
@ -1206,10 +1213,11 @@ var
|
||||
begin
|
||||
NewSelectedIndex:=-1;
|
||||
LastNonSelectedIndex:=-1;
|
||||
FilteredBranch := InstalledFilterEdit.GetExistingBranch(Nil); // All items are top level
|
||||
|
||||
Deletions:=TObjectList.Create(true);
|
||||
DeletedPkgNames:=TStringList.Create;
|
||||
DelPackageID:=TLazPackageID.Create;
|
||||
FilteredBranch := InstalledFilterEdit.GetExistingBranch(Nil); // All items are top level.
|
||||
try
|
||||
for i:=0 to InstallTreeView.Items.TopLvlCount-1 do begin
|
||||
TVNode:=InstallTreeView.Items.TopLvlItems[i];
|
||||
@ -1250,9 +1258,9 @@ begin
|
||||
// Don't call UpdateNewInstalledPackages here, only the selected nodes were removed.
|
||||
UpdateAvailablePackages;
|
||||
UpdateButtonStates;
|
||||
if ((NewSelectedIndex=-1) or (NewSelectedIndex=InstallTreeView.Items.TopLvlCount)) then
|
||||
if ((NewSelectedIndex<0) or (NewSelectedIndex=InstallTreeView.Items.TopLvlCount)) then
|
||||
NewSelectedIndex:=LastNonSelectedIndex;
|
||||
if NewSelectedIndex<>-1 then
|
||||
if NewSelectedIndex>=0 then
|
||||
InstallTreeView.Items.TopLvlItems[NewSelectedIndex].Selected:=True;
|
||||
InstalledFilterEdit.InvalidateFilter;
|
||||
finally
|
||||
|
@ -459,21 +459,12 @@ procedure TPkgManager.MainIDEitmPkgEditInstallPkgsClick(Sender: TObject);
|
||||
var
|
||||
RebuildIDE: Boolean;
|
||||
PkgIDList: TObjectList;
|
||||
Flags: TPkgInstallInIDEFlags;
|
||||
begin
|
||||
RebuildIDE:=false;
|
||||
PkgIDList:=nil;
|
||||
try
|
||||
if ShowEditInstallPkgsDialog(PackageGraph.FirstInstallDependency,
|
||||
PkgIDList,RebuildIDE)<>mrOk
|
||||
then exit;
|
||||
|
||||
Flags:=[piiifSkipChecks,piiifClear];
|
||||
if RebuildIDE then Include(Flags,piiifRebuildIDE);
|
||||
InstallPackages(PkgIDList,Flags);
|
||||
finally
|
||||
PkgIDList.Free;
|
||||
end;
|
||||
if ShowEditInstallPkgsDialog(PackageGraph.FirstInstallDependency, PkgIDList, RebuildIDE) then
|
||||
if RebuildIDE
|
||||
then InstallPackages(PkgIDList, [piiifSkipChecks, piiifClear, piiifRebuildIDE])
|
||||
else InstallPackages(PkgIDList, [piiifSkipChecks, piiifClear]);
|
||||
FreeThenNil(PkgIDList);
|
||||
end;
|
||||
|
||||
procedure TPkgManager.IDEComponentPaletteOpenPackage(Sender: TObject);
|
||||
|
Loading…
Reference in New Issue
Block a user