From 69d3ebb78f772692be8c13a3c40af6b071f02129 Mon Sep 17 00:00:00 2001 From: Bryant Date: Tue, 26 Aug 2014 23:04:43 -0700 Subject: [PATCH] Moved joystick settings into the main settings page. No major functionality changes. --- src/ui/JoystickWidget.cc | 2 +- src/ui/JoystickWidget.h | 4 +-- src/ui/JoystickWidget.ui | 51 +++---------------------------------- src/ui/MainWindow.cc | 19 +------------- src/ui/MainWindow.h | 7 +---- src/ui/MainWindow.ui | 1 - src/ui/QGCSettingsWidget.cc | 8 +++--- src/ui/QGCSettingsWidget.h | 2 +- 8 files changed, 14 insertions(+), 80 deletions(-) diff --git a/src/ui/JoystickWidget.cc b/src/ui/JoystickWidget.cc index 03df9be2c..541d546c9 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 36250decc..a0d9d9856 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 f33134eb6..a282be483 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 @@ -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 ea7df7e00..c209145ad 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 = NULL; 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 5e65b7307..5cfdec60a 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 ea87b9e18..c8c3f1ae1 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 2791013a0..cccaf2d5e 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 b9fa70d7e..98851ad67 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: -- 2.22.0