diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 94c4025ef558797d18063840d4b0d78ea4e9f2d4..2665303166527f16237049ae81df2daa09cb060d 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -107,11 +107,12 @@ QGCApplication* QGCApplication::_app = NULL; -const char* QGCApplication::_deleteAllSettingsKey = "DeleteAllSettingsNextBoot"; -const char* QGCApplication::_settingsVersionKey = "SettingsVersion"; -const char* QGCApplication::_savedFilesLocationKey = "SavedFilesLocation"; -const char* QGCApplication::_promptFlightDataSave = "PromptFLightDataSave"; -const char* QGCApplication::_styleKey = "StyleIsDark"; +const char* QGCApplication::_deleteAllSettingsKey = "DeleteAllSettingsNextBoot"; +const char* QGCApplication::_settingsVersionKey = "SettingsVersion"; +const char* QGCApplication::_savedFilesLocationKey = "SavedFilesLocation"; +const char* QGCApplication::_promptFlightDataSave = "PromptFLightDataSave"; +const char* QGCApplication::_promptFlightDataSaveNotArmed = "PromptFLightDataSaveNotArmed"; +const char* QGCApplication::_styleKey = "StyleIsDark"; const char* QGCApplication::_defaultSavedFileDirectoryName = "QGroundControl"; const char* QGCApplication::_savedFileMavlinkLogDirectoryName = "FlightData"; @@ -554,12 +555,25 @@ bool QGCApplication::promptFlightDataSave(void) return settings.value(_promptFlightDataSave, true).toBool(); } +bool QGCApplication::promptFlightDataSaveNotArmed(void) +{ + QSettings settings; + + return settings.value(_promptFlightDataSaveNotArmed, false).toBool(); +} + void QGCApplication::setPromptFlightDataSave(bool promptForSave) { QSettings settings; settings.setValue(_promptFlightDataSave, promptForSave); } +void QGCApplication::setPromptFlightDataSaveNotArmed(bool promptForSave) +{ + QSettings settings; + settings.setValue(_promptFlightDataSaveNotArmed, promptForSave); +} + /// @brief Returns the QGCApplication object singleton. QGCApplication* qgcApp(void) { diff --git a/src/QGCApplication.h b/src/QGCApplication.h index 084950bb9bf1aabe30f8fad05bee7d63cc6a3626..ec19b0302ea8933e3c5badc1a282090fa60e29dc 100644 --- a/src/QGCApplication.h +++ b/src/QGCApplication.h @@ -93,11 +93,14 @@ public: /// @brief Validates that the specified location will work for the saved files location. bool validatePossibleSavedFilesLocation(QString& location); - /// @brief Returns true is all mavlink connections should be logged + /// @return true: Prompt to save log file when vehicle goes away bool promptFlightDataSave(void); - /// @brief Sets the flag to log all mavlink connections + /// @return true: Prompt to save log file even if vehicle was not armed + bool promptFlightDataSaveNotArmed(void); + void setPromptFlightDataSave(bool promptForSave); + void setPromptFlightDataSaveNotArmed(bool promptForSave); /// @brief Returns truee if unit test are being run bool runningUnitTests(void) { return _runningUnitTests; } @@ -173,7 +176,8 @@ private: static const char* _settingsVersionKey; ///< Settings key which hold settings version static const char* _deleteAllSettingsKey; ///< If this settings key is set on boot, all settings will be deleted static const char* _savedFilesLocationKey; ///< Settings key for user visible saved files location - static const char* _promptFlightDataSave; ///< Settings key to prompt for saving Flight Data Log for all flights + static const char* _promptFlightDataSave; ///< Settings key for promptFlightDataSave + static const char* _promptFlightDataSaveNotArmed; ///< Settings key for promptFlightDataSaveNotArmed static const char* _styleKey; ///< Settings key for UI style static const char* _defaultSavedFileDirectoryName; ///< Default name for user visible save file directory diff --git a/src/QmlControls/QGroundControlQmlGlobal.cc b/src/QmlControls/QGroundControlQmlGlobal.cc index 97fc9f598c889c5e074b5e5ca73921e2e7dd1acd..7563fe1b24851cf181fc2fa72a08246f2553a33f 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.cc +++ b/src/QmlControls/QGroundControlQmlGlobal.cc @@ -154,3 +154,51 @@ void QGroundControlQmlGlobal::stopAllMockLinks(void) } #endif } + +void QGroundControlQmlGlobal::setIsDarkStyle(bool dark) +{ + qgcApp()->setStyle(dark); + emit isDarkStyleChanged(dark); +} + +void QGroundControlQmlGlobal::setIsAudioMuted(bool muted) +{ + qgcApp()->toolbox()->audioOutput()->mute(muted); + emit isAudioMutedChanged(muted); +} + +void QGroundControlQmlGlobal::setIsLowPowerMode(bool low) +{ + MainWindow::instance()->enableLowPowerMode(low); + emit isLowPowerModeChanged(low); +} + +void QGroundControlQmlGlobal::setIsSaveLogPrompt(bool prompt) +{ + qgcApp()->setPromptFlightDataSave(prompt); + emit isSaveLogPromptChanged(prompt); +} + +void QGroundControlQmlGlobal::setIsSaveLogPromptNotArmed(bool prompt) +{ + qgcApp()->setPromptFlightDataSaveNotArmed(prompt); + emit isSaveLogPromptNotArmedChanged(prompt); +} + +void QGroundControlQmlGlobal::setIsHeartBeatEnabled(bool enable) +{ + qgcApp()->toolbox()->mavlinkProtocol()->enableHeartbeats(enable); + emit isHeartBeatEnabledChanged(enable); +} + +void QGroundControlQmlGlobal::setIsMultiplexingEnabled(bool enable) +{ + qgcApp()->toolbox()->mavlinkProtocol()->enableMultiplexing(enable); + emit isMultiplexingEnabledChanged(enable); +} + +void QGroundControlQmlGlobal::setIsVersionCheckEnabled(bool enable) +{ + qgcApp()->toolbox()->mavlinkProtocol()->enableVersionCheck(enable); + emit isVersionCheckEnabledChanged(enable); +} diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h index 302439196909c892313cc6f4b8b41228641b3591..eafc1454e051d9d04a2c25721eed476535604f27 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.h +++ b/src/QmlControls/QGroundControlQmlGlobal.h @@ -54,14 +54,25 @@ public: Q_PROPERTY(qreal zOrderWidgets READ zOrderWidgets CONSTANT) ///< z order value to widgets, for example: zoom controls, hud widgetss Q_PROPERTY(qreal zOrderMapItems READ zOrderMapItems CONSTANT) ///< z order value for map items, for example: mission item indicators - /// Global "Advance Mode" preference. Certain UI elements and features are different based on this. - Q_PROPERTY(bool isAdvancedMode READ isAdvancedMode CONSTANT) + // Various QGC settings exposed to Qml + Q_PROPERTY(bool isAdvancedMode READ isAdvancedMode CONSTANT) ///< Global "Advance Mode" preference. Certain UI elements and features are different based on this. + Q_PROPERTY(bool isDarkStyle READ isDarkStyle WRITE setIsDarkStyle NOTIFY isDarkStyleChanged) // TODO: Should be in ScreenTools? + Q_PROPERTY(bool isAudioMuted READ isAudioMuted WRITE setIsAudioMuted NOTIFY isAudioMutedChanged) + Q_PROPERTY(bool isLowPowerMode READ isLowPowerMode WRITE setIsLowPowerMode NOTIFY isLowPowerModeChanged) + Q_PROPERTY(bool isSaveLogPrompt READ isSaveLogPrompt WRITE setIsSaveLogPrompt NOTIFY isSaveLogPromptChanged) + Q_PROPERTY(bool isSaveLogPromptNotArmed READ isSaveLogPromptNotArmed WRITE setIsSaveLogPromptNotArmed NOTIFY isSaveLogPromptNotArmedChanged) + Q_PROPERTY(bool isHeartBeatEnabled READ isHeartBeatEnabled WRITE setIsHeartBeatEnabled NOTIFY isHeartBeatEnabledChanged) + Q_PROPERTY(bool isMultiplexingEnabled READ isMultiplexingEnabled WRITE setIsMultiplexingEnabled NOTIFY isMultiplexingEnabledChanged) + Q_PROPERTY(bool isVersionCheckEnabled READ isVersionCheckEnabled WRITE setIsVersionCheckEnabled NOTIFY isVersionCheckEnabledChanged) Q_INVOKABLE void saveGlobalSetting (const QString& key, const QString& value); Q_INVOKABLE QString loadGlobalSetting (const QString& key, const QString& defaultValue); Q_INVOKABLE void saveBoolGlobalSetting (const QString& key, bool value); Q_INVOKABLE bool loadBoolGlobalSetting (const QString& key, bool defaultValue); + Q_INVOKABLE void deleteAllSettingsNextBoot () { qgcApp()->deleteAllSettingsNextBoot(); } + Q_INVOKABLE void clearDeleteAllSettingsNextBoot () { qgcApp()->clearDeleteAllSettingsNextBoot(); } + Q_INVOKABLE void startPX4MockLink (bool sendStatusText); Q_INVOKABLE void startGenericMockLink (bool sendStatusText); Q_INVOKABLE void startAPMArduCopterMockLink (bool sendStatusText); @@ -77,57 +88,33 @@ public: qreal zOrderWidgets () { return 100; } qreal zOrderMapItems () { return 50; } - //-- TODO: This should be in ScreenTools but I don't understand the changes done there (ScreenToolsController versus ScreenTools) - Q_PROPERTY(bool isDarkStyle READ isDarkStyle WRITE setIsDarkStyle NOTIFY isDarkStyleChanged) - bool isDarkStyle () { return qgcApp()->styleIsDark(); } - void setIsDarkStyle (bool dark) { qgcApp()->setStyle(dark); } - - //-- Audio Muting - Q_PROPERTY(bool isAudioMuted READ isAudioMuted WRITE setIsAudioMuted NOTIFY isAudioMutedChanged) - bool isAudioMuted () { return qgcApp()->toolbox()->audioOutput()->isMuted(); } - void setIsAudioMuted (bool muted) { qgcApp()->toolbox()->audioOutput()->mute(muted); } - - //-- Low power mode - Q_PROPERTY(bool isLowPowerMode READ isLowPowerMode WRITE setIsLowPowerMode NOTIFY isLowPowerModeChanged) - bool isLowPowerMode () { return MainWindow::instance()->lowPowerModeEnabled(); } - void setIsLowPowerMode (bool low) { MainWindow::instance()->enableLowPowerMode(low); } - - //-- Prompt save log - Q_PROPERTY(bool isSaveLogPrompt READ isSaveLogPrompt WRITE setIsSaveLogPrompt NOTIFY isSaveLogPromptChanged) - bool isSaveLogPrompt () { return qgcApp()->promptFlightDataSave(); } - void setIsSaveLogPrompt (bool prompt) { qgcApp()->setPromptFlightDataSave(prompt); } - - //-- ClearSettings - Q_INVOKABLE void deleteAllSettingsNextBoot () { qgcApp()->deleteAllSettingsNextBoot(); } - Q_INVOKABLE void clearDeleteAllSettingsNextBoot () { qgcApp()->clearDeleteAllSettingsNextBoot(); } + bool isDarkStyle () { return qgcApp()->styleIsDark(); } + bool isAudioMuted () { return qgcApp()->toolbox()->audioOutput()->isMuted(); } + bool isLowPowerMode () { return MainWindow::instance()->lowPowerModeEnabled(); } + bool isSaveLogPrompt () { return qgcApp()->promptFlightDataSave(); } + bool isSaveLogPromptNotArmed () { return qgcApp()->promptFlightDataSaveNotArmed(); } + bool isHeartBeatEnabled () { return qgcApp()->toolbox()->mavlinkProtocol()->heartbeatsEnabled(); } + bool isMultiplexingEnabled () { return qgcApp()->toolbox()->mavlinkProtocol()->multiplexingEnabled(); } + bool isVersionCheckEnabled () { return qgcApp()->toolbox()->mavlinkProtocol()->versionCheckEnabled(); } //-- TODO: Make this into an actual preference. - bool isAdvancedMode () { return false; } - - // - //-- Mavlink Protocol - // - - //-- Emit heartbeat - Q_PROPERTY(bool isHeartBeatEnabled READ isHeartBeatEnabled WRITE setIsHeartBeatEnabled NOTIFY isHeartBeatEnabledChanged) - bool isHeartBeatEnabled () { return qgcApp()->toolbox()->mavlinkProtocol()->heartbeatsEnabled(); } - void setIsHeartBeatEnabled (bool enable) { qgcApp()->toolbox()->mavlinkProtocol()->enableHeartbeats(enable); } - - //-- Multiplexing - Q_PROPERTY(bool isMultiplexingEnabled READ isMultiplexingEnabled WRITE setIsMultiplexingEnabled NOTIFY isMultiplexingEnabledChanged) - bool isMultiplexingEnabled () { return qgcApp()->toolbox()->mavlinkProtocol()->multiplexingEnabled(); } - void setIsMultiplexingEnabled(bool enable) { qgcApp()->toolbox()->mavlinkProtocol()->enableMultiplexing(enable); } + bool isAdvancedMode () { return false; } - //-- Version Check - Q_PROPERTY(bool isVersionCheckEnabled READ isVersionCheckEnabled WRITE setIsVersionCheckEnabled NOTIFY isVersionCheckEnabledChanged) - bool isVersionCheckEnabled () { return qgcApp()->toolbox()->mavlinkProtocol()->versionCheckEnabled(); } - void setIsVersionCheckEnabled(bool enable) { qgcApp()->toolbox()->mavlinkProtocol()->enableVersionCheck(enable); } + void setIsDarkStyle (bool dark); + void setIsAudioMuted (bool muted); + void setIsLowPowerMode (bool low); + void setIsSaveLogPrompt (bool prompt); + void setIsSaveLogPromptNotArmed (bool prompt); + void setIsHeartBeatEnabled (bool enable); + void setIsMultiplexingEnabled (bool enable); + void setIsVersionCheckEnabled (bool enable); signals: void isDarkStyleChanged (bool dark); void isAudioMutedChanged (bool muted); void isLowPowerModeChanged (bool lowPower); void isSaveLogPromptChanged (bool prompt); + void isSaveLogPromptNotArmedChanged (bool prompt); void isHeartBeatEnabledChanged (bool enabled); void isMultiplexingEnabledChanged (bool enabled); void isVersionCheckEnabledChanged (bool enabled); diff --git a/src/comm/MAVLinkProtocol.cc b/src/comm/MAVLinkProtocol.cc index af6b42128508fdc6f354cfcff86fca3611302ac0..37cb0135eaeeafd996cfd0da557dac5cb70d793d 100644 --- a/src/comm/MAVLinkProtocol.cc +++ b/src/comm/MAVLinkProtocol.cc @@ -57,7 +57,7 @@ MAVLinkProtocol::MAVLinkProtocol(QGCApplication* app) #ifndef __mobile__ , _logSuspendError(false) , _logSuspendReplay(false) - , _logWasArmed(false) + , _logPromptForSave(false) , _tempLogFile(QString("%2.%3").arg(_tempLogFileTemplate).arg(_logFileExtension)) #endif , _heartbeatRate(MAVLINK_HEARTBEAT_DEFAULT_RATE) @@ -343,11 +343,11 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b) } // Check for the vehicle arming going by. This is used to trigger log save. - if (!_logWasArmed && message.msgid == MAVLINK_MSG_ID_HEARTBEAT) { + if (!_logPromptForSave && message.msgid == MAVLINK_MSG_ID_HEARTBEAT) { mavlink_heartbeat_t state; mavlink_msg_heartbeat_decode(&message, &state); if (state.base_mode & MAV_MODE_FLAG_DECODE_POSITION_SAFETY) { - _logWasArmed = true; + _logPromptForSave = true; } } } @@ -674,7 +674,11 @@ void MAVLinkProtocol::_startLogging(void) return; } - qDebug() << "Temp log" << _tempLogFile.fileName(); + if (_app->promptFlightDataSaveNotArmed()) { + _logPromptForSave = true; + } + + qDebug() << "Temp log" << _tempLogFile.fileName() << _logPromptForSave; _logSuspendError = false; } @@ -685,13 +689,13 @@ void MAVLinkProtocol::_stopLogging(void) { if (_closeLogFile()) { // If the signals are not connected it means we are running a unit test. In that case just delete log files - if (_logWasArmed && _app->promptFlightDataSave()) { + if (_logPromptForSave && _app->promptFlightDataSave()) { emit saveTempFlightDataLog(_tempLogFile.fileName()); } else { QFile::remove(_tempLogFile.fileName()); } } - _logWasArmed = false; + _logPromptForSave = false; } /// @brief Checks the temp directory for log files which may have been left there. diff --git a/src/comm/MAVLinkProtocol.h b/src/comm/MAVLinkProtocol.h index 02964a994b916cd938c5d933d857ec548fb9a6ce..5e0d1f7ae9414cb876422654cea1ecda1fef551d 100644 --- a/src/comm/MAVLinkProtocol.h +++ b/src/comm/MAVLinkProtocol.h @@ -297,7 +297,7 @@ private: bool _logSuspendError; ///< true: Logging suspended due to error bool _logSuspendReplay; ///< true: Logging suspended due to replay - bool _logWasArmed; ///< true: vehicle was armed during logging + bool _logPromptForSave; ///< true: Prompt for log save when appropriate QGCTemporaryFile _tempLogFile; ///< File to log to static const char* _tempLogFileTemplate; ///< Template for temporary log file diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index db4a8509cfbd61e18c6522c9c9626cf04d0de8df..de6acff1ae3ff47bc3799d70d97f3be04cd813a4 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -596,7 +596,7 @@ void MainWindow::_openUrl(const QString& url, const QString& errorMessage) void MainWindow::showSettings() { - SettingsDialog settings(qgcApp()->toolbox()->audioOutput(), qgcApp()->toolbox()->flightMapSettings(), this); + SettingsDialog settings(this); settings.exec(); } @@ -619,7 +619,7 @@ void MainWindow::_storeCurrentViewState(void) void MainWindow::manageLinks() { - SettingsDialog settings(qgcApp()->toolbox()->audioOutput(), qgcApp()->toolbox()->flightMapSettings(), this, SettingsDialog::ShowCommLinks); + SettingsDialog settings(this, SettingsDialog::ShowCommLinks); settings.exec(); } diff --git a/src/ui/SettingsDialog.cc b/src/ui/SettingsDialog.cc index f6a8db6770ed20a9c2eb6ed0f8f418660c146fa7..0d9bc946ad97c5cf62dbdf2d7351399985f8aa3b 100644 --- a/src/ui/SettingsDialog.cc +++ b/src/ui/SettingsDialog.cc @@ -39,11 +39,8 @@ #include "MainToolBarController.h" #include "FlightMapSettings.h" -SettingsDialog::SettingsDialog(GAudioOutput* audioOutput, FlightMapSettings* flightMapSettings, QWidget *parent, int showTab, Qt::WindowFlags flags) +SettingsDialog::SettingsDialog(QWidget *parent, int showTab, Qt::WindowFlags flags) : QDialog(parent, flags) - , _mainWindow(MainWindow::instance()) - , _audioOutput(audioOutput) - , _flightMapSettings(flightMapSettings) , _ui(new Ui::SettingsDialog) { _ui->setupUi(this); @@ -66,43 +63,12 @@ SettingsDialog::SettingsDialog(GAudioOutput* audioOutput, FlightMapSettings* fli this->window()->setWindowTitle(tr("QGroundControl Settings")); - // Audio preferences - _ui->audioMuteCheckBox->setChecked(_audioOutput->isMuted()); - connect(_ui->audioMuteCheckBox, SIGNAL(toggled(bool)), _audioOutput, SLOT(mute(bool))); - connect(_audioOutput, SIGNAL(mutedChanged(bool)), _ui->audioMuteCheckBox, SLOT(setChecked(bool))); - - // Reconnect - _ui->reconnectCheckBox->setChecked(_mainWindow->autoReconnectEnabled()); - connect(_ui->reconnectCheckBox, SIGNAL(clicked(bool)), _mainWindow, SLOT(enableAutoReconnect(bool))); - - // Low power mode - _ui->lowPowerCheckBox->setChecked(_mainWindow->lowPowerModeEnabled()); - connect(_ui->lowPowerCheckBox, SIGNAL(clicked(bool)), _mainWindow, SLOT(enableLowPowerMode(bool))); - - connect(_ui->deleteSettings, &QAbstractButton::toggled, this, &SettingsDialog::_deleteSettingsToggled); - - // Application color style - _ui->styleChooser->setCurrentIndex(qgcApp()->styleIsDark() ? 0 : 1); - _ui->savedFilesLocation->setText(qgcApp()->savedFilesLocation()); - _ui->promptFlightDataSave->setChecked(qgcApp()->promptFlightDataSave()); // Connect signals - connect(_ui->styleChooser, SIGNAL(currentIndexChanged(int)), this, SLOT(styleChanged(int))); connect(_ui->browseSavedFilesLocation, &QPushButton::clicked, this, &SettingsDialog::_selectSavedFilesDirectory); connect(_ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::_validateBeforeClose); - // Flight Map settings - - FlightMapSettings* fmSettings = _flightMapSettings; - _ui->bingMapRadio->setChecked(fmSettings->mapProvider() == "Bing"); - _ui->googleMapRadio->setChecked(fmSettings->mapProvider() == "Google"); - _ui->openMapRadio->setChecked(fmSettings->mapProvider() == "Open"); - - connect(_ui->bingMapRadio, &QRadioButton::clicked, this, &SettingsDialog::_bingMapRadioClicked); - connect(_ui->googleMapRadio, &QRadioButton::clicked, this, &SettingsDialog::_googleMapRadioClicked); - connect(_ui->openMapRadio, &QRadioButton::clicked, this, &SettingsDialog::_openMapRadioClicked); - switch (showTab) { case ShowCommLinks: _ui->tabWidget->setCurrentWidget(pLinkConf); @@ -118,29 +84,6 @@ SettingsDialog::~SettingsDialog() delete _ui; } -void SettingsDialog::styleChanged(int index) -{ - qgcApp()->setStyle(index == 0); -} - -void SettingsDialog::_deleteSettingsToggled(bool checked) -{ - if (checked){ - QGCMessageBox::StandardButton answer = - QGCMessageBox::question(tr("Delete Settings"), - tr("All saved settings will be deleted the next time you start QGroundControl. Is this really what you want?"), - QMessageBox::Yes | QMessageBox::No, - QMessageBox::No); - if (answer == QMessageBox::Yes) { - qgcApp()->deleteAllSettingsNextBoot(); - } else { - _ui->deleteSettings->setChecked(false); - } - } else { - qgcApp()->clearDeleteAllSettingsNextBoot(); - } -} - /// @brief Validates the settings before closing void SettingsDialog::_validateBeforeClose(void) { @@ -155,7 +98,7 @@ void SettingsDialog::_validateBeforeClose(void) } // Locations is valid, save app->setSavedFilesLocation(saveLocation); - qgcApp()->setPromptFlightDataSave(_ui->promptFlightDataSave->checkState() == Qt::Checked); + // Close dialog accept(); } @@ -170,30 +113,4 @@ void SettingsDialog::_selectSavedFilesDirectory(void) if (!newLocation.isEmpty()) { _ui->savedFilesLocation->setText(newLocation); } - - // TODO: - // Once a directory is selected, we need to display the various subdirectories used underneath: - // * Flight data logs - // * Parameters -} - -void SettingsDialog::_bingMapRadioClicked(bool checked) -{ - if (checked) { - _flightMapSettings->setMapProvider("Bing"); - } -} - -void SettingsDialog::_googleMapRadioClicked(bool checked) -{ - if (checked) { - _flightMapSettings->setMapProvider("Google"); - } -} - -void SettingsDialog::_openMapRadioClicked(bool checked) -{ - if (checked) { - _flightMapSettings->setMapProvider("Open"); - } } diff --git a/src/ui/SettingsDialog.h b/src/ui/SettingsDialog.h index 6878cff62941748c2e6c036111d036d04463a43c..cd7647103aae5c304a632c93257e935f9859d934 100644 --- a/src/ui/SettingsDialog.h +++ b/src/ui/SettingsDialog.h @@ -48,25 +48,14 @@ public: ShowMavlink }; - SettingsDialog(GAudioOutput* audioOuput, FlightMapSettings* flightMapSettings, QWidget *parent = 0, int showTab = ShowDefault, Qt::WindowFlags flags = Qt::Sheet); + SettingsDialog(QWidget *parent = 0, int showTab = ShowDefault, Qt::WindowFlags flags = Qt::Sheet); ~SettingsDialog(); -public slots: - void styleChanged(int index); - private slots: - void _deleteSettingsToggled(bool checked); void _selectSavedFilesDirectory(void); void _validateBeforeClose(void); - - void _bingMapRadioClicked(bool checked); - void _googleMapRadioClicked(bool checked); - void _openMapRadioClicked(bool checked); private: - MainWindow* _mainWindow; - GAudioOutput* _audioOutput; - FlightMapSettings* _flightMapSettings; Ui::SettingsDialog* _ui; }; diff --git a/src/ui/SettingsDialog.ui b/src/ui/SettingsDialog.ui index 35bd7c87141645bd9280d95027184313bdc0b2df..d304d06bee1cfb4494e1c101570aa6b7650cf49a 100644 --- a/src/ui/SettingsDialog.ui +++ b/src/ui/SettingsDialog.ui @@ -36,184 +36,6 @@ General Settings - - - - - 0 - 0 - - - - Mute all audio output - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Automatically reconnect last link on application startup - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Lowers all update rates to save battery power - - - Enable low power mode - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Prompt to save Flight Data Log after each flight - - - - 0 - 0 - - - - - - - - Map Provider - - - - - - Bing - - - - - - - Google - - - - - - - Open Streets - - - - - - - - - - - 0 - 0 - - - - Style - - - false - - - false - - - - 8 - - - 8 - - - - - 0 - - - QLayout::SetDefaultConstraint - - - 0 - - - 80 - - - - - - 0 - 0 - - - - - 200 - 0 - - - - - Dark (for indoor use) - - - - - Light (for outdoor use) - - - - - - - - - @@ -281,37 +103,6 @@ - - - - Reset All Settings to Default - - - - - - Delete all saved settings on next boot - - - - - - - - 11 - - - - Note: You can also use --clear-settings as a command line option to accomplish this. - - - true - - - - - - diff --git a/src/ui/preferences/GeneralSettings.qml b/src/ui/preferences/GeneralSettings.qml index dd3aef9d0f9e8bfb0faa2d37df6f70d52eec23ed..aea269f9fb82d90e9eff3d38b001f7ae3f9022ca 100644 --- a/src/ui/preferences/GeneralSettings.qml +++ b/src/ui/preferences/GeneralSettings.qml @@ -86,6 +86,7 @@ Rectangle { //----------------------------------------------------------------- //-- Prompt Save Log QGCCheckBox { + id: promptSaveLog text: "Prompt to save Flight Data Log after each flight" checked: QGroundControl.isSaveLogPrompt visible: !ScreenTools.isMobile @@ -94,6 +95,17 @@ Rectangle { } } //----------------------------------------------------------------- + //-- Prompt Save even if not armed + QGCCheckBox { + text: "Prompt to save Flight Data Log even if vehicle was not armed" + checked: QGroundControl.isSaveLogPromptNotArmed + visible: !ScreenTools.isMobile + enabled: promptSaveLog.checked + onClicked: { + QGroundControl.isSaveLogPromptNotArmed = checked + } + } + //----------------------------------------------------------------- //-- Clear settings QGCCheckBox { id: clearCheck