on xenial help sign in
Simplify main.cpp significantly
e59a12eGerry Boland
src/main.cpp+10−36
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2012 Canonical, Ltd.
2+ * Copyright (C) 2012-2014 Canonical, Ltd.
3 *
3 *
4 * Authors:
4 * Authors:
5 * Gerry Boland <gerry.boland@canonical.com>
5 * Gerry Boland <gerry.boland@canonical.com>
@@ -23,12 +23,9 @@
23#include <QtGui/QGuiApplication>
23#include <QtGui/QGuiApplication>
24#include <QtQml/QQmlEngine>
24#include <QtQml/QQmlEngine>
25#include <QtQml/QQmlContext>
25#include <QtQml/QQmlContext>
26−#include <qpa/qplatformnativeinterface.h>
27#include <QLibrary>
26#include <QLibrary>
28#include <QDebug>
27#include <QDebug>
29#include <libintl.h>
28#include <libintl.h>
30−#include <dlfcn.h>
31−#include <csignal>
32
29
33// local
30// local
34#include <paths.h>
31#include <paths.h>
@@ -36,9 +33,13 @@
36#include "ApplicationArguments.h"
33#include "ApplicationArguments.h"
37#include "CachingNetworkManagerFactory.h"
34#include "CachingNetworkManagerFactory.h"
38
35
39−int startShell(int argc, const char** argv)
36+int main(int argc, const char *argv[])
40{
37{
38+ bool isMirServer = false;
41− const bool isMirServer = qgetenv("QT_QPA_PLATFORM") == "mirserver";
39+ if (qgetenv("QT_QPA_PLATFORM") == "ubuntumirclient") {
40+ setenv("QT_QPA_PLATFORM", "mirserver", 1 /* overwrite */);
41+ isMirServer = true;
42+ }
42
43
43 QGuiApplication::setApplicationName("unity8");
44 QGuiApplication::setApplicationName("unity8");
44 QGuiApplication *application;
45 QGuiApplication *application;
@@ -84,8 +85,8 @@ Load the testability driver");
84 if (parser.isSet(windowGeometryOption) &&
85 if (parser.isSet(windowGeometryOption) &&
85 parser.value(windowGeometryOption).split('x').size() == 2)
86 parser.value(windowGeometryOption).split('x').size() == 2)
86 {
87 {
87− QStringList geom = parser.value(windowGeometryOption).split('x');
88+ QStringList geom = parser.value(windowGeometryOption).split('x');
88− qmlArgs.setSize(geom.at(0).toInt(), geom.at(1).toInt());
89+ qmlArgs.setSize(geom.at(0).toInt(), geom.at(1).toInt());
89 }
90 }
90
91
91 // The testability driver is only loaded by QApplication but not by QGuiApplication.
92 // The testability driver is only loaded by QApplication but not by QGuiApplication.
@@ -109,7 +110,7 @@ Load the testability driver");
109
110
110 QQuickView* view = new QQuickView();
111 QQuickView* view = new QQuickView();
111 view->setResizeMode(QQuickView::SizeRootObjectToView);
112 view->setResizeMode(QQuickView::SizeRootObjectToView);
112− view->setTitle("Qml Phone Shell");
113+ view->setTitle("Unity8 Shell");
113 view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()));
114 view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()));
114 view->rootContext()->setContextProperty("applicationArguments", &qmlArgs);
115 view->rootContext()->setContextProperty("applicationArguments", &qmlArgs);
115 view->rootContext()->setContextProperty("indicatorProfile", indicatorProfile);
116 view->rootContext()->setContextProperty("indicatorProfile", indicatorProfile);
@@ -125,15 +126,6 @@ Load the testability driver");
125 application->installNativeEventFilter(mouseTouchAdaptor);
126 application->installNativeEventFilter(mouseTouchAdaptor);
126 }
127 }
127
128
128− QPlatformNativeInterface* nativeInterface = QGuiApplication::platformNativeInterface();
129− /* Shell is declared as a system session so that it always receives all
130− input events.
131− FIXME: use the enum value corresponding to SYSTEM_SESSION_TYPE (= 1)
132− when it becomes available.
133− */
134− nativeInterface->setProperty("ubuntuSessionType", 1);
135− view->setProperty("role", 2); // INDICATOR_ACTOR_ROLE
136−
137 QUrl source(::qmlDirectory()+"Shell.qml");
129 QUrl source(::qmlDirectory()+"Shell.qml");
138 prependImportPaths(view->engine(), ::overrideImportPaths());
130 prependImportPaths(view->engine(), ::overrideImportPaths());
139 if (!isMirServer) {
131 if (!isMirServer) {
@@ -161,21 +153,3 @@ Load the testability driver");
161
153
162 return result;
154 return result;
163}
155}
164−
165−int main(int argc, const char *argv[])
166−{
167− /* Workaround Qt platform integration plugin not advertising itself
168− as having the following capabilities:
169− - QPlatformIntegration::ThreadedOpenGL
170− - QPlatformIntegration::BufferQueueingOpenGL
171− */
172− setenv("QML_FORCE_THREADED_RENDERER", "1", 1);
173− setenv("QML_FIXED_ANIMATION_STEP", "1", 1);
174−
175− if (qgetenv("QT_QPA_PLATFORM") == "ubuntuclient"
176− || qgetenv("QT_QPA_PLATFORM") == "ubuntumirclient") {
177− setenv("QT_QPA_PLATFORM", "mirserver", 1 /* overwrite */);
178− }
179−
180− return startShell(argc, argv);
181−}