aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin
diff options
context:
space:
mode:
authorq5sys <jt@obs-sec.com>2017-07-20 20:25:26 -0400
committerq5sys <jt@obs-sec.com>2017-07-20 20:25:26 -0400
commit2b3a0f54b5bdedbdb29e697a7122f2ea9cb59af2 (patch)
tree1e6995cc37c7cd08d97d0eb4aadbe7960cba8d5e /src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin
parentclean up tab pages (diff)
downloadlumina-2b3a0f54b5bdedbdb29e697a7122f2ea9cb59af2.tar.gz
lumina-2b3a0f54b5bdedbdb29e697a7122f2ea9cb59af2.tar.bz2
lumina-2b3a0f54b5bdedbdb29e697a7122f2ea9cb59af2.zip
clean up lthemeengine-qtplugin pages
Diffstat (limited to 'src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin')
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp427
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h31
-rw-r--r--src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp34
3 files changed, 172 insertions, 320 deletions
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp
index 02f6a10f..dcede34c 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.cpp
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <QVariant>
#include <QSettings>
#include <QGuiApplication>
@@ -60,248 +32,199 @@ Q_LOGGING_CATEGORY(llthemeengine, "lthemeengine")
//QT_QPA_PLATFORMTHEME=lthemeengine
-lthemeenginePlatformTheme::lthemeenginePlatformTheme()
-{
- if(QGuiApplication::desktopSettingsAware())
- {
- readSettings();
- QMetaObject::invokeMethod(this, "applySettings", Qt::QueuedConnection);
+lthemeenginePlatformTheme::lthemeenginePlatformTheme(){
+ if(QGuiApplication::desktopSettingsAware()){
+ readSettings();
+ QMetaObject::invokeMethod(this, "applySettings", Qt::QueuedConnection);
#ifdef QT_WIDGETS_LIB
- QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection);
+ QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection);
#endif
- QGuiApplication::setFont(m_generalFont);
+ QGuiApplication::setFont(m_generalFont);
}
- qCDebug(llthemeengine) << "using lthemeengine plugin";
+ qCDebug(llthemeengine) << "using lthemeengine plugin";
#ifdef QT_WIDGETS_LIB
- if(!QStyleFactory::keys().contains("lthemeengine-style"))
- qCCritical(llthemeengine) << "unable to find lthemeengine proxy style";
+ if(!QStyleFactory::keys().contains("lthemeengine-style"))
+ qCCritical(llthemeengine) << "unable to find lthemeengine proxy style";
#endif
}
-lthemeenginePlatformTheme::~lthemeenginePlatformTheme()
-{
- if(m_customPalette)
- delete m_customPalette;
+lthemeenginePlatformTheme::~lthemeenginePlatformTheme(){
+ if(m_customPalette)
+ delete m_customPalette;
}
#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)) && !defined(QT_NO_DBUS)
-QPlatformMenuBar *lthemeenginePlatformTheme::createPlatformMenuBar() const
-{
- if(m_checkDBusGlobalMenu)
- {
- QDBusConnection conn = QDBusConnection::sessionBus();
- m_dbusGlobalMenuAvailable = conn.interface()->isServiceRegistered("com.canonical.AppMenu.Registrar");
- qCDebug(llthemeengine) << "D-Bus global menu:" << (m_dbusGlobalMenuAvailable ? "yes" : "no");
+QPlatformMenuBar *lthemeenginePlatformTheme::createPlatformMenuBar() const{
+ if(m_checkDBusGlobalMenu){
+ QDBusConnection conn = QDBusConnection::sessionBus();
+ m_dbusGlobalMenuAvailable = conn.interface()->isServiceRegistered("com.canonical.AppMenu.Registrar");
+ qCDebug(llthemeengine) << "D-Bus global menu:" << (m_dbusGlobalMenuAvailable ? "yes" : "no");
}
- return (m_dbusGlobalMenuAvailable ? new QDBusMenuBar() : nullptr);
+ return (m_dbusGlobalMenuAvailable ? new QDBusMenuBar() : nullptr);
}
#endif
#if !defined(QT_NO_DBUS) && !defined(QT_NO_SYSTEMTRAYICON)
-QPlatformSystemTrayIcon *lthemeenginePlatformTheme::createPlatformSystemTrayIcon() const
-{
- if(m_checkDBusTray)
- {
- QDBusMenuConnection conn;
- m_dbusTrayAvailable = conn.isStatusNotifierHostRegistered();
- m_checkDBusTray = false;
- qCDebug(llthemeengine) << "D-Bus system tray:" << (m_dbusTrayAvailable ? "yes" : "no");
+QPlatformSystemTrayIcon *lthemeenginePlatformTheme::createPlatformSystemTrayIcon() const{
+ if(m_checkDBusTray){
+ QDBusMenuConnection conn;
+ m_dbusTrayAvailable = conn.isStatusNotifierHostRegistered();
+ m_checkDBusTray = false;
+ qCDebug(llthemeengine) << "D-Bus system tray:" << (m_dbusTrayAvailable ? "yes" : "no");
}
- return (m_dbusTrayAvailable ? new QDBusTrayIcon() : nullptr);
+ return (m_dbusTrayAvailable ? new QDBusTrayIcon() : nullptr);
}
#endif
-const QPalette *lthemeenginePlatformTheme::palette(QPlatformTheme::Palette type) const
-{
- Q_UNUSED(type);
- return (m_usePalette ? m_customPalette : nullptr);
+const QPalette *lthemeenginePlatformTheme::palette(QPlatformTheme::Palette type) const{
+ Q_UNUSED(type);
+ return (m_usePalette ? m_customPalette : nullptr);
}
-const QFont *lthemeenginePlatformTheme::font(QPlatformTheme::Font type) const
-{
- if(type == QPlatformTheme::FixedFont)
- return &m_fixedFont;
- return &m_generalFont;
+const QFont *lthemeenginePlatformTheme::font(QPlatformTheme::Font type) const{
+ if(type == QPlatformTheme::FixedFont)
+ return &m_fixedFont;
+ return &m_generalFont;
}
-QVariant lthemeenginePlatformTheme::themeHint(QPlatformTheme::ThemeHint hint) const
-{
- switch (hint)
- {
- case QPlatformTheme::CursorFlashTime:
- return m_cursorFlashTime;
- case MouseDoubleClickInterval:
- return m_doubleClickInterval;
- case QPlatformTheme::ToolButtonStyle:
- return m_toolButtonStyle;
- case QPlatformTheme::SystemIconThemeName:
- return m_iconTheme;
- case QPlatformTheme::StyleNames:
- return QStringList() << "lthemeengine-style";
- case QPlatformTheme::IconThemeSearchPaths:
- return lthemeengine::iconPaths();
- case DialogButtonBoxLayout:
- return m_buttonBoxLayout;
- case QPlatformTheme::UiEffects:
- return m_uiEffects;
+QVariant lthemeenginePlatformTheme::themeHint(QPlatformTheme::ThemeHint hint) const{
+ switch (hint){
+ case QPlatformTheme::CursorFlashTime: return m_cursorFlashTime;
+ case MouseDoubleClickInterval: return m_doubleClickInterval;
+ case QPlatformTheme::ToolButtonStyle: return m_toolButtonStyle;
+ case QPlatformTheme::SystemIconThemeName: return m_iconTheme;
+ case QPlatformTheme::StyleNames: return QStringList() << "lthemeengine-style";
+ case QPlatformTheme::IconThemeSearchPaths: return lthemeengine::iconPaths();
+ case DialogButtonBoxLayout: return m_buttonBoxLayout;
+ case QPlatformTheme::UiEffects: return m_uiEffects;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
- case QPlatformTheme::WheelScrollLines:
- return m_wheelScrollLines;
+ case QPlatformTheme::WheelScrollLines: return m_wheelScrollLines;
#endif
- default:
- return QPlatformTheme::themeHint(hint);
+ default: return QPlatformTheme::themeHint(hint);
}
}
-void lthemeenginePlatformTheme::applySettings()
-{
- if(!QGuiApplication::desktopSettingsAware())
- return;
-
+void lthemeenginePlatformTheme::applySettings(){
+ if(!QGuiApplication::desktopSettingsAware())
+ return;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
- if(!m_update)
- {
- //do not override application palette
- if(QCoreApplication::testAttribute(Qt::AA_SetPalette))
- {
- m_usePalette = false;
- qCDebug(llthemeengine) << "palette support is disabled";
+ if(!m_update){
+ //do not override application palette
+ if(QCoreApplication::testAttribute(Qt::AA_SetPalette)){
+ m_usePalette = false;
+ qCDebug(llthemeengine) << "palette support is disabled";
}
- }
+ }
#endif
-
#ifdef QT_WIDGETS_LIB
- if(hasWidgets())
- {
- qApp->setFont(m_generalFont);
-
- //Qt 5.6 or higher should be use themeHint function on application startup.
- //So, there is no need to call this function first time.
+ if(hasWidgets()){
+ qApp->setFont(m_generalFont);
+ //Qt 5.6 or higher should be use themeHint function on application startup.
+ //So, there is no need to call this function first time.
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
- if(m_update)
- qApp->setWheelScrollLines(m_wheelScrollLines);
+ if(m_update)
+ qApp->setWheelScrollLines(m_wheelScrollLines);
#else
- qApp->setWheelScrollLines(m_wheelScrollLines);
+ qApp->setWheelScrollLines(m_wheelScrollLines);
#endif
-
- if(m_update && qApp->style()->objectName() == "lthemeengine-style") //ignore application style
- qApp->setStyle("lthemeengine-style"); //recreate style object
-
- if(m_update && m_usePalette)
- {
- if(m_customPalette)
- qApp->setPalette(*m_customPalette);
- else
- qApp->setPalette(qApp->style()->standardPalette());
- }
-
+ if(m_update && qApp->style()->objectName() == "lthemeengine-style") //ignore application style
+ qApp->setStyle("lthemeengine-style"); //recreate style object
+ if(m_update && m_usePalette){
+ if(m_customPalette)
+ qApp->setPalette(*m_customPalette);
+ else
+ qApp->setPalette(qApp->style()->standardPalette());
+ }
//do not override application style
if(m_prevStyleSheet == qApp->styleSheet())
- qApp->setStyleSheet(m_userStyleSheet);
+ qApp->setStyleSheet(m_userStyleSheet);
else
- qCDebug(llthemeengine) << "custom style sheet is disabled";
- m_prevStyleSheet = m_userStyleSheet;
+ qCDebug(llthemeengine) << "custom style sheet is disabled";
+ m_prevStyleSheet = m_userStyleSheet;
}
#endif
- QGuiApplication::setFont(m_generalFont); //apply font
- QIcon::setThemeName(m_iconTheme); //apply icons
- if(m_customPalette && m_usePalette)
- QGuiApplication::setPalette(*m_customPalette); //apply palette
-
+ QGuiApplication::setFont(m_generalFont); //apply font
+ QIcon::setThemeName(m_iconTheme); //apply icons
+ if(m_customPalette && m_usePalette)
+ QGuiApplication::setPalette(*m_customPalette); //apply palette
#ifdef QT_WIDGETS_LIB
- if(hasWidgets())
- {
- foreach (QWidget *w, qApp->allWidgets())
- {
- QEvent e(QEvent::ThemeChange);
- QApplication::sendEvent(w, &e);
- }
+ if(hasWidgets()){
+ foreach (QWidget *w, qApp->allWidgets()){
+ QEvent e(QEvent::ThemeChange);
+ QApplication::sendEvent(w, &e);
+ }
}
#endif
-
- if(!m_update)
- m_update = true;
+ if(!m_update)
+ m_update = true;
}
-
#ifdef QT_WIDGETS_LIB
-void lthemeenginePlatformTheme::createFSWatcher()
-{
- QFileSystemWatcher *watcher = new QFileSystemWatcher(this);
- watcher->addPath(lthemeengine::configPath());
- QTimer *timer = new QTimer(this);
- timer->setSingleShot(true);
- timer->setInterval(3000);
- connect(watcher, SIGNAL(directoryChanged(QString)), timer, SLOT(start()));
- connect(timer, SIGNAL(timeout()), SLOT(updateSettings()));
+void lthemeenginePlatformTheme::createFSWatcher(){
+ QFileSystemWatcher *watcher = new QFileSystemWatcher(this);
+ watcher->addPath(lthemeengine::configPath());
+ QTimer *timer = new QTimer(this);
+ timer->setSingleShot(true);
+ timer->setInterval(3000);
+ connect(watcher, SIGNAL(directoryChanged(QString)), timer, SLOT(start()));
+ connect(timer, SIGNAL(timeout()), SLOT(updateSettings()));
}
-void lthemeenginePlatformTheme::updateSettings()
-{
- qCDebug(llthemeengine) << "updating settings..";
- readSettings();
- applySettings();
+void lthemeenginePlatformTheme::updateSettings(){
+ qCDebug(llthemeengine) << "updating settings..";
+ readSettings();
+ applySettings();
}
#endif
-void lthemeenginePlatformTheme::readSettings()
-{
- if(m_customPalette)
- {
- delete m_customPalette;
- m_customPalette = 0;
+void lthemeenginePlatformTheme::readSettings(){
+ if(m_customPalette){
+ delete m_customPalette;
+ m_customPalette = 0;
}
-
- QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
-
- settings.beginGroup("Appearance");
- m_style = settings.value("style", "Fusion").toString();
- if(settings.value("custom_palette", false).toBool())
- {
- QString schemePath = settings.value("color_scheme_path").toString();
- m_customPalette = new QPalette(loadColorScheme(schemePath));
+ QSettings settings(lthemeengine::configFile(), QSettings::IniFormat);
+ settings.beginGroup("Appearance");
+ m_style = settings.value("style", "Fusion").toString();
+ if(settings.value("custom_palette", false).toBool()){
+ QString schemePath = settings.value("color_scheme_path").toString();
+ m_customPalette = new QPalette(loadColorScheme(schemePath));
}
- m_iconTheme = settings.value("icon_theme").toString();
- settings.endGroup();
-
- settings.beginGroup("Fonts");
- m_generalFont = settings.value("general", QPlatformTheme::font(QPlatformTheme::SystemFont)).value<QFont>();
- m_fixedFont = settings.value("fixed", QPlatformTheme::font(QPlatformTheme::FixedFont)).value<QFont>();
- settings.endGroup();
-
- settings.beginGroup("Interface");
- m_doubleClickInterval = QPlatformTheme::themeHint(QPlatformTheme::MouseDoubleClickInterval).toInt();
- m_doubleClickInterval = settings.value("double_click_interval", m_doubleClickInterval).toInt();
- m_cursorFlashTime = QPlatformTheme::themeHint(QPlatformTheme::CursorFlashTime).toInt();
- m_cursorFlashTime = settings.value("cursor_flash_time", m_cursorFlashTime).toInt();
- m_buttonBoxLayout = QPlatformTheme::themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
- m_buttonBoxLayout = settings.value("buttonbox_layout", m_buttonBoxLayout).toInt();
- QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, !settings.value("menus_have_icons", true).toBool());
- m_toolButtonStyle = settings.value("toolbutton_style", Qt::ToolButtonFollowStyle).toInt();
- m_wheelScrollLines = settings.value("wheel_scroll_lines", 3).toInt();
-
- //load effects
- m_uiEffects = QPlatformTheme::themeHint(QPlatformTheme::UiEffects).toInt();
- if(settings.childKeys().contains("gui_effects"))
- {
- QStringList effectList = settings.value("gui_effects").toStringList();
- m_uiEffects = 0;
- if(effectList.contains("General"))
- m_uiEffects |= QPlatformTheme::GeneralUiEffect;
+ m_iconTheme = settings.value("icon_theme").toString();
+ settings.endGroup();
+ settings.beginGroup("Fonts");
+ m_generalFont = settings.value("general", QPlatformTheme::font(QPlatformTheme::SystemFont)).value<QFont>();
+ m_fixedFont = settings.value("fixed", QPlatformTheme::font(QPlatformTheme::FixedFont)).value<QFont>();
+ settings.endGroup();
+ settings.beginGroup("Interface");
+ m_doubleClickInterval = QPlatformTheme::themeHint(QPlatformTheme::MouseDoubleClickInterval).toInt();
+ m_doubleClickInterval = settings.value("double_click_interval", m_doubleClickInterval).toInt();
+ m_cursorFlashTime = QPlatformTheme::themeHint(QPlatformTheme::CursorFlashTime).toInt();
+ m_cursorFlashTime = settings.value("cursor_flash_time", m_cursorFlashTime).toInt();
+ m_buttonBoxLayout = QPlatformTheme::themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
+ m_buttonBoxLayout = settings.value("buttonbox_layout", m_buttonBoxLayout).toInt();
+ QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, !settings.value("menus_have_icons", true).toBool());
+ m_toolButtonStyle = settings.value("toolbutton_style", Qt::ToolButtonFollowStyle).toInt();
+ m_wheelScrollLines = settings.value("wheel_scroll_lines", 3).toInt();
+ //load effects
+ m_uiEffects = QPlatformTheme::themeHint(QPlatformTheme::UiEffects).toInt();
+ if(settings.childKeys().contains("gui_effects")){
+ QStringList effectList = settings.value("gui_effects").toStringList();
+ m_uiEffects = 0;
+ if(effectList.contains("General"))
+ m_uiEffects |= QPlatformTheme::GeneralUiEffect;
if(effectList.contains("AnimateMenu"))
- m_uiEffects |= QPlatformTheme::AnimateMenuUiEffect;
- if(effectList.contains("FadeMenu"))
+ m_uiEffects |= QPlatformTheme::AnimateMenuUiEffect;
+ if(effectList.contains("FadeMenu"))
m_uiEffects |= QPlatformTheme::FadeMenuUiEffect;
- if(effectList.contains("AnimateCombo"))
- m_uiEffects |= QPlatformTheme::AnimateComboUiEffect;
- if(effectList.contains("AnimateTooltip"))
- m_uiEffects |= QPlatformTheme::AnimateTooltipUiEffect;
- if(effectList.contains("FadeTooltip"))
- m_uiEffects |= QPlatformTheme::FadeTooltipUiEffect;
- if(effectList.contains("AnimateToolBox"))
- m_uiEffects |= QPlatformTheme::AnimateToolBoxUiEffect;
- }
-
+ if(effectList.contains("AnimateCombo"))
+ m_uiEffects |= QPlatformTheme::AnimateComboUiEffect;
+ if(effectList.contains("AnimateTooltip"))
+ m_uiEffects |= QPlatformTheme::AnimateTooltipUiEffect;
+ if(effectList.contains("FadeTooltip"))
+ m_uiEffects |= QPlatformTheme::FadeTooltipUiEffect;
+ if(effectList.contains("AnimateToolBox"))
+ m_uiEffects |= QPlatformTheme::AnimateToolBoxUiEffect;
+ }
//load style sheets
#ifdef QT_WIDGETS_LIB
QStringList qssPaths = settings.value("stylesheets").toStringList();
@@ -311,56 +234,44 @@ void lthemeenginePlatformTheme::readSettings()
}
#ifdef QT_WIDGETS_LIB
-bool lthemeenginePlatformTheme::hasWidgets()
-{
- return qobject_cast<QApplication *> (qApp) != nullptr;
+bool lthemeenginePlatformTheme::hasWidgets(){
+ return qobject_cast<QApplication *> (qApp) != nullptr;
}
#endif
-QString lthemeenginePlatformTheme::loadStyleSheets(const QStringList &paths)
-{
- QString content;
- foreach (QString path, paths)
- {
- if(!QFile::exists(path))
- continue;
-
- QFile file(path);
- file.open(QIODevice::ReadOnly);
- content.append(file.readAll());
+QString lthemeenginePlatformTheme::loadStyleSheets(const QStringList &paths){
+ QString content;
+ foreach (QString path, paths){
+ if(!QFile::exists(path))
+ continue;
+ QFile file(path);
+ file.open(QIODevice::ReadOnly);
+ content.append(file.readAll());
}
- QRegExp regExp("//.*(\\n|$)");
- regExp.setMinimal(true);
- content.remove(regExp);
- return content;
+ QRegExp regExp("//.*(\\n|$)");
+ regExp.setMinimal(true);
+ content.remove(regExp);
+ return content;
}
-QPalette lthemeenginePlatformTheme::loadColorScheme(const QString &filePath)
-{
- QPalette customPalette;
- QSettings settings(filePath, QSettings::IniFormat);
- settings.beginGroup("ColorScheme");
- QStringList activeColors = settings.value("active_colors").toStringList();
- QStringList inactiveColors = settings.value("inactive_colors").toStringList();
- QStringList disabledColors = settings.value("disabled_colors").toStringList();
- settings.endGroup();
-
- if(activeColors.count() == QPalette::NColorRoles &&
- inactiveColors.count() == QPalette::NColorRoles &&
- disabledColors.count() == QPalette::NColorRoles)
- {
- for (int i = 0; i < QPalette::NColorRoles; i++)
- {
- QPalette::ColorRole role = QPalette::ColorRole(i);
- customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i)));
- customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i)));
- customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i)));
+QPalette lthemeenginePlatformTheme::loadColorScheme(const QString &filePath){
+ QPalette customPalette;
+ QSettings settings(filePath, QSettings::IniFormat);
+ settings.beginGroup("ColorScheme");
+ QStringList activeColors = settings.value("active_colors").toStringList();
+ QStringList inactiveColors = settings.value("inactive_colors").toStringList();
+ QStringList disabledColors = settings.value("disabled_colors").toStringList();
+ settings.endGroup();
+ if(activeColors.count() == QPalette::NColorRoles && inactiveColors.count() == QPalette::NColorRoles && disabledColors.count() == QPalette::NColorRoles){
+ for (int i = 0; i < QPalette::NColorRoles; i++){
+ QPalette::ColorRole role = QPalette::ColorRole(i);
+ customPalette.setColor(QPalette::Active, role, QColor(activeColors.at(i)));
+ customPalette.setColor(QPalette::Inactive, role, QColor(inactiveColors.at(i)));
+ customPalette.setColor(QPalette::Disabled, role, QColor(disabledColors.at(i)));
}
}
- else
- {
- customPalette = *QPlatformTheme::palette(SystemPalette); //load fallback palette
+ else{
+ customPalette = *QPlatformTheme::palette(SystemPalette); //load fallback palette
}
-
- return customPalette;
+ return customPalette;
}
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h
index 3996b451..5313b73e 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengineplatformtheme.h
@@ -1,31 +1,3 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#ifndef LTHEMEENGINEPLATFORMTHEME_H
#define LTHEMEENGINEPLATFORMTHEME_H
@@ -50,8 +22,7 @@ class QPlatformSystemTrayIcon;
class QPlatformMenuBar;
#endif
-class lthemeenginePlatformTheme : public QObject, public QPlatformTheme
-{
+class lthemeenginePlatformTheme : public QObject, public QPlatformTheme{
Q_OBJECT
public:
lthemeenginePlatformTheme();
diff --git a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp
index 37798f70..12e4a581 100644
--- a/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp
+++ b/src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/main.cpp
@@ -1,46 +1,16 @@
-/*
- * Copyright (c) 2014-2017, Ilya Kotov <forkotov02@hotmail.ru>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
#include <qpa/qplatformthemeplugin.h>
#include "lthemeengineplatformtheme.h"
QT_BEGIN_NAMESPACE
-class lthemeenginePlatformThemePlugin: public QPlatformThemePlugin
-{
+class lthemeenginePlatformThemePlugin: public QPlatformThemePlugin{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1" FILE "lthemeengine.json")
public:
QPlatformTheme *create(const QString &key, const QStringList &params);
};
-QPlatformTheme *lthemeenginePlatformThemePlugin::create(const QString &key, const QStringList &params)
-{
+QPlatformTheme *lthemeenginePlatformThemePlugin::create(const QString &key, const QStringList &params){
Q_UNUSED(params);
if (key.toLower() == "lthemeengine")
return new lthemeenginePlatformTheme();
bgstack15