diff --git a/src/blackmisc/blackmiscallvalueclasses.h b/src/blackmisc/blackmiscallvalueclasses.h index 84b2accdd..6eb94c429 100644 --- a/src/blackmisc/blackmiscallvalueclasses.h +++ b/src/blackmisc/blackmiscallvalueclasses.h @@ -15,6 +15,7 @@ #include "blackmisc/statusmessagelist.h" #include "blackmisc/statusmessage.h" #include "blackmisc/audioallclasses.h" +#include "blackmisc/variantlist.h" #include "hotkeyfunction.h" #endif // guard diff --git a/src/blackmisc/variantlist.cpp b/src/blackmisc/variantlist.cpp new file mode 100644 index 000000000..5f82b3692 --- /dev/null +++ b/src/blackmisc/variantlist.cpp @@ -0,0 +1,35 @@ +/* Copyright (C) 2014 + * 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 "variantlist.h" + +namespace BlackMisc +{ + /* + * Default constructor + */ + CVariantList::CVariantList() = default; + + /* + * Construct from base class object + */ + CVariantList::CVariantList(const CSequence &other) : + CSequence(other) + {} + + /* + * Register metadata + */ + void CVariantList::registerMetadata() + { + qRegisterMetaType(); + qDBusRegisterMetaType(); + registerMetaValueType(); + } +} // namespace diff --git a/src/blackmisc/variantlist.h b/src/blackmisc/variantlist.h new file mode 100644 index 000000000..31439f000 --- /dev/null +++ b/src/blackmisc/variantlist.h @@ -0,0 +1,50 @@ +/* Copyright (C) 2014 + * 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_VARIANTLIST_H +#define BLACKMISC_VARIANTLIST_H + +#include "variant.h" +#include "sequence.h" +#include "collection.h" + +namespace BlackMisc +{ + + /*! + * Value object encapsulating a list of variants. + */ + class CVariantList : public CSequence + { + public: + //! Default constructor. + CVariantList(); + + //! Construct from a base class object. + CVariantList(const CSequence &other); + + //! \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); } + + //! \brief Register metadata + static void registerMetadata(); + }; + +} + +Q_DECLARE_METATYPE(BlackMisc::CVariantList) +Q_DECLARE_METATYPE(BlackMisc::CCollection) +Q_DECLARE_METATYPE(BlackMisc::CSequence) + +#endif