From b2e54c3a316b502ab4f7a95250f8316dc591c057 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Tue, 17 Apr 2012 18:13:31 +0200 Subject: Implement inline-renaming for the new view-engine BUG: 286893 FIXED-IN: 4.9.0 --- src/kitemviews/kitemlistview.cpp | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'src/kitemviews/kitemlistview.cpp') diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index c62523410..d53c24589 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -57,6 +57,7 @@ KItemListView::KItemListView(QGraphicsWidget* parent) : m_enabledSelectionToggles(false), m_grouped(false), m_supportsItemExpanding(false), + m_editingRole(false), m_activeTransactions(0), m_endTransactionAnimationHint(Animation), m_itemSize(), @@ -667,6 +668,23 @@ QPixmap KItemListView::createDragPixmap(const QSet& indexes) const return QPixmap(); } +void KItemListView::editRole(int index, const QByteArray& role) +{ + KItemListWidget* widget = m_visibleItems.value(index); + if (!widget) { + return; + } + + Q_ASSERT(!m_editingRole); + m_editingRole = true; + widget->setEditedRole(role); + + connect(widget, SIGNAL(roleEditingCanceled(int,QByteArray,QVariant)), + this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant))); + connect(widget, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)), + this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant))); +} + void KItemListView::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { QGraphicsWidget::paint(painter, option, widget); @@ -760,7 +778,7 @@ void KItemListView::onTransactionEnd() bool KItemListView::event(QEvent* event) { // Forward all events to the controller and handle them there - if (m_controller && m_controller->processEvent(event, transform())) { + if (!m_editingRole && m_controller && m_controller->processEvent(event, transform())) { event->accept(); return true; } @@ -1331,6 +1349,18 @@ void KItemListView::slotGeometryOfGroupHeaderParentChanged() updateGroupHeaderLayout(widget); } +void KItemListView::slotRoleEditingCanceled(int index, const QByteArray& role, const QVariant& value) +{ + emit roleEditingCanceled(index, role, value); + m_editingRole = false; +} + +void KItemListView::slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value) +{ + emit roleEditingFinished(index, role, value); + m_editingRole = false; +} + void KItemListView::setController(KItemListController* controller) { if (m_controller != controller) { -- cgit v1.3