X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3957884bf2e44619a4ed35ba0ffead519988885b..b65576a131eb59eaab4d33af830bdb2d2f9fde9f:/src/kitemviews/kfileitemlistwidget.h diff --git a/src/kitemviews/kfileitemlistwidget.h b/src/kitemviews/kfileitemlistwidget.h index 1d1b6fd86..7ce415dbe 100644 --- a/src/kitemviews/kfileitemlistwidget.h +++ b/src/kitemviews/kfileitemlistwidget.h @@ -20,99 +20,41 @@ #ifndef KFILEITEMLISTWIDGET_H #define KFILEITEMLISTWIDGET_H -#include +#include "dolphin_export.h" +#include "kitemviews/kstandarditemlistwidget.h" -#include +class DOLPHIN_EXPORT KFileItemListWidgetInformant : public KStandardItemListWidgetInformant +{ +public: + KFileItemListWidgetInformant(); + ~KFileItemListWidgetInformant() override; -#include -#include -#include +protected: + QString itemText(int index, const KItemListView* view) const override; + bool itemIsLink(int index, const KItemListView* view) const override; + QString roleText(const QByteArray& role, const QHash& values) const override; + QFont customizedFontForLinks(const QFont& baseFont) const override; +}; -class LIBDOLPHINPRIVATE_EXPORT KFileItemListWidget : public KItemListWidget +class DOLPHIN_EXPORT KFileItemListWidget : public KStandardItemListWidget { Q_OBJECT public: - enum Layout - { - IconsLayout, - CompactLayout, - DetailsLayout - }; - - KFileItemListWidget(QGraphicsItem* parent); - virtual ~KFileItemListWidget(); + KFileItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent); + ~KFileItemListWidget() override; - void setLayout(Layout layout); - Layout layout() const; - - virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0); - - virtual bool contains(const QPointF& point) const; - virtual QRectF hoverBoundingRect() const; - virtual QRectF expansionToggleRect() const; + static KItemListWidgetInformant* createInformant(); protected: - virtual void dataChanged(const QHash& current, const QSet& roles = QSet()); - virtual void visibleRolesChanged(const QHash& current, const QHash& previous); - virtual void visibleRolesSizesChanged(const QHash& current, const QHash& previous); - virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous); - virtual void hoveredChanged(bool hovered); - virtual void resizeEvent(QGraphicsSceneResizeEvent* event); - -private: - enum TextId { - Name, - Size, - Date, - Permissions, - Owner, - Group, - Type, - Destination, - Path, - TextIdCount // Mandatory last entry - }; - - void updateCache(); - void updateExpansionArea(); - void updatePixmapCache(); - - void updateTextsCache(); - void updateIconsLayoutTextCache(); - void updateCompactLayoutTextCache(); - void updateDetailsLayoutTextCache(); - - QString roleText(TextId textId, const QVariant& roleValue) const; - - void drawPixmap(QPainter* painter, const QPixmap& pixmap); - void drawFocusIndicator(QPainter* painter); - - static QPixmap pixmapForIcon(const QString& name, int size); - static TextId roleTextId(const QByteArray& role); - -private: - bool m_isDir; - bool m_dirtyLayout; - bool m_dirtyContent; - QSet m_dirtyContentRoles; - - Layout m_layout; - QPointF m_pixmapPos; - QPixmap m_pixmap; - QSize m_scaledPixmapSize; - - QRectF m_hoverPixmapRect; - QPixmap m_hoverPixmap; - - QPointF m_textPos[TextIdCount]; - QStaticText m_text[TextIdCount]; - QRectF m_textsBoundingRect; - - QList m_sortedVisibleRoles; - - QRectF m_expansionArea; - QColor m_additionalInfoTextColor; + bool isRoleRightAligned(const QByteArray& role) const override; + bool isHidden() const override; + QFont customizedFont(const QFont& baseFont) const override; + + /** + * @return Selection length without MIME-type extension + */ + int selectionLength(const QString& text) const override; }; #endif