summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@digia.com>2014-10-29 10:04:13 +0100
committerThomas Hartmann <Thomas.Hartmann@digia.com>2014-10-30 14:39:01 +0100
commitd525d28e6fca0bc41e04f5762bf765719d98f1ae (patch)
tree90f74d8449e9cf9835f1a7c687200e2074f67a06 /share
parent7a470e97301d2c032b8b30196e0814f379755a47 (diff)
downloadqt-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.cpp59
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);
+ }
}