diff options
| author | Frank Reininghaus <[email protected]> | 2015-08-29 21:50:16 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2015-09-03 20:26:12 +0200 |
| commit | 5ce01c864f4ab9848a54ee982f6ac18e63f04773 (patch) | |
| tree | 65d9b148516c57609a728ca50e1d787804b2af17 /src/kitemviews | |
| parent | 31f0acc72653972845f83abd60eaffde511801f1 (diff) | |
Only store modified columns widths after the mouse button was released
This prevents that the new widths are written to disk multiple times in
quick succession, which can make column resizing quite slow.
BUG: 351846
REVIEW: 351846
FIXED-IN: 15.08.1
Diffstat (limited to 'src/kitemviews')
| -rw-r--r-- | src/kitemviews/kitemlistheader.cpp | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistheader.h | 7 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistheaderwidget.cpp | 8 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistheaderwidget.h | 7 |
4 files changed, 24 insertions, 0 deletions
diff --git a/src/kitemviews/kitemlistheader.cpp b/src/kitemviews/kitemlistheader.cpp index a3fa14d35..935961a8b 100644 --- a/src/kitemviews/kitemlistheader.cpp +++ b/src/kitemviews/kitemlistheader.cpp @@ -83,5 +83,7 @@ KItemListHeader::KItemListHeader(KItemListView* listView) : connect(m_headerWidget, &KItemListHeaderWidget::columnWidthChanged, this, &KItemListHeader::columnWidthChanged); + connect(m_headerWidget, &KItemListHeaderWidget::columnWidthChangeFinished, + this, &KItemListHeader::columnWidthChangeFinished); } diff --git a/src/kitemviews/kitemlistheader.h b/src/kitemviews/kitemlistheader.h index cc2b74793..76c420559 100644 --- a/src/kitemviews/kitemlistheader.h +++ b/src/kitemviews/kitemlistheader.h @@ -79,6 +79,13 @@ signals: qreal currentWidth, qreal previousWidth); + /** + * Is emitted if the user has released the mouse button after adjusting the + * width of a visible role. + */ + void columnWidthChangeFinished(const QByteArray& role, + qreal currentWidth); + private: KItemListHeader(KItemListView* listView); diff --git a/src/kitemviews/private/kitemlistheaderwidget.cpp b/src/kitemviews/private/kitemlistheaderwidget.cpp index 45ce4e759..cc11e19da 100644 --- a/src/kitemviews/private/kitemlistheaderwidget.cpp +++ b/src/kitemviews/private/kitemlistheaderwidget.cpp @@ -232,6 +232,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; @@ -337,6 +344,7 @@ void KItemListHeaderWidget::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* even qreal currentWidth = columnWidth(role); emit columnWidthChanged(role, currentWidth, previousWidth); + emit columnWidthChangeFinished(role, currentWidth); } } diff --git a/src/kitemviews/private/kitemlistheaderwidget.h b/src/kitemviews/private/kitemlistheaderwidget.h index 307def74d..2a80c205d 100644 --- a/src/kitemviews/private/kitemlistheaderwidget.h +++ b/src/kitemviews/private/kitemlistheaderwidget.h @@ -76,6 +76,13 @@ signals: qreal previousWidth); /** + * Is emitted if the user has released the mouse button after adjusting the + * width of a visible role. + */ + void columnWidthChangeFinished(const QByteArray& role, + qreal currentWidth); + + /** * Is emitted if the position of the column has been changed. */ void columnMoved(const QByteArray& role, int currentIndex, int previousIndex); |
