┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistview.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-04-17 18:13:31 +0200
committerPeter Penz <[email protected]>2012-04-17 18:15:12 +0200
commitb2e54c3a316b502ab4f7a95250f8316dc591c057 (patch)
tree227eda97fcf699633f49fa7ea6ccdf38a19626e7 /src/kitemviews/kitemlistview.cpp
parenteb1b53103d67784c68bb33e5fe3fefcad4cdbdea (diff)
Implement inline-renaming for the new view-engine
BUG: 286893 FIXED-IN: 4.9.0
Diffstat (limited to 'src/kitemviews/kitemlistview.cpp')
-rw-r--r--src/kitemviews/kitemlistview.cpp32
1 files changed, 31 insertions, 1 deletions
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<int>& 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) {