From 47566c27c3f735a20631d89f3179ddfd4036fc21 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Fri, 12 Jan 2018 20:11:20 +0200 Subject: [PATCH] add variable layoutsMemoryUsage for layoutManager --- app/layoutmanager.cpp | 10 ++++++++++ app/layoutmanager.h | 6 +++++- app/universalsettings.cpp | 18 ++++++++++++++++++ app/universalsettings.h | 10 +++++++++- liblattedock/dock.h | 6 ++++++ 5 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/layoutmanager.cpp b/app/layoutmanager.cpp index 25815bfaf..17d0a729f 100644 --- a/app/layoutmanager.cpp +++ b/app/layoutmanager.cpp @@ -194,6 +194,16 @@ QString LayoutManager::layoutPath(QString layoutName) return path; } +Dock::LayoutsMemoryUsage LayoutManager::memoryUsage() const +{ + return m_corona->universalSettings()->layoutsMemoryUsage(); +} + +void LayoutManager::setMemoryUsage(Dock::LayoutsMemoryUsage memoryUsage) +{ + m_corona->universalSettings()->setLayoutsMemoryUsage(memoryUsage); +} + void LayoutManager::addDock(Plasma::Containment *containment, bool forceLoading, int expDockScreen) { m_activeLayouts.at(0)->addDock(containment, forceLoading, expDockScreen); diff --git a/app/layoutmanager.h b/app/layoutmanager.h index 0b8eb9f17..885b1e9af 100644 --- a/app/layoutmanager.h +++ b/app/layoutmanager.h @@ -21,7 +21,6 @@ #ifndef LAYOUTMANAGER_H #define LAYOUTMANAGER_H -#include "dockcorona.h" #include "importer.h" #include "layout.h" #include "layoutconfigdialog.h" @@ -32,6 +31,7 @@ #include +class DockCorona; class Importer; class Layout; class LayoutConfigDialog; @@ -76,6 +76,9 @@ public: QStringList menuLayouts() const; QStringList presetsPaths() const; + Dock::LayoutsMemoryUsage memoryUsage() const; + void setMemoryUsage(Dock::LayoutsMemoryUsage memoryUsage); + QAction *addWidgetsAction(); QHash *currentDockViews() const; @@ -107,6 +110,7 @@ signals: void currentLayoutIsChanging(); void launchersSignalsChanged(); void layoutsChanged(); + void memoryUsageChanged(); void menuLayoutsChanged(); private slots: diff --git a/app/universalsettings.cpp b/app/universalsettings.cpp index f7840001b..d3672bebb 100644 --- a/app/universalsettings.cpp +++ b/app/universalsettings.cpp @@ -32,6 +32,7 @@ UniversalSettings::UniversalSettings(KSharedConfig::Ptr config, QObject *parent) connect(this, &UniversalSettings::currentLayoutNameChanged, this, &UniversalSettings::saveConfig); connect(this, &UniversalSettings::lastNonAssignedLayoutNameChanged, this, &UniversalSettings::saveConfig); connect(this, &UniversalSettings::launchersChanged, this, &UniversalSettings::saveConfig); + connect(this, &UniversalSettings::layoutsMemoryUsageChanged, this, &UniversalSettings::saveConfig); connect(this, &UniversalSettings::showInfoWindowChanged, this, &UniversalSettings::saveConfig); connect(this, &UniversalSettings::versionChanged, this, &UniversalSettings::saveConfig); } @@ -185,6 +186,21 @@ void UniversalSettings::setAutostart(bool state) } } +Dock::LayoutsMemoryUsage UniversalSettings::layoutsMemoryUsage() const +{ + return m_memoryUsage; +} + +void UniversalSettings::setLayoutsMemoryUsage(Dock::LayoutsMemoryUsage layoutsMemoryUsage) +{ + if (m_memoryUsage != layoutsMemoryUsage) { + return; + } + + m_memoryUsage = layoutsMemoryUsage; + emit layoutsMemoryUsageChanged(); +} + void UniversalSettings::loadConfig() { m_version = m_universalGroup.readEntry("version", 1); @@ -193,6 +209,7 @@ void UniversalSettings::loadConfig() m_layoutsWindowSize = m_universalGroup.readEntry("layoutsWindowSize", QSize(700, 450)); m_launchers = m_universalGroup.readEntry("launchers", QStringList()); m_showInfoWindow = m_universalGroup.readEntry("showInfoWindow", true); + m_memoryUsage = static_cast(m_universalGroup.readEntry("memoryUsage", (int)Dock::SingleLayout)); } void UniversalSettings::saveConfig() @@ -203,6 +220,7 @@ void UniversalSettings::saveConfig() m_universalGroup.writeEntry("layoutsWindowSize", m_layoutsWindowSize); m_universalGroup.writeEntry("launchers", m_launchers); m_universalGroup.writeEntry("showInfoWindow", m_showInfoWindow); + m_universalGroup.writeEntry("memoryUsage", (int)m_memoryUsage); m_universalGroup.sync(); } diff --git a/app/universalsettings.h b/app/universalsettings.h index 871e66a85..2d045e6be 100644 --- a/app/universalsettings.h +++ b/app/universalsettings.h @@ -26,10 +26,12 @@ #include #include -#include "layout.h" +#include "../liblattedock/dock.h" namespace Latte { +class LayoutManager; + //! This class holds all the settings that are universally available //! independent of layouts class UniversalSettings : public QObject { @@ -73,6 +75,7 @@ signals: void lastNonAssignedLayoutNameChanged(); void layoutsWindowSizeChanged(); void launchersChanged(); + void layoutsMemoryUsageChanged(); void showInfoWindowChanged(); void versionChanged(); @@ -83,6 +86,9 @@ private slots: private: void cleanupSettings(); + Dock::LayoutsMemoryUsage layoutsMemoryUsage() const; + void setLayoutsMemoryUsage(Dock::LayoutsMemoryUsage layoutsMemoryUsage); + private: bool m_showInfoWindow{true}; @@ -93,10 +99,12 @@ private: QString m_lastNonAssignedLayoutName; QSize m_layoutsWindowSize{700, 450}; QStringList m_launchers; + Dock::LayoutsMemoryUsage m_memoryUsage; KConfigGroup m_universalGroup; KSharedConfig::Ptr m_config; + friend class LayoutManager; }; } diff --git a/liblattedock/dock.h b/liblattedock/dock.h index aeafd4ad1..0e787541e 100644 --- a/liblattedock/dock.h +++ b/liblattedock/dock.h @@ -111,6 +111,12 @@ public: GlowAll = 1 }; Q_ENUM(GlowGroup) + + enum LayoutsMemoryUsage { + SingleLayout = 0, /* a single Layout is loaded in each time */ + MultipleLayouts /* multiple layouts are loaded on runtime,based on Activities and one central layout for the rest unassigned Activities */ + }; + Q_ENUM(LayoutsMemoryUsage) }; }//end of namespace