mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-16 20:40:37 +01:00
ide: implement "Open unit" dialog
git-svn-id: trunk@52272 -
This commit is contained in:
parent
fd5482a304
commit
b04af8ad35
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -6119,6 +6119,7 @@ images/actions/laz_edit.png -text svneol=unset#image/png
|
|||||||
images/actions/laz_export.png -text svneol=unset#image/png
|
images/actions/laz_export.png -text svneol=unset#image/png
|
||||||
images/actions/laz_highlighter.png -text svneol=unset#image/png
|
images/actions/laz_highlighter.png -text svneol=unset#image/png
|
||||||
images/actions/laz_open.png -text svneol=unset#image/png
|
images/actions/laz_open.png -text svneol=unset#image/png
|
||||||
|
images/actions/laz_openunit.png -text
|
||||||
images/actions/laz_refresh.png -text svneol=unset#image/png
|
images/actions/laz_refresh.png -text svneol=unset#image/png
|
||||||
images/actions/laz_save.png -text svneol=unset#image/png
|
images/actions/laz_save.png -text svneol=unset#image/png
|
||||||
images/actions/laz_set_color_default.png -text svneol=unset#image/png
|
images/actions/laz_set_color_default.png -text svneol=unset#image/png
|
||||||
|
|||||||
@ -168,6 +168,7 @@ const
|
|||||||
ecCleanDirectory = ecFirstLazarus + 212;
|
ecCleanDirectory = ecFirstLazarus + 212;
|
||||||
ecRestart = ecFirstLazarus + 213;
|
ecRestart = ecFirstLazarus + 213;
|
||||||
ecQuit = ecFirstLazarus + 214;
|
ecQuit = ecFirstLazarus + 214;
|
||||||
|
ecOpenUnit = ecFirstLazarus + 215;
|
||||||
|
|
||||||
// IDE navigation
|
// IDE navigation
|
||||||
ecToggleFormUnit = ecFirstLazarus + 301;
|
ecToggleFormUnit = ecFirstLazarus + 301;
|
||||||
|
|||||||
@ -492,6 +492,7 @@ begin
|
|||||||
ecNewUnit : Result:= lisMenuNewUnit;
|
ecNewUnit : Result:= lisMenuNewUnit;
|
||||||
ecNewForm : Result:= lisMenuNewForm;
|
ecNewForm : Result:= lisMenuNewForm;
|
||||||
ecOpen : Result:= lisMenuOpen;
|
ecOpen : Result:= lisMenuOpen;
|
||||||
|
ecOpenUnit : Result:= lisMenuOpenUnit;
|
||||||
ecRevert : Result:= lisMenuRevert;
|
ecRevert : Result:= lisMenuRevert;
|
||||||
ecSave : Result:= lisSave;
|
ecSave : Result:= lisSave;
|
||||||
ecSaveAs : Result:= lisMenuSaveAs;
|
ecSaveAs : Result:= lisMenuSaveAs;
|
||||||
@ -1229,6 +1230,7 @@ begin
|
|||||||
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
|
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecNewForm: SetSingle(VK_UNKNOWN,[]);
|
ecNewForm: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecOpen: SetSingle(VK_O,[XCtrl]);
|
ecOpen: SetSingle(VK_O,[XCtrl]);
|
||||||
|
ecOpenUnit: SetSingle(VK_F12,[ssAlt]);
|
||||||
ecRevert: SetSingle(VK_UNKNOWN,[]);
|
ecRevert: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecSave: SetSingle(VK_S,[XCtrl]);
|
ecSave: SetSingle(VK_S,[XCtrl]);
|
||||||
ecSaveAs: SetSingle(VK_UNKNOWN,[]);
|
ecSaveAs: SetSingle(VK_UNKNOWN,[]);
|
||||||
@ -1668,6 +1670,7 @@ begin
|
|||||||
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
|
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecNewForm: SetSingle(VK_UNKNOWN,[]);
|
ecNewForm: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecOpen: SetSingle(VK_F3,[]);
|
ecOpen: SetSingle(VK_F3,[]);
|
||||||
|
ecOpenUnit: SetSingle(VK_F12,[ssAlt]);
|
||||||
ecRevert: SetSingle(VK_UNKNOWN,[]);
|
ecRevert: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecSave: SetSingle(VK_F2,[]);
|
ecSave: SetSingle(VK_F2,[]);
|
||||||
ecSaveAs: SetSingle(VK_UNKNOWN,[]);
|
ecSaveAs: SetSingle(VK_UNKNOWN,[]);
|
||||||
@ -2289,6 +2292,7 @@ begin
|
|||||||
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
|
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecNewForm: SetSingle(VK_UNKNOWN,[]);
|
ecNewForm: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecOpen: SetSingle(VK_O,[ssMeta]);
|
ecOpen: SetSingle(VK_O,[ssMeta]);
|
||||||
|
ecOpenUnit: SetSingle(VK_F12,[ssAlt]);
|
||||||
ecRevert: SetSingle(VK_UNKNOWN,[]);
|
ecRevert: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecSave: SetSingle(VK_S,[ssMeta]);
|
ecSave: SetSingle(VK_S,[ssMeta]);
|
||||||
ecSaveAs: SetSingle(VK_S,[ssMeta,ssShift]);
|
ecSaveAs: SetSingle(VK_S,[ssMeta,ssShift]);
|
||||||
@ -2972,6 +2976,7 @@ begin
|
|||||||
AddDefault(C, 'NewUnit', lisKMNewUnit, ecNewUnit);
|
AddDefault(C, 'NewUnit', lisKMNewUnit, ecNewUnit);
|
||||||
AddDefault(C, 'NewForm', lisMenuNewForm, ecNewForm);
|
AddDefault(C, 'NewForm', lisMenuNewForm, ecNewForm);
|
||||||
AddDefault(C, 'Open', lisOpen, ecOpen);
|
AddDefault(C, 'Open', lisOpen, ecOpen);
|
||||||
|
AddDefault(C, 'OpenUnit', lisOpenUnit, ecOpenUnit);
|
||||||
AddDefault(C, 'Revert', lisMenuRevert, ecRevert);
|
AddDefault(C, 'Revert', lisMenuRevert, ecRevert);
|
||||||
AddDefault(C, 'Save', lisSave, ecSave);
|
AddDefault(C, 'Save', lisSave, ecSave);
|
||||||
AddDefault(C, 'SaveAs', lisKMSaveAs, ecSaveAs);
|
AddDefault(C, 'SaveAs', lisKMSaveAs, ecSaveAs);
|
||||||
|
|||||||
@ -67,6 +67,7 @@ resourcestring
|
|||||||
lisDlgEdit = 'Edit ...';
|
lisDlgEdit = 'Edit ...';
|
||||||
lisClear = 'Clear';
|
lisClear = 'Clear';
|
||||||
lisOpen = 'Open';
|
lisOpen = 'Open';
|
||||||
|
lisOpenUnit = 'Open Unit';
|
||||||
lisSave = 'Save';
|
lisSave = 'Save';
|
||||||
lisDlgSave = 'Save ...';
|
lisDlgSave = 'Save ...';
|
||||||
lisSaveAs = 'Save As';
|
lisSaveAs = 'Save As';
|
||||||
@ -294,6 +295,7 @@ resourcestring
|
|||||||
lisMenuNewForm = 'New Form';
|
lisMenuNewForm = 'New Form';
|
||||||
lisMenuNewOther = 'New ...';
|
lisMenuNewOther = 'New ...';
|
||||||
lisMenuOpen = '&Open ...';
|
lisMenuOpen = '&Open ...';
|
||||||
|
lisMenuOpenUnit = 'Open Unit...';
|
||||||
lisMenuRevert = 'Revert';
|
lisMenuRevert = 'Revert';
|
||||||
lisPESavePackageAs = 'Save Package As ...';
|
lisPESavePackageAs = 'Save Package As ...';
|
||||||
lisPkgEditPublishPackage = 'Publish Package';
|
lisPkgEditPublishPackage = 'Publish Package';
|
||||||
|
|||||||
16
ide/main.pp
16
ide/main.pp
@ -195,6 +195,7 @@ type
|
|||||||
procedure mnuNewFormClicked(Sender: TObject);
|
procedure mnuNewFormClicked(Sender: TObject);
|
||||||
procedure mnuNewOtherClicked(Sender: TObject);
|
procedure mnuNewOtherClicked(Sender: TObject);
|
||||||
procedure mnuOpenClicked(Sender: TObject);
|
procedure mnuOpenClicked(Sender: TObject);
|
||||||
|
procedure mnuOpenUnitClicked(Sender: TObject);
|
||||||
procedure mnuOpenRecentClicked(Sender: TObject); override;
|
procedure mnuOpenRecentClicked(Sender: TObject); override;
|
||||||
procedure mnuRevertClicked(Sender: TObject);
|
procedure mnuRevertClicked(Sender: TObject);
|
||||||
procedure mnuSaveClicked(Sender: TObject);
|
procedure mnuSaveClicked(Sender: TObject);
|
||||||
@ -898,7 +899,7 @@ type
|
|||||||
function DoShowAbstractMethods: TModalResult;
|
function DoShowAbstractMethods: TModalResult;
|
||||||
function DoRemoveEmptyMethods: TModalResult;
|
function DoRemoveEmptyMethods: TModalResult;
|
||||||
function DoRemoveUnusedUnits: TModalResult;
|
function DoRemoveUnusedUnits: TModalResult;
|
||||||
function DoUseUnit: TModalResult;
|
function DoUseUnitDlg(DlgType: TUseUnitDialogType): TModalResult;
|
||||||
function DoFindOverloads: TModalResult;
|
function DoFindOverloads: TModalResult;
|
||||||
function DoInitIdentCompletion(JumpToError: boolean): boolean;
|
function DoInitIdentCompletion(JumpToError: boolean): boolean;
|
||||||
function DoShowCodeContext(JumpToError: boolean): boolean;
|
function DoShowCodeContext(JumpToError: boolean): boolean;
|
||||||
@ -2570,6 +2571,7 @@ begin
|
|||||||
itmFileNewForm.OnClick := @mnuNewFormClicked;
|
itmFileNewForm.OnClick := @mnuNewFormClicked;
|
||||||
itmFileNewOther.OnClick := @mnuNewOtherClicked;
|
itmFileNewOther.OnClick := @mnuNewOtherClicked;
|
||||||
itmFileOpen.OnClick := @mnuOpenClicked;
|
itmFileOpen.OnClick := @mnuOpenClicked;
|
||||||
|
itmFileOpenUnit.OnClick := @mnuOpenUnitClicked;
|
||||||
itmFileRevert.OnClick := @mnuRevertClicked;
|
itmFileRevert.OnClick := @mnuRevertClicked;
|
||||||
SetRecentFilesMenu;
|
SetRecentFilesMenu;
|
||||||
itmFileSave.OnClick := @mnuSaveClicked;
|
itmFileSave.OnClick := @mnuSaveClicked;
|
||||||
@ -2993,6 +2995,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainIDE.mnuOpenUnitClicked(Sender: TObject);
|
||||||
|
begin
|
||||||
|
DoSourceEditorCommand(ecOpenUnit);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.mnuRevertClicked(Sender: TObject);
|
procedure TMainIDE.mnuRevertClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if (SourceEditorManager.ActiveSourceWindowIndex < 0)
|
if (SourceEditorManager.ActiveSourceWindowIndex < 0)
|
||||||
@ -3231,6 +3238,7 @@ begin
|
|||||||
mnuSaveClicked(Self);
|
mnuSaveClicked(Self);
|
||||||
end;
|
end;
|
||||||
ecOpen: mnuOpenClicked(Self);
|
ecOpen: mnuOpenClicked(Self);
|
||||||
|
ecOpenUnit: DoUseUnitDlg(udOpenUnit);
|
||||||
ecSaveAll: DoSaveAll([sfCheckAmbiguousFiles]);
|
ecSaveAll: DoSaveAll([sfCheckAmbiguousFiles]);
|
||||||
ecQuit: mnuQuitClicked(Self);
|
ecQuit: mnuQuitClicked(Self);
|
||||||
ecCompile:
|
ecCompile:
|
||||||
@ -3277,7 +3285,7 @@ begin
|
|||||||
ecShowAbstractMethods: DoShowAbstractMethods;
|
ecShowAbstractMethods: DoShowAbstractMethods;
|
||||||
ecRemoveEmptyMethods: DoRemoveEmptyMethods;
|
ecRemoveEmptyMethods: DoRemoveEmptyMethods;
|
||||||
ecRemoveUnusedUnits: DoRemoveUnusedUnits;
|
ecRemoveUnusedUnits: DoRemoveUnusedUnits;
|
||||||
ecUseUnit: DoUseUnit;
|
ecUseUnit: DoUseUnitDlg(udUseUnit);
|
||||||
ecFindOverloads: DoFindOverloads;
|
ecFindOverloads: DoFindOverloads;
|
||||||
ecFindBlockOtherEnd: DoGoToPascalBlockOtherEnd;
|
ecFindBlockOtherEnd: DoGoToPascalBlockOtherEnd;
|
||||||
ecFindBlockStart: DoGoToPascalBlockStart;
|
ecFindBlockStart: DoGoToPascalBlockStart;
|
||||||
@ -10067,7 +10075,7 @@ begin
|
|||||||
Result:=ShowUnusedUnitsDialog;
|
Result:=ShowUnusedUnitsDialog;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoUseUnit: TModalResult;
|
function TMainIDE.DoUseUnitDlg(DlgType: TUseUnitDialogType): TModalResult;
|
||||||
var
|
var
|
||||||
TempEditor: TSourceEditorInterface;
|
TempEditor: TSourceEditorInterface;
|
||||||
DefText: String;
|
DefText: String;
|
||||||
@ -10084,7 +10092,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Result:=ShowUseUnitDialog(DefText);
|
Result:=ShowUseUnitDialog(DefText, DlgType);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoFindOverloads: TModalResult;
|
function TMainIDE.DoFindOverloads: TModalResult;
|
||||||
|
|||||||
@ -83,6 +83,7 @@ type
|
|||||||
//itmFileOpenSave: TIDEMenuSection;
|
//itmFileOpenSave: TIDEMenuSection;
|
||||||
itmFileOpen: TIDEMenuCommand;
|
itmFileOpen: TIDEMenuCommand;
|
||||||
itmFileRevert: TIDEMenuCommand;
|
itmFileRevert: TIDEMenuCommand;
|
||||||
|
itmFileOpenUnit: TIDEMenuCommand;
|
||||||
//itmFileRecentOpen: TIDEMenuSection;
|
//itmFileRecentOpen: TIDEMenuSection;
|
||||||
itmFileSave: TIDEMenuCommand;
|
itmFileSave: TIDEMenuCommand;
|
||||||
itmFileSaveAs: TIDEMenuCommand;
|
itmFileSaveAs: TIDEMenuCommand;
|
||||||
|
|||||||
@ -987,6 +987,7 @@ begin
|
|||||||
ParentMI:=itmFileOpenSave;
|
ParentMI:=itmFileOpenSave;
|
||||||
CreateMenuItem(ParentMI, itmFileOpen, 'itmFileOpen', lisMenuOpen, 'laz_open');
|
CreateMenuItem(ParentMI, itmFileOpen, 'itmFileOpen', lisMenuOpen, 'laz_open');
|
||||||
CreateMenuItem(ParentMI,itmFileRevert,'itmFileRevert',lisMenuRevert, 'menu_file_revert');
|
CreateMenuItem(ParentMI,itmFileRevert,'itmFileRevert',lisMenuRevert, 'menu_file_revert');
|
||||||
|
CreateMenuItem(ParentMI, itmFileOpenUnit, 'itmFileOpenUnit', lisMenuOpenUnit, 'laz_openunit');
|
||||||
CreateMenuSubSection(ParentMI,itmFileRecentOpen,'itmFileRecentOpen',lisMenuOpenRecent);
|
CreateMenuSubSection(ParentMI,itmFileRecentOpen,'itmFileRecentOpen',lisMenuOpenRecent);
|
||||||
CreateMenuItem(ParentMI,itmFileSave,'itmFileSave',lisMenuSave,'laz_save');
|
CreateMenuItem(ParentMI,itmFileSave,'itmFileSave',lisMenuSave,'laz_save');
|
||||||
CreateMenuItem(ParentMI,itmFileSaveAs,'itmFileSaveAs',lisMenuSaveAs,'menu_saveas');
|
CreateMenuItem(ParentMI,itmFileSaveAs,'itmFileSaveAs',lisMenuSaveAs,'menu_saveas');
|
||||||
@ -1499,6 +1500,7 @@ begin
|
|||||||
itmFileNewForm.Command:=GetCommand(ecNewForm, TNewFormToolButton);
|
itmFileNewForm.Command:=GetCommand(ecNewForm, TNewFormToolButton);
|
||||||
itmFileNewOther.Command:=GetCommand(ecNew);
|
itmFileNewOther.Command:=GetCommand(ecNew);
|
||||||
itmFileOpen.Command:=GetCommand(ecOpen, TOpenFileToolButton);
|
itmFileOpen.Command:=GetCommand(ecOpen, TOpenFileToolButton);
|
||||||
|
itmFileOpenUnit.Command:=GetCommand(ecOpenUnit);
|
||||||
itmFileRevert.Command:=GetCommand(ecRevert);
|
itmFileRevert.Command:=GetCommand(ecRevert);
|
||||||
itmFileSave.Command:=GetCommand(ecSave);
|
itmFileSave.Command:=GetCommand(ecSave);
|
||||||
itmFileSaveAs.Command:=GetCommand(ecSaveAs);
|
itmFileSaveAs.Command:=GetCommand(ecSaveAs);
|
||||||
|
|||||||
@ -34,10 +34,12 @@ uses
|
|||||||
Dialogs, LCLProc, FileProcs, Graphics, LCLType, SourceEditor, LazIDEIntf,
|
Dialogs, LCLProc, FileProcs, Graphics, LCLType, SourceEditor, LazIDEIntf,
|
||||||
IDEImagesIntf, LazarusIDEStrConsts, ProjectIntf, IDEWindowIntf, Project,
|
IDEImagesIntf, LazarusIDEStrConsts, ProjectIntf, IDEWindowIntf, Project,
|
||||||
CodeCache, CodeToolManager, IdentCompletionTool, CodeTree, ListFilterEdit,
|
CodeCache, CodeToolManager, IdentCompletionTool, CodeTree, ListFilterEdit,
|
||||||
LinkScanner, EnvironmentOpts;
|
LinkScanner, EnvironmentOpts, MainIntf, LazFileUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
TUseUnitDialogType = (udUseUnit, udOpenUnit);
|
||||||
|
|
||||||
{ TUseUnitDialog }
|
{ TUseUnitDialog }
|
||||||
|
|
||||||
TUseUnitDialog = class(TForm)
|
TUseUnitDialog = class(TForm)
|
||||||
@ -62,9 +64,11 @@ type
|
|||||||
FMainUsedUnits: TStringList;
|
FMainUsedUnits: TStringList;
|
||||||
FImplUsedUnits: TStringList;
|
FImplUsedUnits: TStringList;
|
||||||
FProjUnits, FOtherUnits: TStringList;
|
FProjUnits, FOtherUnits: TStringList;
|
||||||
|
DlgType: TUseUnitDialogType;
|
||||||
procedure AddImplUsedUnits;
|
procedure AddImplUsedUnits;
|
||||||
function GetProjUnits(SrcEdit: TSourceEditor): Boolean;
|
function GetProjUnits(SrcEdit: TSourceEditor): Boolean;
|
||||||
procedure CreateOtherUnitsList;
|
procedure CreateOtherUnitsList;
|
||||||
|
function SelectedUnitFileName: string;
|
||||||
function SelectedUnit: string;
|
function SelectedUnit: string;
|
||||||
function InterfaceSelected: Boolean;
|
function InterfaceSelected: Boolean;
|
||||||
procedure DetermineUsesSection(ACode: TCodeBuffer);
|
procedure DetermineUsesSection(ACode: TCodeBuffer);
|
||||||
@ -73,13 +77,13 @@ type
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function ShowUseUnitDialog(const DefText: string): TModalResult;
|
function ShowUseUnitDialog(const DefText: string; const aDlgType: TUseUnitDialogType): TModalResult;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
function ShowUseUnitDialog(const DefText: string): TModalResult;
|
function ShowUseUnitDialog(const DefText: string; const aDlgType: TUseUnitDialogType): TModalResult;
|
||||||
var
|
var
|
||||||
UseUnitDlg: TUseUnitDialog;
|
UseUnitDlg: TUseUnitDialog;
|
||||||
SrcEdit: TSourceEditor;
|
SrcEdit: TSourceEditor;
|
||||||
@ -100,6 +104,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
UseUnitDlg:=TUseUnitDialog.Create(nil);
|
UseUnitDlg:=TUseUnitDialog.Create(nil);
|
||||||
try
|
try
|
||||||
|
UseUnitDlg.DlgType := aDlgType;
|
||||||
|
case aDlgType of
|
||||||
|
udUseUnit: UseUnitDlg.Caption := dlgUseUnitCaption;
|
||||||
|
udOpenUnit: UseUnitDlg.Caption := lisOpenUnit;
|
||||||
|
end;
|
||||||
|
|
||||||
if not UseUnitDlg.GetProjUnits(SrcEdit) then begin
|
if not UseUnitDlg.GetProjUnits(SrcEdit) then begin
|
||||||
debugln(['ShowUseUnitDialog UseUnitDlg.GetProjUnits(SrcEdit) failed: ',SrcEdit.FileName]);
|
debugln(['ShowUseUnitDialog UseUnitDlg.GetProjUnits(SrcEdit) failed: ',SrcEdit.FileName]);
|
||||||
Exit(mrCancel);
|
Exit(mrCancel);
|
||||||
@ -116,7 +126,8 @@ begin
|
|||||||
// Read recent properties
|
// Read recent properties
|
||||||
EnvOptions := EnvironmentOptions.UseUnitDlgOptions;
|
EnvOptions := EnvironmentOptions.UseUnitDlgOptions;
|
||||||
UseUnitDlg.AllUnitsCheckBox.Checked := EnvOptions.AllUnits;
|
UseUnitDlg.AllUnitsCheckBox.Checked := EnvOptions.AllUnits;
|
||||||
UseUnitDlg.SectionRadioGroup.ItemIndex:=Ord(EnvOptions.AddToImplementation);
|
UseUnitDlg.SectionRadioGroup.ItemIndex := Ord(EnvOptions.AddToImplementation);
|
||||||
|
UseUnitDlg.SectionRadioGroup.Visible := aDlgType=udUseUnit;
|
||||||
|
|
||||||
if (UseUnitDlg.FilterEdit.Items.Count = 0)
|
if (UseUnitDlg.FilterEdit.Items.Count = 0)
|
||||||
and UseUnitDlg.AllUnitsCheckBox.Checked then begin
|
and UseUnitDlg.AllUnitsCheckBox.Checked then begin
|
||||||
@ -132,9 +143,13 @@ begin
|
|||||||
|
|
||||||
// Write recent properties
|
// Write recent properties
|
||||||
EnvOptions.AllUnits := UseUnitDlg.AllUnitsCheckBox.Checked;
|
EnvOptions.AllUnits := UseUnitDlg.AllUnitsCheckBox.Checked;
|
||||||
|
if aDlgType=udUseUnit then
|
||||||
EnvOptions.AddToImplementation := Boolean(UseUnitDlg.SectionRadioGroup.ItemIndex);
|
EnvOptions.AddToImplementation := Boolean(UseUnitDlg.SectionRadioGroup.ItemIndex);
|
||||||
EnvironmentOptions.UseUnitDlgOptions := EnvOptions;
|
EnvironmentOptions.UseUnitDlgOptions := EnvOptions;
|
||||||
|
|
||||||
|
case aDlgType of
|
||||||
|
udUseUnit:
|
||||||
|
begin
|
||||||
s:=UseUnitDlg.SelectedUnit;
|
s:=UseUnitDlg.SelectedUnit;
|
||||||
if s <> '' then begin
|
if s <> '' then begin
|
||||||
if UseUnitDlg.InterfaceSelected then
|
if UseUnitDlg.InterfaceSelected then
|
||||||
@ -147,20 +162,28 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
udOpenUnit:
|
||||||
|
begin
|
||||||
|
s:=UseUnitDlg.SelectedUnitFileName;
|
||||||
|
if FileExistsUTF8(s) then
|
||||||
|
Result := MainIDEInterface.DoOpenEditorFile(s,-1,-1,[ofAddToRecent])
|
||||||
|
else
|
||||||
|
exit(mrCancel);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
UseUnitDlg.Free;
|
UseUnitDlg.Free;
|
||||||
CodeToolBoss.SourceCache.ClearAllSourceLogEntries;
|
CodeToolBoss.SourceCache.ClearAllSourceLogEntries;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TUseUnitDialog }
|
{ TUseUnitDialog }
|
||||||
|
|
||||||
procedure TUseUnitDialog.FormCreate(Sender: TObject);
|
procedure TUseUnitDialog.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
// Internationalization
|
// Internationalization
|
||||||
IDEDialogLayoutList.ApplyLayout(Self,500,460);
|
IDEDialogLayoutList.ApplyLayout(Self,500,460);
|
||||||
Caption := dlgUseUnitCaption;
|
|
||||||
AllUnitsCheckBox.Caption := dlgShowAllUnits;
|
AllUnitsCheckBox.Caption := dlgShowAllUnits;
|
||||||
SectionRadioGroup.Caption := dlgInsertSection;
|
SectionRadioGroup.Caption := dlgInsertSection;
|
||||||
SectionRadioGroup.Items.Clear;
|
SectionRadioGroup.Items.Clear;
|
||||||
@ -309,10 +332,12 @@ var
|
|||||||
x: Integer;
|
x: Integer;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
FMainUsedUnits := nil;
|
FreeAndNil(FMainUsedUnits);
|
||||||
FImplUsedUnits := nil;
|
FreeAndNil(FImplUsedUnits);
|
||||||
if SrcEdit = nil then Exit;
|
if SrcEdit = nil then Exit;
|
||||||
Assert(Assigned(SrcEdit.CodeBuffer));
|
Assert(Assigned(SrcEdit.CodeBuffer));
|
||||||
|
if DlgType=udUseUnit then
|
||||||
|
begin
|
||||||
if not CodeToolBoss.FindUsedUnitNames(SrcEdit.CodeBuffer, TStrings(FMainUsedUnits),
|
if not CodeToolBoss.FindUsedUnitNames(SrcEdit.CodeBuffer, TStrings(FMainUsedUnits),
|
||||||
TStrings(FImplUsedUnits))
|
TStrings(FImplUsedUnits))
|
||||||
then begin
|
then begin
|
||||||
@ -320,6 +345,12 @@ begin
|
|||||||
LazarusIDE.DoJumpToCodeToolBossError;
|
LazarusIDE.DoJumpToCodeToolBossError;
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
// don't filter units in current uses sections - use empty lists
|
||||||
|
FMainUsedUnits := TStringList.Create;
|
||||||
|
FImplUsedUnits := TStringList.Create;
|
||||||
|
end;
|
||||||
Result := True;
|
Result := True;
|
||||||
if Assigned(FMainUsedUnits) then begin
|
if Assigned(FMainUsedUnits) then begin
|
||||||
FMainUsedUnits.Sorted := True;
|
FMainUsedUnits.Sorted := True;
|
||||||
@ -406,6 +437,20 @@ begin
|
|||||||
Result := '';
|
Result := '';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TUseUnitDialog.SelectedUnitFileName: string;
|
||||||
|
var
|
||||||
|
CodeBuf: TCodeBuffer;
|
||||||
|
AUnit: string;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
AUnit := SelectedUnit;
|
||||||
|
if AUnit='' then
|
||||||
|
Exit;
|
||||||
|
CodeBuf := CodeToolBoss.FindUnitSource(SourceEditorManager.ActiveEditor.CodeBuffer, AUnit, '');
|
||||||
|
if Assigned(CodeBuf) then
|
||||||
|
Result := CodeBuf.Filename;
|
||||||
|
end;
|
||||||
|
|
||||||
function TUseUnitDialog.InterfaceSelected: Boolean;
|
function TUseUnitDialog.InterfaceSelected: Boolean;
|
||||||
begin
|
begin
|
||||||
Result:=SectionRadioGroup.ItemIndex=0;
|
Result:=SectionRadioGroup.ItemIndex=0;
|
||||||
|
|||||||
BIN
images/actions/laz_openunit.png
Normal file
BIN
images/actions/laz_openunit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 686 B |
Binary file not shown.
@ -12,6 +12,7 @@ actions/laz_delete.png
|
|||||||
actions/laz_edit.png
|
actions/laz_edit.png
|
||||||
actions/laz_highlighter.png
|
actions/laz_highlighter.png
|
||||||
actions/laz_open.png
|
actions/laz_open.png
|
||||||
|
actions/laz_openunit.png
|
||||||
actions/laz_refresh.png
|
actions/laz_refresh.png
|
||||||
actions/laz_save.png
|
actions/laz_save.png
|
||||||
actions/laz_set_color_default.png
|
actions/laz_set_color_default.png
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user