diff options
author | Henning Gruendl <henning.gruendl@qt.io> | 2020-10-06 12:29:09 +0200 |
---|---|---|
committer | Henning Gründl <henning.gruendl@qt.io> | 2020-10-12 15:24:55 +0000 |
commit | 2860e57112e147a5d639c773836f5e43a82524f7 (patch) | |
tree | 7a8f0a1993c983af685295c4a47b7fcb4b0fee0b /src/plugins/qmldesigner/components/componentcore | |
parent | 15f39cf37c490a1cad6a67919e0a3734dcbdaf26 (diff) |
QmlDesigner: Add lock functionality to navigator
* Update icon font and change related theme and constants files
* Add locked column to Navigator
* Add auxiliary property "locked"
* Integrate locked feature into the following components:
* Transition Editor
* Connection Editor
* Form Editor
* Text Editor
* Timeline
* Navigator
* State Editor
Task-number: QDS-826
Change-Id: Ibf3ae96e0d5daeb1ab00279b94df5aaabe75e0bb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/componentcore')
-rw-r--r-- | src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp | 27 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/componentcore/theme.h | 4 |
2 files changed, 20 insertions, 11 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp index 96d08e5bae..ea34b091cd 100644 --- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp @@ -347,25 +347,27 @@ public: && !selectionContext().currentSingleSelectedNode().isRootNode() && selectionContext().currentSingleSelectedNode().hasParentProperty()) { - ActionTemplate *selectionAction = new ActionTemplate(QString(), &ModelNodeOperations::select); - selectionAction->setParent(menu()); - parentNode = selectionContext().currentSingleSelectedNode().parentProperty().parentModelNode(); - selectionAction->setText(QString(QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Select parent: %1")).arg( - captionForModelNode(parentNode))); + if (!ModelNode::isThisOrAncestorLocked(parentNode)) { + ActionTemplate *selectionAction = new ActionTemplate(QString(), &ModelNodeOperations::select); + selectionAction->setParent(menu()); + selectionAction->setText(QString(QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Select parent: %1")).arg( + captionForModelNode(parentNode))); - SelectionContext nodeSelectionContext = selectionContext(); - nodeSelectionContext.setTargetNode(parentNode); - selectionAction->setSelectionContext(nodeSelectionContext); + SelectionContext nodeSelectionContext = selectionContext(); + nodeSelectionContext.setTargetNode(parentNode); + selectionAction->setSelectionContext(nodeSelectionContext); - menu()->addAction(selectionAction); + menu()->addAction(selectionAction); + } } - foreach (const ModelNode &node, selectionContext().view()->allModelNodes()) { + for (const ModelNode &node : selectionContext().view()->allModelNodes()) { if (node != selectionContext().currentSingleSelectedNode() && node != parentNode && contains(node, selectionContext().scenePosition()) - && !node.isRootNode()) { + && !node.isRootNode() + && !ModelNode::isThisOrAncestorLocked(node)) { selectionContext().setTargetNode(node); QString what = QString(QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Select: %1")).arg(captionForModelNode(node)); ActionTemplate *selectionAction = new ActionTemplate(what, &ModelNodeOperations::select); @@ -377,6 +379,9 @@ public: menu()->addAction(selectionAction); } } + + if (menu()->isEmpty()) + action()->setEnabled(false); } } }; diff --git a/src/plugins/qmldesigner/components/componentcore/theme.h b/src/plugins/qmldesigner/components/componentcore/theme.h index f6a1df97cc..513965b18f 100644 --- a/src/plugins/qmldesigner/components/componentcore/theme.h +++ b/src/plugins/qmldesigner/components/componentcore/theme.h @@ -107,6 +107,8 @@ public: idAliasOff, idAliasOn, listView, + lockOff, + lockOn, mergeCells, minus, plus, @@ -129,6 +131,8 @@ public: undo, upDownIcon, upDownSquare2, + visibilityOff, + visibilityOn, wildcard, zoomAll, zoomIn, |