diff --git a/app/settings/settingsdialog.cpp b/app/settings/settingsdialog.cpp index 617fc13ad..4eb4f8fe2 100644 --- a/app/settings/settingsdialog.cpp +++ b/app/settings/settingsdialog.cpp @@ -461,6 +461,45 @@ void SettingsDialog::on_lockedButton_clicked() updateApplyButtonsState(); } +void SettingsDialog::on_sharedButton_clicked() +{ + qDebug() << Q_FUNC_INFO; + + int row = ui->layoutsView->currentIndex().row(); + + if (row < 0) { + return; + } + + if (isShared(row)) { + m_model->setData(m_model->index(row, SHAREDCOLUMN), QStringList(), Qt::UserRole); + } else { + bool assigned{false}; + QStringList assignedList; + + QStringList availableShares = availableSharesFor(row); + + for (const auto &id : availableShares) { + QString name = nameForId(id); + if (m_corona->layoutManager()->layout(name)) { + assignedList << id; + m_model->setData(m_model->index(row, SHAREDCOLUMN), assignedList, Qt::UserRole); + assigned = true; + break; + } + } + + if (!assigned && availableShares.count()>0) { + assignedList << availableShares[0]; + m_model->setData(m_model->index(row, SHAREDCOLUMN), assignedList, Qt::UserRole); + assigned = true; + } + } + + updatePerLayoutButtonsState(); + updateApplyButtonsState(); +} + void SettingsDialog::on_importButton_clicked() { qDebug() << Q_FUNC_INFO; diff --git a/app/settings/settingsdialog.h b/app/settings/settingsdialog.h index ca445228a..158148ba0 100644 --- a/app/settings/settingsdialog.h +++ b/app/settings/settingsdialog.h @@ -78,6 +78,7 @@ private slots: void on_lockedButton_clicked(); void on_pauseButton_clicked(); void on_removeButton_clicked(); + void on_sharedButton_clicked(); void on_switchButton_clicked(); void on_importButton_clicked(); void on_exportButton_clicked();