From 959560ded5259ceb68c7a321a53fb8f5f2f4b72d Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 10 Dec 2020 13:55:38 +0100 Subject: [PATCH] Revert "PR 7939" This reverts commit 4318d113 --- companion/src/firmwares/modeldata.h | 1 - companion/src/firmwares/rawswitch.cpp | 2 +- companion/src/modeledit/curves.cpp | 104 +++++++---------- companion/src/modeledit/setup.cpp | 161 +++++++++++--------------- companion/src/modeledit/setup.h | 19 +-- 5 files changed, 119 insertions(+), 168 deletions(-) diff --git a/companion/src/firmwares/modeldata.h b/companion/src/firmwares/modeldata.h index 7eacdc26d..0afc66b72 100644 --- a/companion/src/firmwares/modeldata.h +++ b/companion/src/firmwares/modeldata.h @@ -338,7 +338,6 @@ class ModelData { value = swtch.toValue(); } void sortMixes(); - void updateResetParam(CustomFunctionData * cfd); }; #endif // MODELDATA_H diff --git a/companion/src/firmwares/rawswitch.cpp b/companion/src/firmwares/rawswitch.cpp index 7aef46922..10d3f7fa3 100644 --- a/companion/src/firmwares/rawswitch.cpp +++ b/companion/src/firmwares/rawswitch.cpp @@ -59,7 +59,7 @@ QString RawSwitch::toString(Board::Type board, const GeneralSettings * const gen tr("THs"), tr("TH%"), tr("THt") }; - static const QStringList directionIndicators = QStringList() + const QStringList directionIndicators = QStringList() << CPN_STR_SW_INDICATOR_UP << CPN_STR_SW_INDICATOR_NEUT << CPN_STR_SW_INDICATOR_DN; diff --git a/companion/src/modeledit/curves.cpp b/companion/src/modeledit/curves.cpp index 9e60f30c3..da056964e 100644 --- a/companion/src/modeledit/curves.cpp +++ b/companion/src/modeledit/curves.cpp @@ -23,7 +23,6 @@ #include "node.h" #include "edge.h" #include "helpers.h" -#include "rawitemfilteredmodel.h" #define GFX_MARGIN 16 @@ -109,11 +108,10 @@ float curveSymmetricalX(float x, float coeff, float yMin, float yMid, float yMax return y; } -CurvesPanel::CurvesPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware, CommonItemModels * commonItemModels): +Curves::Curves(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware): ModelPanel(parent, model, generalSettings, firmware), ui(new Ui::Curves), - currentCurve(0), - commonItemModels(commonItemModels) + currentCurve(0) { ui->setupUi(this); @@ -232,12 +230,12 @@ CurvesPanel::CurvesPanel(QWidget * parent, ModelData & model, GeneralSettings & lock = false; } -CurvesPanel::~CurvesPanel() +Curves::~Curves() { delete ui; } -void CurvesPanel::editCurve() +void Curves::editCurve() { QPushButton *button = (QPushButton *)sender(); int index = button->property("index").toInt(); @@ -245,7 +243,7 @@ void CurvesPanel::editCurve() update(); } -void CurvesPanel::plotCurve(bool checked) +void Curves::plotCurve(bool checked) { QCheckBox *chk = (QCheckBox *)sender(); int index = chk->property("index").toInt(); @@ -253,7 +251,7 @@ void CurvesPanel::plotCurve(bool checked) updateCurve(); } -void CurvesPanel::update() +void Curves::update() { lock = true; @@ -268,12 +266,12 @@ void CurvesPanel::update() lock = false; } -void CurvesPanel::setCurrentCurve(int index) +void Curves::setCurrentCurve(int index) { currentCurve = index; } -void CurvesPanel::updateCurveType() +void Curves::updateCurveType() { lock = true; @@ -299,7 +297,7 @@ void CurvesPanel::updateCurveType() lock = false; } -void CurvesPanel::updateCurve() +void Curves::updateCurve() { lock = true; @@ -373,7 +371,7 @@ void CurvesPanel::updateCurve() lock = false; } -void CurvesPanel::updateCurvePoints() +void Curves::updateCurvePoints() { lock = true; @@ -407,7 +405,7 @@ void CurvesPanel::updateCurvePoints() lock = false; } -void CurvesPanel::onPointEdited() +void Curves::onPointEdited() { if (!lock) { int index = sender()->property("index").toInt(); @@ -419,7 +417,7 @@ void CurvesPanel::onPointEdited() } } -void CurvesPanel::onNodeMoved(int x, int y) +void Curves::onNodeMoved(int x, int y) { if (!lock) { lock = true; @@ -437,20 +435,20 @@ void CurvesPanel::onNodeMoved(int x, int y) } } -void CurvesPanel::onNodeFocus() +void Curves::onNodeFocus() { int index = sender()->property("index").toInt(); spny[index]->setFocus(); } -void CurvesPanel::onNodeUnfocus() +void Curves::onNodeUnfocus() { int index = sender()->property("index").toInt(); spny[index]->clearFocus(); updateCurve(); } -bool CurvesPanel::allowCurveType(int points, CurveData::CurveType type) +bool Curves::allowCurveType(int points, CurveData::CurveType type) { int totalpoints = 0; for (int i = 0; i < maxCurves; i++) { @@ -468,7 +466,7 @@ bool CurvesPanel::allowCurveType(int points, CurveData::CurveType type) } } -void CurvesPanel::on_curvePoints_currentIndexChanged(int index) +void Curves::on_curvePoints_currentIndexChanged(int index) { if (!lock) { int numpoints = ((QComboBox *)sender())->itemData(index).toInt(); @@ -491,7 +489,7 @@ void CurvesPanel::on_curvePoints_currentIndexChanged(int index) } } -void CurvesPanel::on_curveCustom_currentIndexChanged(int index) +void Curves::on_curveCustom_currentIndexChanged(int index) { if (!lock) { CurveData::CurveType type = (CurveData::CurveType)index; @@ -515,23 +513,20 @@ void CurvesPanel::on_curveCustom_currentIndexChanged(int index) } } -void CurvesPanel::on_curveSmooth_currentIndexChanged(int index) +void Curves::on_curveSmooth_currentIndexChanged(int index) { model->curves[currentCurve].smooth = index; update(); } -void CurvesPanel::on_curveName_editingFinished() +void Curves::on_curveName_editingFinished() { - if (ui->curveName->text() != model->curves[currentCurve].name) { - memset(model->curves[currentCurve].name, 0, sizeof(model->curves[currentCurve].name)); - strcpy(model->curves[currentCurve].name, ui->curveName->text().toLatin1()); - updateItemModels(); - emit modified(); - } + memset(model->curves[currentCurve].name, 0, sizeof(model->curves[currentCurve].name)); + strcpy(model->curves[currentCurve].name, ui->curveName->text().toLatin1()); + emit modified(); } -void CurvesPanel::resizeEvent(QResizeEvent *event) +void Curves::resizeEvent(QResizeEvent *event) { QRect qr = ui->curvePreview->contentsRect(); ui->curvePreview->scene()->setSceneRect(GFX_MARGIN, GFX_MARGIN, qr.width() - GFX_MARGIN * 2, qr.height() - GFX_MARGIN * 2); @@ -539,7 +534,7 @@ void CurvesPanel::resizeEvent(QResizeEvent *event) ModelPanel::resizeEvent(event); } -void CurvesPanel::on_curveType_currentIndexChanged(int index) +void Curves::on_curveType_currentIndexChanged(int index) { unsigned int flags = templates[index].flags; ui->curveCoeffLabel->setVisible(flags & CURVE_COEFF_ENABLE); @@ -553,7 +548,7 @@ void CurvesPanel::on_curveType_currentIndexChanged(int index) ui->yMin->setValue(-100); } -void CurvesPanel::addTemplate(QString name, unsigned int flags, curveFunction function) +void Curves::addTemplate(QString name, unsigned int flags, curveFunction function) { CurveCreatorTemplate tmpl; tmpl.name = name; @@ -563,7 +558,7 @@ void CurvesPanel::addTemplate(QString name, unsigned int flags, curveFunction fu ui->curveType->addItem(name); } -void CurvesPanel::on_curveApply_clicked() +void Curves::on_curveApply_clicked() { int index = ui->curveType->currentIndex(); int numpoints = model->curves[currentCurve].count; @@ -600,14 +595,14 @@ void CurvesPanel::on_curveApply_clicked() emit modified(); } -void CurvesPanel::onPointSizeEdited() +void Curves::onPointSizeEdited() { if (!lock) { update(); } } -void CurvesPanel::onNodeDelete() +void Curves::onNodeDelete() { int index = sender()->property("index").toInt(); int numpoints = model->curves[currentCurve].count; @@ -625,7 +620,7 @@ void CurvesPanel::onNodeDelete() } } -void CurvesPanel::onSceneNewPoint(int x, int y) +void Curves::onSceneNewPoint(int x, int y) { if ((model->curves[currentCurve].type == CurveData::CURVE_TYPE_CUSTOM) && (model->curves[currentCurve].count < CPN_MAX_POINTS)) { int newidx = 0; @@ -656,7 +651,7 @@ void CurvesPanel::onSceneNewPoint(int x, int y) } } -void CurvesPanel::onCustomContextMenuRequested(QPoint pos) +void Curves::onCustomContextMenuRequested(QPoint pos) { QPushButton *button = (QPushButton *)sender(); selectedIndex = button->property("index").toInt(); @@ -678,7 +673,7 @@ void CurvesPanel::onCustomContextMenuRequested(QPoint pos) contextMenu.exec(globalPos); } -bool CurvesPanel::hasClipboardData(QByteArray * data) const +bool Curves::hasClipboardData(QByteArray * data) const { const QClipboard * clipboard = QApplication::clipboard(); const QMimeData * mimeData = clipboard->mimeData(); @@ -690,22 +685,22 @@ bool CurvesPanel::hasClipboardData(QByteArray * data) const return false; } -bool CurvesPanel::insertAllowed() const +bool Curves::insertAllowed() const { return ((selectedIndex < maxCurves - 1) && (model->curves[maxCurves - 1].isEmpty())); } -bool CurvesPanel::moveDownAllowed() const +bool Curves::moveDownAllowed() const { return selectedIndex < maxCurves - 1; } -bool CurvesPanel::moveUpAllowed() const +bool Curves::moveUpAllowed() const { return selectedIndex > 0; } -void CurvesPanel::cmClear(bool prompt) +void Curves::cmClear(bool prompt) { if (prompt) { if (QMessageBox::question(this, CPN_STR_APP_NAME, tr("Clear Curve. Are you sure?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) @@ -715,11 +710,10 @@ void CurvesPanel::cmClear(bool prompt) model->curves[selectedIndex].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_CURVE, ModelData::REF_UPD_ACT_CLEAR, selectedIndex); update(); - updateItemModels(); emit modified(); } -void CurvesPanel::cmClearAll() +void Curves::cmClearAll() { if (QMessageBox::question(this, CPN_STR_APP_NAME, tr("Clear all Curves. Are you sure?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) return; @@ -729,11 +723,10 @@ void CurvesPanel::cmClearAll() model->updateAllReferences(ModelData::REF_UPD_TYPE_CURVE, ModelData::REF_UPD_ACT_CLEAR, i); } update(); - updateItemModels(); emit modified(); } -void CurvesPanel::cmCopy() +void Curves::cmCopy() { QByteArray data; data.append((char*)&model->curves[selectedIndex], sizeof(CurveData)); @@ -742,7 +735,7 @@ void CurvesPanel::cmCopy() QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard); } -void CurvesPanel::cmCut() +void Curves::cmCut() { if (QMessageBox::question(this, CPN_STR_APP_NAME, tr("Cut Curve. Are you sure?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) return; @@ -750,7 +743,7 @@ void CurvesPanel::cmCut() cmClear(false); } -void CurvesPanel::cmDelete() +void Curves::cmDelete() { if (QMessageBox::question(this, CPN_STR_APP_NAME, tr("Delete Curve. Are you sure?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) return; @@ -759,43 +752,40 @@ void CurvesPanel::cmDelete() model->curves[maxCurves - 1].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_CURVE, ModelData::REF_UPD_ACT_SHIFT, selectedIndex, 0, -1); update(); - updateItemModels(); emit modified(); } -void CurvesPanel::cmInsert() +void Curves::cmInsert() { memmove(&model->curves[selectedIndex + 1], &model->curves[selectedIndex], (CPN_MAX_CURVES - (selectedIndex + 1)) * sizeof(CurveData)); model->curves[selectedIndex].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_CURVE, ModelData::REF_UPD_ACT_SHIFT, selectedIndex, 0, 1); update(); - updateItemModels(); emit modified(); } -void CurvesPanel::cmMoveDown() +void Curves::cmMoveDown() { swapData(selectedIndex, selectedIndex + 1); } -void CurvesPanel::cmMoveUp() +void Curves::cmMoveUp() { swapData(selectedIndex, selectedIndex - 1); } -void CurvesPanel::cmPaste() +void Curves::cmPaste() { QByteArray data; if (hasClipboardData(&data)) { CurveData *cd = &model->curves[selectedIndex]; memcpy(cd, data.constData(), sizeof(CurveData)); update(); - updateItemModels(); emit modified(); } } -void CurvesPanel::swapData(int idx1, int idx2) +void Curves::swapData(int idx1, int idx2) { if ((idx1 != idx2) && (!model->curves[idx1].isEmpty() || !model->curves[idx2].isEmpty())) { CurveData cdtmp = model->curves[idx2]; @@ -805,16 +795,10 @@ void CurvesPanel::swapData(int idx1, int idx2) memcpy(cd1, &cdtmp, sizeof(CurveData)); model->updateAllReferences(ModelData::REF_UPD_TYPE_CURVE, ModelData::REF_UPD_ACT_SWAP, idx1, idx2); update(); - updateItemModels(); emit modified(); } } -void CurvesPanel::updateItemModels() -{ - commonItemModels->update(CommonItemModels::RMO_CURVES); -} - CustomScene::CustomScene(QGraphicsView * view) : QGraphicsScene(view) { diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp index d6768c850..5d4dfec79 100644 --- a/companion/src/modeledit/setup.cpp +++ b/companion/src/modeledit/setup.cpp @@ -31,14 +31,13 @@ #include -TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, GeneralSettings & generalSettings, Firmware * firmware, QWidget * prevFocus, RawItemFilteredModel * rawSwitchFilteredModel): +TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, GeneralSettings & generalSettings, Firmware * firmware, QWidget * prevFocus, RawSwitchFilterItemModel * switchModel): ModelPanel(parent, model, generalSettings, firmware), timer(timer), ui(new Ui::Timer) { + ui->setupUi(this); - connect(rawSwitchFilteredModel, &RawItemFilteredModel::dataAboutToBeUpdated, this, &TimerPanel::onModelDataAboutToBeUpdated); - connect(rawSwitchFilteredModel, &RawItemFilteredModel::dataUpdateComplete, this, &TimerPanel::onModelDataUpdateComplete); lock = true; @@ -49,10 +48,11 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, Ge } else { ui->name->setMaxLength(length); + //ui->name->setText(timer.name); } // Mode - ui->mode->setModel(rawSwitchFilteredModel); + ui->mode->setModel(switchModel); ui->mode->setCurrentIndex(ui->mode->findData(timer.mode.toValue())); connect(ui->mode, SIGNAL(activated(int)), this, SLOT(onModeChanged(int))); @@ -94,7 +94,6 @@ TimerPanel::~TimerPanel() void TimerPanel::update() { lock = true; - ui->name->setText(timer.name); int hour = timer.val / 3600; @@ -115,7 +114,7 @@ void TimerPanel::update() pvalue -= hours * 3600; int minutes = pvalue / 60; int seconds = pvalue % 60; - ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign < 0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0'))); + ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign<0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0'))); } ui->countdownBeep->updateValue(); @@ -132,7 +131,7 @@ QWidget * TimerPanel::getLastFocus() void TimerPanel::on_value_editingFinished() { if (!lock) { - unsigned val = ui->value->time().hour() * 3600 + ui->value->time().minute() * 60 + ui->value->time().second(); + unsigned val = ui->value->time().hour()*3600 + ui->value->time().minute()*60 + ui->value->time().second(); if (timer.val != val) { timer.val = val; emit modified(); @@ -166,23 +165,11 @@ void TimerPanel::on_name_editingFinished() 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::onModelDataAboutToBeUpdated() -{ - lock = true; -} - -void TimerPanel::onModelDataUpdateComplete() -{ - update(); - lock = false; -} - /******************************************************************************/ #define FAILSAFE_CHANNEL_HOLD 2000 @@ -250,19 +237,19 @@ ModulePanel::ModulePanel(QWidget * parent, ModelData & model, ModuleData & modul } // The protocols available on this board - for (unsigned int i = 0; i < PULSES_PROTOCOL_LAST; i++) { + for (unsigned int i=0; iisAvailable((PulsesProtocol) i, moduleIdx)) { ui->protocol->addItem(ModuleData::protocolToString(i), i); if (i == module.protocol) - ui->protocol->setCurrentIndex(ui->protocol->count() - 1); + ui->protocol->setCurrentIndex(ui->protocol->count()-1); } } - for (int i = 0; i <= MODULE_SUBTYPE_MULTI_LAST; i++) { + for (int i=0; i<=MODULE_SUBTYPE_MULTI_LAST; i++) { if (i == MODULE_SUBTYPE_MULTI_SCANNER) continue; ui->multiProtocol->addItem(Multiprotocols::protocolToString(i), i); } - for (int i = MODULE_SUBTYPE_MULTI_LAST + 1; i <= 124; i++) { + for (int i=MODULE_SUBTYPE_MULTI_LAST + 1; i <= 124; i++) { ui->multiProtocol->addItem(QString::number(i + 3), i); } @@ -340,7 +327,7 @@ void ModulePanel::setupFailsafes() else { QLabel * label = new QLabel(this); label->setProperty("index", i); - label->setText(QString::number(i + 1)); + label->setText(QString::number(i+1)); QComboBox * combo = new QComboBox(this); combo->setProperty("index", i); @@ -519,7 +506,7 @@ void ModulePanel::update() ui->ppmFrameLength->setVisible(mask & MASK_SBUSPPM_FIELDS); ui->ppmFrameLength->setMinimum(module.channelsCount * (model->extendedLimits ? 2.250 : 2)+3.5); ui->ppmFrameLength->setMaximum(firmware->getCapability(PPMFrameLength)); - ui->ppmFrameLength->setValue(22.5 + ((double)module.ppm.frameLength) * 0.5); + ui->ppmFrameLength->setValue(22.5+((double)module.ppm.frameLength)*0.5); // Antenna mode on Horus and XLite if (mask & MASK_ANTENNA) { @@ -613,17 +600,17 @@ void ModulePanel::update() ui->registrationIdLabel->setVisible(mask & MASK_ACCESS); ui->registrationId->setVisible(mask & MASK_ACCESS); - ui->rx1Label->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 0))); - ui->clearRx1->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 0))); - ui->rx1->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 0))); + ui->rx1Label->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<0))); + ui->clearRx1->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<0))); + ui->rx1->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<0))); - ui->rx2Label->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 1))); - ui->clearRx2->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 1))); - ui->rx2->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 1))); + ui->rx2Label->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<1))); + ui->clearRx2->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<1))); + ui->rx2->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<1))); - ui->rx3Label->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 2))); - ui->clearRx3->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 2))); - ui->rx3->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1 << 2))); + ui->rx3Label->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<2))); + ui->clearRx3->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<2))); + ui->rx3->setVisible((mask & MASK_ACCESS) && (module.access.receivers & (1<<2))); // Failsafes ui->label_failsafeMode->setVisible(mask & MASK_FAILSAFES); @@ -716,8 +703,8 @@ void ModulePanel::on_channelsCount_editingFinished() { if (!lock && module.channelsCount != ui->channelsCount->value()) { module.channelsCount = ui->channelsCount->value(); - emit channelsRangeChanged(); update(); + emit channelsRangeChanged(); emit modified(); } } @@ -726,8 +713,8 @@ void ModulePanel::on_channelsStart_editingFinished() { if (!lock && module.channelsStart != (unsigned)ui->channelsStart->value() - 1) { module.channelsStart = (unsigned)ui->channelsStart->value() - 1; - emit channelsRangeChanged(); update(); + emit channelsRangeChanged(); emit modified(); } } @@ -751,7 +738,7 @@ void ModulePanel::on_rxNumber_editingFinished() void ModulePanel::on_ppmFrameLength_editingFinished() { - int val = (ui->ppmFrameLength->value() - 22.5) / 0.5; + int val = (ui->ppmFrameLength->value()-22.5) / 0.5; if (module.ppm.frameLength != val) { module.ppm.frameLength = val; emit modified(); @@ -775,8 +762,8 @@ void ModulePanel::onMultiProtocolChanged(int index) module.multi.rfProtocol = (unsigned int)rfProtocol; unsigned int maxSubTypes = multiProtocols.getProtocol(index).numSubTypes(); if (rfProtocol > MODULE_SUBTYPE_MULTI_LAST) - maxSubTypes = 8; - module.subType = std::min(module.subType, maxSubTypes - 1); + maxSubTypes=8; + module.subType = std::min(module.subType, maxSubTypes -1); module.channelsCount = module.getMaxChannelCount(); update(); emit modified(); @@ -970,19 +957,19 @@ void ModulePanel::onClearAccessRxClicked() QPushButton *button = qobject_cast(sender()); if (button == ui->clearRx1) { - module.access.receivers &= ~(1 << 0); + module.access.receivers &= ~(1<<0); ui->rx1->clear(); update(); emit modified(); } else if (button == ui->clearRx2) { - module.access.receivers &= ~(1 << 1); + module.access.receivers &= ~(1<<1); ui->rx2->clear(); update(); emit modified(); } else if (button == ui->clearRx3) { - module.access.receivers &= ~(1 << 2); + module.access.receivers &= ~(1<<2); ui->rx3->clear(); update(); emit modified(); @@ -991,20 +978,18 @@ void ModulePanel::onClearAccessRxClicked() /******************************************************************************/ -SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware, CommonItemModels * commonItemModels): +SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware): ModelPanel(parent, model, generalSettings, firmware), - ui(new Ui::Setup), - commonItemModels(commonItemModels) + ui(new Ui::Setup) { - ui->setupUi(this); - rawSwitchFilteredModel = new RawItemFilteredModel(commonItemModels->rawSwitchItemModel(), RawSwitch::TimersContext, this); - Board::Type board = firmware->getBoard(); lock = true; memset(modules, 0, sizeof(modules)); + ui->setupUi(this); + QRegExp rx(CHAR_FOR_NAMES_REGEX); ui->name->setValidator(new QRegExpValidator(rx, this)); ui->name->setMaxLength(firmware->getCapability(ModelName)); @@ -1022,7 +1007,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge foreach ( QString file, qd.entryList(filters, QDir::Files) ) { QFileInfo fi(file); QString temp = fi.fileName(); - if (!items.contains(temp) && temp.length() <= 6 + 4) { + if (!items.contains(temp) && temp.length() <= 6+4) { items.append(temp); } } @@ -1032,7 +1017,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge foreach (QString file, qd.entryList(filters, QDir::Files)) { QFileInfo fi(file); QString temp = fi.completeBaseName(); - if (!items.contains(temp) && temp.length() <= 10 + 4) { + if (!items.contains(temp) && temp.length() <= 10+4) { items.append(temp); } } @@ -1045,7 +1030,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge foreach (QString file, items) { ui->image->addItem(file); if (file == model.bitmap) { - ui->image->setCurrentIndex(ui->image->count() - 1); + ui->image->setCurrentIndex(ui->image->count()-1); QString fileName = path; fileName.append(model.bitmap); if (!IS_FAMILY_HORUS_OR_T16(board)) @@ -1077,16 +1062,18 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge } QWidget * prevFocus = ui->image; + RawSwitchFilterItemModel * swModel = new RawSwitchFilterItemModel(&generalSettings, &model, RawSwitch::TimersContext, this); + connect(this, &SetupPanel::updated, swModel, &RawSwitchFilterItemModel::update); timersCount = firmware->getCapability(Timers); for (int i = 0; i < CPN_MAX_TIMERS; i++) { if (i < timersCount) { - timers[i] = new TimerPanel(this, model, model.timers[i], generalSettings, firmware, prevFocus, rawSwitchFilteredModel); + timers[i] = new TimerPanel(this, model, model.timers[i], generalSettings, firmware, prevFocus, swModel); ui->gridLayout->addWidget(timers[i], 1+i, 1); connect(timers[i], &TimerPanel::modified, this, &SetupPanel::modified); - connect(timers[i], &TimerPanel::nameChanged, this, &SetupPanel::onTimerNameChanged); connect(this, &SetupPanel::updated, timers[i], &TimerPanel::update); + connect(this, &SetupPanel::timerUpdated, timers[i], &TimerPanel::update); prevFocus = timers[i]->getLastFocus(); // TODO more reliable method required QLabel *label = findChild(QString("label_timer%1").arg(i + 1)); @@ -1108,7 +1095,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge if (firmware->getCapability(HasTopLcd)) { ui->toplcdTimer->setField(model.toplcdTimer, this); for (int i = 0; i < CPN_MAX_TIMERS; i++) { - if (i < timersCount) { + if (itoplcdTimer->addItem(tr("Timer %1").arg(i + 1), i); } } @@ -1131,12 +1118,12 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge prevFocus = ui->trimsDisplay; int analogs = CPN_MAX_STICKS + getBoardCapability(board, Board::Pots) + getBoardCapability(board, Board::Sliders); int genAryIdx = 0; - for (int i = 0; i < analogs + firmware->getCapability(RotaryEncoders); i++) { + for (int i=0; i < analogs + firmware->getCapability(RotaryEncoders); i++) { RawSource src((i < analogs) ? SOURCE_TYPE_STICK : SOURCE_TYPE_ROTARY_ENCODER, (i < analogs) ? i : analogs - i); QCheckBox * checkbox = new QCheckBox(this); checkbox->setProperty("index", i); checkbox->setText(src.toString(&model, &generalSettings)); - ui->centerBeepLayout->addWidget(checkbox, 0, i + 1); + ui->centerBeepLayout->addWidget(checkbox, 0, i+1); connect(checkbox, SIGNAL(toggled(bool)), this, SLOT(onBeepCenterToggled(bool))); centerBeepCheckboxes << checkbox; if (IS_HORUS_OR_TARANIS(board)) { @@ -1152,7 +1139,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge } // Startup switches warnings - for (int i = 0; i < getBoardCapability(board, Board::Switches); i++) { + for (int i=0; isetText(src.toString(&model, &generalSettings)); slider->setMaximum(switchInfo.config == Board::SWITCH_3POS ? 2 : 1); cb->setProperty("index", i); - ui->switchesStartupLayout->addWidget(label, 0, i + 1); + ui->switchesStartupLayout->addWidget(label, 0, i+1); ui->switchesStartupLayout->setAlignment(label, Qt::AlignCenter); - ui->switchesStartupLayout->addWidget(slider, 1, i + 1); + ui->switchesStartupLayout->addWidget(slider, 1, i+1); ui->switchesStartupLayout->setAlignment(slider, Qt::AlignCenter); - ui->switchesStartupLayout->addWidget(cb, 2, i + 1); + ui->switchesStartupLayout->addWidget(cb, 2, i+1); ui->switchesStartupLayout->setAlignment(cb, Qt::AlignCenter); connect(slider, SIGNAL(valueChanged(int)), this, SLOT(startupSwitchEdited(int))); connect(cb, SIGNAL(toggled(bool)), this, SLOT(startupSwitchToggled(bool))); @@ -1194,12 +1181,12 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge // Pot warnings prevFocus = ui->potWarningMode; if (IS_HORUS_OR_TARANIS(board)) { - for (int i = 0; i < getBoardCapability(board, Board::Pots) + getBoardCapability(board, Board::Sliders); i++) { + for (int i=0; isetProperty("index", i); cb->setText(src.toString(&model, &generalSettings)); - ui->potWarningLayout->addWidget(cb, 0, i + 1); + ui->potWarningLayout->addWidget(cb, 0, i+1); connect(cb, SIGNAL(toggled(bool)), this, SLOT(potWarningToggled(bool))); potWarningCheckboxes << cb; if (src.isPot(&genAryIdx) && !generalSettings.isPotAvailable(genAryIdx)) { @@ -1277,7 +1264,7 @@ void SetupPanel::on_extendedTrims_toggled(bool checked) void SetupPanel::on_trimIncrement_currentIndexChanged(int index) { - model->trimInc = index - 2; + model->trimInc = index-2; emit modified(); } @@ -1354,13 +1341,13 @@ void SetupPanel::populateThrottleSourceCB() ui->throttleSource->clear(); ui->throttleSource->addItem(tr("THR"), 0); - int idx = 1; - for (int i = 0; i < getBoardCapability(board, Board::Pots) + getBoardCapability(board, Board::Sliders); i++, idx++) { - if (RawSource(SOURCE_TYPE_STICK, 4 + i).isAvailable(model, &generalSettings, board)) { - ui->throttleSource->addItem(firmware->getAnalogInputName(4 + i), idx); + int idx=1; + for (int i=0; ithrottleSource->addItem(firmware->getAnalogInputName(4+i), idx); } } - for (int i = 0; i < firmware->getCapability(Outputs); i++, idx++) { + for (int i=0; igetCapability(Outputs); i++, idx++) { ui->throttleSource->addItem(RawSource(SOURCE_TYPE_CH, i).toString(model, &generalSettings), idx); } @@ -1407,7 +1394,7 @@ void SetupPanel::update() updatePotWarnings(); } - for (int i = 0; i < CPN_MAX_MODULES + 1; i++) { + for (int i=0; iupdate(); } @@ -1418,7 +1405,7 @@ void SetupPanel::update() void SetupPanel::updateBeepCenter() { - for (int i = 0; i < centerBeepCheckboxes.size(); i++) { + for (int i=0; isetChecked(model->beepANACenter & (0x01 << i)); } } @@ -1430,20 +1417,20 @@ void SetupPanel::updateStartupSwitches() uint64_t switchStates = model->switchWarningStates; uint64_t value; - for (int i = 0; i < startupSwitchesSliders.size(); i++) { + for (int i=0; iproperty("index").toInt(); bool enabled = !(model->switchWarningEnable & (1 << index)); if (IS_HORUS_OR_TARANIS(firmware->getBoard())) { - value = (switchStates >> (2 * index)) & 0x03; + value = (switchStates >> (2*index)) & 0x03; if (generalSettings.switchConfig[index] != Board::SWITCH_3POS && value == 2) { value = 1; } } else { - value = (i == 0 ? switchStates & 0x3 : switchStates & 0x1); - switchStates >>= (i == 0 ? 2 : 1); + value = (i==0 ? switchStates & 0x3 : switchStates & 0x1); + switchStates >>= (i==0 ? 2 : 1); } slider->setValue(value); slider->setEnabled(enabled); @@ -1469,7 +1456,7 @@ void SetupPanel::startupSwitchEdited(int value) mask = 0x03; } else { - shift = index + 1; + shift = index+1; mask = 0x01ull << shift; } } @@ -1510,7 +1497,7 @@ void SetupPanel::updatePotWarnings() { lock = true; ui->potWarningMode->setCurrentIndex(model->potsWarningMode); - for (int i = 0; i < potWarningCheckboxes.size(); i++) { + for (int i=0; iproperty("index").toInt(); checkbox->setChecked(!model->potsWarnEnabled[index]); @@ -1640,7 +1627,7 @@ void SetupPanel::cmTimerClear(bool prompt) model->timers[selectedTimerIndex].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_TIMER, ModelData::REF_UPD_ACT_CLEAR, selectedTimerIndex); - updateItemModels(); + emit timerUpdated(); emit modified(); } @@ -1653,7 +1640,7 @@ void SetupPanel::cmTimerClearAll() model->timers[i].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_TIMER, ModelData::REF_UPD_ACT_CLEAR, i); } - updateItemModels(); + emit timerUpdated(); emit modified(); } @@ -1687,7 +1674,7 @@ void SetupPanel::cmTimerDelete() } model->timers[maxidx].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_TIMER, ModelData::REF_UPD_ACT_SHIFT, selectedTimerIndex, 0, -1); - updateItemModels(); + emit timerUpdated(); emit modified(); } @@ -1700,7 +1687,7 @@ void SetupPanel::cmTimerInsert() } model->timers[selectedTimerIndex].clear(); model->updateAllReferences(ModelData::REF_UPD_TYPE_TIMER, ModelData::REF_UPD_ACT_SHIFT, selectedTimerIndex, 0, 1); - updateItemModels(); + emit timerUpdated(); emit modified(); } @@ -1720,7 +1707,7 @@ void SetupPanel::cmTimerPaste() if (hasTimerClipboardData(&data)) { TimerData *td = &model->timers[selectedTimerIndex]; memcpy(td, data.constData(), sizeof(TimerData)); - updateItemModels(); + emit timerUpdated(); emit modified(); } } @@ -1734,17 +1721,7 @@ void SetupPanel::swapTimerData(int idx1, int idx2) memcpy(td2, td1, sizeof(TimerData)); memcpy(td1, &tdtmp, sizeof(TimerData)); model->updateAllReferences(ModelData::REF_UPD_TYPE_TIMER, ModelData::REF_UPD_ACT_SWAP, idx1, idx2); - updateItemModels(); + emit timerUpdated(); emit modified(); } } - -void SetupPanel::onTimerNameChanged() -{ - updateItemModels(); -} - -void SetupPanel::updateItemModels() -{ - commonItemModels->update(CommonItemModels::RMO_TIMERS); -} diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index c56e63ea1..e0c3df507 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -26,8 +26,7 @@ constexpr char MIMETYPE_TIMER[] = "application/x-companion-timer"; -class CommonItemModels; -class RawItemFilteredModel; +class RawSwitchFilterItemModel; namespace Ui { class Setup; @@ -40,7 +39,7 @@ class TimerPanel : public ModelPanel Q_OBJECT public: - TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, GeneralSettings & generalSettings, Firmware * firmware, QWidget *prevFocus, RawItemFilteredModel * switchModel); + TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, GeneralSettings & generalSettings, Firmware * firmware, QWidget *prevFocus, RawSwitchFilterItemModel * switchModel); virtual ~TimerPanel(); virtual void update(); @@ -51,11 +50,6 @@ class TimerPanel : public ModelPanel void on_value_editingFinished(); void on_minuteBeep_toggled(bool checked); void on_name_editingFinished(); - void onModelDataAboutToBeUpdated(); - void onModelDataUpdateComplete(); - - signals: - void nameChanged(); private: TimerData & timer; @@ -131,7 +125,7 @@ class SetupPanel : public ModelPanel Q_OBJECT public: - SetupPanel(QWidget *parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware, CommonItemModels * commonItemModels); + SetupPanel(QWidget *parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware); virtual ~SetupPanel(); virtual void update(); @@ -139,6 +133,7 @@ class SetupPanel : public ModelPanel signals: void extendedLimitsToggled(); void updated(); + void timerUpdated(); private slots: void on_name_editingFinished(); @@ -169,7 +164,6 @@ class SetupPanel : public ModelPanel void cmTimerPaste(); void cmTimerMoveDown(); void cmTimerMoveUp(); - void onTimerNameChanged(); private: Ui::Setup *ui; @@ -191,9 +185,6 @@ class SetupPanel : public ModelPanel bool moveTimerDownAllowed() const; bool moveTimerUpAllowed() const; void swapTimerData(int idx1, int idx2); - CommonItemModels * commonItemModels; - RawItemFilteredModel * rawSwitchFilteredModel; - void updateItemModels(); - }; +}; #endif // _SETUP_H_