From 28fbcb3d2a31071947e949258575ed9c5d2bba73 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 25 Jul 2011 17:09:58 +0200 Subject: Lighthouse: Provide default plugin. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Samuel Rødal Change-Id: I13e78c499f77ac6ad034e61488fc6ef00e2e2be8 Reviewed-on: http://codereview.qt.nokia.com/2124 Reviewed-by: Qt Sanity Bot Reviewed-by: Friedemann Kleint --- src/gui/kernel/qguiapplication.cpp | 25 +++++++++++++++++++++---- 1 file 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 &pluginList) -- cgit v1.2.3