X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/016cf47c53c28aa57cf58c37d5acdcfce0bc47b0..403de19d9c036dd28481d3b62bdb0f49f0792fbf:/src/kitemviews/private/kitemlistheaderwidget.cpp diff --git a/src/kitemviews/private/kitemlistheaderwidget.cpp b/src/kitemviews/private/kitemlistheaderwidget.cpp index 1f210ab5a..9263a7de2 100644 --- a/src/kitemviews/private/kitemlistheaderwidget.cpp +++ b/src/kitemviews/private/kitemlistheaderwidget.cpp @@ -18,22 +18,18 @@ ***************************************************************************/ #include "kitemlistheaderwidget.h" - -#include -#include -#include +#include "kitemviews/kitemmodelbase.h" #include #include #include #include -#include KItemListHeaderWidget::KItemListHeaderWidget(QGraphicsWidget* parent) : QGraphicsWidget(parent), m_automaticColumnResizing(true), - m_model(0), + m_model(nullptr), m_offset(0), m_columns(), m_columnWidths(), @@ -62,19 +58,19 @@ void KItemListHeaderWidget::setModel(KItemModelBase* model) } if (m_model) { - disconnect(m_model, SIGNAL(sortRoleChanged(QByteArray,QByteArray)), - this, SLOT(slotSortRoleChanged(QByteArray,QByteArray))); - disconnect(m_model, SIGNAL(sortOrderChanged(Qt::SortOrder,Qt::SortOrder)), - this, SLOT(slotSortOrderChanged(Qt::SortOrder,Qt::SortOrder))); + disconnect(m_model, &KItemModelBase::sortRoleChanged, + this, &KItemListHeaderWidget::slotSortRoleChanged); + disconnect(m_model, &KItemModelBase::sortOrderChanged, + this, &KItemListHeaderWidget::slotSortOrderChanged); } m_model = model; if (m_model) { - connect(m_model, SIGNAL(sortRoleChanged(QByteArray,QByteArray)), - this, SLOT(slotSortRoleChanged(QByteArray,QByteArray))); - connect(m_model, SIGNAL(sortOrderChanged(Qt::SortOrder,Qt::SortOrder)), - this, SLOT(slotSortOrderChanged(Qt::SortOrder,Qt::SortOrder))); + connect(m_model, &KItemModelBase::sortRoleChanged, + this, &KItemListHeaderWidget::slotSortRoleChanged); + connect(m_model, &KItemModelBase::sortOrderChanged, + this, &KItemListHeaderWidget::slotSortOrderChanged); } } @@ -97,7 +93,6 @@ void KItemListHeaderWidget::setColumns(const QList& roles) { foreach (const QByteArray& role, roles) { if (!m_columnWidths.contains(role)) { - m_columnWidths.remove(role); m_preferredColumnWidths.remove(role); } } @@ -160,8 +155,8 @@ qreal KItemListHeaderWidget::minimumColumnWidth() const void KItemListHeaderWidget::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { - Q_UNUSED(option); - Q_UNUSED(widget); + Q_UNUSED(option) + Q_UNUSED(widget) if (!m_model) { return; @@ -224,10 +219,11 @@ void KItemListHeaderWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) // Change the sort role and reset to the ascending order const QByteArray previous = m_model->sortRole(); const QByteArray current = m_columns[m_pressedRoleIndex]; - m_model->setSortRole(current); + const bool resetSortOrder = m_model->sortOrder() == Qt::DescendingOrder; + m_model->setSortRole(current, !resetSortOrder); emit sortRoleChanged(current, previous); - if (m_model->sortOrder() == Qt::DescendingOrder) { + if (resetSortOrder) { m_model->setSortOrder(Qt::AscendingOrder); emit sortOrderChanged(Qt::AscendingOrder, Qt::DescendingOrder); } @@ -235,6 +231,13 @@ void KItemListHeaderWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) break; } + case ResizeRoleOperation: { + const QByteArray pressedRole = m_columns[m_pressedRoleIndex]; + const qreal currentWidth = m_columnWidths.value(pressedRole); + emit columnWidthChangeFinished(pressedRole, currentWidth); + break; + } + case MoveRoleOperation: m_movingRole.pixmap = QPixmap(); m_movingRole.x = 0; @@ -340,6 +343,7 @@ void KItemListHeaderWidget::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* even qreal currentWidth = columnWidth(role); emit columnWidthChanged(role, currentWidth, previousWidth); + emit columnWidthChangeFinished(role, currentWidth); } } @@ -373,15 +377,15 @@ void KItemListHeaderWidget::hoverMoveEvent(QGraphicsSceneHoverEvent* event) void KItemListHeaderWidget::slotSortRoleChanged(const QByteArray& current, const QByteArray& previous) { - Q_UNUSED(current); - Q_UNUSED(previous); + Q_UNUSED(current) + Q_UNUSED(previous) update(); } void KItemListHeaderWidget::slotSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) { - Q_UNUSED(current); - Q_UNUSED(previous); + Q_UNUSED(current) + Q_UNUSED(previous) update(); } @@ -569,4 +573,3 @@ qreal KItemListHeaderWidget::roleXPosition(const QByteArray& role) const return -1; } -#include "kitemlistheaderwidget.moc"