Newer
Older
Michael Carpenter
committed
#include <QDockWidget>
#include "QGCTextLabel.h"
#include "ui_QGCTextLabel.h"
#include "MAVLinkProtocol.h"
#include "UASManager.h"
QGCTextLabel::QGCTextLabel(QWidget *parent) :
QGCToolWidgetItem("Text Label", parent),
Michael Carpenter
committed
ui(new Ui::QGCTextLabel)
{
uas = 0;
enabledNum = -1;
ui->setupUi(this);
connect(ui->editFinishButton, SIGNAL(clicked()), this, SLOT(endEditMode()));
connect(ui->isMavCommand, SIGNAL(toggled(bool)), this, SLOT(update_isMavCommand()));
Michael Carpenter
committed
// Hide all edit items
ui->editFinishButton->hide();
ui->editNameLabel->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->isMavCommand->hide();
ui->textLabel->setText(QString());
Lorenz Meier
committed
init();
Michael Carpenter
committed
}
QGCTextLabel::~QGCTextLabel()
{
delete ui;
}
John Tapsell
committed
void QGCTextLabel::setEditMode(bool editMode)
Michael Carpenter
committed
{
John Tapsell
committed
if(!editMode)
update_isMavCommand();
ui->editFinishButton->setVisible(editMode);
ui->editNameLabel->setVisible(editMode);
ui->editLine1->setVisible(editMode);
ui->editLine2->setVisible(editMode);
ui->isMavCommand->setVisible(editMode);
QGCToolWidgetItem::setEditMode(editMode);
Michael Carpenter
committed
}
void QGCTextLabel::writeSettings(QSettings& settings)
{
settings.setValue("TYPE", "TEXT");
settings.setValue("QGC_TEXT_TEXT", ui->editNameLabel->text());
settings.setValue("QGC_TEXT_SOURCE", ui->isMavCommand->isChecked()?"MAV":"NONE");
Michael Carpenter
committed
settings.sync();
}
void QGCTextLabel::readSettings(const QString& pre,const QVariantMap& settings)
{
ui->editNameLabel->setText(settings.value(pre + "QGC_TEXT_TEXT","").toString());
ui->isMavCommand->setChecked(settings.value(pre + "QGC_TEXT_SOURCE", "NONE").toString() == "MAV");
Michael Carpenter
committed
}
void QGCTextLabel::textMessageReceived(int uasid, int component, int severity, QString message)
{
Bryant
committed
Q_UNUSED(uasid);
Q_UNUSED(component);
Q_UNUSED(severity);
Michael Carpenter
committed
if (enabledNum != -1)
{
//SUCCESS: Executed CMD: 241
if (message.contains("SUCCESS"))
{
if (message.trimmed().endsWith(QString::number(enabledNum)))
{
enabledNum = -1;
ui->textLabel->setText(ui->textLabel->text() + " Complete");
}
}
else
{
ui->textLabel->setText(message);
}
}
}
void QGCTextLabel::readSettings(const QSettings& settings)
{
ui->editNameLabel->setText(settings.value("QGC_TEXT_TEXT","").toString()); //Place this before setting isMavCommand
ui->isMavCommand->setChecked(settings.value("QGC_TEXT_SOURCE", "NONE").toString() == "MAV");
Michael Carpenter
committed
}
Michael Carpenter
committed
void QGCTextLabel::enableText(int num)
{
enabledNum = num;
}
void QGCTextLabel::setActiveUAS(UASInterface *uas)
{
if(this->uas)
this->uas->disconnect(this);
Michael Carpenter
committed
this->uas = uas;
update_isMavCommand(); //Might need to update the signal connections
}
void QGCTextLabel::update_isMavCommand()
{
ui->textLabel->setText("");
if (!ui->isMavCommand->isChecked())
{
ui->nameLabel->setText(ui->editNameLabel->text());
if(this->uas)
disconnect(uas,SIGNAL(textMessageReceived(int,int,int,QString)),this,SLOT(textMessageReceived(int,int,int,QString)));
if(ui->nameLabel->text().isEmpty())
ui->nameLabel->setText(tr("Text Label")); //Show something, so that we don't end up with just an empty label
}
else
{
//MAV command text
ui->nameLabel->setText(ui->editNameLabel->text());
if(this->uas)
connect(uas,SIGNAL(textMessageReceived(int,int,int,QString)),this,SLOT(textMessageReceived(int,int,int,QString)));
}