mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-06 21:18:01 +02:00
IDE: package editor: menu item to show/delete missing files
git-svn-id: trunk@29011 -
This commit is contained in:
parent
c2a6229bf5
commit
a9ec713bf8
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -5492,6 +5492,8 @@ packager/globallinks/turbopoweriprodsgn-0.lpl svneol=native#text/plain
|
||||
packager/globallinks/weblaz-0.lpl svneol=native#text/plain
|
||||
packager/installpkgsetdlg.lfm svneol=native#text/plain
|
||||
packager/installpkgsetdlg.pas svneol=native#text/pascal
|
||||
packager/missingpkgfilesdlg.lfm svneol=native#text/plain
|
||||
packager/missingpkgfilesdlg.pas svneol=native#text/plain
|
||||
packager/openinstalledpkgdlg.lfm svneol=native#text/plain
|
||||
packager/openinstalledpkgdlg.pas svneol=native#text/pascal
|
||||
packager/packagedefs.pas svneol=native#text/pascal
|
||||
|
@ -7,7 +7,6 @@
|
||||
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||
<MainUnitHasCreateFormStatements Value="False"/>
|
||||
<MainUnitHasTitleStatement Value="False"/>
|
||||
<AlwaysBuild Value="False"/>
|
||||
<LRSInOutputDirectory Value="False"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InIDEConfig"/>
|
||||
@ -56,7 +55,7 @@
|
||||
<PackageName Value="SynEdit"/>
|
||||
</Item5>
|
||||
</RequiredPackages>
|
||||
<Units Count="76">
|
||||
<Units Count="77">
|
||||
<Unit0>
|
||||
<Filename Value="lazarus.pp"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -576,6 +575,13 @@
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="InspectChksumChangedDlg"/>
|
||||
</Unit75>
|
||||
<Unit76>
|
||||
<Filename Value="../packager/missingpkgfilesdlg.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MissingPkgFilesDialog"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="MissingPkgFilesDlg"/>
|
||||
</Unit76>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -3900,6 +3900,7 @@ resourcestring
|
||||
lisPckEditReAddFile = 'Re-Add file';
|
||||
lisPESortFiles = 'Sort files';
|
||||
lisPEFixFilesCase = 'Fix Files Case';
|
||||
lisPEShowMissingFiles = 'Show missing files';
|
||||
lisPckEditRemoveDependency = 'Remove dependency';
|
||||
lisPckEditMoveDependencyUp = 'Move dependency up';
|
||||
lisPckEditMoveDependencyDown = 'Move dependency down';
|
||||
@ -5117,6 +5118,9 @@ resourcestring
|
||||
lisDuplicateSourcesDeleteOneOrMakeSureAllSearchPathsH = 'Duplicate sources. '
|
||||
+'Delete one or make sure all search paths have correct order (Hint: FPC '
|
||||
+'uses last path first).';
|
||||
lisPEMissingFilesOfPackage = 'Missing files of package %s';
|
||||
lisPENoFilesMissingAllFilesExists = 'No files missing. All files exists.';
|
||||
lisPERemoveSelectedFiles = 'Remove selected files';
|
||||
|
||||
implementation
|
||||
|
||||
|
110
lcl/lclbase.lpk
110
lcl/lclbase.lpk
@ -14,6 +14,12 @@
|
||||
<Conditionals Value="if SrcOS<>'win' then
|
||||
UnitPath := 'nonwin32';"/>
|
||||
<Other>
|
||||
<Verbosity>
|
||||
<ShowNotes Value="False"/>
|
||||
<ShowHints Value="False"/>
|
||||
<ShowGenInfo Value="False"/>
|
||||
</Verbosity>
|
||||
<CustomOptions Value="$(IDEBuildOptions)"/>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
@ -22,7 +28,7 @@
|
||||
<License Value="modified LGPL-2
|
||||
"/>
|
||||
<Version Minor="9" Release="31"/>
|
||||
<Files Count="284">
|
||||
<Files Count="283">
|
||||
<Item1>
|
||||
<Filename Value="chart.pp"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
@ -1081,118 +1087,114 @@
|
||||
<Type Value="Include"/>
|
||||
</Item256>
|
||||
<Item257>
|
||||
<Filename Value="include/untabbednotebook.inc"/>
|
||||
<Filename Value="include/winapi.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item257>
|
||||
<Item258>
|
||||
<Filename Value="include/winapi.inc"/>
|
||||
<Filename Value="include/winapih.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item258>
|
||||
<Item259>
|
||||
<Filename Value="include/winapih.inc"/>
|
||||
<Filename Value="include/wincontrol.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item259>
|
||||
<Item260>
|
||||
<Filename Value="include/wincontrol.inc"/>
|
||||
<Filename Value="include/winfileutil.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item260>
|
||||
<Item261>
|
||||
<Filename Value="include/winfileutil.inc"/>
|
||||
<Type Value="Include"/>
|
||||
</Item261>
|
||||
<Item262>
|
||||
<Filename Value="nonwin32/messages.pp"/>
|
||||
<AddToUsesPkgSection Value="False"/>
|
||||
<UnitName Value="Messages"/>
|
||||
</Item262>
|
||||
<Item263>
|
||||
</Item261>
|
||||
<Item262>
|
||||
<Filename Value="widgetset/wsarrow.pp"/>
|
||||
<UnitName Value="WSArrow"/>
|
||||
</Item263>
|
||||
<Item264>
|
||||
</Item262>
|
||||
<Item263>
|
||||
<Filename Value="widgetset/wsbuttons.pp"/>
|
||||
<UnitName Value="WSButtons"/>
|
||||
</Item264>
|
||||
<Item265>
|
||||
</Item263>
|
||||
<Item264>
|
||||
<Filename Value="widgetset/wscalendar.pp"/>
|
||||
<UnitName Value="WSCalendar"/>
|
||||
</Item265>
|
||||
<Item266>
|
||||
</Item264>
|
||||
<Item265>
|
||||
<Filename Value="widgetset/wschecklst.pp"/>
|
||||
<UnitName Value="WSCheckLst"/>
|
||||
</Item266>
|
||||
<Item267>
|
||||
</Item265>
|
||||
<Item266>
|
||||
<Filename Value="widgetset/wscomctrls.pp"/>
|
||||
<UnitName Value="WSComCtrls"/>
|
||||
</Item267>
|
||||
<Item268>
|
||||
</Item266>
|
||||
<Item267>
|
||||
<Filename Value="widgetset/wscontrols.pp"/>
|
||||
<UnitName Value="WSControls"/>
|
||||
</Item268>
|
||||
<Item269>
|
||||
</Item267>
|
||||
<Item268>
|
||||
<Filename Value="widgetset/wsdesigner.pp"/>
|
||||
<UnitName Value="WSDesigner"/>
|
||||
</Item269>
|
||||
<Item270>
|
||||
</Item268>
|
||||
<Item269>
|
||||
<Filename Value="widgetset/wsdialogs.pp"/>
|
||||
<UnitName Value="WSDialogs"/>
|
||||
</Item270>
|
||||
<Item271>
|
||||
</Item269>
|
||||
<Item270>
|
||||
<Filename Value="widgetset/wsextctrls.pp"/>
|
||||
<UnitName Value="WSExtCtrls"/>
|
||||
</Item271>
|
||||
<Item272>
|
||||
</Item270>
|
||||
<Item271>
|
||||
<Filename Value="widgetset/wsextdlgs.pp"/>
|
||||
<UnitName Value="WSExtDlgs"/>
|
||||
</Item272>
|
||||
<Item273>
|
||||
</Item271>
|
||||
<Item272>
|
||||
<Filename Value="widgetset/wsfactory.pas"/>
|
||||
<UnitName Value="WSFactory"/>
|
||||
</Item273>
|
||||
<Item274>
|
||||
</Item272>
|
||||
<Item273>
|
||||
<Filename Value="widgetset/wsforms.pp"/>
|
||||
<UnitName Value="WSForms"/>
|
||||
</Item274>
|
||||
<Item275>
|
||||
</Item273>
|
||||
<Item274>
|
||||
<Filename Value="widgetset/wsgrids.pp"/>
|
||||
<UnitName Value="WSGrids"/>
|
||||
</Item275>
|
||||
<Item276>
|
||||
</Item274>
|
||||
<Item275>
|
||||
<Filename Value="widgetset/wsimglist.pp"/>
|
||||
<UnitName Value="WSImgList"/>
|
||||
</Item276>
|
||||
<Item277>
|
||||
</Item275>
|
||||
<Item276>
|
||||
<Filename Value="widgetset/wslclclasses.pp"/>
|
||||
<UnitName Value="WSLCLClasses"/>
|
||||
</Item277>
|
||||
<Item278>
|
||||
</Item276>
|
||||
<Item277>
|
||||
<Filename Value="widgetset/wsmenus.pp"/>
|
||||
<UnitName Value="WSMenus"/>
|
||||
</Item278>
|
||||
<Item279>
|
||||
</Item277>
|
||||
<Item278>
|
||||
<Filename Value="widgetset/wspairsplitter.pp"/>
|
||||
<UnitName Value="WSPairSplitter"/>
|
||||
</Item279>
|
||||
<Item280>
|
||||
</Item278>
|
||||
<Item279>
|
||||
<Filename Value="widgetset/wsproc.pp"/>
|
||||
<UnitName Value="WSProc"/>
|
||||
</Item280>
|
||||
<Item281>
|
||||
</Item279>
|
||||
<Item280>
|
||||
<Filename Value="widgetset/wsreferences.pp"/>
|
||||
<UnitName Value="WSReferences"/>
|
||||
</Item281>
|
||||
<Item282>
|
||||
</Item280>
|
||||
<Item281>
|
||||
<Filename Value="widgetset/wsspin.pp"/>
|
||||
<UnitName Value="WSSpin"/>
|
||||
</Item282>
|
||||
<Item283>
|
||||
</Item281>
|
||||
<Item282>
|
||||
<Filename Value="widgetset/wsstdctrls.pp"/>
|
||||
<UnitName Value="WSStdCtrls"/>
|
||||
</Item283>
|
||||
<Item284>
|
||||
</Item282>
|
||||
<Item283>
|
||||
<Filename Value="widgetset/wstoolwin.pp"/>
|
||||
<UnitName Value="WSToolwin"/>
|
||||
</Item284>
|
||||
</Item283>
|
||||
</Files>
|
||||
<i18n>
|
||||
<EnableI18N Value="True"/>
|
||||
|
40
packager/missingpkgfilesdlg.lfm
Normal file
40
packager/missingpkgfilesdlg.lfm
Normal file
@ -0,0 +1,40 @@
|
||||
object MissingPkgFilesDialog: TMissingPkgFilesDialog
|
||||
Left = 300
|
||||
Height = 382
|
||||
Top = 281
|
||||
Width = 477
|
||||
Caption = 'MissingPkgFilesDialog'
|
||||
ClientHeight = 382
|
||||
ClientWidth = 477
|
||||
OnCreate = FormCreate
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '0.9.31'
|
||||
object ButtonPanel1: TButtonPanel
|
||||
Left = 6
|
||||
Height = 42
|
||||
Top = 334
|
||||
Width = 465
|
||||
OKButton.Name = 'OKButton'
|
||||
OKButton.Caption = '&OK'
|
||||
HelpButton.Name = 'HelpButton'
|
||||
HelpButton.Caption = '&Help'
|
||||
HelpButton.Enabled = False
|
||||
CloseButton.Name = 'CloseButton'
|
||||
CloseButton.Caption = '&Close'
|
||||
CloseButton.Enabled = False
|
||||
CancelButton.Name = 'CancelButton'
|
||||
CancelButton.Caption = 'Cancel'
|
||||
TabOrder = 0
|
||||
ShowButtons = [pbOK, pbCancel]
|
||||
end
|
||||
object FilesTreeView: TTreeView
|
||||
Left = 6
|
||||
Height = 322
|
||||
Top = 6
|
||||
Width = 465
|
||||
Align = alClient
|
||||
BorderSpacing.Around = 6
|
||||
DefaultItemHeight = 19
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
131
packager/missingpkgfilesdlg.pas
Normal file
131
packager/missingpkgfilesdlg.pas
Normal file
@ -0,0 +1,131 @@
|
||||
{
|
||||
***************************************************************************
|
||||
* *
|
||||
* This source is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This code is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* General Public License for more details. *
|
||||
* *
|
||||
* A copy of the GNU General Public License is available on the World *
|
||||
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
||||
* obtain it by writing to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
* *
|
||||
***************************************************************************
|
||||
}
|
||||
unit MissingPkgFilesDlg;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel,
|
||||
ComCtrls, FileProcs,
|
||||
PackageDefs, LazarusIDEStrConsts;
|
||||
|
||||
type
|
||||
|
||||
{ TMissingPkgFilesDialog }
|
||||
|
||||
TMissingPkgFilesDialog = class(TForm)
|
||||
ButtonPanel1: TButtonPanel;
|
||||
FilesTreeView: TTreeView;
|
||||
procedure ButtonPanel1Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
private
|
||||
FLazPackage: TLazPackage;
|
||||
procedure SetLazPackage(const AValue: TLazPackage);
|
||||
procedure UpdateFilesList;
|
||||
public
|
||||
property LazPackage: TLazPackage read FLazPackage write SetLazPackage;
|
||||
end;
|
||||
|
||||
function ShowMissingPkgFilesDialog(APackage: TLazPackage): TModalResult;
|
||||
|
||||
implementation
|
||||
|
||||
function ShowMissingPkgFilesDialog(APackage: TLazPackage): TModalResult;
|
||||
var
|
||||
Dlg: TMissingPkgFilesDialog;
|
||||
begin
|
||||
Dlg:=TMissingPkgFilesDialog.Create(nil);
|
||||
try
|
||||
Dlg.LazPackage:=APackage;
|
||||
Result:=Dlg.ShowModal;
|
||||
finally
|
||||
Dlg.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
{ TMissingPkgFilesDialog }
|
||||
|
||||
procedure TMissingPkgFilesDialog.FormCreate(Sender: TObject);
|
||||
begin
|
||||
ButtonPanel1.OKButton.OnClick:=@ButtonPanel1Click;
|
||||
end;
|
||||
|
||||
procedure TMissingPkgFilesDialog.ButtonPanel1Click(Sender: TObject);
|
||||
begin
|
||||
if LazPackage<>nil then
|
||||
LazPackage.RemoveNonExistingFiles;
|
||||
end;
|
||||
|
||||
procedure TMissingPkgFilesDialog.SetLazPackage(const AValue: TLazPackage);
|
||||
begin
|
||||
if FLazPackage=AValue then exit;
|
||||
FLazPackage:=AValue;
|
||||
if LazPackage<>nil then
|
||||
Caption:=Format(lisPEMissingFilesOfPackage, [LazPackage.IDAsString]);
|
||||
UpdateFilesList;
|
||||
end;
|
||||
|
||||
procedure TMissingPkgFilesDialog.UpdateFilesList;
|
||||
var
|
||||
i: Integer;
|
||||
j: Integer;
|
||||
PkgFile: TPkgFile;
|
||||
RealFilename: String;
|
||||
s: String;
|
||||
begin
|
||||
FilesTreeView.BeginUpdate;
|
||||
i:=0;
|
||||
if LazPackage<>nil then begin
|
||||
for j:=0 to LazPackage.FileCount-1 do begin
|
||||
PkgFile:=LazPackage.Files[j];
|
||||
RealFilename:=PkgFile.GetResolvedFilename;
|
||||
if (RealFilename<>'') and FileExistsCached(RealFilename) then continue;
|
||||
s:=PkgFile.Filename;
|
||||
if FilesTreeView.Items.TopLvlCount>i then
|
||||
FilesTreeView.Items.TopLvlItems[i].Text:=s
|
||||
else
|
||||
FilesTreeView.Items.Add(nil,s);
|
||||
inc(i);
|
||||
end;
|
||||
end;
|
||||
if i=0 then begin
|
||||
s:=lisPENoFilesMissingAllFilesExists;
|
||||
if FilesTreeView.Items.TopLvlCount>i then
|
||||
FilesTreeView.Items.TopLvlItems[i].Text:=s
|
||||
else
|
||||
FilesTreeView.Items.Add(nil,s);
|
||||
end;
|
||||
while FilesTreeView.Items.TopLvlCount>i do
|
||||
FilesTreeView.Items.TopLvlItems[FilesTreeView.Items.TopLvlCount-1].Free;
|
||||
FilesTreeView.EndUpdate;
|
||||
if i>0 then begin
|
||||
ButtonPanel1.OKButton.Caption:=lisPERemoveSelectedFiles;
|
||||
end else begin
|
||||
ButtonPanel1.OKButton.Caption:=lisLazBuildOk;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -707,9 +707,9 @@ type
|
||||
function AddRemovedFile(const NewFilename, NewUnitName: string;
|
||||
NewFileType: TPkgFileType; NewFlags: TPkgFileFlags;
|
||||
CompPriorityCat: TComponentPriorityCategory): TPkgFile;
|
||||
procedure RemoveFile(PkgFile: TPkgFile);
|
||||
procedure UnremovePkgFile(PkgFile: TPkgFile);
|
||||
procedure RemoveNonExistingFiles;
|
||||
procedure RemoveFile(PkgFile: TPkgFile); // move file to removed file list
|
||||
procedure UnremovePkgFile(PkgFile: TPkgFile); // move file back to file list
|
||||
function RemoveNonExistingFiles: boolean; // true if something changed
|
||||
function GetFileDialogInitialDir(const DefaultDirectory: string): string;
|
||||
procedure MoveFile(CurIndex, NewIndex: integer);
|
||||
procedure SortFiles;
|
||||
@ -3117,15 +3117,21 @@ begin
|
||||
PkgFile.Removed:=false;
|
||||
end;
|
||||
|
||||
procedure TLazPackage.RemoveNonExistingFiles;
|
||||
function TLazPackage.RemoveNonExistingFiles: boolean;
|
||||
var
|
||||
i: Integer;
|
||||
AFilename: String;
|
||||
begin
|
||||
Result:=false;
|
||||
i:=FileCount-1;
|
||||
while i>=0 do begin
|
||||
if i>=FileCount then continue;
|
||||
if not FileExistsCached(Files[i].Filename) then
|
||||
AFilename:=Files[i].GetResolvedFilename;
|
||||
if (AFilename='') or (not FileExistsCached(Files[i].Filename)) then
|
||||
begin
|
||||
RemoveFile(Files[i]);
|
||||
Result:=true;
|
||||
end;
|
||||
dec(i);
|
||||
end;
|
||||
end;
|
||||
|
@ -47,7 +47,7 @@ uses
|
||||
MainIntf, IDEProcs, LazConf, LazarusIDEStrConsts, IDEOptionDefs, IDEDefs,
|
||||
IDEContextHelpEdit, CompilerOptions, CompilerOptionsDlg, ComponentReg,
|
||||
PackageDefs, PkgOptionsDlg, AddToPackageDlg, PkgVirtualUnitEditor,
|
||||
PackageSystem;
|
||||
MissingPkgFilesDlg, PackageSystem;
|
||||
|
||||
const
|
||||
PackageEditorMenuRootName = 'PackageEditor';
|
||||
@ -72,6 +72,7 @@ var
|
||||
|
||||
PkgEditMenuSortFiles: TIDEMenuCommand;
|
||||
PkgEditMenuFixFilesCase: TIDEMenuCommand;
|
||||
PkgEditMenuShowMissingFiles: TIDEMenuCommand;
|
||||
|
||||
PkgEditMenuAddToProject: TIDEMenuCommand;
|
||||
PkgEditMenuInstall: TIDEMenuCommand;
|
||||
@ -185,6 +186,7 @@ type
|
||||
procedure FilesTreeViewKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure FilesTreeViewSelectionChanged(Sender: TObject);
|
||||
procedure FixFilesCaseMenuItemClick(Sender: TObject);
|
||||
procedure ShowMissingFilesMenuItemClick(Sender: TObject);
|
||||
procedure HelpBitBtnClick(Sender: TObject);
|
||||
procedure InstallClick(Sender: TObject);
|
||||
procedure MaxVersionEditChange(Sender: TObject);
|
||||
@ -248,6 +250,7 @@ type
|
||||
destructor Destroy; override;
|
||||
procedure DoCompile(CompileClean, CompileRequired: boolean);
|
||||
procedure DoFixFilesCase;
|
||||
procedure DoShowMissingFiles;
|
||||
procedure DoMoveCurrentFile(Offset: integer);
|
||||
procedure DoPublishProject;
|
||||
procedure DoEditVirtualUnit;
|
||||
@ -413,6 +416,7 @@ begin
|
||||
AParent:=PkgEditMenuSectionFiles;
|
||||
PkgEditMenuSortFiles:=RegisterIDEMenuCommand(AParent,'Sort Files',lisPESortFiles);
|
||||
PkgEditMenuFixFilesCase:=RegisterIDEMenuCommand(AParent,'Fix Files Case',lisPEFixFilesCase);
|
||||
PkgEditMenuShowMissingFiles:=RegisterIDEMenuCommand(AParent, 'Show Missing Files', lisPEShowMissingFiles);
|
||||
|
||||
// register the section for using the package
|
||||
PkgEditMenuSectionUse:=RegisterIDEMenuSection(PackageEditorMenuRoot,'Use');
|
||||
@ -577,6 +581,7 @@ begin
|
||||
end;
|
||||
SetItem(PkgEditMenuSortFiles,@SortFilesMenuItemClick,(LazPackage.FileCount>1),Writable);
|
||||
SetItem(PkgEditMenuFixFilesCase,@FixFilesCaseMenuItemClick,(LazPackage.FileCount>1),Writable);
|
||||
SetItem(PkgEditMenuShowMissingFiles,@ShowMissingFilesMenuItemClick,(LazPackage.FileCount>1),Writable);
|
||||
|
||||
if CurDependency<>nil then begin
|
||||
PkgEditMenuSectionDependency.Visible:=true;
|
||||
@ -954,6 +959,11 @@ begin
|
||||
DoFixFilesCase;
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.ShowMissingFilesMenuItemClick(Sender: TObject);
|
||||
begin
|
||||
DoShowMissingFiles;
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.UninstallClick(Sender: TObject);
|
||||
begin
|
||||
PackageEditors.UninstallPackage(LazPackage);
|
||||
@ -2164,6 +2174,11 @@ begin
|
||||
UpdateButtons;
|
||||
end;
|
||||
|
||||
procedure TPackageEditorForm.DoShowMissingFiles;
|
||||
begin
|
||||
ShowMissingPkgFilesDialog(LazPackage);
|
||||
end;
|
||||
|
||||
constructor TPackageEditorForm.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
|
Loading…
Reference in New Issue
Block a user