diff --git a/src/blackgui/components/dbmappingcomponent.cpp b/src/blackgui/components/dbmappingcomponent.cpp index 1adfd45ae..1112cf4f1 100644 --- a/src/blackgui/components/dbmappingcomponent.cpp +++ b/src/blackgui/components/dbmappingcomponent.cpp @@ -785,11 +785,22 @@ namespace BlackGui return this->ui->comp_OwnAircraftModels->getOwnModelsSimulator(); } + void CDbMappingComponent::setOwnModelsSimulator(const CSimulatorInfo &simulator) + { + this->ui->comp_OwnAircraftModels->setSimulator(simulator); + } + int CDbMappingComponent::getOwnModelsCount() const { return this->ui->comp_OwnAircraftModels->getOwnModelsCount(); } + void CDbMappingComponent::setOwnModelSetSimulator(const CSimulatorInfo &simulator) + { + Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); + this->ui->comp_OwnModelSet->setModelSetSimulator(simulator); + } + CStatusMessage CDbMappingComponent::stashModel(const CAircraftModel &model, bool replace) { return this->ui->comp_StashAircraft->stashModel(model, replace); diff --git a/src/blackgui/components/dbmappingcomponent.h b/src/blackgui/components/dbmappingcomponent.h index fbbf3b958..a098e5233 100644 --- a/src/blackgui/components/dbmappingcomponent.h +++ b/src/blackgui/components/dbmappingcomponent.h @@ -50,7 +50,6 @@ namespace BlackMisc } } namespace Ui { class CDbMappingComponent; } - namespace BlackGui { namespace Menus { class CMenuActions; } @@ -93,7 +92,7 @@ namespace BlackGui //! Graceful shutdown void gracefulShutdown(); - //! With vPilot rules + //! With vPilot rules? bool withVPilot() const { return m_vPilotEnabled; } //! Any models which can be stashed? @@ -115,6 +114,8 @@ namespace BlackGui //! \note not guaranteed to be valid, just a snapshot of its current editor state BlackMisc::Simulation::CAircraftModel getEditorAircraftModel() const; + // ---------------- stash ----------------- + //! \name Models from BlackGui::Components::CDbStashComponent //! @{ //! Stashed models @@ -124,6 +125,8 @@ namespace BlackGui QStringList getStashedModelStrings() const; //! @} + // ---------------- own models ----------------- + //! \name Own models from BlackGui::Components::CDbOwnModelsComponent //! @{ //! Own models @@ -138,10 +141,18 @@ namespace BlackGui //! Own models for simulator const BlackMisc::Simulation::CSimulatorInfo getOwnModelsSimulator() const; + //! Set simulator for own models + void setOwnModelsSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); + //! Number of own models int getOwnModelsCount() const; //! @} + // ---------------- own models ----------------- + + //! Set simulator for own models + void setOwnModelSetSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); + public slots: //! \copydoc CDbStashComponent::stashModel BlackMisc::CStatusMessage stashModel(const BlackMisc::Simulation::CAircraftModel &model, bool replace = false); @@ -376,7 +387,7 @@ namespace BlackGui //! Mapping component CDbMappingComponent *mappingComponent() const; - QList m_menuActions; + QList m_menuActions; //!< actions, kept when once initialized }; //! Merge with vPilot data @@ -393,7 +404,7 @@ namespace BlackGui CDbMappingComponent *mappingComponent() const; private: - QList m_menuActions; + QList m_menuActions; //!< actions, kept when once initialized }; }; } // ns diff --git a/src/blackgui/components/dbownmodelscomponent.cpp b/src/blackgui/components/dbownmodelscomponent.cpp index ee2be7cc2..023827522 100644 --- a/src/blackgui/components/dbownmodelscomponent.cpp +++ b/src/blackgui/components/dbownmodelscomponent.cpp @@ -105,6 +105,12 @@ namespace BlackGui return this->m_modelLoader->getSimulator(); } + void CDbOwnModelsComponent::setSimulator(const CSimulatorInfo &simulator) + { + Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); + this->ps_loadInstalledModels(simulator, IAircraftModelLoader::InBackgroundWithCache); + } + int CDbOwnModelsComponent::getOwnModelsCount() const { if (!this->m_modelLoader) { return 0; } diff --git a/src/blackgui/components/dbownmodelscomponent.h b/src/blackgui/components/dbownmodelscomponent.h index d659d1630..46a52f87c 100644 --- a/src/blackgui/components/dbownmodelscomponent.h +++ b/src/blackgui/components/dbownmodelscomponent.h @@ -67,6 +67,9 @@ namespace BlackGui //! Own models for simulator const BlackMisc::Simulation::CSimulatorInfo getOwnModelsSimulator() const; + //! Change current simulator for own models + void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); + //! Number of own models int getOwnModelsCount() const; diff --git a/src/blackgui/components/dbownmodelsetcomponent.cpp b/src/blackgui/components/dbownmodelsetcomponent.cpp index 8c55f98df..babe8bde5 100644 --- a/src/blackgui/components/dbownmodelsetcomponent.cpp +++ b/src/blackgui/components/dbownmodelsetcomponent.cpp @@ -98,7 +98,7 @@ namespace BlackGui void CDbOwnModelSetComponent::setModelSet(const CAircraftModelList &models, const CSimulatorInfo &simulator) { Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); - this->setSimulator(simulator); + this->setModelSetSimulator(simulator); if (models.isEmpty()) { this->ui->tvp_OwnModelSet->clear(); @@ -153,7 +153,7 @@ namespace BlackGui if (!this->getModelSetSimulator().isSingleSimulator()) { // no sim yet, we set it - this->setSimulator(simulator); + this->setModelSetSimulator(simulator); } if (simulator != this->getModelSetSimulator()) { @@ -235,7 +235,7 @@ namespace BlackGui Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); if (this->getModelSetSimulator() == simulator) { return; } // avoid endless loops - this->setSimulator(simulator); + this->setModelSetSimulator(simulator); const CAircraftModelList models(this->m_modelSetLoader.getAircraftModels()); ui->tvp_OwnModelSet->updateContainerMaybeAsync(models); } @@ -269,7 +269,7 @@ namespace BlackGui { if (simulator.isSingleSimulator()) { - this->setSimulator(simulator); + this->setModelSetSimulator(simulator); } } @@ -295,7 +295,7 @@ namespace BlackGui this->ui->tvp_OwnModelSet->setSaveFileName(name); } - void CDbOwnModelSetComponent::setSimulator(const CSimulatorInfo &simulator) + void CDbOwnModelSetComponent::setModelSetSimulator(const CSimulatorInfo &simulator) { if (this->m_modelSetLoader.getSimulator() == simulator) { return; } // avoid unnecessary signals this->m_modelSetLoader.changeSimulator(simulator); diff --git a/src/blackgui/components/dbownmodelsetcomponent.h b/src/blackgui/components/dbownmodelsetcomponent.h index fd5474b41..a6740d0b0 100644 --- a/src/blackgui/components/dbownmodelsetcomponent.h +++ b/src/blackgui/components/dbownmodelsetcomponent.h @@ -82,6 +82,9 @@ namespace BlackGui //! Model set is for simulator const BlackMisc::Simulation::CSimulatorInfo getModelSetSimulator() const; + //! Simulator + void setModelSetSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); + //! \copydoc CDbMappingComponentAware::setMappingComponent virtual void setMappingComponent(CDbMappingComponent *component) override; @@ -94,10 +97,10 @@ namespace BlackGui //! @} public slots: - //! Set the model set + //! Set the model set for a given simulator void setModelSet(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator); - //! Replace or add models provided + //! Replace or add models provided for a given simulator void replaceOrAddModelSet(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator); private slots: @@ -129,9 +132,6 @@ namespace BlackGui //! Default file name void setSaveFileName(const BlackMisc::Simulation::CSimulatorInfo &sim); - //! Simulator - void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); - //! Update distributor order void updateDistributorOrder(const BlackMisc::Simulation::CSimulatorInfo &simulator); diff --git a/src/blackgui/components/dbownmodelsetdialog.cpp b/src/blackgui/components/dbownmodelsetdialog.cpp index 2f3acfa2c..f47e3d36b 100644 --- a/src/blackgui/components/dbownmodelsetdialog.cpp +++ b/src/blackgui/components/dbownmodelsetdialog.cpp @@ -24,6 +24,7 @@ using namespace BlackMisc; using namespace BlackMisc::Simulation; using namespace BlackCore; +using namespace BlackGui::Editors; namespace BlackGui { @@ -43,6 +44,7 @@ namespace BlackGui ui->setupUi(this); connect(ui->pb_Cancel, &QPushButton::clicked, this, &CDbOwnModelSetDialog::ps_buttonClicked); connect(ui->pb_Ok, &QPushButton::clicked, this, &CDbOwnModelSetDialog::ps_buttonClicked); + connect(ui->form_OwnModelSet, &COwnModelSetForm::simulatorChanged, this, &CDbOwnModelSetDialog::ps_simulatorChanged); } CDbOwnModelSetDialog::~CDbOwnModelSetDialog() @@ -52,14 +54,17 @@ namespace BlackGui void CDbOwnModelSetDialog::reloadData() { + this->m_simulatorInfo = this->getMappingComponent()->getOwnModelsSimulator(); + Q_ASSERT_X(this->m_simulatorInfo.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); + ui->form_OwnModelSet->setSimulator(this->m_simulatorInfo); this->ui->form_OwnModelSet->reloadData(); } int CDbOwnModelSetDialog::exec() { Q_ASSERT_X(this->getMappingComponent(), Q_FUNC_INFO, "missing mapping component"); - this->m_simulatorInfo = this->getMappingComponent()->getOwnModelsSimulator(); - this->setWindowTitle("Create model set for " + this->m_simulatorInfo.toQString(true)); + this->setSimulator(this->getMappingComponent()->getOwnModelsSimulator()); + this->checkData(); return QDialog::exec(); } @@ -77,6 +82,37 @@ namespace BlackGui } } + void CDbOwnModelSetDialog::ps_simulatorChanged(const CSimulatorInfo &simulator) + { + Q_ASSERT_X(this->getMappingComponent(), Q_FUNC_INFO, "missing mapping component"); + this->setSimulator(simulator); + this->getMappingComponent()->setOwnModelsSimulator(simulator); + this->getMappingComponent()->setOwnModelSetSimulator(simulator); + this->checkData(); + } + + bool CDbOwnModelSetDialog::checkData() + { + // models + Q_ASSERT_X(this->m_simulatorInfo.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); + const int c = this->getMappingComponent()->getOwnModelsCount(); + if (c < 1) + { + const CStatusMessage m = CStatusMessage(this).error("No models for %1") << this->m_simulatorInfo.toQString(true); + ui->form_OwnModelSet->showOverlayMessage(m); + return false; + } + return true; + } + + void CDbOwnModelSetDialog::setSimulator(const CSimulatorInfo &simulator) + { + Q_ASSERT_X(this->m_simulatorInfo.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); + this->m_simulatorInfo = simulator; + ui->form_OwnModelSet->setSimulator(this->m_simulatorInfo); + this->setWindowTitle("Create model set for " + this->m_simulatorInfo.toQString(true)); + } + CAircraftModelList CDbOwnModelSetDialog::buildSet(const CSimulatorInfo &simulator, const CAircraftModelList ¤tSet) { Q_ASSERT_X(this->getMappingComponent(), Q_FUNC_INFO, "missing mapping component"); diff --git a/src/blackgui/components/dbownmodelsetdialog.h b/src/blackgui/components/dbownmodelsetdialog.h index b272af4e0..2744ff948 100644 --- a/src/blackgui/components/dbownmodelsetdialog.h +++ b/src/blackgui/components/dbownmodelsetdialog.h @@ -64,11 +64,20 @@ namespace BlackGui //! Button clicked void ps_buttonClicked(); + //! Simulator changed + void ps_simulatorChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator); + private: QScopedPointer ui; BlackMisc::Simulation::CAircraftModelList m_modelSet; BlackMisc::Simulation::CSimulatorInfo m_simulatorInfo; + //! Check data + bool checkData(); + + //! Set current simulator + void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); + //! Build the set BlackMisc::Simulation::CAircraftModelList buildSet(const BlackMisc::Simulation::CSimulatorInfo &simulator, const BlackMisc::Simulation::CAircraftModelList ¤tSet = {}); }; diff --git a/src/blackgui/components/distributorpreferencescomponent.h b/src/blackgui/components/distributorpreferencescomponent.h index 08bc37f55..7bdfeab15 100644 --- a/src/blackgui/components/distributorpreferencescomponent.h +++ b/src/blackgui/components/distributorpreferencescomponent.h @@ -69,7 +69,7 @@ namespace BlackGui void ps_deferredInit(); private: - BlackGui::COverlayMessagesFrame *m_overlayMessageFrame = nullptr; + BlackGui::COverlayMessagesFrame *m_overlayMessageFrame = nullptr; QScopedPointer ui; BlackMisc::Simulation::CAircraftModelSetLoader m_modelSetLoader { BlackMisc::Simulation::CSimulatorInfo(BlackMisc::Simulation::CSimulatorInfo::FSX), this }; BlackMisc::CSetting m_distributorPreferences { this, &CDistributorPreferencesComponent::ps_preferencesChanged }; diff --git a/src/blackgui/components/simulatorselector.cpp b/src/blackgui/components/simulatorselector.cpp index 534b66745..6636003cb 100644 --- a/src/blackgui/components/simulatorselector.cpp +++ b/src/blackgui/components/simulatorselector.cpp @@ -145,6 +145,17 @@ namespace BlackGui return c; } + void CSimulatorSelector::setLeftMargin(int margin) + { + QMargins m = ui->hl_RadioButtons->contentsMargins(); + m.setLeft(margin); + ui->hl_RadioButtons->setContentsMargins(m); + + m = ui->hl_CheckBoxes->contentsMargins(); + m.setLeft(margin); + ui->hl_CheckBoxes->setContentsMargins(m); + } + void CSimulatorSelector::ps_RadioButtonChanged(bool checked) { if (this->m_mode != RadioButtons) { return; } diff --git a/src/blackgui/components/simulatorselector.h b/src/blackgui/components/simulatorselector.h index 4fab3799f..2d097de27 100644 --- a/src/blackgui/components/simulatorselector.h +++ b/src/blackgui/components/simulatorselector.h @@ -26,7 +26,7 @@ namespace BlackGui namespace Components { /*! - * Select simulator + * Select simulator (as radio buttons or checkboxes) */ class BLACKGUI_EXPORT CSimulatorSelector : public QFrame { @@ -67,6 +67,9 @@ namespace BlackGui //! All selected bool areAllSelected() const; + //! Set left margin + void setLeftMargin(int margin); + signals: //! Value has been changed void changed(const BlackMisc::Simulation::CSimulatorInfo &simulator); diff --git a/src/blackgui/editors/form.cpp b/src/blackgui/editors/form.cpp index ae633fe30..40f0363ff 100644 --- a/src/blackgui/editors/form.cpp +++ b/src/blackgui/editors/form.cpp @@ -16,8 +16,7 @@ namespace BlackGui { namespace Editors { - CForm::CForm(QWidget *parent) : - QFrame(parent) + CForm::CForm(QWidget *parent) : COverlayMessagesFrame(parent) { } CForm::~CForm() { } @@ -31,6 +30,5 @@ namespace BlackGui { // void } - } // ns } // ns diff --git a/src/blackgui/editors/form.h b/src/blackgui/editors/form.h index 4fa2ad381..5e395e3d2 100644 --- a/src/blackgui/editors/form.h +++ b/src/blackgui/editors/form.h @@ -12,8 +12,9 @@ #ifndef BLACKGUI_EDITORS_FORM_H #define BLACKGUI_EDITORS_FORM_H -#include "blackcore/data/authenticateduser.h" +#include "blackgui/overlaymessagesframe.h" #include "blackgui/blackguiexport.h" +#include "blackcore/data/authenticateduser.h" #include "blackmisc/datacache.h" #include @@ -30,7 +31,7 @@ namespace BlackGui /*! * Form base class */ - class BLACKGUI_EXPORT CForm : public QFrame + class BLACKGUI_EXPORT CForm : public COverlayMessagesFrame { Q_OBJECT @@ -51,7 +52,7 @@ namespace BlackGui //! Is read only? bool isReadOnly() const { return m_readOnly; } - //! Authenticated user + //! Authenticated DB user const BlackMisc::Network::CAuthenticatedUser &getSwiftDbUser() const; protected: diff --git a/src/blackgui/editors/ownmodelsetform.cpp b/src/blackgui/editors/ownmodelsetform.cpp index 20a2803fb..6f9bf9532 100644 --- a/src/blackgui/editors/ownmodelsetform.cpp +++ b/src/blackgui/editors/ownmodelsetform.cpp @@ -9,8 +9,9 @@ #include "blackcore/webdataservices.h" #include "blackgui/editors/ownmodelsetform.h" -#include "blackgui/guiapplication.h" #include "blackgui/models/distributorlistmodel.h" +#include "blackgui/guiapplication.h" +#include "blackgui/guiutility.h" #include "blackgui/views/distributorview.h" #include "blackmisc/simulation/distributorlist.h" #include "ui_ownmodelsetform.h" @@ -20,17 +21,23 @@ using namespace BlackMisc::Simulation; using namespace BlackGui::Models; +using namespace BlackGui::Components; namespace BlackGui { namespace Editors { COwnModelSetForm::COwnModelSetForm(QWidget *parent) : - QFrame(parent), + CForm(parent), ui(new Ui::COwnModelSetForm) { ui->setupUi(this); - this->ui->tvp_Distributors->setDistributorMode(CDistributorListModel::Minimal); + ui->tvp_Distributors->setDistributorMode(CDistributorListModel::Minimal); + ui->comp_SimulatorSelector->setMode(CSimulatorSelector::RadioButtons); + ui->comp_SimulatorSelector->setLeftMargin(0); + CGuiUtility::checkBoxReadOnly(ui->cb_Preferences, true); + + connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &COwnModelSetForm::ps_simulatorChanged); } COwnModelSetForm::~COwnModelSetForm() @@ -40,8 +47,10 @@ namespace BlackGui void COwnModelSetForm::reloadData() { - Q_ASSERT_X(sGui && sGui->hasWebDataServices(), Q_FUNC_INFO, "Missing web data services"); - const CDistributorList distributors(sGui->getWebDataServices()->getDistributors()); + const CDistributorList distributors(this->getDistributors()); + const bool hasPreferences = this->hasDIstributorPreferences(); + ui->cb_Preferences->setChecked(hasPreferences); + ui->comp_SimulatorSelector->setValue(this->m_simulator); if (!distributors.isEmpty()) { this->ui->tvp_Distributors->updateContainerMaybeAsync(distributors); @@ -63,6 +72,29 @@ namespace BlackGui return ui->rb_Incremental->isChecked(); } + void COwnModelSetForm::ps_preferencesChanged() + { + // void + } + + void COwnModelSetForm::ps_simulatorChanged(const CSimulatorInfo &simulator) + { + this->setSimulator(simulator); + this->reloadData(); + emit simulatorChanged(simulator); + } + + CDistributorList COwnModelSetForm::getDistributors() const + { + Q_ASSERT_X(sGui && sGui->hasWebDataServices(), Q_FUNC_INFO, "Missing web data services"); + const CDistributorListPreferences prefs(this->m_distributorPreferences.getCopy()); + const CDistributorList distributors(prefs.getDistributors(this->m_simulator)); + if (!distributors.isEmpty()) { return distributors; } + + // no preferences + return sGui->getWebDataServices()->getDistributors().matchesSimulator(this->m_simulator); + } + bool COwnModelSetForm::dbIcaoCodesOnly() const { return this->ui->rb_DbIcaoCodesOnly->isChecked(); @@ -72,6 +104,18 @@ namespace BlackGui { return ui->tvp_Distributors->selectedObjects(); } + + void COwnModelSetForm::setSimulator(const CSimulatorInfo &simulator) + { + Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); + m_simulator = simulator; + } + + bool COwnModelSetForm::hasDIstributorPreferences() const + { + const CDistributorListPreferences prefs(this->m_distributorPreferences.getCopy()); + return !prefs.getDistributors(this->m_simulator).isEmpty(); + } } // ns } // ns diff --git a/src/blackgui/editors/ownmodelsetform.h b/src/blackgui/editors/ownmodelsetform.h index f37db9aed..eea825a9e 100644 --- a/src/blackgui/editors/ownmodelsetform.h +++ b/src/blackgui/editors/ownmodelsetform.h @@ -12,16 +12,14 @@ #ifndef BLACKGUI_EDITORS_OWNMODELSETFORM_H #define BLACKGUI_EDITORS_OWNMODELSETFORM_H +#include "form.h" +#include "blackcore/settings/distributorpreferences.h" #include "blackmisc/simulation/distributorlist.h" -#include #include #include -class QWidget; - namespace Ui { class COwnModelSetForm; } - namespace BlackGui { namespace Editors @@ -29,7 +27,7 @@ namespace BlackGui /*! * Selection for own model set */ - class COwnModelSetForm : public QFrame + class COwnModelSetForm : public CForm { Q_OBJECT @@ -49,6 +47,9 @@ namespace BlackGui //! Get selected providers BlackMisc::Simulation::CDistributorList getSelectedDistributors() const; + //! Current simulator + void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); + //! Only DB data bool dbDataOnly() const; @@ -58,8 +59,33 @@ namespace BlackGui //! Request incremental build bool incrementalBuild() const; + //! Distributors + BlackMisc::Simulation::CDistributorList getDistributors() const; + + //! Preferences for given simulator + bool hasDIstributorPreferences() const; + + //! \name Form functions, here not used + //! \@{ + virtual void setReadOnly(bool readOnly) override { Q_UNUSED(readOnly); } + virtual void setSelectOnly() override {} + //! \@} + + signals: + //! Simulator changed + void simulatorChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator); + + private slots: + //! Changed preferences + void ps_preferencesChanged(); + + //! Simulator changed + void ps_simulatorChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator); + private: - QScopedPointer ui; + QScopedPointer ui; + BlackMisc::Simulation::CSimulatorInfo m_simulator; + BlackMisc::CSetting m_distributorPreferences { this, &COwnModelSetForm::ps_preferencesChanged }; }; } // ns } // ns diff --git a/src/blackgui/editors/ownmodelsetform.ui b/src/blackgui/editors/ownmodelsetform.ui index 1ddb9e523..c069487bc 100644 --- a/src/blackgui/editors/ownmodelsetform.ui +++ b/src/blackgui/editors/ownmodelsetform.ui @@ -37,7 +37,7 @@ 3 - + Own models for which DB data are available @@ -50,14 +50,27 @@ - + Source set: - + + + + default + + + true + + + bg_Distributors + + + + Model has ICAO code @@ -73,7 +86,14 @@ - + + + + Distributors: + + + + selected @@ -83,27 +103,37 @@ - - + + - default + Mode: + + + + + + + full true - bg_Distributors + bg_Mode - - + + - Distributors: + incremental + + bg_Mode + - + Model has ICAO code known in DB @@ -119,36 +149,30 @@ + + + + preferences + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + - + - Mode: + Simulator: - - - - full - - - true - - - bg_Mode - - - - - - - incremental - - - bg_Mode - - - @@ -172,12 +196,18 @@ QTableView
blackgui/views/distributorview.h
+ + BlackGui::Components::CSimulatorSelector + QFrame +
blackgui/components/simulatorselector.h
+ 1 +
- +