diff options
Diffstat (limited to 'src/plugins/qmldesigner/designercore')
4 files changed, 24 insertions, 32 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h index a6de5fd6c6..f6b705acc3 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h @@ -59,7 +59,6 @@ class CreateSceneCommand; class CreateInstancesCommand; class ClearSceneCommand; class ReparentInstancesCommand; -class Change3DViewCommand; class ChangeFileUrlCommand; class ChangeValuesCommand; class ChangeBindingsCommand; @@ -143,15 +142,14 @@ public: void selectedNodesChanged(const QList<ModelNode> &selectedNodeList, const QList<ModelNode> &lastSelectedNodeList) override; - void show3DView(const QRect &rect); - void move3DView(const QPoint &position); - void hide3DView(); + void mainWindowStateChanged(Qt::WindowStates previousStates, Qt::WindowStates currentStates); + void mainWindowActiveChanged(bool active, bool hasPopup); + void enable3DView(bool enable); protected: void timerEvent(QTimerEvent *event) override; private: // functions - enum ViewAction { Show, Move, Hide }; void activateState(const NodeInstance &instance); void activateBaseState(); @@ -176,7 +174,6 @@ private: // functions CreateSceneCommand createCreateSceneCommand(); - Change3DViewCommand createChange3DViewCommand(ViewAction action, const QPoint &pos = {}, const QSize &size = {}) const; ClearSceneCommand createClearSceneCommand() const; CreateInstancesCommand createCreateInstancesCommand(const QList<NodeInstance> &instanceList) const; CompleteComponentCommand createComponentCompleteCommand(const QList<NodeInstance> &instanceList) const; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index 39de64f9ae..d979e3dd32 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -29,7 +29,8 @@ #include <createinstancescommand.h> #include <createscenecommand.h> -#include <change3dviewcommand.h> +#include <update3dviewstatecommand.h> +#include <enable3dviewcommand.h> #include <changevaluescommand.h> #include <changebindingscommand.h> #include <changeauxiliarycommand.h> @@ -652,7 +653,12 @@ void NodeInstanceServerProxy::clearScene(const ClearSceneCommand &command) writeCommand(QVariant::fromValue(command)); } -void NodeInstanceServerProxy::change3DView(const Change3DViewCommand &command) +void NodeInstanceServerProxy::update3DViewState(const Update3dViewStateCommand &command) +{ + writeCommand(QVariant::fromValue(command)); +} + +void NodeInstanceServerProxy::enable3DView(const Enable3DViewCommand &command) { writeCommand(QVariant::fromValue(command)); } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h index 62c361dbd1..25dd7bec1f 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h @@ -69,7 +69,8 @@ public: void createInstances(const CreateInstancesCommand &command) override; void changeFileUrl(const ChangeFileUrlCommand &command) override; void createScene(const CreateSceneCommand &command) override; - void change3DView(const Change3DViewCommand &command) override; + void update3DViewState(const Update3dViewStateCommand &command) override; + void enable3DView(const Enable3DViewCommand &command) override; void clearScene(const ClearSceneCommand &command) override; void removeInstances(const RemoveInstancesCommand &command) override; void changeSelection(const ChangeSelectionCommand &command) override; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index 9aa8d2f41c..9528328754 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -48,7 +48,8 @@ #include "clearscenecommand.h" #include "changefileurlcommand.h" #include "reparentinstancescommand.h" -#include "change3dviewcommand.h" +#include "update3dviewstatecommand.h" +#include "enable3dviewcommand.h" #include "changevaluescommand.h" #include "changeauxiliarycommand.h" #include "changebindingscommand.h" @@ -979,20 +980,6 @@ ClearSceneCommand NodeInstanceView::createClearSceneCommand() const return {}; } -Change3DViewCommand NodeInstanceView::createChange3DViewCommand(ViewAction action, const QPoint &pos, const QSize &size) const -{ - InformationName informationName = InformationName::ShowView; - - if (action == ViewAction::Move) - informationName = InformationName::MoveView; - else if (action == ViewAction::Hide) - informationName = InformationName::HideView; - - const qint32 instanceId = 0; - - return Change3DViewCommand({ InformationContainer(instanceId, informationName, pos, size) }); -} - CompleteComponentCommand NodeInstanceView::createComponentCompleteCommand(const QList<NodeInstance> &instanceList) const { QVector<qint32> containerList; @@ -1473,21 +1460,22 @@ void NodeInstanceView::selectedNodesChanged(const QList<ModelNode> &selectedNode nodeInstanceServer()->changeSelection(createChangeSelectionCommand(selectedNodeList)); } -void NodeInstanceView::move3DView(const QPoint &position) +void NodeInstanceView::mainWindowStateChanged(Qt::WindowStates previousStates, Qt::WindowStates currentStates) { - nodeInstanceServer()->change3DView(createChange3DViewCommand(ViewAction::Move, position)); + if (nodeInstanceServer()) + nodeInstanceServer()->update3DViewState(Update3dViewStateCommand(previousStates, currentStates)); } -void NodeInstanceView::hide3DView() +void NodeInstanceView::mainWindowActiveChanged(bool active, bool hasPopup) { - nodeInstanceServer()->change3DView(createChange3DViewCommand(ViewAction::Hide)); + if (nodeInstanceServer()) + nodeInstanceServer()->update3DViewState(Update3dViewStateCommand(active, hasPopup)); } -void NodeInstanceView::show3DView(const QRect &rect) +// enable / disable 3D edit View +void NodeInstanceView::enable3DView(bool enable) { - nodeInstanceServer()->change3DView(createChange3DViewCommand(ViewAction::Show, - rect.topLeft(), - rect.size())); + nodeInstanceServer()->enable3DView(Enable3DViewCommand(enable)); } void NodeInstanceView::timerEvent(QTimerEvent *event) |