swift
transpondermodeselector.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <QStringList>
7 
8 using namespace swift::misc::aviation;
9 
10 namespace swift::gui::components
11 {
12  CTransponderModeSelector::CTransponderModeSelector(QWidget *parent) : QComboBox(parent)
13  {
15  m_resetTimer.setObjectName(this->objectName().append(":m_resetTimer"));
19  m_resetTimer.setInterval(5000);
20  }
21 
23  {
24  static const QString s(CTransponder::modeAsString(CTransponder::StateStandby));
25  return s;
26  }
27 
29  {
30  static const QString s(CTransponder::modeAsString(CTransponder::StateIdent));
31  return s;
32  }
33 
35  {
36  static const QString s(CTransponder::modeAsString(CTransponder::ModeC));
37  return s;
38  }
39 
41  {
45  return modes;
46  }
47 
49  {
50  return m_currentMode;
51  }
52 
54  {
55  return this->getSelectedTransponderMode() == CTransponder::StateIdent;
56  }
57 
59  {
60  if (mode != CTransponder::StateIdent) { m_resetMode = mode; }
61  if (m_currentMode == mode) { return; }
62  if (m_currentMode == CTransponder::StateIdent) { emit this->transponderStateIdentEnded(); }
63  m_currentMode = mode;
64  const QString m = CTransponder::modeAsString(mode);
66  if (mode == CTransponder::StateIdent) { m_resetTimer.start(); }
67  else { m_resetTimer.stop(); }
68  emit this->transponderModeChanged(m_currentMode);
69  }
70 
72  {
74  }
75 
77  {
78  CTransponder::TransponderMode m = CTransponder::modeFromString(mode);
79  if (m_currentMode == m) return; // nothing to change
81  }
82 
84  {
85  if (!this->isIdentSelected()) return; // avoid unnecessary events
86  this->setSelectedTransponderMode(m_resetMode);
87  }
88 } // namespace swift::gui::components
void setSelectedTransponderModeAsString(const QString &mode)
Selected transponder mode.
void transponderStateIdentEnded()
Ident phase ended.
static const QString & transponderStateIdent()
Ident string.
static const QString & transponderStateStandby()
Standby string.
void transponderModeChanged(swift::misc::aviation::CTransponder::TransponderMode newMode)
Mode / state has been changed.
void setSelectedTransponderMode(swift::misc::aviation::CTransponder::TransponderMode mode)
Selected transponder mode.
swift::misc::aviation::CTransponder::TransponderMode getSelectedTransponderMode() const
Selected transponder mode.
static const QStringList & modes()
All relevant modes for GUI.
static const QString & transponderModeC()
Mode C string.
void resetTransponderMode()
reset to last mode (unequal ident)
void setSelectedTransponderModeStateIdent()
Set to ident (transponder state)
@ StateIdent
not a real mode, more a state
Definition: transponder.h:39
High level reusable GUI components.
Definition: aboutdialog.cpp:13
void setCurrentText(const QString &text)
void currentTextChanged(const QString &text)
void insertItems(int index, const QStringList &list)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
void setObjectName(QAnyStringView name)
void setInterval(int msec)
void start()
void stop()
void timeout()