Marco Martin has uploaded a new change for review. https://gerrit.vesnicky.cesnet.cz/r/346
Change subject: restore hint-apply-color-scheme support ...................................................................... restore hint-apply-color-scheme support make hint-apply-color-scheme work (kiconeffect based coloring), and make sure the kcolorschemes are reloaded when app palette changes and the theme follows system colors BUG:343389 Change-Id: I0a7a7eb0f89ed0948e618f1d608521f235aa1959 --- M src/plasma/CMakeLists.txt M src/plasma/svg.cpp 2 files changed, 24 insertions(+), 1 deletion(-) git pull ssh://gerrit.vesnicky.cesnet.cz:29418/plasma-framework refs/changes/46/346/1 diff --git a/src/plasma/CMakeLists.txt b/src/plasma/CMakeLists.txt index 160d09b..1cc9ae3 100644 --- a/src/plasma/CMakeLists.txt +++ b/src/plasma/CMakeLists.txt @@ -125,6 +125,7 @@ KF5::XmlGui #KActionCollection KF5::GlobalAccel #Applet::setGlobalShortcut KF5::Notifications + KF5::IconThemes ${PLASMA_EXTRA_LIBS} ) diff --git a/src/plasma/svg.cpp b/src/plasma/svg.cpp index 3e609a5..28393e5 100644 --- a/src/plasma/svg.cpp +++ b/src/plasma/svg.cpp @@ -35,6 +35,7 @@ #include <kconfiggroup.h> #include <QDebug> #include <kfilterdev.h> +#include <kiconeffect.h> #include "applet.h" #include "package.h" @@ -382,6 +383,13 @@ renderPainter.end(); + // Apply current color scheme if the svg asks for it + if (applyColors) { + QImage itmp = p.toImage(); + KIconEffect::colorize(itmp, cacheAndColorsTheme()->color(Theme::BackgroundColor), 1.0); + p = p.fromImage(itmp); + } + if (cacheRendering) { cacheAndColorsTheme()->insertIntoCache(id, p, QString::number((qint64)q, 16) % QLSEP % actualElementId); } @@ -550,7 +558,10 @@ void SvgPrivate::checkColorHints() { - if (elementRect("current-color-scheme").isValid()) { + if (elementRect("hint-apply-color-scheme").isValid()) { + applyColors = true; + usesColors = true; + } else if (elementRect("current-color-scheme").isValid()) { applyColors = false; usesColors = true; } else { @@ -658,6 +669,17 @@ eraseRenderer(); //qDebug() << "repaint needed from colorsChanged"; + + // in the case the theme follows the desktop settings, refetch the colorschemes + // and discard the svg pixmap cache + if (!theme.data()->d->colors) { + KSharedConfig::openConfig()->reparseConfiguration(); + theme.data()->d->colorScheme = KColorScheme(QPalette::Active, KColorScheme::Window); + theme.data()->d->buttonColorScheme = KColorScheme(QPalette::Active, KColorScheme::Button); + theme.data()->d->viewColorScheme = KColorScheme(QPalette::Active, KColorScheme::View); + theme.data()->d->discardCache(PixmapCache | SvgElementsCache); + } + emit q->repaintNeeded(); } -- To view, visit https://gerrit.vesnicky.cesnet.cz/r/346 To unsubscribe, visit https://gerrit.vesnicky.cesnet.cz/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0a7a7eb0f89ed0948e618f1d608521f235aa1959 Gerrit-PatchSet: 1 Gerrit-Project: plasma-framework Gerrit-Branch: master Gerrit-Owner: Marco Martin <notm...@gmail.com> _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel