summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/declarative/flowview/FlickrView.qml46
-rw-r--r--examples/declarative/flowview/RoundedRect.qml4
-rw-r--r--examples/declarative/flowview/flowview.qml147
-rw-r--r--src/declarative/extra/extra.pri2
-rw-r--r--src/declarative/extra/qfxflowview.cpp379
-rw-r--r--src/declarative/extra/qfxflowview.h108
6 files changed, 0 insertions, 686 deletions
diff --git a/examples/declarative/flowview/FlickrView.qml b/examples/declarative/flowview/FlickrView.qml
deleted file mode 100644
index b73ae1a..0000000
--- a/examples/declarative/flowview/FlickrView.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- radius: 5;
- border.width: 1;
- width:400;
- height: 120;
- color: background;
-
- XmlListModel {
- id: feedModel
- source: "http://api.flickr.com/services/feeds/photos_public.gne?format=rss2"
- query: "/rss/channel/item"
- namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";"
-
- XmlRole { name: "title"; query: "title/string()" }
- XmlRole { name: "imagePath"; query: "media:thumbnail/@url/string()" }
- XmlRole { name: "url"; query: "media:content/@url/string()" }
- XmlRole { name: "description"; query: "description/string()" }
- XmlRole { name: "tags"; query: "media:category/string()" }
- XmlRole { name: "photoWidth"; query: "media:content/@width/string()" }
- XmlRole { name: "photoHeight"; query: "media:content/@height/string()" }
- XmlRole { name: "photoType"; query: "media:content/@type/string()" }
- XmlRole { name: "photoAuthor"; query: "author/string()" }
- XmlRole { name: "photoDate"; query: "pubDate/string()" }
- }
-
- ListView {
- clip: true
- orientation: "Horizontal"
- width: parent.width
- height: 86
- y: 17
- model: feedModel
- delegate:
- Item { width: 90; height: 86
- Rectangle {
- anchors.centerIn: parent
- width: 86; height: 86;
- color: "white"; radius: 5
- Image { source: imagePath; x: 5; y: 5 }
- }
- }
- }
-}
-
diff --git a/examples/declarative/flowview/RoundedRect.qml b/examples/declarative/flowview/RoundedRect.qml
deleted file mode 100644
index 7d2b58b..0000000
--- a/examples/declarative/flowview/RoundedRect.qml
+++ /dev/null
@@ -1,4 +0,0 @@
-import Qt 4.6
-
-Rectangle { radius: 5; border.width: 1; width:400; height: 120; color: background; }
-
diff --git a/examples/declarative/flowview/flowview.qml b/examples/declarative/flowview/flowview.qml
deleted file mode 100644
index f6b042d..0000000
--- a/examples/declarative/flowview/flowview.qml
+++ /dev/null
@@ -1,147 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 800
- height: 800
- color: "black"
-
- Rectangle {
- id: myPhone
- transformOrigin: "Center"
- anchors.centerIn: parent
- width: 800
- height: 480
- clip: true
-
- states: State {
- name: "rotated"
- PropertyChanges { target: myListView; z: 2 }
- PropertyChanges { target: topBar; y: -30 }
- PropertyChanges { target: bottomBar; y: 480 }
- PropertyChanges { target: leftBar; x: 0 }
- PropertyChanges { target: rightBar; x: 770 }
- }
- transitions: Transition {
- from: "" ; to: "rotated"
- reversible: true
- SequentialAnimation {
- NumberAnimation { targets: [topBar, bottomBar]; properties: "x,y"; easing: "easeInOutQuad" }
- NumberAnimation { targets: [leftBar, rightBar]; properties: "x,y"; easing: "easeInOutQuad"}
- }
- }
-
- color: "lightsteelblue"
-
- VisualDataModel {
- id: model
- model: ListModel {
- ListElement { background: "red"; weblet: "RoundedRect.qml" }
- ListElement { background: "yellow"; weblet: "RoundedRect.qml" }
- ListElement { background: "blue"; weblet: "RoundedRect.qml" }
- ListElement { background: "green"; weblet: "FlickrView.qml" }
- ListElement { background: "orange"; weblet: "RoundedRect.qml" }
- ListElement { background: "lightblue"; weblet: "RoundedRect.qml" }
- }
- delegate: Package {
- Item { id: list; Package.name: "list"; width:120; height: 400; }
- Item { id: gridItem; Package.name: "grid"; width:400; height: 120; }
- Loader { id: myContent; width:400; height: 120; source: weblet }
-
- StateGroup {
- states: [
- State {
- name: "InList"
- when: myPhone.state == "rotated"
- ParentChange { target: myContent; parent: list }
- PropertyChanges { target: myContent; x: 120; y: 0; rotation: 90}
- },
- State {
- name: "InGrid"
- when: myPhone.state != "rotated"
- ParentChange { target: myContent; parent: gridItem }
- PropertyChanges { target: myContent; x: 0; y: 0; }
- }
- ]
- transitions: [
- Transition {
- from: "*"; to: "InGrid"
- SequentialAnimation {
- ParentAction{}
- PauseAnimation { duration: 50 * list.FlowView.column }
- NumberAnimation { properties: "x,y,rotation"; easing: "easeInOutQuad" }
- }
- },
- Transition {
- from: "*"; to: "InList"
- SequentialAnimation {
- ParentAction{}
- PauseAnimation { duration: 50 * (gridItem.FlowView.row * 2 + gridItem.FlowView.column) }
- NumberAnimation { properties: "x,y,rotation"; easing: "easeInOutQuad" }
- }
- }
- ]
- }
-
- }
- }
-
- Item {
- FlowView {
- id: myListView
- vertical: true
- y: 40
- x: 40
- width: 800
- height: 400
- column: 1
- model: model.parts.list
- }
-
- FlowView {
- z: 1
- y: 60
- width: 800
- height: 400
- column: 2
- model: model.parts.grid
- }
- }
-
- Rectangle {
- id: topBar
- width: 800
- height: 30
- }
- Rectangle {
- id: bottomBar
- width: 800
- height: 30
- y: 450
- }
- Rectangle {
- id: leftBar
- x: -30
- width: 30
- height: 480
- }
- Rectangle {
- id: rightBar
- x: 800
- width: 30
- height: 480
- }
- }
-
- Rectangle {
- width: 80
- height: 80
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- Text { text: "Switch" }
- MouseRegion {
- anchors.fill: parent
- onClicked: if(myPhone.state == "rotated") myPhone.state=""; else myPhone.state = "rotated";
- }
- }
-
-}
diff --git a/src/declarative/extra/extra.pri b/src/declarative/extra/extra.pri
index ae07a19..6730550 100644
--- a/src/declarative/extra/extra.pri
+++ b/src/declarative/extra/extra.pri
@@ -5,7 +5,6 @@ SOURCES += \
extra/qfxintegermodel.cpp \
extra/qmlfolderlistmodel.cpp \
extra/qfxanimatedimageitem.cpp \
- extra/qfxflowview.cpp \
extra/qfxparticles.cpp \
extra/qmlbehavior.cpp \
extra/qbindablemap.cpp \
@@ -19,7 +18,6 @@ HEADERS += \
extra/qmlfolderlistmodel.h \
extra/qfxanimatedimageitem.h \
extra/qfxanimatedimageitem_p.h \
- extra/qfxflowview.h \
extra/qfxparticles.h \
extra/qmlbehavior.h \
extra/qbindablemap.h \
diff --git a/src/declarative/extra/qfxflowview.cpp b/src/declarative/extra/qfxflowview.cpp
deleted file mode 100644
index b2470ba..0000000
--- a/src/declarative/extra/qfxflowview.cpp
+++ /dev/null
@@ -1,379 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** 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, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, 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.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qfxvisualitemmodel.h"
-#include "qfxflowview.h"
-
-#include <QGraphicsSceneMouseEvent>
-
-QT_BEGIN_NAMESPACE
-
-class QFxFlowViewAttached : public QObject
-{
-Q_OBJECT
-Q_PROPERTY(int row READ row NOTIFY posChanged)
-Q_PROPERTY(int column READ column NOTIFY posChanged)
-public:
- QFxFlowViewAttached(QObject *parent);
-
- int row() const;
- int column() const;
-
-Q_SIGNALS:
- void posChanged();
-
-private:
- friend class QFxFlowView;
- int m_row;
- int m_column;
-};
-
-
-QFxFlowView::QFxFlowView()
-: m_columns(0), m_model(0), m_vertical(false), m_dragItem(0), m_dragIdx(-1)
-{
- setAcceptedMouseButtons(Qt::LeftButton);
-}
-
-QFxVisualModel *QFxFlowView::model() const
-{
- return m_model;
-}
-
-void QFxFlowView::setModel(QFxVisualModel *m)
-{
- m_model = m;
- refresh();
-}
-
-int QFxFlowView::columns() const
-{
- return m_columns;
-}
-
-void QFxFlowView::setColumns(int c)
-{
- m_columns = c;
- refresh();
-}
-
-bool QFxFlowView::vertical() const
-{
- return m_vertical;
-}
-
-void QFxFlowView::setVertical(bool v)
-{
- m_vertical = v;
-}
-
-class QFxFlowViewValue : public QmlTimeLineValue
-{
-public:
- enum Property { xProperty, yProperty };
-
- QFxFlowViewValue(QFxItem *item, Property p)
- : m_item(item), m_property(p) {}
-
- qreal value() const {
- return (m_property == xProperty)?m_item->x():m_item->y();
- }
- void setValue(qreal v) {
- if (m_property == xProperty) m_item->setX(v);
- else m_item->setY(v);
- }
-private:
- QFxItem *m_item;
- Property m_property;
-};
-
-void QFxFlowView::refresh()
-{
- if (m_model && m_columns >= 1) {
- for (int ii = 0; ii < m_model->count(); ++ii) {
- if (QFxItem *item = m_model->item(ii)) {
- item->setParent(this);
- item->setZValue(0);
- m_items << item;
- }
- }
-
- reflow();
- }
-}
-
-void QFxFlowView::reflow(bool animate)
-{
- qreal y = 0;
- qreal maxY = 0;
- qreal x = 0;
- int row = 0;
- int column = -1;
- if (animate)
- clearTimeLine();
-
- for (int ii = 0; ii < m_items.count(); ++ii) {
- if (0 == (ii % m_columns)) {
- y += maxY;
- maxY = 0;
- x = 0;
- row = 0;
- column++;
- }
-
- QFxItem *item = m_items.at(ii);
- QFxFlowViewAttached *att =
- (QFxFlowViewAttached *)qmlAttachedPropertiesObject<QFxFlowView>(item);
- att->m_row = row;
- att->m_column = column;
- emit att->posChanged();
-
-
- if (animate) {
- if (vertical())
- moveItem(item, QPointF(y, x));
- else
- moveItem(item, QPointF(x, y));
- } else {
- if (vertical()) {
- item->setX(y);
- item->setY(x);
- } else {
- item->setX(x);
- item->setY(y);
- }
- }
- if (vertical()) {
- x += item->height();
- maxY = qMax(maxY, item->width());
- } else {
- x += item->width();
- maxY = qMax(maxY, item->height());
- }
- ++row;
- }
-}
-
-void QFxFlowView::reflowDrag(const QPointF &dp)
-{
- qreal y = 0;
- qreal maxY = 0;
- qreal x = 0;
-
- clearTimeLine();
-
- QList<QFxItem *> items;
-
- bool dragUsed = false;
- bool dragSeen = false;
- for (int ii = 0; ii < m_items.count(); ++ii) {
- if (0 == (ii % m_columns)) {
- y += maxY;
- maxY = 0;
- x = 0;
- }
-
- QFxItem *item = m_items.at(ii);
- if (item == m_dragItem)
- dragSeen = true;
- if (item == m_dragItem && dragUsed)
- continue;
- QRectF r;
- if (vertical())
- r = QRectF(y, x, item->width(), item->height());
- else
- r = QRectF(x, y, item->width(), item->height());
- if (r.contains(dp)) {
- dragUsed = true;
- if (dragSeen)
- m_dragIdx = items.count() + 1;
- else
- m_dragIdx = items.count();
-
- items.append(m_dragItem);
- if (m_dragItem != item) {
- if (dragSeen)
- items.insert(items.count() - 1, item);
- else
- items.append(item);
- }
- } else {
- if (m_dragItem != item)
- items.append(item);
- }
-
- if (vertical()) {
- x += item->height();
- maxY = qMax(maxY, item->width());
- } else {
- x += item->width();
- maxY = qMax(maxY, item->height());
- }
- }
-
- y = 0;
- maxY = 0;
- x = 0;
- clearTimeLine();
- for (int ii = 0; ii < items.count(); ++ii) {
- if (0 == (ii % m_columns)) {
- y += maxY;
- maxY = 0;
- x = 0;
- }
-
- QFxItem *item = items.at(ii);
- if (item != m_dragItem) {
- if (vertical())
- moveItem(item, QPointF(y, x));
- else
- moveItem(item, QPointF(x, y));
- }
- if (vertical()) {
- x += item->height();
- maxY = qMax(maxY, item->width());
- } else {
- x += item->width();
- maxY = qMax(maxY, item->height());
- }
- }
-
-}
-
-void QFxFlowView::moveItem(QFxItem *item, const QPointF &p)
-{
- QFxFlowViewValue *xv = new QFxFlowViewValue(item, QFxFlowViewValue::xProperty);
- QFxFlowViewValue *yv = new QFxFlowViewValue(item, QFxFlowViewValue::yProperty);
- m_values << xv << yv;
- m_timeline.move(*xv, p.x(), 100);
- m_timeline.move(*yv, p.y(), 100);
-}
-
-void QFxFlowView::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- for (int ii = 0; ii < m_items.count(); ++ii) {
- QFxItem *item = m_items.at(ii);
- QRectF r = rectForItem(ii);
-
- if (r.contains(event->pos())) {
- m_dragItem = item;
- m_dragItem->setZValue(1);
- m_dragOffset = r.topLeft() - event->pos();
- event->accept();
- return;
- }
- }
- event->ignore();
-}
-
-QRectF QFxFlowView::rectForItem(int idx) const
-{
- QFxItem *item = m_items.at(idx);
- QRectF r(item->x(), item->y(), item->width(), item->height());
- return r;
-}
-
-void QFxFlowView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
-{
- Q_UNUSED(event);
- if (m_dragItem) {
- m_dragItem->setZValue(0);
-
- clearTimeLine();
-
- if (m_dragIdx != -1) {
- m_items.removeAll(m_dragItem);
- m_items.insert(m_dragIdx, m_dragItem);
- }
-
- reflow(true);
- m_dragItem = 0;
- m_dragIdx = -1;
- }
-}
-
-QFxFlowViewAttached::QFxFlowViewAttached(QObject *parent)
-: QObject(parent), m_row(0), m_column(0)
-{
-}
-
-int QFxFlowViewAttached::row() const
-{
- return m_row;
-}
-
-int QFxFlowViewAttached::column() const
-{
- return m_column;
-}
-
-QFxFlowViewAttached *QFxFlowView::qmlAttachedProperties(QObject *obj)
-{
- return new QFxFlowViewAttached(obj);
-}
-
-void QFxFlowView::clearTimeLine()
-{
- m_timeline.clear();
- qDeleteAll(m_values);
- m_values.clear();
-}
-
-void QFxFlowView::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
-{
- if (m_dragItem) {
- QPointF p = event->pos() + m_dragOffset;
- m_dragItem->setX(p.x());
- m_dragItem->setY(p.y());
-
- for (int ii = 0; ii < m_items.count(); ++ii) {
- if (m_items.at(ii) != m_dragItem && rectForItem(ii).contains(event->pos())) {
- reflowDrag(event->pos());
- }
- }
- }
-}
-
-QML_DEFINE_TYPE(Qt, 4,6, (QT_VERSION&0x00ff00)>>8, FlowView, QFxFlowView);
-
-QT_END_NAMESPACE
-
-#include "qfxflowview.moc"
diff --git a/src/declarative/extra/qfxflowview.h b/src/declarative/extra/qfxflowview.h
deleted file mode 100644
index 2d7a8bd..0000000
--- a/src/declarative/extra/qfxflowview.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** 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, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, 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.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QFXFLOWVIEW_H
-#define QFXFLOWVIEW_H
-
-#include <private/qmltimeline_p.h>
-#include <QtDeclarative/qfxitem.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Declarative)
-
-class QFxVisualModel;
-class QFxFlowViewValue;
-class QFxFlowViewAttached;
-class Q_DECLARATIVE_EXPORT QFxFlowView : public QFxItem
-{
- Q_OBJECT
- Q_PROPERTY(QFxVisualModel *model READ model WRITE setModel)
- Q_PROPERTY(int column READ columns WRITE setColumns)
- Q_PROPERTY(bool vertical READ vertical WRITE setVertical)
-
-public:
- QFxFlowView();
-
- QFxVisualModel *model() const;
- void setModel(QFxVisualModel *);
-
- int columns() const;
- void setColumns(int);
-
- bool vertical() const;
- void setVertical(bool);
-
- virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
- virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
- virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
-
- static QFxFlowViewAttached *qmlAttachedProperties(QObject *);
-
-private:
- QRectF rectForItem(int idx) const;
- void refresh();
- void reflow(bool animate = false);
- void reflowDrag(const QPointF &);
- void clearTimeLine();
- int m_columns;
- QFxVisualModel *m_model;
- QList<QFxItem *> m_items;
- bool m_vertical;
- void moveItem(QFxItem *item, const QPointF &);
-
- QPointF m_dragOffset;
- QFxItem *m_dragItem;
-
- QmlTimeLine m_timeline;
- QList<QFxFlowViewValue *> m_values;
- int m_dragIdx;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QFxFlowView)
-
-QT_END_HEADER
-
-#endif // QFXFLOWVIEW_H