diff options
Diffstat (limited to 'src/corelib/kernel/qppsattribute.cpp')
-rw-r--r-- | src/corelib/kernel/qppsattribute.cpp | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/src/corelib/kernel/qppsattribute.cpp b/src/corelib/kernel/qppsattribute.cpp deleted file mode 100644 index 166d590872..0000000000 --- a/src/corelib/kernel/qppsattribute.cpp +++ /dev/null @@ -1,308 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 BlackBerry Limited. All rights reserved. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qppsattribute_p.h" -#include "qppsattributeprivate_p.h" - -#include <QDebug> -#include <QVariant> - -QT_BEGIN_NAMESPACE - -/////////////////////////// -// -// QPpsAttributePrivate -// -/////////////////////////// - -QPpsAttributePrivate::QPpsAttributePrivate() : type(QPpsAttribute::None) -{ -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(int value, QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::Number; - attribute.d->data = value; - attribute.d->flags = flags; - return attribute; -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(long long value, QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::Number; - attribute.d->data = value; - attribute.d->flags = flags; - return attribute; -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(double value, QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::Number; - attribute.d->data = value; - attribute.d->flags = flags; - return attribute; -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(bool value, QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::Bool; - attribute.d->data = value; - attribute.d->flags = flags; - return attribute; -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(const QString &value, - QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::String; - attribute.d->data = value; - attribute.d->flags = flags; - return attribute; -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(const QPpsAttributeList &value, - QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::Array; - attribute.d->data = QVariant::fromValue(value); - attribute.d->flags = flags; - return attribute; -} - -QPpsAttribute QPpsAttributePrivate::createPpsAttribute(const QPpsAttributeMap &value, - QPpsAttribute::Flags flags) -{ - QPpsAttribute attribute; - attribute.d->type = QPpsAttribute::Object; - attribute.d->data = QVariant::fromValue(value); - attribute.d->flags = flags; - return attribute; -} - -/////////////////////////// -// -// QPpsAttribute -// -/////////////////////////// - -QPpsAttribute::QPpsAttribute() : d(new QPpsAttributePrivate()) -{ -} - -QPpsAttribute::~QPpsAttribute() -{ -} - -QPpsAttribute::QPpsAttribute(const QPpsAttribute &other) : d(other.d) -{ -} - -QPpsAttribute &QPpsAttribute::operator=(const QPpsAttribute &other) -{ - d = other.d; - return *this; -} - -QPpsAttribute::QPpsAttribute(QPpsAttribute &&other) : d(other.d) -{ - other.d->type = QPpsAttribute::None; -} - -QPpsAttribute &QPpsAttribute::operator=(QPpsAttribute &&other) -{ - qSwap(d, other.d); - return *this; -} - -bool QPpsAttribute::operator==(const QPpsAttribute &other) const -{ - if (type() != other.type()) - return false; - if (flags() != other.flags()) - return false; - - switch (type()) { - case QPpsAttribute::Number: - case QPpsAttribute::Bool: - case QPpsAttribute::String: - // QVariant can compare double, int, longlong, bool, and QString for us. - return d->data == other.d->data; - case QPpsAttribute::Array: - // QVariant can't compare custom types (like QPpsAttributeList), always returning false. - // So we pull the lists out manually and compare them. - return toList() == other.toList(); - case QPpsAttribute::Object: - // QVariant can't compare custom types (like QPpsAttributeMap), always returning false. - // So we pull the maps out manually and compare them. - return toMap() == other.toMap(); - case QPpsAttribute::None: - // Both are "None" type, so the actual content doesn't matter. - return true; - } - return d->data == other.d->data; -} - -bool QPpsAttribute::isValid() const -{ - return d->type != QPpsAttribute::None; -} - -QPpsAttribute::Type QPpsAttribute::type() const -{ - return d->type; -} - -bool QPpsAttribute::isNumber() const -{ - return type() == QPpsAttribute::Number; -} - -bool QPpsAttribute::isBool() const -{ - return type() == QPpsAttribute::Bool; -} - -bool QPpsAttribute::isString() const -{ - return type() == QPpsAttribute::String; -} - -bool QPpsAttribute::isArray() const -{ - return type() == QPpsAttribute::Array; -} - -bool QPpsAttribute::isObject() const -{ - return type() == QPpsAttribute::Object; -} - -double QPpsAttribute::toDouble() const -{ - return d->data.toDouble(); -} - -qlonglong QPpsAttribute::toLongLong() const -{ - return d->data.toLongLong(); -} - -int QPpsAttribute::toInt() const -{ - return d->data.toInt(); -} - -bool QPpsAttribute::toBool() const -{ - return d->data.toBool(); -} - -QString QPpsAttribute::toString() const -{ - return d->data.toString(); -} - -QPpsAttributeList QPpsAttribute::toList() const -{ - return d->data.value< QPpsAttributeList >(); -} - -QPpsAttributeMap QPpsAttribute::toMap() const -{ - return d->data.value< QPpsAttributeMap >(); -} - -QPpsAttribute::Flags QPpsAttribute::flags() const -{ - return d->flags; -} - -QVariant QPpsAttribute::toVariant() const -{ - return d->data; -} - -QDebug operator<<(QDebug dbg, const QPpsAttribute &attribute) -{ - QDebugStateSaver saver(dbg); - dbg.nospace() << "QPpsAttribute("; - - switch (attribute.type()) { - case QPpsAttribute::Number: - switch (attribute.toVariant().type()) { - case QVariant::Int: - dbg << "Number, " << attribute.flags() << ", " << attribute.toInt(); - break; - case QVariant::LongLong: - dbg << "Number, " << attribute.flags() << ", " << attribute.toLongLong(); - break; - default: - dbg << "Number, " << attribute.flags() << ", " << attribute.toDouble(); - break; - } - break; - case QPpsAttribute::Bool: - dbg << "Bool, " << attribute.flags() << ", " << attribute.toBool(); - break; - case QPpsAttribute::String: - dbg << "String, " << attribute.flags() << ", " << attribute.toString(); - break; - case QPpsAttribute::Array: - dbg << "Array, " << attribute.flags() << ", " << attribute.toList(); - break; - case QPpsAttribute::Object: - dbg << "Object, " << attribute.flags() << ", " << attribute.toMap(); - break; - case QPpsAttribute::None: - dbg << "None"; - break; - } - - dbg << ')'; - - return dbg; -} - -QT_END_NAMESPACE |