summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-07-25 17:09:58 +0200
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-07-25 17:11:25 +0200
commit28fbcb3d2a31071947e949258575ed9c5d2bba73 (patch)
treea2c7364120a6390360d848d12f79790a134278a4 /src/gui
parent56f27b99c6880be2810de6e3dca650fbe4f1f917 (diff)
Lighthouse: Provide default plugin.
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Change-Id: I13e78c499f77ac6ad034e61488fc6ef00e2e2be8 Reviewed-on: http://codereview.qt.nokia.com/2124 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qguiapplication.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 6edf71ad3d..5f96ac3493 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -213,20 +213,37 @@ QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
}
-static void init_platform(const QString &name, const QString &platformPluginPath)
+static void init_platform(QString name, const QString &platformPluginPath)
{
+ if (name.isEmpty()) {
+ const QStringList keys = QPlatformIntegrationFactory::keys(platformPluginPath);
+#if defined(Q_OS_MAC)
+ const QString defaultPlatform = QLatin1String("cocoa");
+#elif defined (Q_OS_WIN)
+ const QString defaultPlatform = QLatin1String("windows");
+#else
+ const QString defaultPlatform = QLatin1String("xcb");
+#endif
+ if (keys.contains(defaultPlatform)) {
+ qWarning("No platform plugin argument was specified, defaulting to \"%s\".",
+ qPrintable(defaultPlatform));
+ name = defaultPlatform;
+ } else {
+ qFatal("No platform plugin argument was specified and the default plugin \"%s\" is not available",
+ qPrintable(defaultPlatform));
+ }
+ }
+
QGuiApplicationPrivate::platform_integration = QPlatformIntegrationFactory::create(name, platformPluginPath);
if (!QGuiApplicationPrivate::platform_integration) {
QStringList keys = QPlatformIntegrationFactory::keys(platformPluginPath);
QString fatalMessage =
QString::fromLatin1("Failed to load platform plugin \"%1\". Available platforms are: \n").arg(name);
foreach(const QString &key, keys) {
- fatalMessage.append(key + QString::fromLatin1("\n"));
+ fatalMessage.append(key + QLatin1Char('\n'));
}
qFatal("%s", fatalMessage.toLocal8Bit().constData());
-
}
-
}
static void init_plugins(const QList<QByteArray> &pluginList)