]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kstandarditemlistwidget.h
Fixed grouping again, implemented permission and rating grouping.
[dolphin.git] / src / kitemviews / kstandarditemlistwidget.h
index 73bc393f4ad0ec2db60ce88d6f7e0f3f87c685c8..35392b42068551ac7c9a7a19d33f1278db64e70f 100644 (file)
 #include "kitemviews/kitemlistwidget.h"
 
 #include <QPixmap>
+#include <QPointer>
 #include <QPointF>
 #include <QStaticText>
 
 class KItemListRoleEditor;
 class KItemListStyleOption;
 class KItemListView;
+class QVariantAnimation;
 
+/**
+ * @brief standard implementation of the ItemList widget informant for use with KStandardItemListView and KStandardItemModel.
+ *
+ * @see KItemListWidgetInformant
+ */
 class DOLPHIN_EXPORT KStandardItemListWidgetInformant : public KItemListWidgetInformant
 {
 public:
@@ -67,7 +74,9 @@ protected:
 };
 
 /**
- * @brief ItemList widget implementation for KStandardItemListView and KStandardItemModel.
+ * @brief standard implementation of an ItemList widget for KStandardItemListView and KStandardItemModel.
+ *
+ * @see KItemListWidget
  */
 class DOLPHIN_EXPORT KStandardItemListWidget : public KItemListWidget
 {
@@ -80,7 +89,6 @@ public:
     ~KStandardItemListWidget() override;
 
     void setLayout(Layout layout);
-    Layout layout() const;
 
     void setHighlightEntireRow(bool highlightEntireRow);
     bool highlightEntireRow() const;
@@ -97,6 +105,8 @@ public:
     QRectF expansionToggleRect() const override;
     QRectF selectionToggleRect() const override;
     QPixmap createDragPixmap(const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
+    /** @see KItemListWidget::startActivateSoonAnimation() */
+    void startActivateSoonAnimation(int timeUntilActivation) override;
 
     static KItemListWidgetInformant *createInformant();
 
@@ -139,7 +149,7 @@ protected:
     virtual QPalette::ColorRole normalTextColorRole() const;
 
     void setTextColor(const QColor &color);
-    QColor textColor() const;
+    QColor textColor(const QWidget &widget) const;
 
     void setOverlay(const QPixmap &overlay);
     QPixmap overlay() const;
@@ -181,6 +191,7 @@ protected:
         QPointF pos;
         QStaticText staticText;
     };
+    void updateAdditionalInfoTextColor();
 
 public Q_SLOTS:
     void finishRoleEditing();
@@ -200,8 +211,6 @@ private:
     void updateCompactLayoutTextCache();
     void updateDetailsLayoutTextCache();
 
-    void updateAdditionalInfoTextColor();
-
     void drawPixmap(QPainter *painter, const QPixmap &pixmap);
     void drawSiblingsInformation(QPainter *painter);
 
@@ -209,6 +218,13 @@ private:
 
     QString elideRightKeepExtension(const QString &text, int elidingWidth) const;
 
+    /**
+     * Escapes text for display purposes.
+     *
+     * Replaces '\n' with Unicode line break (U+21B5).
+     */
+    QString escapeString(const QString &text) const;
+
     /**
      * Closes the role editor and returns the focus back
      * to the KItemListContainer.
@@ -230,6 +246,9 @@ private:
      */
     static qreal columnPadding(const KItemListStyleOption &option);
 
+    /** @returns whether the usual icon should be shown or not. */
+    bool isIconControlledByActivateSoonAnimation() const;
+
 protected:
     QHash<QByteArray, TextInfo *> m_textInfo; // PlacesItemListWidget needs to access this
 
@@ -270,6 +289,9 @@ private:
     KItemListRoleEditor *m_roleEditor;
     KItemListRoleEditor *m_oldRoleEditor;
 
+    /** @see startActivateSoonAnimation() */
+    QPointer<QVariantAnimation> m_activateSoonAnimation;
+
     friend class KStandardItemListWidgetInformant; // Accesses private static methods to be able to
                                                    // share a common layout calculation
 };