diff --git a/src/ui/JoystickWidget.cc b/src/ui/JoystickWidget.cc index 03df9be..541d546 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 36250de..a0d9d98 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 f33134e..a56cc40 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 50de05b..c209145 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 5e65b73..5cfdec6 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 ea87b9e..c8c3f1a 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 c5328b3..fddf9fe 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 b9fa70d..98851ad 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: