#ifndef KITEMLISTVIEW_H
#define KITEMLISTVIEW_H
-#include <libdolphin_export.h>
+#include "libdolphin_export.h"
#include <kitemviews/kstandarditemlistgroupheader.h>
#include <kitemviews/kitemliststyleoption.h>
class KItemListWidget;
class KItemListWidgetInformant;
class KItemListWidgetCreatorBase;
-class KItemListViewCreatorBase;
class QTimer;
/**
const KItemListStyleOption& styleOption() const;
- /** @reimp */
- virtual void setGeometry(const QRectF& rect);
+ virtual void setGeometry(const QRectF& rect) Q_DECL_OVERRIDE;
/**
* @return The page step which should be used by the vertical scroll bar.
int lastVisibleIndex() const;
/**
- * @return Required size for the item with the index \p index.
- * The returned value might be larger than KItemListView::itemSize().
+ * @return Calculates the required size for all items in the model.
+ * It might be larger than KItemListView::itemSize().
* In this case the layout grid will be stretched to assure an
* unclipped item.
+ * NOTE: the logical height (width) is actually the
+ * width (height) if the scroll orientation is Qt::Vertical!
*/
- QSizeF itemSizeHint(int index) const;
+ void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint) const;
/**
* If set to true, items having child-items can be expanded to show the child-items as
*/
void editRole(int index, const QByteArray& role);
- /**
- * @reimp
- */
- virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
+ virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0) Q_DECL_OVERRIDE;
signals:
void scrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous);
void roleEditingFinished(int index, const QByteArray& role, const QVariant& value);
protected:
- virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
+ virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) Q_DECL_OVERRIDE;
void setItemSize(const QSizeF& size);
void setStyleOption(const KItemListStyleOption& option);
virtual void onTransactionBegin();
virtual void onTransactionEnd();
- virtual bool event(QEvent* event);
- virtual void mousePressEvent(QGraphicsSceneMouseEvent* event);
- virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
- virtual void dragEnterEvent(QGraphicsSceneDragDropEvent* event);
- virtual void dragMoveEvent(QGraphicsSceneDragDropEvent* event);
- virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent* event);
- virtual void dropEvent(QGraphicsSceneDragDropEvent* event);
+ virtual bool event(QEvent* event) Q_DECL_OVERRIDE;
+ virtual void mousePressEvent(QGraphicsSceneMouseEvent* event) Q_DECL_OVERRIDE;
+ virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event) Q_DECL_OVERRIDE;
+ virtual void dragEnterEvent(QGraphicsSceneDragDropEvent* event) Q_DECL_OVERRIDE;
+ virtual void dragMoveEvent(QGraphicsSceneDragDropEvent* event) Q_DECL_OVERRIDE;
+ virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent* event) Q_DECL_OVERRIDE;
+ virtual void dropEvent(QGraphicsSceneDragDropEvent* event) Q_DECL_OVERRIDE;
QList<KItemListWidget*> visibleItemListWidgets() const;
+ virtual void updateFont();
+ virtual void updatePalette();
+
protected slots:
virtual void slotItemsInserted(const KItemRangeList& itemRanges);
virtual void slotItemsRemoved(const KItemRangeList& itemRanges);
virtual void recycle(KItemListWidget* widget);
- virtual QSizeF itemSizeHint(int index, const KItemListView* view) const = 0;
+ virtual void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const = 0;
virtual qreal preferredRoleColumnWidth(const QByteArray& role,
int index,
virtual KItemListWidget* create(KItemListView* view);
- virtual QSizeF itemSizeHint(int index, const KItemListView* view) const;
+ virtual void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const;
virtual qreal preferredRoleColumnWidth(const QByteArray& role,
int index,
}
template<class T>
-QSizeF KItemListWidgetCreator<T>::itemSizeHint(int index, const KItemListView* view) const
+void KItemListWidgetCreator<T>::calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const
{
- return m_informant->itemSizeHint(index, view);
+ return m_informant->calculateItemSizeHints(logicalHeightHints, logicalWidthHint, view);
}
template<class T>