support renaming of active layout

pull/1/head
Michail Vourlakos 8 years ago
parent db7da1221a
commit 9195dafbc9

@ -102,6 +102,7 @@ public slots:
void loadDefaultLayout() override; void loadDefaultLayout() override;
void dockContainmentDestroyed(QObject *cont); void dockContainmentDestroyed(QObject *cont);
void updateDockItemBadge(QString identifier, QString value); void updateDockItemBadge(QString identifier, QString value);
void unload();
signals: signals:
void configurationShown(PlasmaQuick::ConfigView *configView); void configurationShown(PlasmaQuick::ConfigView *configView);
@ -126,7 +127,6 @@ private:
void cleanConfig(); void cleanConfig();
void qmlRegisterTypes() const; void qmlRegisterTypes() const;
void setupWaylandIntegration(); void setupWaylandIntegration();
void unload();
bool appletExists(uint containmentId, uint appletId) const; bool appletExists(uint containmentId, uint appletId) const;
bool containmentContainsTasks(Plasma::Containment *cont); bool containmentContainsTasks(Plasma::Containment *cont);

@ -344,6 +344,8 @@ bool LayoutConfigDialog::saveAllChanges()
QStringList toRenamePaths; QStringList toRenamePaths;
QStringList toRenameNames; QStringList toRenameNames;
QString switchToLayout;
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QString id = m_model->data(m_model->index(i, 0), Qt::DisplayRole).toString(); 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(); QString color = m_model->data(m_model->index(i, 1), Qt::BackgroundRole).toString();
@ -376,9 +378,15 @@ bool LayoutConfigDialog::saveAllChanges()
layout->setActivities(cleanedActivities); layout->setActivities(cleanedActivities);
} }
if (layout->name() != name && layout->name() != m_manager->currentLayoutName()) { if (layout->name() != name) {
QString tempFile = layoutTempDir.filePath(QString(layout->name() + ".layout.latte")); QString tempFile = layoutTempDir.filePath(QString(layout->name() + ".layout.latte"));
qDebug() << "new temp file ::: " << tempFile; qDebug() << "new temp file ::: " << tempFile;
if (layout->name() == m_manager->currentLayoutName()) {
switchToLayout = name;
m_manager->corona()->unload();
}
layout = m_layouts.take(id); layout = m_layouts.take(id);
delete layout; delete layout;
@ -411,6 +419,10 @@ bool LayoutConfigDialog::saveAllChanges()
m_manager->loadLayouts(); m_manager->loadLayouts();
if (!switchToLayout.isNull()) {
m_manager->switchToLayout(switchToLayout);
}
return true; return true;
} }

Loading…
Cancel
Save