project inspector, detect new sources

This commit is contained in:
Basile Burg 2017-01-18 12:06:57 +01:00
parent 6d48342da0
commit 97d4355b5d
No known key found for this signature in database
GPG Key ID: 1868039F415CB8CF
2 changed files with 54 additions and 4 deletions

View File

@ -111,6 +111,7 @@ type
procedure loadFromFile(const fname: string);
procedure saveToFile(const fname: string);
//
procedure updateSourcesList;
procedure activate;
function inGroup: boolean;
procedure inGroup(value: boolean);
@ -764,6 +765,11 @@ begin
fConfigsCount := fConfigs.Count * fBuildTypes.Count;
end;
procedure TCEDubProject.updateSourcesList;
begin
updateSourcesFromJson;
end;
procedure TCEDubProject.updateSourcesFromJson;
var
lst: TStringList;

View File

@ -7,13 +7,14 @@ interface
uses
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, actnlist,
Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, ce_ceproject, ce_interfaces,
ce_common, ce_widget, ce_observer, ce_dialogs, ce_sharedres, ce_dsgncontrols;
ce_common, ce_widget, ce_observer, ce_dialogs, ce_sharedres, ce_dsgncontrols,
ce_dubproject, ce_synmemo;
type
{ TCEProjectInspectWidget }
TCEProjectInspectWidget = class(TCEWidget, ICEProjectObserver)
TCEProjectInspectWidget = class(TCEWidget, ICEProjectObserver, ICEDocumentObserver)
btnAddFile: TCEToolButton;
btnAddFold: TCEToolButton;
btnRemFile: TCEToolButton;
@ -44,6 +45,7 @@ type
fLastFileOrFolder: string;
fSymStringExpander: ICESymStringExpander;
procedure actUpdate(sender: TObject);
procedure DetectNewDubSources(const document: TCESynMemo);
procedure TreeDblClick(sender: TObject);
procedure actOpenFileExecute(sender: TObject);
procedure actBuildExecute(sender: TObject);
@ -55,6 +57,11 @@ type
procedure projCompiling(project: ICECommonProject);
procedure projCompiled(project: ICECommonProject; success: boolean);
procedure updateButtons;
//
procedure docNew(document: TCESynMemo);
procedure docFocused(document: TCESynMemo);
procedure docChanged(document: TCESynMemo);
procedure docClosing(document: TCESynMemo);
protected
function contextName: string; override;
function contextActionCount: integer; override;
@ -104,7 +111,8 @@ end;
procedure TCEProjectInspectWidget.SetVisible(value: boolean);
begin
inherited;
if value then updateImperative;
if value then
updateImperative;
end;
procedure TCEProjectInspectWidget.setToolBarFlat(value: boolean);
@ -149,7 +157,28 @@ begin
end;
{$ENDREGION}
{$REGION ICEProjectMonitor -----------------------------------------------------}
{$REGION ICEDocumentObserver ---------------------------------------------------}
procedure TCEProjectInspectWidget.docNew(document: TCESynMemo);
begin
DetectNewDubSources(document);
end;
procedure TCEProjectInspectWidget.docFocused(document: TCESynMemo);
begin
DetectNewDubSources(document);
end;
procedure TCEProjectInspectWidget.docChanged(document: TCESynMemo);
begin
end;
procedure TCEProjectInspectWidget.docClosing(document: TCESynMemo);
begin
DetectNewDubSources(document);
end;
{$ENDREGION}
{$REGION ICEProjectObserver -----------------------------------------------------}
procedure TCEProjectInspectWidget.projNew(project: ICECommonProject);
begin
fLastFileOrFolder := '';
@ -174,6 +203,7 @@ procedure TCEProjectInspectWidget.projFocused(project: ICECommonProject);
begin
fLastFileOrFolder := '';
fProject := project;
DetectNewDubSources(nil);
updateButtons;
if Visible then
beginDelayedUpdate;
@ -291,6 +321,20 @@ begin
fActOpenFile.Enabled := Tree.Selected.Parent = fFileNode;
end;
procedure TCEProjectInspectWidget.DetectNewDubSources(const document: TCESynMemo
);
begin
if not assigned(fProject) or (fProject.getFormat <> pfDUB) then
exit;
if document.isNotNil then
begin
if document.fileName.contains(fProject.basePath) then
TCEDubProject(fProject.getProject).updateSourcesList;
end
else TCEDubProject(fProject.getProject).updateSourcesList;
updateImperative;
end;
procedure TCEProjectInspectWidget.btnAddFileClick(Sender: TObject);
var
fname: string;