refs #892, init plugin info also after startup

* fixes issue when plugin is already loaded
* plus some formatting/renaming
This commit is contained in:
Klaus Basan
2017-02-27 20:01:06 +01:00
committed by Mathew Sutcliffe
parent 7203655a05
commit d504bfbee0
3 changed files with 21 additions and 15 deletions

View File

@@ -55,6 +55,9 @@ namespace BlackGui
ui(new Ui::CSettingsSimulatorComponent), ui(new Ui::CSettingsSimulatorComponent),
m_plugins(new CPluginManagerSimulator(this)) m_plugins(new CPluginManagerSimulator(this))
{ {
Q_ASSERT_X(sGui, Q_FUNC_INFO, "Missing sGui");
Q_ASSERT_X(sGui->getIContextSimulator(), Q_FUNC_INFO, "Missing context");
m_plugins->collectPlugins(); m_plugins->collectPlugins();
ui->setupUi(this); ui->setupUi(this);
CLedWidget::LedShape shape = CLedWidget::Circle; CLedWidget::LedShape shape = CLedWidget::Circle;
@@ -66,9 +69,9 @@ namespace BlackGui
// connects // connects
connect(sGui->getIContextSimulator(), &IContextSimulator::simulatorPluginChanged, this, &CSettingsSimulatorComponent::ps_simulatorPluginChanged); connect(sGui->getIContextSimulator(), &IContextSimulator::simulatorPluginChanged, this, &CSettingsSimulatorComponent::ps_simulatorPluginChanged);
connect(ui->ps_EnabledSimulators, &CPluginSelector::pluginStateChanged, this, &CSettingsSimulatorComponent::ps_pluginStateChanged); connect(ui->pluginSelector_EnabledSimulators, &CPluginSelector::pluginStateChanged, this, &CSettingsSimulatorComponent::ps_pluginStateChanged);
connect(ui->ps_EnabledSimulators, &CPluginSelector::pluginDetailsRequested, this, &CSettingsSimulatorComponent::ps_showPluginDetails); connect(ui->pluginSelector_EnabledSimulators, &CPluginSelector::pluginDetailsRequested, this, &CSettingsSimulatorComponent::ps_showPluginDetails);
connect(ui->ps_EnabledSimulators, &CPluginSelector::pluginConfigRequested, this, &CSettingsSimulatorComponent::ps_showPluginConfig); connect(ui->pluginSelector_EnabledSimulators, &CPluginSelector::pluginConfigRequested, this, &CSettingsSimulatorComponent::ps_showPluginConfig);
connect(ui->pb_ApplyMaxAircraft, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::ps_onApplyMaxRenderedAircraft); connect(ui->pb_ApplyMaxAircraft, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::ps_onApplyMaxRenderedAircraft);
connect(ui->pb_ApplyTimeSync, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::ps_onApplyTimeSync); connect(ui->pb_ApplyTimeSync, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::ps_onApplyTimeSync);
connect(ui->pb_ApplyMaxDistance, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::ps_onApplyMaxRenderedDistance); connect(ui->pb_ApplyMaxDistance, &QCheckBox::pressed, this, &CSettingsSimulatorComponent::ps_onApplyMaxRenderedDistance);
@@ -83,11 +86,14 @@ namespace BlackGui
for (const auto &p : getAvailablePlugins()) for (const auto &p : getAvailablePlugins())
{ {
const QString config = m_plugins->getPluginConfigId(p.getIdentifier()); const QString config = m_plugins->getPluginConfigId(p.getIdentifier());
ui->ps_EnabledSimulators->addPlugin(p.getIdentifier(), p.getName(), !config.isEmpty(), false); ui->pluginSelector_EnabledSimulators->addPlugin(p.getIdentifier(), p.getName(), !config.isEmpty(), false);
} }
// config // config
ps_reloadPluginConfig(); ps_reloadPluginConfig();
// init
ps_simulatorPluginChanged(sGui->getIContextSimulator()->getSimulatorPluginInfo());
} }
CSettingsSimulatorComponent::~CSettingsSimulatorComponent() CSettingsSimulatorComponent::~CSettingsSimulatorComponent()
@@ -115,9 +121,9 @@ namespace BlackGui
if (m_pluginLoaded) if (m_pluginLoaded)
{ {
bool timeSynced = sGui->getIContextSimulator()->isTimeSynchronized(); const bool timeSynced = sGui->getIContextSimulator()->isTimeSynchronized();
ui->cb_TimeSync->setChecked(timeSynced); ui->cb_TimeSync->setChecked(timeSynced);
CTime timeOffset = sGui->getIContextSimulator()->getTimeSynchronizationOffset(); const CTime timeOffset = sGui->getIContextSimulator()->getTimeSynchronizationOffset();
ui->le_TimeSyncOffset->setText(timeOffset.formattedHrsMin()); ui->le_TimeSyncOffset->setText(timeOffset.formattedHrsMin());
const int maxAircraft = setup.getMaxRenderedAircraft(); const int maxAircraft = setup.getMaxRenderedAircraft();
@@ -151,7 +157,7 @@ namespace BlackGui
if (selected->isUnspecified()) if (selected->isUnspecified())
{ {
CLogMessage(this).error("Simulator plugin does not exist: %1") << identifier; CLogMessage(this).error("Simulator plugin does not exist: '%1'") << identifier;
return; return;
} }
@@ -258,8 +264,8 @@ namespace BlackGui
void CSettingsSimulatorComponent::ps_simulatorPluginChanged(const CSimulatorPluginInfo &info) void CSettingsSimulatorComponent::ps_simulatorPluginChanged(const CSimulatorPluginInfo &info)
{ {
// I intentionally to not set the selected plugin combobox here // I intentionally do not set the selected plugin combobox here
// as this would cause undesired rountrips // as this would cause undesired roundtrips
// other GUI values // other GUI values
if (!info.isUnspecified()) if (!info.isUnspecified())
@@ -322,7 +328,7 @@ namespace BlackGui
auto enabledSimulators = m_enabledSimulators.getThreadLocal(); auto enabledSimulators = m_enabledSimulators.getThreadLocal();
for (const auto &p : getAvailablePlugins()) for (const auto &p : getAvailablePlugins())
{ {
ui->ps_EnabledSimulators->setEnabled(p.getIdentifier(), enabledSimulators.contains(p.getIdentifier())); ui->pluginSelector_EnabledSimulators->setEnabled(p.getIdentifier(), enabledSimulators.contains(p.getIdentifier()));
} }
} }
} }

