/// \brief reads and interprets current solution form application obejct private void UpdateConfigFile() { var slnFile = ""; var solution = this.ApplicationObject.Solution; if (solution != null) { slnFile = solution.FileName; } var doxPreviewTempl = ExtensionContext.DoxygenPreviewTemplatePath; // TODO $$$ read global doxygen settings bool slnChanged = _solutionFile == null || _solutionFile != slnFile; _solutionFile = slnFile; if (slnChanged == false) { return; } var slnFileName = Path.GetFileName(SolutionFile); var slnRootPath = SolutionFile.Substring(0, SolutionFile.Length - slnFileName.Length); // TODO $$$ read doxygen configuration from solution project // find 'doxygen_config.xml' file var doxConfigXMLName = "doxygen_config.xml"; var doxConfigXMLPath = slnRootPath; var doxConfigXML = doxConfigXMLPath + doxConfigXMLName; if (File.Exists(doxConfigXML) == false) { #if DEBUG doxConfigXMLPath = "C:\\source\\model3dviewer\\VSDoxExt\\test\\"; // TODO $$$ test only doxConfigXML = doxConfigXMLPath + doxConfigXMLName; #endif } // read doxgan configuration paths from 'doxygen_config.xml' CDoxSrcConfigXML xConfig = new CDoxSrcConfigXML(doxConfigXML); if (xConfig.Read()) { var sourceBrowser = xConfig.GetSource(); COptions.DefaultSourceBrowser = sourceBrowser; var configFileRel = xConfig.GetConfigFile(); var configFileAbs = Path.Combine(doxConfigXMLPath, configFileRel); COptions.DefaultConfigFile = configFileAbs; return; } // try to find find elitecad doxygen project var doxTestFile = slnRootPath + "/dox_src/Doxyfile.preview"; if (File.Exists(doxTestFile)) { COptions.DefaultSourceBrowser = ExtensionCommon.ExtensionContext.constDoxygenSourceBrowserURL; COptions.DefaultConfigFile = doxTestFile; } // ... }