refs #196, encapsulated transponder mode selection (combo box)

* promoted QComboBox in GUI
* features automatic reset for ident
* Conversion to CTransponder::TransponderMode from string
This commit is contained in:
Klaus Basan
2014-03-27 01:13:19 +01:00
parent a4e6f0e20c
commit 5bdb8659ca
8 changed files with 241 additions and 149 deletions

View File

@@ -0,0 +1,73 @@
#ifndef BLACKGUI_QWITRANSPONDERMODESELECTOR_H
#define BLACKGUI_QWITRANSPONDERMODESELECTOR_H
#include "../blackmisc/aviotransponder.h"
#include "blackmisc/aviotransponder.h"
#include <QTimer>
#include <QComboBox>
#include <QStringList>
namespace BlackGui
{
/*!
* \brief Selector for the transponder mode
*/
class CTransponderModeSelector : public QComboBox
{
Q_OBJECT
private:
BlackMisc::Aviation::CTransponder::TransponderMode m_currentMode;
BlackMisc::Aviation::CTransponder::TransponderMode m_resetMode;
QTimer m_resetTimer;
public:
//! \brief Constructor
explicit CTransponderModeSelector(QWidget *parent = nullptr);
//! \brief Standby string
static const QString &transponderStateStandby();
//! \brief Ident string
static const QString &transponderStateIdent();
//! \brief Mode C string
static const QString &transponderModeC();
//! \brief All relevant modes for GUI
static const QStringList &modes();
//! \brief Selected transponder mode
BlackMisc::Aviation::CTransponder::TransponderMode getSelectedTransponderMode() const;
//! \brief Selected transponder mode
void setSelectedTransponderMode(BlackMisc::Aviation::CTransponder::TransponderMode mode);
//!\ brief Set to ident
void setSelectedTransponderModeStateIdent()
{
this->setSelectedTransponderMode(BlackMisc::Aviation::CTransponder::StateIdent);
}
//! \brief Ident selected
bool isIdentSelected() const
{
return this->getSelectedTransponderMode() == BlackMisc::Aviation::CTransponder::StateIdent;
}
public slots:
//! \brief reset to last mode (unequal ident)
void resetTransponderMode();
//! \brief Selected transponder mode
void setSelectedTransponderModeAsString(const QString &mode);
signals:
//! \brief Ident ended
void identEnded();
};
} // namespace
#endif // guard