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