Warning, file /plasma/drkonqi/src/bugzillaintegration/libbugzilla/models/bugfield.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2019 Harald Sitter <sitter@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "bugfield.h"
0008 
0009 namespace Bugzilla
0010 {
0011 BugField::BugField(const QVariantHash &obj, QObject *parent)
0012     : QObject(parent)
0013 {
0014     registerVariantConverters();
0015 
0016     for (auto it = obj.constBegin(); it != obj.constEnd(); ++it) {
0017         setProperty(qPrintable(it.key()), it.value());
0018     }
0019 }
0020 
0021 QList<BugFieldValue *> BugField::values() const
0022 {
0023     return m_values;
0024 }
0025 
0026 void BugField::registerVariantConverters()
0027 {
0028     static bool convertersRegistered = false;
0029     if (convertersRegistered) {
0030         return;
0031     }
0032     convertersRegistered = true;
0033 
0034     QMetaType::registerConverter<QVariantList, QList<BugFieldValue *>>([](QVariantList v) -> QList<BugFieldValue *> {
0035         QList<BugFieldValue *> list;
0036         list.reserve(v.size());
0037         for (const QVariant &variant : qAsConst(v)) {
0038             list.append(new BugFieldValue(variant.toHash()));
0039         }
0040         return list;
0041     });
0042 }
0043 
0044 BugFieldValue::BugFieldValue(const QVariantHash &obj, QObject *parent)
0045     : QObject(parent)
0046 {
0047     for (auto it = obj.constBegin(); it != obj.constEnd(); ++it) {
0048         setProperty(qPrintable(it.key()), it.value());
0049     }
0050 }
0051 
0052 QString BugFieldValue::name() const
0053 {
0054     return m_name;
0055 }
0056 
0057 } // namespace Bugzilla