diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,7 +32,10 @@ install(DIRECTORY styles/Plasma DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles) endif() if (DESKTOP_ENABLED) - install(DIRECTORY styles/Desktop DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles) + install(DIRECTORY styles/org.kde.desktop DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles) +endif() +if (PLASMA_ENABLED AND DESKTOP_ENABLED) +install(DIRECTORY styles/org.kde.desktop.plasma DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles) endif() install(DIRECTORY styles/Material DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles) diff --git a/src/kirigamiplugin.cpp b/src/kirigamiplugin.cpp --- a/src/kirigamiplugin.cpp +++ b/src/kirigamiplugin.cpp @@ -46,15 +46,20 @@ const QString style = QString::fromLatin1(qgetenv("QT_QUICK_CONTROLS_STYLE")); #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) - if (style.isEmpty() && QFile::exists(resolveFilePath(QStringLiteral("/styles/Desktop")))) { - m_stylesFallbackChain.prepend(QStringLiteral("Desktop")); + //org.kde.desktop.plasma is a couple of files that fall back to desktop by purpose + if ((style.isEmpty() || style == QStringLiteral("org.kde.desktop.plasma")) && QFile::exists(resolveFilePath(QStringLiteral("/styles/org.kde.desktop")))) { + m_stylesFallbackChain.prepend(QStringLiteral("org.kde.desktop")); } #endif if (!style.isEmpty() && QFile::exists(resolveFilePath(QStringLiteral("/styles/") + style))) { m_stylesFallbackChain.prepend(style); + //if we have plasma deps installed, use them for extra integration + if (style == QStringLiteral("org.kde.desktop") && QFile::exists(resolveFilePath(QStringLiteral("/styles/org.kde.desktop.plasma")))) { + m_stylesFallbackChain.prepend("org.kde.desktop.plasma"); + } } - //At this point the fallback chain will be selected->Desktop->Fallback + //At this point the fallback chain will be selected->org.kde.desktop->Fallback //TODO: in this plugin it will end up something similar to @@ -86,7 +91,7 @@ qmlRegisterType(componentUrl(QStringLiteral("Separator.qml")), uri, 2, 0, "Separator"); qmlRegisterType(componentUrl(QStringLiteral("PageRow.qml")), uri, 2, 0, "PageRow"); - //The icon is "special: we have to use a wrapper class to QIcon on desktops + //The icon is "special: we have to use a wrapper class to QIcon on org.kde.desktops #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) qmlRegisterType(uri, 2, 0, "Icon"); #else diff --git a/src/styles/Desktop/Units.qml b/src/styles/org.kde.desktop.plasma/Units.qml rename from src/styles/Desktop/Units.qml rename to src/styles/org.kde.desktop.plasma/Units.qml --- a/src/styles/Desktop/Units.qml +++ b/src/styles/org.kde.desktop.plasma/Units.qml @@ -19,12 +19,13 @@ import QtQuick 2.4 import QtQuick.Window 2.2 +import org.kde.plasma.core 2.0 as PlasmaCore pragma Singleton QtObject { - id: units + id: unitsRoot /** * The fundamental unit of space that should be used for sizes, expressed in pixels. @@ -87,13 +88,13 @@ * units.longDuration should be used for longer, screen-covering animations, for opening and * closing of dialogs and other "not too small" animations */ - property int longDuration: 250 + property int longDuration: units.longDuration /** * units.shortDuration should be used for short animations, such as accentuating a UI event, * hover events, etc.. */ - property int shortDuration: 150 + property int shortDuration: units.shortDuration property variant fontMetrics: TextMetrics { text: "M" diff --git a/src/styles/Desktop/AbstractApplicationHeader.qml b/src/styles/org.kde.desktop/AbstractApplicationHeader.qml rename from src/styles/Desktop/AbstractApplicationHeader.qml rename to src/styles/org.kde.desktop/AbstractApplicationHeader.qml diff --git a/src/styles/Desktop/AbstractListItem.qml b/src/styles/org.kde.desktop/AbstractListItem.qml rename from src/styles/Desktop/AbstractListItem.qml rename to src/styles/org.kde.desktop/AbstractListItem.qml diff --git a/src/styles/Desktop/ApplicationWindow.qml b/src/styles/org.kde.desktop/ApplicationWindow.qml rename from src/styles/Desktop/ApplicationWindow.qml rename to src/styles/org.kde.desktop/ApplicationWindow.qml diff --git a/src/styles/Desktop/OverlayDrawer.qml b/src/styles/org.kde.desktop/OverlayDrawer.qml rename from src/styles/Desktop/OverlayDrawer.qml rename to src/styles/org.kde.desktop/OverlayDrawer.qml diff --git a/src/styles/Desktop/SwipeListItem.qml b/src/styles/org.kde.desktop/SwipeListItem.qml rename from src/styles/Desktop/SwipeListItem.qml rename to src/styles/org.kde.desktop/SwipeListItem.qml diff --git a/src/styles/Desktop/Theme.qml b/src/styles/org.kde.desktop/Theme.qml rename from src/styles/Desktop/Theme.qml rename to src/styles/org.kde.desktop/Theme.qml diff --git a/src/styles/Desktop/Units.qml b/src/styles/org.kde.desktop/Units.qml rename from src/styles/Desktop/Units.qml rename to src/styles/org.kde.desktop/Units.qml