diff options
author | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2014-10-29 10:04:13 +0100 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2014-10-30 14:39:01 +0100 |
commit | d525d28e6fca0bc41e04f5762bf765719d98f1ae (patch) | |
tree | 90f74d8449e9cf9835f1a7c687200e2074f67a06 /share | |
parent | 7a470e97301d2c032b8b30196e0814f379755a47 (diff) | |
download | qt-creator-d525d28e6fca0bc41e04f5762bf765719d98f1ae.tar.gz |
QmlPuppet: Enabling style support
If a style is activated by setting QT_QUICK_CONTROLS_STYLE we have
to use QGuiApplication instead of QApplication.
Change-Id: I138a4fb75508f989f97b207a7024a426fa379f9e
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp | 59 |
1 files changed, 36 insertions, 23 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp index 8e0b6f9603..b93a5e4de2 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp @@ -49,24 +49,15 @@ #include <windows.h> #endif -int main(int argc, char *argv[]) +int internalMain(QGuiApplication *application) { - // Since we always render text into an FBO, we need to globally disable - // subpixel antialiasing and instead use gray. - qputenv("QSG_DISTANCEFIELD_ANTIALIASING", "gray"); -#ifdef Q_OS_MAC //This keeps qml2puppet from stealing focus - qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true"); -#endif - - QApplication application(argc, argv); - QCoreApplication::setOrganizationName("QtProject"); QCoreApplication::setOrganizationDomain("qt-project.org"); QCoreApplication::setApplicationName("Qml2Puppet"); QCoreApplication::setApplicationVersion("1.0.0"); - if (application.arguments().count() < 2 - || (application.arguments().at(1) == "--readcapturedstream" && application.arguments().count() < 3)) { + if (application->arguments().count() < 2 + || (application->arguments().at(1) == "--readcapturedstream" && application->arguments().count() < 3)) { qDebug() << "Usage:\n"; qDebug() << "--test"; qDebug() << "--version"; @@ -75,16 +66,16 @@ int main(int argc, char *argv[]) return -1; } - if (application.arguments().at(1) == "--readcapturedstream" && application.arguments().count() > 2) { - QFileInfo inputStreamFileInfo(application.arguments().at(2)); + if (application->arguments().at(1) == "--readcapturedstream" && application->arguments().count() > 2) { + QFileInfo inputStreamFileInfo(application->arguments().at(2)); if (!inputStreamFileInfo.exists()) { qDebug() << "Input stream does not exist:" << inputStreamFileInfo.absoluteFilePath(); return -1; } - if (application.arguments().count() > 3) { - QFileInfo controlStreamFileInfo(application.arguments().at(3)); + if (application->arguments().count() > 3) { + QFileInfo controlStreamFileInfo(application->arguments().at(3)); if (!controlStreamFileInfo.exists()) { qDebug() << "Output stream does not exist:" << controlStreamFileInfo.absoluteFilePath(); @@ -93,7 +84,7 @@ int main(int argc, char *argv[]) } } - if (application.arguments().count() == 2 && application.arguments().at(1) == "--test") { + if (application->arguments().count() == 2 && application->arguments().at(1) == "--test") { qDebug() << QCoreApplication::applicationVersion(); QQmlEngine engine; @@ -112,13 +103,13 @@ int main(int argc, char *argv[]) return 0; } - if (application.arguments().count() == 2 && application.arguments().at(1) == "--version") { + if (application->arguments().count() == 2 && application->arguments().at(1) == "--version") { std::cout << 2; return 0; } - if (application.arguments().at(1) != "--readcapturedstream" && application.arguments().count() < 4) { - qDebug() << "Wrong argument count: " << application.arguments().count(); + if (application->arguments().at(1) != "--readcapturedstream" && application->arguments().count() < 4) { + qDebug() << "Wrong argument count: " << application->arguments().count(); return -1; } @@ -128,14 +119,36 @@ int main(int argc, char *argv[]) QtSystemExceptionHandler systemExceptionHandler; #endif - new QmlDesigner::Qt5NodeInstanceClientProxy(&application); + new QmlDesigner::Qt5NodeInstanceClientProxy(application); #if defined(Q_OS_WIN) && defined(QT_NO_DEBUG) SetErrorMode(SEM_NOGPFAULTERRORBOX); //We do not want to see any message boxes #endif - if (application.arguments().at(1) == "--readcapturedstream") + if (application->arguments().at(1) == "--readcapturedstream") return 0; - return application.exec(); + return application->exec(); +} + +int main(int argc, char *argv[]) +{ + // Since we always render text into an FBO, we need to globally disable + // subpixel antialiasing and instead use gray. + qputenv("QSG_DISTANCEFIELD_ANTIALIASING", "gray"); +#ifdef Q_OS_OSX //This keeps qml2puppet from stealing focus + qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true"); +#endif + + //If a style different from Desktop is set we have to use QGuiApplication + bool useGuiApplication = !qgetenv("QT_QUICK_CONTROLS_STYLE").isEmpty() + && qgetenv("QT_QUICK_CONTROLS_STYLE") != "Desktop"; + + if (useGuiApplication) { + QGuiApplication application(argc, argv); + return internalMain(&application); + } else { + QApplication application(argc, argv); + return internalMain(&application); + } } |