]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kfileitemlistwidget.h
Details view: Allow to turn off expandable folders like in Dolphin 1.7
[dolphin.git] / src / kitemviews / kfileitemlistwidget.h
index 3e47b567bd5ec11433efa3540fb8100a6aa7fe8f..4958313356d8dc56f5a6441e2cddb4d0d5c571d0 100644 (file)
@@ -46,6 +46,9 @@ public:
     void setLayout(Layout layout);
     Layout layout() const;
 
+    void setSupportsItemExpanding(bool supportsItemExpanding);
+    bool supportsItemExpanding() const;
+
     virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
 
     virtual QRectF iconRect() const;
@@ -79,14 +82,20 @@ protected:
 
     void setOverlay(const QPixmap& overlay);
     QPixmap overlay() const;
-    
+
     virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>());
     virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
     virtual void visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current, const QHash<QByteArray, QSizeF>& previous);
     virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
     virtual void hoveredChanged(bool hovered);
     virtual void selectedChanged(bool selected);
+    virtual void siblingsInformationChanged(const QBitArray& current, const QBitArray& previous);
     virtual void resizeEvent(QGraphicsSceneResizeEvent* event);
+    virtual void showEvent(QShowEvent* event);
+    virtual void hideEvent(QHideEvent* event);
+
+private slots:
+    void slotCutItemsChanged();
 
 private:
     enum TextId {
@@ -110,16 +119,23 @@ private:
     void updateIconsLayoutTextCache();
     void updateCompactLayoutTextCache();
     void updateDetailsLayoutTextCache();
-    
+
     void updateAdditionalInfoTextColor();
 
     void drawPixmap(QPainter* painter, const QPixmap& pixmap);
+    void drawSiblingsInformation(QPainter* painter);
 
     static QPixmap pixmapForIcon(const QString& name, int size);
     static TextId roleTextId(const QByteArray& role);
+    static void applyCutEffect(QPixmap& pixmap);
+    static void applyHiddenEffect(QPixmap& pixmap);
 
 private:
-    bool m_isDir;
+    bool m_isCut;
+    bool m_isHidden;
+    bool m_isExpandable;
+    bool m_supportsItemExpanding;
+
     bool m_dirtyLayout;
     bool m_dirtyContent;
     QSet<QByteArray> m_dirtyContentRoles;
@@ -129,8 +145,8 @@ private:
     QPixmap m_pixmap;
     QSize m_scaledPixmapSize;
 
-    QRectF m_hoverPixmapRect;
-    QPixmap m_hoverPixmap;
+    QRectF m_iconRect;          // Cache for KItemListWidget::iconRect()
+    QPixmap m_hoverPixmap;      // Cache for modified m_pixmap when hovering the item
 
     QPointF m_textPos[TextIdCount];
     QStaticText m_text[TextIdCount];