forked from qt-creator/qt-creator
QML Observer: Highlight selected items in Qt Creator on click
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user