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>
This commit is contained in:
parent
84f0add9b3
commit
f65cda93e9
@ -48,6 +48,8 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
QGuiApplication app(argc, argv);
|
QGuiApplication app(argc, argv);
|
||||||
|
|
||||||
|
bool multipleWindows = !QGuiApplication::arguments().contains(QLatin1String("--single"));
|
||||||
|
|
||||||
QScreen *screen = QGuiApplication::primaryScreen();
|
QScreen *screen = QGuiApplication::primaryScreen();
|
||||||
|
|
||||||
QRect screenGeometry = screen->availableGeometry();
|
QRect screenGeometry = screen->availableGeometry();
|
||||||
@ -60,31 +62,35 @@ int main(int argc, char **argv)
|
|||||||
QSize windowSize(400, 320);
|
QSize windowSize(400, 320);
|
||||||
int delta = 40;
|
int delta = 40;
|
||||||
|
|
||||||
Renderer rendererA(format);
|
Renderer *rendererA = new Renderer(format);
|
||||||
Renderer rendererB(format, &rendererA);
|
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;
|
QThread *renderThread = 0;
|
||||||
rendererB.moveToThread(&renderThread);
|
if (multipleWindows) {
|
||||||
renderThread.start();
|
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);
|
QObject::connect(qGuiApp, SIGNAL(lastWindowClosed()), renderThread, SLOT(quit()));
|
||||||
windowA.setGeometry(QRect(center, windowSize).translated(-windowSize.width() - delta / 2, 0));
|
|
||||||
windowA.setWindowTitle(QLatin1String("Thread A - Context A"));
|
|
||||||
windowA.setVisible(true);
|
|
||||||
|
|
||||||
HelloWindow windowB(&rendererA);
|
HelloWindow *windowB = new HelloWindow(rendererA);
|
||||||
windowB.setGeometry(QRect(center, windowSize).translated(delta / 2, 0));
|
windowB->setGeometry(QRect(center, windowSize).translated(delta / 2, 0));
|
||||||
windowB.setWindowTitle(QLatin1String("Thread A - Context A"));
|
windowB->setWindowTitle(QLatin1String("Thread A - Context A"));
|
||||||
windowB.setVisible(true);
|
windowB->setVisible(true);
|
||||||
|
|
||||||
HelloWindow windowC(&rendererB);
|
HelloWindow *windowC = new HelloWindow(rendererB);
|
||||||
windowC.setGeometry(QRect(center, windowSize).translated(-windowSize.width() / 2, windowSize.height() + delta));
|
windowC->setGeometry(QRect(center, windowSize).translated(-windowSize.width() / 2, windowSize.height() + delta));
|
||||||
windowC.setWindowTitle(QLatin1String("Thread B - Context B"));
|
windowC->setWindowTitle(QLatin1String("Thread B - Context B"));
|
||||||
windowC.setVisible(true);
|
windowC->setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
app.exec();
|
app.exec();
|
||||||
|
|
||||||
renderThread.wait();
|
if (multipleWindows)
|
||||||
|
renderThread->wait();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user