diff --git a/src/ui/JoystickWidget.cc b/src/ui/JoystickWidget.cc index 03df9be2ce40d8844d2ce9cffb4feb405d51309a..541d546c9a6d52ecf49083aa33b7b7b3d9f68d53 100644 --- a/src/ui/JoystickWidget.cc +++ b/src/ui/JoystickWidget.cc @@ -7,7 +7,7 @@ #include JoystickWidget::JoystickWidget(JoystickInput* joystick, QWidget *parent) : - QDialog(parent), + QWidget(parent), joystick(joystick), m_ui(new Ui::JoystickWidget) { diff --git a/src/ui/JoystickWidget.h b/src/ui/JoystickWidget.h index 36250decc0ff0e29983c7f0fdacf10cca635ccec..a0d9d9856e98763715f7b8cc3550d261d0a74658 100644 --- a/src/ui/JoystickWidget.h +++ b/src/ui/JoystickWidget.h @@ -31,7 +31,7 @@ This file is part of the PIXHAWK project #ifndef JOYSTICKWIDGET_H #define JOYSTICKWIDGET_H -#include +#include #include #include #include "JoystickInput.h" @@ -44,7 +44,7 @@ namespace Ui class JoystickWidget; } -class JoystickWidget : public QDialog +class JoystickWidget : public QWidget { Q_OBJECT Q_DISABLE_COPY(JoystickWidget) diff --git a/src/ui/JoystickWidget.ui b/src/ui/JoystickWidget.ui index f33134eb650d3b93031162cec4b22b819a9a1981..a56cc40179a4a56e426c40f6ae10e2ef77722aed 100644 --- a/src/ui/JoystickWidget.ui +++ b/src/ui/JoystickWidget.ui @@ -1,7 +1,7 @@ JoystickWidget - + 0 @@ -30,7 +30,7 @@ 8 - QLayout::SetFixedSize + QLayout::SetDefaultConstraint 8 @@ -50,7 +50,7 @@ true - Enable joysticks + Enable controllers @@ -174,53 +174,8 @@ - - - - - 0 - 0 - - - - - 50 - 0 - - - - - 16777215 - 16777215 - - - - Qt::Horizontal - - - QDialogButtonBox::Ok - - - - - - dialogButtonsBox - accepted() - JoystickWidget - accept() - - - 263 - 438 - - - 157 - 274 - - - - + diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index 50de05b0a092374ed83698fc581d09b1fcca5411..c209145add77fca2e2dda0879ae7b1714c217d1a 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -279,7 +279,6 @@ void MainWindow::init() // Connect user interface devices emit initStatusChanged(tr("Initializing joystick interface"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141)); - joystickWidget = 0; joystick = new JoystickInput(); #ifdef QGC_MOUSE_ENABLED_WIN @@ -1329,9 +1328,6 @@ void MainWindow::connectCommonActions() // so no ressources spend on this. ui.actionJoystickSettings->setVisible(true); - // Configuration - // Joystick - connect(ui.actionJoystickSettings, SIGNAL(triggered()), this, SLOT(configure())); // Application Settings connect(ui.actionSettings, SIGNAL(triggered()), this, SLOT(showSettings())); @@ -1380,22 +1376,9 @@ void MainWindow::showRoadMap() } } -void MainWindow::configure() -{ - if (!joystickWidget) - { - if (!joystick->isRunning()) - { - joystick->start(); - } - joystickWidget = new JoystickWidget(joystick, this); - } - joystickWidget->show(); -} - void MainWindow::showSettings() { - QGCSettingsWidget* settings = new QGCSettingsWidget(this); + QGCSettingsWidget* settings = new QGCSettingsWidget(joystick, this); settings->show(); } diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h index 5e65b73073b983df0b1dbd9ca3772e63c5d7c4fa..5cfdec60aa5dcc9596a00284a57e081833c777a5 100644 --- a/src/ui/MainWindow.h +++ b/src/ui/MainWindow.h @@ -81,7 +81,6 @@ class QSplashScreen; class QGCStatusBar; class Linecharts; class QGCDataPlot2D; -class JoystickWidget; class MenuActionHelper; class QGCUASFileViewMulti; @@ -202,7 +201,6 @@ public slots: LinkInterface* addLink(); void addLink(LinkInterface* link); bool configLink(LinkInterface *link); - void configure(); /** @brief Simulate a link */ void simulateLink(bool simulate); /** @brief Set the currently controlled UAS */ @@ -459,10 +457,7 @@ protected: QPointer fileWidget; - // Popup widgets - JoystickWidget* joystickWidget; - - JoystickInput* joystick; + JoystickInput* joystick; ///< The joystick manager for QGC #ifdef QGC_MOUSE_ENABLED_WIN /** @brief 3d Mouse support (WIN only) */ diff --git a/src/ui/MainWindow.ui b/src/ui/MainWindow.ui index ea87b9e18ff118a534f903d5da6e0c2ab54acb38..c8c3f1ae14814024a8c34327e8fdb5b71a89a55f 100644 --- a/src/ui/MainWindow.ui +++ b/src/ui/MainWindow.ui @@ -62,7 +62,6 @@ - diff --git a/src/ui/QGCSettingsWidget.cc b/src/ui/QGCSettingsWidget.cc index c5328b3ad6ecdf0df7ad6b0dbc066255fef531ac..fddf9fe6a389c3fbb01e3d22fc0f3142010745b6 100644 --- a/src/ui/QGCSettingsWidget.cc +++ b/src/ui/QGCSettingsWidget.cc @@ -5,14 +5,13 @@ #include "MainWindow.h" #include "ui_QGCSettingsWidget.h" +#include "JoystickWidget.h" #include "LinkManager.h" #include "MAVLinkProtocol.h" #include "MAVLinkSettingsWidget.h" #include "GAudioOutput.h" -//, Qt::WindowFlags flags - -QGCSettingsWidget::QGCSettingsWidget(QWidget *parent, Qt::WindowFlags flags) : +QGCSettingsWidget::QGCSettingsWidget(JoystickInput *joystick, QWidget *parent, Qt::WindowFlags flags) : QDialog(parent, flags), mainWindow((MainWindow*)parent), ui(new Ui::QGCSettingsWidget) @@ -24,6 +23,9 @@ QGCSettingsWidget::QGCSettingsWidget(QWidget *parent, Qt::WindowFlags flags) : position.moveCenter(QApplication::desktop()->availableGeometry().center()); move(position.topLeft()); + // Add the joystick settings pane + ui->tabWidget->addTab(new JoystickWidget(joystick, this), "Controllers"); + // Add all protocols QList protocols = LinkManager::instance()->getProtocols(); foreach (ProtocolInterface* protocol, protocols) { diff --git a/src/ui/QGCSettingsWidget.h b/src/ui/QGCSettingsWidget.h index b9fa70d7eda4157306f252281e5f7a11af39450c..98851ad67e8451955ec9f35ef0962689a6736797 100644 --- a/src/ui/QGCSettingsWidget.h +++ b/src/ui/QGCSettingsWidget.h @@ -14,7 +14,7 @@ class QGCSettingsWidget : public QDialog Q_OBJECT public: - QGCSettingsWidget(QWidget *parent = 0, Qt::WindowFlags flags = Qt::Sheet); + QGCSettingsWidget(JoystickInput *joystick, QWidget *parent = 0, Qt::WindowFlags flags = Qt::Sheet); ~QGCSettingsWidget(); public slots: