From d0bbc9fee96dae342e07bda1a771f4afaaf04ee7 Mon Sep 17 00:00:00 2001 From: Marco Bubke <marco.bubke@digia.com> Date: Wed, 21 May 2014 12:35:27 +0200 Subject: [PATCH] QmlDesigner: Move ItemLibraryItemModel in own file Change-Id: I4cb5ddf82ed677b653c23cae173a67f833241e65 Reviewed-by: Tim Jenssen <tim.jenssen@digia.com> --- .../components/itemlibrary/itemlibrary.pri | 6 +- .../itemlibrary/itemlibraryitemmodel.cpp | 78 +++++++++++++++++++ .../itemlibrary/itemlibraryitemmodel.h | 70 +++++++++++++++++ .../itemlibrary/itemlibrarymodel.cpp | 51 +----------- .../components/itemlibrary/itemlibrarymodel.h | 28 ------- .../itemlibrary/itemlibrarysectionmodel.cpp | 2 + .../itemlibrary/itemlibrarysectionmodel.h | 2 + 7 files changed, 157 insertions(+), 80 deletions(-) create mode 100644 src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.cpp create mode 100644 src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.h diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.pri b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.pri index d9d9f2d446..eaea17ddb9 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.pri +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.pri @@ -6,14 +6,16 @@ HEADERS += itemlibraryview.h \ itemlibrarymodel.h \ itemlibrarycomponents.h \ itemlibraryimageprovider.h \ - itemlibrarysectionmodel.h + itemlibrarysectionmodel.h \ + itemlibraryitemmodel.h SOURCES += itemlibraryview.cpp \ itemlibrarywidget.cpp \ itemlibrarymodel.cpp \ itemlibrarycomponents.cpp \ itemlibraryimageprovider.cpp \ - itemlibrarysectionmodel.cpp + itemlibrarysectionmodel.cpp \ + itemlibraryitemmodel.cpp RESOURCES += itemlibrary.qrc diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.cpp new file mode 100644 index 0000000000..3a6f5bcd69 --- /dev/null +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.cpp @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "itemlibraryitemmodel.h" + +namespace QmlDesigner { + +ItemLibraryItemModel::ItemLibraryItemModel(int itemLibId, const QString &itemName, QObject *parent) + : QObject(parent), + m_libId(itemLibId), + m_name(itemName), + m_iconSize(64, 64) +{ +} + +ItemLibraryItemModel::~ItemLibraryItemModel() +{ +} + +int ItemLibraryItemModel::itemLibId() const +{ + return m_libId; +} + + +QString ItemLibraryItemModel::itemName() const +{ + return m_name; +} + +QString ItemLibraryItemModel::itemLibraryIconPath() const +{ + //Prepend image provider prefix + return QStringLiteral("image://qmldesigner_itemlibrary/") + m_iconPath; +} + +QVariant ItemLibraryItemModel::sortingRole() const +{ + return itemName(); +} + +void ItemLibraryItemModel::setItemIconPath(const QString &iconPath) +{ + m_iconPath = iconPath; +} + +void ItemLibraryItemModel::setItemIconSize(const QSize &itemIconSize) +{ + m_iconSize = itemIconSize; + setItemIconPath(m_iconPath); +} +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.h new file mode 100644 index 0000000000..f036b72f63 --- /dev/null +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryitemmodel.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef QMLDESIGNER_ITEMLIBRARYITEMMODEL_H +#define QMLDESIGNER_ITEMLIBRARYITEMMODEL_H + +#include <QObject> +#include <QString> +#include <QSize> +#include <QVariant> + +namespace QmlDesigner { + +class ItemLibraryItemModel: public QObject { + + Q_OBJECT + + Q_PROPERTY(int itemLibId READ itemLibId FINAL) + Q_PROPERTY(QString itemName READ itemName FINAL) + Q_PROPERTY(QString itemLibraryIconPath READ itemLibraryIconPath FINAL) + Q_PROPERTY(QVariant sortingRole READ sortingRole FINAL) + +public: + ItemLibraryItemModel(int itemLibId, const QString &itemName, QObject *parent); + ~ItemLibraryItemModel(); + + int itemLibId() const; + QString itemName() const; + QString itemLibraryIconPath() const; + QVariant sortingRole() const; + + void setItemIconPath(const QString &iconPath); + void setItemIconSize(const QSize &itemIconSize); + +private: + int m_libId; + QString m_name; + QString m_iconPath; + QSize m_iconSize; +}; + +} // namespace QmlDesigner + +#endif // QMLDESIGNER_ITEMLIBRARYITEMMODEL_H diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp index 81aacec346..7b5cd1978e 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp @@ -30,6 +30,7 @@ #include "itemlibrarymodel.h" #include "itemlibraryinfo.h" #include "itemlibrarysectionmodel.h" +#include "itemlibraryitemmodel.h" #include <model.h> #include <nodemetainfo.h> @@ -246,56 +247,6 @@ void ItemLibrarySortedModel::addRoleName(const QByteArray &roleName) setRoleNames(m_roleNames); } -ItemLibraryItemModel::ItemLibraryItemModel(int itemLibId, const QString &itemName, QObject *parent) - : QObject(parent), - m_libId(itemLibId), - m_name(itemName), - m_iconSize(64, 64) -{ - -} - - -ItemLibraryItemModel::~ItemLibraryItemModel() -{ - -} - - -int ItemLibraryItemModel::itemLibId() const -{ - return m_libId; -} - - -QString ItemLibraryItemModel::itemName() const -{ - return m_name; -} - -QString ItemLibraryItemModel::itemLibraryIconPath() const -{ - //Prepend image provider prefix - return QStringLiteral("image://qmldesigner_itemlibrary/")+ m_iconPath; -} - -QVariant ItemLibraryItemModel::sortingRole() const -{ - return itemName(); -} - -void ItemLibraryItemModel::setItemIconPath(const QString &iconPath) -{ - m_iconPath = iconPath; -} - -void ItemLibraryItemModel::setItemIconSize(const QSize &itemIconSize) -{ - m_iconSize = itemIconSize; - setItemIconPath(m_iconPath); -} - - void ItemLibraryModel::setExpanded(bool expanded, const QString §ion) { if (collapsedStateHash.contains(section)) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h index 8bed4531ef..d8e58a839c 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h @@ -98,34 +98,6 @@ private: QHash<int, QByteArray> m_roleNames; }; -class ItemLibraryItemModel: public QObject { - - Q_OBJECT - - Q_PROPERTY(int itemLibId READ itemLibId FINAL) - Q_PROPERTY(QString itemName READ itemName FINAL) - Q_PROPERTY(QString itemLibraryIconPath READ itemLibraryIconPath FINAL) - Q_PROPERTY(QVariant sortingRole READ sortingRole FINAL) - -public: - ItemLibraryItemModel(int itemLibId, const QString &itemName, QObject *parent); - ~ItemLibraryItemModel(); - - int itemLibId() const; - QString itemName() const; - QString itemLibraryIconPath() const; - QVariant sortingRole() const; - - void setItemIconPath(const QString &iconPath); - void setItemIconSize(const QSize &itemIconSize); - -private: - int m_libId; - QString m_name; - QString m_iconPath; - QSize m_iconSize; -}; - class ItemLibraryModel: public ItemLibrarySortedModel { Q_OBJECT diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.cpp index 697b927379..90e0ad1087 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.cpp @@ -29,6 +29,8 @@ #include "itemlibrarysectionmodel.h" +#include "itemlibraryitemmodel.h" + namespace QmlDesigner { ItemLibrarySectionModel::ItemLibrarySectionModel(int sectionLibId, const QString §ionName, QObject *parent) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.h index d11645716d..9f4762a172 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarysectionmodel.h @@ -36,6 +36,8 @@ namespace QmlDesigner { +class ItemLibraryItemModel; + class ItemLibrarySectionModel: public QObject { Q_OBJECT -- GitLab