diff --git a/src/ce_interfaces.pas b/src/ce_interfaces.pas index 28d18779..5d1fddd8 100644 --- a/src/ce_interfaces.pas +++ b/src/ce_interfaces.pas @@ -342,6 +342,15 @@ type end; + (** + * Single service related to build-in file explorer. + *) + ICEExplorer = interface(ICESingleService) + procedure browse(const location: string); + function currentLocation: string; + end; + + { subject primitives: @@ -378,6 +387,7 @@ type function getMultiDocHandler: ICEMultiDocHandler; function getSymStringExpander: ICESymStringExpander; function getProjectGroup: ICEProjectGroup; + function getExplorer: ICEExplorer; implementation @@ -513,6 +523,11 @@ begin exit(EntitiesConnector.getSingleService('ICEProjectGroup') as ICEProjectGroup); end; +function getExplorer: ICEExplorer; +begin + exit(EntitiesConnector.getSingleService('ICEExplorer') as ICEExplorer); +end; + {$ENDREGION} end. diff --git a/src/ce_main.pas b/src/ce_main.pas index cce66c16..2da88d8c 100644 --- a/src/ce_main.pas +++ b/src/ce_main.pas @@ -1820,7 +1820,7 @@ begin if not fProject.filename.fileExists then exit; // DockMaster.GetAnchorSite(fExplWidg).Show; - fExplWidg.expandPath(fProject.filename.extractFilePath); + getExplorer.browse(fProject.filename.extractFilePath); end; procedure TCEMainForm.actFileNewExecute(Sender: TObject); @@ -2465,7 +2465,7 @@ begin if not fDoc.fileName.fileExists then exit; // DockMaster.GetAnchorSite(fExplWidg).Show; - fExplWidg.expandPath(fDoc.fileName.extractFilePath); + getExplorer.browse(fDoc.fileName.extractFilePath); end; procedure TCEMainForm.actProjCompileExecute(Sender: TObject); diff --git a/src/ce_miniexplorer.pas b/src/ce_miniexplorer.pas index 42410788..5d0398a7 100644 --- a/src/ce_miniexplorer.pas +++ b/src/ce_miniexplorer.pas @@ -60,7 +60,7 @@ type { TCEMiniExplorerWidget } - TCEMiniExplorerWidget = class(TCEWidget, ICEProjectObserver, ICEMultiDocObserver) + TCEMiniExplorerWidget = class(TCEWidget, ICEProjectObserver, ICEMultiDocObserver, ICEExplorer) btnAddFav: TBitBtn; btnEdit: TBitBtn; btnShellOpen: TBitBtn; @@ -120,8 +120,12 @@ type procedure docFocused(aDoc: TCESynMemo); procedure docChanged(aDoc: TCESynMemo); procedure docClosing(aDoc: TCESynMemo); + // + function singleServiceName: string; + procedure browse(const location: string); + function currentLocation: string; public - constructor create(aIwner: TComponent); override; + constructor create(aOwner: TComponent); override; destructor destroy; override; // procedure expandPath(aPath: string); @@ -238,7 +242,7 @@ end; {$ENDREGION} {$REGION Standard Comp/Obj------------------------------------------------------} -constructor TCEMiniExplorerWidget.create(aIwner: TComponent); +constructor TCEMiniExplorerWidget.create(aOwner: TComponent); var fname: string; begin @@ -279,6 +283,7 @@ begin end; // EntitiesConnector.addObserver(self); + EntitiesConnector.addSingleService(self); end; destructor TCEMiniExplorerWidget.destroy; @@ -693,6 +698,26 @@ begin end; {$ENDREGION} +{$REGION ICEEXplorer -----------------------------------------------------------} +function TCEMiniExplorerWidget.singleServiceName: string; +begin + exit('ICEExplorer'); +end; + +procedure TCEMiniExplorerWidget.browse(const location: string); +begin + expandPath(location); +end; + +function TCEMiniExplorerWidget.currentLocation: string; +begin + if Tree.Selected.isNil then + result := '' + else + result := PString(tree.Selected.Data)^; +end; +{$ENDREGION} + initialization RegisterClasses([TCEMiniExplorerOptions]); end.