diff --git a/src/app/main.cpp b/src/app/main.cpp index c1e292a7..24226b84 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -3,37 +3,37 @@ #include #include "Application.h" -#include "LanguagePackageCxx.h" -#include "LanguagePackageJava.h" -#include "LanguagePackageManager.h" -#include "SourceGroupFactory.h" -#include "SourceGroupFactoryModuleCxx.h" -#include "SourceGroupFactoryModuleJava.h" -#include "SourceGroupFactoryModulePython.h" -#include "SourceGroupFactoryModuleCustom.h" -#include "QtNetworkFactory.h" -#include "QtApplication.h" -#include "QtCoreApplication.h" -#include "utilityQt.h" -#include "QtViewFactory.h" #include "ApplicationSettings.h" +#include "ApplicationSettingsPrefiller.h" #include "CommandLineParser.h" #include "ConsoleLogger.h" #include "FileLogger.h" +#include "LanguagePackageCxx.h" +#include "LanguagePackageJava.h" +#include "LanguagePackageManager.h" #include "logging.h" #include "LogManager.h" #include "MessageIndexingInterrupted.h" #include "MessageLoadProject.h" #include "MessageStatus.h" +#include "productVersion.h" +#include "QtNetworkFactory.h" +#include "QtApplication.h" +#include "QtCoreApplication.h" +#include "QtViewFactory.h" #include "ResourcePaths.h" #include "ScopedFunctor.h" +#include "SourceGroupFactory.h" +#include "SourceGroupFactoryModuleCxx.h" +#include "SourceGroupFactoryModuleJava.h" +#include "SourceGroupFactoryModulePython.h" +#include "SourceGroupFactoryModuleCustom.h" #include "TextAccess.h" #include "UserPaths.h" #include "utility.h" #include "utilityApp.h" -#include "utilityPathDetection.h" +#include "utilityQt.h" #include "Version.h" -#include "productVersion.h" void signalHandler(int signum) { @@ -57,127 +57,6 @@ void setupLogging() logManager->addLogger(fileLogger); } -void prefillJavaRuntimePath() -{ - std::shared_ptr settings = ApplicationSettings::getInstance(); - if (!settings->getHasPrefilledJavaPath()) - { - LOG_INFO("Prefilling Java path"); - std::shared_ptr javaPathDetector = utility::getJavaRuntimePathDetector(); - std::vector paths = javaPathDetector->getPaths(); - if (!paths.empty()) - { - MessageStatus(L"Ran Java runtime path detection, found: " + paths.front().wstr()).dispatch(); - - settings->setJavaPath(paths.front()); - settings->save(); - } - else - { - MessageStatus(L"Ran Java runtime path detection, no path found.").dispatch(); - } - } - settings->setHasPrefilledJavaPath(true); -} - -void prefillJreSystemLibraryPaths() -{ - std::shared_ptr settings = ApplicationSettings::getInstance(); - if (!settings->getHasPrefilledJreSystemLibraryPaths()) - { - LOG_INFO("Prefilling JRE system library path"); - std::shared_ptr jreSystemLibraryPathsDetector = utility::getJreSystemLibraryPathsDetector(); - std::vector paths = jreSystemLibraryPathsDetector->getPaths(); - if (!paths.empty()) - { - MessageStatus(L"Ran JRE system library path detection, found: " + paths.front().wstr()).dispatch(); - - settings->setJreSystemLibraryPaths(paths); - settings->save(); - } - else - { - MessageStatus(L"Ran JRE system library path detection, no path found.").dispatch(); - } - } - settings->setHasPrefilledJreSystemLibraryPaths(true); -} - -void prefillMavenExecutablePath() -{ - std::shared_ptr settings = ApplicationSettings::getInstance(); - if (!settings->getHasPrefilledMavenPath()) - { - LOG_INFO("Prefilling Maven path"); - std::shared_ptr mavenPathDetector = utility::getMavenExecutablePathDetector(); - std::vector paths = mavenPathDetector->getPaths(); - if (!paths.empty()) - { - MessageStatus(L"Ran Maven executable path detection, found: " + paths.front().wstr()).dispatch(); - - settings->setMavenPath(paths.front()); - settings->save(); - } - else - { - MessageStatus(L"Ran Maven executable path detection, no path found.").dispatch(); - } - } - settings->setHasPrefilledMavenPath(true); -} - -void prefillCxxHeaderPaths() -{ - std::shared_ptr settings = ApplicationSettings::getInstance(); - if (!settings->getHasPrefilledHeaderSearchPaths()) - { - LOG_INFO("Prefilling header search paths"); - std::shared_ptr cxxHeaderDetector = utility::getCxxHeaderPathDetector(); - std::vector paths = cxxHeaderDetector->getPaths(); - if (!paths.empty()) - { - MessageStatus(L"Ran C/C++ header path detection, found " + std::to_wstring(paths.size()) + L" path" + - (paths.size() == 1 ? L"" : L"s")).dispatch(); - - settings->setHeaderSearchPaths(paths); - settings->save(); - } - } - settings->setHasPrefilledHeaderSearchPaths(true); -} - -void prefillCxxFrameworkPaths() -{ - std::shared_ptr settings = ApplicationSettings::getInstance(); - if (!settings->getHasPrefilledFrameworkSearchPaths()) - { - LOG_INFO("Prefilling framework search paths"); - std::shared_ptr cxxFrameworkDetector = utility::getCxxFrameworkPathDetector(); - std::vector paths = cxxFrameworkDetector->getPaths(); - if (!paths.empty()) - { - MessageStatus(L"Ran C/C++ framework path detection, found " + std::to_wstring(paths.size()) + L" path" + - (paths.size() == 1 ? L"" : L"s")).dispatch(); - - settings->setFrameworkSearchPaths(paths); - settings->save(); - } - } - settings->setHasPrefilledFrameworkSearchPaths(true); -} - -void prefillPaths() -{ - prefillJavaRuntimePath(); - prefillMavenExecutablePath(); - prefillJreSystemLibraryPaths(); - prefillCxxHeaderPaths(); - prefillCxxFrameworkPaths(); - - std::shared_ptr settings = ApplicationSettings::getInstance(); - settings->save(); -} - void addLanguagePackages() { SourceGroupFactory::getInstance()->addModule(std::make_shared()); @@ -282,7 +161,7 @@ int main(int argc, char *argv[]) appSettings->save(); } - prefillPaths(); + ApplicationSettingsPrefiller::prefillPaths(appSettings); addLanguagePackages(); signal(SIGINT, signalHandler); @@ -341,7 +220,8 @@ int main(int argc, char *argv[]) Application::destroyInstance(); }); - prefillPaths(); + ApplicationSettings* appSettings = ApplicationSettings::getInstance().get(); + ApplicationSettingsPrefiller::prefillPaths(appSettings); addLanguagePackages(); utility::loadFontsFromDirectory(ResourcePaths::getFontsPath(), L".otf"); diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 875106a0..d2b871a6 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -325,8 +325,68 @@ add_files( settings/migration/SettingsMigrationMoveKey.h settings/migration/SettingsMigrator.h + settings/source_group/SourceGroupSettings.cpp + settings/source_group/SourceGroupSettings.h + settings/source_group/SourceGroupSettingsBase.h + settings/source_group/SourceGroupSettingsCxx.cpp + settings/source_group/SourceGroupSettingsCxx.h + settings/source_group/SourceGroupSettingsCEmpty.cpp + settings/source_group/SourceGroupSettingsCEmpty.h + settings/source_group/SourceGroupSettingsCppEmpty.cpp + settings/source_group/SourceGroupSettingsCppEmpty.h + settings/source_group/SourceGroupSettingsCustomCommand.cpp + settings/source_group/SourceGroupSettingsCustomCommand.h + settings/source_group/SourceGroupSettingsCxxCdb.cpp + settings/source_group/SourceGroupSettingsCxxCdb.h + settings/source_group/SourceGroupSettingsCxxCdbVs.cpp + settings/source_group/SourceGroupSettingsCxxCdbVs.h + settings/source_group/SourceGroupSettingsCxxCodeblocks.cpp + settings/source_group/SourceGroupSettingsCxxCodeblocks.h + settings/source_group/SourceGroupSettingsCxxSonargraph.cpp + settings/source_group/SourceGroupSettingsCxxSonargraph.h + settings/source_group/SourceGroupSettingsJava.cpp + settings/source_group/SourceGroupSettingsJava.h + settings/source_group/SourceGroupSettingsJavaEmpty.cpp + settings/source_group/SourceGroupSettingsJavaEmpty.h + settings/source_group/SourceGroupSettingsJavaGradle.cpp + settings/source_group/SourceGroupSettingsJavaGradle.h + settings/source_group/SourceGroupSettingsJavaMaven.cpp + settings/source_group/SourceGroupSettingsJavaMaven.h + settings/source_group/SourceGroupSettingsJavaSonargraph.cpp + settings/source_group/SourceGroupSettingsJavaSonargraph.h + settings/source_group/SourceGroupSettingsPythonEmpty.cpp + settings/source_group/SourceGroupSettingsPythonEmpty.h + settings/source_group/SourceGroupSettingsWithClasspath.cpp + settings/source_group/SourceGroupSettingsWithClasspath.h + settings/source_group/SourceGroupSettingsWithCppStandard.cpp + settings/source_group/SourceGroupSettingsWithCppStandard.h + settings/source_group/SourceGroupSettingsWithCStandard.cpp + settings/source_group/SourceGroupSettingsWithCStandard.h + settings/source_group/SourceGroupSettingsWithCxxCrossCompilationOptions.cpp + settings/source_group/SourceGroupSettingsWithCxxCrossCompilationOptions.h + settings/source_group/SourceGroupSettingsWithExcludeFilters.cpp + settings/source_group/SourceGroupSettingsWithExcludeFilters.h + settings/source_group/SourceGroupSettingsWithIndexedHeaderPaths.cpp + settings/source_group/SourceGroupSettingsWithIndexedHeaderPaths.h + settings/source_group/SourceGroupSettingsWithJavaStandard.cpp + settings/source_group/SourceGroupSettingsWithJavaStandard.h + settings/source_group/SourceGroupSettingsWithCxxPchOptions.cpp + settings/source_group/SourceGroupSettingsWithCxxPchOptions.h + settings/source_group/SourceGroupSettingsWithSonargraphProjectPath.cpp + settings/source_group/SourceGroupSettingsWithSonargraphProjectPath.h + settings/source_group/SourceGroupSettingsWithSourceExtensions.cpp + settings/source_group/SourceGroupSettingsWithSourceExtensions.h + settings/source_group/SourceGroupSettingsWithSourcePaths.cpp + settings/source_group/SourceGroupSettingsWithSourcePaths.h + settings/source_group/SourceGroupStatusType.cpp + settings/source_group/SourceGroupStatusType.h + settings/source_group/SourceGroupType.cpp + settings/source_group/SourceGroupType.h + settings/ApplicationSettings.cpp settings/ApplicationSettings.h + settings/ApplicationSettingsPrefiller.cpp + settings/ApplicationSettingsPrefiller.h settings/ColorScheme.cpp settings/ColorScheme.h settings/LanguageType.cpp @@ -335,63 +395,6 @@ add_files( settings/ProjectSettings.h settings/Settings.cpp settings/Settings.h - settings/SourceGroupSettings.cpp - settings/SourceGroupSettings.h - settings/SourceGroupSettingsBase.h - settings/SourceGroupSettingsCxx.cpp - settings/SourceGroupSettingsCxx.h - settings/SourceGroupSettingsCEmpty.cpp - settings/SourceGroupSettingsCEmpty.h - settings/SourceGroupSettingsCppEmpty.cpp - settings/SourceGroupSettingsCppEmpty.h - settings/SourceGroupSettingsCustomCommand.cpp - settings/SourceGroupSettingsCustomCommand.h - settings/SourceGroupSettingsCxxCdb.cpp - settings/SourceGroupSettingsCxxCdb.h - settings/SourceGroupSettingsCxxCdbVs.cpp - settings/SourceGroupSettingsCxxCdbVs.h - settings/SourceGroupSettingsCxxCodeblocks.cpp - settings/SourceGroupSettingsCxxCodeblocks.h - settings/SourceGroupSettingsCxxSonargraph.cpp - settings/SourceGroupSettingsCxxSonargraph.h - settings/SourceGroupSettingsJava.cpp - settings/SourceGroupSettingsJava.h - settings/SourceGroupSettingsJavaEmpty.cpp - settings/SourceGroupSettingsJavaEmpty.h - settings/SourceGroupSettingsJavaGradle.cpp - settings/SourceGroupSettingsJavaGradle.h - settings/SourceGroupSettingsJavaMaven.cpp - settings/SourceGroupSettingsJavaMaven.h - settings/SourceGroupSettingsJavaSonargraph.cpp - settings/SourceGroupSettingsJavaSonargraph.h - settings/SourceGroupSettingsPythonEmpty.cpp - settings/SourceGroupSettingsPythonEmpty.h - settings/SourceGroupSettingsWithClasspath.cpp - settings/SourceGroupSettingsWithClasspath.h - settings/SourceGroupSettingsWithCppStandard.cpp - settings/SourceGroupSettingsWithCppStandard.h - settings/SourceGroupSettingsWithCStandard.cpp - settings/SourceGroupSettingsWithCStandard.h - settings/SourceGroupSettingsWithCxxCrossCompilationOptions.cpp - settings/SourceGroupSettingsWithCxxCrossCompilationOptions.h - settings/SourceGroupSettingsWithExcludeFilters.cpp - settings/SourceGroupSettingsWithExcludeFilters.h - settings/SourceGroupSettingsWithIndexedHeaderPaths.cpp - settings/SourceGroupSettingsWithIndexedHeaderPaths.h - settings/SourceGroupSettingsWithJavaStandard.cpp - settings/SourceGroupSettingsWithJavaStandard.h - settings/SourceGroupSettingsWithCxxPchOptions.cpp - settings/SourceGroupSettingsWithCxxPchOptions.h - settings/SourceGroupSettingsWithSonargraphProjectPath.cpp - settings/SourceGroupSettingsWithSonargraphProjectPath.h - settings/SourceGroupSettingsWithSourceExtensions.cpp - settings/SourceGroupSettingsWithSourceExtensions.h - settings/SourceGroupSettingsWithSourcePaths.cpp - settings/SourceGroupSettingsWithSourcePaths.h - settings/SourceGroupStatusType.cpp - settings/SourceGroupStatusType.h - settings/SourceGroupType.cpp - settings/SourceGroupType.h utility/commandline/CommandlineHelper.cpp utility/commandline/CommandlineHelper.h diff --git a/src/lib/settings/ApplicationSettingsPrefiller.cpp b/src/lib/settings/ApplicationSettingsPrefiller.cpp new file mode 100644 index 00000000..306b4f9b --- /dev/null +++ b/src/lib/settings/ApplicationSettingsPrefiller.cpp @@ -0,0 +1,142 @@ +#include "ApplicationSettingsPrefiller.h" + +#include "ApplicationSettings.h" +#include "logging.h" +#include "MessageStatus.h" +#include "utilityPathDetection.h" + +void ApplicationSettingsPrefiller::prefillPaths(ApplicationSettings* settings) +{ + bool updated = false; + + updated |= prefillJavaRuntimePath(settings); + updated |= prefillMavenExecutablePath(settings); + updated |= prefillJreSystemLibraryPaths(settings); + updated |= prefillCxxHeaderPaths(settings); + updated |= prefillCxxFrameworkPaths(settings); + + if (updated) + { + settings->save(); + } +} + +bool ApplicationSettingsPrefiller::prefillJavaRuntimePath(ApplicationSettings* settings) +{ + if (settings->getHasPrefilledJavaPath()) + { + return false; + } + + LOG_INFO("Prefilling Java path"); + + std::shared_ptr javaPathDetector = utility::getJavaRuntimePathDetector(); + std::vector paths = javaPathDetector->getPaths(); + if (!paths.empty()) + { + MessageStatus(L"Ran Java runtime path detection, found: " + paths.front().wstr()).dispatch(); + + settings->setJavaPath(paths.front()); + } + else + { + MessageStatus(L"Ran Java runtime path detection, no path found.").dispatch(); + } + + settings->setHasPrefilledJavaPath(true); + return true; +} + +bool ApplicationSettingsPrefiller::prefillJreSystemLibraryPaths(ApplicationSettings* settings) +{ + if (settings->getHasPrefilledJreSystemLibraryPaths()) + { + return false; + } + + LOG_INFO("Prefilling JRE system library path"); + std::shared_ptr jreSystemLibraryPathsDetector = utility::getJreSystemLibraryPathsDetector(); + std::vector paths = jreSystemLibraryPathsDetector->getPaths(); + if (!paths.empty()) + { + MessageStatus(L"Ran JRE system library path detection, found: " + paths.front().wstr()).dispatch(); + + settings->setJreSystemLibraryPaths(paths); + } + else + { + MessageStatus(L"Ran JRE system library path detection, no path found.").dispatch(); + } + + settings->setHasPrefilledJreSystemLibraryPaths(true); + return true; +} + +bool ApplicationSettingsPrefiller::prefillMavenExecutablePath(ApplicationSettings* settings) +{ + if (settings->getHasPrefilledMavenPath()) + { + return false; + } + + LOG_INFO("Prefilling Maven path"); + std::shared_ptr mavenPathDetector = utility::getMavenExecutablePathDetector(); + std::vector paths = mavenPathDetector->getPaths(); + if (!paths.empty()) + { + MessageStatus(L"Ran Maven executable path detection, found: " + paths.front().wstr()).dispatch(); + + settings->setMavenPath(paths.front()); + } + else + { + MessageStatus(L"Ran Maven executable path detection, no path found.").dispatch(); + } + + settings->setHasPrefilledMavenPath(true); + return true; +} + +bool ApplicationSettingsPrefiller::prefillCxxHeaderPaths(ApplicationSettings* settings) +{ + if (settings->getHasPrefilledHeaderSearchPaths()) + { + return false; + } + + LOG_INFO("Prefilling header search paths"); + std::shared_ptr cxxHeaderDetector = utility::getCxxHeaderPathDetector(); + std::vector paths = cxxHeaderDetector->getPaths(); + if (!paths.empty()) + { + MessageStatus(L"Ran C/C++ header path detection, found " + std::to_wstring(paths.size()) + L" path" + + (paths.size() == 1 ? L"" : L"s")).dispatch(); + + settings->setHeaderSearchPaths(paths); + } + + settings->setHasPrefilledHeaderSearchPaths(true); + return true; +} + +bool ApplicationSettingsPrefiller::prefillCxxFrameworkPaths(ApplicationSettings* settings) +{ + if (settings->getHasPrefilledFrameworkSearchPaths()) + { + return false; + } + + LOG_INFO("Prefilling framework search paths"); + std::shared_ptr cxxFrameworkDetector = utility::getCxxFrameworkPathDetector(); + std::vector paths = cxxFrameworkDetector->getPaths(); + if (!paths.empty()) + { + MessageStatus(L"Ran C/C++ framework path detection, found " + std::to_wstring(paths.size()) + L" path" + + (paths.size() == 1 ? L"" : L"s")).dispatch(); + + settings->setFrameworkSearchPaths(paths); + } + + settings->setHasPrefilledFrameworkSearchPaths(true); + return true; +} diff --git a/src/lib/settings/ApplicationSettingsPrefiller.h b/src/lib/settings/ApplicationSettingsPrefiller.h new file mode 100644 index 00000000..a194717b --- /dev/null +++ b/src/lib/settings/ApplicationSettingsPrefiller.h @@ -0,0 +1,19 @@ +#ifndef APPLICATION_SETTINGS_PREFILLER_H +#define APPLICATION_SETTINGS_PREFILLER_H + +class ApplicationSettings; + +class ApplicationSettingsPrefiller +{ +public: + static void prefillPaths(ApplicationSettings* settings); + +private: + static bool prefillJavaRuntimePath(ApplicationSettings* settings); + static bool prefillJreSystemLibraryPaths(ApplicationSettings* settings); + static bool prefillMavenExecutablePath(ApplicationSettings* settings); + static bool prefillCxxHeaderPaths(ApplicationSettings* settings); + static bool prefillCxxFrameworkPaths(ApplicationSettings* settings); +}; + +#endif // APPLICATION_SETTINGS_PREFILLER_H diff --git a/src/lib/settings/SourceGroupSettings.cpp b/src/lib/settings/source_group/SourceGroupSettings.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettings.cpp rename to src/lib/settings/source_group/SourceGroupSettings.cpp diff --git a/src/lib/settings/SourceGroupSettings.h b/src/lib/settings/source_group/SourceGroupSettings.h similarity index 100% rename from src/lib/settings/SourceGroupSettings.h rename to src/lib/settings/source_group/SourceGroupSettings.h diff --git a/src/lib/settings/SourceGroupSettingsBase.h b/src/lib/settings/source_group/SourceGroupSettingsBase.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsBase.h rename to src/lib/settings/source_group/SourceGroupSettingsBase.h diff --git a/src/lib/settings/SourceGroupSettingsCEmpty.cpp b/src/lib/settings/source_group/SourceGroupSettingsCEmpty.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCEmpty.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCEmpty.cpp diff --git a/src/lib/settings/SourceGroupSettingsCEmpty.h b/src/lib/settings/source_group/SourceGroupSettingsCEmpty.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCEmpty.h rename to src/lib/settings/source_group/SourceGroupSettingsCEmpty.h diff --git a/src/lib/settings/SourceGroupSettingsCppEmpty.cpp b/src/lib/settings/source_group/SourceGroupSettingsCppEmpty.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCppEmpty.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCppEmpty.cpp diff --git a/src/lib/settings/SourceGroupSettingsCppEmpty.h b/src/lib/settings/source_group/SourceGroupSettingsCppEmpty.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCppEmpty.h rename to src/lib/settings/source_group/SourceGroupSettingsCppEmpty.h diff --git a/src/lib/settings/SourceGroupSettingsCustomCommand.cpp b/src/lib/settings/source_group/SourceGroupSettingsCustomCommand.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCustomCommand.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCustomCommand.cpp diff --git a/src/lib/settings/SourceGroupSettingsCustomCommand.h b/src/lib/settings/source_group/SourceGroupSettingsCustomCommand.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCustomCommand.h rename to src/lib/settings/source_group/SourceGroupSettingsCustomCommand.h diff --git a/src/lib/settings/SourceGroupSettingsCxx.cpp b/src/lib/settings/source_group/SourceGroupSettingsCxx.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxx.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCxx.cpp diff --git a/src/lib/settings/SourceGroupSettingsCxx.h b/src/lib/settings/source_group/SourceGroupSettingsCxx.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxx.h rename to src/lib/settings/source_group/SourceGroupSettingsCxx.h diff --git a/src/lib/settings/SourceGroupSettingsCxxCdb.cpp b/src/lib/settings/source_group/SourceGroupSettingsCxxCdb.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxCdb.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCxxCdb.cpp diff --git a/src/lib/settings/SourceGroupSettingsCxxCdb.h b/src/lib/settings/source_group/SourceGroupSettingsCxxCdb.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxCdb.h rename to src/lib/settings/source_group/SourceGroupSettingsCxxCdb.h diff --git a/src/lib/settings/SourceGroupSettingsCxxCdbVs.cpp b/src/lib/settings/source_group/SourceGroupSettingsCxxCdbVs.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxCdbVs.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCxxCdbVs.cpp diff --git a/src/lib/settings/SourceGroupSettingsCxxCdbVs.h b/src/lib/settings/source_group/SourceGroupSettingsCxxCdbVs.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxCdbVs.h rename to src/lib/settings/source_group/SourceGroupSettingsCxxCdbVs.h diff --git a/src/lib/settings/SourceGroupSettingsCxxCodeblocks.cpp b/src/lib/settings/source_group/SourceGroupSettingsCxxCodeblocks.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxCodeblocks.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCxxCodeblocks.cpp diff --git a/src/lib/settings/SourceGroupSettingsCxxCodeblocks.h b/src/lib/settings/source_group/SourceGroupSettingsCxxCodeblocks.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxCodeblocks.h rename to src/lib/settings/source_group/SourceGroupSettingsCxxCodeblocks.h diff --git a/src/lib/settings/SourceGroupSettingsCxxSonargraph.cpp b/src/lib/settings/source_group/SourceGroupSettingsCxxSonargraph.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxSonargraph.cpp rename to src/lib/settings/source_group/SourceGroupSettingsCxxSonargraph.cpp diff --git a/src/lib/settings/SourceGroupSettingsCxxSonargraph.h b/src/lib/settings/source_group/SourceGroupSettingsCxxSonargraph.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsCxxSonargraph.h rename to src/lib/settings/source_group/SourceGroupSettingsCxxSonargraph.h diff --git a/src/lib/settings/SourceGroupSettingsJava.cpp b/src/lib/settings/source_group/SourceGroupSettingsJava.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsJava.cpp rename to src/lib/settings/source_group/SourceGroupSettingsJava.cpp diff --git a/src/lib/settings/SourceGroupSettingsJava.h b/src/lib/settings/source_group/SourceGroupSettingsJava.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsJava.h rename to src/lib/settings/source_group/SourceGroupSettingsJava.h diff --git a/src/lib/settings/SourceGroupSettingsJavaEmpty.cpp b/src/lib/settings/source_group/SourceGroupSettingsJavaEmpty.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaEmpty.cpp rename to src/lib/settings/source_group/SourceGroupSettingsJavaEmpty.cpp diff --git a/src/lib/settings/SourceGroupSettingsJavaEmpty.h b/src/lib/settings/source_group/SourceGroupSettingsJavaEmpty.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaEmpty.h rename to src/lib/settings/source_group/SourceGroupSettingsJavaEmpty.h diff --git a/src/lib/settings/SourceGroupSettingsJavaGradle.cpp b/src/lib/settings/source_group/SourceGroupSettingsJavaGradle.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaGradle.cpp rename to src/lib/settings/source_group/SourceGroupSettingsJavaGradle.cpp diff --git a/src/lib/settings/SourceGroupSettingsJavaGradle.h b/src/lib/settings/source_group/SourceGroupSettingsJavaGradle.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaGradle.h rename to src/lib/settings/source_group/SourceGroupSettingsJavaGradle.h diff --git a/src/lib/settings/SourceGroupSettingsJavaMaven.cpp b/src/lib/settings/source_group/SourceGroupSettingsJavaMaven.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaMaven.cpp rename to src/lib/settings/source_group/SourceGroupSettingsJavaMaven.cpp diff --git a/src/lib/settings/SourceGroupSettingsJavaMaven.h b/src/lib/settings/source_group/SourceGroupSettingsJavaMaven.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaMaven.h rename to src/lib/settings/source_group/SourceGroupSettingsJavaMaven.h diff --git a/src/lib/settings/SourceGroupSettingsJavaSonargraph.cpp b/src/lib/settings/source_group/SourceGroupSettingsJavaSonargraph.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaSonargraph.cpp rename to src/lib/settings/source_group/SourceGroupSettingsJavaSonargraph.cpp diff --git a/src/lib/settings/SourceGroupSettingsJavaSonargraph.h b/src/lib/settings/source_group/SourceGroupSettingsJavaSonargraph.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsJavaSonargraph.h rename to src/lib/settings/source_group/SourceGroupSettingsJavaSonargraph.h diff --git a/src/lib/settings/SourceGroupSettingsPythonEmpty.cpp b/src/lib/settings/source_group/SourceGroupSettingsPythonEmpty.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsPythonEmpty.cpp rename to src/lib/settings/source_group/SourceGroupSettingsPythonEmpty.cpp diff --git a/src/lib/settings/SourceGroupSettingsPythonEmpty.h b/src/lib/settings/source_group/SourceGroupSettingsPythonEmpty.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsPythonEmpty.h rename to src/lib/settings/source_group/SourceGroupSettingsPythonEmpty.h diff --git a/src/lib/settings/SourceGroupSettingsWithCStandard.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithCStandard.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCStandard.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithCStandard.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithCStandard.h b/src/lib/settings/source_group/SourceGroupSettingsWithCStandard.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCStandard.h rename to src/lib/settings/source_group/SourceGroupSettingsWithCStandard.h diff --git a/src/lib/settings/SourceGroupSettingsWithClasspath.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithClasspath.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithClasspath.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithClasspath.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithClasspath.h b/src/lib/settings/source_group/SourceGroupSettingsWithClasspath.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithClasspath.h rename to src/lib/settings/source_group/SourceGroupSettingsWithClasspath.h diff --git a/src/lib/settings/SourceGroupSettingsWithCppStandard.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithCppStandard.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCppStandard.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithCppStandard.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithCppStandard.h b/src/lib/settings/source_group/SourceGroupSettingsWithCppStandard.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCppStandard.h rename to src/lib/settings/source_group/SourceGroupSettingsWithCppStandard.h diff --git a/src/lib/settings/SourceGroupSettingsWithCxxCrossCompilationOptions.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithCxxCrossCompilationOptions.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCxxCrossCompilationOptions.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithCxxCrossCompilationOptions.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithCxxCrossCompilationOptions.h b/src/lib/settings/source_group/SourceGroupSettingsWithCxxCrossCompilationOptions.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCxxCrossCompilationOptions.h rename to src/lib/settings/source_group/SourceGroupSettingsWithCxxCrossCompilationOptions.h diff --git a/src/lib/settings/SourceGroupSettingsWithCxxPchOptions.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithCxxPchOptions.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCxxPchOptions.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithCxxPchOptions.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithCxxPchOptions.h b/src/lib/settings/source_group/SourceGroupSettingsWithCxxPchOptions.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithCxxPchOptions.h rename to src/lib/settings/source_group/SourceGroupSettingsWithCxxPchOptions.h diff --git a/src/lib/settings/SourceGroupSettingsWithExcludeFilters.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithExcludeFilters.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithExcludeFilters.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithExcludeFilters.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithExcludeFilters.h b/src/lib/settings/source_group/SourceGroupSettingsWithExcludeFilters.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithExcludeFilters.h rename to src/lib/settings/source_group/SourceGroupSettingsWithExcludeFilters.h diff --git a/src/lib/settings/SourceGroupSettingsWithIndexedHeaderPaths.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithIndexedHeaderPaths.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithIndexedHeaderPaths.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithIndexedHeaderPaths.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithIndexedHeaderPaths.h b/src/lib/settings/source_group/SourceGroupSettingsWithIndexedHeaderPaths.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithIndexedHeaderPaths.h rename to src/lib/settings/source_group/SourceGroupSettingsWithIndexedHeaderPaths.h diff --git a/src/lib/settings/SourceGroupSettingsWithJavaStandard.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithJavaStandard.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithJavaStandard.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithJavaStandard.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithJavaStandard.h b/src/lib/settings/source_group/SourceGroupSettingsWithJavaStandard.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithJavaStandard.h rename to src/lib/settings/source_group/SourceGroupSettingsWithJavaStandard.h diff --git a/src/lib/settings/SourceGroupSettingsWithSonargraphProjectPath.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithSonargraphProjectPath.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithSonargraphProjectPath.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithSonargraphProjectPath.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithSonargraphProjectPath.h b/src/lib/settings/source_group/SourceGroupSettingsWithSonargraphProjectPath.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithSonargraphProjectPath.h rename to src/lib/settings/source_group/SourceGroupSettingsWithSonargraphProjectPath.h diff --git a/src/lib/settings/SourceGroupSettingsWithSourceExtensions.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithSourceExtensions.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithSourceExtensions.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithSourceExtensions.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithSourceExtensions.h b/src/lib/settings/source_group/SourceGroupSettingsWithSourceExtensions.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithSourceExtensions.h rename to src/lib/settings/source_group/SourceGroupSettingsWithSourceExtensions.h diff --git a/src/lib/settings/SourceGroupSettingsWithSourcePaths.cpp b/src/lib/settings/source_group/SourceGroupSettingsWithSourcePaths.cpp similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithSourcePaths.cpp rename to src/lib/settings/source_group/SourceGroupSettingsWithSourcePaths.cpp diff --git a/src/lib/settings/SourceGroupSettingsWithSourcePaths.h b/src/lib/settings/source_group/SourceGroupSettingsWithSourcePaths.h similarity index 100% rename from src/lib/settings/SourceGroupSettingsWithSourcePaths.h rename to src/lib/settings/source_group/SourceGroupSettingsWithSourcePaths.h diff --git a/src/lib/settings/SourceGroupStatusType.cpp b/src/lib/settings/source_group/SourceGroupStatusType.cpp similarity index 100% rename from src/lib/settings/SourceGroupStatusType.cpp rename to src/lib/settings/source_group/SourceGroupStatusType.cpp diff --git a/src/lib/settings/SourceGroupStatusType.h b/src/lib/settings/source_group/SourceGroupStatusType.h similarity index 100% rename from src/lib/settings/SourceGroupStatusType.h rename to src/lib/settings/source_group/SourceGroupStatusType.h diff --git a/src/lib/settings/SourceGroupType.cpp b/src/lib/settings/source_group/SourceGroupType.cpp similarity index 100% rename from src/lib/settings/SourceGroupType.cpp rename to src/lib/settings/source_group/SourceGroupType.cpp diff --git a/src/lib/settings/SourceGroupType.h b/src/lib/settings/source_group/SourceGroupType.h similarity index 100% rename from src/lib/settings/SourceGroupType.h rename to src/lib/settings/source_group/SourceGroupType.h