summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-11-21 12:18:15 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-21 12:57:49 +0100
commitf65cda93e99db45a2f0f3a32f32f454f4073905d (patch)
treeac624eb2ea42e338005cb28aa6920675543666c8
parent84f0add9b3f8390d18b23a445bacb7c3abaedc10 (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.cpp44
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();
}