diff --git a/src/Waypoint.cc b/src/Waypoint.cc index 1f42cd364cd1d477f2e234b2c9201feeaaaf816c..40447c1545cc730d18e8a71e72d09158ba82a296 100644 --- a/src/Waypoint.cc +++ b/src/Waypoint.cc @@ -55,8 +55,7 @@ Waypoint::Waypoint(quint16 _id, double _x, double _y, double _z, double _param1, } Waypoint::~Waypoint() -{ - +{ } bool Waypoint::isNavigationType() diff --git a/src/Waypoint.h b/src/Waypoint.h index d029811499a87dccbc105500eb07cacfe5a427c9..6f5477c0a2d4b88dd8213d560e4841835d69c7c5 100644 --- a/src/Waypoint.h +++ b/src/Waypoint.h @@ -188,7 +188,7 @@ public slots: signals: /** @brief Announces a change to the waypoint data */ - void changed(Waypoint* wp); + void changed(Waypoint* wp); }; #endif // WAYPOINT_H diff --git a/src/uas/UASWaypointManager.cc b/src/uas/UASWaypointManager.cc index 5e87809341a22e6c5e38bf20303904e7c07c2a97..6119f43aa29d4b5cbe6f419bf2bfd916e532dc2d 100644 --- a/src/uas/UASWaypointManager.cc +++ b/src/uas/UASWaypointManager.cc @@ -133,11 +133,20 @@ void UASWaypointManager::handleWaypointCount(quint8 systemId, quint8 compId, qui // // qDebug() << "got waypoint count (" << count << ") from ID " << systemId; + //Clear the old edit-list before receiving the new one + if (read_to_edit == true){ + while(waypointsEditable.size()>0) { + Waypoint *t = waypointsEditable[0]; + waypointsEditable.remove(0); + delete t; + } + emit waypointEditableListChanged(); + } + if (count > 0) { current_count = count; current_wp_id = 0; current_state = WP_GETLIST_GETWPS; - sendWaypointRequest(current_wp_id); } else { protocol_timer.stop(); @@ -149,6 +158,8 @@ void UASWaypointManager::handleWaypointCount(quint8 systemId, quint8 compId, qui current_partner_systemid = 0; current_partner_compid = 0; } + + } else { qDebug("Rejecting message, check mismatch: current_state: %d == %d, system id %d == %d, comp id %d == %d", current_state, WP_GETLIST, current_partner_systemid, systemId, current_partner_compid, compId); } @@ -766,20 +777,25 @@ void UASWaypointManager::readWaypoints(bool readToEdit) emit readGlobalWPFromUAS(true); if(current_state == WP_IDLE) { + //Clear the old view-list before receiving the new one while(waypointsViewOnly.size()>0) { - delete waypointsViewOnly.back(); - waypointsViewOnly.pop_back(); + Waypoint *t = waypointsViewOnly[0]; + waypointsViewOnly.remove(0); + delete t; } - + emit waypointViewOnlyListChanged(); + /* THIS PART WAS MOVED TO handleWaypointCount. THE EDIT-LIST SHOULD NOT BE CLEARED UNLESS THERE IS A RESPONSE FROM UAV. //Clear the old edit-list before receiving the new one if (read_to_edit == true){ while(waypointsEditable.size()>0) { - delete waypointsEditable.back(); - waypointsEditable.pop_back(); + Waypoint *t = waypointsEditable[0]; + waypointsEditable.remove(0); + delete t; } + emit waypointEditableListChanged(); } - + */ protocol_timer.start(PROTOCOL_TIMEOUT_MS); current_retries = PROTOCOL_MAX_RETRIES; diff --git a/src/ui/WaypointEditableView.cc b/src/ui/WaypointEditableView.cc index 73fdfb0d7fbfc0bb300c28cd589439ff56e8642f..ed3c8f1fb97a2570f2573ff299f945408fa53001 100644 --- a/src/ui/WaypointEditableView.cc +++ b/src/ui/WaypointEditableView.cc @@ -20,10 +20,12 @@ #include "WaypointEditableView.h" #include "ui_WaypointEditableView.h" #include "ui_QGCCustomWaypointAction.h" +#include "ui_QGCMissionDoWidget.h" WaypointEditableView::WaypointEditableView(Waypoint* wp, QWidget* parent) : QWidget(parent), customCommand(new Ui_QGCCustomWaypointAction), + doCommand(new Ui_QGCMissionDoWidget), viewMode(QGC_WAYPOINTEDITABLEVIEW_MODE_NAV), m_ui(new Ui::WaypointEditableView) { @@ -34,6 +36,9 @@ WaypointEditableView::WaypointEditableView(Waypoint* wp, QWidget* parent) : // CUSTOM COMMAND WIDGET customCommand->setupUi(m_ui->customActionWidget); + // DO COMMAND WIDGET + //doCommand->setupUi(m_ui->customActionWidget); + // add actions m_ui->comboBox_action->addItem(tr("NAV: Waypoint"),MAV_CMD_NAV_WAYPOINT); @@ -43,7 +48,7 @@ WaypointEditableView::WaypointEditableView(Waypoint* wp, QWidget* parent) : m_ui->comboBox_action->addItem(tr("NAV: Loiter Turns"),MAV_CMD_NAV_LOITER_TURNS); m_ui->comboBox_action->addItem(tr("NAV: Ret. to Launch"),MAV_CMD_NAV_RETURN_TO_LAUNCH); m_ui->comboBox_action->addItem(tr("NAV: Land"),MAV_CMD_NAV_LAND); -// m_ui->comboBox_action->addItem(tr("NAV: Target"),MAV_CMD_NAV_TARGET); + //m_ui->comboBox_action->addItem(tr("NAV: Target"),MAV_CMD_NAV_TARGET); //m_ui->comboBox_action->addItem(tr("IF: Delay over"),MAV_CMD_CONDITION_DELAY); //m_ui->comboBox_action->addItem(tr("IF: Yaw angle is"),MAV_CMD_CONDITION_YAW); //m_ui->comboBox_action->addItem(tr("DO: Jump to Index"),MAV_CMD_DO_JUMP); @@ -143,6 +148,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->holdTimeSpinBox->hide(); m_ui->acceptanceSpinBox->hide(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 82); m_ui->takeOffAngleSpinBox->show(); break; @@ -155,6 +162,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->holdTimeSpinBox->hide(); m_ui->acceptanceSpinBox->hide(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 26); break; case MAV_CMD_NAV_RETURN_TO_LAUNCH: @@ -166,6 +175,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->holdTimeSpinBox->hide(); m_ui->acceptanceSpinBox->hide(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 26); break; case MAV_CMD_NAV_WAYPOINT: @@ -174,6 +185,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->turnsSpinBox->hide(); m_ui->holdTimeSpinBox->show(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 1); m_ui->autoContinue->show(); @@ -188,6 +201,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->holdTimeSpinBox->hide(); m_ui->acceptanceSpinBox->hide(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 25); m_ui->orbitSpinBox->show(); break; @@ -198,6 +213,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->holdTimeSpinBox->hide(); m_ui->acceptanceSpinBox->hide(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 20); m_ui->orbitSpinBox->show(); m_ui->turnsSpinBox->show(); @@ -209,6 +226,8 @@ void WaypointEditableView::updateActionView(int action) m_ui->autoContinue->hide(); m_ui->acceptanceSpinBox->hide(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); m_ui->horizontalLayout->insertStretch(17, 20); m_ui->orbitSpinBox->show(); m_ui->holdTimeSpinBox->show(); @@ -219,7 +238,8 @@ void WaypointEditableView::updateActionView(int action) // m_ui->turnsSpinBox->hide(); // m_ui->holdTimeSpinBox->show(); // m_ui->customActionWidget->hide(); - +// m_ui->missionDoWidgetSlot->hide(); +// m_ui->missionConditionWidgetSlot->hide(); // m_ui->autoContinue->show(); // m_ui->acceptanceSpinBox->hide(); // m_ui->yawSpinBox->hide(); @@ -260,6 +280,11 @@ void WaypointEditableView::changedAction(int index) // Update view updateActionView(actionIndex); break; + case MAV_CMD_DO_JUMP: + { + changeViewMode(QGC_WAYPOINTEDITABLEVIEW_MODE_DO); + break; + } case MAV_CMD_ENUM_END: default: // Switch to mission frame @@ -276,9 +301,32 @@ void WaypointEditableView::changeViewMode(QGC_WAYPOINTEDITABLEVIEW_MODE mode) case QGC_WAYPOINTEDITABLEVIEW_MODE_CONDITION: // Hide everything, show condition widget // TODO + break; case QGC_WAYPOINTEDITABLEVIEW_MODE_DO: + { + // Hide almost everything + m_ui->orbitSpinBox->hide(); + m_ui->takeOffAngleSpinBox->hide(); + m_ui->yawSpinBox->hide(); + m_ui->turnsSpinBox->hide(); + m_ui->holdTimeSpinBox->hide(); + m_ui->acceptanceSpinBox->hide(); + m_ui->posDSpinBox->hide(); + m_ui->posESpinBox->hide(); + m_ui->posNSpinBox->hide(); + m_ui->latSpinBox->hide(); + m_ui->lonSpinBox->hide(); + m_ui->altSpinBox->hide(); + // Show action widget + if (!m_ui->missionDoWidgetSlot->isVisible()) { + m_ui->missionDoWidgetSlot->show(); + } + if (!m_ui->autoContinue->isVisible()) { + m_ui->autoContinue->show(); + } break; + } case QGC_WAYPOINTEDITABLEVIEW_MODE_DIRECT_EDITING: // Hide almost everything m_ui->orbitSpinBox->hide(); @@ -325,6 +373,8 @@ void WaypointEditableView::updateFrameView(int frame) // Coordinate frame m_ui->comboBox_frame->show(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); } else // do not hide customActionWidget if Command is set to "Other" { @@ -343,6 +393,8 @@ void WaypointEditableView::updateFrameView(int frame) // Coordinate frame m_ui->comboBox_frame->show(); m_ui->customActionWidget->hide(); + m_ui->missionDoWidgetSlot->hide(); + m_ui->missionConditionWidgetSlot->hide(); } else // do not hide customActionWidget if Command is set to "Other" { @@ -493,7 +545,7 @@ void WaypointEditableView::updateValues() if (m_ui->posDSpinBox->value() != wp->getZ()) { m_ui->posDSpinBox->setValue(wp->getZ()); } - } + } break; case MAV_FRAME_GLOBAL: case MAV_FRAME_GLOBAL_RELATIVE_ALT: { diff --git a/src/ui/WaypointEditableView.h b/src/ui/WaypointEditableView.h index d2b6c3322b85251f5e788347d76ab51ede36c4b4..5a734ae9ff53a524bd0c3a7e1e3634dec8a46fc0 100644 --- a/src/ui/WaypointEditableView.h +++ b/src/ui/WaypointEditableView.h @@ -49,7 +49,7 @@ namespace Ui class WaypointEditableView; } class Ui_QGCCustomWaypointAction; - +class Ui_QGCMissionDoWidget; class WaypointEditableView : public QWidget { Q_OBJECT @@ -84,6 +84,7 @@ protected: // Special widgets extendending the // waypoint view to mission capabilities Ui_QGCCustomWaypointAction* customCommand; + Ui_QGCMissionDoWidget* doCommand; QGC_WAYPOINTEDITABLEVIEW_MODE viewMode; private: diff --git a/src/ui/WaypointEditableView.ui b/src/ui/WaypointEditableView.ui index 5ba5bb569893624c285890fe2cf068fb09779e36..0d58c6da564befb65d990782f193613db49cafe7 100644 --- a/src/ui/WaypointEditableView.ui +++ b/src/ui/WaypointEditableView.ui @@ -7,7 +7,7 @@ 0 0 2208 - 39 + 37 @@ -96,7 +96,7 @@ QPushButton:pressed { - + 2 @@ -121,10 +121,10 @@ QPushButton:pressed { Qt::TabFocus - Currently selected waypoint + Mission Start - Currently selected waypoint + Mission Start @@ -465,16 +465,16 @@ QPushButton:pressed { Qt::StrongFocus - Loiter radius + Loiter radius. Negative for counter-clockwise - Loiter radius + Loiter radius. Negative for counter-clockwise m - 0.050000000000000 + -5000.000000000000000 5000.000000000000000 @@ -519,11 +519,10 @@ where to accept this waypoint as reached - Rotaty wing and ground vehicles only: -Time to stay at this position before advancing + Time to stay/loiter at this position before advancing - Rotaty wing and ground vehicles only: Time to stay at this position before advancing + Time to stay/loiter at this position before advancing s @@ -595,7 +594,33 @@ Time to stay at this position before advancing - + + 0 + 0 + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + 0 0 diff --git a/src/ui/WaypointViewOnlyView.cc b/src/ui/WaypointViewOnlyView.cc index 8e51ec26705ec8a72d18f300e382a050ba04876d..808cbf55a39216e9d35ef3da0bf352a20a1a0ddd 100644 --- a/src/ui/WaypointViewOnlyView.cc +++ b/src/ui/WaypointViewOnlyView.cc @@ -15,65 +15,62 @@ WaypointViewOnlyView::WaypointViewOnlyView(Waypoint* wp, QWidget *parent) : } void WaypointViewOnlyView::changedAutoContinue(int state) -{ +{ bool new_value = false; if (state != 0) { new_value = true; } - m_ui->autoContinue->blockSignals(true); - m_ui->autoContinue->setChecked(state); - m_ui->autoContinue->blockSignals(false); - wp->setAutocontinue(new_value); + wp->setAutocontinue(new_value); emit changeAutoContinue(wp->getId(),new_value); } void WaypointViewOnlyView::changedCurrent(int state) +//This is a slot receiving signals from QCheckBox m_ui->current. The state given here is whatever the user has clicked and not the true "current" value onboard. { qDebug() << "Trof: WaypointViewOnlyView::changedCurrent(" << state << ") ID:" << wp->getId(); - m_ui->current->blockSignals(true); - if (state == 0) - { - /* + m_ui->current->blockSignals(true); - m_ui->current->setStyleSheet(""); - - */ - if (wp->getCurrent() == true) //User clicked on the waypoint, that is already current + if (m_ui->current->isChecked() == false) + { + if (wp->getCurrent() == true) //User clicked on the waypoint, that is already current. Box stays checked { - m_ui->current->setChecked(true); m_ui->current->setCheckState(Qt::Checked); + qDebug() << "Trof: WaypointViewOnlyView::changedCurrent. Rechecked true. stay true " << m_ui->current->isChecked(); } - else + else // Strange case, unchecking the box which was not checked to start with { - m_ui->current->setChecked(false); - m_ui->current->setCheckState(Qt::Unchecked); - wp->setCurrent(false); + m_ui->current->setCheckState(Qt::Unchecked); + qDebug() << "Trof: WaypointViewOnlyView::changedCurrent. Unchecked false. set false " << m_ui->current->isChecked(); } } else - { - /* - FIXME: The checkbox should turn gray to indicate, that set_current request has been sent to UAV. It should become blue (checked) after receiving set_current_ack from waypointplanner. - - m_ui->current->setStyleSheet("*::indicator { \ - border: 1px solid #777777; \ - border-radius: 2px; \ - color: #999999; \ - width: 10px; \ - height: 10px; \ - }"); - */ - wp->setCurrent(true); + { + hightlightDesiredCurrent(true); + m_ui->current->setCheckState(Qt::Unchecked); + qDebug() << "Trof: WaypointViewOnlyView::changedCurrent. Checked new. Sending set_current request to Manager " << m_ui->current->isChecked(); emit changeCurrentWaypoint(wp->getId()); //the slot changeCurrentWaypoint() in WaypointList sets all other current flags to false + } m_ui->current->blockSignals(false); } void WaypointViewOnlyView::setCurrent(bool state) +//This is a slot receiving signals from UASWaypointManager. The state given here is the true representation of what the "current" waypoint on UAV is. { - m_ui->current->blockSignals(true); - m_ui->current->setChecked(state); + m_ui->current->blockSignals(true); + if (state == true) + { + wp->setCurrent(true); + hightlightDesiredCurrent(true); + m_ui->current->setCheckState(Qt::Checked); + } + else + { + wp->setCurrent(false); + hightlightDesiredCurrent(false); + m_ui->current->setCheckState(Qt::Unchecked); + } m_ui->current->blockSignals(false); } @@ -159,12 +156,11 @@ void WaypointViewOnlyView::updateValues() } } - - + hightlightDesiredCurrent(wp->getCurrent()); if (m_ui->current->isChecked() != wp->getCurrent()) { m_ui->current->blockSignals(true); - m_ui->current->setChecked(wp->getCurrent()); + m_ui->current->setChecked(wp->getCurrent()); m_ui->current->blockSignals(false); } if (m_ui->autoContinue->isChecked() != wp->getAutoContinue()) @@ -209,6 +205,110 @@ void WaypointViewOnlyView::updateValues() } //end Frame switch break; } + case MAV_CMD_NAV_LOITER_UNLIM: + { + switch (wp->getFrame()) + { + case MAV_FRAME_GLOBAL_RELATIVE_ALT: + case MAV_FRAME_GLOBAL: + { + if (wp->getParam3()>=0) + { + m_ui->displayBar->setText(QString("Go to (lat %1o, lon %2o, alt %3) and loiter there indefinitely (clockwise); rad: %4").arg(wp->getX(),0, 'f', 7).arg(wp->getY(),0, 'f', 7).arg(wp->getZ(),0, 'f', 2).arg(wp->getParam3())); + } + else + { + m_ui->displayBar->setText(QString("Go to (lat %1o, lon %2o, alt %3) and loiter there indefinitely (counter-clockwise); rad: %4").arg(wp->getX(),0, 'f', 7).arg(wp->getY(),0, 'f', 7).arg(wp->getZ(),0, 'f', 2).arg(-wp->getParam3())); + } + break; + } + case MAV_FRAME_LOCAL_NED: + default: + { + if (wp->getParam3()>=0) + { + m_ui->displayBar->setText(QString("Go to (%1, %2, %3) and loiter there indefinitely (clockwise); rad: %4").arg(wp->getX(),0, 'f', 2).arg(wp->getY(),0, 'f', 2).arg(wp->getZ(),0, 'f',2).arg(wp->getParam3())); + } + else + { + m_ui->displayBar->setText(QString("Go to (%1, %2, %3) and loiter there indefinitely (counter-clockwise); rad: %4").arg(wp->getX(),0, 'f', 2).arg(wp->getY(),0, 'f', 2).arg(wp->getZ(),0, 'f', 2).arg(-wp->getParam3())); + } + break; + } + } //end Frame switch + break; + } + case MAV_CMD_NAV_LOITER_TURNS: + { + switch (wp->getFrame()) + { + case MAV_FRAME_GLOBAL_RELATIVE_ALT: + case MAV_FRAME_GLOBAL: + { + if (wp->getParam3()>=0) + { + m_ui->displayBar->setText(QString("Go to (lat %1o, lon %2o, alt %3) and loiter there for %5 turns (clockwise); rad: %4").arg(wp->getX(),0, 'f', 7).arg(wp->getY(),0, 'f', 7).arg(wp->getZ(),0, 'f', 2).arg(wp->getParam3()).arg(wp->getParam1())); + } + else + { + m_ui->displayBar->setText(QString("Go to (lat %1o, lon %2o, alt %3) and loiter there for %5 turns (counter-clockwise); rad: %4").arg(wp->getX(),0, 'f', 7).arg(wp->getY(),0, 'f', 7).arg(wp->getZ(),0, 'f', 2).arg(-wp->getParam3()).arg(wp->getParam1())); + } + break; + } + case MAV_FRAME_LOCAL_NED: + default: + { + if (wp->getParam3()>=0) + { + m_ui->displayBar->setText(QString("Go to (%1, %2, %3) and loiter there for %5 turns (clockwise); rad: %4").arg(wp->getX(),0, 'f', 2).arg(wp->getY(),0, 'f', 2).arg(wp->getZ(),0, 'f',2).arg(wp->getParam3()).arg(wp->getParam1())); + } + else + { + m_ui->displayBar->setText(QString("Go to (%1, %2, %3) and loiter there for %5 turns (counter-clockwise); rad: %4").arg(wp->getX(),0, 'f', 2).arg(wp->getY(),0, 'f', 2).arg(wp->getZ(),0, 'f', 2).arg(-wp->getParam3()).arg(wp->getParam1())); + } + break; + } + } //end Frame switch + break; + } + case MAV_CMD_NAV_LOITER_TIME: + { + switch (wp->getFrame()) + { + case MAV_FRAME_GLOBAL_RELATIVE_ALT: + case MAV_FRAME_GLOBAL: + { + if (wp->getParam3()>=0) + { + m_ui->displayBar->setText(QString("Go to (lat %1o, lon %2o, alt %3) and loiter there for %5s (clockwise); rad: %4").arg(wp->getX(),0, 'f', 7).arg(wp->getY(),0, 'f', 7).arg(wp->getZ(),0, 'f', 2).arg(wp->getParam3()).arg(wp->getParam1())); + } + else + { + m_ui->displayBar->setText(QString("Go to (lat %1o, lon %2o, alt %3) and loiter there for %5s (counter-clockwise); rad: %4").arg(wp->getX(),0, 'f', 7).arg(wp->getY(),0, 'f', 7).arg(wp->getZ(),0, 'f', 2).arg(-wp->getParam3()).arg(wp->getParam1())); + } + break; + } + case MAV_FRAME_LOCAL_NED: + default: + { + if (wp->getParam3()>=0) + { + m_ui->displayBar->setText(QString("Go to (%1, %2, %3) and loiter there for %5s (clockwise); rad: %4").arg(wp->getX(),0, 'f', 2).arg(wp->getY(),0, 'f', 2).arg(wp->getZ(),0, 'f',2).arg(wp->getParam3()).arg(wp->getParam1())); + } + else + { + m_ui->displayBar->setText(QString("Go to (%1, %2, %3) and loiter there for %5s (counter-clockwise); rad: %4").arg(wp->getX(),0, 'f', 2).arg(wp->getY(),0, 'f', 2).arg(wp->getZ(),0, 'f', 2).arg(-wp->getParam3()).arg(wp->getParam1())); + } + break; + } + } //end Frame switch + break; + } + case MAV_CMD_NAV_RETURN_TO_LAUNCH: + { + m_ui->displayBar->setText(QString("Return to launch location")); + break; + } case MAV_CMD_NAV_LAND: { switch (wp->getFrame()) @@ -302,6 +402,30 @@ void WaypointViewOnlyView::updateValues() } } +void WaypointViewOnlyView::hightlightDesiredCurrent(bool hightlight_on) +{ + QColor backGroundColor = QGC::colorBackground; + QString checkBoxStyle; + if (wp->getId() % 2 == 1) + { + backGroundColor = QColor("#252528").lighter(150); + } + else + { + backGroundColor = QColor("#252528").lighter(250); + } + + if (hightlight_on) + { + checkBoxStyle = QString("QCheckBox {background-color: %1; color: #454545; border-color: #EEEEEE; } QCheckBox::indicator { border-color: #FFFFFF}").arg(backGroundColor.name()); + } + else + { + checkBoxStyle = QString("QCheckBox {background-color: %1; color: #454545; border-color: #EEEEEE; } QCheckBox::indicator { border-color: QGC::colorBackground}").arg(backGroundColor.name()); + } + m_ui->current->setStyleSheet(checkBoxStyle); +} + WaypointViewOnlyView::~WaypointViewOnlyView() { delete m_ui; diff --git a/src/ui/WaypointViewOnlyView.h b/src/ui/WaypointViewOnlyView.h index 099a3d8b2a425b2dec44b93161c090e59076c2ad..81f3e9a0294409f00c5d840b451b614cce7d40b3 100644 --- a/src/ui/WaypointViewOnlyView.h +++ b/src/ui/WaypointViewOnlyView.h @@ -31,6 +31,7 @@ protected: Waypoint* wp; private: + void hightlightDesiredCurrent(bool hightlight_on); Ui::WaypointViewOnlyView *m_ui; }; diff --git a/src/ui/WaypointViewOnlyView.ui b/src/ui/WaypointViewOnlyView.ui index 76ef552aa2a153d0f909fe85852b54a20f409197..da30a97da732ed6a6c01c44fbe57ba545bdcce7a 100644 --- a/src/ui/WaypointViewOnlyView.ui +++ b/src/ui/WaypointViewOnlyView.ui @@ -96,6 +96,421 @@ margin-top: 1ex; /* leave space at the top for the title */ 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 255 + 0 + + + + + + + 0 + 212 + 0 + + + + + + + 0 + 85 + 0 + + + + + + + 0 + 113 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 127 + 212 + 127 + + + + + + + 255 + 255 + 220 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 255 + 0 + + + + + + + 0 + 212 + 0 + + + + + + + 0 + 85 + 0 + + + + + + + 0 + 113 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 127 + 212 + 127 + + + + + + + 255 + 255 + 220 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 85 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 255 + 0 + + + + + + + 0 + 212 + 0 + + + + + + + 0 + 85 + 0 + + + + + + + 0 + 113 + 0 + + + + + + + 0 + 85 + 0 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 85 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 170 + 0 + + + + + + + 255 + 255 + 220 + + + + + + + 0 + 0 + 0 + + + + + + Currently executed waypoint