diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2011-11-21 12:18:15 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-21 12:57:49 +0100 |
commit | f65cda93e99db45a2f0f3a32f32f454f4073905d (patch) | |
tree | ac624eb2ea42e338005cb28aa6920675543666c8 | |
parent | 84f0add9b3f8390d18b23a445bacb7c3abaedc10 (diff) |
Added command line argument to make hellowindow example single window.
Useful when testing on embedded platforms with no support for multiple
top-level windows.
Change-Id: I212ca69c3f5d5d338e860169b14e3f9f3951712b
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
-rw-r--r-- | examples/opengl/hellowindow/main.cpp | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/examples/opengl/hellowindow/main.cpp b/examples/opengl/hellowindow/main.cpp index 755601144b..7d454f65a6 100644 --- a/examples/opengl/hellowindow/main.cpp +++ b/examples/opengl/hellowindow/main.cpp @@ -48,6 +48,8 @@ int main(int argc, char **argv) { QGuiApplication app(argc, argv); + bool multipleWindows = !QGuiApplication::arguments().contains(QLatin1String("--single")); + QScreen *screen = QGuiApplication::primaryScreen(); QRect screenGeometry = screen->availableGeometry(); @@ -60,31 +62,35 @@ int main(int argc, char **argv) QSize windowSize(400, 320); int delta = 40; - Renderer rendererA(format); - Renderer rendererB(format, &rendererA); + Renderer *rendererA = new Renderer(format); + HelloWindow *windowA = new HelloWindow(rendererA); + windowA->setGeometry(QRect(center, windowSize).translated(-windowSize.width() - delta / 2, 0)); + windowA->setWindowTitle(QLatin1String("Thread A - Context A")); + windowA->setVisible(true); - QThread renderThread; - rendererB.moveToThread(&renderThread); - renderThread.start(); + QThread *renderThread = 0; + if (multipleWindows) { + Renderer *rendererB = new Renderer(format, rendererA); - QObject::connect(qGuiApp, SIGNAL(lastWindowClosed()), &renderThread, SLOT(quit())); + renderThread = new QThread; + rendererB->moveToThread(renderThread); + renderThread->start(); - HelloWindow windowA(&rendererA); - windowA.setGeometry(QRect(center, windowSize).translated(-windowSize.width() - delta / 2, 0)); - windowA.setWindowTitle(QLatin1String("Thread A - Context A")); - windowA.setVisible(true); + QObject::connect(qGuiApp, SIGNAL(lastWindowClosed()), renderThread, SLOT(quit())); - HelloWindow windowB(&rendererA); - windowB.setGeometry(QRect(center, windowSize).translated(delta / 2, 0)); - windowB.setWindowTitle(QLatin1String("Thread A - Context A")); - windowB.setVisible(true); + HelloWindow *windowB = new HelloWindow(rendererA); + windowB->setGeometry(QRect(center, windowSize).translated(delta / 2, 0)); + windowB->setWindowTitle(QLatin1String("Thread A - Context A")); + windowB->setVisible(true); - HelloWindow windowC(&rendererB); - windowC.setGeometry(QRect(center, windowSize).translated(-windowSize.width() / 2, windowSize.height() + delta)); - windowC.setWindowTitle(QLatin1String("Thread B - Context B")); - windowC.setVisible(true); + HelloWindow *windowC = new HelloWindow(rendererB); + windowC->setGeometry(QRect(center, windowSize).translated(-windowSize.width() / 2, windowSize.height() + delta)); + windowC->setWindowTitle(QLatin1String("Thread B - Context B")); + windowC->setVisible(true); + } app.exec(); - renderThread.wait(); + if (multipleWindows) + renderThread->wait(); } |