simplify code for switch button-single layout

pull/11/head
Michail Vourlakos 5 years ago
parent 0724124f63
commit 748ca87bb8

@ -72,6 +72,11 @@ Synchronizer::~Synchronizer()
m_activitiesController->deleteLater(); m_activitiesController->deleteLater();
} }
KActivities::Controller *Synchronizer::activitiesController() const
{
return m_activitiesController;
}
bool Synchronizer::latteViewExists(Latte::View *view) const bool Synchronizer::latteViewExists(Latte::View *view) const
{ {
for (const auto layout : m_centralLayouts) { for (const auto layout : m_centralLayouts) {

@ -111,6 +111,8 @@ public:
SharedLayout *sharedLayout(QString id) const; SharedLayout *sharedLayout(QString id) const;
Layout::GenericLayout *layout(QString id) const; Layout::GenericLayout *layout(QString id) const;
KActivities::Controller *activitiesController() const;
signals: signals:
void centralLayoutsChanged(); void centralLayoutsChanged();
void currentLayoutNameChanged(); void currentLayoutNameChanged();

@ -654,12 +654,30 @@ void SettingsDialog::on_switchButton_clicked()
if (!m_layoutsController->selectedLayoutIsCurrentActive()) { if (!m_layoutsController->selectedLayoutIsCurrentActive()) {
bool appliedShared = m_layoutsController->inMultipleMode() && selectedLayout.isShared(); bool appliedShared = m_layoutsController->inMultipleMode() && selectedLayout.isShared();
bool freeActivitiesLayoutUpdated{false};
if (!appliedShared && selectedLayout.activities.isEmpty()) { if (!appliedShared && selectedLayout.activities.isEmpty()) {
m_layoutsController->setLayoutNameForFreeActivities(selectedLayout.currentName(), true); m_layoutsController->setLayoutNameForFreeActivities(selectedLayout.currentName(), true);
freeActivitiesLayoutUpdated = true;
} }
m_corona->layoutsManager()->switchToLayout(selectedLayout.originalName()); if (m_layoutsController->inMultipleMode()) {
m_corona->layoutsManager()->switchToLayout(selectedLayout.originalName());
} else {
if (freeActivitiesLayoutUpdated) {
m_corona->layoutsManager()->switchToLayout(selectedLayout.originalName());
} else {
CentralLayout singleLayout(this, selectedLayout.id);
QString switchToActivity = selectedLayout.isForFreeActivities() ? singleLayout.lastUsedActivity() : selectedLayout.activities[0];
if (!m_corona->activitiesConsumer()->runningActivities().contains(switchToActivity)) {
m_corona->layoutsManager()->synchronizer()->activitiesController()->startActivity(switchToActivity);
}
m_corona->layoutsManager()->synchronizer()->activitiesController()->setCurrentActivity(switchToActivity);
}
}
} }
updatePerLayoutButtonsState(); updatePerLayoutButtonsState();

Loading…
Cancel
Save