Packager: PkgVirtualUnitEditor redone. Issue #28172, patch from Alexey Torgashin.

git-svn-id: trunk@49162 -
This commit is contained in:
juha 2015-05-24 22:05:23 +00:00
parent 7ec897ebf9
commit 89e577eda5
3 changed files with 42 additions and 198 deletions

1
.gitattributes vendored
View File

@ -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

View File

@ -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

View File

@ -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.