diff --git a/companion/src/modeledit/flightmode.ui b/companion/src/modeledit/flightmode.ui index fffb61a0f..03e92ba85 100644 --- a/companion/src/modeledit/flightmode.ui +++ b/companion/src/modeledit/flightmode.ui @@ -52,7 +52,7 @@ - + Name diff --git a/companion/src/modeledit/flightmodes.cpp b/companion/src/modeledit/flightmodes.cpp index 20d03a71a..532792bfb 100644 --- a/companion/src/modeledit/flightmodes.cpp +++ b/companion/src/modeledit/flightmodes.cpp @@ -15,6 +15,9 @@ FlightModePanel::FlightModePanel(QWidget * parent, ModelData & model, int phaseI { ui->setupUi(this); + ui->labelName->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->labelName, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(name_customContextMenuRequested(const QPoint &))); + int modesCount = firmware->getCapability(FlightModes); // Phase name @@ -426,6 +429,29 @@ void FlightModePanel::phaseTrimSlider_valueChanged() } } +void FlightModePanel::name_customContextMenuRequested(const QPoint & pos) +{ + QLabel *label = (QLabel *)sender(); + QPoint globalPos = label->mapToGlobal(pos); + QMenu contextMenu; + contextMenu.addAction(CompanionIcon("clear.png"), tr("&Clear"),this,SLOT(fmClear()),tr("Clear")); + contextMenu.exec(globalPos); +} + +void FlightModePanel::fmClear() +{ + int res = QMessageBox::question(this, "Companion", tr("Clear all current Flight Mode properties?"), QMessageBox::Yes | QMessageBox::No); + if (res == QMessageBox::Yes) { + phase.clear(); + for(int i=0; i < 4; ++i) { + model->setTrimValue(phaseIdx, i, 0); + } + update(); + emit modified(); + emit nameModified(); + } +} + /**********************************************************/ FlightModesPanel::FlightModesPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware): diff --git a/companion/src/modeledit/flightmodes.h b/companion/src/modeledit/flightmodes.h index b3a59278f..4de522034 100644 --- a/companion/src/modeledit/flightmodes.h +++ b/companion/src/modeledit/flightmodes.h @@ -41,6 +41,8 @@ class FlightModePanel : public ModelPanel void phaseGVPopupToggled(bool checked); void phaseREValue_editingFinished(); void phaseREUse_currentIndexChanged(int index); + void name_customContextMenuRequested(const QPoint & pos); + void fmClear(); private: Ui::FlightMode *ui;