X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/81b84a1eaf9fcfc3c2318b7ab4d30c7c578e9680..848abc5922167a467bb73107ee6b72e9af3c8317:/src/kitemviews/kitemlistwidget.cpp diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp index 19807a404..f92309254 100644 --- a/src/kitemviews/kitemlistwidget.cpp +++ b/src/kitemviews/kitemlistwidget.cpp @@ -23,13 +23,10 @@ #include "kitemlistwidget.h" #include "kitemlistview.h" -#include "kitemmodelbase.h" #include "private/kitemlistselectiontoggle.h" -#include -#include #include #include #include @@ -44,7 +41,7 @@ KItemListWidgetInformant::~KItemListWidgetInformant() } KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent) : - QGraphicsWidget(parent, 0), + QGraphicsWidget(parent, nullptr), m_informant(informant), m_index(-1), m_selected(false), @@ -58,9 +55,9 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsI m_styleOption(), m_siblingsInfo(), m_hoverOpacity(0), - m_hoverCache(0), - m_hoverAnimation(0), - m_selectionToggle(0), + m_hoverCache(nullptr), + m_hoverAnimation(nullptr), + m_selectionToggle(nullptr), m_editedRole() { } @@ -74,7 +71,7 @@ void KItemListWidget::setIndex(int index) { if (m_index != index) { delete m_selectionToggle; - m_selectionToggle = 0; + m_selectionToggle = nullptr; if (m_hoverAnimation) { m_hoverAnimation->stop(); @@ -181,8 +178,8 @@ QList KItemListWidget::visibleRoles() const void KItemListWidget::setColumnWidth(const QByteArray& role, qreal width) { - if (m_columnWidths.value(role) != width) { - const qreal previousWidth = width; + const qreal previousWidth = m_columnWidths.value(role); + if (previousWidth != width) { m_columnWidths.insert(role, width); columnWidthChanged(role, width, previousWidth); update(); @@ -250,7 +247,7 @@ void KItemListWidget::setHovered(bool hovered) if (!m_hoverAnimation) { m_hoverAnimation = new QPropertyAnimation(this, "hoverOpacity", this); - const int duration = (KGlobalSettings::graphicEffectsLevel() == KGlobalSettings::NoEffects) ? 1 : 200; + const int duration = style()->styleHint(QStyle::SH_Widget_Animate) ? 200 : 1; m_hoverAnimation->setDuration(duration); connect(m_hoverAnimation, &QPropertyAnimation::finished, this, &KItemListWidget::slotHoverAnimationFinished); } @@ -370,7 +367,8 @@ QRectF KItemListWidget::expansionToggleRect() const QPixmap KItemListWidget::createDragPixmap(const QStyleOptionGraphicsItem* option, QWidget* widget) { - QPixmap pixmap(size().toSize()); + QPixmap pixmap(size().toSize() * widget->devicePixelRatio()); + pixmap.setDevicePixelRatio(widget->devicePixelRatio()); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); @@ -473,9 +471,9 @@ qreal KItemListWidget::hoverOpacity() const void KItemListWidget::slotHoverAnimationFinished() { - if (!m_hovered) { - delete m_selectionToggle; - m_selectionToggle = 0; + if (!m_hovered && m_selectionToggle) { + m_selectionToggle->deleteLater(); + m_selectionToggle = nullptr; } } @@ -503,7 +501,7 @@ void KItemListWidget::setHoverOpacity(qreal opacity) if (m_hoverOpacity <= 0.0) { delete m_hoverCache; - m_hoverCache = 0; + m_hoverCache = nullptr; } update(); @@ -512,17 +510,17 @@ void KItemListWidget::setHoverOpacity(qreal opacity) void KItemListWidget::clearHoverCache() { delete m_hoverCache; - m_hoverCache = 0; + m_hoverCache = nullptr; } void KItemListWidget::drawItemStyleOption(QPainter* painter, QWidget* widget, QStyle::State styleState) { - QStyleOptionViewItemV4 viewItemOption; + QStyleOptionViewItem viewItemOption; viewItemOption.initFrom(widget); viewItemOption.state = styleState; - viewItemOption.viewItemPosition = QStyleOptionViewItemV4::OnlyOne; + viewItemOption.viewItemPosition = QStyleOptionViewItem::OnlyOne; viewItemOption.showDecorationSelected = true; - viewItemOption.rect = textRect().toRect(); + viewItemOption.rect = selectionRect().toRect(); widget->style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &viewItemOption, painter, widget); }