mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-03 15:45:46 +08:00
refs #404, and discussion https://dev.vatsim-germany.org/issues/404#note-8 * Changed CSimulatorSetup to use CNameVariantPairList as data. The old version was an hack and had to go, CNameVariantPairList would allow complex types in the future and can be already shown in the GUI. * CNameVariantPairList was improved slightly in the same step * Functions to get CSimulatorSetup from driver / context * Removed CSimulatorSetup data from CSimulatorPluginInfo
68 lines
2.3 KiB
C++
68 lines
2.3 KiB
C++
/* Copyright (C) 2013
|
|
* 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 BLACKMISC_NAMEVARIANPAIRTLIST_H
|
|
#define BLACKMISC_NAMEVARIANPAIRTLIST_H
|
|
|
|
#include "namevariantpair.h"
|
|
#include "collection.h"
|
|
#include "sequence.h"
|
|
|
|
namespace BlackMisc
|
|
{
|
|
//! Value object encapsulating a list of name/variant pairs
|
|
//! Currently name must be unique
|
|
class CNameVariantPairList : public CSequence<CNameVariantPair>
|
|
{
|
|
public:
|
|
//! Default constructor.
|
|
CNameVariantPairList();
|
|
|
|
//! Construct from a base class object.
|
|
CNameVariantPairList(const CSequence<CNameVariantPair> &other);
|
|
|
|
//! Get name's index, -1 if not found
|
|
int getIndexForName(const QString &name) const;
|
|
|
|
//! Contains name
|
|
bool containsName(const QString &name) const;
|
|
|
|
//! Get value
|
|
CNameVariantPair getValue(const QString &name) const;
|
|
|
|
//! Get pair's variant value or default if not existing
|
|
CVariant getVariantValue(const QString &name) const;
|
|
|
|
//! Get pair's variant value as string (empty if not existing)
|
|
QString getValueAsString(const QString &name) const;
|
|
|
|
//! Add value, if name already exists replace (true)
|
|
//! If one is sure(!) the name does not exists, \sa push_back() can be used
|
|
bool addOrReplaceValue(const QString &name, const CVariant &value, const CIcon &icon = CIcon());
|
|
|
|
//! \copydoc CValueObject::toQVariant
|
|
virtual QVariant toQVariant() const override { return QVariant::fromValue(*this); }
|
|
|
|
//! \copydoc CValueObject::convertFromQVariant
|
|
virtual void convertFromQVariant(const QVariant &variant) override { BlackMisc::setFromQVariant(this, variant); }
|
|
|
|
//! Register metadata
|
|
static void registerMetadata();
|
|
|
|
};
|
|
} //namespace
|
|
|
|
Q_DECLARE_METATYPE(BlackMisc::CNameVariantPairList)
|
|
Q_DECLARE_METATYPE(BlackMisc::CCollection<BlackMisc::CNameVariantPair>)
|
|
Q_DECLARE_METATYPE(BlackMisc::CSequence<BlackMisc::CNameVariantPair>)
|
|
|
|
#endif //guard
|