┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2015-08-29 21:50:16 +0200
committerFrank Reininghaus <[email protected]>2015-09-03 20:26:12 +0200
commit5ce01c864f4ab9848a54ee982f6ac18e63f04773 (patch)
tree65d9b148516c57609a728ca50e1d787804b2af17 /src/kitemviews
parent31f0acc72653972845f83abd60eaffde511801f1 (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.cpp2
-rw-r--r--src/kitemviews/kitemlistheader.h7
-rw-r--r--src/kitemviews/private/kitemlistheaderwidget.cpp8
-rw-r--r--src/kitemviews/private/kitemlistheaderwidget.h7
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);