diff --git a/src/blackgui/modelmodeselector.cpp b/src/blackgui/modelmodeselector.cpp new file mode 100644 index 000000000..9851eb0df --- /dev/null +++ b/src/blackgui/modelmodeselector.cpp @@ -0,0 +1,63 @@ +/* Copyright (C) 2016 + * swift project Community / Contributors + * + * This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "modelmodeselector.h" +#include "ui_modelmodeselector.h" + +using namespace BlackMisc::Simulation; + +namespace BlackGui +{ + CModelModeSelector::CModelModeSelector(QWidget *parent) : + QFrame(parent), + ui(new Ui::CModelModeSelector) + { + ui->setupUi(this); + connect(ui->rb_Include, &QRadioButton::released, this, &CModelModeSelector::changed); + } + + CModelModeSelector::~CModelModeSelector() + { + // void + } + + BlackMisc::Simulation::CAircraftModel::ModelMode CModelModeSelector::getMode() const + { + if (ui->rb_Include->isChecked()) + { + return CAircraftModel::Include; + } + else + { + return CAircraftModel::Exclude; + } + } + + void CModelModeSelector::setValue(CAircraftModel::ModelMode mode) + { + if (mode == CAircraftModel::Include) + { + ui->rb_Include->setChecked(true); + } + else + { + ui->rb_Exclude->setChecked(true); + } + } + + void CModelModeSelector::setValue(const CAircraftModel &model) + { + this->setValue(model.getModelMode()); + } + + void CModelModeSelector::setReadOnly(bool readOnly) + { + this->setEnabled(!readOnly); + } +} diff --git a/src/blackgui/modelmodeselector.h b/src/blackgui/modelmodeselector.h new file mode 100644 index 000000000..757e6f8b6 --- /dev/null +++ b/src/blackgui/modelmodeselector.h @@ -0,0 +1,59 @@ +/* Copyright (C) 2016 + * swift project Community / Contributors + * + * This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKGUI_MODELMODESELECTOR_H +#define BLACKGUI_MODELMODESELECTOR_H + +#include "blackguiexport.h" +#include "blackmisc/simulation/aircraftmodel.h" +#include +#include + +namespace Ui { class CModelModeSelector; } + +namespace BlackGui +{ + /*! + * Select the mode + */ + class BLACKGUI_EXPORT CModelModeSelector : public QFrame + { + Q_OBJECT + + public: + //! Constructor + explicit CModelModeSelector(QWidget *parent = nullptr); + + //! Destructor + ~CModelModeSelector(); + + //! Get mode + BlackMisc::Simulation::CAircraftModel::ModelMode getMode() const; + + //! Set mode + void setValue(BlackMisc::Simulation::CAircraftModel::ModelMode mode); + + //! Set mode + void setValue(const BlackMisc::Simulation::CAircraftModel &model); + + //! Read only + void setReadOnly(bool readOnly); + + signals: + //! Value changed + void changed(); + + private: + QScopedPointer ui; + }; +} + +#endif // guard diff --git a/src/blackgui/modelmodeselector.ui b/src/blackgui/modelmodeselector.ui new file mode 100644 index 000000000..6ed4d03ce --- /dev/null +++ b/src/blackgui/modelmodeselector.ui @@ -0,0 +1,59 @@ + + + CModelModeSelector + + + + 0 + 0 + 88 + 25 + + + + Model include/exclude + + + QFrame::NoFrame + + + QFrame::Plain + + + + 3 + + + 3 + + + 3 + + + 3 + + + + + Include model + + + In + + + true + + + + + + + Ex. + + + + + + + +