X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/576a97d8eb9601f4ad74def6528cc90fffe97b1c..6e6fcf8da80b5b6821837054ae51eaa19edc24b8:/src/kitemviews/kstandarditemlistgroupheader.cpp diff --git a/src/kitemviews/kstandarditemlistgroupheader.cpp b/src/kitemviews/kstandarditemlistgroupheader.cpp index 22eefe5ea..0960084a3 100644 --- a/src/kitemviews/kstandarditemlistgroupheader.cpp +++ b/src/kitemviews/kstandarditemlistgroupheader.cpp @@ -11,21 +11,19 @@ #include #include -KStandardItemListGroupHeader::KStandardItemListGroupHeader(QGraphicsWidget* parent) : - KItemListGroupHeader(parent), - m_dirtyCache(true), - m_text(), - m_pixmap() +KStandardItemListGroupHeader::KStandardItemListGroupHeader(QGraphicsWidget *parent) + : KItemListGroupHeader(parent) + , m_dirtyCache(true) + , m_text() + , m_pixmap() { - m_text.setTextFormat(Qt::PlainText); - m_text.setPerformanceHint(QStaticText::AggressiveCaching); } KStandardItemListGroupHeader::~KStandardItemListGroupHeader() { } -void KStandardItemListGroupHeader::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) +void KStandardItemListGroupHeader::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { if (m_dirtyCache) { updateCache(); @@ -33,17 +31,17 @@ void KStandardItemListGroupHeader::paint(QPainter* painter, const QStyleOptionGr KItemListGroupHeader::paint(painter, option, widget); } -void KStandardItemListGroupHeader::paintRole(QPainter* painter, const QRectF& roleBounds, const QColor& color) +void KStandardItemListGroupHeader::paintRole(QPainter *painter, const QRectF &roleBounds, const QColor &color) { if (m_pixmap.isNull()) { painter->setPen(color); - painter->drawStaticText(roleBounds.topLeft(), m_text); + painter->drawText(roleBounds, 0, m_text); } else { painter->drawPixmap(roleBounds.topLeft(), m_pixmap); } } -void KStandardItemListGroupHeader::paintSeparator(QPainter* painter, const QColor& color) +void KStandardItemListGroupHeader::paintSeparator(QPainter *painter, const QColor &color) { if (itemIndex() == 0) { // No top- or left-line should be drawn for the first group-header @@ -53,9 +51,14 @@ void KStandardItemListGroupHeader::paintSeparator(QPainter* painter, const QColo painter->setPen(color); if (scrollOrientation() == Qt::Horizontal) { - painter->drawLine(0, 0, 0, size().height() - 1); + const qreal x = layoutDirection() == Qt::RightToLeft ? size().width() - 1 : 0; + painter->drawLine(x, 0, x, size().height() - 1); } else { - painter->drawLine(0, 0, size().width() - 1, 0); + if (layoutDirection() == Qt::LeftToRight) { + painter->drawLine(0, 0, size().width() - 1, 0); + } else { + painter->drawLine(1, 0, size().width(), 0); + } } } @@ -66,16 +69,16 @@ void KStandardItemListGroupHeader::roleChanged(const QByteArray ¤t, const m_dirtyCache = true; } -void KStandardItemListGroupHeader::dataChanged(const QVariant& current, const QVariant& previous) +void KStandardItemListGroupHeader::dataChanged(const QVariant ¤t, const QVariant &previous) { Q_UNUSED(current) Q_UNUSED(previous) m_dirtyCache = true; } -void KStandardItemListGroupHeader::resizeEvent(QGraphicsSceneResizeEvent* event) +void KStandardItemListGroupHeader::resizeEvent(QGraphicsSceneResizeEvent *event) { - QGraphicsWidget::resizeEvent(event); + KItemListGroupHeader::resizeEvent(event); m_dirtyCache = true; } @@ -87,7 +90,7 @@ void KStandardItemListGroupHeader::updateCache() const qreal maxWidth = size().width() - 4 * styleOption().padding; if (role() == "rating") { - m_text.setText(QString()); + m_text = QString(); const qreal height = styleOption().fontMetrics.ascent(); const QSizeF pixmapSize(qMin(height * 5, maxWidth), height); @@ -104,7 +107,8 @@ void KStandardItemListGroupHeader::updateCache() QFontMetricsF fontMetrics(font()); const QString text = fontMetrics.elidedText(data().toString(), Qt::ElideRight, maxWidth); - m_text.setText(text); + m_text = text; } } +#include "moc_kstandarditemlistgroupheader.cpp"