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) :
}
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);
action->setCheckable(true);
......@@ -75,10 +82,8 @@ UASQuickView::UASQuickView(QWidget *parent) :
this->layout()->addWidget(item);
uasPropertyToLabelMap["distToWaypoint"] = item;
}
updateTimer = new QTimer(this);
connect(updateTimer,SIGNAL(timeout()),this,SLOT(updateTimerTick()));
}
void UASQuickView::updateTimerTick()
{
for (int i=0;i<uasPropertyList.size();i++)
......@@ -108,13 +113,25 @@ void UASQuickView::setActiveUAS(UASInterface* uas)
{
uasPropertyList.clear();
uasPropertyValueMap.clear();
foreach (UASQuickViewItem* i, uasPropertyToLabelMap.values())
{
i->deleteLater();
}
uasPropertyToLabelMap.clear();
updateTimer->stop();
this->actions().clear();
foreach (QAction* i, this->actions())
{
i->deleteLater();
}
}
// Update the UAS to point to the new one.
this->uas = uas;
// And re-add the default actions.
addDefaultActions();
// And connect the new one if it exists.
if (this->uas)
{
......
......@@ -14,6 +14,10 @@ class UASQuickView : public QWidget
public:
UASQuickView(QWidget *parent = 0);
private:
/**
* Adds a default set of actions to the widget's menu.
*/
void addDefaultActions();
UASInterface *uas;
QList<QString> uasPropertyList;
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