Ref T430, fixed selector for FG

This commit is contained in:
Klaus Basan
2018-12-06 23:29:06 +01:00
parent 363b7c9966
commit 345f207480
2 changed files with 30 additions and 13 deletions

View File

@@ -11,6 +11,7 @@
#include "blackgui/guiapplication.h" #include "blackgui/guiapplication.h"
#include "blackgui/guiutility.h" #include "blackgui/guiutility.h"
#include "blackcore/context/contextsimulator.h" #include "blackcore/context/contextsimulator.h"
#include "blackmisc/icons.h"
#include "blackmisc/compare.h" #include "blackmisc/compare.h"
#include "blackconfig/buildconfig.h" #include "blackconfig/buildconfig.h"
#include "ui_simulatorselector.h" #include "ui_simulatorselector.h"
@@ -22,6 +23,7 @@
#include <QPointer> #include <QPointer>
using namespace BlackConfig; using namespace BlackConfig;
using namespace BlackMisc;
using namespace BlackMisc::Simulation; using namespace BlackMisc::Simulation;
using namespace BlackCore::Context; using namespace BlackCore::Context;
@@ -34,8 +36,12 @@ namespace BlackGui
ui(new Ui::CSimulatorSelector) ui(new Ui::CSimulatorSelector)
{ {
ui->setupUi(this); ui->setupUi(this);
this->enableFG(false && CBuildConfig::isLocalDeveloperDebugBuild());
this->setMode(CheckBoxes); const bool withFG = false; // CBuildConfig::isLocalDeveloperDebugBuild();
this->enableFG(withFG);
this->addComboxBoxValues();
this->setMode(CheckBoxes, true);
connect(ui->rb_FS9, &QRadioButton::toggled, this, &CSimulatorSelector::radioButtonChanged); connect(ui->rb_FS9, &QRadioButton::toggled, this, &CSimulatorSelector::radioButtonChanged);
connect(ui->rb_FSX, &QRadioButton::toggled, this, &CSimulatorSelector::radioButtonChanged); connect(ui->rb_FSX, &QRadioButton::toggled, this, &CSimulatorSelector::radioButtonChanged);
@@ -50,15 +56,14 @@ namespace BlackGui
connect(ui->cb_XPlane, &QRadioButton::toggled, this, &CSimulatorSelector::checkBoxChanged); connect(ui->cb_XPlane, &QRadioButton::toggled, this, &CSimulatorSelector::checkBoxChanged);
connect(ui->cb_Simulators, &QComboBox::currentTextChanged, this, &CSimulatorSelector::comboBoxChanged); connect(ui->cb_Simulators, &QComboBox::currentTextChanged, this, &CSimulatorSelector::comboBoxChanged);
this->addComboxBoxValues();
} }
CSimulatorSelector::~CSimulatorSelector() CSimulatorSelector::~CSimulatorSelector()
{ } { }
void CSimulatorSelector::setMode(CSimulatorSelector::Mode mode) void CSimulatorSelector::setMode(CSimulatorSelector::Mode mode, bool forced)
{ {
if (m_mode == mode && !forced) { return; }
m_mode = mode; m_mode = mode;
ui->wi_CheckBoxes->setVisible(false); ui->wi_CheckBoxes->setVisible(false);
@@ -88,9 +93,9 @@ namespace BlackGui
switch (m_mode) switch (m_mode)
{ {
default: default:
case CheckBoxes: return CSimulatorInfo(ui->cb_FSX->isChecked(), ui->cb_FS9->isChecked(), ui->cb_XPlane->isChecked(), ui->cb_P3D->isChecked(), m_withFG && ui->cb_FG->isChecked()); case CheckBoxes: return CSimulatorInfo(ui->cb_FSX->isChecked(), ui->cb_FS9->isChecked(), ui->cb_XPlane->isChecked(), ui->cb_P3D->isChecked(), m_withFG && ui->cb_FG->isChecked());
case RadioButtons: return CSimulatorInfo(ui->rb_FSX->isChecked(), ui->rb_FS9->isChecked(), ui->rb_XPlane->isChecked(), ui->rb_P3D->isChecked(), m_withFG && ui->rb_FG->isChecked()); case RadioButtons: return CSimulatorInfo(ui->rb_FSX->isChecked(), ui->rb_FS9->isChecked(), ui->rb_XPlane->isChecked(), ui->rb_P3D->isChecked(), m_withFG && ui->rb_FG->isChecked());
case ComboBox: return CSimulatorInfo(ui->cb_Simulators->currentText()); case ComboBox: return CSimulatorInfo(ui->cb_Simulators->currentText());
} }
} }
@@ -106,6 +111,9 @@ namespace BlackGui
ui->cb_P3D->setChecked(simulator.isP3D()); ui->cb_P3D->setChecked(simulator.isP3D());
ui->cb_FG->setChecked(simulator.isFG()); ui->cb_FG->setChecked(simulator.isFG());
// Combo
ui->cb_Simulators->setCurrentText(simulator.toQString(true));
// radio buttons // radio buttons
if (simulator.isFSX()) { ui->rb_FSX->setChecked(simulator.isFSX()); return; } if (simulator.isFSX()) { ui->rb_FSX->setChecked(simulator.isFSX()); return; }
if (simulator.isFS9()) { ui->rb_FS9->setChecked(simulator.isFS9()); return; } if (simulator.isFS9()) { ui->rb_FS9->setChecked(simulator.isFS9()); return; }
@@ -113,12 +121,11 @@ namespace BlackGui
if (simulator.isP3D()) { ui->rb_P3D->setChecked(simulator.isP3D()); return; } if (simulator.isP3D()) { ui->rb_P3D->setChecked(simulator.isP3D()); return; }
if (simulator.isFG()) { ui->rb_FG->setChecked(simulator.isFG()); return; } if (simulator.isFG()) { ui->rb_FG->setChecked(simulator.isFG()); return; }
ui->cb_Simulators->setCurrentText(simulator.toQString(true));
} }
void CSimulatorSelector::setToLastSelection() void CSimulatorSelector::setToLastSelection()
{ {
const CSimulatorInfo simulator = (m_mode == RadioButtons) ? const CSimulatorInfo simulator = (m_mode == RadioButtons || m_mode == CheckBoxes) ?
m_currentSimulator.get() : m_currentSimulator.get() :
m_currentSimulators.get(); m_currentSimulators.get();
this->setValue(simulator); this->setValue(simulator);
@@ -370,7 +377,16 @@ namespace BlackGui
void CSimulatorSelector::addComboxBoxValues() void CSimulatorSelector::addComboxBoxValues()
{ {
ui->cb_Simulators->addItems(CSimulatorInfo::allSimulatorStrings()); int cbi = 0;
ui->cb_Simulators->clear();
ui->cb_Simulators->insertItem(cbi++, CSimulatorInfo::fs9().toQString());
ui->cb_Simulators->insertItem(cbi++, CSimulatorInfo::fsx().toQString());
ui->cb_Simulators->insertItem(cbi++, CSimulatorInfo::p3d().toQString());
ui->cb_Simulators->insertItem(cbi++, CSimulatorInfo::xplane().toQString());
if (m_withFG)
{
ui->cb_Simulators->insertItem(cbi++, CSimulatorInfo::fg().toQString());
}
} }
} // ns } // ns
} // ns } // ns

View File

@@ -21,8 +21,6 @@
#include <QObject> #include <QObject>
#include <QScopedPointer> #include <QScopedPointer>
class QWidget;
namespace Ui { class CSimulatorSelector; } namespace Ui { class CSimulatorSelector; }
namespace BlackGui namespace BlackGui
{ {
@@ -51,7 +49,10 @@ namespace BlackGui
virtual ~CSimulatorSelector(); virtual ~CSimulatorSelector();
//! How to display //! How to display
void setMode(Mode mode); void setMode(Mode mode, bool forced = false);
//! Get mode
Mode getMode() { return m_mode; }
//! No selection treated same as all selected (filters) //! No selection treated same as all selected (filters)
void setNoSelectionMeansAll(bool v) { m_noSelectionMeansAll = v; } void setNoSelectionMeansAll(bool v) { m_noSelectionMeansAll = v; }