refs #237, load first plugin if settings do not match, provide a warning if no plugin is loaded

This commit is contained in:
Klaus Basan
2014-06-28 20:01:53 +02:00
parent 8fda6daee4
commit 8d08417f67
2 changed files with 16 additions and 8 deletions

View File

@@ -448,7 +448,11 @@ namespace BlackCore
if (this->m_contextSettings) if (this->m_contextSettings)
{ {
connect(this->m_contextSettings, &IContextSettings::changedSettings, this->m_contextSimulator, &IContextSimulator::settingsChanged); connect(this->m_contextSettings, &IContextSettings::changedSettings, this->m_contextSimulator, &IContextSimulator::settingsChanged);
this->m_contextSimulator->loadSimulatorPluginFromSettings(); if (!this->m_contextSimulator->loadSimulatorPluginFromSettings())
{
qWarning() << "No simulator plugin loaded";
this->sendStatusMessage(CStatusMessage::getWarningMessage("No simulator plugin loaded", CStatusMessage::TypeSimulator));
}
} }
} }

View File

@@ -150,17 +150,21 @@ namespace BlackCore
Q_ASSERT(this->getIContextSettings()); Q_ASSERT(this->getIContextSettings());
if (!this->getIContextSettings()) return false; if (!this->getIContextSettings()) return false;
CSimulatorInfoList plugin = this->getAvailableSimulatorPlugins(); CSimulatorInfoList plugins = this->getAvailableSimulatorPlugins();
if (plugin.size() == 1) if (plugins.size() == 1)
{ {
// load, independent from settings, we have only driver // load, independent from settings, we have only driver
return this->loadSimulatorPlugin(plugin.front()); return this->loadSimulatorPlugin(plugins.front());
} }
else if (plugin.size() > 1) else if (plugins.size() > 1)
{ {
return this->loadSimulatorPlugin( if (this->loadSimulatorPlugin(
this->getIContextSettings()->getSimulatorSettings().getSelectedPlugin() this->getIContextSettings()->getSimulatorSettings().getSelectedPlugin()
); )) return true;
// we have plugins, but none got loaded
// just load first one
return this->loadSimulatorPlugin(plugins.front());
} }
else else
{ {