Browse Source

Delete Settings from preferences

QGC4.4
Don Gagne 11 years ago
parent
commit
9bfa9cecce
  1. 5
      src/QGCCore.cc
  2. 2
      src/QGCCore.h
  3. 20
      src/ui/QGCSettingsWidget.cc
  4. 3
      src/ui/QGCSettingsWidget.h
  5. 16
      src/ui/QGCSettingsWidget.ui

5
src/QGCCore.cc

@ -55,6 +55,7 @@ This file is part of the QGROUNDCONTROL project
#include "MAVLinkSimulationLink.h" #include "MAVLinkSimulationLink.h"
#include "SerialLink.h" #include "SerialLink.h"
const char* QGCCore::deleteAllSettingsKey = "DeleteAllSettingsNextBoot";
const char* QGCCore::_settingsVersionKey = "SettingsVersion"; const char* QGCCore::_settingsVersionKey = "SettingsVersion";
/** /**
@ -99,9 +100,13 @@ QGCCore::QGCCore(int &argc, char* argv[]) :
QSettings settings; QSettings settings;
// The setting will delete all settings on this boot
fClearSettingsOptions |= settings.contains(deleteAllSettingsKey);
if (fClearSettingsOptions) { if (fClearSettingsOptions) {
// User requested settings to be cleared on command line // User requested settings to be cleared on command line
settings.clear(); settings.clear();
settings.setValue(_settingsVersionKey, QGC_SETTINGS_VERSION);
settings.sync(); settings.sync();
} }

2
src/QGCCore.h

@ -61,6 +61,8 @@ public:
/// @return false: init failed, app should exit /// @return false: init failed, app should exit
bool init(void); bool init(void);
static const char* deleteAllSettingsKey;
protected: protected:
void startLinkManager(); void startLinkManager();

20
src/ui/QGCSettingsWidget.cc

@ -10,6 +10,7 @@
#include "MAVLinkProtocol.h" #include "MAVLinkProtocol.h"
#include "MAVLinkSettingsWidget.h" #include "MAVLinkSettingsWidget.h"
#include "GAudioOutput.h" #include "GAudioOutput.h"
#include "QGCCore.h"
QGCSettingsWidget::QGCSettingsWidget(JoystickInput *joystick, QWidget *parent, Qt::WindowFlags flags) : QGCSettingsWidget::QGCSettingsWidget(JoystickInput *joystick, QWidget *parent, Qt::WindowFlags flags) :
QDialog(parent, flags), QDialog(parent, flags),
@ -55,6 +56,8 @@ QGCSettingsWidget::QGCSettingsWidget(JoystickInput *joystick, QWidget *parent, Q
ui->titleBarCheckBox->setChecked(mainWindow->dockWidgetTitleBarsEnabled()); ui->titleBarCheckBox->setChecked(mainWindow->dockWidgetTitleBarsEnabled());
connect(ui->titleBarCheckBox,SIGNAL(clicked(bool)),mainWindow,SLOT(enableDockWidgetTitleBars(bool))); connect(ui->titleBarCheckBox,SIGNAL(clicked(bool)),mainWindow,SLOT(enableDockWidgetTitleBars(bool)));
connect(ui->deleteSettings, &QAbstractButton::toggled, this, &QGCSettingsWidget::_deleteSettingsToggled);
// Custom mode // Custom mode
ui->customModeComboBox->addItem(tr("Default: Generic MAVLink and serial links"), MainWindow::CUSTOM_MODE_NONE); ui->customModeComboBox->addItem(tr("Default: Generic MAVLink and serial links"), MainWindow::CUSTOM_MODE_NONE);
@ -197,3 +200,20 @@ void QGCSettingsWidget::selectCustomMode(int mode)
MainWindow::instance()->setCustomMode(static_cast<enum MainWindow::CUSTOM_MODE>(ui->customModeComboBox->itemData(mode).toInt())); MainWindow::instance()->setCustomMode(static_cast<enum MainWindow::CUSTOM_MODE>(ui->customModeComboBox->itemData(mode).toInt()));
MainWindow::instance()->showInfoMessage(tr("Please restart QGroundControl"), tr("The optimization selection was changed. The application needs to be closed and restarted to put all optimizations into effect.")); MainWindow::instance()->showInfoMessage(tr("Please restart QGroundControl"), tr("The optimization selection was changed. The application needs to be closed and restarted to put all optimizations into effect."));
} }
void QGCSettingsWidget::_deleteSettingsToggled(bool checked)
{
if (checked){
QMessageBox::StandardButton answer = QMessageBox::question(this,
tr("Delete Settings"),
tr("All saved settgings 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) {
QSettings settings;
settings.setValue(QGCCore::deleteAllSettingsKey, 1);
} else {
ui->deleteSettings->setChecked(false);
}
}
}

3
src/ui/QGCSettingsWidget.h

@ -24,6 +24,9 @@ public slots:
void selectStylesheet(); void selectStylesheet();
void selectCustomMode(int mode); void selectCustomMode(int mode);
private slots:
void _deleteSettingsToggled(bool checked);
private: private:
MainWindow* mainWindow; MainWindow* mainWindow;
Ui::QGCSettingsWidget* ui; Ui::QGCSettingsWidget* ui;

16
src/ui/QGCSettingsWidget.ui

@ -152,6 +152,22 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Danger Zone</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="deleteSettings">
<property name="text">
<string>Delete all saved settings on next boot</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>

Loading…
Cancel
Save