diff --git a/bin/app/data/ApplicationSettings_template.xml b/bin/app/data/ApplicationSettings_template.xml index c0c70aea..c6c40b5c 100644 --- a/bin/app/data/ApplicationSettings_template.xml +++ b/bin/app/data/ApplicationSettings_template.xml @@ -6,6 +6,8 @@ + + diff --git a/src/lib/Application.cpp b/src/lib/Application.cpp index a2bb92eb..fa133d82 100644 --- a/src/lib/Application.cpp +++ b/src/lib/Application.cpp @@ -12,7 +12,8 @@ std::shared_ptr Application::create(ViewFactory* viewFactory) { - ApplicationSettings::getInstance()->load("data/ApplicationSettings.xml"); + std::shared_ptr settings = ApplicationSettings::getInstance(); + settings->load("data/ApplicationSettings.xml"); std::shared_ptr ptr(new Application()); @@ -26,7 +27,15 @@ std::shared_ptr Application::create(ViewFactory* viewFactory) ptr->m_componentManager->setup(ptr->m_mainView.get()); ptr->m_mainView->loadLayout(); - MessageLoadProject("data/ProjectSettings.xml").dispatch(); + std::string startupProjectFilePath = settings->getStartupProjectFilePath(); + if (startupProjectFilePath.size()) + { + MessageLoadProject(startupProjectFilePath).dispatch(); + } + else + { + LOG_WARNING("No StartupProject defined in ApplicationSettings"); + } return ptr; } diff --git a/src/lib/settings/ApplicationSettings.cpp b/src/lib/settings/ApplicationSettings.cpp index 9a6ac0b9..7e9267ea 100644 --- a/src/lib/settings/ApplicationSettings.cpp +++ b/src/lib/settings/ApplicationSettings.cpp @@ -16,6 +16,11 @@ ApplicationSettings::~ApplicationSettings() { } +std::string ApplicationSettings::getStartupProjectFilePath() const +{ + return getValue("StartupProject", ""); +} + int ApplicationSettings::getCodeTabWidth() const { return getValue("code/TabWidth", 4); diff --git a/src/lib/settings/ApplicationSettings.h b/src/lib/settings/ApplicationSettings.h index 5e13107c..50659ccc 100644 --- a/src/lib/settings/ApplicationSettings.h +++ b/src/lib/settings/ApplicationSettings.h @@ -16,6 +16,8 @@ public: static std::shared_ptr getInstance(); ~ApplicationSettings(); + std::string getStartupProjectFilePath() const; + // code int getCodeTabWidth() const; void setCodeTabWidth(int codeTabWidth); diff --git a/src/lib/utility/ConfigManager.cpp b/src/lib/utility/ConfigManager.cpp index 01e4d150..1aba48e6 100644 --- a/src/lib/utility/ConfigManager.cpp +++ b/src/lib/utility/ConfigManager.cpp @@ -29,7 +29,7 @@ bool ConfigManager::getValue(const std::string& key, std::string& value) const } else { - LOG_ERROR("value " + key + " is not present in config."); + LOG_WARNING("value " + key + " is not present in config."); return false; } } @@ -84,7 +84,7 @@ bool ConfigManager::getValues(const std::string& key, std::vector& } else { - LOG_ERROR("value " + key + " is not present in config."); + LOG_WARNING("value " + key + " is not present in config."); return false; } }