X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8d5c0f960827e6ada4b94447ae3c841356e6bd60..d4fb129710d7fadf8e21f2cfd2588a794f774e41:/src/kitemviews/kstandarditemlistwidget.h diff --git a/src/kitemviews/kstandarditemlistwidget.h b/src/kitemviews/kstandarditemlistwidget.h index 787722ddd..403794fc3 100644 --- a/src/kitemviews/kstandarditemlistwidget.h +++ b/src/kitemviews/kstandarditemlistwidget.h @@ -38,12 +38,28 @@ public: KStandardItemListWidgetInformant(); virtual ~KStandardItemListWidgetInformant(); - virtual QSizeF itemSizeHint(int index, const KItemListView* view) const; + virtual void calculateItemSizeHints(QVector& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const; virtual qreal preferredRoleColumnWidth(const QByteArray& role, int index, const KItemListView* view) const; protected: + /** + * @return The value of the "text" role. The default implementation returns + * view->model()->data(index)["text"]. If a derived class can + * prevent the (possibly expensive) construction of the + * QHash returned by KItemModelBase::data(int), + * it can reimplement this function. + */ + virtual QString itemText(int index, const KItemListView* view) const; + + /** + * @return The value of the "isLink" role. The default implementation returns false. + * The derived class should reimplement this function, when information about + * links is available and in usage. + */ + virtual bool itemIsLink(int index, const KItemListView* view) const; + /** * @return String representation of the role \a role. The representation of * a role might depend on other roles, so the values of all roles @@ -52,6 +68,15 @@ protected: virtual QString roleText(const QByteArray& role, const QHash& values) const; + /** + * @return A font based on baseFont which is customized for symlinks. + */ + virtual QFont customizedFontForLinks(const QFont& baseFont) const; + + void calculateIconsLayoutItemSizeHints(QVector& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const; + void calculateCompactLayoutItemSizeHints(QVector& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const; + void calculateDetailsLayoutItemSizeHints(QVector& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const; + friend class KStandardItemListWidget; // Accesses roleText() }; @@ -84,6 +109,7 @@ public: virtual QRectF iconRect() const; virtual QRectF textRect() const; virtual QRectF textFocusRect() const; + virtual QRectF selectionRect() const; virtual QRectF expansionToggleRect() const; virtual QRectF selectionToggleRect() const; virtual QPixmap createDragPixmap(const QStyleOptionGraphicsItem* option, QWidget* widget = 0); @@ -160,8 +186,8 @@ protected: private slots: void slotCutItemsChanged(); - void slotRoleEditingCanceled(int index, const QByteArray& role, const QVariant& value); - void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value); + void slotRoleEditingCanceled(const QByteArray& role, const QVariant& value); + void slotRoleEditingFinished(const QByteArray& role, const QVariant& value); private: void triggerCacheRefreshing(); @@ -186,7 +212,7 @@ private: */ void closeRoleEditor(); - static QPixmap pixmapForIcon(const QString& name, int size); + static QPixmap pixmapForIcon(const QString& name, const QStringList& overlays, int size); /** * @return Preferred size of the rating-image based on the given @@ -241,6 +267,7 @@ private: QPixmap m_rating; KItemListRoleEditor* m_roleEditor; + KItemListRoleEditor* m_oldRoleEditor; friend class KStandardItemListWidgetInformant; // Accesses private static methods to be able to // share a common layout calculation