From 38f1d249c94e946aeddcd4f649c424c9546deebe Mon Sep 17 00:00:00 2001 From: elecpower Date: Tue, 16 Mar 2021 23:16:11 +1100 Subject: [PATCH] Tweaks to auto objects and fixup filesyncdialog compile --- companion/src/dialogs/filesyncdialog.cpp | 2 + companion/src/firmwares/timerdata.cpp | 2 +- companion/src/modeledit/setup.cpp | 61 +++--------------------- companion/src/modeledit/setup.h | 5 -- companion/src/shared/autocheckbox.h | 31 +++++++----- companion/src/shared/autocombobox.h | 19 +++++--- 6 files changed, 39 insertions(+), 81 deletions(-) diff --git a/companion/src/dialogs/filesyncdialog.cpp b/companion/src/dialogs/filesyncdialog.cpp index 3927a3ffd..30026c931 100644 --- a/companion/src/dialogs/filesyncdialog.cpp +++ b/companion/src/dialogs/filesyncdialog.cpp @@ -39,6 +39,8 @@ #include #include #include +#include +#include FileSyncDialog::FileSyncDialog(QWidget * parent, const SyncProcess::SyncOptions & syncOptions) : QDialog(parent), diff --git a/companion/src/firmwares/timerdata.cpp b/companion/src/firmwares/timerdata.cpp index 8e85455fa..eeac00b69 100644 --- a/companion/src/firmwares/timerdata.cpp +++ b/companion/src/firmwares/timerdata.cpp @@ -137,7 +137,7 @@ QString TimerData::persistentToString(const int value, const bool verbose) // static QString TimerData::pvalueToString(const int value) { - return DataHelpers::timeToString(value, TIMESTR_MASK_HRSMINS | TIMESTR_MASK_HRSMINS); + return DataHelpers::timeToString(value, TIMESTR_MASK_HRSMINS | TIMESTR_MASK_ZEROHRS); } // static diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp index 55489933e..43c7cbaca 100644 --- a/companion/src/modeledit/setup.cpp +++ b/companion/src/modeledit/setup.cpp @@ -112,10 +112,14 @@ void TimerPanel::update() ui->persistentValue->setText(timer.pvalueToString()); } ui->countdownStart->updateValue(); - if(timer.countdownBeep == TimerData::COUNTDOWNBEEP_SILENT) + if(timer.countdownBeep == TimerData::COUNTDOWNBEEP_SILENT) { + ui->countdownStartLabel->setEnabled(false); ui->countdownStart->setEnabled(false); - else + } + else { + ui->countdownStartLabel->setEnabled(true); ui->countdownStart->setEnabled(true); + } lock = false; } @@ -124,17 +128,6 @@ QWidget * TimerPanel::getLastFocus() return ui->persistent; } -void TimerPanel::on_countdownBeep_currentIndexChanged(int index) -{ - if (!lock) { - const unsigned int val = ui->countdownStart->itemData(index).toUInt(); - if (val != timer.countdownBeep) { - timer.setCountdownBeep(val); - emit modified(); - } - } -} - void TimerPanel::on_value_editingFinished() { if (!lock) { @@ -158,26 +151,6 @@ void TimerPanel::onModeChanged(int index) } } -void TimerPanel::on_minuteBeep_toggled(bool checked) -{ - if (!lock) { - timer.minuteBeep = checked; - emit modified(); - } -} - -void TimerPanel::on_name_editingFinished() -{ - if (!lock) { - if (QString(timer.name) != ui->name->text()) { - int length = ui->name->maxLength(); - strncpy(timer.name, ui->name->text().toLatin1(), length); - emit nameChanged(); - emit modified(); - } - } -} - void TimerPanel::connectItemModelEvents(const FilteredItemModel * itemModel) { connect(itemModel, &FilteredItemModel::aboutToBeUpdated, this, &TimerPanel::onItemModelAboutToBeUpdated); @@ -199,28 +172,6 @@ void TimerPanel::onItemModelUpdateComplete() } } -void TimerPanel::on_countdownStart_currentIndexChanged(int index) -{ - if (!lock) { - const int val = ui->countdownStart->itemData(index).toInt(); - if (val != timer.countdownStart) { - timer.countdownStart = val; - emit modified(); - } - } -} - -void TimerPanel::on_persistent_currentIndexChanged(int index) -{ - if (!lock) { - const unsigned int val = ui->persistent->itemData(index).toUInt(); - if (val != timer.persistent) { - timer.persistent = val; - emit modified(); - } - } -} - /******************************************************************************/ #define FAILSAFE_CHANNEL_HOLD 2000 diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index 72350bf4f..b4e3b19c7 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -48,13 +48,8 @@ class TimerPanel : public ModelPanel private slots: void onModeChanged(int index); void on_value_editingFinished(); - void on_minuteBeep_toggled(bool checked); - void on_countdownBeep_currentIndexChanged(int index); - void on_name_editingFinished(); void onItemModelAboutToBeUpdated(); void onItemModelUpdateComplete(); - void on_countdownStart_currentIndexChanged(int index); - void on_persistent_currentIndexChanged(int index); signals: void nameChanged(); diff --git a/companion/src/shared/autocheckbox.h b/companion/src/shared/autocheckbox.h index f5b233fed..a9e70d255 100644 --- a/companion/src/shared/autocheckbox.h +++ b/companion/src/shared/autocheckbox.h @@ -21,23 +21,23 @@ #pragma once #include -#include "modeledit/modeledit.h" +#include "genericpanel.h" class AutoCheckBox: public QCheckBox { Q_OBJECT public: - explicit AutoCheckBox(QWidget *parent = 0): + explicit AutoCheckBox(QWidget * parent = nullptr): QCheckBox(parent), - field(NULL), - panel(NULL), + field(nullptr), + panel(nullptr), lock(false) { connect(this, SIGNAL(toggled(bool)), this, SLOT(onToggled(bool))); } - void setField(bool & field, ModelPanel * panel=NULL) + void setField(bool & field, GenericPanel * panel = nullptr) { this->field = &field; this->panel = panel; @@ -51,26 +51,31 @@ class AutoCheckBox: public QCheckBox void updateValue() { + if (!field) + return; lock = true; - if (field) { - setChecked(*field); - } + setChecked(*field); lock = false; } + signals: + void currentDataChanged(bool value); + protected slots: void onToggled(bool checked) { + if (panel && panel->lock) + return; if (field && !lock) { *field = checked; - if (panel) { + emit currentDataChanged(checked); + if (panel) emit panel->modified(); - } } } protected: - bool * field; - ModelPanel * panel; - bool lock; + bool *field = nullptr; + GenericPanel *panel = nullptr; + bool lock = false; }; diff --git a/companion/src/shared/autocombobox.h b/companion/src/shared/autocombobox.h index 784abaefa..a257f35d5 100644 --- a/companion/src/shared/autocombobox.h +++ b/companion/src/shared/autocombobox.h @@ -28,8 +28,13 @@ class AutoComboBox: public QComboBox Q_OBJECT public: - explicit AutoComboBox(QWidget *parent = nullptr): - QComboBox(parent) + explicit AutoComboBox(QWidget * parent = nullptr): + QComboBox(parent), + field(nullptr), + panel(nullptr), + next(0), + lock(false), + hasModel(false) { connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(onCurrentIndexChanged(int))); } @@ -69,14 +74,14 @@ class AutoComboBox: public QComboBox } } - void setField(unsigned int & field, GenericPanel * panel=nullptr) + void setField(unsigned int & field, GenericPanel * panel = nullptr) { this->field = (int *)&field; this->panel = panel; updateValue(); } - void setField(int & field, GenericPanel * panel=nullptr) + void setField(int & field, GenericPanel * panel = nullptr) { this->field = &field; this->panel = panel; @@ -122,16 +127,16 @@ class AutoComboBox: public QComboBox const int val = itemData(index).toInt(); if (field && !lock) { *field = val; + emit currentDataChanged(val); if (panel) emit panel->modified(); } - emit currentDataChanged(val); } } protected: - int * field = nullptr; - GenericPanel * panel = nullptr; + int *field = nullptr; + GenericPanel *panel = nullptr; int next = 0; bool lock = false; bool hasModel = false;