From 104d6bc3b60e6f2e6d6ba70091fbaede4db266ea Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Mon, 24 Aug 2015 14:47:48 +0200 Subject: [PATCH] added function to test if a file is a native project --- src/ce_nativeproject.pas | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ce_nativeproject.pas b/src/ce_nativeproject.pas index beb8b8a9..87e267d0 100644 --- a/src/ce_nativeproject.pas +++ b/src/ce_nativeproject.pas @@ -91,6 +91,9 @@ type property outputFilename: string read fOutputFilename; end; + // native project have no ext constraint, this function tells if filename is project + function isValidNativeProject(const filename: string): boolean; + implementation uses @@ -771,6 +774,24 @@ begin end; end; +function isValidNativeProject(const filename: string): boolean; +var + maybe: TCENativeProject; +begin + result := false; + // avoid the project to notify the observers, current project is not replaced + EntitiesConnector.beginUpdate; + maybe := TCENativeProject.create(nil); + EntitiesConnector.removeSubject(maybe); + try + maybe.loadFromFile(filename); + result := maybe.hasLoaded; + finally + maybe.Free; + EntitiesConnector.endUpdate; + end; +end; + initialization RegisterClasses([TCENativeProject]); end.