Commit 8c2dfea5 authored by Bryant's avatar Bryant

The QuickView now properly resets after the last UAS is deleted.

parent a37f8489
...@@ -15,7 +15,14 @@ UASQuickView::UASQuickView(QWidget *parent) : ...@@ -15,7 +15,14 @@ UASQuickView::UASQuickView(QWidget *parent) :
} }
this->setContextMenuPolicy(Qt::ActionsContextMenu); this->setContextMenuPolicy(Qt::ActionsContextMenu);
addDefaultActions();
updateTimer = new QTimer(this);
connect(updateTimer,SIGNAL(timeout()),this,SLOT(updateTimerTick()));
}
void UASQuickView::addDefaultActions()
{
{ {
QAction *action = new QAction(tr("latitude"),this); QAction *action = new QAction(tr("latitude"),this);
action->setCheckable(true); action->setCheckable(true);
...@@ -75,10 +82,8 @@ UASQuickView::UASQuickView(QWidget *parent) : ...@@ -75,10 +82,8 @@ UASQuickView::UASQuickView(QWidget *parent) :
this->layout()->addWidget(item); this->layout()->addWidget(item);
uasPropertyToLabelMap["distToWaypoint"] = item; uasPropertyToLabelMap["distToWaypoint"] = item;
} }
updateTimer = new QTimer(this);
connect(updateTimer,SIGNAL(timeout()),this,SLOT(updateTimerTick()));
} }
void UASQuickView::updateTimerTick() void UASQuickView::updateTimerTick()
{ {
for (int i=0;i<uasPropertyList.size();i++) for (int i=0;i<uasPropertyList.size();i++)
...@@ -108,13 +113,25 @@ void UASQuickView::setActiveUAS(UASInterface* uas) ...@@ -108,13 +113,25 @@ void UASQuickView::setActiveUAS(UASInterface* uas)
{ {
uasPropertyList.clear(); uasPropertyList.clear();
uasPropertyValueMap.clear(); uasPropertyValueMap.clear();
foreach (UASQuickViewItem* i, uasPropertyToLabelMap.values())
{
i->deleteLater();
}
uasPropertyToLabelMap.clear(); uasPropertyToLabelMap.clear();
updateTimer->stop(); updateTimer->stop();
this->actions().clear(); foreach (QAction* i, this->actions())
{
i->deleteLater();
}
} }
// Update the UAS to point to the new one.
this->uas = uas; this->uas = uas;
// And re-add the default actions.
addDefaultActions();
// And connect the new one if it exists. // And connect the new one if it exists.
if (this->uas) if (this->uas)
{ {
......
...@@ -14,6 +14,10 @@ class UASQuickView : public QWidget ...@@ -14,6 +14,10 @@ class UASQuickView : public QWidget
public: public:
UASQuickView(QWidget *parent = 0); UASQuickView(QWidget *parent = 0);
private: private:
/**
* Adds a default set of actions to the widget's menu.
*/
void addDefaultActions();
UASInterface *uas; UASInterface *uas;
QList<QString> uasPropertyList; QList<QString> uasPropertyList;
QMap<QString,double> uasPropertyValueMap; QMap<QString,double> uasPropertyValueMap;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment