mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 11:19:23 +02:00
IDE: when creating a new unit: when compiler options of main source and project options differ: warn and allow to cancel, request 20067
git-svn-id: trunk@32082 -
This commit is contained in:
parent
f9b4fae300
commit
88ad6a57f6
@ -60,12 +60,12 @@ type
|
|||||||
property MainAnsistring: char read FMainAnsistring write FMainAnsistring;
|
property MainAnsistring: char read FMainAnsistring write FMainAnsistring;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure CheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions);
|
function CheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions): TModalResult;
|
||||||
function GetIgnorePathForCompOptsAndMainSrcDiffer(CompOpts: TLazCompilerOptions): string;
|
function GetIgnorePathForCompOptsAndMainSrcDiffer(CompOpts: TLazCompilerOptions): string;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure CheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions);
|
function CheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions): TModalResult;
|
||||||
var
|
var
|
||||||
ProjCompOpts: TProjectCompilerOptions;
|
ProjCompOpts: TProjectCompilerOptions;
|
||||||
MainUnit: TUnitInfo;
|
MainUnit: TUnitInfo;
|
||||||
@ -78,6 +78,7 @@ var
|
|||||||
Dlg: TCheckCompOptsForNewUnitDialog;
|
Dlg: TCheckCompOptsForNewUnitDialog;
|
||||||
IgnoreIdentifier: String;
|
IgnoreIdentifier: String;
|
||||||
begin
|
begin
|
||||||
|
Result:=mrOK;
|
||||||
if CompOpts is TProjectCompilerOptions then
|
if CompOpts is TProjectCompilerOptions then
|
||||||
begin
|
begin
|
||||||
ProjCompOpts:=TProjectCompilerOptions(CompOpts);
|
ProjCompOpts:=TProjectCompilerOptions(CompOpts);
|
||||||
@ -126,7 +127,8 @@ begin
|
|||||||
Dlg.MainMode:=Mode;
|
Dlg.MainMode:=Mode;
|
||||||
Dlg.MainAnsistring:=AnsistringMode;
|
Dlg.MainAnsistring:=AnsistringMode;
|
||||||
Dlg.UpdateOptions;
|
Dlg.UpdateOptions;
|
||||||
Dlg.ShowModal;
|
if Dlg.ShowModal<>mrOk then
|
||||||
|
Result:=mrCancel;
|
||||||
finally
|
finally
|
||||||
Dlg.Free;
|
Dlg.Free;
|
||||||
end;
|
end;
|
||||||
|
93
ide/main.pp
93
ide/main.pp
@ -559,7 +559,8 @@ type
|
|||||||
|
|
||||||
// compiler options dialog events
|
// compiler options dialog events
|
||||||
procedure OnCompilerOptionsDialogTest(Sender: TObject);
|
procedure OnCompilerOptionsDialogTest(Sender: TObject);
|
||||||
procedure OnCheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions);
|
function OnCheckCompOptsAndMainSrcForNewUnit(CompOpts: TLazCompilerOptions
|
||||||
|
): TModalResult;
|
||||||
|
|
||||||
// unit dependencies events
|
// unit dependencies events
|
||||||
procedure UnitDependenciesViewAccessingSources(Sender: TObject);
|
procedure UnitDependenciesViewAccessingSources(Sender: TObject);
|
||||||
@ -3037,12 +3038,12 @@ begin
|
|||||||
ShowCleanDirectoryDialog(Project1.ProjectDirectory,GlobalMacroList);
|
ShowCleanDirectoryDialog(Project1.ProjectDirectory,GlobalMacroList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookFileNew(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookFileNew(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuNewFormClicked(Sender);
|
mnuNewFormClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookFileClose(Sender: TObject;
|
procedure TMainIDE.OnSrcNotebookFileClose(Sender: TObject;
|
||||||
InvertedClose: boolean);
|
InvertedClose: boolean);
|
||||||
var
|
var
|
||||||
PageIndex: LongInt;
|
PageIndex: LongInt;
|
||||||
@ -3126,27 +3127,27 @@ begin
|
|||||||
mnuCloseClicked(Sender);
|
mnuCloseClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookFileOpen(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookFileOpen(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuOpenClicked(Sender);
|
mnuOpenClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNoteBookFileOpenAtCursor(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookFileOpenAtCursor(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuOpenFileAtCursorClicked(Sender);
|
mnuOpenFileAtCursorClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookFileSave(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookFileSave(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuSaveClicked(Sender);
|
mnuSaveClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookFileSaveAs(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookFileSaveAs(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuSaveAsClicked(Sender);
|
mnuSaveAsClicked(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNoteBookFindDeclaration(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookFindDeclaration(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuFindDeclarationClicked(Sender);
|
mnuFindDeclarationClicked(Sender);
|
||||||
end;
|
end;
|
||||||
@ -3164,7 +3165,7 @@ begin
|
|||||||
Abort:=not DoShowCodeContext(JumpToError);
|
Abort:=not DoShowCodeContext(JumpToError);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookSaveAll(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookSaveAll(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
mnuSaveAllClicked(Sender);
|
mnuSaveAllClicked(Sender);
|
||||||
end;
|
end;
|
||||||
@ -3969,17 +3970,17 @@ end;
|
|||||||
|
|
||||||
{------------------------------------------------------------------------------}
|
{------------------------------------------------------------------------------}
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewUnitsClicked(Sender: TObject);
|
procedure TMainIDE.mnuViewUnitsClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DoViewUnitsAndForms(false);
|
DoViewUnitsAndForms(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewFormsClicked(Sender: TObject);
|
procedure TMainIDE.mnuViewFormsClicked(Sender: TObject);
|
||||||
Begin
|
Begin
|
||||||
DoViewUnitsAndForms(true);
|
DoViewUnitsAndForms(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewUnitDependenciesClicked(Sender: TObject);
|
procedure TMainIDE.mnuViewUnitDependenciesClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DoViewUnitDependencies(true);
|
DoViewUnitDependencies(true);
|
||||||
end;
|
end;
|
||||||
@ -3989,17 +3990,17 @@ begin
|
|||||||
DoViewUnitInfo;
|
DoViewUnitInfo;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewCodeExplorerClick(Sender: TObject);
|
procedure TMainIDE.mnuViewCodeExplorerClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DoShowCodeExplorer(true);
|
DoShowCodeExplorer(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewCodeBrowserClick(Sender: TObject);
|
procedure TMainIDE.mnuViewCodeBrowserClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DoShowCodeBrowser(true);
|
DoShowCodeBrowser(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewComponentsClick(Sender: TObject);
|
procedure TMainIDE.mnuViewComponentsClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DoShowComponentList(true);
|
DoShowComponentList(true);
|
||||||
end;
|
end;
|
||||||
@ -4009,18 +4010,18 @@ begin
|
|||||||
DoShowRestrictionBrowser(true);
|
DoShowRestrictionBrowser(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewMessagesClick(Sender: TObject);
|
procedure TMainIDE.mnuViewMessagesClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
// it was already visible, but user does not see it, try to move in view
|
// it was already visible, but user does not see it, try to move in view
|
||||||
DoShowMessagesView;
|
DoShowMessagesView;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuViewSearchResultsClick(Sender: TObject);
|
procedure TMainIDE.mnuViewSearchResultsClick(Sender: TObject);
|
||||||
Begin
|
Begin
|
||||||
ShowSearchResultView(true);
|
ShowSearchResultView(true);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuNewProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuNewProjectClicked(Sender: TObject);
|
||||||
var
|
var
|
||||||
NewProjectDesc: TProjectDescriptor;
|
NewProjectDesc: TProjectDescriptor;
|
||||||
Begin
|
Begin
|
||||||
@ -4068,7 +4069,7 @@ Begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuOpenProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuOpenProjectClicked(Sender: TObject);
|
||||||
var
|
var
|
||||||
OpenDialog:TOpenDialog;
|
OpenDialog:TOpenDialog;
|
||||||
AFileName: string;
|
AFileName: string;
|
||||||
@ -4203,7 +4204,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuSaveProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuSaveProjectClicked(Sender: TObject);
|
||||||
Begin
|
Begin
|
||||||
DoSaveProject([]);
|
DoSaveProject([]);
|
||||||
end;
|
end;
|
||||||
@ -4336,7 +4337,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuCompileProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuCompileProjectClicked(Sender: TObject);
|
||||||
var
|
var
|
||||||
ASrcEdit: TSourceEditor;
|
ASrcEdit: TSourceEditor;
|
||||||
AnUnitInfo: TUnitInfo;
|
AnUnitInfo: TUnitInfo;
|
||||||
@ -4349,7 +4350,7 @@ Begin
|
|||||||
DoBuildProject(crCompile,[]);
|
DoBuildProject(crCompile,[]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuBuildProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuBuildProjectClicked(Sender: TObject);
|
||||||
Begin
|
Begin
|
||||||
DoBuildProject(crBuild,[pbfCleanCompile,pbfCompileDependenciesClean]);
|
DoBuildProject(crBuild,[pbfCleanCompile,pbfCompileDependenciesClean]);
|
||||||
end;
|
end;
|
||||||
@ -4375,12 +4376,12 @@ begin
|
|||||||
DoBuildProject(crBuild,[]);
|
DoBuildProject(crBuild,[]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuAbortBuildProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuAbortBuildProjectClicked(Sender: TObject);
|
||||||
Begin
|
Begin
|
||||||
DoAbortBuild;
|
DoAbortBuild;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuRunProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuRunProjectClicked(Sender: TObject);
|
||||||
var
|
var
|
||||||
SrcEdit: TSourceEditor;
|
SrcEdit: TSourceEditor;
|
||||||
AnUnitInfo: TUnitInfo;
|
AnUnitInfo: TUnitInfo;
|
||||||
@ -4392,22 +4393,22 @@ begin
|
|||||||
DoRunProject;
|
DoRunProject;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuPauseProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuPauseProjectClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DebugBoss.DoPauseProject;
|
DebugBoss.DoPauseProject;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuShowExecutionPointClicked(Sender: TObject);
|
procedure TMainIDE.mnuShowExecutionPointClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DebugBoss.DoShowExecutionPoint;
|
DebugBoss.DoShowExecutionPoint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuStepIntoProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuStepIntoProjectClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DebugBoss.DoStepIntoProject;
|
DebugBoss.DoStepIntoProject;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuStepOverProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuStepOverProjectClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DebugBoss.DoStepOverProject;
|
DebugBoss.DoStepOverProject;
|
||||||
end;
|
end;
|
||||||
@ -4427,12 +4428,12 @@ begin
|
|||||||
DebugBoss.DoStepOutProject;
|
DebugBoss.DoStepOutProject;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuRunToCursorProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuRunToCursorProjectClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DebugBoss.DoRunToCursor;
|
DebugBoss.DoRunToCursor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.mnuStopProjectClicked(Sender: TObject);
|
procedure TMainIDE.mnuStopProjectClicked(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DebugBoss.DoStopProject;
|
DebugBoss.DoStopProject;
|
||||||
end;
|
end;
|
||||||
@ -5151,6 +5152,7 @@ var
|
|||||||
begin
|
begin
|
||||||
//debugln('TMainIDE.CreateNewCodeBuffer START NewFilename=',NewFilename,' ',Descriptor.DefaultFilename,' ',Descriptor.ClassName);
|
//debugln('TMainIDE.CreateNewCodeBuffer START NewFilename=',NewFilename,' ',Descriptor.DefaultFilename,' ',Descriptor.ClassName);
|
||||||
NewUnitName:='';
|
NewUnitName:='';
|
||||||
|
NewCodeBuffer:=nil;
|
||||||
if NewFilename='' then begin
|
if NewFilename='' then begin
|
||||||
// create a new unique filename
|
// create a new unique filename
|
||||||
SearchFlags:=[siffCheckAllProjects];
|
SearchFlags:=[siffCheckAllProjects];
|
||||||
@ -8514,6 +8516,10 @@ begin
|
|||||||
else
|
else
|
||||||
AProject:=Project1;
|
AProject:=Project1;
|
||||||
|
|
||||||
|
// check if the new file fits into the project
|
||||||
|
Result:=NewFileDescriptor.CheckOwner(nfQuiet in NewFlags);
|
||||||
|
if Result<>mrOk then exit;
|
||||||
|
|
||||||
// create new codebuffer and apply naming conventions
|
// create new codebuffer and apply naming conventions
|
||||||
Result:=CreateNewCodeBuffer(NewFileDescriptor,NewOwner,NewFilename,NewBuffer,
|
Result:=CreateNewCodeBuffer(NewFileDescriptor,NewOwner,NewFilename,NewBuffer,
|
||||||
NewUnitName);
|
NewUnitName);
|
||||||
@ -14944,10 +14950,10 @@ begin
|
|||||||
Result:=DoJumpToCodePos(nil,nil,CodeBuffer,NewX,NewY,NewTopLine,AddJumpPoint, True, MarkLine);
|
Result:=DoJumpToCodePos(nil,nil,CodeBuffer,NewX,NewY,NewTopLine,AddJumpPoint, True, MarkLine);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoJumpToCodePos(
|
function TMainIDE.DoJumpToCodePos(ActiveSrcEdit: TSourceEditor;
|
||||||
ActiveSrcEdit: TSourceEditor; ActiveUnitInfo: TUnitInfo;
|
ActiveUnitInfo: TUnitInfo; NewSource: TCodeBuffer; NewX, NewY,
|
||||||
NewSource: TCodeBuffer; NewX, NewY, NewTopLine: integer;
|
NewTopLine: integer; AddJumpPoint: boolean; FocusEditor: Boolean;
|
||||||
AddJumpPoint: boolean; FocusEditor: boolean; MarkLine: Boolean): TModalResult;
|
MarkLine: Boolean): TModalResult;
|
||||||
var
|
var
|
||||||
NewSrcEdit: TSourceEditor;
|
NewSrcEdit: TSourceEditor;
|
||||||
AnEditorInfo: TUnitEditorInfo;
|
AnEditorInfo: TUnitEditorInfo;
|
||||||
@ -15892,7 +15898,7 @@ begin
|
|||||||
SourceEditorManager.ShowActiveWindowOnTop(True);
|
SourceEditorManager.ShowActiveWindowOnTop(True);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookEditorActived(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookEditorActived(Sender: TObject);
|
||||||
var
|
var
|
||||||
ActiveUnitInfo: TUnitInfo;
|
ActiveUnitInfo: TUnitInfo;
|
||||||
ASrcEdit: TSourceEditor;
|
ASrcEdit: TSourceEditor;
|
||||||
@ -16709,7 +16715,7 @@ begin
|
|||||||
DoViewTabOrderEditor(True);
|
DoViewTabOrderEditor(True);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNoteBookAddJumpPoint(ACaretXY: TPoint;
|
procedure TMainIDE.OnSrcNoteBookAddJumpPoint(ACaretXY: TPoint;
|
||||||
ATopLine: integer; AEditor: TSourceEditor; DeleteForwardHistory: boolean);
|
ATopLine: integer; AEditor: TSourceEditor; DeleteForwardHistory: boolean);
|
||||||
{off $DEFINE VerboseJumpHistory}
|
{off $DEFINE VerboseJumpHistory}
|
||||||
var
|
var
|
||||||
@ -16740,13 +16746,14 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookDeleteLastJumPoint(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookDeleteLastJumPoint(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Project1.JumpHistory.DeleteLast;
|
Project1.JumpHistory.DeleteLast;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookJumpToHistoryPoint(var NewCaretXY: TPoint;
|
procedure TMainIDE.OnSrcNotebookJumpToHistoryPoint(var NewCaretXY: TPoint;
|
||||||
var NewTopLine: integer; var DestEditor: TSourceEditor; JumpAction: TJumpHistoryAction);
|
var NewTopLine: integer; var DestEditor: TSourceEditor;
|
||||||
|
JumpAction: TJumpHistoryAction);
|
||||||
{ How the HistoryIndex works:
|
{ How the HistoryIndex works:
|
||||||
|
|
||||||
When the user jumps around each time an item is added to the history list
|
When the user jumps around each time an item is added to the history list
|
||||||
@ -16887,7 +16894,7 @@ begin
|
|||||||
ActiveUnitInfo.UserReadOnly:=ActiveSourceEditor.ReadOnly;
|
ActiveUnitInfo.UserReadOnly:=ActiveSourceEditor.ReadOnly;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TMainIDE.OnSrcNotebookViewJumpHistory(Sender: TObject);
|
procedure TMainIDE.OnSrcNotebookViewJumpHistory(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
DoViewJumpHistory(true);
|
DoViewJumpHistory(true);
|
||||||
end;
|
end;
|
||||||
@ -17358,10 +17365,10 @@ begin
|
|||||||
DoTestCompilerSettings(Sender as TCompilerOptions);
|
DoTestCompilerSettings(Sender as TCompilerOptions);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.OnCheckCompOptsAndMainSrcForNewUnit(
|
function TMainIDE.OnCheckCompOptsAndMainSrcForNewUnit(
|
||||||
CompOpts: TLazCompilerOptions);
|
CompOpts: TLazCompilerOptions): TModalResult;
|
||||||
begin
|
begin
|
||||||
CheckCompOptsAndMainSrcForNewUnit(CompOpts);
|
Result:=CheckCompOptsAndMainSrcForNewUnit(CompOpts);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.ProjInspectorOpen(Sender: TObject);
|
procedure TMainIDE.ProjInspectorOpen(Sender: TObject);
|
||||||
|
@ -124,6 +124,7 @@ type
|
|||||||
function GetResourceSource(const ResourceName: string): string; virtual;
|
function GetResourceSource(const ResourceName: string): string; virtual;
|
||||||
procedure Release;
|
procedure Release;
|
||||||
procedure Reference;
|
procedure Reference;
|
||||||
|
function CheckOwner(Quiet: boolean): TModalResult; virtual;
|
||||||
function CreateSource(const Filename, SourceName,
|
function CreateSource(const Filename, SourceName,
|
||||||
ResourceName: string): string; virtual;
|
ResourceName: string): string; virtual;
|
||||||
procedure UpdateDefaultPascalFileExtension(const DefPasExt: string); virtual;
|
procedure UpdateDefaultPascalFileExtension(const DefPasExt: string); virtual;
|
||||||
@ -177,6 +178,7 @@ type
|
|||||||
ResourceName: string): string; virtual;
|
ResourceName: string): string; virtual;
|
||||||
function GetImplementationSource(const Filename, SourceName,
|
function GetImplementationSource(const Filename, SourceName,
|
||||||
ResourceName: string): string; virtual;
|
ResourceName: string): string; virtual;
|
||||||
|
function CheckOwner(Quiet: boolean): TModalResult; override;
|
||||||
class function CompilerOptionsToUnitDirectives(CompOpts: TLazCompilerOptions): string;
|
class function CompilerOptionsToUnitDirectives(CompOpts: TLazCompilerOptions): string;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -229,7 +231,7 @@ function FileDescriptorText: TProjectFileDescriptor;
|
|||||||
|
|
||||||
type
|
type
|
||||||
TCheckCompOptsAndMainSrcForNewUnitEvent =
|
TCheckCompOptsAndMainSrcForNewUnitEvent =
|
||||||
procedure(CompOpts: TLazCompilerOptions) of object;
|
function(CompOpts: TLazCompilerOptions): TModalResult of object;
|
||||||
var
|
var
|
||||||
CheckCompOptsAndMainSrcForNewUnitEvent: TCheckCompOptsAndMainSrcForNewUnitEvent; // set by the IDE
|
CheckCompOptsAndMainSrcForNewUnitEvent: TCheckCompOptsAndMainSrcForNewUnitEvent; // set by the IDE
|
||||||
type
|
type
|
||||||
@ -717,6 +719,11 @@ begin
|
|||||||
inc(FReferenceCount);
|
inc(FReferenceCount);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TProjectFileDescriptor.CheckOwner(Quiet: boolean): TModalResult;
|
||||||
|
begin
|
||||||
|
Result:=mrOk;
|
||||||
|
end;
|
||||||
|
|
||||||
function TProjectFileDescriptor.CreateSource(const Filename, SourceName,
|
function TProjectFileDescriptor.CreateSource(const Filename, SourceName,
|
||||||
ResourceName: string): string;
|
ResourceName: string): string;
|
||||||
begin
|
begin
|
||||||
@ -802,6 +809,18 @@ begin
|
|||||||
Result:='';
|
Result:='';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TFileDescPascalUnit.CheckOwner(Quiet: boolean): TModalResult;
|
||||||
|
begin
|
||||||
|
Result:=inherited CheckOwner(Quiet);
|
||||||
|
if Result<>mrOK then exit;
|
||||||
|
if Owner=nil then exit;
|
||||||
|
if Assigned(CheckCompOptsAndMainSrcForNewUnitEvent) then begin
|
||||||
|
if Owner is TLazProject then
|
||||||
|
Result:=CheckCompOptsAndMainSrcForNewUnitEvent(
|
||||||
|
TLazProject(Owner).LazCompilerOptions);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
class function TFileDescPascalUnit.CompilerOptionsToUnitDirectives(
|
class function TFileDescPascalUnit.CompilerOptionsToUnitDirectives(
|
||||||
CompOpts: TLazCompilerOptions): string;
|
CompOpts: TLazCompilerOptions): string;
|
||||||
var
|
var
|
||||||
@ -809,8 +828,6 @@ var
|
|||||||
begin
|
begin
|
||||||
Result:='{$mode objfpc}{$H+}';
|
Result:='{$mode objfpc}{$H+}';
|
||||||
if CompOpts=nil then exit;
|
if CompOpts=nil then exit;
|
||||||
if Assigned(CheckCompOptsAndMainSrcForNewUnitEvent) then
|
|
||||||
CheckCompOptsAndMainSrcForNewUnitEvent(CompOpts);
|
|
||||||
SyntaxMode:=CompOpts.SyntaxMode;
|
SyntaxMode:=CompOpts.SyntaxMode;
|
||||||
if SyntaxMode<>'' then begin
|
if SyntaxMode<>'' then begin
|
||||||
Result:='{$mode '+lowercase(SyntaxMode)+'}';
|
Result:='{$mode '+lowercase(SyntaxMode)+'}';
|
||||||
|
Loading…
Reference in New Issue
Block a user