diff --git a/app/dockcorona.cpp b/app/dockcorona.cpp index 8a4f3bc52..bb22534dd 100644 --- a/app/dockcorona.cpp +++ b/app/dockcorona.cpp @@ -137,14 +137,16 @@ DockCorona::~DockCorona() const auto homeLatterc = QDir::homePath() + "/.config/lattedockrc"; const auto homeAppletsrc = QDir::homePath() + "/.config/lattedock-appletsrc"; - QFile::copy(latterc.fileName() , homeLatterc); - QFile::copy(appletsrc.fileName() , homeAppletsrc); + if (QFile::remove(homeLatterc) && QFile::remove(homeAppletsrc)){ + QFile::copy(latterc.fileName() , homeLatterc); + QFile::copy(appletsrc.fileName() , homeAppletsrc); + } QDir tempLayoutDir(m_layoutDir); if (tempLayoutDir.exists() && m_layoutDir.startsWith("/tmp")) { - qDebug()<< "old layout directory should be deleted..."; - //tempLayoutDir.removeRecursively(); + qDebug()<< "old layout directory should be deleted... - " << tempLayoutDir.absolutePath(); + tempLayoutDir.removeRecursively(); } } } @@ -203,15 +205,17 @@ bool DockCorona::reloadLayout(QString path) qDebug() << "reloadLayout: loading new layout - " << appletsrc.fileName(); + m_screenPool->reload(m_layoutDir); loadLayout(appletsrc.fileName()); + m_globalSettings->reload(); foreach (auto containment, containments()) addDock(containment); if (oldLayoutDir.exists() && oldLayoutDir.absolutePath().startsWith("/tmp") && oldLayoutDir.absolutePath() != path) { - qDebug()<< "old layout directory should be deleted..."; - // oldLayoutDir.removeRecursively(); + qDebug()<< "old layout directory should be deleted... - "<< oldLayoutDir.absolutePath(); + oldLayoutDir.removeRecursively(); } return true; diff --git a/app/globalsettings.cpp b/app/globalsettings.cpp index 07eaa67e7..d64f85581 100644 --- a/app/globalsettings.cpp +++ b/app/globalsettings.cpp @@ -66,6 +66,12 @@ void GlobalSettings::init() initExtConfiguration(); } +void GlobalSettings::reload() +{ + m_configGroup = m_corona->config()->group("General"); + load(false); +} + void GlobalSettings::initExtConfiguration() { KSharedConfigPtr extConfig = KSharedConfig::openConfig(QDir::homePath() + "/.config/lattedockextrc"); @@ -208,7 +214,7 @@ void GlobalSettings::setCurrentSession(Dock::SessionType session) } //!BEGIN configuration functions -void GlobalSettings::load() +void GlobalSettings::load(bool all) { m_exposeAltSession = m_configGroup.readEntry("exposeAltSession", false); @@ -219,7 +225,9 @@ void GlobalSettings::load() emit exposeAltSessionChanged(); - loadExtConfiguration(); + if (all) { + loadExtConfiguration(); + } } void GlobalSettings::loadLaunchers() diff --git a/app/globalsettings.h b/app/globalsettings.h index 192b1ed2e..da1c5916b 100644 --- a/app/globalsettings.h +++ b/app/globalsettings.h @@ -51,7 +51,8 @@ public: GlobalSettings(QObject *parent = nullptr); ~GlobalSettings() override; - void load(); + void load(bool all=true); + void reload(); bool autostart() const; void setAutostart(bool state); diff --git a/app/screenpool.cpp b/app/screenpool.cpp index db5df1673..214fbe614 100644 --- a/app/screenpool.cpp +++ b/app/screenpool.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -93,6 +94,22 @@ ScreenPool::~ScreenPool() m_configGroup.sync(); } + +void ScreenPool::reload(QString path) +{ + QFile rcfile(QString(path + "/lattedockrc")); + + if (rcfile.exists()){ + qDebug() << "load screen connectors from ::: " << rcfile.fileName(); + KSharedConfigPtr newFile = KSharedConfig::openConfig(rcfile.fileName()); + m_configGroup = KConfigGroup(newFile, QStringLiteral("ScreenConnectors")); + load(); + } + + + +} + QString ScreenPool::primaryConnector() const { return m_primaryConnector; diff --git a/app/screenpool.h b/app/screenpool.h index a67e5c80c..981a53f63 100644 --- a/app/screenpool.h +++ b/app/screenpool.h @@ -42,6 +42,7 @@ public: void setPrimaryConnector(const QString &primary); void insertScreenMapping(int id, const QString &connector); + void reload(QString path); int id(const QString &connector) const;