forked from qt-creator/qt-creator
QmlDesigner: Introduce QMLDESIGNER_QUICK3D_MODE
We should enable the 3d edit mode only, if there is QtQuick3D import. Additionally there should also be an option in the UI. Change-Id: I2010f2cdd6546c63a2263b8ee02480d4f13177c2 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -69,6 +69,8 @@ Qt5NodeInstanceClientProxy::Qt5NodeInstanceClientProxy(QObject *parent) :
|
|||||||
* because we want to be able to show the 3D Edit View
|
* because we want to be able to show the 3D Edit View
|
||||||
* as a normal QQuickView.
|
* as a normal QQuickView.
|
||||||
* The DesignerWindowManager prevents any window from actually being shown. */
|
* The DesignerWindowManager prevents any window from actually being shown. */
|
||||||
|
if (!qEnvironmentVariableIsSet("QMLDESIGNER_QUICK3D_MODE"))
|
||||||
|
DesignerSupport::activateDesignerWindowManager();
|
||||||
setNodeInstanceServer(new Qt5InformationNodeInstanceServer(this));
|
setNodeInstanceServer(new Qt5InformationNodeInstanceServer(this));
|
||||||
initializeSocket();
|
initializeSocket();
|
||||||
} else if (QCoreApplication::arguments().at(2) == QLatin1String("rendermode")) {
|
} else if (QCoreApplication::arguments().at(2) == QLatin1String("rendermode")) {
|
||||||
|
@@ -71,8 +71,9 @@ void Qt5NodeInstanceServer::initializeView()
|
|||||||
|
|
||||||
DesignerSupport::createOpenGLContext(m_quickView.data());
|
DesignerSupport::createOpenGLContext(m_quickView.data());
|
||||||
|
|
||||||
if (QCoreApplication::arguments().at(2) == "editormode") {
|
if (qEnvironmentVariableIsSet("QMLDESIGNER_QUICK3D_MODE")
|
||||||
/* In 'editormode' we do not use the DesignerWindowManager
|
&& QCoreApplication::arguments().at(2) == "editormode") {
|
||||||
|
/* In '3d editormode' we do not use the DesignerWindowManager
|
||||||
* and since we do not show the QQuickView we have to manually create the OpenGL context */
|
* and since we do not show the QQuickView we have to manually create the OpenGL context */
|
||||||
auto context = new QOpenGLContext(m_quickView);
|
auto context = new QOpenGLContext(m_quickView);
|
||||||
context->setFormat(surfaceFormat);
|
context->setFormat(surfaceFormat);
|
||||||
|
@@ -133,14 +133,18 @@ int main(int argc, char *argv[])
|
|||||||
// subpixel antialiasing and instead use gray.
|
// subpixel antialiasing and instead use gray.
|
||||||
qputenv("QSG_DISTANCEFIELD_ANTIALIASING", "gray");
|
qputenv("QSG_DISTANCEFIELD_ANTIALIASING", "gray");
|
||||||
#ifdef Q_OS_MACOS
|
#ifdef Q_OS_MACOS
|
||||||
// We have to parse the arguments before Q[Gui]Application creation
|
if (!qEnvironmentVariableIsSet("QMLDESIGNER_QUICK3D_MODE")) {
|
||||||
// Since the Qt arguments are not filtered out, yet we do not know the position of the argument
|
qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true");
|
||||||
for (int i = 0; i < argc; ++i) {
|
} else {
|
||||||
const char *arg = argv[i];
|
// We have to parse the arguments before Q[Gui]Application creation
|
||||||
//In previewmode and rendermode we hide the process
|
// Since the Qt arguments are not filtered out, yet we do not know the position of the argument
|
||||||
if (!qstrcmp(arg, "previewmode") || !qstrcmp(arg, "rendermode"))
|
for (int i = 0; i < argc; ++i) {
|
||||||
qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true");
|
const char *arg = argv[i];
|
||||||
// This keeps qml2puppet from stealing focus
|
//In previewmode and rendermode we hide the process
|
||||||
|
if (!qstrcmp(arg, "previewmode") || !qstrcmp(arg, "rendermode"))
|
||||||
|
qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true");
|
||||||
|
// This keeps qml2puppet from stealing focus
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -465,6 +465,12 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
|
|||||||
|
|
||||||
QStringList importPaths = m_model->importPaths();
|
QStringList importPaths = m_model->importPaths();
|
||||||
|
|
||||||
|
QmlDesigner::Import import = QmlDesigner::Import::createLibraryImport("QtQuick3D", "1.0");
|
||||||
|
|
||||||
|
if (m_model->hasImport(import, true, true))
|
||||||
|
environment.set("QMLDESIGNER_QUICK3D_MODE", "true");
|
||||||
|
|
||||||
|
|
||||||
/* For the fallback puppet we have to remove the path to the original qtbase plugins to avoid conflics */
|
/* For the fallback puppet we have to remove the path to the original qtbase plugins to avoid conflics */
|
||||||
if (m_availablePuppetType == FallbackPuppet)
|
if (m_availablePuppetType == FallbackPuppet)
|
||||||
filterOutQtBaseImportPath(&importPaths);
|
filterOutQtBaseImportPath(&importPaths);
|
||||||
|
Reference in New Issue
Block a user