QmlDesigner: Fix resize handle shown at start

Task-number: QTCREATORBUG-10374
Change-Id: I68ec998ad156a74d37e0321e1538b0936fded8da
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Marco Bubke
2013-10-14 19:22:01 +02:00
committed by Thomas Hartmann
parent 50e32a9252
commit 9ae3e461ce
7 changed files with 37 additions and 11 deletions

View File

@@ -190,6 +190,18 @@ FormEditorItem* AbstractFormEditorTool::topFormEditorItemWithRootItem(const QLis
return 0; return 0;
} }
QList<FormEditorItem *> AbstractFormEditorTool::filterSelectedModelNodes(const QList<FormEditorItem *> &itemList) const
{
QList<FormEditorItem *> filteredItemList;
foreach (FormEditorItem *item, itemList) {
if (view()->isSelectedModelNode(item->qmlItemNode()))
filteredItemList.append(item);
}
return filteredItemList;
}
void AbstractFormEditorTool::dropEvent(QGraphicsSceneDragDropEvent * /* event */) void AbstractFormEditorTool::dropEvent(QGraphicsSceneDragDropEvent * /* event */)
{ {
} }

View File

@@ -99,6 +99,8 @@ public:
static FormEditorItem* topFormEditorItem(const QList<QGraphicsItem*> &itemList); static FormEditorItem* topFormEditorItem(const QList<QGraphicsItem*> &itemList);
static FormEditorItem* topFormEditorItemWithRootItem(const QList<QGraphicsItem*> &itemList); static FormEditorItem* topFormEditorItemWithRootItem(const QList<QGraphicsItem*> &itemList);
QList<FormEditorItem*> filterSelectedModelNodes(const QList<FormEditorItem*> &itemList) const;
protected: protected:
virtual void selectedItemsChanged(const QList<FormEditorItem*> &itemList) = 0; virtual void selectedItemsChanged(const QList<FormEditorItem*> &itemList) = 0;
virtual void showContextMenu(QGraphicsSceneMouseEvent *event); virtual void showContextMenu(QGraphicsSceneMouseEvent *event);

View File

@@ -395,10 +395,12 @@ QList<FormEditorItem*> MoveTool::movingItems(const QList<FormEditorItem*> &selec
void MoveTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList) void MoveTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList)
{ {
m_selectionIndicator.updateItems(itemList); const QList<FormEditorItem*> selectedItemList = filterSelectedModelNodes(itemList);
m_resizeIndicator.updateItems(itemList);
m_anchorIndicator.updateItems(itemList); m_selectionIndicator.updateItems(selectedItemList);
m_bindingIndicator.updateItems(itemList); m_resizeIndicator.updateItems(selectedItemList);
m_anchorIndicator.updateItems(selectedItemList);
m_bindingIndicator.updateItems(selectedItemList);
} }
} }

View File

@@ -192,9 +192,11 @@ void ResizeTool::clear()
void ResizeTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList) void ResizeTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList)
{ {
m_selectionIndicator.updateItems(itemList); const QList<FormEditorItem*> selectedItemList = filterSelectedModelNodes(itemList);
m_resizeIndicator.updateItems(itemList);
m_anchorIndicator.updateItems(itemList); m_selectionIndicator.updateItems(selectedItemList);
m_resizeIndicator.updateItems(selectedItemList);
m_anchorIndicator.updateItems(selectedItemList);
} }
void ResizeTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/) void ResizeTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/)

View File

@@ -265,10 +265,12 @@ void SelectionTool::selectedItemsChanged(const QList<FormEditorItem*> &itemList)
void SelectionTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList) void SelectionTool::formEditorItemsChanged(const QList<FormEditorItem*> &itemList)
{ {
m_selectionIndicator.updateItems(itemList); const QList<FormEditorItem*> selectedItemList = filterSelectedModelNodes(itemList);
m_resizeIndicator.updateItems(itemList);
m_anchorIndicator.updateItems(itemList); m_selectionIndicator.updateItems(selectedItemList);
m_bindingIndicator.updateItems(itemList); m_resizeIndicator.updateItems(selectedItemList);
m_anchorIndicator.updateItems(selectedItemList);
m_bindingIndicator.updateItems(selectedItemList);
} }
void SelectionTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/) void SelectionTool::instancesCompleted(const QList<FormEditorItem*> &/*itemList*/)

View File

@@ -152,6 +152,7 @@ public:
void clearSelectedModelNodes(); void clearSelectedModelNodes();
bool hasSelectedModelNodes() const; bool hasSelectedModelNodes() const;
bool hasSingleSelectedModelNode() const; bool hasSingleSelectedModelNode() const;
bool isSelectedModelNode(const ModelNode &modelNode) const;
QList<ModelNode> selectedModelNodes() const; QList<ModelNode> selectedModelNodes() const;
ModelNode firstSelectedModelNode() const; ModelNode firstSelectedModelNode() const;

View File

@@ -293,6 +293,11 @@ bool AbstractView::hasSingleSelectedModelNode() const
return model()->d->selectedNodes().count() == 1; return model()->d->selectedNodes().count() == 1;
} }
bool AbstractView::isSelectedModelNode(const ModelNode &modelNode) const
{
return model()->d->selectedNodes().contains(modelNode.internalNode());
}
/*! /*!
Sets the list of nodes to the actual selected nodes. Returns a list of the Sets the list of nodes to the actual selected nodes. Returns a list of the
selected nodes. selected nodes.