QML Observer: Highlight selected items in Qt Creator on click

This commit is contained in:
Lasse Holmstedt
2010-07-30 17:19:28 +02:00
parent 64f668fe1f
commit 8d504e1ad5
3 changed files with 17 additions and 7 deletions
@@ -282,18 +282,24 @@ void SubcomponentEditorTool::contextDestroyed(QObject *contextToDestroy)
m_mask->setVisible(false);
}
void SubcomponentEditorTool::setContext(int contextIndex)
QGraphicsObject *SubcomponentEditorTool::setContext(int contextIndex)
{
Q_ASSERT(contextIndex >= 0);
// sometimes we have to delete the context while user was still clicking around,
// so just bail out.
if (contextIndex >= m_currentContext.size() -1)
return;
return 0;
while (m_currentContext.size() - 1 > contextIndex) {
popContext();
}
return m_currentContext.top();
}
int SubcomponentEditorTool::contextIndex() const
{
return m_currentContext.size() - 1;
}
@@ -46,9 +46,8 @@ public:
void pushContext(QGraphicsObject *contextItem);
QGraphicsObject *popContext();
QGraphicsObject *currentRootItem() const;
public slots:
void setContext(int contextIndex);
QGraphicsObject *setContext(int contextIndex);
int contextIndex() const;
signals:
void exitContextRequested();
@@ -114,7 +114,11 @@ QDeclarativeDesignView::~QDeclarativeDesignView()
void QDeclarativeDesignView::setInspectorContext(int contextIndex)
{
data->subcomponentEditorTool->setContext(contextIndex);
if (data->subcomponentEditorTool->contextIndex() != contextIndex) {
QGraphicsObject *object = data->subcomponentEditorTool->setContext(contextIndex);
if (object)
qmlDesignDebugServer()->setCurrentObjects(QList<QObject*>() << object);
}
}
void QDeclarativeDesignViewPrivate::_q_reloadView()
@@ -184,7 +188,7 @@ void QDeclarativeDesignView::mouseReleaseEvent(QMouseEvent *event)
data->cursorPos = event->pos();
data->currentTool->mouseReleaseEvent(event);
//qmlDesignDebugServer()->setCurrentObjects(AbstractFormEditorTool::toObjectList(selectedItems()));
qmlDesignDebugServer()->setCurrentObjects(AbstractFormEditorTool::toObjectList(selectedItems()));
}
void QDeclarativeDesignView::keyPressEvent(QKeyEvent *event)
@@ -357,6 +361,7 @@ void QDeclarativeDesignViewPrivate::setSelectedItems(QList<QGraphicsItem *> item
}
}
currentTool->updateSelectedItems();
qmlDesignDebugServer()->setCurrentObjects(AbstractFormEditorTool::toObjectList(items));
}
QList<QGraphicsItem *> QDeclarativeDesignViewPrivate::selectedItems()