#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:
};
/**
- * @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
{
~KStandardItemListWidget() override;
void setLayout(Layout layout);
- Layout layout() const;
void setHighlightEntireRow(bool highlightEntireRow);
bool highlightEntireRow() const;
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();
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;
QPointF pos;
QStaticText staticText;
};
+ void updateAdditionalInfoTextColor();
public Q_SLOTS:
void finishRoleEditing();
void updateCompactLayoutTextCache();
void updateDetailsLayoutTextCache();
- void updateAdditionalInfoTextColor();
-
void drawPixmap(QPainter *painter, const QPixmap &pixmap);
void drawSiblingsInformation(QPainter *painter);
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.
*/
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
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
};