From b79aa0601c39f0efe705ba9762476c9b463914f4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 19 Aug 2018 00:01:01 +0200 Subject: [PATCH] Wizard fixes as discussed here: https://swift-project.slack.com/archives/G7GD2UP9C/p1534597257000200 - improved message for initial data loading - Simulator wizard page before 1st model set page - 1st model set component, forced directory loading (and not just displaying model cache) --- src/blackgui/components/cockpitcomponent.h | 2 +- src/blackgui/components/configurationwizard.h | 4 +- .../components/configurationwizard.ui | 81 ++++++++++++------- src/blackgui/components/dbownmodelsdialog.cpp | 5 ++ src/blackgui/components/dbownmodelsdialog.h | 3 + .../components/firstmodelsetcomponent.cpp | 19 +++-- .../components/firstmodelsetcomponent.ui | 6 +- .../components/initialdataloadcomponent.ui | 18 +---- 8 files changed, 84 insertions(+), 54 deletions(-) diff --git a/src/blackgui/components/cockpitcomponent.h b/src/blackgui/components/cockpitcomponent.h index 531fd02e4..3b82b9b5f 100644 --- a/src/blackgui/components/cockpitcomponent.h +++ b/src/blackgui/components/cockpitcomponent.h @@ -38,7 +38,7 @@ namespace BlackGui explicit CCockpitComponent(QWidget *parent = nullptr); //! Destructor - virtual ~CCockpitComponent(); + virtual ~CCockpitComponent() override; //! \copydoc CEnableForDockWidgetInfoArea::setParentDockWidgetInfoArea virtual bool setParentDockWidgetInfoArea(BlackGui::CDockWidgetInfoArea *parentDockableWidget) override; diff --git a/src/blackgui/components/configurationwizard.h b/src/blackgui/components/configurationwizard.h index 06e25f7c2..90d931331 100644 --- a/src/blackgui/components/configurationwizard.h +++ b/src/blackgui/components/configurationwizard.h @@ -36,8 +36,8 @@ namespace BlackGui DataLoad, CopyModels, CopySettingsAndCaches, - FirstModelSet, ConfigSimulator, + FirstModelSet, XSwiftBus, ConfigHotkeys }; @@ -46,7 +46,7 @@ namespace BlackGui explicit CConfigurationWizard(QWidget *parent = nullptr); //! Destructor - virtual ~CConfigurationWizard(); + virtual ~CConfigurationWizard() override; //! Was the last step skipped? bool lastStepSkipped() const; diff --git a/src/blackgui/components/configurationwizard.ui b/src/blackgui/components/configurationwizard.ui index 97f2b4ab7..aa25c7f8e 100644 --- a/src/blackgui/components/configurationwizard.ui +++ b/src/blackgui/components/configurationwizard.ui @@ -75,11 +75,11 @@ - - QFrame::StyledPanel - - - QFrame::Raised + + + 0 + 150 + @@ -135,26 +135,6 @@ - - - First model set - - - Create a simple model set (for a start) - - - - - - I do this later / do not need this - - - - - - - - Simulator @@ -177,11 +157,38 @@ - - QFrame::StyledPanel + + + 0 + 125 + - - QFrame::Raised + + + + + + + First model set + + + Create a simple model set (for a start) + + + + + + I do this later / do not need this + + + + + + + + 0 + 175 + @@ -389,5 +396,21 @@ + + pb_SkipFirstModelSet + clicked() + CConfigurationWizard + next() + + + 678 + 67 + + + 804 + 121 + + + diff --git a/src/blackgui/components/dbownmodelsdialog.cpp b/src/blackgui/components/dbownmodelsdialog.cpp index fc0b56bef..f69968673 100644 --- a/src/blackgui/components/dbownmodelsdialog.cpp +++ b/src/blackgui/components/dbownmodelsdialog.cpp @@ -39,6 +39,11 @@ namespace BlackGui return ui->comp_OwnModels->requestModelsInBackground(simulator, onlyIfNotEmpty); } + int CDbOwnModelsDialog::getOwnModelsCount() const + { + return ui->comp_OwnModels->getOwnModelsCount(); + } + const CDbOwnModelsComponent *CDbOwnModelsDialog::modelsComponent() const { return ui->comp_OwnModels; diff --git a/src/blackgui/components/dbownmodelsdialog.h b/src/blackgui/components/dbownmodelsdialog.h index 3c8be2914..f36776555 100644 --- a/src/blackgui/components/dbownmodelsdialog.h +++ b/src/blackgui/components/dbownmodelsdialog.h @@ -42,6 +42,9 @@ namespace BlackGui //! \copydoc CDbOwnModelsComponent::requestModelsInBackground bool requestModelsInBackground(const BlackMisc::Simulation::CSimulatorInfo &simulator, bool onlyIfNotEmpty); + //! \copydoc CDbOwnModelsComponent::getOwnModelsCount + int getOwnModelsCount() const; + //! Direct access to component //! \remark allows to use the powerful component class const CDbOwnModelsComponent *modelsComponent() const; diff --git a/src/blackgui/components/firstmodelsetcomponent.cpp b/src/blackgui/components/firstmodelsetcomponent.cpp index 3966ff5fc..0d593a852 100644 --- a/src/blackgui/components/firstmodelsetcomponent.cpp +++ b/src/blackgui/components/firstmodelsetcomponent.cpp @@ -145,8 +145,12 @@ namespace BlackGui void CFirstModelSetComponent::openOwnModelsDialog() { if (!sGui || sGui->isShuttingDown() || !sGui->getWebDataServices()) { return; } + if (!m_modelsDialog) { return; } const bool reload = (QObject::sender() == ui->pb_ModelsTriggerReload); + const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); + m_modelsDialog->setSimulator(simulator); + if (reload) { if (!sGui->getWebDataServices()->hasDbModelData()) @@ -154,12 +158,15 @@ namespace BlackGui const QMessageBox::StandardButton reply = QMessageBox::warning(this->mainWindow(), "DB data", "No DB data, models cannot be consolidated. Load anyway?", QMessageBox::Yes | QMessageBox::No); if (reply != QMessageBox::Yes) { return; } } - const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); - m_modelsDialog->requestModelsInBackground(simulator, true); - } - const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); - m_modelsDialog->setSimulator(simulator); + bool loadOnlyIfNotEmpty = true; + if (m_modelsDialog->getOwnModelsCount() > 0) + { + const QMessageBox::StandardButton reply = QMessageBox::warning(this->mainWindow(), "Model loading", "Reload the models?\nThe xisting cache data will we overridden.", QMessageBox::Yes | QMessageBox::No); + if (reply == QMessageBox::Yes) { loadOnlyIfNotEmpty = false; } + } + m_modelsDialog->requestModelsInBackground(simulator, loadOnlyIfNotEmpty); + } m_modelsDialog->exec(); // force UI update @@ -221,7 +228,7 @@ namespace BlackGui bool useAllModels = false; if (!ui->comp_Distributors->hasSelectedDistributors()) { - const QMessageBox::StandardButton reply = QMessageBox::question(this->mainWindow(), "Models", "No distributors selected, use all model?", QMessageBox::Yes | QMessageBox::No); + const QMessageBox::StandardButton reply = QMessageBox::question(this->mainWindow(), "Models", "No distributors selected, use all models?", QMessageBox::Yes | QMessageBox::No); if (reply == QMessageBox::Yes) { useAllModels = true; diff --git a/src/blackgui/components/firstmodelsetcomponent.ui b/src/blackgui/components/firstmodelsetcomponent.ui index c693e830e..b1d552615 100644 --- a/src/blackgui/components/firstmodelsetcomponent.ui +++ b/src/blackgui/components/firstmodelsetcomponent.ui @@ -27,7 +27,7 @@ - <html><head/><body><p><span style=" font-size:9pt;">The model set defines which aircraft you will use in the simulator. From all models you have installed on your disk you can select a subset actually being used.<br/><br/>1) Reload your models if not already done<br/>2) Create your model set and SAVE the model set</span></p></body></html> + <html><head/><body><p><span style=" font-size:9pt;">The model set defines aircraft you will use in the simulator. From all models you have installed on your disk you can select a subset actually being used for model matching.<br/><br/>1) Reload your models if not already done<br/>2) Create your model set and SAVE the model set</span></p></body></html> Qt::RichText @@ -178,6 +178,9 @@ + + clear directory or multiple directories + clear @@ -218,6 +221,7 @@ pb_ModelsTriggerReload le_ModelSetInfo pb_ModelSet + pb_CreateModelSet diff --git a/src/blackgui/components/initialdataloadcomponent.ui b/src/blackgui/components/initialdataloadcomponent.ui index c5e1a47de..479772a18 100644 --- a/src/blackgui/components/initialdataloadcomponent.ui +++ b/src/blackgui/components/initialdataloadcomponent.ui @@ -13,13 +13,7 @@ Initial data loading - - QFrame::StyledPanel - - - QFrame::Raised - - + 4 @@ -34,13 +28,7 @@ - - - 0 - 0 - - - + @@ -54,7 +42,7 @@ - <html><head/><body><p>We recommend to download an initial data set. This may take some time, but then you can start to use all tools with full functionality.</p></body></html> + <html><head/><body><p><span style=" font-size:10pt;">We recommend to download an initial data set. This may take some time, but then you can start to use all tools with full functionality. You can wait until the load is completed and you see entries for all cache values (C#). Or you can already move on, </span><span style=" font-size:10pt; font-weight:600;">loading continues in background</span><span style=" font-size:10pt;">.</span></p></body></html> true