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)
{
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());
if (!this->getIContextSettings()) return false;
CSimulatorInfoList plugin = this->getAvailableSimulatorPlugins();
if (plugin.size() == 1)
CSimulatorInfoList plugins = this->getAvailableSimulatorPlugins();
if (plugins.size() == 1)
{
// 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(
this->getIContextSettings()->getSimulatorSettings().getSelectedPlugin()
);
if (this->loadSimulatorPlugin(
this->getIContextSettings()->getSimulatorSettings().getSelectedPlugin()
)) return true;
// we have plugins, but none got loaded
// just load first one
return this->loadSimulatorPlugin(plugins.front());
}
else
{