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

Trying to get out of merge hell

This commit is contained in:
zedamota 2011-08-15 14:12:54 +01:00
parent e736b17cc4
commit 98f84e472b
9 changed files with 31 additions and 45 deletions

View File

@ -65,7 +65,7 @@ MyTabbedStackWidget::MyTabbedStackWidget(QWidget *parent, bool isVertical, bool
m_stackWidget->setContentsMargins(0, 0, 0, 0); m_stackWidget->setContentsMargins(0, 0, 0, 0);
setLayout(toplevelLayout); setLayout(toplevelLayout);
connect(m_listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(showWidget(int))); connect(m_listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(showWidget(int)),Qt::QueuedConnection);
} }
void MyTabbedStackWidget::insertTab(const int index, QWidget *tab, const QIcon &icon, const QString &label) void MyTabbedStackWidget::insertTab(const int index, QWidget *tab, const QIcon &icon, const QString &label)
@ -97,9 +97,19 @@ void MyTabbedStackWidget::setCurrentIndex(int index)
void MyTabbedStackWidget::showWidget(int index) void MyTabbedStackWidget::showWidget(int index)
{ {
emit currentAboutToShow(index); if(m_stackWidget->currentIndex()==index)
m_stackWidget->setCurrentIndex(index); return;
emit currentChanged(index); bool proceed=false;
emit currentAboutToShow(index,&proceed);
if(proceed)
{
m_stackWidget->setCurrentIndex(index);
emit currentChanged(index);
}
else
{
m_listWidget->setCurrentRow(m_stackWidget->currentIndex(),QItemSelectionModel::ClearAndSelect);
}
} }
void MyTabbedStackWidget::insertCornerWidget(int index, QWidget *widget) void MyTabbedStackWidget::insertCornerWidget(int index, QWidget *widget)

View File

@ -51,9 +51,10 @@ public:
void insertCornerWidget(int index, QWidget *widget); void insertCornerWidget(int index, QWidget *widget);
int cornerWidgetCount() { return m_cornerWidgetCount; } int cornerWidgetCount() { return m_cornerWidgetCount; }
QWidget * currentWidget(){return m_stackWidget->currentWidget();}
signals: signals:
void currentAboutToShow(int index); void currentAboutToShow(int index,bool * proceed);
void currentChanged(int index); void currentChanged(int index);
public slots: public slots:

View File

