mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-03 11:20:23 +02:00
Opkman: Add the possibility to save the installed package list to file. Request by @garlar27.
git-svn-id: trunk@58054 -
This commit is contained in:
parent
6162834273
commit
687cdf6ff9
@ -179,8 +179,10 @@ resourcestring
|
||||
rsMainFrm_miSaveToFile = 'Save to file';
|
||||
rsMainFrm_miCopyToClpBrd = 'Copy to clipboard';
|
||||
rsMainFrm_miResetRating = 'Reset rating';
|
||||
rsMainFrm_miSaveChecks = 'Save checked packages';
|
||||
rsMainFrm_miLoadChecks = 'Load checked packages';
|
||||
rsMainFrm_miSave = 'Save packages';
|
||||
rsMainFrm_miSaveChecked = 'Checked';
|
||||
rsMainFrm_miLoadInstalled = 'Installed';
|
||||
rsMainFrm_miLoad = 'Load packages';
|
||||
rsMainFrm_PackagenameAlreadyExists = 'A package with the same name already exists!';
|
||||
rsMainFrm_PackageAlreadyInstalled = 'The following packages are already installed. Continue anyway?';
|
||||
rsMainFrm_PackageAlreadyDownloaded = 'The following repository packages already exist in the target folder. Continue?';
|
||||
@ -193,6 +195,7 @@ resourcestring
|
||||
rsMainFrm_rsMessageChangingRepository = 'Changing repository. Please wait...';
|
||||
rsMainFrm_rsMessageNoRepository0 = 'Remote package repository not configured.' + sLineBreak + 'Do you wish to configure it now?';
|
||||
rsMainFrm_rsMessageNothingChacked = 'Please check at least one package!';
|
||||
rsMainFrm_rsMessageNothingInstalled = 'No packages are installed. Please install at least one package first.';
|
||||
rsMainFrm_resMessageChecksSaved = '%s packages successfully saved to file!';
|
||||
rsMainFrm_resMessageChecksLoaded = '%s packages successfully loaded from file!';
|
||||
rsMainFrm_rsMessageError0 = 'Cannot download package list. Error message:';
|
||||
|
@ -520,13 +520,20 @@ object MainFrm: TMainFrm
|
||||
object miSep2: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object miSaveChecks: TMenuItem
|
||||
Caption = 'Save checks'
|
||||
OnClick = miSaveChecksClick
|
||||
object miSave: TMenuItem
|
||||
Caption = 'Save packages'
|
||||
object miSaveChecked: TMenuItem
|
||||
Caption = 'Checked'
|
||||
OnClick = miSaveCheckedClick
|
||||
end
|
||||
object miSaveInstalled: TMenuItem
|
||||
Caption = 'Installed'
|
||||
OnClick = miSaveInstalledClick
|
||||
end
|
||||
end
|
||||
object miLoadChecks: TMenuItem
|
||||
Caption = 'Load checks'
|
||||
OnClick = miLoadChecksClick
|
||||
object miLoad: TMenuItem
|
||||
Caption = 'Load packages'
|
||||
OnClick = miLoadClick
|
||||
end
|
||||
end
|
||||
object pmMemo: TPopupMenu
|
||||
|
@ -54,14 +54,16 @@ type
|
||||
cbPackageState: TComboBox;
|
||||
cbPackageType: TComboBox;
|
||||
imTBDis: TImageList;
|
||||
miSaveChecked: TMenuItem;
|
||||
miFromExteranlSource: TMenuItem;
|
||||
miFromRepository: TMenuItem;
|
||||
miSaveInstalled: TMenuItem;
|
||||
miSep2: TMenuItem;
|
||||
miSep3: TMenuItem;
|
||||
miSep1: TMenuItem;
|
||||
miCreateRepository: TMenuItem;
|
||||
miLoadChecks: TMenuItem;
|
||||
miSaveChecks: TMenuItem;
|
||||
miLoad: TMenuItem;
|
||||
miSave: TMenuItem;
|
||||
miDateDsc: TMenuItem;
|
||||
miDateAsc: TMenuItem;
|
||||
miNameDsc: TMenuItem;
|
||||
@ -116,10 +118,11 @@ type
|
||||
procedure miCreateRepositoryPackageClick(Sender: TObject);
|
||||
procedure miFromExteranlSourceClick(Sender: TObject);
|
||||
procedure miFromRepositoryClick(Sender: TObject);
|
||||
procedure miLoadChecksClick(Sender: TObject);
|
||||
procedure miLoadClick(Sender: TObject);
|
||||
procedure miNameAscClick(Sender: TObject);
|
||||
procedure miResetRatingClick(Sender: TObject);
|
||||
procedure miSaveChecksClick(Sender: TObject);
|
||||
procedure miSaveCheckedClick(Sender: TObject);
|
||||
procedure miSaveInstalledClick(Sender: TObject);
|
||||
procedure miSaveToFileClick(Sender: TObject);
|
||||
procedure pnToolBarResize(Sender: TObject);
|
||||
procedure tbCleanUpClick(Sender: TObject);
|
||||
@ -1114,7 +1117,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainFrm.miSaveChecksClick(Sender: TObject);
|
||||
procedure TMainFrm.miSaveCheckedClick(Sender: TObject);
|
||||
var
|
||||
Node: PVirtualNode;
|
||||
Data: PData;
|
||||
@ -1149,7 +1152,39 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainFrm.miLoadChecksClick(Sender: TObject);
|
||||
procedure TMainFrm.miSaveInstalledClick(Sender: TObject);
|
||||
var
|
||||
Node: PVirtualNode;
|
||||
Data: PData;
|
||||
SL: TStringList;
|
||||
begin
|
||||
SD.DefaultExt := '.*.opm';
|
||||
SD.Filter := '*.opm|*.opm';
|
||||
|
||||
SL := TStringList.Create;
|
||||
try
|
||||
Node := VisualTree.VST.GetFirst;
|
||||
while Node <> nil do
|
||||
begin
|
||||
Data := VisualTree.VST.GetNodeData(Node);
|
||||
if (Data^.DataType = 2) and (Data^.InstalledVersion <> '') then
|
||||
SL.Add(Data^.LazarusPackageName);
|
||||
Node := VisualTree.VST.GetNext(Node);
|
||||
end;
|
||||
if Trim(SL.Text) = '' then
|
||||
MessageDlgEx(rsMainFrm_rsMessageNothingInstalled, mtInformation, [mbOk], Self)
|
||||
else
|
||||
if SD.Execute then
|
||||
begin
|
||||
SL.SaveToFile(SD.FileName);
|
||||
MessageDlgEx(Format(rsMainFrm_resMessageChecksSaved, [IntToStr(SL.Count)]), mtInformation, [mbOk], Self)
|
||||
end;
|
||||
finally
|
||||
SL.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainFrm.miLoadClick(Sender: TObject);
|
||||
var
|
||||
SL: TStringList;
|
||||
I: Integer;
|
||||
@ -1333,9 +1368,10 @@ begin
|
||||
miSaveToFile.Caption := rsMainFrm_miSaveToFile;
|
||||
miCopyToClpBrd.Caption := rsMainFrm_miCopyToClpBrd;
|
||||
miResetRating.Caption := rsMainFrm_miResetRating;
|
||||
miSaveChecks.Caption := rsMainFrm_miSaveChecks;
|
||||
miLoadChecks.Caption := rsMainFrm_miLoadChecks;
|
||||
|
||||
miSave.Caption := rsMainFrm_miSave;
|
||||
miSaveChecked.Caption := rsMainFrm_miSaveChecked;
|
||||
miSaveInstalled.Caption := rsMainFrm_miLoadInstalled;
|
||||
miLoad.Caption := rsMainFrm_miLoad;
|
||||
edFilter.Hint := rsMainFrm_edFilter_Hint;
|
||||
spClear.Hint := rsMainFrm_spClear_Hint;
|
||||
cbFilterBy.Top := (pnTop.Height - cbFilterBy.Height) div 2;
|
||||
|
Loading…
Reference in New Issue
Block a user