refs #139 list for keyboard keys and the corresponding models for the GUI

This commit is contained in:
Klaus Basan
2014-02-17 02:23:46 +01:00
parent 2c75fa4ab0
commit a42f67ef9a
4 changed files with 305 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
/* Copyright (C) 2013 VATSIM Community / authors
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "hwkeyboardkeylist.h"
#include "predicates.h"
namespace BlackMisc
{
namespace Hardware
{
/*
* Constructor
*/
CKeyboardKeyList::CKeyboardKeyList() { }
/*
* Construct from base class object
*/
CKeyboardKeyList::CKeyboardKeyList(const CSequence<CKeyboardKey> &baseClass) :
CSequence<CKeyboardKey>(baseClass)
{ }
/*
* Register metadata
*/
void CKeyboardKeyList::registerMetadata()
{
qRegisterMetaType<BlackMisc::CSequence<CKeyboardKey>>();
qDBusRegisterMetaType<BlackMisc::CSequence<CKeyboardKey>>();
qRegisterMetaType<BlackMisc::CCollection<CKeyboardKey>>();
qDBusRegisterMetaType<BlackMisc::CCollection<CKeyboardKey>>();
qRegisterMetaType<CKeyboardKeyList>();
qDBusRegisterMetaType<CKeyboardKeyList>();
}
void CKeyboardKeyList::initAsHotkeyList()
{
this->clear();
this->push_back(CKeyboardKey(QChar::Null, CKeyboardKey::ModifierNone, CKeyboardKey::ModifierNone, CKeyboardKey::HotkeyPtt));
this->push_back(CKeyboardKey(QChar::Null, CKeyboardKey::ModifierNone, CKeyboardKey::ModifierNone, CKeyboardKey::HotkeyOpacity50));
this->push_back(CKeyboardKey(QChar::Null, CKeyboardKey::ModifierNone, CKeyboardKey::ModifierNone, CKeyboardKey::HotkeyOpacity100));
this->push_back(CKeyboardKey(QChar::Null, CKeyboardKey::ModifierNone, CKeyboardKey::ModifierNone, CKeyboardKey::HotkeyToggleCom1));
this->push_back(CKeyboardKey(QChar::Null, CKeyboardKey::ModifierNone, CKeyboardKey::ModifierNone, CKeyboardKey::HotkeyToggleCom2));
}
} // namespace
} // namespace

View File

@@ -0,0 +1,54 @@
/* Copyright (C) 2013 VATSIM Community / authors
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*!
\file
*/
#ifndef BLACKMISC_KEYBOARDKEYLIST_H
#define BLACKMISC_KEYBOARDKEYLIST_H
#include "hwkeyboardkey.h"
#include "collection.h"
#include "sequence.h"
#include <QObject>
namespace BlackMisc
{
namespace Hardware
{
/*!
* Value object encapsulating a list of keyboard keys.
*/
class CKeyboardKeyList : public CSequence<CKeyboardKey>
{
public:
//! Default constructor
CKeyboardKeyList();
//! \brief Construct from a base class object.
CKeyboardKeyList(const CSequence<CKeyboardKey> &baseClass);
//! \copydoc CValueObject::toQVariant
virtual QVariant toQVariant() const override
{
return QVariant::fromValue(*this);
}
//! \brief Register metadata
static void registerMetadata();
//! \brief Fill the list with hotkey
void initAsHotkeyList();
};
} //namespace
} // namespace
Q_DECLARE_METATYPE(BlackMisc::Hardware::CKeyboardKeyList)
Q_DECLARE_METATYPE(BlackMisc::CCollection<BlackMisc::Hardware::CKeyboardKey>)
Q_DECLARE_METATYPE(BlackMisc::CSequence<BlackMisc::Hardware::CKeyboardKey>)
#endif //guard