Commit bd3b7ea3 authored by John Tapsell's avatar John Tapsell

Merge the startEditMode() and endEditMode() functions into one, and remove code duplication

parent 98abf5a7
......@@ -167,70 +167,42 @@ void QGCComboBox::selectParameter(int paramIndex)
}
}
void QGCComboBox::startEditMode()
void QGCComboBox::setEditMode(bool editMode)
{
ui->nameLabel->hide();
ui->writeButton->hide();
ui->readButton->hide();
ui->editInfoCheckBox->show();
ui->editDoneButton->show();
ui->editNameLabel->show();
ui->editRefreshParamsButton->show();
ui->editSelectParamComboBox->show();
ui->editSelectComponentComboBox->show();
ui->editStatusLabel->show();
ui->writeButton->hide();
ui->readButton->hide();
ui->editLine1->show();
ui->editLine2->show();
ui->editAddItemButton->show();
ui->editRemoveItemButton->show();
ui->editItemValueSpinBox->show();
ui->editItemNameLabel->show();
ui->itemValueLabel->show();
ui->itemNameLabel->show();
if (isDisabled)
{
ui->editOptionComboBox->setEnabled(true);
if(!editMode) {
// Store component id
selectComponent(ui->editSelectComponentComboBox->currentIndex());
// Store parameter name and id
selectParameter(ui->editSelectParamComboBox->currentIndex());
}
isInEditMode = true;
}
void QGCComboBox::endEditMode()
{
// Store component id
selectComponent(ui->editSelectComponentComboBox->currentIndex());
// Store parameter name and id
selectParameter(ui->editSelectParamComboBox->currentIndex());
// Min/max
ui->editInfoCheckBox->hide();
ui->editDoneButton->hide();
ui->editNameLabel->hide();
ui->editRefreshParamsButton->hide();
ui->editSelectParamComboBox->hide();
ui->editSelectComponentComboBox->hide();
ui->editStatusLabel->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->writeButton->show();
ui->readButton->show();
ui->editAddItemButton->hide();
ui->editRemoveItemButton->hide();
ui->editItemValueSpinBox->hide();
ui->editItemNameLabel->hide();
ui->itemValueLabel->hide();
ui->itemNameLabel->hide();
ui->nameLabel->show();
ui->nameLabel->setVisible(!editMode);
ui->writeButton->setVisible(!editMode);
ui->readButton->setVisible(!editMode);
ui->editInfoCheckBox->setVisible(editMode);
ui->editDoneButton->setVisible(editMode);
ui->editNameLabel->setVisible(editMode);
ui->editRefreshParamsButton->setVisible(editMode);
ui->editSelectParamComboBox->setVisible(editMode);
ui->editSelectComponentComboBox->setVisible(editMode);
ui->editStatusLabel->setVisible(editMode);
ui->writeButton->setVisible(!editMode);
ui->readButton->setVisible(!editMode);
ui->editLine1->setVisible(editMode);
ui->editLine2->setVisible(editMode);
ui->editAddItemButton->setVisible(editMode);
ui->editRemoveItemButton->setVisible(editMode);
ui->editItemValueSpinBox->setVisible(editMode);
ui->editItemNameLabel->setVisible(editMode);
ui->itemValueLabel->setVisible(editMode);
ui->itemNameLabel->setVisible(editMode);
if (isDisabled)
{
ui->editOptionComboBox->setEnabled(false);
ui->editOptionComboBox->setEnabled(editMode);
}
isInEditMode = false;
emit editingFinished();
QGCToolWidgetItem::setEditMode(editMode);
}
void QGCComboBox::setParamPending()
......
......@@ -22,9 +22,9 @@ public:
explicit QGCComboBox(QWidget *parent = 0);
~QGCComboBox();
virtual void setEditMode(bool editMode) override;
public slots:
void startEditMode();
void endEditMode();
/** @brief Queue parameter for sending to the MAV (add to pending list)*/
void setParamPending();
/** @brief Update the UI with the new parameter value */
......
......@@ -159,93 +159,33 @@ void QGCCommandButton::setCommandButtonName(QString text)
ui->commandButton->setText(text);
}
void QGCCommandButton::startEditMode()
void QGCCommandButton::setEditMode(bool editMode)
{
// Hide elements
ui->commandButton->hide();
ui->nameLabel->hide();
ui->editCommandComboBox->blockSignals(false);
ui->editCommandComboBox->show();
ui->editFinishButton->show();
ui->editNameLabel->show();
ui->editButtonName->show();
ui->editConfirmationCheckBox->show();
ui->editComponentSpinBox->show();
ui->editParamsVisibleCheckBox->show();
ui->editParam1SpinBox->show();
ui->editParam2SpinBox->show();
ui->editParam3SpinBox->show();
ui->editParam4SpinBox->show();
ui->editParam5SpinBox->show();
ui->editParam6SpinBox->show();
ui->editParam7SpinBox->show();
ui->editLine1->show();
ui->editLine2->show();
// Attempt to undock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(true);
break;
}
} while (p && !dock);
isInEditMode = true;
}
void QGCCommandButton::endEditMode()
{
ui->editCommandComboBox->blockSignals(true);
ui->editCommandComboBox->hide();
ui->editFinishButton->hide();
ui->editNameLabel->hide();
ui->editButtonName->hide();
ui->editConfirmationCheckBox->hide();
ui->editComponentSpinBox->hide();
ui->editParamsVisibleCheckBox->hide();
ui->editLine1->hide();
ui->editLine2->hide();
if (!ui->editParamsVisibleCheckBox->isChecked())
{
ui->editParam1SpinBox->hide();
ui->editParam2SpinBox->hide();
ui->editParam3SpinBox->hide();
ui->editParam4SpinBox->hide();
ui->editParam5SpinBox->hide();
ui->editParam6SpinBox->hide();
ui->editParam7SpinBox->hide();
}
ui->commandButton->show();
ui->nameLabel->show();
// Write to settings
emit editingFinished();
// Attempt to dock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(false);
break;
}
} while (p && !dock);
isInEditMode = false;
ui->commandButton->setVisible(!editMode);
ui->nameLabel->setVisible(!editMode);
ui->editCommandComboBox->blockSignals(!editMode);
ui->editCommandComboBox->setVisible(editMode);
ui->editFinishButton->setVisible(editMode);
ui->editNameLabel->setVisible(editMode);
ui->editButtonName->setVisible(editMode);
ui->editConfirmationCheckBox->setVisible(editMode);
ui->editComponentSpinBox->setVisible(editMode);
ui->editParamsVisibleCheckBox->setVisible(editMode);
bool showParams = editMode || ui->editParamsVisibleCheckBox->isChecked();
ui->editParam1SpinBox->setVisible(showParams);
ui->editParam2SpinBox->setVisible(showParams);
ui->editParam3SpinBox->setVisible(showParams);
ui->editParam4SpinBox->setVisible(showParams);
ui->editParam5SpinBox->setVisible(showParams);
ui->editParam6SpinBox->setVisible(showParams);
ui->editParam7SpinBox->setVisible(showParams);
ui->editLine1->setVisible(editMode);
ui->editLine2->setVisible(editMode);
QGCToolWidgetItem::setEditMode(editMode);
}
void QGCCommandButton::writeSettings(QSettings& settings)
......
......@@ -18,11 +18,11 @@ public:
explicit QGCCommandButton(QWidget *parent = 0);
~QGCCommandButton();
virtual void setEditMode(bool editMode) override;
public slots:
void sendCommand();
void setCommandButtonName(QString text);
void startEditMode();
void endEditMode();
void writeSettings(QSettings& settings);
void readSettings(const QSettings& settings);
void readSettings(const QString& pre,const QVariantMap& settings);
......
......@@ -207,74 +207,57 @@ void QGCParamSlider::selectParameter(int paramIndex)
}
}
void QGCParamSlider::startEditMode()
void QGCParamSlider::setEditMode(bool editMode)
{
ui->valueSlider->hide();
ui->doubleValueSpinBox->hide();
ui->intValueSpinBox->hide();
ui->nameLabel->hide();
ui->writeButton->hide();
ui->readButton->hide();
ui->editInfoCheckBox->show();
ui->editDoneButton->show();
ui->editNameLabel->show();
ui->editRefreshParamsButton->show();
ui->editSelectParamComboBox->show();
ui->editSelectComponentComboBox->show();
ui->editStatusLabel->show();
ui->editMinSpinBox->show();
ui->editMaxSpinBox->show();
ui->writeButton->hide();
ui->readButton->hide();
ui->editLine1->show();
ui->editLine2->show();
isInEditMode = true;
}
if(!editMode) {
// Store component id
selectComponent(ui->editSelectComponentComboBox->currentIndex());
void QGCParamSlider::endEditMode()
{
// Store component id
selectComponent(ui->editSelectComponentComboBox->currentIndex());
// Store parameter name and id
selectParameter(ui->editSelectParamComboBox->currentIndex());
// Store parameter name and id
selectParameter(ui->editSelectParamComboBox->currentIndex());
// Min/max
parameterMin = ui->editMinSpinBox->value();
parameterMax = ui->editMaxSpinBox->value();
// Min/max
parameterMin = ui->editMinSpinBox->value();
parameterMax = ui->editMaxSpinBox->value();
ui->editInfoCheckBox->hide();
ui->editDoneButton->hide();
ui->editNameLabel->hide();
ui->editRefreshParamsButton->hide();
ui->editSelectParamComboBox->hide();
ui->editSelectComponentComboBox->hide();
ui->editStatusLabel->hide();
ui->editMinSpinBox->hide();
ui->editMaxSpinBox->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->writeButton->show();
ui->readButton->show();
ui->valueSlider->show();
switch ((int)parameterValue.type())
{
case QVariant::Char:
case QVariant::Int:
case QVariant::UInt:
ui->intValueSpinBox->show();
break;
case QMetaType::Float:
ui->doubleValueSpinBox->show();
break;
default:
qCritical() << "ERROR: NO VALID PARAM TYPE";
return;
switch ((int)parameterValue.type())
{
case QVariant::Char:
case QVariant::Int:
case QVariant::UInt:
ui->intValueSpinBox->show();
break;
case QMetaType::Float:
ui->doubleValueSpinBox->show();
break;
default:
qCritical() << "ERROR: NO VALID PARAM TYPE";
return;
}
} else {
ui->doubleValueSpinBox->hide();
ui->intValueSpinBox->hide();
}
ui->nameLabel->show();
isInEditMode = false;
emit editingFinished();
ui->valueSlider->setVisible(!editMode);
ui->nameLabel->setVisible(!editMode);
ui->writeButton->setVisible(!editMode);
ui->readButton->setVisible(!editMode);
ui->editInfoCheckBox->setVisible(editMode);
ui->editDoneButton->setVisible(editMode);
ui->editNameLabel->setVisible(editMode);
ui->editRefreshParamsButton->setVisible(editMode);
ui->editSelectParamComboBox->setVisible(editMode);
ui->editSelectComponentComboBox->setVisible(editMode);
ui->editStatusLabel->setVisible(editMode);
ui->editMinSpinBox->setVisible(editMode);
ui->editMaxSpinBox->setVisible(editMode);
ui->writeButton->setVisible(!editMode);
ui->readButton->setVisible(!editMode);
ui->editLine1->setVisible(editMode);
ui->editLine2->setVisible(editMode);
QGCToolWidgetItem::setEditMode(editMode);
}
void QGCParamSlider::setParamPending()
......
......@@ -20,9 +20,9 @@ public:
explicit QGCParamSlider(QWidget *parent = 0);
~QGCParamSlider();
virtual void setEditMode(bool editMode) override;
public slots:
void startEditMode();
void endEditMode();
/** @brief Queue parameter for sending to the MAV (add to pending list)*/
void setParamPending();
/** @brief Set the slider value as parameter value */
......
......@@ -20,6 +20,7 @@ public:
int value() { return m_value; }
int min() { return m_min; }
int max() { return m_max; }
protected:
void paintEvent(QPaintEvent *event);
private:
......
......@@ -31,61 +31,17 @@ QGCTextLabel::~QGCTextLabel()
delete ui;
}
void QGCTextLabel::startEditMode()
void QGCTextLabel::setEditMode(bool editMode)
{
// Hide elements
ui->editFinishButton->show();
ui->editNameLabel->show();
ui->editLine1->show();
ui->editLine2->show();
ui->isMavCommand->show();
// Attempt to undock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(true);
break;
}
} while (p && !dock);
isInEditMode = true;
}
void QGCTextLabel::endEditMode()
{
update_isMavCommand();
ui->editFinishButton->hide();
ui->editNameLabel->hide();
ui->editLine1->hide();
ui->editLine2->hide();
ui->isMavCommand->hide();
// Write to settings
emit editingFinished();
// Attempt to dock the dock widget
QWidget* p = this;
QDockWidget* dock;
do {
p = p->parentWidget();
dock = dynamic_cast<QDockWidget*>(p);
if (dock)
{
dock->setFloating(false);
break;
}
} while (p && !dock);
isInEditMode = false;
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);
}
void QGCTextLabel::writeSettings(QSettings& settings)
......
......@@ -19,9 +19,8 @@ public:
~QGCTextLabel();
void setActiveUAS(UASInterface *uas);
void enableText(int num);
virtual void setEditMode(bool editMode) override;
public slots:
void startEditMode();
void endEditMode();
void writeSettings(QSettings& settings);
void readSettings(const QSettings& settings);
void readSettings(const QString& pre,const QVariantMap& settings);
......
......@@ -5,12 +5,13 @@
#include "QGCToolWidget.h"
#include "UASManager.h"
#include <QDockWidget>
QGCToolWidgetItem::QGCToolWidgetItem(const QString& name, QWidget *parent) :
QWidget(parent),
uas(NULL),
isInEditMode(false),
qgcToolWidgetItemName(name),
uas(NULL),
_component(-1)
{
startEditAction = new QAction(tr("Edit %1").arg(qgcToolWidgetItemName), this);
......@@ -49,3 +50,25 @@ void QGCToolWidgetItem::setActiveUAS(UASInterface *uas)
{
this->uas = uas;
}
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();
}
......@@ -18,9 +18,12 @@ public:
return _component;
}
virtual void setEditMode(bool editMode);
bool isEditMode() const { return isInEditMode; }
public slots:
virtual void startEditMode() {}
virtual void endEditMode() {}
void startEditMode() { setEditMode(true); }
void endEditMode() { setEditMode(false); }
virtual void setComponent(int comp) {
_component = comp;
}
......@@ -33,15 +36,18 @@ signals:
void editingFinished();
protected:
void contextMenuEvent (QContextMenuEvent* event);
UASInterface* uas;
private:
QAction* startEditAction;
QAction* stopEditAction;
QAction* deleteAction;
bool isInEditMode;
QString qgcToolWidgetItemName;
UASInterface* uas;
int _component; ///< The MAV component (the process or device ID)
void contextMenuEvent (QContextMenuEvent* event);
};
......
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