@ -45,16 +45,16 @@ ConfigCCAttitudeWidget::ConfigCCAttitudeWidget(QWidget *parent) :
setupButtons(ui->applyButton,ui->saveButton); setupButtons(ui->applyButton,ui->saveButton);
addUAVObject("AttitudeSettings"); addUAVObject("AttitudeSettings");
refreshWidgetsValues(); // The 1st time this panel is instanciated, the autopilot is already connected.
UAVObject * settings = AttitudeSettings::GetInstance(getObjectManager()); UAVObject * settings = AttitudeSettings::GetInstance(getObjectManager());
// Connect the help button // Connect the help button
connect(ui->ccAttitudeHelp, SIGNAL(clicked()), this, SLOT(openHelp())); connect(ui->ccAttitudeHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
addWidget(ui->rollBias); addUAVObjectToWidgetRelation("AttitudeSettings","ZeroDuringArming",ui->zeroGyroBiasOnArming);
addWidget(ui->pitchBias);
addWidget(ui->yawBias); addUAVObjectToWidgetRelation("AttitudeSettings","BoardRotation",ui->rollBias,AttitudeSettings::BOARDROTATION_ROLL);
addUAVObjectToWidgetRelation("AttitudeSettings","BoardRotation",ui->pitchBias,AttitudeSettings::BOARDROTATION_PITCH);
addUAVObjectToWidgetRelation("AttitudeSettings","BoardRotation",ui->yawBias,AttitudeSettings::BOARDROTATION_YAW);
addWidget(ui->zeroBias); addWidget(ui->zeroBias);
addWidget(ui->zeroGyroBiasOnArming);
} }
ConfigCCAttitudeWidget::~ConfigCCAttitudeWidget() ConfigCCAttitudeWidget::~ConfigCCAttitudeWidget()
@ -123,27 +123,6 @@ void ConfigCCAttitudeWidget::timeout() {
} }
void ConfigCCAttitudeWidget::updateObjectsFromWidgets() {
AttitudeSettings::DataFields attitudeSettingsData = AttitudeSettings::GetInstance(getObjectManager())->getData();
attitudeSettingsData.BoardRotation[AttitudeSettings::BOARDROTATION_ROLL] = ui->rollBias->value();
attitudeSettingsData.BoardRotation[AttitudeSettings::BOARDROTATION_PITCH] = ui->pitchBias->value();
attitudeSettingsData.BoardRotation[AttitudeSettings::BOARDROTATION_YAW] = ui->yawBias->value();
attitudeSettingsData.ZeroDuringArming = ui->zeroGyroBiasOnArming->isChecked() ? AttitudeSettings::ZERODURINGARMING_TRUE :
AttitudeSettings::ZERODURINGARMING_FALSE;
AttitudeSettings::GetInstance(getObjectManager())->setData(attitudeSettingsData);
}
void ConfigCCAttitudeWidget::refreshWidgetsValues() {
bool dirty=isDirty();
AttitudeSettings::DataFields attitudeSettingsData = AttitudeSettings::GetInstance(getObjectManager())->getData();
ui->rollBias->setValue(attitudeSettingsData.BoardRotation[0]);
ui->pitchBias->setValue(attitudeSettingsData.BoardRotation[1]);
ui->yawBias->setValue(attitudeSettingsData.BoardRotation[2]);
ui->zeroGyroBiasOnArming->setChecked(attitudeSettingsData.ZeroDuringArming == AttitudeSettings::ZERODURINGARMING_TRUE);
setDirty(dirty);
}
void ConfigCCAttitudeWidget::startAccelCalibration() { void ConfigCCAttitudeWidget::startAccelCalibration() {
QMutexLocker locker(&startStop); QMutexLocker locker(&startStop);

View File

@ -50,8 +50,6 @@ private slots:
void attitudeRawUpdated(UAVObject * obj); void attitudeRawUpdated(UAVObject * obj);
void timeout(); void timeout();
void startAccelCalibration(); void startAccelCalibration();
void updateObjectsFromWidgets();
virtual void refreshWidgetsValues();
void openHelp(); void openHelp();
private: private:

View File

@ -99,7 +99,7 @@ ConfigGadgetWidget::ConfigGadgetWidget(QWidget *parent) : QWidget(parent)
onAutopilotConnect(); onAutopilotConnect();
help = 0; help = 0;
connect(ftw->m_tabBar,SIGNAL(aboutToChange(bool*)),this,SLOT(tabAboutToChange(bool*)));//,Qt::BlockingQueuedConnection); connect(ftw,SIGNAL(currentAboutToShow(int,bool*)),this,SLOT(tabAboutToChange(int,bool*)));//,Qt::BlockingQueuedConnection);
} }
@ -155,7 +155,7 @@ void ConfigGadgetWidget::onAutopilotConnect() {
emit autopilotConnected(); emit autopilotConnected();
} }
void ConfigGadgetWidget::tabAboutToChange(bool * proceed) void ConfigGadgetWidget::tabAboutToChange(int i,bool * proceed)
{ {
*proceed=true; *proceed=true;
ConfigTaskWidget * wid=qobject_cast<ConfigTaskWidget *>(ftw->currentWidget()); ConfigTaskWidget * wid=qobject_cast<ConfigTaskWidget *>(ftw->currentWidget());

View File

@ -55,7 +55,7 @@ public:
public slots: public slots:
void onAutopilotConnect(); void onAutopilotConnect();
void onAutopilotDisconnect(); void onAutopilotDisconnect();
void tabAboutToChange(bool *); void tabAboutToChange(int i,bool *);
signals: signals:
void autopilotConnected(); void autopilotConnected();

View File

@ -45,7 +45,6 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren
m_config->setupUi(this); m_config->setupUi(this);
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
setupButtons(m_config->saveRCOutputToRAM,m_config->saveRCOutputToSD); setupButtons(m_config->saveRCOutputToRAM,m_config->saveRCOutputToSD);
addUAVObject("ActuatorSettings"); addUAVObject("ActuatorSettings");

View File

@ -100,6 +100,8 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
addWidget(m_stabilization->maximumRoll); addWidget(m_stabilization->maximumRoll);
addWidget(m_stabilization->maximumPitch); addWidget(m_stabilization->maximumPitch);
addWidget(m_stabilization->maximumYaw); addWidget(m_stabilization->maximumYaw);
addWidget(m_stabilization->lowThrottleZeroIntegral);
} }
ConfigStabilizationWidget::~ConfigStabilizationWidget() ConfigStabilizationWidget::~ConfigStabilizationWidget()
@ -107,13 +109,6 @@ ConfigStabilizationWidget::~ConfigStabilizationWidget()
// Do nothing // Do nothing
} }
void ConfigStabilizationWidget::enableControls(bool enable)
{
//m_stabilization->saveStabilizationToRAM->setEnabled(enable);
m_stabilization->saveStabilizationToSD->setEnabled(enable);
}
void ConfigStabilizationWidget::updateRateRollKP(double val) void ConfigStabilizationWidget::updateRateRollKP(double val)
{ {
if (m_stabilization->linkRateRP->isChecked()) { if (m_stabilization->linkRateRP->isChecked()) {
@ -251,6 +246,8 @@ void ConfigStabilizationWidget::refreshWidgetsValues()
m_stabilization->maximumRoll->setValue(stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_ROLL]); m_stabilization->maximumRoll->setValue(stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_ROLL]);
m_stabilization->maximumPitch->setValue(stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_PITCH]); m_stabilization->maximumPitch->setValue(stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_PITCH]);
m_stabilization->maximumYaw->setValue(stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_YAW]); m_stabilization->maximumYaw->setValue(stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_YAW]);
m_stabilization->lowThrottleZeroIntegral->setChecked(stabData.LowThrottleZeroIntegral==StabilizationSettings::LOWTHROTTLEZEROINTEGRAL_TRUE ? true : false);
setDirty(dirty); setDirty(dirty);
} }
@ -299,6 +296,9 @@ void ConfigStabilizationWidget::updateObjectsFromWidgets()
stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_PITCH] = m_stabilization->maximumPitch->value(); stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_PITCH] = m_stabilization->maximumPitch->value();
stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_YAW] = m_stabilization->maximumYaw->value(); stabData.MaximumRate[StabilizationSettings::MAXIMUMRATE_YAW] = m_stabilization->maximumYaw->value();
stabData.LowThrottleZeroIntegral = (m_stabilization->lowThrottleZeroIntegral->isChecked() ? StabilizationSettings::LOWTHROTTLEZEROINTEGRAL_TRUE :StabilizationSettings::LOWTHROTTLEZEROINTEGRAL_FALSE);
stabSettings->setData(stabData); // this is atomic stabSettings->setData(stabData); // this is atomic
} }

View File

@ -49,7 +49,6 @@ private:
Ui_StabilizationWidget *m_stabilization; Ui_StabilizationWidget *m_stabilization;
StabilizationSettings* stabSettings; StabilizationSettings* stabSettings;
QTimer updateTimer; QTimer updateTimer;
virtual void enableControls(bool enable);
private slots: private slots:
virtual void refreshWidgetsValues(); virtual void refreshWidgetsValues();