[kgraphviewer-devel] [KGraphViewer/libkgraphviz] b7ae78f: Fix edge element selection
Kevin Funk
krf at electrostorm.net
Wed Dec 15 15:41:51 CET 2010
commit b7ae78f4185dfb1928fec4c808d1f3dcfe4c4d70
branch libkgraphviz
Author: Kevin Funk <krf at electrostorm.net>
Date: Wed Dec 15 13:39:45 2010 +0100
Fix edge element selection
Fix logic in DotGraphView::slotElementSelected.
Fixes regression introduced by previous commit.
diff --git a/src/kgraphviz/canvaselement.cpp b/src/kgraphviz/canvaselement.cpp
index bea5185..91a50bf 100644
--- a/src/kgraphviz/canvaselement.cpp
+++ b/src/kgraphviz/canvaselement.cpp
@@ -513,6 +513,7 @@ void CanvasElement::mousePressEvent(QGraphicsSceneMouseEvent* event)
m_element->setSelected(!m_element->isSelected());
if (m_element->isSelected())
{
+ kDebug() << "Element selected:" << m_element->id() << m_element;
emit(selected(this,event->modifiers()));
}
update();
diff --git a/src/kgraphviz/dotgraphview.cpp b/src/kgraphviz/dotgraphview.cpp
index bcb9b1d..a953f09 100644
--- a/src/kgraphviz/dotgraphview.cpp
+++ b/src/kgraphviz/dotgraphview.cpp
@@ -1581,16 +1581,19 @@ void DotGraphView::setReadWrite()
void DotGraphView::slotElementSelected(CanvasElement* element, Qt::KeyboardModifiers modifiers)
{
Q_D(DotGraphView);
- kDebug() << "Element:" << element->element()->id();
+ kDebug() << "Element:" << element->element()->id() << element->element();
QList<QString> selection;
selection.push_back(element->element()->id());
if (!modifiers.testFlag(Qt::ControlModifier))
{
foreach(GraphEdge* e, d->m_graph->edges())
{
- if (e->isSelected()) {
- e->setSelected(false);
- e->canvasElement()->update();
+ if (e->canvasElement() != element)
+ {
+ if (e->isSelected()) {
+ e->setSelected(false);
+ e->canvasElement()->update();
+ }
}
}
foreach(GraphNode* e, d->m_graph->nodes())
More information about the kgraphviewer-devel
mailing list