diff --git a/app/settings/controllers/layoutscontroller.cpp b/app/settings/controllers/layoutscontroller.cpp
index 93e4f11b2..110bce365 100644
--- a/app/settings/controllers/layoutscontroller.cpp
+++ b/app/settings/controllers/layoutscontroller.cpp
@@ -358,6 +358,11 @@ void Layouts::selectRow(int index)
m_view->selectRow(index);
}
+void Layouts::setLayoutProperties(const Data::Layout &layout)
+{
+ m_model->setLayoutProperties(layout);
+}
+
QString Layouts::layoutNameForFreeActivities() const
{
return m_model->layoutNameForFreeActivities();
diff --git a/app/settings/controllers/layoutscontroller.h b/app/settings/controllers/layoutscontroller.h
index 22e90b0ea..efb56791a 100644
--- a/app/settings/controllers/layoutscontroller.h
+++ b/app/settings/controllers/layoutscontroller.h
@@ -73,6 +73,7 @@ public:
const Data::Layout selectedLayoutOriginalData() const;
void selectRow(int index);
+ void setLayoutProperties(const Data::Layout &layout);
//! actions
void reset();
diff --git a/app/settings/dialogs/detailsdialog.cpp b/app/settings/dialogs/detailsdialog.cpp
index 1cf885dd1..91a1c0edb 100644
--- a/app/settings/dialogs/detailsdialog.cpp
+++ b/app/settings/dialogs/detailsdialog.cpp
@@ -40,6 +40,12 @@ DetailsDialog::DetailsDialog(SettingsDialog *parent, Controller::Layouts *contro
m_ui->setupUi(this);
//! we must create handlers after creating/adjusting the ui
m_handler = new Handler::DetailsHandler(this);
+
+ connect(m_ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked,
+ this, &DetailsDialog::on_apply);
+
+ connect(m_ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked,
+ this, &DetailsDialog::on_reset);
}
DetailsDialog::~DetailsDialog()
@@ -56,6 +62,23 @@ Ui::DetailsDialog *DetailsDialog::ui() const
return m_ui;
}
+void DetailsDialog::accept()
+{
+ qDebug() << Q_FUNC_INFO;
+}
+
+void DetailsDialog::on_apply()
+{
+ qDebug() << Q_FUNC_INFO;
+ m_layoutsController->setLayoutProperties(m_handler->currentData());
+}
+
+void DetailsDialog::on_reset()
+{
+ qDebug() << Q_FUNC_INFO;
+ m_handler->reset();
+}
+
}
}
}
diff --git a/app/settings/dialogs/detailsdialog.h b/app/settings/dialogs/detailsdialog.h
index 08916bf0a..8b3df89d8 100644
--- a/app/settings/dialogs/detailsdialog.h
+++ b/app/settings/dialogs/detailsdialog.h
@@ -59,6 +59,12 @@ public:
Ui::DetailsDialog *ui() const;
Controller::Layouts *layoutsController() const;
+private slots:
+ void accept() override;
+
+ void on_apply();
+ void on_reset();
+
private:
SettingsDialog *m_parentDlg{nullptr};
Ui::DetailsDialog *m_ui;
diff --git a/app/settings/dialogs/detailsdialog.ui b/app/settings/dialogs/detailsdialog.ui
index 118856f9a..5c75de2a2 100644
--- a/app/settings/dialogs/detailsdialog.ui
+++ b/app/settings/dialogs/detailsdialog.ui
@@ -11,7 +11,7 @@
- Dialog
+ Details
-
@@ -68,7 +68,7 @@
- 160
+ 220
60
@@ -317,7 +317,7 @@
- 160
+ 220
60
@@ -374,7 +374,7 @@
-
-
+
Qt::Horizontal
@@ -396,7 +396,7 @@
- mainButtonBox
+ buttonBox
accepted()
DetailsDialog
accept()
@@ -412,7 +412,7 @@
- mainButtonBox
+ buttonBox
rejected()
DetailsDialog
reject()
diff --git a/app/settings/dialogs/settingsdialog.cpp b/app/settings/dialogs/settingsdialog.cpp
index 7dcf83057..521fa877e 100644
--- a/app/settings/dialogs/settingsdialog.cpp
+++ b/app/settings/dialogs/settingsdialog.cpp
@@ -50,10 +50,6 @@
#include
-#define TWINENABLED "Enabled"
-#define TWINVISIBLE "Visible"
-#define TWINCHECKED "Checked"
-
namespace Latte {
namespace Settings {
namespace Dialog {
@@ -74,12 +70,12 @@ SettingsDialog::SettingsDialog(QWidget *parent, Latte::Corona *corona)
loadConfig();
- connect(m_ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked
- , this, &SettingsDialog::apply);
- connect(m_ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked
- , this, &SettingsDialog::reset);
- connect(m_ui->buttonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked
- , this, &SettingsDialog::restoreDefaults);
+ connect(m_ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked,
+ this, &SettingsDialog::apply);
+ connect(m_ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked,
+ this, &SettingsDialog::reset);
+ connect(m_ui->buttonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked,
+ this, &SettingsDialog::restoreDefaults);
//! Global Menu
initGlobalMenu();
diff --git a/app/settings/handlers/detailshandler.cpp b/app/settings/handlers/detailshandler.cpp
index 99030e585..557a4af6c 100644
--- a/app/settings/handlers/detailshandler.cpp
+++ b/app/settings/handlers/detailshandler.cpp
@@ -85,6 +85,8 @@ bool DetailsHandler::inDefaultValues() const
void DetailsHandler::reset()
{
+ c_data = o_data;
+ emit currentLayoutChanged();
}
void DetailsHandler::resetDefaults()
@@ -103,6 +105,16 @@ void DetailsHandler::on_currentIndexChanged(int index)
emit currentLayoutChanged();
}
+void DetailsHandler::setIsShownInMenu(bool inMenu)
+{
+ c_data.isShownInMenu = inMenu;
+}
+
+void DetailsHandler::setHasDisabledBorders(bool disabled)
+{
+ c_data.hasDisabledBorders = disabled;
+}
+
}
}
}
diff --git a/app/settings/handlers/detailshandler.h b/app/settings/handlers/detailshandler.h
index f46a78267..3c750a57c 100644
--- a/app/settings/handlers/detailshandler.h
+++ b/app/settings/handlers/detailshandler.h
@@ -62,6 +62,9 @@ public:
Data::Layout currentData() const;
+ void setIsShownInMenu(bool inMenu);
+ void setHasDisabledBorders(bool disabled);
+
signals:
void currentLayoutChanged();
diff --git a/app/settings/handlers/detailsinfohandler.cpp b/app/settings/handlers/detailsinfohandler.cpp
index 38ee015c0..c6e5cae4d 100644
--- a/app/settings/handlers/detailsinfohandler.cpp
+++ b/app/settings/handlers/detailsinfohandler.cpp
@@ -60,6 +60,14 @@ void DetailsInfoHandler::init()
}
});
+ connect(m_ui->inMenuChk, &QCheckBox::stateChanged, this, [&]() {
+ m_parentHandler->setIsShownInMenu(m_ui->inMenuChk->isChecked());
+ });
+
+ connect(m_ui->borderlessChk, &QCheckBox::stateChanged, this, [&]() {
+ m_parentHandler->setHasDisabledBorders(m_ui->borderlessChk->isChecked());
+ });
+
connect(m_parentHandler, &DetailsHandler::currentLayoutChanged, this, &DetailsInfoHandler::reload);
reload();
diff --git a/app/settings/models/layoutsmodel.cpp b/app/settings/models/layoutsmodel.cpp
index bb850f551..0ed2ca65f 100644
--- a/app/settings/models/layoutsmodel.cpp
+++ b/app/settings/models/layoutsmodel.cpp
@@ -165,6 +165,19 @@ void Layouts::removeLayout(const QString &id)
}
}
+void Layouts::setLayoutProperties(const Data::Layout &layout)
+{
+ if (m_layoutsTable.containsId(layout.id) && m_layoutsTable[layout.id] != layout) {
+ m_layoutsTable[layout.id] = layout;
+ int dataRow = m_layoutsTable.indexOf(layout.id);
+
+ QVector roles;
+ roles << Qt::DisplayRole;
+ roles << Qt::UserRole;
+ emit dataChanged(index(dataRow, IDCOLUMN), index(dataRow, SHAREDCOLUMN), roles);
+ }
+}
+
bool Layouts::removeRows(int row, int count, const QModelIndex &parent)
{
Q_UNUSED(parent)
diff --git a/app/settings/models/layoutsmodel.h b/app/settings/models/layoutsmodel.h
index c4b38f85e..9c64e8bd5 100644
--- a/app/settings/models/layoutsmodel.h
+++ b/app/settings/models/layoutsmodel.h
@@ -118,8 +118,9 @@ public:
//! all original data will become also current
void resetData();
- void appendLayout(const Settings::Data::Layout &layout);
+ void appendLayout(const Data::Layout &layout);
void removeLayout(const QString &id);
+ void setLayoutProperties(const Data::Layout &layout);
QString layoutNameForFreeActivities() const;
void setCurrentLayoutForFreeActivities(const QString &id);