diff --git a/lazproj/coedit.lpi b/lazproj/coedit.lpi
index 71c9ac44..6a177b4f 100644
--- a/lazproj/coedit.lpi
+++ b/lazproj/coedit.lpi
@@ -143,7 +143,6 @@
-
@@ -176,7 +175,6 @@
-
@@ -194,7 +192,6 @@
-
@@ -249,7 +246,6 @@
-
@@ -260,9 +256,9 @@
-
+
-
+
@@ -296,7 +292,6 @@
-
@@ -306,7 +301,6 @@
-
@@ -338,7 +332,6 @@
-
diff --git a/src/ce_dcd.pas b/src/ce_dcd.pas
index 1c649ce9..9d7f2670 100644
--- a/src/ce_dcd.pas
+++ b/src/ce_dcd.pas
@@ -9,7 +9,7 @@ uses
{$IFDEF WINDOWS}
windows,
{$ENDIF}
- ce_common, ce_writableComponent, ce_interfaces, ce_observer, ce_synmemo, ce_project;
+ ce_common, ce_writableComponent, ce_interfaces, ce_observer, ce_synmemo, ce_nativeproject;
type
(**
@@ -114,9 +114,9 @@ end;
{$REGION ICEProjectObserver ----------------------------------------------------}
procedure TCEDcdWrapper.projNew(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub:fProj := nil;
end;
end;
@@ -160,9 +160,9 @@ end;
procedure TCEDcdWrapper.projFocused(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub:fProj := nil;
end;
end;
diff --git a/src/ce_interfaces.pas b/src/ce_interfaces.pas
index 834a9114..70808a70 100644
--- a/src/ce_interfaces.pas
+++ b/src/ce_interfaces.pas
@@ -11,15 +11,16 @@ uses
type
// describes the project kind. Used as a hint to cast ICECommonProject.getProject()
- TCEProjectKind = (pkNative, pkDub);
+ TCEProjectFormat = (pfNative, pfDub);
(**
* Common project interface
*)
ICECommonProject = interface
['ICECommonProject']
- function getKind: TCEProjectKind;
- // returns an untyped object that can be casted using getSpecialization()
+ // indicates the project format
+ function getFormat: TCEProjectFormat;
+ // returns an untyped object that can be casted using getFormat()
function getProject: TObject;
//// project file
@@ -38,11 +39,6 @@ type
//function configurationCount: integer;
//function configuration(index: integer): string;
//function outputFilename: string;
- //
- //// common actions
- //function compile: boolean;
-
-
end;
(**
diff --git a/src/ce_libmaneditor.pas b/src/ce_libmaneditor.pas
index 2d8e0c50..cbdb2366 100644
--- a/src/ce_libmaneditor.pas
+++ b/src/ce_libmaneditor.pas
@@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
- Menus, ComCtrls, Buttons, ce_widget, ce_interfaces, ce_project, ce_dmdwrap,
+ Menus, ComCtrls, Buttons, ce_widget, ce_interfaces, ce_nativeproject, ce_dmdwrap,
ce_common;
type
@@ -96,36 +96,40 @@ procedure TCELibManEditorWidget.updateRegistrable;
begin
btnReg.Enabled := (fProj <> nil) and
(fProj.currentConfiguration.outputOptions.binaryKind = staticlib) and
- (FileExists(fProj.Filename))
+ (FileExists(fProj.Filename))
end;
procedure TCELibManEditorWidget.projNew(aProject: ICECommonProject);
begin
- if aProject.getKind <> pkNative then
- exit;
- fProj := TCENativeProject(aProject.getProject);
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub:fProj := nil;
+ end;
end;
procedure TCELibManEditorWidget.projChanged(aProject: ICECommonProject);
begin
if fProj = nil then exit;
- if fProj <> aProject.getProject then exit;
+ if fProj <> aProject.getProject then
+ exit;
//
updateRegistrable;
end;
procedure TCELibManEditorWidget.projClosing(aProject: ICECommonProject);
begin
- if fProj <> aProject.getProject then exit;
+ if fProj <> aProject.getProject then
+ exit;
fProj := nil;
updateRegistrable;
end;
procedure TCELibManEditorWidget.projFocused(aProject: ICECommonProject);
begin
- if aProject.getKind <> pkNative then
- exit;
- fProj := TCENativeProject(aProject.getProject);
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub:fProj := nil;
+ end;
updateRegistrable;
end;
@@ -133,7 +137,6 @@ procedure TCELibManEditorWidget.projCompiling(aProject: ICECommonProject);
begin
end;
-
procedure TCELibManEditorWidget.ListEdited(Sender: TObject; Item: TListItem; var AValue: string);
begin
gridToData;
diff --git a/src/ce_main.pas b/src/ce_main.pas
index b8b2b15c..3d97cd98 100644
--- a/src/ce_main.pas
+++ b/src/ce_main.pas
@@ -8,7 +8,7 @@ uses
Classes, SysUtils, FileUtil, SynEditKeyCmds, SynHighlighterLFM, Forms, StdCtrls,
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics, strutils,
Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, SynExportHTML,
- ce_common, ce_dmdwrap, ce_project, ce_dcd, ce_synmemo, ce_writableComponent,
+ ce_common, ce_dmdwrap, ce_nativeproject, ce_dcd, ce_synmemo, ce_writableComponent,
ce_widget, ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf,
ce_search, ce_miniexplorer, ce_libman, ce_libmaneditor, ce_todolist, ce_observer,
ce_toolseditor, ce_procinput, ce_optionseditor, ce_symlist, ce_mru;
diff --git a/src/ce_messages.pas b/src/ce_messages.pas
index 79143cc3..b3508380 100644
--- a/src/ce_messages.pas
+++ b/src/ce_messages.pas
@@ -7,7 +7,7 @@ interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
lcltype, ce_widget, ActnList, Menus, clipbrd, AnchorDocking, TreeFilterEdit,
- Buttons, math,ce_writableComponent, ce_common, ce_project, ce_synmemo, GraphType,
+ Buttons, math,ce_writableComponent, ce_common, ce_nativeproject, ce_synmemo, GraphType,
ce_dlangutils, ce_interfaces, ce_observer;
type
@@ -586,9 +586,9 @@ end;
{$REGION ICEProjectObserver ----------------------------------------------------}
procedure TCEMessagesWidget.projNew(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub:fProj := nil;
end;
filterMessages(fCtxt);
end;
@@ -606,9 +606,9 @@ end;
procedure TCEMessagesWidget.projFocused(aProject: ICECommonProject);
begin
if fProj = aProject.getProject then exit;
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub:fProj := nil;
end;
filterMessages(fCtxt);
end;
diff --git a/src/ce_mru.pas b/src/ce_mru.pas
index c28820e7..79e246b3 100644
--- a/src/ce_mru.pas
+++ b/src/ce_mru.pas
@@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, ce_interfaces, ce_observer,
- ce_project, ce_synmemo;
+ ce_nativeproject, ce_synmemo;
type
@@ -212,7 +212,7 @@ procedure TCEMRUProjectList.projClosing(aProject: ICECommonProject);
var
natProj: TCENativeProject;
begin
- if aProject.getProject is TCENativeProject then
+ if aProject.getFormat = pfNative then
begin
natProj := TCENativeProject(aProject.getProject);
if FileExists(natProj.fileName) then
diff --git a/src/ce_project.pas b/src/ce_nativeproject.pas
similarity index 97%
rename from src/ce_project.pas
rename to src/ce_nativeproject.pas
index b2328406..0323f540 100644
--- a/src/ce_project.pas
+++ b/src/ce_nativeproject.pas
@@ -1,4 +1,4 @@
-unit ce_project;
+unit ce_nativeproject;
{$I ce_defines.inc}
@@ -32,7 +32,7 @@ type
fSrcs, fSrcsCop: TStringList;
fConfIx: Integer;
fUpdateCount: NativeInt;
- fProjectSubject: TCECustomSubject;
+ fProjectSubject: TCEProjectSubject;
fRunner: TCheckedAsyncProcess;
fOutputFilename: string;
fCanBeRun: boolean;
@@ -52,7 +52,7 @@ type
// passes compilation message as "to be guessed"
procedure compProcOutput(proc: TProcess);
//
- function getKind: TCEProjectKind;
+ function getFormat: TCEProjectFormat;
function getProject: TObject;
protected
procedure beforeLoad; override;
@@ -110,8 +110,8 @@ begin
//
reset;
addDefaults;
- subjProjNew(TCEProjectSubject(fProjectSubject), self);
- subjProjChanged(TCEProjectSubject(fProjectSubject), self);
+ subjProjNew(fProjectSubject, self);
+ subjProjChanged(fProjectSubject, self);
//
{$IFDEF LINUX}
fBasePath := '/';
@@ -122,7 +122,7 @@ end;
destructor TCENativeProject.destroy;
begin
- subjProjClosing(TCEProjectSubject(fProjectSubject), self);
+ subjProjClosing(fProjectSubject, self);
fProjectSubject.Free;
//
fOnChange := nil;
@@ -134,9 +134,9 @@ begin
inherited;
end;
-function TCENativeProject.getKind: TCEProjectKind;
+function TCENativeProject.getFormat: TCEProjectFormat;
begin
- exit(pkNative);
+ exit(pfNative);
end;
function TCENativeProject.getProject: TObject;
@@ -265,7 +265,7 @@ var
begin
fModified := true;
updateOutFilename;
- subjProjChanged(TCEProjectSubject(fProjectSubject), self);
+ subjProjChanged(fProjectSubject, self);
if assigned(fOnChange) then fOnChange(Self);
{$IFDEF DEBUG}
lst := TStringList.Create;
@@ -640,7 +640,7 @@ begin
end;
//
msgs.clearByData(Self);
- subjProjCompiling(TCEProjectSubject(fProjectSubject), Self);
+ subjProjCompiling(fProjectSubject, Self);
//
if not runPrePostProcess(config.preBuildProcess) then
msgs.message('project warning: the pre-compilation process has not been properly executed',
diff --git a/src/ce_projconf.pas b/src/ce_projconf.pas
index 062e0d6f..ed014cea 100644
--- a/src/ce_projconf.pas
+++ b/src/ce_projconf.pas
@@ -7,7 +7,7 @@ interface
uses
Classes, SysUtils, FileUtil, RTTIGrids, RTTICtrls, Forms, Controls, Graphics,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus, Buttons, rttiutils, typinfo,
- PropEdits, ObjectInspector, ce_dmdwrap, ce_project, ce_widget, ce_interfaces,
+ PropEdits, ObjectInspector, ce_dmdwrap, ce_nativeproject, ce_widget, ce_interfaces,
ce_observer;
type
@@ -103,20 +103,19 @@ begin
inherited;
if Visible then updateImperative;
end;
-
{$ENDREGION --------------------------------------------------------------------}
{$REGION ICEProjectObserver ----------------------------------------------------}
procedure TCEProjectConfigurationWidget.projNew(aProject: ICECommonProject);
begin
- beginImperativeUpdate;
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
- end;
+ fProj := nil;
+ if aProject.getFormat <> pfNative then
+ exit;
+ //
+ fProj := TCENativeProject(aProject.getProject);
if Visible then updateImperative;
syncroMode := false;
- pnlToolBar.Enabled:=true;
+ pnlToolBar.Enabled :=true;
end;
procedure TCEProjectConfigurationWidget.projClosing(aProject: ICECommonProject);
@@ -125,7 +124,7 @@ begin
exit;
inspector.TIObject := nil;
inspector.ItemIndex := -1;
- self.selConf.Clear;
+ selConf.Clear;
syncroMode := false;
pnlToolBar.Enabled:=false;
fProj := nil;
@@ -133,20 +132,18 @@ end;
procedure TCEProjectConfigurationWidget.projChanged(aProject: ICECommonProject);
begin
- if fProj <> aProject.getProject then exit;
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
- end;
+ if fProj <> aProject.getProject then
+ exit;
if Visible then updateImperative;
end;
procedure TCEProjectConfigurationWidget.projFocused(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub: fProj := nil;
- end;
+ fProj := nil;
+ if aProject.getFormat <> pfNative then
+ exit;
+ //
+ fProj := TCENativeProject(aProject.getProject);
pnlToolBar.Enabled:=true;
if Visible then updateImperative;
end;
diff --git a/src/ce_projinspect.pas b/src/ce_projinspect.pas
index 56352bc9..7f19248e 100644
--- a/src/ce_projinspect.pas
+++ b/src/ce_projinspect.pas
@@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, FileUtil, TreeFilterEdit, Forms, Controls, Graphics, actnlist,
- Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, ce_project, ce_interfaces,
+ Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, ce_nativeproject, ce_interfaces,
ce_common, ce_widget, ce_observer;
type
@@ -148,11 +148,12 @@ end;
{$REGION ICEProjectMonitor -----------------------------------------------------}
procedure TCEProjectInspectWidget.projNew(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProject := TCENativeProject(aProject.getProject);
- pkDub:fProject := nil;
- end;
+ fProject := nil;
fLastFileOrFolder := '';
+ if aProject.getFormat <> pfNative then
+ exit;
+ //
+ fProject := TCENativeProject(aProject.getProject);
if Visible then updateImperative;
end;
@@ -167,16 +168,19 @@ end;
procedure TCEProjectInspectWidget.projFocused(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProject := TCENativeProject(aProject.getProject);
- pkDub:fProject := nil;
- end;
+ fProject := nil;
+ fLastFileOrFolder := '';
+ if aProject.getFormat <> pfNative then
+ exit;
+ //
+ fProject := TCENativeProject(aProject.getProject);
if Visible then beginDelayedUpdate;
end;
procedure TCEProjectInspectWidget.projChanged(aProject: ICECommonProject);
begin
- if fProject <> aProject.getProject then exit;
+ if fProject <> aProject.getProject then
+ exit;
if Visible then beginDelayedUpdate;
end;
diff --git a/src/ce_symstring.pas b/src/ce_symstring.pas
index c4b3ccf6..98022eda 100644
--- a/src/ce_symstring.pas
+++ b/src/ce_symstring.pas
@@ -5,7 +5,7 @@ unit ce_symstring;
interface
uses
- ce_observer, ce_interfaces, ce_project, ce_synmemo, ce_common;
+ ce_observer, ce_interfaces, ce_nativeproject, ce_synmemo, ce_common;
type
@@ -64,15 +64,14 @@ begin
EntitiesConnector.removeObserver(self);
inherited;
end;
-
{$ENDREGION}
{$REGION ICEProjectObserver ----------------------------------------------------}
procedure TCESymbolExpander.projNew(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub: fProj := nil;
end;
fNeedUpdate := true;
end;
@@ -87,9 +86,9 @@ end;
procedure TCESymbolExpander.projFocused(aProject: ICECommonProject);
begin
- case aProject.getKind of
- pkNative: fProj := TCENativeProject(aProject.getProject);
- pkDub:fProj := nil;
+ case aProject.getFormat of
+ pfNative: fProj := TCENativeProject(aProject.getProject);
+ pfDub: fProj := nil;
end;
fNeedUpdate := true;
end;
@@ -104,7 +103,6 @@ end;
procedure TCESymbolExpander.projCompiling(aProject: ICECommonProject);
begin
end;
-
{$ENDREGION}
{$REGION ICEMultiDocObserver ---------------------------------------------------}
diff --git a/src/ce_todolist.pas b/src/ce_todolist.pas
index 5e7e9d27..a0cab112 100644
--- a/src/ce_todolist.pas
+++ b/src/ce_todolist.pas
@@ -8,7 +8,7 @@ uses
Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls,
strutils, Graphics, Dialogs, ExtCtrls, Menus, Buttons, ComCtrls,
ce_widget, process, ce_common, ce_interfaces, ce_synmemo,
- ce_project, ce_symstring, ce_writableComponent, ce_observer;
+ ce_nativeproject, ce_symstring, ce_writableComponent, ce_observer;
type
@@ -340,7 +340,8 @@ end;
{$REGION ICEProjectObserver ----------------------------------------------------}
procedure TCETodoListWidget.projNew(aProject: ICECommonProject);
begin
- if aProject.getKind <> pkNative then
+ fProj := nil;
+ if aProject.getFormat <> pfNative then
exit;
fProj := TCENativeProject(aProject.getProject);
end;
@@ -366,10 +367,10 @@ procedure TCETodoListWidget.projFocused(aProject: ICECommonProject);
begin
if aProject.getProject = fProj then
exit;
- if aProject.getKind <> pkNative then
+ fProj := nil;
+ if aProject.getFormat <> pfNative then
exit;
fProj := TCENativeProject(aProject.getProject);
-
if Visible and fAutoRefresh then
callToolProcess;
end;
@@ -377,7 +378,6 @@ end;
procedure TCETodoListWidget.projCompiling(aProject: ICECommonProject);
begin
end;
-
{$ENDREGION}
{$REGION Todo list things ------------------------------------------------------}