From 7ca0617d98bcdf39af8eb361033aafb77251e2e3 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Fri, 8 Aug 2014 13:00:40 +0200 Subject: [PATCH 01/19] add a simple look and feel kcm --- kcms/CMakeLists.txt | 2 +- kcms/lookandfeel/CMakeLists.txt | 28 ++++ kcms/lookandfeel/Messages.sh | 4 + kcms/lookandfeel/kcm.cpp | 124 ++++++++++++++++++ kcms/lookandfeel/kcm.h | 69 ++++++++++ kcms/lookandfeel/kcm_lookandfeel.desktop | 18 +++ kcms/lookandfeel/package/contents/ui/main.qml | 121 +++++++++++++++++ kcms/lookandfeel/package/metadata.desktop | 19 +++ lookandfeelaccess/lookandfeelaccess.cpp | 2 +- 9 files changed, 385 insertions(+), 2 deletions(-) create mode 100644 kcms/lookandfeel/CMakeLists.txt create mode 100755 kcms/lookandfeel/Messages.sh create mode 100644 kcms/lookandfeel/kcm.cpp create mode 100644 kcms/lookandfeel/kcm.h create mode 100644 kcms/lookandfeel/kcm_lookandfeel.desktop create mode 100644 kcms/lookandfeel/package/contents/ui/main.qml create mode 100644 kcms/lookandfeel/package/metadata.desktop diff --git a/kcms/CMakeLists.txt b/kcms/CMakeLists.txt index a773d22e5..fe7f4bf82 100644 --- a/kcms/CMakeLists.txt +++ b/kcms/CMakeLists.txt @@ -1,3 +1,3 @@ project(kcms) - +add_subdirectory( lookandfeel ) add_subdirectory( splash ) diff --git a/kcms/lookandfeel/CMakeLists.txt b/kcms/lookandfeel/CMakeLists.txt new file mode 100644 index 000000000..f5f21513d --- /dev/null +++ b/kcms/lookandfeel/CMakeLists.txt @@ -0,0 +1,28 @@ +# KI18N Translation Domain for this library +add_definitions(-DTRANSLATION_DOMAIN=\"kcm_lookandfeel\") + +set(kcm_lookandfeel_SRCS + kcm.cpp + ../../lookandfeelaccess/lookandfeelaccess.cpp +) + +add_library(kcm_lookandfeel MODULE ${kcm_lookandfeel_SRCS}) + +target_link_libraries(kcm_lookandfeel + KF5::KIOWidgets + KF5::CoreAddons + KF5::KCMUtils + KF5::I18n + KF5::Plasma + KF5::PlasmaQuick + + Qt5::DBus + Qt5::Widgets + Qt5::QuickWidgets +) + + +install(FILES kcm_lookandfeel.desktop DESTINATION ${SERVICES_INSTALL_DIR}) +install(TARGETS kcm_lookandfeel DESTINATION ${PLUGIN_INSTALL_DIR}) + +plasma_install_package(package kcm_lookandfeel kcms kcm_lookandfeel) diff --git a/kcms/lookandfeel/Messages.sh b/kcms/lookandfeel/Messages.sh new file mode 100755 index 000000000..03be55b3b --- /dev/null +++ b/kcms/lookandfeel/Messages.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env bash +$EXTRACTRC `find . -name "*.ui"` >> rc.cpp || exit 11 +$XGETTEXT `find . -name "*.cpp"` -o $podir/kcm_splashscreen.pot +rm -f rc.cpp diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp new file mode 100644 index 000000000..89953a74a --- /dev/null +++ b/kcms/lookandfeel/kcm.cpp @@ -0,0 +1,124 @@ +/* This file is part of the KDE Project + Copyright (c) 2014 Marco Martin + Copyright (c) 2014 Vishesh Handa + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "kcm.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +K_PLUGIN_FACTORY(KCMLookandFeelFactory, registerPlugin();) + +KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) + : KCModule(parent, args) + , m_config("kdeglobals") + , m_configGroup(m_config.group("KDE")) +{ + qmlRegisterType(); + KAboutData* about = new KAboutData("kcm_lookandfeel", i18n("Configure Splash screen details"), + "0.1", QString(), KAboutLicense::LGPL); + about->addAuthor(i18n("Marco Martin"), QString(), "mart@kde.org"); + setAboutData(about); + setButtons(Help | Apply | Default); + + m_model = new QStandardItemModel(this); + QHash roles = m_model->roleNames(); + roles[PluginNameRole] = "pluginName"; + roles[ScreenhotRole] = "screenshot"; + m_model->setItemRoleNames(roles); + QVBoxLayout* layout = new QVBoxLayout(this); + + m_quickWidget = new QQuickWidget(this); + m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); + Plasma::Package package = Plasma::PluginLoader::self()->loadPackage("Plasma/Generic"); + package.setDefaultPackageRoot("plasma/kcms"); + package.setPath("kcm_lookandfeel"); + m_quickWidget->rootContext()->setContextProperty("kcm", this); + m_quickWidget->setSource(QUrl::fromLocalFile(package.filePath("mainscript"))); + setMinimumHeight(m_quickWidget->initialSize().height()); + + layout->addWidget(m_quickWidget); +} + +QStandardItemModel *KCMLookandFeel::lookAndFeelModel() +{ + return m_model; +} + +QString KCMLookandFeel::selectedPlugin() const +{ + return m_selectedPlugin; +} + +void KCMLookandFeel::setSelectedPlugin(const QString &plugin) +{ + if (m_selectedPlugin == plugin) { + return; + } + + m_selectedPlugin = plugin; + emit selectedPluginChanged(); + changed(); +} + +void KCMLookandFeel::load() +{ + setSelectedPlugin(m_access.metadata().pluginName()); + + m_model->clear(); + + const QList pkgs = LookAndFeelAccess::availablePackages(); + for (const Plasma::Package &pkg : pkgs) {qWarning()<<"EEEE"; + QStandardItem* row = new QStandardItem(pkg.metadata().name()); + row->setData(pkg.metadata().pluginName(), PluginNameRole); + row->setData(pkg.filePath("screenshot"), ScreenhotRole); + m_model->appendRow(row); + } +} + + +void KCMLookandFeel::save() +{ + m_configGroup.writeEntry("LookAndFeelPackage", m_selectedPlugin); + m_configGroup.sync(); +} + +void KCMLookandFeel::defaults() +{ + setSelectedPlugin(m_access.metadata().pluginName()); +} + +#include "kcm.moc" diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h new file mode 100644 index 000000000..f56edc491 --- /dev/null +++ b/kcms/lookandfeel/kcm.h @@ -0,0 +1,69 @@ +/* + Copyright (c) 2014 Marco Martin + Copyright (c) 2014 Vishesh Handa + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef _KCM_SEARCH_H +#define _KCM_SEARCH_H + +#include +#include +#include +#include + +#include "../../lookandfeelaccess/lookandfeelaccess.h" + +class QQuickWidget; +class QStandardItemModel; + +class KCMLookandFeel : public KCModule +{ + Q_OBJECT + Q_PROPERTY(QStandardItemModel *lookAndFeelModel READ lookAndFeelModel CONSTANT) + Q_PROPERTY(QString selectedPlugin READ selectedPlugin WRITE setSelectedPlugin NOTIFY selectedPluginChanged) + +public: + enum Roles { + PluginNameRole = Qt::UserRole +1, + ScreenhotRole + }; + KCMLookandFeel(QWidget* parent, const QVariantList& args); + + QStandardItemModel *lookAndFeelModel(); + + QString selectedPlugin() const; + void setSelectedPlugin(const QString &plugin); + +public Q_SLOTS: + void load(); + void save(); + void defaults(); + +Q_SIGNALS: + void selectedPluginChanged(); + +private: + QQuickWidget *m_quickWidget; + QStandardItemModel *m_model; + LookAndFeelAccess m_access; + QString m_selectedPlugin; + + KConfig m_config; + KConfigGroup m_configGroup; +}; + +#endif diff --git a/kcms/lookandfeel/kcm_lookandfeel.desktop b/kcms/lookandfeel/kcm_lookandfeel.desktop new file mode 100644 index 000000000..2a490b0b8 --- /dev/null +++ b/kcms/lookandfeel/kcm_lookandfeel.desktop @@ -0,0 +1,18 @@ +[Desktop Entry] +Icon=preferences-desktop-theme-style +Exec=kcmshell5 kcm_lookandfeel +X-DocPath=kcontrol/lookandfeel/index.html + +Type=Service +X-KDE-ServiceTypes=KCModule + +X-KDE-Library=kcm_lookandfeel +X-KDE-ParentApp=kcontrol + +X-KDE-System-Settings-Parent-Category=workspacetheme +X-KDE-Weight=1 + +Name=Look And Feel +Comment=Desktop Look And Feel +X-KDE-Keywords=theme, look, feel +Categories=Qt;KDE;X-KDE-settings-looknfeel; diff --git a/kcms/lookandfeel/package/contents/ui/main.qml b/kcms/lookandfeel/package/contents/ui/main.qml new file mode 100644 index 000000000..122907ce7 --- /dev/null +++ b/kcms/lookandfeel/package/contents/ui/main.qml @@ -0,0 +1,121 @@ +/* + Copyright (c) 2014 Marco Martin + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.0 as QtControls +import org.kde.kquickcontrolsaddons 2.0 +import QtQuick.Controls.Private 1.0 +//We need units from it +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +Rectangle { + width: units.gridUnit * 20 + height: units.gridUnit * 20 + color: syspal.window + + SystemPalette {id: syspal} + QtControls.ScrollView { + anchors.fill: parent + GridView { + id: grid + model: kcm.lookAndFeelModel + cellWidth: Math.floor(grid.width / Math.max(Math.floor(grid.width / (units.gridUnit*12)), 3)) + cellHeight: cellWidth / 1.6 + + delegate: Rectangle { + width: grid.cellWidth + height: grid.cellHeight + Connections { + target: kcm + onSelectedPluginChanged: { + if (kcm.selectedPlugin == model.pluginName) { + makeCurrentTimer.pendingIndex = index + } + } + } + Component.onCompleted: { + if (kcm.selectedPlugin == model.pluginName) { + makeCurrentTimer.pendingIndex = index + } + } + QIconItem { + id: icon + anchors.centerIn: parent + width: units.iconSizes.large + height: width + icon: "view-preview" + } + QtControls.Label { + anchors { + horizontalCenter: parent.horizontalCenter + top: icon.bottom + topMargin: units.gridUnit + } + color: "gray" + text: model.display + } + Image { + anchors.fill: parent + source: model.screenshot + } + Rectangle { + opacity: grid.currentIndex == index ? 1.0 : 0 + anchors.fill: parent + border.width: units.smallSpacing * 2 + border.color: syspal.highlight + color: "transparent" + Behavior on opacity { + PropertyAnimation { + duration: units.longDuration + easing.type: Easing.OutQuad + } + } + } + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: { + grid.currentIndex = index + kcm.selectedPlugin = model.pluginName + } + Timer { + interval: 1000 // FIXME TODO: Use platform value for tooltip activation delay. + + running: parent.containsMouse && !parent.pressedButtons + + onTriggered: { + Tooltip.showText(parent, Qt.point(parent.mouseX, parent.mouseY), model.display); + } + } + } + } + Timer { + id: makeCurrentTimer + interval: 0 + repeat: false + property int pendingIndex + onPendingIndexChanged: makeCurrentTimer.restart() + onTriggered: { + grid.currentIndex = pendingIndex + } + } + } + } +} diff --git a/kcms/lookandfeel/package/metadata.desktop b/kcms/lookandfeel/package/metadata.desktop new file mode 100644 index 000000000..ff4dd26da --- /dev/null +++ b/kcms/lookandfeel/package/metadata.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Name=Look And Feel +Comment=Configure The Look And feel of the Desktop +Icon=preferences-desktop-theme-style +Encoding=UTF-8 +Keywords= +Type=Service +X-KDE-ParentApp= +X-KDE-PluginInfo-Author=Marco Martin +X-KDE-PluginInfo-Email=mart@kde.org +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-Name=kcm_lookandfeel +X-KDE-PluginInfo-Version= +X-KDE-PluginInfo-Website= +X-KDE-ServiceTypes=Plasma/Generic +X-Plasma-API=declarativeappletscript + +X-Plasma-MainScript=ui/main.qml +X-Plasma-RemoteLocation= diff --git a/lookandfeelaccess/lookandfeelaccess.cpp b/lookandfeelaccess/lookandfeelaccess.cpp index 22d29c700..a92567ade 100644 --- a/lookandfeelaccess/lookandfeelaccess.cpp +++ b/lookandfeelaccess/lookandfeelaccess.cpp @@ -156,7 +156,7 @@ QList LookAndFeelAccess::availablePackages(const QString &compo for (const QString &path : paths) { Plasma::Package pkg = Plasma::PluginLoader::self()->loadPackage("Plasma/LookAndFeel"); pkg.setPath(path); - if (!component.isEmpty() && !pkg.filePath(component.toUtf8()).isEmpty()) { + if (component.isEmpty() || !pkg.filePath(component.toUtf8()).isEmpty()) { packages << pkg; } } From 886ede684ee9f077a22d685867eaed090c639ee2 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Fri, 8 Aug 2014 13:30:09 +0200 Subject: [PATCH 02/19] add a screenshot --- lookandfeel/contents/screenshot.png | Bin 0 -> 51464 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lookandfeel/contents/screenshot.png diff --git a/lookandfeel/contents/screenshot.png b/lookandfeel/contents/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7850a27ecc33ba690d2f5fac4ec1291715762a04 GIT binary patch literal 51464 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�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%0Dygt%!B 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 Date: Fri, 8 Aug 2014 13:38:25 +0200 Subject: [PATCH 03/19] extract to proper pot --- kcms/lookandfeel/Messages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kcms/lookandfeel/Messages.sh b/kcms/lookandfeel/Messages.sh index 03be55b3b..ff5dd4fc1 100755 --- a/kcms/lookandfeel/Messages.sh +++ b/kcms/lookandfeel/Messages.sh @@ -1,4 +1,4 @@ #! /usr/bin/env bash $EXTRACTRC `find . -name "*.ui"` >> rc.cpp || exit 11 -$XGETTEXT `find . -name "*.cpp"` -o $podir/kcm_splashscreen.pot +$XGETTEXT `find . -name "*.cpp"` -o $podir/kcm_lookandfeel.pot rm -f rc.cpp From 54c244c2bb875dc27a6537982f82887e3194e3f9 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 11 Aug 2014 11:03:49 +0200 Subject: [PATCH 04/19] some roles for what it supports --- kcms/lookandfeel/kcm.cpp | 17 ++++++++++++++++- kcms/lookandfeel/kcm.h | 9 ++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 89953a74a..1881e10c8 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -58,6 +58,14 @@ KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) QHash roles = m_model->roleNames(); roles[PluginNameRole] = "pluginName"; roles[ScreenhotRole] = "screenshot"; + roles[HasSplashRole] = "hasSplash"; + roles[HasLockScreenRole] = "hasLockScreen"; + roles[HasRunCommandRole] = "hasRunCommand"; + roles[HasLogoutRole] = "hasLogout"; + + roles[HasColorsRole] = "hasColors"; + roles[HasWidgetStyle] = "hasWidgetStyle"; + roles[HasIconsRole] = "hasIcons"; m_model->setItemRoleNames(roles); QVBoxLayout* layout = new QVBoxLayout(this); @@ -101,10 +109,17 @@ void KCMLookandFeel::load() m_model->clear(); const QList pkgs = LookAndFeelAccess::availablePackages(); - for (const Plasma::Package &pkg : pkgs) {qWarning()<<"EEEE"; + for (const Plasma::Package &pkg : pkgs) { QStandardItem* row = new QStandardItem(pkg.metadata().name()); row->setData(pkg.metadata().pluginName(), PluginNameRole); row->setData(pkg.filePath("screenshot"), ScreenhotRole); + + //What the package provides + row->setData(pkg.filePath("splashmainscript"), HasSplashRole); + row->setData(pkg.filePath("lockscreenmainscript"), HasLockScreenRole); + row->setData(pkg.filePath("runcommandmainscript"), HasRunCommandRole); + row->setData(pkg.filePath("runcommandmainscript"), HasLogoutRole); + m_model->appendRow(row); } } diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index f56edc491..735c3f301 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -39,7 +39,14 @@ class KCMLookandFeel : public KCModule public: enum Roles { PluginNameRole = Qt::UserRole +1, - ScreenhotRole + ScreenhotRole, + HasSplashRole, + HasLockScreenRole, + HasRunCommandRole, + HasLogoutRole, + HasColorsRole, + HasWidgetStyle, + HasIconsRole }; KCMLookandFeel(QWidget* parent, const QVariantList& args); From 39a4720da8e92b699b001838af47b0f6f60569c8 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 11 Aug 2014 12:57:32 +0200 Subject: [PATCH 05/19] build all has* roles --- kcms/lookandfeel/kcm.cpp | 23 ++++++++++++++++++----- kcms/lookandfeel/kcm.h | 2 +- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 1881e10c8..1f1f73a4e 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -64,7 +64,7 @@ KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) roles[HasLogoutRole] = "hasLogout"; roles[HasColorsRole] = "hasColors"; - roles[HasWidgetStyle] = "hasWidgetStyle"; + roles[HasWidgetStyleRole] = "hasWidgetStyle"; roles[HasIconsRole] = "hasIcons"; m_model->setItemRoleNames(roles); QVBoxLayout* layout = new QVBoxLayout(this); @@ -115,10 +115,23 @@ void KCMLookandFeel::load() row->setData(pkg.filePath("screenshot"), ScreenhotRole); //What the package provides - row->setData(pkg.filePath("splashmainscript"), HasSplashRole); - row->setData(pkg.filePath("lockscreenmainscript"), HasLockScreenRole); - row->setData(pkg.filePath("runcommandmainscript"), HasRunCommandRole); - row->setData(pkg.filePath("runcommandmainscript"), HasLogoutRole); + row->setData(!pkg.filePath("splashmainscript").isEmpty(), HasSplashRole); + row->setData(!pkg.filePath("lockscreenmainscript").isEmpty(), HasLockScreenRole); + row->setData(!pkg.filePath("runcommandmainscript").isEmpty(), HasRunCommandRole); + row->setData(!pkg.filePath("logoutmainscript").isEmpty(), HasLogoutRole); + + if (!pkg.filePath("defaults").isEmpty()) { + KSharedConfigPtr conf = KSharedConfig::openConfig(pkg.filePath("defaults")); + KConfigGroup cg(conf, "KDE"); + bool hasColors = !cg.readEntry("ColorScheme", QString()).isEmpty(); + row->setData(hasColors, HasColorsRole); + if (!hasColors) { + hasColors = !pkg.filePath("colors").isEmpty(); + } + row->setData(!cg.readEntry("widgetStyle", QString()).isEmpty(), HasWidgetStyleRole); + cg = KConfigGroup(conf, "Icons"); + row->setData(!cg.readEntry("Theme", QString()).isEmpty(), HasIconsRole); + } m_model->appendRow(row); } diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index 735c3f301..b34640361 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -45,7 +45,7 @@ public: HasRunCommandRole, HasLogoutRole, HasColorsRole, - HasWidgetStyle, + HasWidgetStyleRole, HasIconsRole }; KCMLookandFeel(QWidget* parent, const QVariantList& args); From d4565e882b357d302b2d896ee27391112e634d3a Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 11 Aug 2014 14:06:12 +0200 Subject: [PATCH 06/19] skeleton for the various configs --- kcms/lookandfeel/kcm.cpp | 47 ++++++++++++++++++++++++++++++++++++++++ kcms/lookandfeel/kcm.h | 5 +++++ 2 files changed, 52 insertions(+) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 1f1f73a4e..1f7b6a976 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -140,7 +140,39 @@ void KCMLookandFeel::load() void KCMLookandFeel::save() { + Plasma::Package package = Plasma::PluginLoader::self()->loadPackage("Plasma/LookAndFeel"); + package.setPath(m_selectedPlugin); + + if (!package.isValid()) { + return; + } + m_configGroup.writeEntry("LookAndFeelPackage", m_selectedPlugin); + + if (!package.filePath("defaults").isEmpty()) { + KSharedConfigPtr conf = KSharedConfig::openConfig(package.filePath("defaults")); + KConfigGroup cg(conf, "KDE"); + setWidgetStyle(cg.readEntry("widgetStyle", QString())); + + QString colorsFile = package.filePath("colors"); + QString colorScheme = cg.readEntry("ColorScheme", QString()); + if (!colorsFile.isEmpty()) { + setColors(colorsFile); + } else if (!colorScheme.isEmpty()) { + colorScheme.remove('\''); // So Foo's does not become FooS + QRegExp fixer("[\\W,.-]+(.?)"); + int offset; + while ((offset = fixer.indexIn(colorScheme)) >= 0) + colorScheme.replace(offset, fixer.matchedLength(), fixer.cap(1).toUpper()); + colorScheme.replace(0, 1, colorScheme.at(0).toUpper()); + QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors"); + setColors(src); + } + + cg = KConfigGroup(conf, "Icons"); + setIcons(cg.readEntry("Theme", QString())); + } + m_configGroup.sync(); } @@ -149,4 +181,19 @@ void KCMLookandFeel::defaults() setSelectedPlugin(m_access.metadata().pluginName()); } +void KCMLookandFeel::setWidgetStyle(const QString &style) +{ + //TODO +} + +void KCMLookandFeel::setColors(const QString &colorFile) +{ + //TODO +} + +void KCMLookandFeel::setIcons(const QString &theme) +{ + //TODO +} + #include "kcm.moc" diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index b34640361..5dd06edf4 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -55,6 +55,11 @@ public: QString selectedPlugin() const; void setSelectedPlugin(const QString &plugin); + //Setters of the various theme pieces + void setWidgetStyle(const QString &style); + void setColors(const QString &colorFile); + void setIcons(const QString &theme); + public Q_SLOTS: void load(); void save(); From 0a6c6aeb575a5b92ee02f2c59268064a202db44c Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 11 Aug 2014 16:01:07 +0200 Subject: [PATCH 07/19] actually apply icons, widget style and colors --- kcms/lookandfeel/kcm.cpp | 24 ++++++++++++++++++------ kcms/lookandfeel/kcm.h | 2 +- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 1f7b6a976..ac07d6162 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -157,7 +157,11 @@ void KCMLookandFeel::save() QString colorsFile = package.filePath("colors"); QString colorScheme = cg.readEntry("ColorScheme", QString()); if (!colorsFile.isEmpty()) { - setColors(colorsFile); + if (!colorScheme.isEmpty()) { + setColors(colorScheme, colorsFile); + } else { + setColors(package.metadata().name(), colorsFile); + } } else if (!colorScheme.isEmpty()) { colorScheme.remove('\''); // So Foo's does not become FooS QRegExp fixer("[\\W,.-]+(.?)"); @@ -166,7 +170,7 @@ void KCMLookandFeel::save() colorScheme.replace(offset, fixer.matchedLength(), fixer.cap(1).toUpper()); colorScheme.replace(0, 1, colorScheme.at(0).toUpper()); QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors"); - setColors(src); + setColors(colorScheme, src); } cg = KConfigGroup(conf, "Icons"); @@ -183,17 +187,25 @@ void KCMLookandFeel::defaults() void KCMLookandFeel::setWidgetStyle(const QString &style) { - //TODO + m_configGroup.writeEntry("widgetStyle", style); } -void KCMLookandFeel::setColors(const QString &colorFile) +void KCMLookandFeel::setColors(const QString &scheme, const QString &colorFile) { - //TODO + m_configGroup.writeEntry("ColorScheme", scheme); + + KSharedConfigPtr conf = KSharedConfig::openConfig(colorFile); + foreach (const QString &grp, conf->groupList()) { + KConfigGroup cg(conf, grp); + KConfigGroup cg2(&m_config, grp); + cg.copyTo(&cg2); + } } void KCMLookandFeel::setIcons(const QString &theme) { - //TODO + KConfigGroup cg(&m_config, "Icons"); + cg.writeEntry("Theme", theme); } #include "kcm.moc" diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index 5dd06edf4..7f0f3b6b4 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -57,7 +57,7 @@ public: //Setters of the various theme pieces void setWidgetStyle(const QString &style); - void setColors(const QString &colorFile); + void setColors(const QString &scheme, const QString &colorFile); void setIcons(const QString &theme); public Q_SLOTS: From 80d9b3f96be66e7a01d22de7ed3c8f9192fbcfe0 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 11 Aug 2014 16:58:59 +0200 Subject: [PATCH 08/19] properties on wether apply various sub parts --- kcms/lookandfeel/kcm.cpp | 138 +++++++++++++++++++++++++++++++++------ kcms/lookandfeel/kcm.h | 25 +++++++ 2 files changed, 143 insertions(+), 20 deletions(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index ac07d6162..be1f3daad 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -46,6 +46,10 @@ KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) : KCModule(parent, args) , m_config("kdeglobals") , m_configGroup(m_config.group("KDE")) + , m_applyColors(false) + , m_applyWidgetStyle(false) + , m_applyIcons(false) + , m_applyPlasmaTheme(false) { qmlRegisterType(); KAboutData* about = new KAboutData("kcm_lookandfeel", i18n("Configure Splash screen details"), @@ -152,29 +156,40 @@ void KCMLookandFeel::save() if (!package.filePath("defaults").isEmpty()) { KSharedConfigPtr conf = KSharedConfig::openConfig(package.filePath("defaults")); KConfigGroup cg(conf, "KDE"); - setWidgetStyle(cg.readEntry("widgetStyle", QString())); - - QString colorsFile = package.filePath("colors"); - QString colorScheme = cg.readEntry("ColorScheme", QString()); - if (!colorsFile.isEmpty()) { - if (!colorScheme.isEmpty()) { - setColors(colorScheme, colorsFile); - } else { - setColors(package.metadata().name(), colorsFile); + if (m_applyWidgetStyle) { + setWidgetStyle(cg.readEntry("widgetStyle", QString())); + } + + if (m_applyColors) { + QString colorsFile = package.filePath("colors"); + QString colorScheme = cg.readEntry("ColorScheme", QString()); + if (!colorsFile.isEmpty()) { + if (!colorScheme.isEmpty()) { + setColors(colorScheme, colorsFile); + } else { + setColors(package.metadata().name(), colorsFile); + } + } else if (!colorScheme.isEmpty()) { + colorScheme.remove('\''); // So Foo's does not become FooS + QRegExp fixer("[\\W,.-]+(.?)"); + int offset; + while ((offset = fixer.indexIn(colorScheme)) >= 0) + colorScheme.replace(offset, fixer.matchedLength(), fixer.cap(1).toUpper()); + colorScheme.replace(0, 1, colorScheme.at(0).toUpper()); + QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors"); + setColors(colorScheme, src); } - } else if (!colorScheme.isEmpty()) { - colorScheme.remove('\''); // So Foo's does not become FooS - QRegExp fixer("[\\W,.-]+(.?)"); - int offset; - while ((offset = fixer.indexIn(colorScheme)) >= 0) - colorScheme.replace(offset, fixer.matchedLength(), fixer.cap(1).toUpper()); - colorScheme.replace(0, 1, colorScheme.at(0).toUpper()); - QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors"); - setColors(colorScheme, src); } - cg = KConfigGroup(conf, "Icons"); - setIcons(cg.readEntry("Theme", QString())); + if (m_applyIcons) { + cg = KConfigGroup(conf, "Icons"); + setIcons(cg.readEntry("Theme", QString())); + } + + if (m_applyPlasmaTheme) { + cg = KConfigGroup(conf, "PlasmaTheme"); + setPlasmaTheme(cg.readEntry("name", QString())); + } } m_configGroup.sync(); @@ -187,11 +202,19 @@ void KCMLookandFeel::defaults() void KCMLookandFeel::setWidgetStyle(const QString &style) { + if (style.isEmpty()) { + return; + } + m_configGroup.writeEntry("widgetStyle", style); } void KCMLookandFeel::setColors(const QString &scheme, const QString &colorFile) { + if (scheme.isEmpty() || colorFile.isEmpty()) { + return; + } + m_configGroup.writeEntry("ColorScheme", scheme); KSharedConfigPtr conf = KSharedConfig::openConfig(colorFile); @@ -204,8 +227,83 @@ void KCMLookandFeel::setColors(const QString &scheme, const QString &colorFile) void KCMLookandFeel::setIcons(const QString &theme) { + if (theme.isEmpty()) { + return; + } + KConfigGroup cg(&m_config, "Icons"); cg.writeEntry("Theme", theme); } +void KCMLookandFeel::setPlasmaTheme(const QString &theme) +{ + if (theme.isEmpty()) { + return; + } + + KConfig config("plasmarc"); + KConfigGroup cg(&config, "Theme"); + cg.writeEntry("name", theme); +} + +void KCMLookandFeel::setApplyColors(bool apply) +{ + if (m_applyColors == apply) { + return; + } + + m_applyColors = apply; + emit applyColorsChanged(); +} + +bool KCMLookandFeel::applyColors() const +{ + return m_applyColors; +} + +void KCMLookandFeel::setApplyWidgetStyle(bool apply) +{ + if (m_applyWidgetStyle == apply) { + return; + } + + m_applyWidgetStyle = apply; + emit applyWidgetStyleChanged(); +} + +bool KCMLookandFeel::applyWidgetStyle() const +{ + return m_applyWidgetStyle; +} + +void KCMLookandFeel::setApplyIcons(bool apply) +{ + if (m_applyIcons == apply) { + return; + } + + m_applyIcons = apply; + emit applyIconsChanged(); +} + +bool KCMLookandFeel::applyIcons() const +{ + return m_applyIcons; +} + +void KCMLookandFeel::setApplyPlasmaTheme(bool apply) +{ + if (m_applyPlasmaTheme == apply) { + return; + } + + m_applyPlasmaTheme = apply; + emit applyPlasmaThemeChanged(); +} + +bool KCMLookandFeel::applyPlasmaTheme() const +{ + return m_applyPlasmaTheme; +} + #include "kcm.moc" diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index 7f0f3b6b4..44e3e2517 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -36,6 +36,11 @@ class KCMLookandFeel : public KCModule Q_PROPERTY(QStandardItemModel *lookAndFeelModel READ lookAndFeelModel CONSTANT) Q_PROPERTY(QString selectedPlugin READ selectedPlugin WRITE setSelectedPlugin NOTIFY selectedPluginChanged) + Q_PROPERTY(bool applyColors READ applyColors WRITE setApplyColors NOTIFY applyColorsChanged) + Q_PROPERTY(bool applyWidgetStyle READ applyWidgetStyle WRITE setApplyWidgetStyle NOTIFY applyWidgetStyleChanged) + Q_PROPERTY(bool applyIcons READ applyIcons WRITE setApplyIcons NOTIFY applyIconsChanged) + Q_PROPERTY(bool applyPlasmaTheme READ applyPlasmaTheme WRITE setApplyPlasmaTheme NOTIFY applyPlasmaThemeChanged) + public: enum Roles { PluginNameRole = Qt::UserRole +1, @@ -59,6 +64,16 @@ public: void setWidgetStyle(const QString &style); void setColors(const QString &scheme, const QString &colorFile); void setIcons(const QString &theme); + void setPlasmaTheme(const QString &theme); + + void setApplyColors(bool apply); + bool applyColors() const; + void setApplyWidgetStyle(bool apply); + bool applyWidgetStyle() const; + void setApplyIcons(bool apply); + bool applyIcons() const; + void setApplyPlasmaTheme(bool apply); + bool applyPlasmaTheme() const; public Q_SLOTS: void load(); @@ -68,6 +83,11 @@ public Q_SLOTS: Q_SIGNALS: void selectedPluginChanged(); + void applyColorsChanged(); + void applyWidgetStyleChanged(); + void applyIconsChanged(); + void applyPlasmaThemeChanged(); + private: QQuickWidget *m_quickWidget; QStandardItemModel *m_model; @@ -76,6 +96,11 @@ private: KConfig m_config; KConfigGroup m_configGroup; + + bool m_applyColors : 1; + bool m_applyWidgetStyle : 1; + bool m_applyIcons : 1; + bool m_applyPlasmaTheme : 1; }; #endif From 5ce9d5fac23bedc1348ec7c05dbc5ab323cb190e Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 11 Aug 2014 17:52:36 +0200 Subject: [PATCH 09/19] add HasPlasmaThemeRole --- kcms/lookandfeel/kcm.cpp | 3 +++ kcms/lookandfeel/kcm.h | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index be1f3daad..ec457d228 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -135,6 +135,9 @@ void KCMLookandFeel::load() row->setData(!cg.readEntry("widgetStyle", QString()).isEmpty(), HasWidgetStyleRole); cg = KConfigGroup(conf, "Icons"); row->setData(!cg.readEntry("Theme", QString()).isEmpty(), HasIconsRole); + + cg = KConfigGroup(conf, "PlasmaTheme"); + row->setData(!cg.readEntry("name", QString()).isEmpty(), HasPlasmaThemeRole); } m_model->appendRow(row); diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index 44e3e2517..d3c7b64a8 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -51,7 +51,8 @@ public: HasLogoutRole, HasColorsRole, HasWidgetStyleRole, - HasIconsRole + HasIconsRole, + HasPlasmaThemeRole }; KCMLookandFeel(QWidget* parent, const QVariantList& args); From 6f31c43bb924378444df42b5ca5deb34abfcc1c4 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 12 Aug 2014 12:38:02 +0200 Subject: [PATCH 10/19] put all screenshots in previews --- kcms/lookandfeel/kcm.cpp | 2 +- kcms/splash/kcm.cpp | 2 +- ksmserver/screenlocker/kcm/kcm.cpp | 2 +- lookandfeel/contents/lockscreen/screenshot.png | Bin 42079 -> 0 bytes lookandfeel/contents/previews/lockscreen.png | Bin 0 -> 42079 bytes .../{screenshot.png => previews/preview.png} | Bin lookandfeel/contents/previews/splash.png | Bin 0 -> 38973 bytes lookandfeel/contents/splash/screenshot.png | Bin 38973 -> 0 bytes 8 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 lookandfeel/contents/lockscreen/screenshot.png rename lookandfeel/contents/{screenshot.png => previews/preview.png} (100%) delete mode 100644 lookandfeel/contents/splash/screenshot.png diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index ec457d228..8c2c22376 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -116,7 +116,7 @@ void KCMLookandFeel::load() for (const Plasma::Package &pkg : pkgs) { QStandardItem* row = new QStandardItem(pkg.metadata().name()); row->setData(pkg.metadata().pluginName(), PluginNameRole); - row->setData(pkg.filePath("screenshot"), ScreenhotRole); + row->setData(pkg.filePath("previews", "preview.png"), ScreenhotRole); //What the package provides row->setData(!pkg.filePath("splashmainscript").isEmpty(), HasSplashRole); diff --git a/kcms/splash/kcm.cpp b/kcms/splash/kcm.cpp index 9c353226c..6ff1eb834 100644 --- a/kcms/splash/kcm.cpp +++ b/kcms/splash/kcm.cpp @@ -112,7 +112,7 @@ void KCMSplashScreen::load() for (const Plasma::Package &pkg : pkgs) { QStandardItem* row = new QStandardItem(pkg.metadata().name()); row->setData(pkg.metadata().pluginName(), PluginNameRole); - row->setData(pkg.filePath("splash", "screenshot.png"), ScreenhotRole); + row->setData(pkg.filePath("previews", "splash.png"), ScreenhotRole); m_model->appendRow(row); } } diff --git a/ksmserver/screenlocker/kcm/kcm.cpp b/ksmserver/screenlocker/kcm/kcm.cpp index 3dfcd0bd8..8bf997370 100644 --- a/ksmserver/screenlocker/kcm/kcm.cpp +++ b/ksmserver/screenlocker/kcm/kcm.cpp @@ -91,7 +91,7 @@ void ScreenLockerKcm::load() for (const Plasma::Package &pkg : pkgs) { QStandardItem* row = new QStandardItem(pkg.metadata().name()); row->setData(pkg.metadata().pluginName(), PluginNameRole); - row->setData(pkg.filePath("lockscreen", "screenshot.png"), ScreenhotRole); + row->setData(pkg.filePath("previews", "lockscreen.png"), ScreenhotRole); m_model->appendRow(row); } } diff --git a/lookandfeel/contents/lockscreen/screenshot.png b/lookandfeel/contents/lockscreen/screenshot.png deleted file mode 100644 index c22d3bfd34c18b82f1c1db80423a5450560e3396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42079 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 f{3!1{h4lXbWf5Y8WiBf~Wy)LR*3a2_--! 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 tPtp+nAO3>f5Y8WiBf~Wy)LR*3a2_--! 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 tPtp+nAO3> Date: Tue, 12 Aug 2014 12:58:40 +0200 Subject: [PATCH 11/19] seems this extra sync() is needed :( --- kcms/lookandfeel/kcm.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 8c2c22376..2e32c6680 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -46,10 +46,10 @@ KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) : KCModule(parent, args) , m_config("kdeglobals") , m_configGroup(m_config.group("KDE")) - , m_applyColors(false) - , m_applyWidgetStyle(false) - , m_applyIcons(false) - , m_applyPlasmaTheme(false) + , m_applyColors(true) + , m_applyWidgetStyle(true) + , m_applyIcons(true) + , m_applyPlasmaTheme(true) { qmlRegisterType(); KAboutData* about = new KAboutData("kcm_lookandfeel", i18n("Configure Splash screen details"), @@ -210,6 +210,7 @@ void KCMLookandFeel::setWidgetStyle(const QString &style) } m_configGroup.writeEntry("widgetStyle", style); + m_configGroup.sync(); } void KCMLookandFeel::setColors(const QString &scheme, const QString &colorFile) From 69593982e46bc02ac3463ec2f7d1c8382b10db33 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 12 Aug 2014 13:04:32 +0200 Subject: [PATCH 12/19] use just Theme --- kcms/lookandfeel/kcm.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 2e32c6680..9c09f2afd 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -190,7 +190,7 @@ void KCMLookandFeel::save() } if (m_applyPlasmaTheme) { - cg = KConfigGroup(conf, "PlasmaTheme"); + cg = KConfigGroup(conf, "Theme"); setPlasmaTheme(cg.readEntry("name", QString())); } } @@ -248,6 +248,7 @@ void KCMLookandFeel::setPlasmaTheme(const QString &theme) KConfig config("plasmarc"); KConfigGroup cg(&config, "Theme"); cg.writeEntry("name", theme); + cg.sync(); } void KCMLookandFeel::setApplyColors(bool apply) From dd7082e1c92f48bbc2334d7fec62d37fa350586d Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 12 Aug 2014 13:06:39 +0200 Subject: [PATCH 13/19] seems the 100 msec timeout is needed --- kcms/lookandfeel/package/contents/ui/main.qml | 2 +- ksmserver/screenlocker/kcm/package/contents/ui/main.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kcms/lookandfeel/package/contents/ui/main.qml b/kcms/lookandfeel/package/contents/ui/main.qml index 122907ce7..8f15a2769 100644 --- a/kcms/lookandfeel/package/contents/ui/main.qml +++ b/kcms/lookandfeel/package/contents/ui/main.qml @@ -108,7 +108,7 @@ Rectangle { } Timer { id: makeCurrentTimer - interval: 0 + interval: 100 repeat: false property int pendingIndex onPendingIndexChanged: makeCurrentTimer.restart() diff --git a/ksmserver/screenlocker/kcm/package/contents/ui/main.qml b/ksmserver/screenlocker/kcm/package/contents/ui/main.qml index f37fc1979..8a3a643c3 100644 --- a/ksmserver/screenlocker/kcm/package/contents/ui/main.qml +++ b/ksmserver/screenlocker/kcm/package/contents/ui/main.qml @@ -132,7 +132,7 @@ Rectangle { * the view really is done loading"*/ Timer { id: makeCurrentTimer - interval: 0 + interval: 100 repeat: false property int pendingIndex onPendingIndexChanged: makeCurrentTimer.restart() From 766f7868b51f272adb89e40045d8a476a7d3b4c4 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 12 Aug 2014 15:05:14 +0200 Subject: [PATCH 14/19] prefix the defaults with the config file name to be sure to avoid any future collision --- kcms/lookandfeel/kcm.cpp | 18 ++++++++++++------ lookandfeel/contents/defaults | 10 ++++++---- shell/shellcorona.cpp | 3 ++- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 9c09f2afd..bd4de664f 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -126,17 +126,20 @@ void KCMLookandFeel::load() if (!pkg.filePath("defaults").isEmpty()) { KSharedConfigPtr conf = KSharedConfig::openConfig(pkg.filePath("defaults")); - KConfigGroup cg(conf, "KDE"); + KConfigGroup cg(conf, "kdeglobals"); + cg = KConfigGroup(&cg, "KDE"); bool hasColors = !cg.readEntry("ColorScheme", QString()).isEmpty(); row->setData(hasColors, HasColorsRole); if (!hasColors) { hasColors = !pkg.filePath("colors").isEmpty(); } row->setData(!cg.readEntry("widgetStyle", QString()).isEmpty(), HasWidgetStyleRole); - cg = KConfigGroup(conf, "Icons"); + cg = KConfigGroup(conf, "kdeglobals"); + cg = KConfigGroup(&cg, "Icons"); row->setData(!cg.readEntry("Theme", QString()).isEmpty(), HasIconsRole); - cg = KConfigGroup(conf, "PlasmaTheme"); + cg = KConfigGroup(conf, "kdeglobals"); + cg = KConfigGroup(&cg, "Theme"); row->setData(!cg.readEntry("name", QString()).isEmpty(), HasPlasmaThemeRole); } @@ -158,7 +161,8 @@ void KCMLookandFeel::save() if (!package.filePath("defaults").isEmpty()) { KSharedConfigPtr conf = KSharedConfig::openConfig(package.filePath("defaults")); - KConfigGroup cg(conf, "KDE"); + KConfigGroup cg(conf, "kdeglobals"); + cg = KConfigGroup(&cg, "KDE"); if (m_applyWidgetStyle) { setWidgetStyle(cg.readEntry("widgetStyle", QString())); } @@ -185,12 +189,14 @@ void KCMLookandFeel::save() } if (m_applyIcons) { - cg = KConfigGroup(conf, "Icons"); + cg = KConfigGroup(conf, "kdeglobals"); + cg = KConfigGroup(&cg, "Icons"); setIcons(cg.readEntry("Theme", QString())); } if (m_applyPlasmaTheme) { - cg = KConfigGroup(conf, "Theme"); + cg = KConfigGroup(conf, "plasmarc"); + cg = KConfigGroup(&cg, "Theme"); setPlasmaTheme(cg.readEntry("name", QString())); } } diff --git a/lookandfeel/contents/defaults b/lookandfeel/contents/defaults index c34041a1b..b40f1f71b 100644 --- a/lookandfeel/contents/defaults +++ b/lookandfeel/contents/defaults @@ -1,10 +1,12 @@ -[KDE] +[kdeglobals][KDE] widgetStyle=qtcurve -SingleClick=true ColorScheme=Breeze -[Icons] +[kdeglobals][Icons] Theme=breeze -[Theme] +[plasmarc][Theme] name=default + +[kcminputrc][Mouse] +cursorTheme=breeze diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp index 084d4f82a..71abe9a09 100644 --- a/shell/shellcorona.cpp +++ b/shell/shellcorona.cpp @@ -178,8 +178,9 @@ ShellCorona::ShellCorona(QObject *parent) if (themeName.isEmpty()) { const KConfigGroup lnfCfg = KConfigGroup(KSharedConfig::openConfig( lookAndFeelPackage().filePath("defaults")), - themeGroupKey + "plasmarc" ); + lnfCfg = KConfigGroup(&lnfCfg, themeGroupKey); themeName = lnfCfg.readEntry(themeNameKey, themeName); } From 1e45e7ddb680b92331e50d7fecb39fc88a8e7242 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 12 Aug 2014 15:21:05 +0200 Subject: [PATCH 15/19] set cursor theme too requires a reboot, lnf kcm has to be moved to plasma-desktop to be able to have all the needed code from the otehr kcms --- kcms/lookandfeel/kcm.cpp | 20 ++++++++++++++++++++ kcms/lookandfeel/kcm.h | 2 ++ shell/shellcorona.cpp | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index bd4de664f..b82d58629 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -50,6 +50,7 @@ KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) , m_applyWidgetStyle(true) , m_applyIcons(true) , m_applyPlasmaTheme(true) + , m_applyCursors(true) { qmlRegisterType(); KAboutData* about = new KAboutData("kcm_lookandfeel", i18n("Configure Splash screen details"), @@ -199,6 +200,12 @@ void KCMLookandFeel::save() cg = KConfigGroup(&cg, "Theme"); setPlasmaTheme(cg.readEntry("name", QString())); } + + if (m_applyCursors) { + cg = KConfigGroup(conf, "kcminputrc"); + cg = KConfigGroup(&cg, "Mouse"); + setPlasmaTheme(cg.readEntry("cursorTheme", QString())); + } } m_configGroup.sync(); @@ -257,6 +264,19 @@ void KCMLookandFeel::setPlasmaTheme(const QString &theme) cg.sync(); } +void KCMLookandFeel::setCursorTheme(const QString theme) +{ + //TODO: use pieces of cursor kcm when moved to plasma-desktop + if (theme.isEmpty()) { + return; + } + + KConfig config("kcminputrc"); + KConfigGroup cg(&config, "Mouse"); + cg.writeEntry("cursorTheme", theme); + cg.sync(); +} + void KCMLookandFeel::setApplyColors(bool apply) { if (m_applyColors == apply) { diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index d3c7b64a8..175ccd06d 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -66,6 +66,7 @@ public: void setColors(const QString &scheme, const QString &colorFile); void setIcons(const QString &theme); void setPlasmaTheme(const QString &theme); + void setCursorTheme(const QString theme); void setApplyColors(bool apply); bool applyColors() const; @@ -102,6 +103,7 @@ private: bool m_applyWidgetStyle : 1; bool m_applyIcons : 1; bool m_applyPlasmaTheme : 1; + bool m_applyCursors : 1; }; #endif diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp index 71abe9a09..a2ebb1fef 100644 --- a/shell/shellcorona.cpp +++ b/shell/shellcorona.cpp @@ -176,7 +176,7 @@ ShellCorona::ShellCorona(QObject *parent) themeName = plasmarc.readEntry(themeNameKey, themeName); if (themeName.isEmpty()) { - const KConfigGroup lnfCfg = KConfigGroup(KSharedConfig::openConfig( + KConfigGroup lnfCfg = KConfigGroup(KSharedConfig::openConfig( lookAndFeelPackage().filePath("defaults")), "plasmarc" ); From 2c77b86f967cc142656292c2aa5cf7c9ba60cfaa Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 12 Aug 2014 15:24:54 +0200 Subject: [PATCH 16/19] role to say if the package sets cursors --- kcms/lookandfeel/kcm.cpp | 6 ++++++ kcms/lookandfeel/kcm.h | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index b82d58629..dfc86758c 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -71,6 +71,8 @@ KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) roles[HasColorsRole] = "hasColors"; roles[HasWidgetStyleRole] = "hasWidgetStyle"; roles[HasIconsRole] = "hasIcons"; + roles[HasPlasmaThemeRole] = "hasPlasmaTheme"; + roles[HasCursorsRole] = "hasCursors"; m_model->setItemRoleNames(roles); QVBoxLayout* layout = new QVBoxLayout(this); @@ -142,6 +144,10 @@ void KCMLookandFeel::load() cg = KConfigGroup(conf, "kdeglobals"); cg = KConfigGroup(&cg, "Theme"); row->setData(!cg.readEntry("name", QString()).isEmpty(), HasPlasmaThemeRole); + + cg = KConfigGroup(conf, "kcminputrc"); + cg = KConfigGroup(&cg, "Mouse"); + row->setData(!cg.readEntry("cursorTheme", QString()).isEmpty(), HasCursorsRole); } m_model->appendRow(row); diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index 175ccd06d..e02c55965 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -52,7 +52,8 @@ public: HasColorsRole, HasWidgetStyleRole, HasIconsRole, - HasPlasmaThemeRole + HasPlasmaThemeRole, + HasCursorsRole }; KCMLookandFeel(QWidget* parent, const QVariantList& args); From 457d05df09c5a76163326a206cb702372fed3a65 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Wed, 13 Aug 2014 11:27:24 +0200 Subject: [PATCH 17/19] remove the l&f kcm from this repo --- kcms/CMakeLists.txt | 1 - kcms/lookandfeel/CMakeLists.txt | 28 -- kcms/lookandfeel/Messages.sh | 4 - kcms/lookandfeel/kcm.cpp | 346 ------------------ kcms/lookandfeel/kcm.h | 110 ------ kcms/lookandfeel/kcm_lookandfeel.desktop | 18 - kcms/lookandfeel/package/contents/ui/main.qml | 121 ------ kcms/lookandfeel/package/metadata.desktop | 19 - 8 files changed, 647 deletions(-) delete mode 100644 kcms/lookandfeel/CMakeLists.txt delete mode 100755 kcms/lookandfeel/Messages.sh delete mode 100644 kcms/lookandfeel/kcm.cpp delete mode 100644 kcms/lookandfeel/kcm.h delete mode 100644 kcms/lookandfeel/kcm_lookandfeel.desktop delete mode 100644 kcms/lookandfeel/package/contents/ui/main.qml delete mode 100644 kcms/lookandfeel/package/metadata.desktop diff --git a/kcms/CMakeLists.txt b/kcms/CMakeLists.txt index fe7f4bf82..602994ec7 100644 --- a/kcms/CMakeLists.txt +++ b/kcms/CMakeLists.txt @@ -1,3 +1,2 @@ project(kcms) -add_subdirectory( lookandfeel ) add_subdirectory( splash ) diff --git a/kcms/lookandfeel/CMakeLists.txt b/kcms/lookandfeel/CMakeLists.txt deleted file mode 100644 index f5f21513d..000000000 --- a/kcms/lookandfeel/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -# KI18N Translation Domain for this library -add_definitions(-DTRANSLATION_DOMAIN=\"kcm_lookandfeel\") - -set(kcm_lookandfeel_SRCS - kcm.cpp - ../../lookandfeelaccess/lookandfeelaccess.cpp -) - -add_library(kcm_lookandfeel MODULE ${kcm_lookandfeel_SRCS}) - -target_link_libraries(kcm_lookandfeel - KF5::KIOWidgets - KF5::CoreAddons - KF5::KCMUtils - KF5::I18n - KF5::Plasma - KF5::PlasmaQuick - - Qt5::DBus - Qt5::Widgets - Qt5::QuickWidgets -) - - -install(FILES kcm_lookandfeel.desktop DESTINATION ${SERVICES_INSTALL_DIR}) -install(TARGETS kcm_lookandfeel DESTINATION ${PLUGIN_INSTALL_DIR}) - -plasma_install_package(package kcm_lookandfeel kcms kcm_lookandfeel) diff --git a/kcms/lookandfeel/Messages.sh b/kcms/lookandfeel/Messages.sh deleted file mode 100755 index ff5dd4fc1..000000000 --- a/kcms/lookandfeel/Messages.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! /usr/bin/env bash -$EXTRACTRC `find . -name "*.ui"` >> rc.cpp || exit 11 -$XGETTEXT `find . -name "*.cpp"` -o $podir/kcm_lookandfeel.pot -rm -f rc.cpp diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp deleted file mode 100644 index dfc86758c..000000000 --- a/kcms/lookandfeel/kcm.cpp +++ /dev/null @@ -1,346 +0,0 @@ -/* This file is part of the KDE Project - Copyright (c) 2014 Marco Martin - Copyright (c) 2014 Vishesh Handa - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "kcm.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -K_PLUGIN_FACTORY(KCMLookandFeelFactory, registerPlugin();) - -KCMLookandFeel::KCMLookandFeel(QWidget* parent, const QVariantList& args) - : KCModule(parent, args) - , m_config("kdeglobals") - , m_configGroup(m_config.group("KDE")) - , m_applyColors(true) - , m_applyWidgetStyle(true) - , m_applyIcons(true) - , m_applyPlasmaTheme(true) - , m_applyCursors(true) -{ - qmlRegisterType(); - KAboutData* about = new KAboutData("kcm_lookandfeel", i18n("Configure Splash screen details"), - "0.1", QString(), KAboutLicense::LGPL); - about->addAuthor(i18n("Marco Martin"), QString(), "mart@kde.org"); - setAboutData(about); - setButtons(Help | Apply | Default); - - m_model = new QStandardItemModel(this); - QHash roles = m_model->roleNames(); - roles[PluginNameRole] = "pluginName"; - roles[ScreenhotRole] = "screenshot"; - roles[HasSplashRole] = "hasSplash"; - roles[HasLockScreenRole] = "hasLockScreen"; - roles[HasRunCommandRole] = "hasRunCommand"; - roles[HasLogoutRole] = "hasLogout"; - - roles[HasColorsRole] = "hasColors"; - roles[HasWidgetStyleRole] = "hasWidgetStyle"; - roles[HasIconsRole] = "hasIcons"; - roles[HasPlasmaThemeRole] = "hasPlasmaTheme"; - roles[HasCursorsRole] = "hasCursors"; - m_model->setItemRoleNames(roles); - QVBoxLayout* layout = new QVBoxLayout(this); - - m_quickWidget = new QQuickWidget(this); - m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); - Plasma::Package package = Plasma::PluginLoader::self()->loadPackage("Plasma/Generic"); - package.setDefaultPackageRoot("plasma/kcms"); - package.setPath("kcm_lookandfeel"); - m_quickWidget->rootContext()->setContextProperty("kcm", this); - m_quickWidget->setSource(QUrl::fromLocalFile(package.filePath("mainscript"))); - setMinimumHeight(m_quickWidget->initialSize().height()); - - layout->addWidget(m_quickWidget); -} - -QStandardItemModel *KCMLookandFeel::lookAndFeelModel() -{ - return m_model; -} - -QString KCMLookandFeel::selectedPlugin() const -{ - return m_selectedPlugin; -} - -void KCMLookandFeel::setSelectedPlugin(const QString &plugin) -{ - if (m_selectedPlugin == plugin) { - return; - } - - m_selectedPlugin = plugin; - emit selectedPluginChanged(); - changed(); -} - -void KCMLookandFeel::load() -{ - setSelectedPlugin(m_access.metadata().pluginName()); - - m_model->clear(); - - const QList pkgs = LookAndFeelAccess::availablePackages(); - for (const Plasma::Package &pkg : pkgs) { - QStandardItem* row = new QStandardItem(pkg.metadata().name()); - row->setData(pkg.metadata().pluginName(), PluginNameRole); - row->setData(pkg.filePath("previews", "preview.png"), ScreenhotRole); - - //What the package provides - row->setData(!pkg.filePath("splashmainscript").isEmpty(), HasSplashRole); - row->setData(!pkg.filePath("lockscreenmainscript").isEmpty(), HasLockScreenRole); - row->setData(!pkg.filePath("runcommandmainscript").isEmpty(), HasRunCommandRole); - row->setData(!pkg.filePath("logoutmainscript").isEmpty(), HasLogoutRole); - - if (!pkg.filePath("defaults").isEmpty()) { - KSharedConfigPtr conf = KSharedConfig::openConfig(pkg.filePath("defaults")); - KConfigGroup cg(conf, "kdeglobals"); - cg = KConfigGroup(&cg, "KDE"); - bool hasColors = !cg.readEntry("ColorScheme", QString()).isEmpty(); - row->setData(hasColors, HasColorsRole); - if (!hasColors) { - hasColors = !pkg.filePath("colors").isEmpty(); - } - row->setData(!cg.readEntry("widgetStyle", QString()).isEmpty(), HasWidgetStyleRole); - cg = KConfigGroup(conf, "kdeglobals"); - cg = KConfigGroup(&cg, "Icons"); - row->setData(!cg.readEntry("Theme", QString()).isEmpty(), HasIconsRole); - - cg = KConfigGroup(conf, "kdeglobals"); - cg = KConfigGroup(&cg, "Theme"); - row->setData(!cg.readEntry("name", QString()).isEmpty(), HasPlasmaThemeRole); - - cg = KConfigGroup(conf, "kcminputrc"); - cg = KConfigGroup(&cg, "Mouse"); - row->setData(!cg.readEntry("cursorTheme", QString()).isEmpty(), HasCursorsRole); - } - - m_model->appendRow(row); - } -} - - -void KCMLookandFeel::save() -{ - Plasma::Package package = Plasma::PluginLoader::self()->loadPackage("Plasma/LookAndFeel"); - package.setPath(m_selectedPlugin); - - if (!package.isValid()) { - return; - } - - m_configGroup.writeEntry("LookAndFeelPackage", m_selectedPlugin); - - if (!package.filePath("defaults").isEmpty()) { - KSharedConfigPtr conf = KSharedConfig::openConfig(package.filePath("defaults")); - KConfigGroup cg(conf, "kdeglobals"); - cg = KConfigGroup(&cg, "KDE"); - if (m_applyWidgetStyle) { - setWidgetStyle(cg.readEntry("widgetStyle", QString())); - } - - if (m_applyColors) { - QString colorsFile = package.filePath("colors"); - QString colorScheme = cg.readEntry("ColorScheme", QString()); - if (!colorsFile.isEmpty()) { - if (!colorScheme.isEmpty()) { - setColors(colorScheme, colorsFile); - } else { - setColors(package.metadata().name(), colorsFile); - } - } else if (!colorScheme.isEmpty()) { - colorScheme.remove('\''); // So Foo's does not become FooS - QRegExp fixer("[\\W,.-]+(.?)"); - int offset; - while ((offset = fixer.indexIn(colorScheme)) >= 0) - colorScheme.replace(offset, fixer.matchedLength(), fixer.cap(1).toUpper()); - colorScheme.replace(0, 1, colorScheme.at(0).toUpper()); - QString src = QStandardPaths::locate(QStandardPaths::GenericDataLocation, "color-schemes/" + colorScheme + ".colors"); - setColors(colorScheme, src); - } - } - - if (m_applyIcons) { - cg = KConfigGroup(conf, "kdeglobals"); - cg = KConfigGroup(&cg, "Icons"); - setIcons(cg.readEntry("Theme", QString())); - } - - if (m_applyPlasmaTheme) { - cg = KConfigGroup(conf, "plasmarc"); - cg = KConfigGroup(&cg, "Theme"); - setPlasmaTheme(cg.readEntry("name", QString())); - } - - if (m_applyCursors) { - cg = KConfigGroup(conf, "kcminputrc"); - cg = KConfigGroup(&cg, "Mouse"); - setPlasmaTheme(cg.readEntry("cursorTheme", QString())); - } - } - - m_configGroup.sync(); -} - -void KCMLookandFeel::defaults() -{ - setSelectedPlugin(m_access.metadata().pluginName()); -} - -void KCMLookandFeel::setWidgetStyle(const QString &style) -{ - if (style.isEmpty()) { - return; - } - - m_configGroup.writeEntry("widgetStyle", style); - m_configGroup.sync(); -} - -void KCMLookandFeel::setColors(const QString &scheme, const QString &colorFile) -{ - if (scheme.isEmpty() || colorFile.isEmpty()) { - return; - } - - m_configGroup.writeEntry("ColorScheme", scheme); - - KSharedConfigPtr conf = KSharedConfig::openConfig(colorFile); - foreach (const QString &grp, conf->groupList()) { - KConfigGroup cg(conf, grp); - KConfigGroup cg2(&m_config, grp); - cg.copyTo(&cg2); - } -} - -void KCMLookandFeel::setIcons(const QString &theme) -{ - if (theme.isEmpty()) { - return; - } - - KConfigGroup cg(&m_config, "Icons"); - cg.writeEntry("Theme", theme); -} - -void KCMLookandFeel::setPlasmaTheme(const QString &theme) -{ - if (theme.isEmpty()) { - return; - } - - KConfig config("plasmarc"); - KConfigGroup cg(&config, "Theme"); - cg.writeEntry("name", theme); - cg.sync(); -} - -void KCMLookandFeel::setCursorTheme(const QString theme) -{ - //TODO: use pieces of cursor kcm when moved to plasma-desktop - if (theme.isEmpty()) { - return; - } - - KConfig config("kcminputrc"); - KConfigGroup cg(&config, "Mouse"); - cg.writeEntry("cursorTheme", theme); - cg.sync(); -} - -void KCMLookandFeel::setApplyColors(bool apply) -{ - if (m_applyColors == apply) { - return; - } - - m_applyColors = apply; - emit applyColorsChanged(); -} - -bool KCMLookandFeel::applyColors() const -{ - return m_applyColors; -} - -void KCMLookandFeel::setApplyWidgetStyle(bool apply) -{ - if (m_applyWidgetStyle == apply) { - return; - } - - m_applyWidgetStyle = apply; - emit applyWidgetStyleChanged(); -} - -bool KCMLookandFeel::applyWidgetStyle() const -{ - return m_applyWidgetStyle; -} - -void KCMLookandFeel::setApplyIcons(bool apply) -{ - if (m_applyIcons == apply) { - return; - } - - m_applyIcons = apply; - emit applyIconsChanged(); -} - -bool KCMLookandFeel::applyIcons() const -{ - return m_applyIcons; -} - -void KCMLookandFeel::setApplyPlasmaTheme(bool apply) -{ - if (m_applyPlasmaTheme == apply) { - return; - } - - m_applyPlasmaTheme = apply; - emit applyPlasmaThemeChanged(); -} - -bool KCMLookandFeel::applyPlasmaTheme() const -{ - return m_applyPlasmaTheme; -} - -#include "kcm.moc" diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h deleted file mode 100644 index e02c55965..000000000 --- a/kcms/lookandfeel/kcm.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - Copyright (c) 2014 Marco Martin - Copyright (c) 2014 Vishesh Handa - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef _KCM_SEARCH_H -#define _KCM_SEARCH_H - -#include -#include -#include -#include - -#include "../../lookandfeelaccess/lookandfeelaccess.h" - -class QQuickWidget; -class QStandardItemModel; - -class KCMLookandFeel : public KCModule -{ - Q_OBJECT - Q_PROPERTY(QStandardItemModel *lookAndFeelModel READ lookAndFeelModel CONSTANT) - Q_PROPERTY(QString selectedPlugin READ selectedPlugin WRITE setSelectedPlugin NOTIFY selectedPluginChanged) - - Q_PROPERTY(bool applyColors READ applyColors WRITE setApplyColors NOTIFY applyColorsChanged) - Q_PROPERTY(bool applyWidgetStyle READ applyWidgetStyle WRITE setApplyWidgetStyle NOTIFY applyWidgetStyleChanged) - Q_PROPERTY(bool applyIcons READ applyIcons WRITE setApplyIcons NOTIFY applyIconsChanged) - Q_PROPERTY(bool applyPlasmaTheme READ applyPlasmaTheme WRITE setApplyPlasmaTheme NOTIFY applyPlasmaThemeChanged) - -public: - enum Roles { - PluginNameRole = Qt::UserRole +1, - ScreenhotRole, - HasSplashRole, - HasLockScreenRole, - HasRunCommandRole, - HasLogoutRole, - HasColorsRole, - HasWidgetStyleRole, - HasIconsRole, - HasPlasmaThemeRole, - HasCursorsRole - }; - KCMLookandFeel(QWidget* parent, const QVariantList& args); - - QStandardItemModel *lookAndFeelModel(); - - QString selectedPlugin() const; - void setSelectedPlugin(const QString &plugin); - - //Setters of the various theme pieces - void setWidgetStyle(const QString &style); - void setColors(const QString &scheme, const QString &colorFile); - void setIcons(const QString &theme); - void setPlasmaTheme(const QString &theme); - void setCursorTheme(const QString theme); - - void setApplyColors(bool apply); - bool applyColors() const; - void setApplyWidgetStyle(bool apply); - bool applyWidgetStyle() const; - void setApplyIcons(bool apply); - bool applyIcons() const; - void setApplyPlasmaTheme(bool apply); - bool applyPlasmaTheme() const; - -public Q_SLOTS: - void load(); - void save(); - void defaults(); - -Q_SIGNALS: - void selectedPluginChanged(); - - void applyColorsChanged(); - void applyWidgetStyleChanged(); - void applyIconsChanged(); - void applyPlasmaThemeChanged(); - -private: - QQuickWidget *m_quickWidget; - QStandardItemModel *m_model; - LookAndFeelAccess m_access; - QString m_selectedPlugin; - - KConfig m_config; - KConfigGroup m_configGroup; - - bool m_applyColors : 1; - bool m_applyWidgetStyle : 1; - bool m_applyIcons : 1; - bool m_applyPlasmaTheme : 1; - bool m_applyCursors : 1; -}; - -#endif diff --git a/kcms/lookandfeel/kcm_lookandfeel.desktop b/kcms/lookandfeel/kcm_lookandfeel.desktop deleted file mode 100644 index 2a490b0b8..000000000 --- a/kcms/lookandfeel/kcm_lookandfeel.desktop +++ /dev/null @@ -1,18 +0,0 @@ -[Desktop Entry] -Icon=preferences-desktop-theme-style -Exec=kcmshell5 kcm_lookandfeel -X-DocPath=kcontrol/lookandfeel/index.html - -Type=Service -X-KDE-ServiceTypes=KCModule - -X-KDE-Library=kcm_lookandfeel -X-KDE-ParentApp=kcontrol - -X-KDE-System-Settings-Parent-Category=workspacetheme -X-KDE-Weight=1 - -Name=Look And Feel -Comment=Desktop Look And Feel -X-KDE-Keywords=theme, look, feel -Categories=Qt;KDE;X-KDE-settings-looknfeel; diff --git a/kcms/lookandfeel/package/contents/ui/main.qml b/kcms/lookandfeel/package/contents/ui/main.qml deleted file mode 100644 index 8f15a2769..000000000 --- a/kcms/lookandfeel/package/contents/ui/main.qml +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright (c) 2014 Marco Martin - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -import QtQuick 2.1 -import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.0 as QtControls -import org.kde.kquickcontrolsaddons 2.0 -import QtQuick.Controls.Private 1.0 -//We need units from it -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -Rectangle { - width: units.gridUnit * 20 - height: units.gridUnit * 20 - color: syspal.window - - SystemPalette {id: syspal} - QtControls.ScrollView { - anchors.fill: parent - GridView { - id: grid - model: kcm.lookAndFeelModel - cellWidth: Math.floor(grid.width / Math.max(Math.floor(grid.width / (units.gridUnit*12)), 3)) - cellHeight: cellWidth / 1.6 - - delegate: Rectangle { - width: grid.cellWidth - height: grid.cellHeight - Connections { - target: kcm - onSelectedPluginChanged: { - if (kcm.selectedPlugin == model.pluginName) { - makeCurrentTimer.pendingIndex = index - } - } - } - Component.onCompleted: { - if (kcm.selectedPlugin == model.pluginName) { - makeCurrentTimer.pendingIndex = index - } - } - QIconItem { - id: icon - anchors.centerIn: parent - width: units.iconSizes.large - height: width - icon: "view-preview" - } - QtControls.Label { - anchors { - horizontalCenter: parent.horizontalCenter - top: icon.bottom - topMargin: units.gridUnit - } - color: "gray" - text: model.display - } - Image { - anchors.fill: parent - source: model.screenshot - } - Rectangle { - opacity: grid.currentIndex == index ? 1.0 : 0 - anchors.fill: parent - border.width: units.smallSpacing * 2 - border.color: syspal.highlight - color: "transparent" - Behavior on opacity { - PropertyAnimation { - duration: units.longDuration - easing.type: Easing.OutQuad - } - } - } - MouseArea { - anchors.fill: parent - hoverEnabled: true - onClicked: { - grid.currentIndex = index - kcm.selectedPlugin = model.pluginName - } - Timer { - interval: 1000 // FIXME TODO: Use platform value for tooltip activation delay. - - running: parent.containsMouse && !parent.pressedButtons - - onTriggered: { - Tooltip.showText(parent, Qt.point(parent.mouseX, parent.mouseY), model.display); - } - } - } - } - Timer { - id: makeCurrentTimer - interval: 100 - repeat: false - property int pendingIndex - onPendingIndexChanged: makeCurrentTimer.restart() - onTriggered: { - grid.currentIndex = pendingIndex - } - } - } - } -} diff --git a/kcms/lookandfeel/package/metadata.desktop b/kcms/lookandfeel/package/metadata.desktop deleted file mode 100644 index ff4dd26da..000000000 --- a/kcms/lookandfeel/package/metadata.desktop +++ /dev/null @@ -1,19 +0,0 @@ -[Desktop Entry] -Name=Look And Feel -Comment=Configure The Look And feel of the Desktop -Icon=preferences-desktop-theme-style -Encoding=UTF-8 -Keywords= -Type=Service -X-KDE-ParentApp= -X-KDE-PluginInfo-Author=Marco Martin -X-KDE-PluginInfo-Email=mart@kde.org -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-Name=kcm_lookandfeel -X-KDE-PluginInfo-Version= -X-KDE-PluginInfo-Website= -X-KDE-ServiceTypes=Plasma/Generic -X-Plasma-API=declarativeappletscript - -X-Plasma-MainScript=ui/main.qml -X-Plasma-RemoteLocation= From 030f536383376d8448675bfafeec88e4f775fa9d Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Fri, 15 Aug 2014 17:54:06 +0200 Subject: [PATCH 18/19] use the proper l&f package, with LookAndFeelAccess still not enough but a part of 337757 CCBUG:337757 --- shell/shellcorona.cpp | 16 ++++------------ shell/shellcorona.h | 2 -- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp index a2ebb1fef..4fa29bff7 100644 --- a/shell/shellcorona.cpp +++ b/shell/shellcorona.cpp @@ -64,6 +64,8 @@ #include "plasmashelladaptor.h" +#include "../lookandfeelaccess/lookandfeelaccess.h" + static const int s_configSyncDelay = 10000; // 10 seconds class ShellCorona::Private { @@ -176,8 +178,9 @@ ShellCorona::ShellCorona(QObject *parent) themeName = plasmarc.readEntry(themeNameKey, themeName); if (themeName.isEmpty()) { + LookAndFeelAccess access; KConfigGroup lnfCfg = KConfigGroup(KSharedConfig::openConfig( - lookAndFeelPackage().filePath("defaults")), + access.filePath("defaults")), "plasmarc" ); lnfCfg = KConfigGroup(&lnfCfg, themeGroupKey); @@ -1317,17 +1320,6 @@ void ShellCorona::desktopContainmentDestroyed(QObject *obj) } } -Plasma::Package ShellCorona::lookAndFeelPackage() const -{ - if (!d->lookNFeelPackage.isValid()) { - d->lookNFeelPackage = ShellPluginLoader::self()->loadPackage("Plasma/LookAndFeel"); - //TODO: make loading from config once we have some UI for setting the package - d->lookNFeelPackage.setPath("org.kde.lookandfeel"); - } - - return d->lookNFeelPackage; -} - KScreen::Config* ShellCorona::screensConfiguration() const { return d->screenConfiguration; diff --git a/shell/shellcorona.h b/shell/shellcorona.h index 2228b7632..6bdeaf020 100644 --- a/shell/shellcorona.h +++ b/shell/shellcorona.h @@ -71,8 +71,6 @@ public: KActivities::Controller *activityController(); - Plasma::Package lookAndFeelPackage() const; - //Those two are a bit of an hack but are just for desktop scripting Activity *activity(const QString &id); void insertActivity(const QString &id, Activity *activity); From 115c2af4f5c4f01e13aff2a271e0072e7bbfbfb0 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Mon, 18 Aug 2014 13:41:33 +0200 Subject: [PATCH 19/19] call the package org.kde.breeze.desktop --- lookandfeelaccess/lookandfeelaccess.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lookandfeelaccess/lookandfeelaccess.cpp b/lookandfeelaccess/lookandfeelaccess.cpp index a92567ade..2b438ecf1 100644 --- a/lookandfeelaccess/lookandfeelaccess.cpp +++ b/lookandfeelaccess/lookandfeelaccess.cpp @@ -75,7 +75,7 @@ LookAndFeelAccess::LookAndFeelAccess(QObject *parent) { ShellPluginLoader::init(); d->defaultPackage = Plasma::PluginLoader::self()->loadPackage("Plasma/LookAndFeel"); - d->defaultPackage.setPath("org.kde.lookandfeel"); + d->defaultPackage.setPath("org.kde.breeze.desktop"); d->config = KSharedConfig::openConfig("kdeglobals"); KConfigGroup cg(d->config, "KDE");