View File

@@ -84,7 +84,7 @@ namespace BlackGui
BlackMisc::Simulation::CSimulatorPluginInfoList getAvailablePlugins() const; BlackMisc::Simulation::CSimulatorPluginInfoList getAvailablePlugins() const;
QScopedPointer<Ui::CSettingsSimulatorComponent> ui; //!< UI QScopedPointer<Ui::CSettingsSimulatorComponent> ui; //!< UI
bool m_pluginLoaded = false; //!< plugin loaded bool m_pluginLoaded = false; //!< plugin loaded?
BlackCore::CPluginManagerSimulator* m_plugins = nullptr; BlackCore::CPluginManagerSimulator* m_plugins = nullptr;
BlackMisc::CSetting<BlackCore::Application::TEnabledSimulators> m_enabledSimulators { this, &CSettingsSimulatorComponent::ps_reloadPluginConfig }; BlackMisc::CSetting<BlackCore::Application::TEnabledSimulators> m_enabledSimulators { this, &CSettingsSimulatorComponent::ps_reloadPluginConfig };
}; };

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>377</width> <width>261</width>
<height>346</height> <height>248</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -234,7 +234,7 @@
<item alignment="Qt::AlignRight"> <item alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_RestrictionText"> <widget class="QLabel" name="lbl_RestrictionText">
<property name="text"> <property name="text">
<string>rest.text goes here</string> <string>restriction info</string>
</property> </property>
</widget> </widget>
</item> </item>
@@ -358,7 +358,7 @@
</layout> </layout>
</item> </item>
<item row="0" column="0" colspan="2"> <item row="0" column="0" colspan="2">
<widget class="BlackGui::CPluginSelector" name="ps_EnabledSimulators" native="true"/> <widget class="BlackGui::CPluginSelector" name="pluginSelector_EnabledSimulators" native="true"/>
</item> </item>
</layout> </layout>
</widget> </widget>