diff --git a/src/kirigamiplugin.h b/src/kirigamiplugin.h --- a/src/kirigamiplugin.h +++ b/src/kirigamiplugin.h @@ -82,16 +82,11 @@ QString componentPath(const QString &fileName) const; QString resolveFilePath(const QString &path) const { - #ifdef Q_OS_WIN - // On Windows, the leading slash does not make sense, so let's snip that off - return baseUrl().path().mid(1) + QLatin1Char('/') + path; - #else - return baseUrl().path() + QLatin1Char('/') + path; - #endif + return baseUrl().toLocalFile() + QLatin1Char('/') + path; } QString resolveFileUrl(const QString &filePath) const { - return QStringLiteral("file://") + baseUrl().path() + QLatin1Char('/') + filePath; + return baseUrl().toString() + QLatin1Char('/') + filePath; } QStringList m_stylesFallbackChain; }; diff --git a/src/kirigamiplugin.cpp b/src/kirigamiplugin.cpp --- a/src/kirigamiplugin.cpp +++ b/src/kirigamiplugin.cpp @@ -29,11 +29,8 @@ QString KirigamiPlugin::componentPath(const QString &fileName) const { - QString candidate; - QString candidatePath; - foreach (const QString &style, m_stylesFallbackChain) { - candidate = QStringLiteral("styles/") + style + QLatin1Char('/') + fileName; + const QString candidate = QStringLiteral("styles/") + style + QLatin1Char('/') + fileName; if (QFile::exists(resolveFilePath(candidate))) { return resolveFileUrl(candidate); } @@ -82,7 +79,7 @@ //The icon is "special: we have to use a wrapper class to QIcon on desktops #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) - if (m_stylesFallbackChain.first() == QStringLiteral("Desktop")) { + if (!m_stylesFallbackChain.isEmpty() && m_stylesFallbackChain.first() == QStringLiteral("Desktop")) { qmlRegisterType(uri, 1, 0, "Icon"); } else { qmlRegisterType(componentPath(QStringLiteral("Icon.qml")), uri, 1, 0, "Icon");