From b6352c587d724ece6d0adaf1a97f661419628e18 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Thu, 20 Jul 2017 18:02:58 +0300 Subject: [PATCH] update menu layouts from the layouts window --- app/layoutconfigdialog.cpp | 8 ++++++++ app/layoutmanager.cpp | 10 ++++++++++ app/layoutmanager.h | 3 +++ 3 files changed, 21 insertions(+) diff --git a/app/layoutconfigdialog.cpp b/app/layoutconfigdialog.cpp index f4c92c4e3..ab006d577 100644 --- a/app/layoutconfigdialog.cpp +++ b/app/layoutconfigdialog.cpp @@ -335,6 +335,8 @@ bool LayoutConfigDialog::saveAllChanges() QStringList knownActivities = activities(); + QStringList menuLayouts; + for (int i = 0; i < m_model->rowCount(); ++i) { QString id = m_model->data(m_model->index(i, 0), Qt::DisplayRole).toString(); QString color = m_model->data(m_model->index(i, 1), Qt::BackgroundRole).toString(); @@ -366,8 +368,14 @@ bool LayoutConfigDialog::saveAllChanges() if (layout->activities() != cleanedActivities) { layout->setActivities(cleanedActivities); } + + //! publish the layouts for the menus + if (menu) { + menuLayouts.append(name); + } } + m_manager->setMenuLayouts(menuLayouts); return true; } diff --git a/app/layoutmanager.cpp b/app/layoutmanager.cpp index 650db61f1..c1c449407 100644 --- a/app/layoutmanager.cpp +++ b/app/layoutmanager.cpp @@ -128,6 +128,16 @@ QStringList LayoutManager::menuLayouts() const return m_menuLayouts; } +void LayoutManager::setMenuLayouts(QStringList layouts) +{ + if (m_menuLayouts == layouts) { + return; + } + + m_menuLayouts = layouts; + emit menuLayoutsChanged(); +} + QStringList LayoutManager::activities() { return m_corona->m_activityConsumer->activities(); diff --git a/app/layoutmanager.h b/app/layoutmanager.h index ba9a8cff7..5cf0cb2c5 100644 --- a/app/layoutmanager.h +++ b/app/layoutmanager.h @@ -93,6 +93,7 @@ private slots: void showWidgetsExplorer(); private: + void setMenuLayouts(QStringList layouts); QString layoutPath(QString layoutName); void loadLayouts(); @@ -114,6 +115,8 @@ private: QAction *m_toggleLayoutAction{nullptr}; QPointer m_layoutConfigDialog; + + friend class LayoutConfigDialog; }; }