diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-09-09 17:56:02 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2019-10-15 11:47:29 +0000 |
commit | edc8512580fa16892dc13034e93300cc6a2bba59 (patch) | |
tree | 5f0d60809650ac9188a5ee84f741fc30170a1192 /src | |
parent | 5fcd32c86413df81b36be6fed162d3da5c7556e2 (diff) |
Models: Move labs classes into src/imports/labsmodels
We want to have only one import URI per library.
Change-Id: I8be524cf361b12bcb423c9efccd4e047ae3d8d0e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
14 files changed, 197 insertions, 80 deletions
diff --git a/src/imports/labsmodels/labsmodels.pro b/src/imports/labsmodels/labsmodels.pro index 5ef2ad76f6..c35e5f963d 100644 --- a/src/imports/labsmodels/labsmodels.pro +++ b/src/imports/labsmodels/labsmodels.pro @@ -3,9 +3,27 @@ TARGET = labsmodelsplugin TARGETPATH = Qt/labs/qmlmodels IMPORT_VERSION = 1.0 +QT = qml-private qmlmodels-private + SOURCES += \ plugin.cpp -QT = qml-private qmlmodels-private +qtConfig(qml-table-model) { + SOURCES += \ + $$PWD/qqmltablemodel.cpp \ + $$PWD/qqmltablemodelcolumn.cpp + + HEADERS += \ + $$PWD/qqmltablemodel_p.h \ + $$PWD/qqmltablemodelcolumn_p.h +} + +qtConfig(qml-delegate-model) { + SOURCES += \ + qqmldelegatecomponent.cpp + + HEADERS += \ + qqmldelegatecomponent_p.h +} load(qml_plugin) diff --git a/src/imports/labsmodels/plugin.cpp b/src/imports/labsmodels/plugin.cpp index cebc1dc920..f1d1dd20b0 100644 --- a/src/imports/labsmodels/plugin.cpp +++ b/src/imports/labsmodels/plugin.cpp @@ -42,6 +42,14 @@ #include <private/qqmlmodelsmodule_p.h> +#if QT_CONFIG(qml_table_model) +#include "qqmltablemodel_p.h" +#include "qqmltablemodelcolumn_p.h" +#endif +#if QT_CONFIG(qml_delegate_model) +#include "qqmldelegatecomponent_p.h" +#endif + QT_BEGIN_NAMESPACE /*! @@ -70,7 +78,13 @@ public: void registerTypes(const char *uri) override { Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.labs.qmlmodels")); - QQmlModelsModule::defineLabsModule(); + +#if QT_CONFIG(qml_delegate_model) + qmlRegisterTypesAndRevisions<QQmlDelegateChooser, QQmlDelegateChoice>(uri, 1); +#endif +#if QT_CONFIG(qml_table_model) + qmlRegisterTypesAndRevisions<QQmlTableModel, QQmlTableModelColumn>(uri, 1); +#endif qmlRegisterModule(uri, 1, 0); } diff --git a/src/qmlmodels/qqmldelegatecomponent.cpp b/src/imports/labsmodels/qqmldelegatecomponent.cpp index cc3b38ec93..b3c9afbb97 100644 --- a/src/qmlmodels/qqmldelegatecomponent.cpp +++ b/src/imports/labsmodels/qqmldelegatecomponent.cpp @@ -42,22 +42,6 @@ QT_BEGIN_NAMESPACE -QQmlAbstractDelegateComponent::QQmlAbstractDelegateComponent(QObject *parent) - : QQmlComponent(parent) -{ -} - -QQmlAbstractDelegateComponent::~QQmlAbstractDelegateComponent() -{ -} - -QVariant QQmlAbstractDelegateComponent::value(QQmlAdaptorModel *adaptorModel, int row, int column, const QString &role) const -{ - if (!adaptorModel) - return QVariant(); - return adaptorModel->value(adaptorModel->indexAt(row, column), role); -} - /*! \qmltype DelegateChoice \instantiates QQmlDelegateChoice diff --git a/src/qmlmodels/qqmldelegatecomponent_p.h b/src/imports/labsmodels/qqmldelegatecomponent_p.h index 86ad04d2e3..4c39dc0d0a 100644 --- a/src/qmlmodels/qqmldelegatecomponent_p.h +++ b/src/imports/labsmodels/qqmldelegatecomponent_p.h @@ -51,40 +51,15 @@ // We mean it. // -#include <private/qtqmlmodelsglobal_p.h> -#include <qqmlcomponent.h> +#include <QtQmlModels/private/qtqmlmodelsglobal_p.h> +#include <QtQmlModels/private/qqmlabstractdelegatecomponent_p.h> +#include <QtQml/qqmlcomponent.h> QT_REQUIRE_CONFIG(qml_delegate_model); QT_BEGIN_NAMESPACE -// TODO: consider making QQmlAbstractDelegateComponent public API -class QQmlAbstractDelegateComponentPrivate; -class QQmlAdaptorModel; -class Q_QMLMODELS_PRIVATE_EXPORT QQmlAbstractDelegateComponent : public QQmlComponent -{ - Q_OBJECT - QML_NAMED_ELEMENT(AbstractDelegateComponent) - QML_UNCREATABLE("Cannot create instance of abstract class AbstractDelegateComponent.") - -public: - QQmlAbstractDelegateComponent(QObject *parent = nullptr); - ~QQmlAbstractDelegateComponent() override; - - virtual QQmlComponent *delegate(QQmlAdaptorModel *adaptorModel, int row, int column = 0) const = 0; - -signals: - void delegateChanged(); - -protected: - QVariant value(QQmlAdaptorModel *adaptorModel,int row, int column, const QString &role) const; - -private: - Q_DECLARE_PRIVATE(QQmlAbstractDelegateComponent) - Q_DISABLE_COPY(QQmlAbstractDelegateComponent) -}; - -class Q_QMLMODELS_PRIVATE_EXPORT QQmlDelegateChoice : public QObject +class QQmlDelegateChoice : public QObject { Q_OBJECT Q_PROPERTY(QVariant roleValue READ roleValue WRITE setRoleValue NOTIFY roleValueChanged) @@ -124,7 +99,7 @@ private: QQmlComponent *m_delegate = nullptr; }; -class Q_QMLMODELS_PRIVATE_EXPORT QQmlDelegateChooser : public QQmlAbstractDelegateComponent +class QQmlDelegateChooser : public QQmlAbstractDelegateComponent { Q_OBJECT Q_PROPERTY(QString role READ role WRITE setRole NOTIFY roleChanged) diff --git a/src/qmlmodels/qqmltablemodel.cpp b/src/imports/labsmodels/qqmltablemodel.cpp index f190ad86b1..f190ad86b1 100644 --- a/src/qmlmodels/qqmltablemodel.cpp +++ b/src/imports/labsmodels/qqmltablemodel.cpp diff --git a/src/qmlmodels/qqmltablemodel_p.h b/src/imports/labsmodels/qqmltablemodel_p.h index 4b667e1073..6bf3e6df19 100644 --- a/src/qmlmodels/qqmltablemodel_p.h +++ b/src/imports/labsmodels/qqmltablemodel_p.h @@ -51,11 +51,12 @@ // We mean it. // +#include "qqmltablemodelcolumn_p.h" + #include <QtCore/QObject> #include <QtCore/QAbstractTableModel> #include <QtQml/qqml.h> #include <QtQmlModels/private/qtqmlmodelsglobal_p.h> -#include <QtQmlModels/private/qqmltablemodelcolumn_p.h> #include <QtQml/QJSValue> #include <QtQml/QQmlListProperty> @@ -63,7 +64,7 @@ QT_REQUIRE_CONFIG(qml_table_model); QT_BEGIN_NAMESPACE -class Q_QMLMODELS_PRIVATE_EXPORT QQmlTableModel : public QAbstractTableModel, public QQmlParserStatus +class QQmlTableModel : public QAbstractTableModel, public QQmlParserStatus { Q_OBJECT Q_PROPERTY(int columnCount READ columnCount NOTIFY columnCountChanged FINAL) diff --git a/src/qmlmodels/qqmltablemodelcolumn.cpp b/src/imports/labsmodels/qqmltablemodelcolumn.cpp index 93da0642de..93da0642de 100644 --- a/src/qmlmodels/qqmltablemodelcolumn.cpp +++ b/src/imports/labsmodels/qqmltablemodelcolumn.cpp diff --git a/src/qmlmodels/qqmltablemodelcolumn_p.h b/src/imports/labsmodels/qqmltablemodelcolumn_p.h index 33f32ccb68..a18f21ab4f 100644 --- a/src/qmlmodels/qqmltablemodelcolumn_p.h +++ b/src/imports/labsmodels/qqmltablemodelcolumn_p.h @@ -60,7 +60,7 @@ QT_REQUIRE_CONFIG(qml_table_model); QT_BEGIN_NAMESPACE -class Q_QMLMODELS_PRIVATE_EXPORT QQmlTableModelColumn : public QObject +class QQmlTableModelColumn : public QObject { Q_OBJECT Q_PROPERTY(QJSValue display READ display WRITE setDisplay NOTIFY displayChanged FINAL) diff --git a/src/qmlmodels/qmlmodels.pro b/src/qmlmodels/qmlmodels.pro index 1d733f5bdb..78bf579903 100644 --- a/src/qmlmodels/qmlmodels.pro +++ b/src/qmlmodels/qmlmodels.pro @@ -28,14 +28,10 @@ qtConfig(qml-object-model) { qtConfig(qml-table-model) { SOURCES += \ - $$PWD/qqmltableinstancemodel.cpp \ - $$PWD/qqmltablemodel.cpp \ - $$PWD/qqmltablemodelcolumn.cpp + $$PWD/qqmltableinstancemodel.cpp HEADERS += \ - $$PWD/qqmltableinstancemodel_p.h \ - $$PWD/qqmltablemodel_p.h \ - $$PWD/qqmltablemodelcolumn_p.h + $$PWD/qqmltableinstancemodel_p.h } qtConfig(qml-list-model) { @@ -51,18 +47,18 @@ qtConfig(qml-list-model) { qtConfig(qml-delegate-model) { SOURCES += \ + $$PWD/qqmlabstractdelegatecomponent.cpp \ $$PWD/qqmladaptormodel.cpp \ $$PWD/qqmldelegatemodel.cpp \ - $$PWD/qqmldelegatecomponent.cpp \ $$PWD/qqmllistaccessor.cpp \ $$PWD/qqmllistcompositor.cpp \ $$PWD/qquickpackage.cpp HEADERS += \ + $$PWD/qqmlabstractdelegatecomponent_p.h \ $$PWD/qqmladaptormodel_p.h \ $$PWD/qqmldelegatemodel_p.h \ $$PWD/qqmldelegatemodel_p_p.h \ - $$PWD/qqmldelegatecomponent_p.h \ $$PWD/qqmllistaccessor_p.h \ $$PWD/qqmllistcompositor_p.h \ $$PWD/qquickpackage_p.h diff --git a/src/qmlmodels/qqmlabstractdelegatecomponent.cpp b/src/qmlmodels/qqmlabstractdelegatecomponent.cpp new file mode 100644 index 0000000000..1058d87485 --- /dev/null +++ b/src/qmlmodels/qqmlabstractdelegatecomponent.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml 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 <QtQmlModels/private/qqmlabstractdelegatecomponent_p.h> +#include <QtQmlModels/private/qqmladaptormodel_p.h> + +QT_BEGIN_NAMESPACE + +QQmlAbstractDelegateComponent::QQmlAbstractDelegateComponent(QObject *parent) + : QQmlComponent(parent) +{ +} + +QQmlAbstractDelegateComponent::~QQmlAbstractDelegateComponent() +{ +} + +QVariant QQmlAbstractDelegateComponent::value(QQmlAdaptorModel *adaptorModel, int row, int column, const QString &role) const +{ + if (!adaptorModel) + return QVariant(); + return adaptorModel->value(adaptorModel->indexAt(row, column), role); +} + +QT_END_NAMESPACE diff --git a/src/qmlmodels/qqmlabstractdelegatecomponent_p.h b/src/qmlmodels/qqmlabstractdelegatecomponent_p.h new file mode 100644 index 0000000000..07cae6b092 --- /dev/null +++ b/src/qmlmodels/qqmlabstractdelegatecomponent_p.h @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml 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$ +** +****************************************************************************/ + +#ifndef QQMLABSTRACTDELEGATECOMPONENT_P_H +#define QQMLABSTRACTDELEGATECOMPONENT_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <private/qtqmlmodelsglobal_p.h> +#include <private/qqmlcomponentattached_p.h> +#include <qqmlcomponent.h> + +QT_REQUIRE_CONFIG(qml_delegate_model); + +QT_BEGIN_NAMESPACE + +// TODO: consider making QQmlAbstractDelegateComponent public API +class QQmlAdaptorModel; +class Q_QMLMODELS_PRIVATE_EXPORT QQmlAbstractDelegateComponent : public QQmlComponent +{ + Q_OBJECT + QML_NAMED_ELEMENT(AbstractDelegateComponent) + QML_UNCREATABLE("Cannot create instance of abstract class AbstractDelegateComponent.") + +public: + QQmlAbstractDelegateComponent(QObject *parent = nullptr); + ~QQmlAbstractDelegateComponent() override; + + virtual QQmlComponent *delegate(QQmlAdaptorModel *adaptorModel, int row, int column = 0) const = 0; + +signals: + void delegateChanged(); + +protected: + QVariant value(QQmlAdaptorModel *adaptorModel,int row, int column, const QString &role) const; +}; + +QT_END_NAMESPACE + +#endif // QQMLABSTRACTDELEGATECOMPONENT_P_H diff --git a/src/qmlmodels/qqmldelegatemodel.cpp b/src/qmlmodels/qqmldelegatemodel.cpp index 2c3382c643..e3c01d040a 100644 --- a/src/qmlmodels/qqmldelegatemodel.cpp +++ b/src/qmlmodels/qqmldelegatemodel.cpp @@ -38,10 +38,10 @@ ****************************************************************************/ #include "qqmldelegatemodel_p_p.h" -#include "qqmldelegatecomponent_p.h" #include <QtQml/qqmlinfo.h> +#include <private/qqmlabstractdelegatecomponent_p.h> #include <private/qquickpackage_p.h> #include <private/qmetaobjectbuilder_p.h> #include <private/qqmladaptormodel_p.h> diff --git a/src/qmlmodels/qqmlmodelsmodule.cpp b/src/qmlmodels/qqmlmodelsmodule.cpp index 5dbf84b599..dfd5632314 100644 --- a/src/qmlmodels/qqmlmodelsmodule.cpp +++ b/src/qmlmodels/qqmlmodelsmodule.cpp @@ -45,8 +45,8 @@ #include <private/qqmllistmodelworkeragent_p.h> #endif #if QT_CONFIG(qml_delegate_model) +#include <private/qqmlabstractdelegatecomponent_p.h> #include <private/qqmldelegatemodel_p.h> -#include <private/qqmldelegatecomponent_p.h> #include <private/qquickpackage_p.h> #include <private/qqmlcomponentattached_p.h> #endif @@ -54,10 +54,6 @@ #include <private/qqmlobjectmodel_p.h> #include <private/qqmlinstantiator_p.h> #endif -#if QT_CONFIG(qml_table_model) -#include <private/qqmltablemodel_p.h> -#include <private/qqmltablemodelcolumn_p.h> -#endif QT_BEGIN_NAMESPACE @@ -108,7 +104,7 @@ void QQmlModelsModule::defineModule() qmlRegisterTypesAndRevisions<QQmlListElement, QQmlListModel, QQmlListModelWorkerAgent>(uri, 2); #endif #if QT_CONFIG(qml_delegate_model) - qmlRegisterTypesAndRevisions<QQmlDelegateModel, QQmlDelegateModelGroup, QQuickPackage>(uri, 2); + qmlRegisterTypesAndRevisions<QQmlDelegateModel, QQmlDelegateModelGroup, QQuickPackage, QQmlAbstractDelegateComponent>(uri, 2); #endif #if QT_CONFIG(qml_object_model) qmlRegisterTypesAndRevisions<QQmlObjectModel, QQmlInstantiator, QQmlInstanceModel>(uri, 2); @@ -118,17 +114,4 @@ void QQmlModelsModule::defineModule() #endif } -void QQmlModelsModule::defineLabsModule() -{ - const char uri[] = "Qt.labs.qmlmodels"; - -#if QT_CONFIG(qml_delegate_model) - qmlRegisterTypesAndRevisions< - QQmlAbstractDelegateComponent, QQmlDelegateChooser, QQmlDelegateChoice>(uri, 1); -#endif -#if QT_CONFIG(qml_table_model) - qmlRegisterTypesAndRevisions<QQmlTableModel, QQmlTableModelColumn>(uri, 1); -#endif -} - QT_END_NAMESPACE diff --git a/src/qmlmodels/qqmltableinstancemodel.cpp b/src/qmlmodels/qqmltableinstancemodel.cpp index 9b79df3441..a538ae4a1f 100644 --- a/src/qmlmodels/qqmltableinstancemodel.cpp +++ b/src/qmlmodels/qqmltableinstancemodel.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qqmltableinstancemodel_p.h" -#include "qqmldelegatecomponent_p.h" +#include "qqmlabstractdelegatecomponent_p.h" #include <QtCore/QTimer> |