QmlDesigner: Break dependency to View3DActionCommand

The node instance view and his commands should be not called directly
from other views. There are special classes QmlItem which can do it but
every change should go through the model.

Change-Id: I734e5538d7f6ecb07d736912f647c5eb92dc7631
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Marco Bubke
2022-09-14 11:46:08 +02:00
parent 2bfc8173e5
commit 8aee8df4df
21 changed files with 475 additions and 279 deletions

View File

@@ -3,6 +3,8 @@
#pragma once
#include <nodeinstanceglobal.h>
#include <QMetaType>
#include <QVariant>
@@ -14,60 +16,25 @@ class View3DActionCommand
friend QDebug operator<<(QDebug debug, const View3DActionCommand &command);
public:
enum Type { Empty,
MoveTool,
ScaleTool,
RotateTool,
FitToView,
AlignCamerasToView,
AlignViewToCamera,
SelectionModeToggle,
CameraToggle,
OrientationToggle,
EditLightToggle,
ShowGrid,
ShowSelectionBox,
ShowIconGizmo,
ShowCameraFrustum,
ShowParticleEmitter,
Edit3DParticleModeToggle,
ParticlesPlay,
ParticlesRestart,
ParticlesSeek,
SelectBackgroundColor,
SelectGridColor,
ResetBackgroundColor,
SyncBackgroundColor,
GetNodeAtPos
};
View3DActionCommand(Type type, const QVariant &value);
View3DActionCommand(View3DActionType type, const QVariant &value);
View3DActionCommand() = default;
bool isEnabled() const;
QVariant value() const;
Type type() const;
View3DActionType type() const;
int position() const;
private:
Type m_type = Empty;
View3DActionType m_type = View3DActionType::Empty;
QVariant m_value;
protected:
View3DActionCommand(int pos);
};
class View3DSeekActionCommand : public View3DActionCommand
{
public:
View3DSeekActionCommand(int pos) : View3DActionCommand(pos) {}
};
QDataStream &operator<<(QDataStream &out, const View3DActionCommand &command);
QDataStream &operator>>(QDataStream &in, View3DActionCommand &command);
QDebug operator<<(QDebug debug, const View3DActionCommand &command);
QDebug operator<<(QDebug debug, View3DActionType type);
} // namespace QmlDesigner