aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qdeclarativepackage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/util/qdeclarativepackage.cpp')
-rw-r--r--src/quick/util/qdeclarativepackage.cpp202
1 files changed, 0 insertions, 202 deletions
diff --git a/src/quick/util/qdeclarativepackage.cpp b/src/quick/util/qdeclarativepackage.cpp
deleted file mode 100644
index c6504ffea4..0000000000
--- a/src/quick/util/qdeclarativepackage.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** 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, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qdeclarativepackage_p.h"
-
-#include <private/qobject_p.h>
-#include <private/qdeclarativeguard_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmlclass Package QDeclarativePackage
- \inqmlmodule QtQuick 2
- \ingroup qml-working-with-data
- \brief Package provides a collection of named items.
-
- The Package class is used in conjunction with
- VisualDataModel to enable delegates with a shared context
- to be provided to multiple views.
-
- Any item within a Package may be assigned a name via the
- \l{Package::name}{Package.name} attached property.
-
- The example below creates a Package containing two named items;
- \e list and \e grid. The third element in the package (the \l Rectangle) is parented to whichever
- delegate it should appear in. This allows an item to move
- between views.
-
- \snippet examples/declarative/modelviews/package/Delegate.qml 0
-
- These named items are used as the delegates by the two views who
- reference the special \l{VisualDataModel::parts} property to select
- a model which provides the chosen delegate.
-
- \snippet examples/declarative/modelviews/package/view.qml 0
-
- \sa {declarative/modelviews/package}{Package example}, {declarative/photoviewer}{Photo Viewer example}, QtDeclarative
-*/
-
-/*!
- \qmlattachedproperty string QtQuick2::Package::name
- This attached property holds the name of an item within a Package.
-*/
-
-
-class QDeclarativePackagePrivate : public QObjectPrivate
-{
-public:
- QDeclarativePackagePrivate() {}
-
- struct DataGuard : public QDeclarativeGuard<QObject>
- {
- DataGuard(QObject *obj, QList<DataGuard> *l) : list(l) { (QDeclarativeGuard<QObject>&)*this = obj; }
- QList<DataGuard> *list;
- void objectDestroyed(QObject *) {
- // we assume priv will always be destroyed after objectDestroyed calls
- list->removeOne(*this);
- }
- };
-
- QList<DataGuard> dataList;
- static void data_append(QDeclarativeListProperty<QObject> *prop, QObject *o) {
- QList<DataGuard> *list = static_cast<QList<DataGuard> *>(prop->data);
- list->append(DataGuard(o, list));
- }
- static void data_clear(QDeclarativeListProperty<QObject> *prop) {
- QList<DataGuard> *list = static_cast<QList<DataGuard> *>(prop->data);
- list->clear();
- }
- static QObject *data_at(QDeclarativeListProperty<QObject> *prop, int index) {
- QList<DataGuard> *list = static_cast<QList<DataGuard> *>(prop->data);
- return list->at(index);
- }
- static int data_count(QDeclarativeListProperty<QObject> *prop) {
- QList<DataGuard> *list = static_cast<QList<DataGuard> *>(prop->data);
- return list->count();
- }
-};
-
-QHash<QObject *, QDeclarativePackageAttached *> QDeclarativePackageAttached::attached;
-
-QDeclarativePackageAttached::QDeclarativePackageAttached(QObject *parent)
-: QObject(parent)
-{
- attached.insert(parent, this);
-}
-
-QDeclarativePackageAttached::~QDeclarativePackageAttached()
-{
- attached.remove(parent());
-}
-
-QString QDeclarativePackageAttached::name() const
-{
- return _name;
-}
-
-void QDeclarativePackageAttached::setName(const QString &n)
-{
- _name = n;
-}
-
-QDeclarativePackage::QDeclarativePackage(QObject *parent)
- : QObject(*(new QDeclarativePackagePrivate), parent)
-{
-}
-
-QDeclarativePackage::~QDeclarativePackage()
-{
- Q_D(QDeclarativePackage);
- for (int ii = 0; ii < d->dataList.count(); ++ii) {
- QObject *obj = d->dataList.at(ii);
- obj->setParent(this);
- }
-}
-
-QDeclarativeListProperty<QObject> QDeclarativePackage::data()
-{
- Q_D(QDeclarativePackage);
- return QDeclarativeListProperty<QObject>(this, &d->dataList, QDeclarativePackagePrivate::data_append,
- QDeclarativePackagePrivate::data_count,
- QDeclarativePackagePrivate::data_at,
- QDeclarativePackagePrivate::data_clear);
-}
-
-bool QDeclarativePackage::hasPart(const QString &name)
-{
- Q_D(QDeclarativePackage);
- for (int ii = 0; ii < d->dataList.count(); ++ii) {
- QObject *obj = d->dataList.at(ii);
- QDeclarativePackageAttached *a = QDeclarativePackageAttached::attached.value(obj);
- if (a && a->name() == name)
- return true;
- }
- return false;
-}
-
-QObject *QDeclarativePackage::part(const QString &name)
-{
- Q_D(QDeclarativePackage);
- if (name.isEmpty() && !d->dataList.isEmpty())
- return d->dataList.at(0);
-
- for (int ii = 0; ii < d->dataList.count(); ++ii) {
- QObject *obj = d->dataList.at(ii);
- QDeclarativePackageAttached *a = QDeclarativePackageAttached::attached.value(obj);
- if (a && a->name() == name)
- return obj;
- }
-
- if (name == QLatin1String("default") && !d->dataList.isEmpty())
- return d->dataList.at(0);
-
- return 0;
-}
-
-QDeclarativePackageAttached *QDeclarativePackage::qmlAttachedProperties(QObject *o)
-{
- return new QDeclarativePackageAttached(o);
-}
-
-
-
-QT_END_NAMESPACE