1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-26 15:54:15 +01:00

LP-245 config: cleanup connect/disconnect handling

This commit is contained in:
Philippe Renon 2016-09-16 09:38:58 +02:00 committed by Philippe Renon
parent 841468519e
commit c9f4440504
8 changed files with 26 additions and 26 deletions

View File

@ -96,6 +96,8 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) :
addApplySaveButtons(ui->saveRCInputToRAM, ui->saveRCInputToSD);
ui->saveRCInputToRAM->setVisible(expertMode());
connect(this, SIGNAL(enableControlsChanged(bool)), this, SLOT(enableControlsChanged(bool)));
manualCommandObj = ManualControlCommand::GetInstance(getObjectManager());
manualSettingsObj = ManualControlSettings::GetInstance(getObjectManager());
flightModeSettingsObj = FlightModeSettings::GetInstance(getObjectManager());
@ -249,8 +251,6 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) :
connect(ui->failsafeFlightMode, SIGNAL(currentIndexChanged(int)), this, SLOT(failsafeFlightModeChanged(int)));
connect(ui->failsafeFlightModeCb, SIGNAL(toggled(bool)), this, SLOT(failsafeFlightModeCbToggled(bool)));
connect(this, SIGNAL(enableControlsChanged(bool)), this, SLOT(enableControlsChanged(bool)));
addWidget(ui->configurationWizard);
addWidget(ui->runCalibration);
addWidget(ui->failsafeFlightModeCb);
@ -2188,5 +2188,5 @@ void ConfigInputWidget::failsafeFlightModeCbToggled(bool checked)
void ConfigInputWidget::enableControlsChanged(bool enabled)
{
ui->failsafeFlightMode->setEnabled(enabled && ui->failsafeFlightMode->currentIndex() != -1);
ui->failsafeFlightMode->setEnabled(enabled && (ui->failsafeFlightMode->currentIndex() != -1));
}

View File

@ -59,6 +59,8 @@ ConfigOPLinkWidget::ConfigOPLinkWidget(QWidget *parent) : ConfigTaskWidget(paren
addApplySaveButtons(m_oplink->Apply, m_oplink->Save);
m_oplink->Apply->setVisible(expertMode());
connect(this, SIGNAL(connected()), this, SLOT(connected()));
oplinkStatusObj = dynamic_cast<OPLinkStatus *>(getObject("OPLinkStatus"));
Q_ASSERT(oplinkStatusObj);
@ -137,9 +139,9 @@ ConfigOPLinkWidget::ConfigOPLinkWidget(QWidget *parent) : ConfigTaskWidget(paren
ConfigOPLinkWidget::~ConfigOPLinkWidget()
{}
void ConfigOPLinkWidget::onConnectImpl()
void ConfigOPLinkWidget::connected()
{
// qDebug() << "ConfigOPLinkWidget::onConnectImpl()";
// qDebug() << "ConfigOPLinkWidget::connected()";
statusUpdated = false;
// Request and update of the setting object if we haven't received it yet.

View File

@ -43,7 +43,6 @@ public:
~ConfigOPLinkWidget();
protected:
virtual void onConnectImpl();
virtual void refreshWidgetsValuesImpl(UAVObject *obj);
private:
@ -62,6 +61,8 @@ private:
void setPortsVisible(bool visible);
private slots:
void connected();
void protocolChanged();
void linkTypeChanged();

View File

@ -69,6 +69,8 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
ui->saveStabilizationToRAM_6->setVisible(expertMode());
connect(this, SIGNAL(enableControlsChanged(bool)), this, SLOT(enableControlsChanged(bool)));
setupExpoPlot();
realtimeUpdates = new QTimer(this);
@ -638,17 +640,12 @@ void ConfigStabilizationWidget::processLinkedWidgets(QWidget *widget)
}
}
void ConfigStabilizationWidget::onConnectImpl()
void ConfigStabilizationWidget::enableControlsChanged(bool enable)
{
// If Revolution/Sparky2 board enable Althold tab, otherwise disable it
bool enableAltitudeHold = (((boardModel() & 0xff00) == 0x0900) || ((boardModel() & 0xff00) == 0x9200));
ui->AltitudeHold->setEnabled(enableAltitudeHold);
}
void ConfigStabilizationWidget::onDisconnectImpl()
{
ui->AltitudeHold->setEnabled(false);
ui->AltitudeHold->setEnabled(enable && enableAltitudeHold);
}
void ConfigStabilizationWidget::stabBankChanged(int index)

View File

@ -58,8 +58,6 @@ public:
protected:
QString mapObjectName(const QString objectName);
virtual void onConnectImpl();
virtual void onDisconnectImpl();
virtual void refreshWidgetsValuesImpl(UAVObject *obj);
virtual void updateObjectsFromWidgetsImpl();
@ -96,6 +94,8 @@ private:
void restoreStabBank(int bank);
private slots:
void enableControlsChanged(bool enable);
void realtimeUpdatesSlot(bool value);
void linkCheckBoxes(bool value);
void processLinkedWidgets(QWidget *);

View File

@ -341,26 +341,24 @@ void ConfigTaskWidget::onConnect()
invalidateObjects();
resetLimits();
updateEnableControls();
// call specific implementation
onConnectImpl();
setDirty(false);
emit connected();
refreshWidgetsValues();
updateEnableControls();
setDirty(false);
}
void ConfigTaskWidget::onDisconnect()
{
m_isConnected = false;
emit disconnected();
updateEnableControls();
invalidateObjects();
// call specific implementation
onDisconnectImpl();
// reset board ID
m_currentBoardId = -1;
}

View File

@ -168,6 +168,8 @@ protected slots:
void save();
signals:
void connected();
void disconnected();
void widgetContentsChanged(QWidget *widget);
void defaultRequested(int group);
void enableControlsChanged(bool enable);
@ -186,8 +188,6 @@ protected:
bool isConnected() const;
virtual void onConnectImpl() {};
virtual void onDisconnectImpl() {};
virtual void refreshWidgetsValuesImpl(UAVObject *) {};
virtual void updateObjectsFromWidgetsImpl() {};

View File

@ -34,9 +34,11 @@
#include <oplinkstatus.h>
#include <QDebug>
OPLinkManager::OPLinkManager() : QObject(), m_isConnected(false), m_opLinkType(OPLinkManager::OPLINK_UNKNOWN)
{
// conenct to the connection manager
// connect to the connection manager
Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager();
connect(cm, SIGNAL(deviceConnected(QIODevice *)), this, SLOT(onDeviceConnect()));