From 9f370da75316e474b28bf16cbe3ed5d575ec4e87 Mon Sep 17 00:00:00 2001 From: dogmaphobic Date: Sat, 4 Apr 2015 22:53:49 -0400 Subject: [PATCH] Made Status Bar an option in the newly renamed View menu. --- src/ui/MainWindow.cc | 20 ++++++++++++++++---- src/ui/MainWindow.h | 9 +++++++-- src/ui/MainWindow.ui | 12 +++++++++++- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index eab3cb417..1e33c0689 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -126,6 +126,7 @@ void MainWindow::deleteInstance(void) MainWindow::MainWindow(QSplashScreen* splashScreen) : _autoReconnect(false) , _lowPowerMode(false) + , _showStatusBar(false) , _centerStackActionGroup(new QActionGroup(this)) , _simulationLink(NULL) , _centralLayout(NULL) @@ -255,8 +256,9 @@ MainWindow::MainWindow(QSplashScreen* splashScreen) } // And that they will stay checked properly after user input - QObject::connect(_ui.actionFullscreen, SIGNAL(triggered()), this, SLOT(fullScreenActionItemCallback())); - QObject::connect(_ui.actionNormal, SIGNAL(triggered()), this, SLOT(normalActionItemCallback())); + connect(_ui.actionFullscreen, &QAction::triggered, this, &MainWindow::fullScreenActionItemCallback); + connect(_ui.actionNormal, &QAction::triggered, this, &MainWindow::normalActionItemCallback); + connect(_ui.actionStatusBar, &QAction::triggered, this, &MainWindow::showStatusBarCallback); // Set OS dependent keyboard shortcuts for the main window, non OS dependent shortcuts are set in MainWindow.ui #ifdef Q_OS_MACX @@ -284,6 +286,8 @@ MainWindow::MainWindow(QSplashScreen* splashScreen) emit initStatusChanged(tr("Done"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141)); if (!qgcApp()->runningUnitTests()) { + _ui.actionStatusBar->setChecked(_showStatusBar); + showStatusBarCallback(_showStatusBar); show(); #ifdef Q_OS_MAC // TODO HACK @@ -624,16 +628,22 @@ void MainWindow::_showHILConfigurationWidgets(void) } } -void MainWindow::fullScreenActionItemCallback() +void MainWindow::fullScreenActionItemCallback(bool) { _ui.actionNormal->setChecked(false); } -void MainWindow::normalActionItemCallback() +void MainWindow::normalActionItemCallback(bool) { _ui.actionFullscreen->setChecked(false); } +void MainWindow::showStatusBarCallback(bool checked) +{ + _showStatusBar = checked; + checked ? statusBar()->show() : statusBar()->hide(); +} + void MainWindow::closeEvent(QCloseEvent *event) { // Disallow window close if there are active connections @@ -710,6 +720,7 @@ void MainWindow::loadSettings() settings.beginGroup(MAIN_SETTINGS_GROUP); _autoReconnect = settings.value("AUTO_RECONNECT", _autoReconnect).toBool(); _lowPowerMode = settings.value("LOW_POWER_MODE", _lowPowerMode).toBool(); + _showStatusBar = settings.value("SHOW_STATUSBAR", _lowPowerMode).toBool(); settings.endGroup(); // Select the proper view. Default to the flight view or load the last one used if it's supported. VIEW_SECTIONS currentViewCandidate = (VIEW_SECTIONS) settings.value("CURRENT_VIEW", _currentView).toInt(); @@ -739,6 +750,7 @@ void MainWindow::storeSettings() settings.beginGroup(MAIN_SETTINGS_GROUP); settings.setValue("AUTO_RECONNECT", _autoReconnect); settings.setValue("LOW_POWER_MODE", _lowPowerMode); + settings.setValue("SHOW_STATUSBAR", _showStatusBar); settings.endGroup(); settings.setValue(_getWindowGeometryKey(), saveGeometry()); // Save the last current view in any case diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h index 498aabb0a..4e9e38f54 100644 --- a/src/ui/MainWindow.h +++ b/src/ui/MainWindow.h @@ -187,13 +187,17 @@ protected slots: * Used as a triggered() callback by the fullScreenAction to make sure only one of it or the * normalAction are checked at a time, as they're mutually exclusive. */ - void fullScreenActionItemCallback(); + void fullScreenActionItemCallback(bool); /** * @brief Unchecks the fullScreenActionItem. * Used as a triggered() callback by the normalAction to make sure only one of it or the * fullScreenAction are checked at a time, as they're mutually exclusive. */ - void normalActionItemCallback(); + void normalActionItemCallback(bool); + /** + * @brief Enable/Disable Status Bar + */ + void showStatusBarCallback(bool checked); signals: void initStatusChanged(const QString& message, int alignment, const QColor &color); @@ -348,6 +352,7 @@ private: bool _autoReconnect; bool _lowPowerMode; ///< If enabled, QGC reduces the update rates of all widgets + bool _showStatusBar; QActionGroup* _centerStackActionGroup; MAVLinkSimulationLink* _simulationLink; QList _customWidgets; diff --git a/src/ui/MainWindow.ui b/src/ui/MainWindow.ui index dfa6520ea..fc97ec607 100644 --- a/src/ui/MainWindow.ui +++ b/src/ui/MainWindow.ui @@ -75,7 +75,7 @@ - Perspectives + View @@ -84,6 +84,8 @@ + + @@ -335,6 +337,14 @@ Local 3D View + + + true + + + Status Bar + + -- 2.22.0