diff --git a/ground/openpilotgcs/src/plugins/config/ahrs.ui b/ground/openpilotgcs/src/plugins/config/ahrs.ui
index f4cc5a453..78ca0351a 100644
--- a/ground/openpilotgcs/src/plugins/config/ahrs.ui
+++ b/ground/openpilotgcs/src/plugins/config/ahrs.ui
@@ -7,17 +7,68 @@
0
0
720
- 509
+ 537
Form
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 20
+
+
+
+
+ true
+
+
+
+
+
+
+
+ :/configgadget/images/help.png:/configgadget/images/help.png
+
+
+ false
+
+
+ true
+
+
+
+
+
-
- 1
+ 0
@@ -42,29 +93,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -152,29 +180,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -278,23 +283,6 @@ Hint: run this with engines at cruising speed.
-
-
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -368,23 +356,6 @@ Hint: run this with engines at cruising speed.
-
-
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -580,29 +551,6 @@ p, li { white-space: pre-wrap; }
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -638,29 +586,6 @@ p, li { white-space: pre-wrap; }
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -756,29 +681,6 @@ new home location unless it is in indoor mode.
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
diff --git a/ground/openpilotgcs/src/plugins/config/airframe.ui b/ground/openpilotgcs/src/plugins/config/airframe.ui
index 44d65930a..4d053df02 100644
--- a/ground/openpilotgcs/src/plugins/config/airframe.ui
+++ b/ground/openpilotgcs/src/plugins/config/airframe.ui
@@ -14,6 +14,49 @@
Form
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+
+ :/configgadget/images/help.png:/configgadget/images/help.png
+
+
+ true
+
+
+
+
+
-
@@ -29,29 +72,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -102,7 +122,7 @@
-
- 0
+ 1
@@ -116,23 +136,6 @@
-
-
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -172,23 +175,6 @@
-
-
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -451,23 +437,6 @@
-
-
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -586,29 +555,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -650,29 +596,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -885,29 +808,6 @@ Typical value is 50% for + or X configuration on quads.
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -985,7 +885,7 @@ Typical value is 50% for + or X configuration on quads.
-
-
+
10
@@ -993,29 +893,6 @@ Typical value is 50% for + or X configuration on quads.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1085,46 +962,6 @@ Typical value is 50% for + or X configuration on quads.
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
@@ -2136,23 +1973,6 @@ p, li { white-space: pre-wrap; }
- -
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -2196,29 +2016,6 @@ p, li { white-space: pre-wrap; }
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -2530,29 +2327,6 @@ p, li { white-space: pre-wrap; }
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
diff --git a/ground/openpilotgcs/src/plugins/config/ccattitude.ui b/ground/openpilotgcs/src/plugins/config/ccattitude.ui
index 58d9ad2bc..677e3d6db 100644
--- a/ground/openpilotgcs/src/plugins/config/ccattitude.ui
+++ b/ground/openpilotgcs/src/plugins/config/ccattitude.ui
@@ -6,41 +6,61 @@
0
0
- 331
- 324
+ 455
+ 428
Form
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+
+ :/configgadget/images/help.png:/configgadget/images/help.png
+
+
+ true
+
+
+
+
+
-
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -158,29 +178,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -284,29 +281,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -362,29 +336,6 @@ arming it in that case!
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -411,19 +362,6 @@ arming it in that case!
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
diff --git a/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp b/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp
index f4fbb345c..9d81392e4 100644
--- a/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configahrswidget.cpp
@@ -37,7 +37,8 @@
#include
#include
#include
-#include
+#include
+#include
#include "assertions.h"
#include "calibration.h"
@@ -228,25 +229,8 @@ ConfigAHRSWidget::ConfigAHRSWidget(QWidget *parent) : ConfigTaskWidget(parent)
connect(m_ahrs->startDriftCalib, SIGNAL(clicked()),this, SLOT(launchGyroDriftCalibration()));
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(ahrsSettingsRequest()));
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( m_ahrs->multiPointHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->multiPointHelp, m_ahrs->multiPointHelp->objectName());
- connect( m_ahrs->sensorNoiseHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->sensorNoiseHelp, m_ahrs->sensorNoiseHelp->objectName());
- connect( m_ahrs->accelBiasHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->accelBiasHelp, m_ahrs->accelBiasHelp->objectName());
- connect( m_ahrs->gyroDriftHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->gyroDriftHelp, m_ahrs->gyroDriftHelp->objectName());
- connect( m_ahrs->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->commandHelp, QString("commandHelp"));
- connect( m_ahrs->insAlgorithmHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->insAlgorithmHelp, m_ahrs->insAlgorithmHelp->objectName());
- connect( m_ahrs->homeLocationHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_ahrs->homeLocationHelp, m_ahrs->homeLocationHelp->objectName());
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
-
+ // Connect the help button
+ connect(m_ahrs->ahrsHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
}
ConfigAHRSWidget::~ConfigAHRSWidget()
@@ -1222,6 +1206,11 @@ void ConfigAHRSWidget::ahrsSettingsSaveSD()
}
+void ConfigAHRSWidget::openHelp()
+{
+
+ QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/display/Doc/INS+Configuration", QUrl::StrictMode) );
+}
/**
@}
diff --git a/ground/openpilotgcs/src/plugins/config/configahrswidget.h b/ground/openpilotgcs/src/plugins/config/configahrswidget.h
index 8cfaf041e..81344226e 100644
--- a/ground/openpilotgcs/src/plugins/config/configahrswidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configahrswidget.h
@@ -126,6 +126,7 @@ private slots:
void enableHomeLocSave(UAVObject *obj);
void launchAHRSCalibration();
void saveAHRSCalibration();
+ void openHelp();
void launchAccelBiasCalibration();
void calibPhase2();
void incrementProgress();
diff --git a/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp b/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp
index 514fc7c5a..da6dc6afb 100644
--- a/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configairframewidget.cpp
@@ -34,7 +34,8 @@
#include
#include
#include
-#include
+#include
+#include
/**
Helper delegate for the custom mixer editor table.
@@ -193,32 +194,8 @@ ConfigAirframeWidget::ConfigAirframeWidget(QWidget *parent) : ConfigTaskWidget(p
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestAircraftUpdate()));
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( m_aircraft->acftTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->acftTypeHelp, m_aircraft->acftTypeHelp->objectName());
- connect( m_aircraft->airplaneTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->airplaneTypeHelp, m_aircraft->airplaneTypeHelp->objectName());
- connect( m_aircraft->channelAssignmentHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->channelAssignmentHelp, m_aircraft->channelAssignmentHelp->objectName());
- connect( m_aircraft->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->commandHelp, QString("commandHelp"));
- connect( m_aircraft->throttleCurveHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->throttleCurveHelp, QString("throttleCurveHelp"));
- connect( m_aircraft->multiFrameTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->multiFrameTypeHelp, m_aircraft->multiFrameTypeHelp->objectName());
- connect( m_aircraft->throttleCurveHelp_2, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->throttleCurveHelp_2, QString("throttleCurveHelp"));
- connect( m_aircraft->tricopterYawHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->tricopterYawHelp, m_aircraft->tricopterYawHelp->objectName());
- connect( m_aircraft->motorOutputChanHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->motorOutputChanHelp, m_aircraft->motorOutputChanHelp->objectName());
- connect( m_aircraft->feedForwardHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->feedForwardHelp, m_aircraft->feedForwardHelp->objectName());
- connect( m_aircraft->commandHelp_2, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_aircraft->commandHelp_2, QString("commandHelp"));
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
+ // Connect the help button
+ connect(m_aircraft->airframeHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
}
ConfigAirframeWidget::~ConfigAirframeWidget()
@@ -1547,7 +1524,7 @@ bool ConfigAirframeWidget::setupMixer(double mixerFactors[8][3])
setupQuadMotor(channel, mixerFactors[i][0]*pFactor,
rFactor*mixerFactors[i][1], yFactor*mixerFactors[i][2]);
}
- // obj->updated(); // Let caller do this...
+ obj->updated();
return true;
}
@@ -1591,7 +1568,7 @@ void ConfigAirframeWidget::setupMotors(QList motorList)
field = obj->getField(motor);
field->setValue(mmList.takeFirst()->currentText());
}
- // obj->updated(); // Do not Save, let the caller do it...
+ obj->updated(); // Save...
}
@@ -2049,15 +2026,14 @@ void ConfigAirframeWidget::sendAircraftUpdate()
m_aircraft->mrStatusLabel->setText("Error: Assign a Yaw channel");
return;
}
- // Need to setup motors first because setupMotors(..) will call resetActuators()
- // and reset the Yaw channel to disabled.
- motorList << "VTOLMotorNW" << "VTOLMotorNE" << "VTOLMotorS";
- setupMotors(motorList);
-
obj = dynamic_cast(getObjectManager()->getObject(QString("ActuatorSettings")));
Q_ASSERT(obj);
field = obj->getField("FixedWingYaw1");
field->setValue(m_aircraft->triYawChannel->currentText());
+ // No need to send a obj->updated() here because setupMotors
+ // will do it.
+ motorList << "VTOLMotorNW" << "VTOLMotorNE" << "VTOLMotorS";
+ setupMotors(motorList);
// Motor 1 to 6, Y6 Layout:
// pitch roll yaw
@@ -2136,18 +2112,10 @@ void ConfigAirframeWidget::sendAircraftUpdate()
field->setValue(m_aircraft->customMixerTable->item(5,i)->text(),ti);
}
- // obj->updated();
+ obj->updated();
}
- UAVDataObject* obj = dynamic_cast(getObjectManager()->getObject(QString("ActuatorSettings")));
- Q_ASSERT(obj);
- obj->updated();
-
- obj = dynamic_cast(getObjectManager()->getObject(QString("MixerSettings")));
- Q_ASSERT(obj);
- obj->updated();
-
- obj = dynamic_cast(getObjectManager()->getObject(QString("SystemSettings")));
+ UAVDataObject* obj = dynamic_cast(getObjectManager()->getObject(QString("SystemSettings")));
UAVObjectField* field = obj->getField(QString("AirframeType"));
field->setValue(airframeType);
obj->updated();
@@ -2170,3 +2138,9 @@ void ConfigAirframeWidget::saveAircraftUpdate()
}
+void ConfigAirframeWidget::openHelp()
+{
+
+ QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/display/Doc/Airframe+configuration", QUrl::StrictMode) );
+}
+
diff --git a/ground/openpilotgcs/src/plugins/config/configairframewidget.h b/ground/openpilotgcs/src/plugins/config/configairframewidget.h
index cbc8b1fc8..37f6ef877 100644
--- a/ground/openpilotgcs/src/plugins/config/configairframewidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configairframewidget.h
@@ -89,6 +89,7 @@ private slots:
void updateCustomThrottle1CurveValue(QList list, double value);
void updateCustomThrottle2CurveValue(QList list, double value);
void enableFFTest();
+ void openHelp();
protected:
void showEvent(QShowEvent *event);
diff --git a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp
index beb4fa2fc..2a15bf0cf 100644
--- a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.cpp
@@ -30,7 +30,8 @@
#include
#include
#include
-#include
+#include
+#include
ConfigCCAttitudeWidget::ConfigCCAttitudeWidget(QWidget *parent) :
ConfigTaskWidget(parent),
@@ -46,18 +47,8 @@ ConfigCCAttitudeWidget::ConfigCCAttitudeWidget(QWidget *parent) :
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(getCurrentAttitudeSettings()));
getCurrentAttitudeSettings(); // The 1st time this panel is instanciated, the autopilot is already connected.
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( ui->attitudeRotationHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(ui->attitudeRotationHelp, ui->attitudeRotationHelp->objectName());
- connect( ui->attitudeCalibHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(ui->attitudeCalibHelp, ui->attitudeCalibHelp->objectName());
- connect( ui->zeroOnArmHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(ui->zeroOnArmHelp, ui->zeroOnArmHelp->objectName());
- connect( ui->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(ui->commandHelp, QString("commandHelp"));
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
+ // Connect the help button
+ connect(ui->ccAttitudeHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
}
ConfigCCAttitudeWidget::~ConfigCCAttitudeWidget()
@@ -183,3 +174,10 @@ void ConfigCCAttitudeWidget::saveAttitudeSettings() {
UAVDataObject * obj = dynamic_cast(getObjectManager()->getObject(QString("AttitudeSettings")));
saveObjectToSD(obj);
}
+
+void ConfigCCAttitudeWidget::openHelp()
+{
+
+ QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/display/Doc/CopterControl+Attitude+Configuration", QUrl::StrictMode) );
+}
+
diff --git a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h
index a70c552ba..1a2627c84 100644
--- a/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configccattitudewidget.h
@@ -53,6 +53,7 @@ private slots:
void saveAttitudeSettings();
void applyAttitudeSettings();
void getCurrentAttitudeSettings();
+ void openHelp();
private:
QMutex startStop;
diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetfactory.cpp b/ground/openpilotgcs/src/plugins/config/configgadgetfactory.cpp
index f19c3dac8..37447b01a 100644
--- a/ground/openpilotgcs/src/plugins/config/configgadgetfactory.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configgadgetfactory.cpp
@@ -32,7 +32,7 @@
#include
ConfigGadgetFactory::ConfigGadgetFactory(QObject *parent) :
- IUAVGadgetFactory(QString("ConfigGadget"), tr("Config"), parent)
+ IUAVGadgetFactory(QString("ConfigGadget"), tr("Config Gadget"), parent)
{
}
@@ -50,3 +50,8 @@ IUAVGadgetConfiguration *ConfigGadgetFactory::createConfiguration(QSettings* qSe
{
return new ConfigGadgetConfiguration(QString("ConfigGadget"), qSettings);
}
+
+IOptionsPage *ConfigGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config)
+{
+ return new ConfigGadgetOptionsPage(qobject_cast(config));
+}
diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetfactory.h b/ground/openpilotgcs/src/plugins/config/configgadgetfactory.h
index de90e6def..8d371e746 100644
--- a/ground/openpilotgcs/src/plugins/config/configgadgetfactory.h
+++ b/ground/openpilotgcs/src/plugins/config/configgadgetfactory.h
@@ -46,6 +46,7 @@ public:
IUAVGadget *createGadget(QWidget *parent);
IUAVGadgetConfiguration *createConfiguration(QSettings* qSettings);
+ IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config);
};
#endif // CONFIGGADGETFACTORY_H
diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp
index 7d7824a24..b49ccf1df 100644
--- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.cpp
@@ -140,43 +140,5 @@ void ConfigGadgetWidget::onAutopilotConnect() {
emit autopilotConnected();
}
-void ConfigGadgetWidget::showHelp(const QString &helpName)
-{
- // Close any previous help windows still open
- if(help != 0) {
- help->close();
- }
-
- // Make help windows with given filename and resize to config gadget width
- help = new QTextBrowser(this);
- help->setSource(QUrl::fromLocalFile( QString(Utils::PathUtils().InsertDataPath("%%DATAPATH%%help/")) +
- helpName + QString(".html") ));
- QSize size = help->sizeHint();
- size.setWidth(this->width());
- help->resize(size);
-
- // Now catch closing events, show the window and give it focus
- help->installEventFilter(this);
- help->show();
- help->setFocus();
-}
-
-bool ConfigGadgetWidget::eventFilter(QObject *obj, QEvent *event)
-{
- // If help is open and we get a close event, close the help window
- // Close events currently are any key press and the mouse leaving the help window
-
- //printf("event type: %d\n",event->type());
- if(help != 0) {
- if (event->type() == QEvent::Leave || event->type() == QEvent::KeyPress) {
- help->close();
- help=0;
- return true;
- }
- }
-
- // standard event processing
- return QObject::eventFilter(obj, event);
-}
diff --git a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
index 185321fe3..2520458eb 100644
--- a/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configgadgetwidget.h
@@ -52,10 +52,6 @@ public:
public slots:
void onAutopilotConnect();
- void showHelp(const QString &helpName);
-
-private slots:
- bool eventFilter(QObject *obj, QEvent *event);
signals:
void autopilotConnected();
diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp
index 034cef519..785ab7018 100644
--- a/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.cpp
@@ -35,7 +35,8 @@
#include
#include
#include
-#include
+#include
+#include
ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
@@ -201,29 +202,8 @@ ConfigInputWidget::ConfigInputWidget(QWidget *parent) : ConfigTaskWidget(parent)
}
}
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( m_config->receiverTypeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->receiverTypeHelp, m_config->receiverTypeHelp->objectName());
- connect( m_config->runCalibrationHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->runCalibrationHelp, m_config->runCalibrationHelp->objectName());
- connect( m_config->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->commandHelp, QString("commandHelp"));
- connect( m_config->flightModeSwPosHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->flightModeSwPosHelp, m_config->flightModeSwPosHelp->objectName());
- connect( m_config->stabilizationModePerAxis, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->stabilizationModePerAxis, m_config->stabilizationModePerAxis->objectName());
- connect( m_config->commandHelp_2, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->commandHelp_2, QString("commandHelp"));
- connect( m_config->armPositionHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->armPositionHelp, m_config->armPositionHelp->objectName());
- connect( m_config->armingTimeoutHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->armingTimeoutHelp, m_config->armingTimeoutHelp->objectName());
- connect( m_config->commandHelp_3, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->commandHelp_2, QString("commandHelp"));
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
-
+ // Connect the help button
+ connect(m_config->inputHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
}
ConfigInputWidget::~ConfigInputWidget()
@@ -719,3 +699,10 @@ void ConfigInputWidget::updateChannelInSlider(QSlider *slider, QLabel *min, QLab
slider->setValue(value);
}
}
+
+void ConfigInputWidget::openHelp()
+{
+
+ QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/display/Doc/Input+Configuration", QUrl::StrictMode) );
+}
+
diff --git a/ground/openpilotgcs/src/plugins/config/configinputwidget.h b/ground/openpilotgcs/src/plugins/config/configinputwidget.h
index 4f0fa0182..5747ee35d 100644
--- a/ground/openpilotgcs/src/plugins/config/configinputwidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configinputwidget.h
@@ -90,6 +90,7 @@ private slots:
void sendRCInputUpdate();
void saveRCInputObject();
void reverseCheckboxClicked(bool state);
+ void openHelp();
};
#endif
diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp
index 0879de42a..27858e111 100644
--- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.cpp
@@ -36,7 +36,8 @@
#include
#include
#include
-#include
+#include
+#include
ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
@@ -154,20 +155,8 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren
}
}
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( m_config->channelRateHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->channelRateHelp, m_config->channelRateHelp->objectName());
- connect( m_config->channelValuesHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->channelValuesHelp, m_config->channelValuesHelp->objectName());
- connect( m_config->spinningArmedlHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->spinningArmedlHelp, m_config->spinningArmedlHelp->objectName());
- connect( m_config->testOutputsHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->testOutputsHelp, m_config->testOutputsHelp->objectName());
- connect( m_config->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_config->commandHelp, QString("commandHelp"));
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
+ // Connect the help button
+ connect(m_config->outputHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
}
ConfigOutputWidget::~ConfigOutputWidget()
@@ -627,5 +616,10 @@ void ConfigOutputWidget::reverseChannel(bool state)
}
+void ConfigOutputWidget::openHelp()
+{
+
+ QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/display/Doc/Output+Configuration", QUrl::StrictMode) );
+}
diff --git a/ground/openpilotgcs/src/plugins/config/configoutputwidget.h b/ground/openpilotgcs/src/plugins/config/configoutputwidget.h
index f3083e725..bb18312f7 100644
--- a/ground/openpilotgcs/src/plugins/config/configoutputwidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configoutputwidget.h
@@ -87,6 +87,7 @@ private slots:
void reverseChannel(bool state);
void linkToggled(bool state);
void setSpinningArmed(bool val);
+ void openHelp();
};
#endif
diff --git a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp
index 6d829b756..dd172a599 100644
--- a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.cpp
@@ -32,8 +32,8 @@
#include
#include
#include
-#include
-
+#include
+#include
ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTaskWidget(parent)
{
@@ -74,20 +74,8 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
connect(m_stabilization->pitchKi, SIGNAL(valueChanged(double)), this, SLOT(updatePitchKI(double)));
connect(m_stabilization->pitchILimit, SIGNAL(valueChanged(double)), this, SLOT(updatePitchILimit(double)));
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( m_stabilization->rateStabiHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_stabilization->rateStabiHelp, m_stabilization->rateStabiHelp->objectName());
- connect( m_stabilization->attitudeStabiHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_stabilization->attitudeStabiHelp, m_stabilization->attitudeStabiHelp->objectName());
- connect( m_stabilization->angleLimitsHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_stabilization->angleLimitsHelp, m_stabilization->angleLimitsHelp->objectName());
- connect( m_stabilization->updateRealTimeHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_stabilization->updateRealTimeHelp, m_stabilization->updateRealTimeHelp->objectName());
- connect( m_stabilization->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_stabilization->commandHelp, m_stabilization->commandHelp->objectName());
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
+ // Connect the help button
+ connect(m_stabilization->stabilizationHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
}
ConfigStabilizationWidget::~ConfigStabilizationWidget()
@@ -290,3 +278,9 @@ void ConfigStabilizationWidget::realtimeUpdateToggle(bool state)
updateTimer.stop();
}
+void ConfigStabilizationWidget::openHelp()
+{
+
+ QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/display/Doc/Stabilization+panel", QUrl::StrictMode) );
+}
+
diff --git a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h
index 00cbbc977..5af92ae65 100644
--- a/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h
+++ b/ground/openpilotgcs/src/plugins/config/configstabilizationwidget.h
@@ -55,6 +55,7 @@ private slots:
void sendStabilizationUpdate();
void saveStabilizationUpdate();
void realtimeUpdateToggle(bool);
+ void openHelp();
void updateRateRollKP(double);
void updateRateRollKI(double);
diff --git a/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp b/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp
index a307da966..843f94ffb 100644
--- a/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp
+++ b/ground/openpilotgcs/src/plugins/config/configtelemetrywidget.cpp
@@ -32,7 +32,6 @@
#include
#include
#include
-#include
ConfigTelemetryWidget::ConfigTelemetryWidget(QWidget *parent) : ConfigTaskWidget(parent)
@@ -54,15 +53,6 @@ ConfigTelemetryWidget::ConfigTelemetryWidget(QWidget *parent) : ConfigTaskWidget
connect(m_telemetry->getTelemetryCurrent, SIGNAL(clicked()), this, SLOT(requestTelemetryUpdate()));
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestTelemetryUpdate()));
-
- // Connect all the help buttons to signal mapper that passes button name to SLOT function
- QSignalMapper* signalMapper = new QSignalMapper(this);
- connect( m_telemetry->telemetryHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_telemetry->telemetryHelp, m_telemetry->telemetryHelp->objectName());
- connect( m_telemetry->commandHelp, SIGNAL(clicked()), signalMapper, SLOT(map()) );
- signalMapper->setMapping(m_telemetry->commandHelp, QString("commandHelp"));
-
- connect(signalMapper, SIGNAL(mapped(const QString &)), parent, SLOT(showHelp(const QString &)));
}
ConfigTelemetryWidget::~ConfigTelemetryWidget()
diff --git a/ground/openpilotgcs/src/plugins/config/input.ui b/ground/openpilotgcs/src/plugins/config/input.ui
index af38b512d..abe0a1a25 100644
--- a/ground/openpilotgcs/src/plugins/config/input.ui
+++ b/ground/openpilotgcs/src/plugins/config/input.ui
@@ -6,14 +6,57 @@
0
0
- 617
- 395
+ 622
+ 435
Form
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+
+ :/configgadget/images/help.png:/configgadget/images/help.png
+
+
+ true
+
+
+
+
+
-
@@ -893,7 +936,7 @@ p, li { white-space: pre-wrap; }
- 40
+ 20
283
181
22
@@ -1354,93 +1397,6 @@ reversal capabilities).
-
-
-
- 230
- 284
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
-
- 10
- 284
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
-
- 10
- 10
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
@@ -1760,87 +1716,6 @@ if you have not done so already.
-
-
-
- 5
- 0
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
-
- 5
- 130
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
-
- 240
- 314
- 20
- 20
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
@@ -1849,29 +1724,6 @@ if you have not done so already.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1909,29 +1761,6 @@ if you have not done so already.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1999,29 +1828,6 @@ if you have not done so already.
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
diff --git a/ground/openpilotgcs/src/plugins/config/output.ui b/ground/openpilotgcs/src/plugins/config/output.ui
index 95d977cf7..638c0a83d 100644
--- a/ground/openpilotgcs/src/plugins/config/output.ui
+++ b/ground/openpilotgcs/src/plugins/config/output.ui
@@ -14,6 +14,49 @@
Form
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+
+ :/configgadget/images/help.png:/configgadget/images/help.png
+
+
+ true
+
+
+
+
+
-
@@ -136,29 +179,6 @@ Leave at 50Hz for fixed wing.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1052,29 +1072,6 @@ p, li { white-space: pre-wrap; }
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1092,29 +1089,6 @@ p, li { white-space: pre-wrap; }
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1152,29 +1126,6 @@ p, li { white-space: pre-wrap; }
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -1203,29 +1154,6 @@ p, li { white-space: pre-wrap; }
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
diff --git a/ground/openpilotgcs/src/plugins/config/stabilization.ui b/ground/openpilotgcs/src/plugins/config/stabilization.ui
index 5b41db44f..f40f7103c 100644
--- a/ground/openpilotgcs/src/plugins/config/stabilization.ui
+++ b/ground/openpilotgcs/src/plugins/config/stabilization.ui
@@ -14,6 +14,49 @@
Form
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 20
+ 20
+
+
+
+
+
+
+
+ :/configgadget/images/help.png:/configgadget/images/help.png
+
+
+ true
+
+
+
+
+
-
@@ -21,29 +64,6 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -272,29 +292,6 @@ value as YawRate Kp.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -527,29 +524,6 @@ flying style.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -651,29 +625,6 @@ flying style.
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
@@ -698,29 +649,6 @@ automatically every 300ms, which will help for fast tuning.
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
diff --git a/ground/openpilotgcs/src/plugins/config/telemetry.ui b/ground/openpilotgcs/src/plugins/config/telemetry.ui
index 2423a6e1a..1682077af 100644
--- a/ground/openpilotgcs/src/plugins/config/telemetry.ui
+++ b/ground/openpilotgcs/src/plugins/config/telemetry.ui
@@ -130,64 +130,6 @@ Beware of not locking yourself out!
Save
-
-
-
- 45
- 198
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-
-
-
-
- 45
- 284
- 20
- 20
-
-
-
-
- 0
- 0
-
-
-
-
- 20
- 20
-
-
-
-
-
-
-
- :/configgadget/images/help2.png:/configgadget/images/help2.png
-
-