Newer
Older
lm
committed
#include "QGCToolWidgetItem.h"
#include <QMenu>
#include <QContextMenuEvent>
lm
committed
#include "UASManager.h"
John Tapsell
committed
#include <QDockWidget>
lm
committed
QGCToolWidgetItem::QGCToolWidgetItem(const QString& name, QWidget *parent) :
lm
committed
QWidget(parent),
John Tapsell
committed
uas(NULL),
lm
committed
isInEditMode(false),
lm
committed
qgcToolWidgetItemName(name),
lm
committed
_component(-1)
{
startEditAction = new QAction(tr("Edit %1").arg(qgcToolWidgetItemName), this);
lm
committed
connect(startEditAction, SIGNAL(triggered()), this, SLOT(startEditMode()));
stopEditAction = new QAction(tr("Finish Editing %1").arg(qgcToolWidgetItemName), this);
lm
committed
connect(stopEditAction, SIGNAL(triggered()), this, SLOT(endEditMode()));
deleteAction = new QAction(tr("Delete %1").arg(qgcToolWidgetItemName), this);
connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteLater()));
lm
committed
connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)),
this, SLOT(setActiveUAS(UASInterface*)));
// Set first UAS if it exists
setActiveUAS(UASManager::instance()->getActiveUAS());
lm
committed
}
QGCToolWidgetItem::~QGCToolWidgetItem()
{
delete startEditAction;
delete stopEditAction;
lm
committed
}
void QGCToolWidgetItem::contextMenuEvent (QContextMenuEvent* event)
{
QMenu menu(this);
lm
committed
menu.addAction(startEditAction);
lm
committed
menu.addAction(stopEditAction);
}
menu.exec(event->globalPos());
}
lm
committed
void QGCToolWidgetItem::setActiveUAS(UASInterface *uas)
{
this->uas = uas;
}
John Tapsell
committed
void QGCToolWidgetItem::setEditMode(bool editMode)
{
isInEditMode = editMode;
// Attempt to undock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(editMode);
break;
}
} while (p && !dock);
emit editingFinished();
}