@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012 Canonical, Ltd.
2+ * Copyright (C) 2012-2014 Canonical, Ltd.
33 *
44 * Authors:
55 * Gerry Boland <gerry.boland@canonical.com>
@@ -23,12 +23,9 @@
2323#include <QtGui/QGuiApplication>
2424#include <QtQml/QQmlEngine>
2525#include <QtQml/QQmlContext>
26−#include <qpa/qplatformnativeinterface.h>
2726#include <QLibrary>
2827#include <QDebug>
2928#include <libintl.h>
30−#include <dlfcn.h>
31−#include <csignal>
3229
3330// local
3431#include <paths.h>
@@ -36,9 +33,13 @@
3633#include "ApplicationArguments.h"
3734#include "CachingNetworkManagerFactory.h"
3835
39−int startShell(int argc, const char** argv)
36+int main(int argc, const char *argv[])
4037{
41− const bool isMirServer = qgetenv("QT_QPA_PLATFORM") == "mirserver";
38+ bool isMirServer = false;
39+ if (qgetenv("QT_QPA_PLATFORM") == "ubuntumirclient") {
40+ setenv("QT_QPA_PLATFORM", "mirserver", 1 /* overwrite */);
41+ isMirServer = true;
42+ }
4243
4344 QGuiApplication::setApplicationName("unity8");
4445 QGuiApplication *application;
@@ -84,8 +85,8 @@ Load the testability driver");
8485 if (parser.isSet(windowGeometryOption) &&
8586 parser.value(windowGeometryOption).split('x').size() == 2)
8687 {
87− QStringList geom = parser.value(windowGeometryOption).split('x');
88− qmlArgs.setSize(geom.at(0).toInt(), geom.at(1).toInt());
88+ QStringList geom = parser.value(windowGeometryOption).split('x');
89+ qmlArgs.setSize(geom.at(0).toInt(), geom.at(1).toInt());
8990 }
9091
9192 // The testability driver is only loaded by QApplication but not by QGuiApplication.
@@ -109,7 +110,7 @@ Load the testability driver");
109110
110111 QQuickView* view = new QQuickView();
111112 view->setResizeMode(QQuickView::SizeRootObjectToView);
112− view->setTitle("Qml Phone Shell");
113+ view->setTitle("Unity8 Shell");
113114 view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()));
114115 view->rootContext()->setContextProperty("applicationArguments", &qmlArgs);
115116 view->rootContext()->setContextProperty("indicatorProfile", indicatorProfile);
@@ -125,15 +126,6 @@ Load the testability driver");
125126 application->installNativeEventFilter(mouseTouchAdaptor);
126127 }
127128
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−
137129 QUrl source(::qmlDirectory()+"Shell.qml");
138130 prependImportPaths(view->engine(), ::overrideImportPaths());
139131 if (!isMirServer) {
@@ -161,21 +153,3 @@ Load the testability driver");
161153
162154 return result;
163155}
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−}