mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 03:48:08 +02:00
Packager: PkgVirtualUnitEditor redone. Issue #28172, patch from Alexey Torgashin.
git-svn-id: trunk@49162 -
This commit is contained in:
parent
7ec897ebf9
commit
89e577eda5
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -7676,7 +7676,6 @@ packager/pkggraphexplorer.pas svneol=native#text/pascal
|
||||
packager/pkglinksdlg.lfm svneol=native#text/plain
|
||||
packager/pkglinksdlg.pas svneol=native#text/plain
|
||||
packager/pkgmanager.pas svneol=native#text/pascal
|
||||
packager/pkgvirtualuniteditor.lfm svneol=native#text/plain
|
||||
packager/pkgvirtualuniteditor.pas svneol=native#text/pascal
|
||||
packager/projpackbase.pas svneol=native#text/pascal
|
||||
packager/registration/Makefile.compiled svneol=native#text/plain
|
||||
|
@ -1,137 +0,0 @@
|
||||
object EditVirtualUnitDialog: TEditVirtualUnitDialog
|
||||
Left = 346
|
||||
Height = 131
|
||||
Top = 254
|
||||
Width = 450
|
||||
Caption = 'EditVirtualUnitDialog'
|
||||
ClientHeight = 131
|
||||
ClientWidth = 450
|
||||
OnCreate = EditVirtualUnitDialogCreate
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '0.9.29'
|
||||
object FilenameLabel: TLabel
|
||||
Left = 8
|
||||
Height = 14
|
||||
Top = 24
|
||||
Width = 68
|
||||
Caption = 'FilenameLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object UnitnameLabel: TLabel
|
||||
Left = 8
|
||||
Height = 14
|
||||
Top = 64
|
||||
Width = 71
|
||||
Caption = 'UnitnameLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object FilenameEdit: TEdit
|
||||
Left = 96
|
||||
Height = 21
|
||||
Top = 18
|
||||
Width = 344
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
TabOrder = 0
|
||||
Text = 'FilenameEdit'
|
||||
end
|
||||
object UnitnameEdit: TEdit
|
||||
Left = 96
|
||||
Height = 21
|
||||
Top = 58
|
||||
Width = 128
|
||||
TabOrder = 1
|
||||
Text = 'UnitnameEdit'
|
||||
end
|
||||
object CancelButton: TBitBtn
|
||||
Left = 332
|
||||
Height = 25
|
||||
Top = 96
|
||||
Width = 101
|
||||
Caption = 'CancelButton'
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF003F3DED413B38EB08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00211FE3081E1CE241FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF004A47F0414F4CF2FF403EEDFD3C39EB08FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF002725E5082422E4FC312FEAFF1F1DE241FFFFFF00FFFFFF00FFFFFF005451
|
||||
F3415856F5FF6361FAFF5855F6FF413FEDFC3D3AEC08FFFFFF00FFFFFF00302D
|
||||
E7082C2AE6FC413FF1FF4C4AF6FF312FEAFF1F1DE241FFFFFF00FFFFFF005956
|
||||
F52B5B58F6FF6562FAFF7170FFFF5956F6FF4240EEFC3E3BEC083937EB083532
|
||||
E9FC4745F2FF6362FFFF4A48F4FF2F2DE9FF2220E32BFFFFFF00FFFFFF00FFFF
|
||||
FF005A57F52B5B59F6FF6663FAFF7471FFFF5A58F6FF4341EEFC3E3CECFD504D
|
||||
F4FF6867FFFF504EF5FF3634EBFF2A27E52BFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF005B58F62B5C5AF6FF6764FAFF7472FFFF7370FFFF706EFFFF6E6C
|
||||
FFFF5755F7FF3F3DEEFF3230E82BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF005C59F62B5D5BF7FF7976FFFF5956FFFF5754FFFF7270
|
||||
FFFF4846F0FF3C39EB2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00615EF8085D5AF6FD7D79FFFF5E5BFFFF5B58FFFF7674
|
||||
FFFF4643EFFD413FED08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF006967FB086663F9FC706DFBFF807EFFFF7E7BFFFF7C79FFFF7977
|
||||
FFFF5E5CF7FF4744EFFC4240EE08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00716EFD086E6BFCFC7774FDFF8682FFFF7673FCFF6462F8FF605DF7FF6D6A
|
||||
FAFF7B79FFFF605DF7FF4845EFFC4341EE08FFFFFF00FFFFFF00FFFFFF007673
|
||||
FF087471FEFD7D7AFEFF8A87FFFF7C79FDFF6C69FBFF6361F92B5F5CF72B615E
|
||||
F8FF6E6CFAFF7D7AFFFF615FF7FF4946F0FC4441EE05FFFFFF00FFFFFF007774
|
||||
FF1F7A77FFFF817EFFFF817EFEFF7471FDFF6C69FB2BFFFFFF00FFFFFF00605D
|
||||
F72B625FF8FF6F6DFBFF7E7CFFFF625FF8FF4A47F06F4542EE02FFFFFF00FFFF
|
||||
FF007774FF1F7A77FFFF7976FEFF726FFD2BFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00615EF82B6461F8FF6A68F9FF5451F3A84F4DF229FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF007774FF1F7774FF2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00625FF82B5D5BF76F5956F53EFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF006360F80AFFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
ModalResult = 2
|
||||
NumGlyphs = 0
|
||||
TabOrder = 2
|
||||
end
|
||||
object OkButton: TBitBtn
|
||||
Left = 200
|
||||
Height = 25
|
||||
Top = 96
|
||||
Width = 101
|
||||
Caption = 'OkButton'
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00317A360A2D753207FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF003985400A37833DFF317B37FB2E763307FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF004292490A408E47FF54A35CFF4F9F57FF327C38FE2E773408FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF004B9E530A499A51FF5BAC64FF77CA82FF74C87EFF51A059FF337D39FE2F78
|
||||
3508FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0053A9
|
||||
5C0A51A65AFF63B56DFF7ECE89FF7BCC87FF76CA81FF76C981FF52A25AFF347E
|
||||
3AFE30793508FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005AB4650959B0
|
||||
63FF6BBD76FF84D290FF7AC985FF60B26AFF63B46DFF78C983FF78CB82FF53A3
|
||||
5CFF347F3AFD317A3608FFFFFF00FFFFFF00FFFFFF00FFFFFF005EB969465BB5
|
||||
66E479C986FF80CE8DFF51A65AFC4DA1566F499C518B5CAD67FF7CCC86FF79CB
|
||||
85FF54A45DFF35803BFC317B3708FFFFFF00FFFFFF00FFFFFF00FFFFFF005FBA
|
||||
6A3C5CB666E66DC079FF55AC5F6FFFFFFF00FFFFFF004A9D52915EAE68FF7DCD
|
||||
89FF7CCD87FF56A55FFF36813CFC327C3808FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF005FBB6A435CB76765FFFFFF00FFFFFF00FFFFFF00FFFFFF004B9E53915FAF
|
||||
69FF7FCE8AFF7ECE89FF57A660FF37823DFC337D3908FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004B9F
|
||||
549160B06AFF81CF8DFF7FCF8BFF58A761FF398540FF347E3A08FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF004CA0559162B26CFF82D18FFF7AC885FF57A660FF38843F7BFFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF004DA1569163B36DFF5FAF69FF41914979FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF004EA257914A9D527FFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
NumGlyphs = 0
|
||||
OnClick = OkButtonClick
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
@ -38,60 +38,58 @@ unit PkgVirtualUnitEditor;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Buttons,
|
||||
StdCtrls, FileUtil, LazarusIDEStrConsts, PackageDefs;
|
||||
|
||||
type
|
||||
|
||||
{ TEditVirtualUnitDialog }
|
||||
|
||||
TEditVirtualUnitDialog = class(TForm)
|
||||
CancelButton: TBitBtn;
|
||||
FilenameEdit: TEdit;
|
||||
OkButton: TBitBtn;
|
||||
UnitnameEdit: TEdit;
|
||||
FilenameLabel: TLabel;
|
||||
UnitnameLabel: TLabel;
|
||||
procedure EditVirtualUnitDialogCreate(Sender: TObject);
|
||||
procedure OkButtonClick(Sender: TObject);
|
||||
private
|
||||
FPkgFile: TPkgFile;
|
||||
procedure SetPkgFile(const AValue: TPkgFile);
|
||||
public
|
||||
property PkgFile: TPkgFile read FPkgFile write SetPkgFile;
|
||||
end;
|
||||
Classes, SysUtils, Forms, Controls, PackageDefs;
|
||||
|
||||
function ShowEditVirtualPackageDialog(PkgFile: TPkgFile): TModalResult;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
uses
|
||||
Dialogs, FileUtil, LazarusIDEStrConsts;
|
||||
|
||||
type
|
||||
TDummyForClose = class
|
||||
public
|
||||
PkgFile: TPkgFile;
|
||||
procedure CloseEvent(Sender: TObject; const AValues: array of string;
|
||||
var ACanClose: boolean);
|
||||
end;
|
||||
|
||||
function ShowEditVirtualPackageDialog(PkgFile: TPkgFile): TModalResult;
|
||||
var
|
||||
EditVirtualUnitDialog: TEditVirtualUnitDialog;
|
||||
Str: array of string;
|
||||
Dummy: TDummyForClose;
|
||||
begin
|
||||
EditVirtualUnitDialog:=TEditVirtualUnitDialog.Create(nil);
|
||||
Result:= mrCancel;
|
||||
if not Assigned(PkgFile) then exit;
|
||||
|
||||
SetLength(Str, 2);
|
||||
Str[0]:= PkgFile.Filename;
|
||||
Str[1]:= PkgFile.Unit_Name;
|
||||
|
||||
Dummy:= TDummyForClose.Create;
|
||||
try
|
||||
EditVirtualUnitDialog.PkgFile:=PkgFile;
|
||||
Result:=EditVirtualUnitDialog.ShowModal;
|
||||
Dummy.PkgFile:= PkgFile;
|
||||
if not InputQuery(lisPVUEditVirtualUnit,
|
||||
[lisPEFilename, lisPEUnitname], Str, @Dummy.CloseEvent) then exit;
|
||||
finally
|
||||
EditVirtualUnitDialog.Free;
|
||||
FreeAndNil(Dummy);
|
||||
end;
|
||||
|
||||
if (PkgFile.Filename=Str[0]) and
|
||||
(PkgFile.Unit_name=Str[1]) then exit;
|
||||
|
||||
PkgFile.Filename:= Str[0];
|
||||
PkgFile.Unit_name:= Str[1];
|
||||
if Assigned(PkgFile.LazPackage) then
|
||||
PkgFile.LazPackage.Modified:= true;
|
||||
Result:= mrOk;
|
||||
end;
|
||||
|
||||
{ TEditVirtualUnitDialog }
|
||||
{ TDummyForClose }
|
||||
|
||||
procedure TEditVirtualUnitDialog.EditVirtualUnitDialogCreate(Sender: TObject);
|
||||
begin
|
||||
Caption:=lisPVUEditVirtualUnit;
|
||||
FilenameLabel.Caption:=lisPEFilename;
|
||||
UnitnameLabel.Caption:=lisPEUnitname;
|
||||
UnitnameEdit.Hint:=lisPVUTheUnitnameIsUsedWhenTheIDEExtendsUsesClauses;
|
||||
UnitnameEdit.ShowHint:=true;
|
||||
end;
|
||||
|
||||
procedure TEditVirtualUnitDialog.OkButtonClick(Sender: TObject);
|
||||
procedure TDummyForClose.CloseEvent(Sender: TObject; const AValues: array of string;
|
||||
var ACanClose: boolean);
|
||||
var
|
||||
NewFilename: String;
|
||||
NewUnitName: String;
|
||||
@ -99,8 +97,10 @@ var
|
||||
LazPackage: TLazPackage;
|
||||
ConflictUnit: TPkgFile;
|
||||
begin
|
||||
NewFilename:=FilenameEdit.Text;
|
||||
NewUnitName:=UnitnameEdit.Text;
|
||||
ACanClose:=false;
|
||||
NewFilename:=AValues[0];
|
||||
NewUnitName:=AValues[1];
|
||||
|
||||
if not FilenameIsPascalUnit(NewFilename) then begin
|
||||
MessageDlg(lisPEInvalidUnitFilename,
|
||||
lisPVUAPascalUnitMustHaveTheExtensionPpOrPas,
|
||||
@ -132,25 +132,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
// commit
|
||||
if (PkgFile.Filename<>NewFilename)
|
||||
or (PkgFile.Unit_name<>NewUnitName) then begin
|
||||
PkgFile.Filename:=NewFilename;
|
||||
PkgFile.Unit_name:=NewUnitName;
|
||||
if LazPackage<>nil then LazPackage.Modified:=true;
|
||||
end;
|
||||
|
||||
ModalResult:=mrOk;
|
||||
end;
|
||||
|
||||
procedure TEditVirtualUnitDialog.SetPkgFile(const AValue: TPkgFile);
|
||||
begin
|
||||
if FPkgFile=AValue then exit;
|
||||
FPkgFile:=AValue;
|
||||
if PkgFile<>nil then begin
|
||||
FilenameEdit.Text:=PkgFile.Filename;
|
||||
UnitnameEdit.Text:=PkgFile.Unit_Name;
|
||||
end;
|
||||
ACanClose:=true;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user