diff options
Diffstat (limited to 'src/declarative/items/qquickitemview_p_p.h')
-rw-r--r-- | src/declarative/items/qquickitemview_p_p.h | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/src/declarative/items/qquickitemview_p_p.h b/src/declarative/items/qquickitemview_p_p.h deleted file mode 100644 index 4db274e045..0000000000 --- a/src/declarative/items/qquickitemview_p_p.h +++ /dev/null @@ -1,260 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** 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$ -** -****************************************************************************/ - -#ifndef QQUICKITEMVIEW_P_P_H -#define QQUICKITEMVIEW_P_P_H - -#include "qquickitemview_p.h" -#include "qquickflickable_p_p.h" -#include "qquickvisualdatamodel_p.h" -#include <private/qdeclarativechangeset_p.h> - - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class FxViewItem -{ -public: - FxViewItem(QQuickItem *, bool own); - ~FxViewItem(); - - // these are positions and sizes along the current direction of scrolling/flicking - virtual qreal position() const = 0; - virtual qreal endPosition() const = 0; - virtual qreal size() const = 0; - virtual qreal sectionSize() const = 0; - - virtual bool contains(qreal x, qreal y) const = 0; - - QQuickItem *item; - bool ownItem; - int index; - QQuickItemViewAttached *attached; -}; - -class QQuickItemViewChangeSet -{ -public: - QQuickItemViewChangeSet(); - - bool hasPendingChanges() const; - void prepare(int currentIndex, int count); - void reset(); - - void applyChanges(const QDeclarativeChangeSet &changeSet); - - int itemCount; - int newCurrentIndex; - QDeclarativeChangeSet pendingChanges; - QHash<QDeclarativeChangeSet::MoveKey, FxViewItem *> removedItems; - - bool active : 1; - bool currentChanged : 1; - bool currentRemoved : 1; -}; - -class QQuickItemViewPrivate : public QQuickFlickablePrivate -{ - Q_DECLARE_PUBLIC(QQuickItemView) -public: - QQuickItemViewPrivate(); - - struct InsertionsResult { - QList<FxViewItem *> addedItems; - QList<FxViewItem *> movedBackwards; - qreal sizeAddedBeforeVisible; - - InsertionsResult() : sizeAddedBeforeVisible(0) {} - }; - - enum BufferMode { NoBuffer = 0x00, BufferBefore = 0x01, BufferAfter = 0x02 }; - enum MovementReason { Other, SetIndex, Mouse }; - - bool isValid() const; - qreal position() const; - qreal size() const; - qreal startPosition() const; - qreal endPosition() const; - qreal contentStartPosition() const; - int findLastVisibleIndex(int defaultValue = -1) const; - FxViewItem *visibleItem(int modelIndex) const; - FxViewItem *firstVisibleItem() const; - int mapFromModel(int modelIndex) const; - - virtual void init(); - virtual void clear(); - virtual void updateViewport(); - - void regenerate(); - void layout(); - void refill(); - void refill(qreal from, qreal to, bool doBuffer = false); - void mirrorChange(); - - FxViewItem *createItem(int modelIndex, bool asynchronous = false); - virtual void releaseItem(FxViewItem *item); - - QQuickItem *createHighlightItem(); - QQuickItem *createComponentItem(QDeclarativeComponent *component, bool receiveItemGeometryChanges, bool createDefault = false); - - void updateCurrent(int modelIndex); - void updateTrackedItem(); - void updateUnrequestedIndexes(); - void updateUnrequestedPositions(); - void updateVisibleIndex(); - void positionViewAtIndex(int index, int mode); - void applyPendingChanges(); - bool applyModelChanges(); - - void checkVisible() const; - - void markExtentsDirty() { - if (layoutOrientation() == Qt::Vertical) - vData.markExtentsDirty(); - else - hData.markExtentsDirty(); - } - - QDeclarativeGuard<QQuickVisualModel> model; - QVariant modelVariant; - int itemCount; - int buffer; - int bufferMode; - Qt::LayoutDirection layoutDirection; - - MovementReason moveReason; - - QList<FxViewItem *> visibleItems; - int visibleIndex; - int currentIndex; - FxViewItem *currentItem; - FxViewItem *trackedItem; - QHash<QQuickItem*,int> unrequestedItems; - int requestedIndex; - FxViewItem *requestedItem; - QQuickItemViewChangeSet currentChanges; - - // XXX split into struct - QDeclarativeComponent *highlightComponent; - FxViewItem *highlight; - int highlightRange; // enum value - qreal highlightRangeStart; - qreal highlightRangeEnd; - int highlightMoveDuration; - - QDeclarativeComponent *headerComponent; - FxViewItem *header; - QDeclarativeComponent *footerComponent; - FxViewItem *footer; - - mutable qreal minExtent; - mutable qreal maxExtent; - - bool ownModel : 1; - bool wrap : 1; - bool deferredRelease : 1; - bool inApplyModelChanges : 1; - bool inViewportMoved : 1; - bool forceLayout : 1; - bool currentIndexCleared : 1; - bool haveHighlightRange : 1; - bool autoHighlight : 1; - bool highlightRangeStartValid : 1; - bool highlightRangeEndValid : 1; - bool fillCacheBuffer : 1; - bool inRequest : 1; - bool requestedAsync : 1; - -protected: - virtual Qt::Orientation layoutOrientation() const = 0; - virtual bool isContentFlowReversed() const = 0; - - virtual qreal positionAt(int index) const = 0; - virtual qreal endPositionAt(int index) const = 0; - virtual qreal originPosition() const = 0; - virtual qreal lastPosition() const = 0; - - virtual qreal headerSize() const = 0; - virtual qreal footerSize() const = 0; - virtual bool showHeaderForIndex(int index) const = 0; - virtual bool showFooterForIndex(int index) const = 0; - virtual void updateHeader() = 0; - virtual void updateFooter() = 0; - - virtual void createHighlight() = 0; - virtual void updateHighlight() = 0; - virtual void resetHighlightPosition() = 0; - - virtual void setPosition(qreal pos) = 0; - virtual void fixupPosition() = 0; - - virtual bool addVisibleItems(qreal fillFrom, qreal fillTo, bool doBuffer) = 0; - virtual bool removeNonVisibleItems(qreal bufferFrom, qreal bufferTo) = 0; - virtual void visibleItemsChanged() = 0; - - virtual FxViewItem *newViewItem(int index, QQuickItem *item) = 0; - virtual void repositionPackageItemAt(QQuickItem *item, int index) = 0; - virtual void resetItemPosition(FxViewItem *item, FxViewItem *toItem) = 0; - virtual void resetFirstItemPosition() = 0; - virtual void moveItemBy(FxViewItem *item, qreal forwards, qreal backwards) = 0; - - virtual void layoutVisibleItems() = 0; - virtual void changedVisibleIndex(int newIndex) = 0; - virtual bool applyInsertionChange(const QDeclarativeChangeSet::Insert &, FxViewItem *, InsertionsResult *) = 0; - virtual bool needsRefillForAddedOrRemovedIndex(int) const { return false; } - - virtual void initializeViewItem(FxViewItem *) {} - virtual void initializeCurrentItem() {} - virtual void updateSections() {} - - virtual void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry); -}; - - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QQUICKITEMVIEW_P_P_H |