From 85a3e42dace06200095acc8f405a25f883cd8355 Mon Sep 17 00:00:00 2001 From: emeric Date: Thu, 8 Mar 2018 23:18:27 +0100 Subject: [PATCH] Simplified implementation --- src/ui/settings/DatabaseView.cpp | 61 +++++++++++++++----------------- src/ui/settings/DatabaseView.hpp | 10 ------ 2 files changed, 28 insertions(+), 43 deletions(-) diff --git a/src/ui/settings/DatabaseView.cpp b/src/ui/settings/DatabaseView.cpp index 2a8940d0..4986348c 100644 --- a/src/ui/settings/DatabaseView.cpp +++ b/src/ui/settings/DatabaseView.cpp @@ -228,7 +228,7 @@ const Wt::WFormModel::Field DatabaseModel::UpdateStartTimeField = "update-start DatabaseView::DatabaseView(Wt::WContainerWidget *parent) : Wt::WTemplateFormView(parent) { - _model = new DatabaseModel(this); + auto model = new DatabaseModel(this); setTemplateText(tr("template-settings-database")); addFunction("tr", &WTemplate::Functions::tr); @@ -241,12 +241,12 @@ DatabaseView::DatabaseView(Wt::WContainerWidget *parent) // Update Period Wt::WComboBox *updatePeriodCB = new Wt::WComboBox(); setFormWidget(DatabaseModel::UpdatePeriodField, updatePeriodCB); - updatePeriodCB->setModel(_model->updatePeriodModel()); + updatePeriodCB->setModel(model->updatePeriodModel()); // Update Start Time Wt::WComboBox *updateStartTimeCB = new Wt::WComboBox(); setFormWidget(DatabaseModel::UpdateStartTimeField, updateStartTimeCB); - updateStartTimeCB->setModel(_model->updateStartTimeModel()); + updateStartTimeCB->setModel(model->updateStartTimeModel()); // Buttons @@ -259,8 +259,30 @@ DatabaseView::DatabaseView(Wt::WContainerWidget *parent) Wt::WPushButton *immScanBtn = new Wt::WPushButton(Wt::WString::tr("msg-btn-immediate-scan")); bindWidget("immediate-scan-btn", immScanBtn); - saveBtn->clicked().connect(this, &DatabaseView::processSave); - discardBtn->clicked().connect(this, &DatabaseView::processDiscard); + saveBtn->clicked().connect(std::bind([=] () + { + updateModel(model); + + if (model->validate()) + { + model->saveData(); + + MediaScanner().reschedule(); + + notify(Wt::WString::tr("msg-notify-settings-saved")); + } + + // Udate the view: Delete any validation message in the view, etc. + updateView(model); + })); + + discardBtn->clicked().connect(std::bind([=] () + { + model->loadData(); + model->validate(); + updateView(model); + })); + immScanBtn->clicked().connect(std::bind([=] () { MediaScanner().scheduleImmediateScan(); @@ -268,36 +290,9 @@ DatabaseView::DatabaseView(Wt::WContainerWidget *parent) notify(Wt::WString::tr("msg-notify-scan-launched")); })); - updateView(_model); + updateView(model); } -void -DatabaseView::processDiscard() -{ - _model->loadData(); - _model->validate(); - updateView(_model); -} - -void -DatabaseView::processSave() -{ - updateModel(_model); - - if (_model->validate()) - { - _model->saveData(); - - MediaScanner().reschedule(); - - notify(Wt::WString::tr("msg-notify-settings-saved")); - } - - // Udate the view: Delete any validation message in the view, etc. - updateView(_model); -} - - } // namespace Settings } // namespace UserInterface diff --git a/src/ui/settings/DatabaseView.hpp b/src/ui/settings/DatabaseView.hpp index ab930efb..a985a69c 100644 --- a/src/ui/settings/DatabaseView.hpp +++ b/src/ui/settings/DatabaseView.hpp @@ -25,20 +25,10 @@ namespace UserInterface { namespace Settings { -class DatabaseModel; - class DatabaseView : public Wt::WTemplateFormView { public: DatabaseView(Wt::WContainerWidget *parent = 0); - - private: - - void processSave(); - void processDiscard(); - void processImmediateScan(); - - DatabaseModel *_model; };