diff --git a/ground/gcs/src/libs/utils/consoleprocess.h b/ground/gcs/src/libs/utils/consoleprocess.h index 79322f23e..bb1df6782 100644 --- a/ground/gcs/src/libs/utils/consoleprocess.h +++ b/ground/gcs/src/libs/utils/consoleprocess.h @@ -86,13 +86,9 @@ public: } #ifdef Q_OS_UNIX - void setSettings(QSettings *settings) - { - m_settings = settings; - } static QString defaultTerminalEmulator(); - static QString terminalEmulator(const QSettings *settings); - static void setTerminalEmulator(QSettings *settings, const QString &term); + static QString terminalEmulator(const QSettings &settings); + static void setTerminalEmulator(QSettings &settings, const QString &term); #endif signals: @@ -146,7 +142,6 @@ private: #else QProcess m_process; QByteArray m_stubServerDir; - QSettings *m_settings; #endif }; } // namespace Utils diff --git a/ground/gcs/src/libs/utils/consoleprocess_unix.cpp b/ground/gcs/src/libs/utils/consoleprocess_unix.cpp index fb7165046..491135bde 100644 --- a/ground/gcs/src/libs/utils/consoleprocess_unix.cpp +++ b/ground/gcs/src/libs/utils/consoleprocess_unix.cpp @@ -254,17 +254,17 @@ QString ConsoleProcess::defaultTerminalEmulator() #endif } -QString ConsoleProcess::terminalEmulator(const QSettings *settings) +QString ConsoleProcess::terminalEmulator(const QSettings &settings) { const QString dflt = defaultTerminalEmulator() + QLatin1String(" -e"); if (!settings) { return dflt; } - return settings->value(QLatin1String("General/TerminalEmulator"), dflt).toString(); + return settings.value(QLatin1String("General/TerminalEmulator"), dflt).toString(); } -void ConsoleProcess::setTerminalEmulator(QSettings *settings, const QString &term) +void ConsoleProcess::setTerminalEmulator(QSettings &settings, const QString &term) { - return settings->setValue(QLatin1String("General/TerminalEmulator"), term); + return settings.setValue(QLatin1String("General/TerminalEmulator"), term); } diff --git a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp index 4e9b7a73b..7114a00f1 100644 --- a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.cpp @@ -26,83 +26,59 @@ */ #include "antennatrackgadgetconfiguration.h" + #include /** * Loads a saved configuration or defaults if non exist. * */ -AntennaTrackGadgetConfiguration::AntennaTrackGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_connectionMode("Serial"), - m_defaultPort("Unknown"), - m_defaultSpeed(QSerialPort::UnknownBaud), - m_defaultDataBits(QSerialPort::UnknownDataBits), - m_defaultFlow(QSerialPort::UnknownFlowControl), - m_defaultParity(QSerialPort::UnknownParity), - m_defaultStopBits(QSerialPort::UnknownStopBits), - m_defaultTimeOut(5000) +AntennaTrackGadgetConfiguration::AntennaTrackGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QSerialPort::BaudRate speed; - QSerialPort::DataBits databits; - QSerialPort::FlowControl flow; - QSerialPort::Parity parity; - QSerialPort::StopBits stopbits; + m_defaultPort = settings.value("defaultPort", "Unknown").toString(); + m_defaultSpeed = (QSerialPort::BaudRate)settings.value("defaultSpeed", QSerialPort::UnknownBaud).toInt(); + m_defaultDataBits = (QSerialPort::DataBits)settings.value("defaultDataBits", QSerialPort::UnknownDataBits).toInt(); + m_defaultFlow = (QSerialPort::FlowControl)settings.value("defaultFlow", QSerialPort::UnknownFlowControl).toInt(); + m_defaultParity = (QSerialPort::Parity)settings.value("defaultParity", QSerialPort::UnknownParity).toInt(); + m_defaultStopBits = (QSerialPort::StopBits)settings.value("defaultStopBits", QSerialPort::UnknownStopBits).toInt(); + m_connectionMode = (QSerialPort::BaudRate)settings.value("connectionMode", "Serial").toString(); + m_defaultTimeOut = 5000; +} - int ispeed = qSettings->value("defaultSpeed").toInt(); - int idatabits = qSettings->value("defaultDataBits").toInt(); - int iflow = qSettings->value("defaultFlow").toInt(); - int iparity = qSettings->value("defaultParity").toInt(); - int istopbits = qSettings->value("defaultStopBits").toInt(); - QString port = qSettings->value("defaultPort").toString(); - QString conMode = qSettings->value("connectionMode").toString(); - - databits = (QSerialPort::DataBits)idatabits; - flow = (QSerialPort::FlowControl)iflow; - parity = (QSerialPort::Parity)iparity; - stopbits = (QSerialPort::StopBits)istopbits; - speed = (QSerialPort::BaudRate)ispeed; - m_defaultPort = port; - m_defaultSpeed = speed; - m_defaultDataBits = databits; - m_defaultFlow = flow; - m_defaultParity = parity; - m_defaultStopBits = stopbits; - m_connectionMode = conMode; - } +AntennaTrackGadgetConfiguration::AntennaTrackGadgetConfiguration(const AntennaTrackGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_defaultSpeed = obj.m_defaultSpeed; + m_defaultDataBits = obj.m_defaultDataBits; + m_defaultFlow = obj.m_defaultFlow; + m_defaultParity = obj.m_defaultParity; + m_defaultStopBits = obj.m_defaultStopBits; + m_defaultPort = obj.m_defaultPort; + m_connectionMode = obj.m_connectionMode; + m_defaultTimeOut = obj.m_defaultTimeOut; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *AntennaTrackGadgetConfiguration::clone() +IUAVGadgetConfiguration *AntennaTrackGadgetConfiguration::clone() const { - AntennaTrackGadgetConfiguration *m = new AntennaTrackGadgetConfiguration(this->classId()); - - m->m_defaultSpeed = m_defaultSpeed; - m->m_defaultDataBits = m_defaultDataBits; - m->m_defaultFlow = m_defaultFlow; - m->m_defaultParity = m_defaultParity; - m->m_defaultStopBits = m_defaultStopBits; - m->m_defaultPort = m_defaultPort; - m->m_connectionMode = m_connectionMode; - return m; + return new AntennaTrackGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void AntennaTrackGadgetConfiguration::saveConfig(QSettings *settings) const +void AntennaTrackGadgetConfiguration::saveConfig(QSettings &settings) const { - settings->setValue("defaultSpeed", m_defaultSpeed); - settings->setValue("defaultDataBits", m_defaultDataBits); - settings->setValue("defaultFlow", m_defaultFlow); - settings->setValue("defaultParity", m_defaultParity); - settings->setValue("defaultStopBits", m_defaultStopBits); - settings->setValue("defaultPort", m_defaultPort); - settings->setValue("connectionMode", m_connectionMode); + settings.setValue("defaultSpeed", m_defaultSpeed); + settings.setValue("defaultDataBits", m_defaultDataBits); + settings.setValue("defaultFlow", m_defaultFlow); + settings.setValue("defaultParity", m_defaultParity); + settings.setValue("defaultStopBits", m_defaultStopBits); + settings.setValue("defaultPort", m_defaultPort); + settings.setValue("connectionMode", m_connectionMode); } diff --git a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h index 4184119fa..f4819e1e3 100644 --- a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h +++ b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetconfiguration.h @@ -29,6 +29,7 @@ #define ANTENNATRACKGADGETCONFIGURATION_H #include + #include using namespace Core; @@ -45,11 +46,14 @@ struct PortSettings { long Timeout_Millisec; }; - class AntennaTrackGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit AntennaTrackGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit AntennaTrackGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit AntennaTrackGadgetConfiguration(const AntennaTrackGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; void setConnectionMode(QString mode) { @@ -59,7 +63,6 @@ public: { return m_connectionMode; } - // set port configuration functions void setSpeed(QSerialPort::BaudRate speed) { @@ -120,9 +123,6 @@ public: return m_defaultTimeOut; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: QString m_connectionMode; QString m_defaultPort; diff --git a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.cpp b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.cpp index 14818b1cc..efd21d503 100644 --- a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.cpp +++ b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.cpp @@ -47,9 +47,9 @@ Core::IUAVGadget *AntennaTrackGadgetFactory::createGadget(QWidget *parent) return new AntennaTrackGadget(QString("AntennaTrackGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *AntennaTrackGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *AntennaTrackGadgetFactory::createConfiguration(QSettings &settings) { - return new AntennaTrackGadgetConfiguration(QString("AntennaTrackGadget"), qSettings); + return new AntennaTrackGadgetConfiguration(QString("AntennaTrackGadget"), settings); } IOptionsPage *AntennaTrackGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.h b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.h index f8e1333ba..a1081a241 100644 --- a/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.h +++ b/ground/gcs/src/plugins/antennatrack/antennatrackgadgetfactory.h @@ -44,7 +44,7 @@ public: ~AntennaTrackGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/config/configgadget.cpp b/ground/gcs/src/plugins/config/configgadget.cpp index e67863e1b..8d67af9ce 100644 --- a/ground/gcs/src/plugins/config/configgadget.cpp +++ b/ground/gcs/src/plugins/config/configgadget.cpp @@ -45,12 +45,12 @@ void ConfigGadget::loadConfiguration(IUAVGadgetConfiguration *config) Q_UNUSED(config); } -void ConfigGadget::saveState(QSettings *settings) +void ConfigGadget::saveState(QSettings &settings) { m_widget->saveState(settings); } -void ConfigGadget::restoreState(QSettings *settings) +void ConfigGadget::restoreState(QSettings &settings) { m_widget->restoreState(settings); } diff --git a/ground/gcs/src/plugins/config/configgadget.h b/ground/gcs/src/plugins/config/configgadget.h index c0380fad7..a6e8d0ce1 100644 --- a/ground/gcs/src/plugins/config/configgadget.h +++ b/ground/gcs/src/plugins/config/configgadget.h @@ -49,8 +49,8 @@ public: void loadConfiguration(IUAVGadgetConfiguration *config); - void saveState(QSettings *settings); - void restoreState(QSettings *settings); + void saveState(QSettings &settings); + void restoreState(QSettings &settings); private: ConfigGadgetWidget *m_widget; diff --git a/ground/gcs/src/plugins/config/configgadgetwidget.cpp b/ground/gcs/src/plugins/config/configgadgetwidget.cpp index 03ae0cd23..e4a8e9da4 100644 --- a/ground/gcs/src/plugins/config/configgadgetwidget.cpp +++ b/ground/gcs/src/plugins/config/configgadgetwidget.cpp @@ -173,14 +173,14 @@ void ConfigGadgetWidget::startInputWizard() inputWidget->startInputWizard(); } -void ConfigGadgetWidget::saveState(QSettings *settings) +void ConfigGadgetWidget::saveState(QSettings &settings) { - settings->setValue("currentIndex", stackWidget->currentIndex()); + settings.setValue("currentIndex", stackWidget->currentIndex()); } -void ConfigGadgetWidget::restoreState(QSettings *settings) +void ConfigGadgetWidget::restoreState(QSettings &settings) { - int index = settings->value("currentIndex", 0).toInt(); + int index = settings.value("currentIndex", 0).toInt(); stackWidget->setCurrentIndex(index); } diff --git a/ground/gcs/src/plugins/config/configgadgetwidget.h b/ground/gcs/src/plugins/config/configgadgetwidget.h index 9997ba8d4..378b3a6f5 100644 --- a/ground/gcs/src/plugins/config/configgadgetwidget.h +++ b/ground/gcs/src/plugins/config/configgadgetwidget.h @@ -45,8 +45,8 @@ public: void startInputWizard(); - void saveState(QSettings *settings); - void restoreState(QSettings *settings); + void saveState(QSettings &settings); + void restoreState(QSettings &settings); protected: void resizeEvent(QResizeEvent *event); diff --git a/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp index 2d47e5f4b..9b53d774c 100644 --- a/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -481,14 +481,14 @@ static const char *settingsGroup = "KeyBindings"; static const char *idKey = "ID"; static const char *sequenceKey = "Keysequence"; -void ActionManagerPrivate::readSettings(QSettings *settings) +void ActionManagerPrivate::readSettings(QSettings &settings) { - const int shortcuts = settings->beginReadArray(QLatin1String(settingsGroup)); + const int shortcuts = settings.beginReadArray(QLatin1String(settingsGroup)); for (int i = 0; i < shortcuts; ++i) { - settings->setArrayIndex(i); - const QString sid = settings->value(QLatin1String(idKey)).toString(); - const QKeySequence key(settings->value(QLatin1String(sequenceKey)).toString()); + settings.setArrayIndex(i); + const QString sid = settings.value(QLatin1String(idKey)).toString(); + const QKeySequence key(settings.value(QLatin1String(sequenceKey)).toString()); const int id = UniqueIDManager::instance()->uniqueIdentifier(sid); Command *cmd = command(id); @@ -496,12 +496,12 @@ void ActionManagerPrivate::readSettings(QSettings *settings) cmd->setKeySequence(key); } } - settings->endArray(); + settings.endArray(); } -void ActionManagerPrivate::saveSettings(QSettings *settings) +void ActionManagerPrivate::saveSettings(QSettings &settings) const { - settings->beginWriteArray(QLatin1String(settingsGroup)); + settings.beginWriteArray(QLatin1String(settingsGroup)); int count = 0; const IdCmdMap::const_iterator cmdcend = m_idCmdMap.constEnd(); @@ -511,12 +511,12 @@ void ActionManagerPrivate::saveSettings(QSettings *settings) QKeySequence key = cmd->keySequence(); if (key != cmd->defaultKeySequence()) { const QString sid = UniqueIDManager::instance()->stringForUniqueIdentifier(id); - settings->setArrayIndex(count); - settings->setValue(QLatin1String(idKey), sid); - settings->setValue(QLatin1String(sequenceKey), key.toString()); + settings.setArrayIndex(count); + settings.setValue(QLatin1String(idKey), sid); + settings.setValue(QLatin1String(sequenceKey), key.toString()); count++; } } - settings->endArray(); + settings.endArray(); } diff --git a/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager_p.h b/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager_p.h index 2c2f440bf..2011fecf8 100644 --- a/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager_p.h +++ b/ground/gcs/src/plugins/coreplugin/actionmanager/actionmanager_p.h @@ -31,9 +31,9 @@ #include -#include -#include -#include +#include +#include +#include QT_BEGIN_NAMESPACE class QSettings; @@ -62,7 +62,9 @@ public: void setContext(const QList &context); static ActionManagerPrivate *instance(); - void saveSettings(QSettings *settings); + void saveSettings(QSettings &settings) const; + void readSettings(QSettings &settings); + QList defaultGroups() const; QList commands() const; @@ -73,8 +75,6 @@ public: Command *command(int uid) const; ActionContainer *actionContainer(int uid) const; - void readSettings(QSettings *settings); - // ActionManager Interface ActionContainer *createMenu(const QString &id); ActionContainer *createMenuBar(const QString &id); diff --git a/ground/gcs/src/plugins/coreplugin/coreimpl.cpp b/ground/gcs/src/plugins/coreplugin/coreimpl.cpp index a6e3ab31d..8ce50a659 100644 --- a/ground/gcs/src/plugins/coreplugin/coreimpl.cpp +++ b/ground/gcs/src/plugins/coreplugin/coreimpl.cpp @@ -28,11 +28,11 @@ #include "coreimpl.h" -#include -#include - #include "utils/pathutils.h" +#include +#include + namespace Core { namespace Internal { // The Core Singleton @@ -117,11 +117,6 @@ MimeDatabase *CoreImpl::mimeDatabase() const return m_mainwindow->mimeDatabase(); } -QSettings *CoreImpl::settings(QSettings::Scope scope) const -{ - return m_mainwindow->settings(scope); -} - SettingsDatabase *CoreImpl::settingsDatabase() const { return m_mainwindow->settingsDatabase(); @@ -137,7 +132,6 @@ IContext *CoreImpl::currentContextObject() const return m_mainwindow->currentContextObject(); } - QMainWindow *CoreImpl::mainWindow() const { return m_mainwindow; @@ -181,24 +175,40 @@ void CoreImpl::openFiles(const QStringList &arguments) // m_mainwindow->openFiles(arguments); } -void CoreImpl::readMainSettings(QSettings *qs, bool workspaceDiffOnly) +void CoreImpl::readSettings(IConfigurablePlugin *plugin) { - m_mainwindow->readSettings(qs, workspaceDiffOnly); + QSettings settings; + + readSettings(plugin, settings); } -void CoreImpl::saveMainSettings(QSettings *qs) +void CoreImpl::saveSettings(IConfigurablePlugin *plugin) const { - m_mainwindow->saveSettings(qs); + QSettings settings; + + saveSettings(plugin, settings); } -void CoreImpl::readSettings(IConfigurablePlugin *plugin, QSettings *qs) +void CoreImpl::readMainSettings(QSettings &settings, bool workspaceDiffOnly) { - m_mainwindow->readSettings(plugin, qs); + m_mainwindow->readSettings(settings, workspaceDiffOnly); } -void CoreImpl::saveSettings(IConfigurablePlugin *plugin, QSettings *qs) + +void CoreImpl::saveMainSettings(QSettings &settings) const { - m_mainwindow->saveSettings(plugin, qs); + m_mainwindow->saveSettings(settings); } + +void CoreImpl::readSettings(IConfigurablePlugin *plugin, QSettings &settings) +{ + m_mainwindow->readSettings(plugin, settings); +} + +void CoreImpl::saveSettings(IConfigurablePlugin *plugin, QSettings &settings) const +{ + m_mainwindow->saveSettings(plugin, settings); +} + void CoreImpl::deleteSettings() { m_mainwindow->deleteSettings(); diff --git a/ground/gcs/src/plugins/coreplugin/coreimpl.h b/ground/gcs/src/plugins/coreplugin/coreimpl.h index 671c248a2..cdb4effbd 100644 --- a/ground/gcs/src/plugins/coreplugin/coreimpl.h +++ b/ground/gcs/src/plugins/coreplugin/coreimpl.h @@ -60,12 +60,14 @@ public: ModeManager *modeManager() const; MimeDatabase *mimeDatabase() const; - QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const; SettingsDatabase *settingsDatabase() const; - void readMainSettings(QSettings *qs, bool workspaceDiffOnly); - void saveMainSettings(QSettings *qs); - void readSettings(IConfigurablePlugin *plugin, QSettings *qs = 0); - void saveSettings(IConfigurablePlugin *plugin, QSettings *qs = 0); + + void readMainSettings(QSettings &settings, bool workspaceDiffOnly); + void saveMainSettings(QSettings &settings) const; + void readSettings(IConfigurablePlugin *plugin); + void saveSettings(IConfigurablePlugin *plugin) const; + void readSettings(IConfigurablePlugin *plugin, QSettings &settings); + void saveSettings(IConfigurablePlugin *plugin, QSettings &settings) const; void deleteSettings(); QString resourcePath() const; diff --git a/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp index 1ffa5bc98..b09cc54d9 100644 --- a/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -33,8 +33,8 @@ #include "coreplugin/uavgadgetinstancemanager.h" #include "coreplugin/uavgadgetoptionspagedecorator.h" -#include -#include +#include +#include #include #include #include @@ -96,10 +96,10 @@ Q_DECLARE_METATYPE(::PageData) SettingsDialog::SettingsDialog(QWidget *parent, c setWindowTitle(tr("Options")); #endif - QSettings *settings = ICore::instance()->settings(); + QSettings settings; - settings->beginGroup("General"); - settings->beginGroup("Settings"); + settings.beginGroup("General"); + settings.beginGroup("Settings"); // restore last displayed category and page // this is done only if no category or page was provided through the constructor @@ -107,28 +107,28 @@ Q_DECLARE_METATYPE(::PageData) SettingsDialog::SettingsDialog(QWidget *parent, c QString initialPage = pageId; qDebug() << "SettingsDialog constructor initial category:" << initialCategory << ", initial page:" << initialPage; if (initialCategory.isEmpty() && initialPage.isEmpty()) { - initialCategory = settings->value("LastPreferenceCategory", QVariant(QString())).toString(); - initialPage = settings->value("LastPreferencePage", QVariant(QString())).toString(); + initialCategory = settings.value("LastPreferenceCategory", QVariant(QString())).toString(); + initialPage = settings.value("LastPreferencePage", QVariant(QString())).toString(); qDebug() << "SettingsDialog settings initial category:" << initialCategory << ", initial page: " << initialPage; } // restore window size - int windowWidth = settings->value("WindowWidth", 0).toInt(); - int windowHeight = settings->value("WindowHeight", 0).toInt(); + int windowWidth = settings.value("WindowWidth", 0).toInt(); + int windowHeight = settings.value("WindowHeight", 0).toInt(); qDebug() << "SettingsDialog window width :" << windowWidth << ", height:" << windowHeight; if (windowWidth > 0 && windowHeight > 0) { resize(windowWidth, windowHeight); } // restore splitter size - int splitterPosition = settings->value("SplitterPosition", 350).toInt(); + int splitterPosition = settings.value("SplitterPosition", 350).toInt(); qDebug() << "SettingsDialog splitter position:" << splitterPosition; QList sizes; sizes << splitterPosition << 400; splitter->setSizes(sizes); - settings->endGroup(); - settings->endGroup(); + settings.endGroup(); + settings.endGroup(); // all extra space must go to the option page and none to the tree splitter->setStretchFactor(0, 0); @@ -464,22 +464,22 @@ bool SettingsDialog::execDialog() void SettingsDialog::done(int val) { - QSettings *settings = ICore::instance()->settings(); + QSettings settings; - settings->beginGroup("General"); - settings->beginGroup("Settings"); + settings.beginGroup("General"); + settings.beginGroup("Settings"); - settings->setValue("LastPreferenceCategory", m_currentCategory); - settings->setValue("LastPreferencePage", m_currentPage); + settings.setValue("LastPreferenceCategory", m_currentCategory); + settings.setValue("LastPreferencePage", m_currentPage); - settings->setValue("WindowWidth", this->width()); - settings->setValue("WindowHeight", this->height()); + settings.setValue("WindowWidth", this->width()); + settings.setValue("WindowHeight", this->height()); QList sizes = splitter->sizes(); - settings->setValue("SplitterPosition", sizes[0]); + settings.setValue("SplitterPosition", sizes[0]); - settings->endGroup(); - settings->endGroup(); + settings.endGroup(); + settings.endGroup(); QDialog::done(val); } diff --git a/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.h b/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.h index 017623a3e..ac7d83998 100644 --- a/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.h +++ b/ground/gcs/src/plugins/coreplugin/dialogs/settingsdialog.h @@ -31,7 +31,7 @@ #include "ui_settingsdialog.h" -#include +#include #include "coreplugin/dialogs/ioptionspage.h" diff --git a/ground/gcs/src/plugins/coreplugin/generalsettings.cpp b/ground/gcs/src/plugins/coreplugin/generalsettings.cpp index b3b276729..4117bcc20 100644 --- a/ground/gcs/src/plugins/coreplugin/generalsettings.cpp +++ b/ground/gcs/src/plugins/coreplugin/generalsettings.cpp @@ -157,40 +157,40 @@ void GeneralSettings::finish() delete m_page; } -void GeneralSettings::readSettings(QSettings *qs) +void GeneralSettings::readSettings(QSettings &settings) { - qs->beginGroup(QLatin1String("General")); - m_language = qs->value(QLatin1String("OverrideLanguage"), QLocale::system().name()).toString(); - m_saveSettingsOnExit = qs->value(QLatin1String("SaveSettingsOnExit"), m_saveSettingsOnExit).toBool(); - m_autoConnect = qs->value(QLatin1String("AutoConnect"), m_autoConnect).toBool(); - m_autoSelect = qs->value(QLatin1String("AutoSelect"), m_autoSelect).toBool(); - m_useUDPMirror = qs->value(QLatin1String("UDPMirror"), m_useUDPMirror).toBool(); - m_useExpertMode = qs->value(QLatin1String("ExpertMode"), m_useExpertMode).toBool(); - m_collectUsageData = qs->value(QLatin1String("CollectUsageData"), m_collectUsageData).toBool(); - m_showUsageDataDisclaimer = qs->value(QLatin1String("ShowUsageDataDisclaimer"), m_showUsageDataDisclaimer).toBool(); - m_lastUsageHash = qs->value(QLatin1String("LastUsageHash"), m_lastUsageHash).toString(); - qs->endGroup(); + settings.beginGroup(QLatin1String("General")); + m_language = settings.value(QLatin1String("OverrideLanguage"), QLocale::system().name()).toString(); + m_saveSettingsOnExit = settings.value(QLatin1String("SaveSettingsOnExit"), m_saveSettingsOnExit).toBool(); + m_autoConnect = settings.value(QLatin1String("AutoConnect"), m_autoConnect).toBool(); + m_autoSelect = settings.value(QLatin1String("AutoSelect"), m_autoSelect).toBool(); + m_useUDPMirror = settings.value(QLatin1String("UDPMirror"), m_useUDPMirror).toBool(); + m_useExpertMode = settings.value(QLatin1String("ExpertMode"), m_useExpertMode).toBool(); + m_collectUsageData = settings.value(QLatin1String("CollectUsageData"), m_collectUsageData).toBool(); + m_showUsageDataDisclaimer = settings.value(QLatin1String("ShowUsageDataDisclaimer"), m_showUsageDataDisclaimer).toBool(); + m_lastUsageHash = settings.value(QLatin1String("LastUsageHash"), m_lastUsageHash).toString(); + settings.endGroup(); } -void GeneralSettings::saveSettings(QSettings *qs) +void GeneralSettings::saveSettings(QSettings &settings) const { - qs->beginGroup(QLatin1String("General")); + settings.beginGroup(QLatin1String("General")); if (m_language.isEmpty()) { - qs->remove(QLatin1String("OverrideLanguage")); + settings.remove(QLatin1String("OverrideLanguage")); } else { - qs->setValue(QLatin1String("OverrideLanguage"), m_language); + settings.setValue(QLatin1String("OverrideLanguage"), m_language); } - qs->setValue(QLatin1String("SaveSettingsOnExit"), m_saveSettingsOnExit); - qs->setValue(QLatin1String("AutoConnect"), m_autoConnect); - qs->setValue(QLatin1String("AutoSelect"), m_autoSelect); - qs->setValue(QLatin1String("UDPMirror"), m_useUDPMirror); - qs->setValue(QLatin1String("ExpertMode"), m_useExpertMode); - qs->setValue(QLatin1String("CollectUsageData"), m_collectUsageData); - qs->setValue(QLatin1String("ShowUsageDataDisclaimer"), m_showUsageDataDisclaimer); - qs->setValue(QLatin1String("LastUsageHash"), m_lastUsageHash); - qs->endGroup(); + settings.setValue(QLatin1String("SaveSettingsOnExit"), m_saveSettingsOnExit); + settings.setValue(QLatin1String("AutoConnect"), m_autoConnect); + settings.setValue(QLatin1String("AutoSelect"), m_autoSelect); + settings.setValue(QLatin1String("UDPMirror"), m_useUDPMirror); + settings.setValue(QLatin1String("ExpertMode"), m_useExpertMode); + settings.setValue(QLatin1String("CollectUsageData"), m_collectUsageData); + settings.setValue(QLatin1String("ShowUsageDataDisclaimer"), m_showUsageDataDisclaimer); + settings.setValue(QLatin1String("LastUsageHash"), m_lastUsageHash); + settings.endGroup(); } void GeneralSettings::resetInterfaceColor() diff --git a/ground/gcs/src/plugins/coreplugin/generalsettings.h b/ground/gcs/src/plugins/coreplugin/generalsettings.h index c07b234df..6fa9a97d0 100644 --- a/ground/gcs/src/plugins/coreplugin/generalsettings.h +++ b/ground/gcs/src/plugins/coreplugin/generalsettings.h @@ -33,7 +33,8 @@ #include #include -#include + +class QSettings; namespace Core { namespace Internal { @@ -61,8 +62,8 @@ public: bool collectUsageData() const; bool showUsageDataDisclaimer() const; QString lastUsageHash() const; - void readSettings(QSettings *qs); - void saveSettings(QSettings *qs); + void readSettings(QSettings &settings); + void saveSettings(QSettings &settings) const; bool useExpertMode() const; void setCollectUsageData(bool collect); void setShowUsageDataDisclaimer(bool show); diff --git a/ground/gcs/src/plugins/coreplugin/iconfigurableplugin.h b/ground/gcs/src/plugins/coreplugin/iconfigurableplugin.h index 2dd4816a0..18ca1a3b0 100644 --- a/ground/gcs/src/plugins/coreplugin/iconfigurableplugin.h +++ b/ground/gcs/src/plugins/coreplugin/iconfigurableplugin.h @@ -14,8 +14,8 @@ class CORE_EXPORT IConfigurablePlugin : public ExtensionSystem::IPlugin { public: // IConfigurablePlugin(QObject *parent = 0){} virtual ~IConfigurablePlugin() {} - virtual void readConfig(QSettings *qSettings, UAVConfigInfo *configInfo) = 0; - virtual void saveConfig(QSettings *qSettings, Core::UAVConfigInfo *configInfo) = 0; + virtual void readConfig(QSettings &settings, UAVConfigInfo *configInfo) = 0; + virtual void saveConfig(QSettings &settings, Core::UAVConfigInfo *configInfo) const = 0; }; } // namespace Core diff --git a/ground/gcs/src/plugins/coreplugin/icore.cpp b/ground/gcs/src/plugins/coreplugin/icore.cpp index 8f4717fb2..8054bbcc6 100644 --- a/ground/gcs/src/plugins/coreplugin/icore.cpp +++ b/ground/gcs/src/plugins/coreplugin/icore.cpp @@ -172,24 +172,6 @@ Use the mime database to manage mime types. */ -/*! - \fn QSettings *ICore::settings(QSettings::UserScope scope) const - \brief Returns the application's main settings object. - - You can use it to retrieve or set application wide settings - (in contrast to session or project specific settings). - - If \a scope is QSettings::UserScope (the default), the - users settings will be read from the users settings, with - a fallback to global settings provided with Qt Creator. - - If \a scope is QSettings::SystemScope, only the system settings - shipped with the current version of Qt Creator will be read. This - functionality exists for internal purposes only. - - \see settingsDatabase() - */ - /*! \fn SettingsDatabase *ICore::settingsDatabase() const \brief Returns the application's settings database. diff --git a/ground/gcs/src/plugins/coreplugin/icore.h b/ground/gcs/src/plugins/coreplugin/icore.h index a0b67e820..5e2ba66b3 100644 --- a/ground/gcs/src/plugins/coreplugin/icore.h +++ b/ground/gcs/src/plugins/coreplugin/icore.h @@ -30,13 +30,12 @@ #define ICORE_H #include "core_global.h" -#include -#include + +#include QT_BEGIN_NAMESPACE class QMainWindow; class QSettings; -template class QList; QT_END_NAMESPACE namespace Core { @@ -84,12 +83,14 @@ public: virtual UAVGadgetInstanceManager *uavGadgetInstanceManager() const = 0; virtual MimeDatabase *mimeDatabase() const = 0; - virtual QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const = 0; virtual SettingsDatabase *settingsDatabase() const = 0; - virtual void readMainSettings(QSettings *qs, bool workspaceDiffOnly = false) = 0; - virtual void saveMainSettings(QSettings *qs) = 0; - virtual void readSettings(IConfigurablePlugin *plugin, QSettings *qs = 0) = 0; - virtual void saveSettings(IConfigurablePlugin *plugin, QSettings *qs = 0) = 0; + + virtual void readMainSettings(QSettings &settings, bool workspaceDiffOnly = false) = 0; + virtual void saveMainSettings(QSettings &settings) const = 0; + virtual void readSettings(IConfigurablePlugin *plugin) = 0; + virtual void saveSettings(IConfigurablePlugin *plugin) const = 0; + virtual void readSettings(IConfigurablePlugin *plugin, QSettings &settings) = 0; + virtual void saveSettings(IConfigurablePlugin *plugin, QSettings &settings) const = 0; virtual void deleteSettings() = 0; virtual QString resourcePath() const = 0; diff --git a/ground/gcs/src/plugins/coreplugin/iuavgadget.h b/ground/gcs/src/plugins/coreplugin/iuavgadget.h index 5ea7c0af9..9d93bb881 100644 --- a/ground/gcs/src/plugins/coreplugin/iuavgadget.h +++ b/ground/gcs/src/plugins/coreplugin/iuavgadget.h @@ -77,9 +77,9 @@ public: return 0; } virtual void loadConfiguration(IUAVGadgetConfiguration *) {} - virtual void saveState(QSettings * /*qSettings*/) {} + virtual void saveState(QSettings &) const {} virtual void restoreState(QByteArray) {} - virtual void restoreState(QSettings * /*qSettings*/) {} + virtual void restoreState(QSettings &) {} public slots: virtual void configurationChanged(IUAVGadgetConfiguration *) {} virtual void configurationAdded(IUAVGadgetConfiguration *) {} diff --git a/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.cpp b/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.cpp index 0a1e09293..aa73a7ea2 100644 --- a/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.cpp @@ -31,8 +31,8 @@ using namespace Core; IUAVGadgetConfiguration::IUAVGadgetConfiguration(QString classId, QObject *parent) : QObject(parent), - m_locked(false), m_classId(classId), m_name(tr("default")), - m_provisionalName(tr("default")) + m_provisionalName(tr("default")), + m_locked(false) {} diff --git a/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.h b/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.h index 3aed78a4d..f7cbde45b 100644 --- a/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.h +++ b/ground/gcs/src/plugins/coreplugin/iuavgadgetconfiguration.h @@ -40,52 +40,60 @@ class CORE_EXPORT IUAVGadgetConfiguration : public QObject { Q_OBJECT public: explicit IUAVGadgetConfiguration(QString classId, QObject *parent = 0); - QString classId() + + QString classId() const { return m_classId; } - QString name() + + QString name() const { return m_name; } + void setName(QString name) { m_name = name; } - QString provisionalName() + + QString provisionalName() const { return m_provisionalName; } + void setProvisionalName(QString name) { m_provisionalName = name; } + bool locked() const { return m_locked; } + void setLocked(bool locked) { m_locked = locked; } - virtual void saveConfig(QSettings * /*settings*/) const {} - virtual void saveConfig(QSettings *settings, UAVConfigInfo * /*configInfo*/) const + virtual void saveConfig(QSettings &) const {} + + virtual void saveConfig(QSettings &settings, UAVConfigInfo *) const { saveConfig(settings); } - virtual IUAVGadgetConfiguration *clone() = 0; + virtual IUAVGadgetConfiguration *clone() const = 0; signals: public slots: private: - bool m_locked; QString m_classId; QString m_name; QString m_provisionalName; + bool m_locked; }; } // namespace Core diff --git a/ground/gcs/src/plugins/coreplugin/iuavgadgetfactory.h b/ground/gcs/src/plugins/coreplugin/iuavgadgetfactory.h index b09d57a58..457fe95a6 100644 --- a/ground/gcs/src/plugins/coreplugin/iuavgadgetfactory.h +++ b/ground/gcs/src/plugins/coreplugin/iuavgadgetfactory.h @@ -28,15 +28,17 @@ #ifndef IUAVGADGETFACTORY_H #define IUAVGADGETFACTORY_H + #include "core_global.h" -#include -#include -#include #include "uavconfiginfo.h" +#include +#include + QT_BEGIN_NAMESPACE class QStringList; +class QSettings; QT_END_NAMESPACE namespace Core { @@ -56,15 +58,15 @@ public: virtual ~IUAVGadgetFactory() {} virtual IUAVGadget *createGadget(QWidget *parent) = 0; - virtual IUAVGadgetConfiguration *createConfiguration(QSettings * /*qSettings*/) + virtual IUAVGadgetConfiguration *createConfiguration(QSettings &) { return 0; } - virtual IUAVGadgetConfiguration *createConfiguration(QSettings *qs, UAVConfigInfo * /*configInfo*/) + virtual IUAVGadgetConfiguration *createConfiguration(QSettings &settings, UAVConfigInfo *) { - return createConfiguration(qs); + return createConfiguration(settings); } - virtual IOptionsPage *createOptionsPage(IUAVGadgetConfiguration * /*config*/) + virtual IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *) { return 0; } diff --git a/ground/gcs/src/plugins/coreplugin/mainwindow.cpp b/ground/gcs/src/plugins/coreplugin/mainwindow.cpp index 9db49d79e..8ce670858 100644 --- a/ground/gcs/src/plugins/coreplugin/mainwindow.cpp +++ b/ground/gcs/src/plugins/coreplugin/mainwindow.cpp @@ -65,7 +65,6 @@ #include #include #include -#include #include "version_info/version_info.h" #include @@ -102,13 +101,6 @@ MainWindow::MainWindow() : m_uniqueIDManager(new UniqueIDManager()), m_globalContext(QList() << Constants::C_GLOBAL_ID), m_additionalContexts(m_globalContext), - // keep this in sync with main() in app/main.cpp - m_settings(new QSettings(this)), - m_globalSettings(new QSettings(XmlConfig::XmlFormat, QSettings::SystemScope, - m_settings->organizationName(), m_settings->applicationName(), this)), - m_settingsDatabase(new SettingsDatabase(QFileInfo(m_settings->fileName()).path(), - QFileInfo(m_settings->fileName()).baseName(), - this)), m_dontSaveSettings(false), m_actionManager(new ActionManagerPrivate(this)), m_variableManager(new VariableManager(this)), @@ -140,6 +132,11 @@ MainWindow::MainWindow() : #endif qApp->setStyle(QStyleFactory::create("Fusion")); + QSettings settings; + m_settingsDatabase = new SettingsDatabase(QFileInfo(settings.fileName()).path(), + QFileInfo(settings.fileName()).baseName(), + this); + setDockNestingEnabled(true); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); @@ -200,10 +197,8 @@ MainWindow::~MainWindow() m_generalSettings = 0; delete m_workspaceSettings; m_workspaceSettings = 0; - delete m_settings; - m_settings = 0; delete m_uniqueIDManager; - m_uniqueIDManager = 0; + m_uniqueIDManager = 0; pm->removeObject(m_coreImpl); delete m_coreImpl; @@ -236,13 +231,13 @@ void MainWindow::modeChanged(Core::IMode * /*mode*/) void MainWindow::extensionsInitialized() { - QSettings *qs = m_settings; + QSettings settings; - qs->beginGroup("General"); + settings.beginGroup("General"); - m_config_description = qs->value("Description", "none").toString(); - m_config_details = qs->value("Details", "none").toString(); - m_config_stylesheet = qs->value("StyleSheet", "none").toString(); + m_config_description = settings.value("Description", "none").toString(); + m_config_details = settings.value("Details", "none").toString(); + m_config_stylesheet = settings.value("StyleSheet", "none").toString(); qDebug() << "Configured style sheet:" << m_config_stylesheet; if (m_config_stylesheet == "wide") { @@ -269,13 +264,14 @@ void MainWindow::extensionsInitialized() // qDebug() << "Setting application style sheet to:" << style; qApp->setStyleSheet(style); - qs->endGroup(); + settings.endGroup(); m_uavGadgetInstanceManager = new UAVGadgetInstanceManager(this); - m_uavGadgetInstanceManager->readSettings(qs); + + m_uavGadgetInstanceManager->readSettings(settings); m_messageManager->init(); - readSettings(qs); + readSettings(settings); updateContext(); @@ -323,8 +319,9 @@ void MainWindow::closeEvent(QCloseEvent *event) emit m_coreImpl->coreAboutToClose(); if (!m_dontSaveSettings) { - saveSettings(m_settings); - m_uavGadgetInstanceManager->saveSettings(m_settings); + QSettings settings; + saveSettings(settings); + m_uavGadgetInstanceManager->saveSettings(settings); } qApp->closeAllWindows(); @@ -477,31 +474,31 @@ void MainWindow::registerDefaultActions() ActionContainer *mhelp = am->actionContainer(Constants::M_HELP); // File menu separators - Command *cmd = createSeparator(am, this, QLatin1String("QtCreator.File.Sep.Save"), m_globalContext); + Command *cmd = createSeparator(am, this, "QtCreator.File.Sep.Save", m_globalContext); mfile->addAction(cmd, Constants::G_FILE_SAVE); - cmd = createSeparator(am, this, QLatin1String("QtCreator.File.Sep.Close"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.File.Sep.Close", m_globalContext); mfile->addAction(cmd, Constants::G_FILE_CLOSE); - cmd = createSeparator(am, this, QLatin1String("QtCreator.File.Sep.Other"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.File.Sep.Other", m_globalContext); mfile->addAction(cmd, Constants::G_FILE_OTHER); // Edit menu separators - cmd = createSeparator(am, this, QLatin1String("QtCreator.Edit.Sep.CopyPaste"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.Edit.Sep.CopyPaste", m_globalContext); medit->addAction(cmd, Constants::G_EDIT_COPYPASTE); - cmd = createSeparator(am, this, QLatin1String("QtCreator.Edit.Sep.SelectAll"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.Edit.Sep.SelectAll", m_globalContext); medit->addAction(cmd, Constants::G_EDIT_SELECTALL); - cmd = createSeparator(am, this, QLatin1String("QtCreator.Edit.Sep.Find"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.Edit.Sep.Find", m_globalContext); medit->addAction(cmd, Constants::G_EDIT_FIND); - cmd = createSeparator(am, this, QLatin1String("QtCreator.Edit.Sep.Advanced"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.Edit.Sep.Advanced", m_globalContext); medit->addAction(cmd, Constants::G_EDIT_ADVANCED); // Tools menu separators - cmd = createSeparator(am, this, QLatin1String("QtCreator.Tools.Sep.Options"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.Tools.Sep.Options", m_globalContext); mtools->addAction(cmd, Constants::G_DEFAULT_THREE); // Help menu separators @@ -653,7 +650,7 @@ void MainWindow::registerDefaultActions() connect(m_zoomAction, SIGNAL(triggered()), this, SLOT(showMaximized())); // Window separator - cmd = createSeparator(am, this, QLatin1String("QtCreator.Window.Sep.Size"), m_globalContext); + cmd = createSeparator(am, this, "QtCreator.Window.Sep.Size"), m_globalContext); mwindow->addAction(cmd, Constants::G_WINDOW_SIZE); #endif @@ -675,7 +672,7 @@ void MainWindow::registerDefaultActions() // Window menu separators QAction *tmpaction1 = new QAction(this); tmpaction1->setSeparator(true); - cmd = am->registerAction(tmpaction1, QLatin1String("OpenPilot.Window.Sep.Split"), uavGadgetManagerContext); + cmd = am->registerAction(tmpaction1, "OpenPilot.Window.Sep.Split", uavGadgetManagerContext); mwindow->addAction(cmd, Constants::G_WINDOW_HIDE_TOOLBAR); m_showToolbarsAction = new QAction(tr("Edit Gadgets Mode"), this); @@ -687,7 +684,7 @@ void MainWindow::registerDefaultActions() // Window menu separators QAction *tmpaction2 = new QAction(this); tmpaction2->setSeparator(true); - cmd = am->registerAction(tmpaction2, QLatin1String("OpenPilot.Window.Sep.Split2"), uavGadgetManagerContext); + cmd = am->registerAction(tmpaction2, "OpenPilot.Window.Sep.Split2", uavGadgetManagerContext); mwindow->addAction(cmd, Constants::G_WINDOW_SPLIT); #ifdef Q_WS_MAC @@ -733,7 +730,7 @@ void MainWindow::registerDefaultActions() #ifndef Q_WS_MAC tmpaction = new QAction(this); tmpaction->setSeparator(true); - cmd = am->registerAction(tmpaction, QLatin1String("QtCreator.Help.Sep.About"), m_globalContext); + cmd = am->registerAction(tmpaction, "QtCreator.Help.Sep.About", m_globalContext); mhelp->addAction(cmd, Constants::G_HELP_ABOUT); #endif @@ -785,7 +782,8 @@ void MainWindow::saveAll() } emit m_coreImpl->saveSettingsRequested(); - saveSettings(); // OpenPilot-specific. + QSettings settings; + saveSettings(settings); } void MainWindow::exit() @@ -829,15 +827,6 @@ MessageManager *MainWindow::messageManager() const return m_messageManager; } -QSettings *MainWindow::settings(QSettings::Scope scope) const -{ - if (scope == QSettings::UserScope) { - return m_settings; - } else { - return m_globalSettings; - } -} - VariableManager *MainWindow::variableManager() const { return m_variableManager; @@ -1025,7 +1014,7 @@ inline int takeLeastPriorityUavGadgetManager(const QListaddObject(uavGadgetManager); m_uavGadgetManagers.append(uavGadgetManager); - uavGadgetManager->readSettings(qs); + uavGadgetManager->readSettings(settings); qDebug() << "MainWindow::createWorkspaces - creating workspace" << name << "took" << timer.elapsed() << "ms"; } qDebug() << "MainWindow::createWorkspaces - creating workspaces took" << totalTimer.elapsed() << "ms"; } -static const char *settingsGroup = "MainWindow"; -static const char *geometryKey = "Geometry"; -static const char *colorKey = "Color"; -static const char *maxKey = "Maximized"; -static const char *fullScreenKey = "FullScreen"; -static const char *modePriorities = "ModePriorities"; +static const QString settingsGroup = "MainWindow"; +static const QString geometryKey = "Geometry"; +static const QString colorKey = "Color"; +static const QString maxKey = "Maximized"; +static const QString fullScreenKey = "FullScreen"; +static const QString modePriorities = "ModePriorities"; -void MainWindow::readSettings(QSettings *qs, bool workspaceDiffOnly) +void MainWindow::readSettings(QSettings &settings, bool workspaceDiffOnly) { - if (!qs) { - qs = m_settings; - } - if (workspaceDiffOnly) { - createWorkspaces(qs, workspaceDiffOnly); + createWorkspaces(settings, workspaceDiffOnly); return; } - m_generalSettings->readSettings(qs); - m_actionManager->readSettings(qs); + m_generalSettings->readSettings(settings); + m_actionManager->readSettings(settings); - qs->beginGroup(QLatin1String(settingsGroup)); + settings.beginGroup(settingsGroup); - Utils::StyleHelper::setBaseColor(qs->value(QLatin1String(colorKey)).value()); + Utils::StyleHelper::setBaseColor(settings.value(colorKey).value()); - const QVariant geom = qs->value(QLatin1String(geometryKey)); + const QVariant geom = settings.value(geometryKey); if (geom.isValid()) { setGeometry(geom.toRect()); } else { resize(750, 400); } - if (qs->value(QLatin1String(maxKey), false).toBool()) { + if (settings.value(maxKey, false).toBool()) { setWindowState(Qt::WindowMaximized); } - setFullScreen(qs->value(QLatin1String(fullScreenKey), false).toBool()); + setFullScreen(settings.value(fullScreenKey, false).toBool()); - qs->endGroup(); + settings.endGroup(); - m_workspaceSettings->readSettings(qs); + m_workspaceSettings->readSettings(settings); - createWorkspaces(qs); + createWorkspaces(settings); // Restore tab ordering - qs->beginGroup(QLatin1String(modePriorities)); + settings.beginGroup(modePriorities); - QStringList modeNames = qs->childKeys(); + QStringList modeNames = settings.childKeys(); QMap map; foreach(QString modeName, modeNames) { - map.insert(modeName, qs->value(modeName).toInt()); + map.insert(modeName, settings.value(modeName).toInt()); } m_modeManager->reorderModes(map); - qs->endGroup(); + settings.endGroup(); // Restore selected tab if (m_workspaceSettings->restoreSelectedOnStartup()) { - int index = qs->value(QLatin1String("SelectedWorkspace")).toInt(); + int index = settings.value("SelectedWorkspace").toInt(); m_modeStack->setCurrentIndex(index); } } -void MainWindow::saveSettings(QSettings *qs) +void MainWindow::saveSettings(QSettings &settings) const { if (m_dontSaveSettings) { return; } - if (!qs) { - qs = m_settings; - } + m_workspaceSettings->saveSettings(settings); - m_workspaceSettings->saveSettings(qs); + settings.beginGroup(settingsGroup); - qs->beginGroup(QLatin1String(settingsGroup)); - - qs->setValue(QLatin1String(colorKey), Utils::StyleHelper::baseColor()); + settings.setValue(colorKey, Utils::StyleHelper::baseColor()); if (windowState() & (Qt::WindowMaximized | Qt::WindowFullScreen)) { - qs->setValue(QLatin1String(maxKey), (bool)(windowState() & Qt::WindowMaximized)); - qs->setValue(QLatin1String(fullScreenKey), (bool)(windowState() & Qt::WindowFullScreen)); + settings.setValue(maxKey, (bool)(windowState() & Qt::WindowMaximized)); + settings.setValue(fullScreenKey, (bool)(windowState() & Qt::WindowFullScreen)); } else { - qs->setValue(QLatin1String(maxKey), false); - qs->setValue(QLatin1String(fullScreenKey), false); - qs->setValue(QLatin1String(geometryKey), geometry()); + settings.setValue(maxKey, false); + settings.setValue(fullScreenKey, false); + settings.setValue(geometryKey, geometry()); } - qs->endGroup(); + settings.endGroup(); // Write tab ordering - qs->beginGroup(QLatin1String(modePriorities)); + settings.beginGroup(modePriorities); QVector modes = m_modeManager->modes(); foreach(IMode * mode, modes) { - qs->setValue(QLatin1String(mode->uniqueModeName()), mode->priority()); + settings.setValue(mode->uniqueModeName(), mode->priority()); } - qs->endGroup(); + settings.endGroup(); // Write selected tab - qs->setValue(QLatin1String("SelectedWorkspace"), m_modeStack->currentIndex()); + settings.setValue("SelectedWorkspace", m_modeStack->currentIndex()); foreach(UAVGadgetManager * manager, m_uavGadgetManagers) { - manager->saveSettings(qs); + manager->saveSettings(settings); } - m_actionManager->saveSettings(qs); - m_generalSettings->saveSettings(qs); + m_actionManager->saveSettings(settings); + m_generalSettings->saveSettings(settings); - qs->beginGroup("General"); - qs->setValue("Description", m_config_description); - qs->setValue("Details", m_config_details); - qs->setValue("StyleSheet", m_config_stylesheet); - qs->endGroup(); + settings.beginGroup("General"); + settings.setValue("Description", m_config_description); + settings.setValue("Details", m_config_details); + settings.setValue("StyleSheet", m_config_stylesheet); + settings.endGroup(); } -void MainWindow::readSettings(IConfigurablePlugin *plugin, QSettings *qs) +void MainWindow::readSettings(IConfigurablePlugin *plugin, QSettings &settings) { - if (!qs) { - qs = m_settings; - } - UAVConfigInfo configInfo; QObject *qo = reinterpret_cast(plugin); QString configName = qo->metaObject()->className(); - qs->beginGroup("Plugins"); - qs->beginGroup(configName); - configInfo.read(qs); + settings.beginGroup("Plugins"); + settings.beginGroup(configName); + configInfo.read(settings); configInfo.setNameOfConfigurable("Plugin-" + configName); - qs->beginGroup("data"); - plugin->readConfig(qs, &configInfo); + settings.beginGroup("data"); + plugin->readConfig(settings, &configInfo); - qs->endGroup(); - qs->endGroup(); - qs->endGroup(); + settings.endGroup(); + settings.endGroup(); + settings.endGroup(); } -void MainWindow::saveSettings(IConfigurablePlugin *plugin, QSettings *qs) +void MainWindow::saveSettings(IConfigurablePlugin *plugin, QSettings &settings) const { if (m_dontSaveSettings) { return; } - if (!qs) { - qs = m_settings; - } - UAVConfigInfo configInfo; QString configName = plugin->metaObject()->className(); - qs->beginGroup("Plugins"); - qs->beginGroup(configName); - qs->beginGroup("data"); - plugin->saveConfig(qs, &configInfo); - qs->endGroup(); - configInfo.save(qs); - qs->endGroup(); - qs->endGroup(); + settings.beginGroup("Plugins"); + settings.beginGroup(configName); + settings.beginGroup("data"); + plugin->saveConfig(settings, &configInfo); + settings.endGroup(); + configInfo.save(settings); + settings.endGroup(); + settings.endGroup(); } void MainWindow::deleteSettings() { - m_settings->clear(); - m_settings->sync(); + QSettings settings; + + settings.clear(); + settings.sync(); m_dontSaveSettings = true; } diff --git a/ground/gcs/src/plugins/coreplugin/mainwindow.h b/ground/gcs/src/plugins/coreplugin/mainwindow.h index 37b4906cf..92ec32205 100644 --- a/ground/gcs/src/plugins/coreplugin/mainwindow.h +++ b/ground/gcs/src/plugins/coreplugin/mainwindow.h @@ -33,8 +33,7 @@ #include "eventfilteringmainwindow.h" -#include -#include +#include QT_BEGIN_NAMESPACE class QSettings; @@ -88,10 +87,10 @@ public: void addContextObject(IContext *contex); void removeContextObject(IContext *contex); void resetContext(); - void readSettings(QSettings *qs = 0, bool workspaceDiffOnly = false); - void saveSettings(QSettings *qs = 0); - void readSettings(IConfigurablePlugin *plugin, QSettings *qs = 0); - void saveSettings(IConfigurablePlugin *plugin, QSettings *qs = 0); + void readSettings(QSettings &settings, bool workspaceDiffOnly = false); + void saveSettings(QSettings &settings) const; + void readSettings(IConfigurablePlugin *plugin, QSettings &settings); + void saveSettings(IConfigurablePlugin *plugin, QSettings &settings) const; void deleteSettings(); void openFiles(const QStringList &fileNames); @@ -106,7 +105,6 @@ public: Core::ModeManager *modeManager() const; Core::MimeDatabase *mimeDatabase() const; Internal::GeneralSettings *generalSettings() const; - QSettings *settings(QSettings::Scope scope) const; inline SettingsDatabase *settingsDatabase() const { return m_settingsDatabase; @@ -165,15 +163,13 @@ private: void updateContextObject(IContext *context); void registerDefaultContainers(); void registerDefaultActions(); - void createWorkspaces(QSettings *qs, bool diffOnly = false); + void createWorkspaces(QSettings &settings, bool diffOnly = false); QString loadStyleSheet(QString name); CoreImpl *m_coreImpl; UniqueIDManager *m_uniqueIDManager; QList m_globalContext; QList m_additionalContexts; - QSettings *m_settings; - QSettings *m_globalSettings; SettingsDatabase *m_settingsDatabase; bool m_dontSaveSettings; // In case of an Error or if we reset the settings, never save them. ActionManagerPrivate *m_actionManager; diff --git a/ground/gcs/src/plugins/coreplugin/uavconfiginfo.cpp b/ground/gcs/src/plugins/coreplugin/uavconfiginfo.cpp index 1678f3e90..6ac8ecce2 100644 --- a/ground/gcs/src/plugins/coreplugin/uavconfiginfo.cpp +++ b/ground/gcs/src/plugins/coreplugin/uavconfiginfo.cpp @@ -48,12 +48,9 @@ Typically a plugin can handle version-changes like this: \code - MyGadgetConfiguration::MyGadgetConfiguration(QString classId, QSettings* qSettings, UAVConfigInfo *configInfo, QObject *parent) : + MyGadgetConfiguration::MyGadgetConfiguration(QString classId, QSettings &settings, UAVConfigInfo *configInfo, QObject *parent) : IUAVGadgetConfiguration(classId, parent) { - if ( ! qSettings ) - return; - if ( configInfo->version() == UAVConfigVersion() ) configInfo->setVersion("1.0.0"); @@ -63,7 +60,7 @@ ... read the config ... } - void MyGadgetConfiguration::saveConfig(QSettings* qSettings, Core::UAVConfigInfo *configInfo) const { + void MyGadgetConfiguration::saveConfig(QSettings &settings, Core::UAVConfigInfo *configInfo) const { configInfo->setVersion(CURRENT_VERSION); @@ -118,11 +115,11 @@ UAVConfigInfo::UAVConfigInfo(QObject *parent) : m_nameOfConfigurable("") {} -UAVConfigInfo::UAVConfigInfo(QSettings *qs, QObject *parent) : +UAVConfigInfo::UAVConfigInfo(QSettings &settings, QObject *parent) : QObject(parent), m_version(VERSION_DEFAULT) { - read(qs); + read(settings); } UAVConfigInfo::UAVConfigInfo(UAVConfigVersion version, QString nameOfConfigurable, QObject *parent) : @@ -139,20 +136,20 @@ UAVConfigInfo::UAVConfigInfo(IUAVGadgetConfiguration *config, QObject *parent) : m_nameOfConfigurable = config->classId() + "-" + config->name(); } -void UAVConfigInfo::save(QSettings *qs) +void UAVConfigInfo::save(QSettings &settings) const { - qs->beginGroup("configInfo"); - qs->setValue("version", m_version.toString()); - qs->setValue("locked", m_locked); - qs->endGroup(); + settings.beginGroup("configInfo"); + settings.setValue("version", m_version.toString()); + settings.setValue("locked", m_locked); + settings.endGroup(); } -void UAVConfigInfo::read(QSettings *qs) +void UAVConfigInfo::read(QSettings &settings) { - qs->beginGroup("configInfo"); - m_version = UAVConfigVersion(qs->value("version", VERSION_DEFAULT).toString()); - m_locked = qs->value("locked", false).toBool(); - qs->endGroup(); + settings.beginGroup("configInfo"); + m_version = UAVConfigVersion(settings.value("version", VERSION_DEFAULT).toString()); + m_locked = settings.value("locked", false).toBool(); + settings.endGroup(); } bool UAVConfigInfo::askToAbort(int compat, QString message) diff --git a/ground/gcs/src/plugins/coreplugin/uavconfiginfo.h b/ground/gcs/src/plugins/coreplugin/uavconfiginfo.h index bae3d4e8d..449047827 100644 --- a/ground/gcs/src/plugins/coreplugin/uavconfiginfo.h +++ b/ground/gcs/src/plugins/coreplugin/uavconfiginfo.h @@ -27,11 +27,12 @@ #ifndef UAVCONFIGINFO_H #define UAVCONFIGINFO_H +#include "core_global.h" +#include "iuavgadgetconfiguration.h" + #include #include #include -#include "iuavgadgetconfiguration.h" -#include "core_global.h" namespace Core { class IUAVGadgetConfiguration; @@ -54,18 +55,19 @@ class CORE_EXPORT UAVConfigInfo : public QObject { public: explicit UAVConfigInfo(QObject *parent = 0); - explicit UAVConfigInfo(QSettings *qs, QObject *parent = 0); + explicit UAVConfigInfo(QSettings &, QObject *parent = 0); explicit UAVConfigInfo(IUAVGadgetConfiguration *config, QObject *parent = 0); UAVConfigInfo(UAVConfigVersion version, QString nameOfConfigurable, QObject *parent = 0); enum Compatibility { FullyCompatible, MinorLossOfConfiguration, MissingConfiguration, MajorLossOfConfiguration, NotCompatible }; + void setNameOfConfigurable(const QString nameOfConfigurable) { m_nameOfConfigurable = nameOfConfigurable; } - void save(QSettings *qs); - void read(QSettings *qs); + void save(QSettings &) const; + void read(QSettings &); void setVersion(int major, int minor, int patch) { diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.cpp b/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.cpp index 816dc41c3..002c1061b 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.cpp +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.cpp @@ -26,10 +26,11 @@ */ #include "uavgadgetdecorator.h" + #include "iuavgadgetconfiguration.h" + #include -#include -#include +#include using namespace Core; @@ -123,20 +124,20 @@ void UAVGadgetDecorator::updateToolbar() m_toolbar->setEnabled(m_toolbar->count() > 1); } -void UAVGadgetDecorator::saveState(QSettings *qSettings) +void UAVGadgetDecorator::saveState(QSettings &settings) const { if (m_activeConfiguration) { - qSettings->setValue("activeConfiguration", m_activeConfiguration->name()); + settings.setValue("activeConfiguration", m_activeConfiguration->name()); } // save gadget individual state - qSettings->beginGroup("state"); - m_gadget->saveState(qSettings); - qSettings->endGroup(); + settings.beginGroup("state"); + m_gadget->saveState(settings); + settings.endGroup(); } -void UAVGadgetDecorator::restoreState(QSettings *qSettings) +void UAVGadgetDecorator::restoreState(QSettings &settings) { - QString configName = qSettings->value("activeConfiguration").toString(); + QString configName = settings.value("activeConfiguration").toString(); foreach(IUAVGadgetConfiguration * config, *m_configurations) { if (config->name() == configName) { @@ -145,7 +146,7 @@ void UAVGadgetDecorator::restoreState(QSettings *qSettings) } } // restore gadget individual state - qSettings->beginGroup("state"); - m_gadget->restoreState(qSettings); - qSettings->endGroup(); + settings.beginGroup("state"); + m_gadget->restoreState(settings); + settings.endGroup(); } diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.h b/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.h index 0a233eefb..f61b10089 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.h +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetdecorator.h @@ -27,8 +27,11 @@ #ifndef UAVGADGETDECORATOR_H #define UAVGADGETDECORATOR_H + #include +class QSettings; + namespace Core { class IUAVGadgetConfiguration; @@ -51,8 +54,8 @@ public: return m_activeConfiguration; } void loadConfiguration(IUAVGadgetConfiguration *config); - void saveState(QSettings *qSettings); - void restoreState(QSettings *qSettings); + void saveState(QSettings &settings) const; + void restoreState(QSettings &settings); public slots: void configurationChanged(IUAVGadgetConfiguration *config); void configurationAdded(IUAVGadgetConfiguration *config); diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp b/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp index 6aa57bda0..1e0721749 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.cpp @@ -26,6 +26,7 @@ */ #include "uavgadgetinstancemanager.h" + #include "iuavgadget.h" #include "uavgadgetdecorator.h" #include "iuavgadgetfactory.h" @@ -36,17 +37,16 @@ #include "icore.h" #include -#include -#include -#include +#include +#include +#include #include using namespace Core; static const UAVConfigVersion m_versionUAVGadgetConfigurations = UAVConfigVersion("1.2.0"); -UAVGadgetInstanceManager::UAVGadgetInstanceManager(QObject *parent) : - QObject(parent) +UAVGadgetInstanceManager::UAVGadgetInstanceManager(QObject *parent) : QObject(parent), m_settingsDialog(NULL) { m_pm = ExtensionSystem::PluginManager::instance(); QList factories = m_pm->getObjects(); @@ -70,14 +70,17 @@ UAVGadgetInstanceManager::~UAVGadgetInstanceManager() } } -void UAVGadgetInstanceManager::readSettings(QSettings *qs) +void UAVGadgetInstanceManager::readSettings(QSettings &settings) { while (!m_configurations.isEmpty()) { emit configurationToBeDeleted(m_configurations.takeLast()); } - qs->beginGroup("UAVGadgetConfigurations"); - UAVConfigInfo configInfo(qs); + + settings.beginGroup("UAVGadgetConfigurations"); + + UAVConfigInfo configInfo(settings); configInfo.setNameOfConfigurable("UAVGadgetConfigurations"); + if (configInfo.version() == UAVConfigVersion()) { // If version is not set, assume its a old version before readable config (1.0.0). // however compatibility to 1.0.0 is broken. @@ -87,7 +90,7 @@ void UAVGadgetInstanceManager::readSettings(QSettings *qs) if (configInfo.version() == UAVConfigVersion("1.1.0")) { configInfo.notify(tr("Migrating UAVGadgetConfigurations from version 1.1.0 to ") + m_versionUAVGadgetConfigurations.toString()); - readConfigs_1_1_0(qs); // this is fully compatible with 1.2.0 + readConfigs_1_1_0(settings); // this is fully compatible with 1.2.0 } else if (!configInfo.standardVersionHandlingOK(m_versionUAVGadgetConfigurations)) { // We are in trouble now. User wants us to quit the import, but when he saves // the GCS, his old config will be lost. @@ -95,32 +98,32 @@ void UAVGadgetInstanceManager::readSettings(QSettings *qs) tr("You might want to save your old config NOW since it might be replaced by broken one when you exit the GCS!") ); } else { - readConfigs_1_2_0(qs); + readConfigs_1_2_0(settings); } - qs->endGroup(); + settings.endGroup(); createOptionsPages(); } -void UAVGadgetInstanceManager::readConfigs_1_2_0(QSettings *qs) +void UAVGadgetInstanceManager::readConfigs_1_2_0(QSettings &settings) { UAVConfigInfo configInfo; foreach(QString classId, m_classIdNameMap.keys()) { IUAVGadgetFactory *f = factory(classId); - qs->beginGroup(classId); + settings.beginGroup(classId); QStringList configs = QStringList(); - configs = qs->childGroups(); + configs = settings.childGroups(); foreach(QString configName, configs) { // qDebug() << "Loading config: " << classId << "," << configName; - qs->beginGroup(configName); - configInfo.read(qs); + settings.beginGroup(configName); + configInfo.read(settings); configInfo.setNameOfConfigurable(classId + "-" + configName); - qs->beginGroup("data"); - IUAVGadgetConfiguration *config = f->createConfiguration(qs, &configInfo); + settings.beginGroup("data"); + IUAVGadgetConfiguration *config = f->createConfiguration(settings, &configInfo); if (config) { config->setName(configName); config->setProvisionalName(configName); @@ -134,42 +137,42 @@ void UAVGadgetInstanceManager::readConfigs_1_2_0(QSettings *qs) m_configurations.append(config); } } - qs->endGroup(); - qs->endGroup(); + settings.endGroup(); + settings.endGroup(); } - if (configs.count() == 0) { - IUAVGadgetConfiguration *config = f->createConfiguration(0, 0); - // it is not mandatory for uavgadgets to have any configurations (settings) - // and therefore we have to check for that - if (config) { - config->setName(tr("default")); - config->setProvisionalName(tr("default")); - m_configurations.append(config); - } - } - qs->endGroup(); +// if (configs.count() == 0) { +// IUAVGadgetConfiguration *config = f->createConfiguration(0, 0); +//// it is not mandatory for uavgadgets to have any configurations (settings) +//// and therefore we have to check for that +// if (config) { +// config->setName(tr("default")); +// config->setProvisionalName(tr("default")); +// m_configurations.append(config); +// } +// } + settings.endGroup(); } } -void UAVGadgetInstanceManager::readConfigs_1_1_0(QSettings *qs) +void UAVGadgetInstanceManager::readConfigs_1_1_0(QSettings &settings) { UAVConfigInfo configInfo; foreach(QString classId, m_classIdNameMap.keys()) { IUAVGadgetFactory *f = factory(classId); - qs->beginGroup(classId); + settings.beginGroup(classId); QStringList configs = QStringList(); - configs = qs->childGroups(); + configs = settings.childGroups(); foreach(QString configName, configs) { // qDebug().nospace() << "Loading config: " << classId << ", " << configName; - qs->beginGroup(configName); - bool locked = qs->value("config.locked").toBool(); + settings.beginGroup(configName); + bool locked = settings.value("config.locked").toBool(); configInfo.setNameOfConfigurable(classId + "-" + configName); - IUAVGadgetConfiguration *config = f->createConfiguration(qs, &configInfo); + IUAVGadgetConfiguration *config = f->createConfiguration(settings, &configInfo); if (config) { config->setName(configName); config->setProvisionalName(configName); @@ -183,45 +186,45 @@ void UAVGadgetInstanceManager::readConfigs_1_1_0(QSettings *qs) m_configurations.append(config); } } - qs->endGroup(); + settings.endGroup(); } - if (configs.count() == 0) { - IUAVGadgetConfiguration *config = f->createConfiguration(0, 0); - // it is not mandatory for uavgadgets to have any configurations (settings) - // and therefore we have to check for that - if (config) { - config->setName(tr("default")); - config->setProvisionalName(tr("default")); - m_configurations.append(config); - } - } - qs->endGroup(); +// if (configs.count() == 0) { +// IUAVGadgetConfiguration *config = f->createConfiguration(0, 0); +//// it is not mandatory for uavgadgets to have any configurations (settings) +//// and therefore we have to check for that +// if (config) { +// config->setName(tr("default")); +// config->setProvisionalName(tr("default")); +// m_configurations.append(config); +// } +// } + settings.endGroup(); } } -void UAVGadgetInstanceManager::saveSettings(QSettings *qs) +void UAVGadgetInstanceManager::saveSettings(QSettings &settings) const { UAVConfigInfo *configInfo; - qs->beginGroup("UAVGadgetConfigurations"); - qs->remove(""); // Remove existing configurations + settings.beginGroup("UAVGadgetConfigurations"); + settings.remove(""); // Remove existing configurations configInfo = new UAVConfigInfo(m_versionUAVGadgetConfigurations, "UAVGadgetConfigurations"); - configInfo->save(qs); + configInfo->save(settings); delete configInfo; foreach(IUAVGadgetConfiguration * config, m_configurations) { configInfo = new UAVConfigInfo(config); - qs->beginGroup(config->classId()); - qs->beginGroup(config->name()); - qs->beginGroup("data"); - config->saveConfig(qs, configInfo); - qs->endGroup(); - configInfo->save(qs); - qs->endGroup(); - qs->endGroup(); + settings.beginGroup(config->classId()); + settings.beginGroup(config->name()); + settings.beginGroup("data"); + config->saveConfig(settings, configInfo); + settings.endGroup(); + configInfo->save(settings); + settings.endGroup(); + settings.endGroup(); delete configInfo; } - qs->endGroup(); + settings.endGroup(); } void UAVGadgetInstanceManager::createOptionsPages() diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.h b/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.h index 7ecc517f0..8460c1c9a 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.h +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetinstancemanager.h @@ -28,14 +28,15 @@ #ifndef UAVGADGETINSTANCEMANAGER_H #define UAVGADGETINSTANCEMANAGER_H -#include -#include -#include -#include -#include #include "core_global.h" #include "uavconfiginfo.h" +#include +#include +#include +#include +#include + namespace ExtensionSystem { class PluginManager; } @@ -58,8 +59,8 @@ public: explicit UAVGadgetInstanceManager(QObject *parent = 0); ~UAVGadgetInstanceManager(); - void readSettings(QSettings *qs); - void saveSettings(QSettings *qs); + void readSettings(QSettings &settings); + void saveSettings(QSettings &settings) const; IUAVGadget *createGadget(QString classId, QWidget *parent, bool loadDefaultConfiguration = true); void removeGadget(IUAVGadget *gadget); @@ -116,8 +117,8 @@ private: int indexForConfig(QList configurations, QString classId, QString configName); - void readConfigs_1_1_0(QSettings *qs); - void readConfigs_1_2_0(QSettings *qs); + void readConfigs_1_1_0(QSettings &settings); + void readConfigs_1_2_0(QSettings &settings); }; } // namespace Core diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.cpp b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.cpp index ba92dfe13..d842c783f 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.cpp +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.cpp @@ -32,7 +32,9 @@ #include "iuavgadget.h" #include "minisplitter.h" -#include +#include +#include +#include #ifdef Q_WS_MAC #include @@ -382,47 +384,47 @@ void SplitterOrView::unsplitAll_helper(UAVGadgetManager *uavGadgetManager, QSpli } } -void SplitterOrView::saveState(QSettings *qSettings) const +void SplitterOrView::saveState(QSettings &settings) const { if (m_splitter) { - qSettings->setValue("type", "splitter"); - qSettings->setValue("splitterOrientation", (qint32)m_splitter->orientation()); + settings.setValue("type", "splitter"); + settings.setValue("splitterOrientation", (qint32)m_splitter->orientation()); QList sizesQVariant; foreach(int value, m_sizes) { sizesQVariant.append(value); } - qSettings->setValue("splitterSizes", sizesQVariant); - qSettings->beginGroup("side0"); - static_cast(m_splitter->widget(0))->saveState(qSettings); - qSettings->endGroup(); - qSettings->beginGroup("side1"); - static_cast(m_splitter->widget(1))->saveState(qSettings); - qSettings->endGroup(); + settings.setValue("splitterSizes", sizesQVariant); + settings.beginGroup("side0"); + static_cast(m_splitter->widget(0))->saveState(settings); + settings.endGroup(); + settings.beginGroup("side1"); + static_cast(m_splitter->widget(1))->saveState(settings); + settings.endGroup(); } else if (gadget()) { - m_view->saveState(qSettings); + m_view->saveState(settings); } } -void SplitterOrView::restoreState(QSettings *qSettings) +void SplitterOrView::restoreState(QSettings &settings) { - QString mode = qSettings->value("type").toString(); + QString mode = settings.value("type").toString(); if (mode == "splitter") { - qint32 orientation = qSettings->value("splitterOrientation").toInt(); - QList sizesQVariant = qSettings->value("splitterSizes").toList(); + qint32 orientation = settings.value("splitterOrientation").toInt(); + QList sizesQVariant = settings.value("splitterSizes").toList(); m_sizes.clear(); foreach(QVariant value, sizesQVariant) { m_sizes.append(value.toInt()); } split((Qt::Orientation)orientation); m_splitter->setSizes(m_sizes); - qSettings->beginGroup("side0"); - static_cast(m_splitter->widget(0))->restoreState(qSettings); - qSettings->endGroup(); - qSettings->beginGroup("side1"); - static_cast(m_splitter->widget(1))->restoreState(qSettings); - qSettings->endGroup(); + settings.beginGroup("side0"); + static_cast(m_splitter->widget(0))->restoreState(settings); + settings.endGroup(); + settings.beginGroup("side1"); + static_cast(m_splitter->widget(1))->restoreState(settings); + settings.endGroup(); } else if (mode == "uavGadget") { - m_view->restoreState(qSettings); + m_view->restoreState(settings); } } diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h index 6549c84fa..1e4aa724f 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/splitterorview.h @@ -29,11 +29,15 @@ #ifndef SPLITTERORVIEW_H #define SPLITTERORVIEW_H -#include -#include #include "uavgadgetmanager.h" #include "uavgadgetview.h" +#include +#include +#include + +class QSettings; + namespace Core { namespace Internal { class SplitterOrView : public QWidget { @@ -82,8 +86,8 @@ public: QSplitter *takeSplitter(); UAVGadgetView *takeView(); - void saveState(QSettings *) const; - void restoreState(QSettings *); + void saveState(QSettings &) const; + void restoreState(QSettings &); SplitterOrView *findView(Core::IUAVGadget *uavGadget); SplitterOrView *findView(UAVGadgetView *view); diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp index 8c5b7a596..8293c057e 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.cpp @@ -27,6 +27,7 @@ */ #include "uavgadgetmanager.h" + #include "uavgadgetview.h" #include "splitterorview.h" #include "uavgadgetinstancemanager.h" @@ -37,31 +38,17 @@ #include #include #include -#include #include #include -#include -#include #include #include #include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include Q_DECLARE_METATYPE(Core::IUAVGadget *) @@ -291,16 +278,16 @@ void UAVGadgetManager::updateUavGadgetMenus() emit showUavGadgetMenus(m_showToolbars, hasSplitter); } -void UAVGadgetManager::saveState(QSettings *qSettings) const +void UAVGadgetManager::saveState(QSettings &settings) const { - qSettings->setValue("version", "UAVGadgetManagerV1"); - qSettings->setValue("showToolbars", m_showToolbars); - qSettings->beginGroup("splitter"); - m_splitterOrView->saveState(qSettings); - qSettings->endGroup(); + settings.setValue("version", "UAVGadgetManagerV1"); + settings.setValue("showToolbars", m_showToolbars); + settings.beginGroup("splitter"); + m_splitterOrView->saveState(settings); + settings.endGroup(); } -bool UAVGadgetManager::restoreState(QSettings *qSettings) +bool UAVGadgetManager::restoreState(QSettings &settings) { removeAllSplits(); @@ -309,59 +296,59 @@ bool UAVGadgetManager::restoreState(QSettings *qSettings) emptyView(m_splitterOrView->view()); im->removeGadget(gadget); - QString version = qSettings->value("version").toString(); + QString version = settings.value("version").toString(); if (version != "UAVGadgetManagerV1") { return false; } - m_showToolbars = qSettings->value("showToolbars").toBool(); + m_showToolbars = settings.value("showToolbars").toBool(); QApplication::setOverrideCursor(Qt::WaitCursor); - qSettings->beginGroup("splitter"); - m_splitterOrView->restoreState(qSettings); - qSettings->endGroup(); + settings.beginGroup("splitter"); + m_splitterOrView->restoreState(settings); + settings.endGroup(); QApplication::restoreOverrideCursor(); return true; } -void UAVGadgetManager::saveSettings(QSettings *qs) +void UAVGadgetManager::saveSettings(QSettings &settings) const { - qs->beginGroup("UAVGadgetManager"); - qs->beginGroup(this->uniqueModeName()); + settings.beginGroup("UAVGadgetManager"); + settings.beginGroup(this->uniqueModeName()); // Make sure the old tree is wiped. - qs->remove(""); + settings.remove(""); // Do actual saving - saveState(qs); + saveState(settings); - qs->endGroup(); - qs->endGroup(); + settings.endGroup(); + settings.endGroup(); } -void UAVGadgetManager::readSettings(QSettings *qs) +void UAVGadgetManager::readSettings(QSettings &settings) { QString uavGadgetManagerRootKey = "UAVGadgetManager"; - if (!qs->childGroups().contains(uavGadgetManagerRootKey)) { + if (!settings.childGroups().contains(uavGadgetManagerRootKey)) { return; } - qs->beginGroup(uavGadgetManagerRootKey); + settings.beginGroup(uavGadgetManagerRootKey); - if (!qs->childGroups().contains(uniqueModeName())) { - qs->endGroup(); + if (!settings.childGroups().contains(uniqueModeName())) { + settings.endGroup(); return; } - qs->beginGroup(uniqueModeName()); + settings.beginGroup(uniqueModeName()); - restoreState(qs); + restoreState(settings); showToolbars(m_showToolbars); - qs->endGroup(); - qs->endGroup(); + settings.endGroup(); + settings.endGroup(); } void UAVGadgetManager::split(Qt::Orientation orientation) diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h index cf5cd2af4..5389fbcae 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetmanager.h @@ -35,13 +35,12 @@ #include #include -#include -#include -#include +#include #include QT_BEGIN_NAMESPACE class QModelIndex; +class QSettings; QT_END_NAMESPACE namespace Core { @@ -95,11 +94,12 @@ public: IUAVGadget *currentGadget() const; - void saveState(QSettings *) const; - bool restoreState(QSettings *qSettings); + void saveState(QSettings &) const; + bool restoreState(QSettings &); + + void readSettings(QSettings &settings); + void saveSettings(QSettings &settings) const; - void saveSettings(QSettings *qs); - void readSettings(QSettings *qs); bool toolbarsShown() { return m_showToolbars; diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp index 96def978a..c506ebbe4 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.cpp @@ -261,18 +261,18 @@ void UAVGadgetView::currentGadgetChanged(IUAVGadget *gadget) m_activeLabel->setVisible(m_uavGadget == gadget); } -void UAVGadgetView::saveState(QSettings *qSettings) +void UAVGadgetView::saveState(QSettings &settings) { - qSettings->setValue("type", "uavGadget"); - qSettings->setValue("classId", gadget()->classId()); - qSettings->beginGroup("gadget"); - gadget()->saveState(qSettings); - qSettings->endGroup(); + settings.setValue("type", "uavGadget"); + settings.setValue("classId", gadget()->classId()); + settings.beginGroup("gadget"); + gadget()->saveState(settings); + settings.endGroup(); } -void UAVGadgetView::restoreState(QSettings *qSettings) +void UAVGadgetView::restoreState(QSettings &settings) { - QString classId = qSettings->value("classId").toString(); + QString classId = settings.value("classId").toString(); int index = indexOfClassId(classId); if (index < 0) { @@ -282,11 +282,11 @@ void UAVGadgetView::restoreState(QSettings *qSettings) IUAVGadget *newGadget; UAVGadgetInstanceManager *im = ICore::instance()->uavGadgetInstanceManager(); - if (qSettings->childGroups().contains("gadget")) { + if (settings.childGroups().contains("gadget")) { newGadget = im->createGadget(classId, this, false); - qSettings->beginGroup("gadget"); - newGadget->restoreState(qSettings); - qSettings->endGroup(); + settings.beginGroup("gadget"); + newGadget->restoreState(settings); + settings.endGroup(); } else { newGadget = im->createGadget(classId, this); } diff --git a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h index 34e5b54e5..fb80f605f 100644 --- a/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h +++ b/ground/gcs/src/plugins/coreplugin/uavgadgetmanager/uavgadgetview.h @@ -29,22 +29,17 @@ #ifndef UAVGADGETVIEW_H #define UAVGADGETVIEW_H -#include -#include -#include +#include +#include #include -#include -#include -#include -#include -#include - +#include QT_BEGIN_NAMESPACE class QComboBox; class QToolButton; class QLabel; class QVBoxLayout; +class QSettings; QT_END_NAMESPACE namespace Utils { @@ -70,8 +65,8 @@ public: void showToolbar(bool show); - void saveState(QSettings *qSettings); - void restoreState(QSettings *qSettings); + void saveState(QSettings &settings); + void restoreState(QSettings &settings); public slots: void closeView(); diff --git a/ground/gcs/src/plugins/coreplugin/workspacesettings.cpp b/ground/gcs/src/plugins/coreplugin/workspacesettings.cpp index 61ea40808..459a01182 100644 --- a/ground/gcs/src/plugins/coreplugin/workspacesettings.cpp +++ b/ground/gcs/src/plugins/coreplugin/workspacesettings.cpp @@ -26,13 +26,15 @@ */ #include "workspacesettings.h" + #include #include #include -#include #include "ui_workspacesettings.h" +#include + using namespace Core; using namespace Core::Internal; @@ -100,62 +102,63 @@ QWidget *WorkspaceSettings::createPage(QWidget *parent) return w; } -void WorkspaceSettings::readSettings(QSettings *qs) +void WorkspaceSettings::readSettings(QSettings &settings) { m_names.clear(); m_iconNames.clear(); m_modeNames.clear(); - qs->beginGroup(QLatin1String("Workspace")); - m_numberOfWorkspaces = qs->value(QLatin1String("NumberOfWorkspaces"), 2).toInt(); + settings.beginGroup(QLatin1String("Workspace")); + m_numberOfWorkspaces = settings.value(QLatin1String("NumberOfWorkspaces"), 2).toInt(); m_previousNumberOfWorkspaces = m_numberOfWorkspaces; for (int i = 1; i <= MAX_WORKSPACES; ++i) { QString numberString = QString::number(i); QString defaultName = "Workspace" + numberString; QString defaultIconName = "Icon" + numberString; - QString name = qs->value(defaultName, defaultName).toString(); - QString iconName = qs->value(defaultIconName, ":/core/images/librepilot_logo_64.png").toString(); + QString name = settings.value(defaultName, defaultName).toString(); + QString iconName = settings.value(defaultIconName, ":/core/images/librepilot_logo_64.png").toString(); m_names.append(name); m_iconNames.append(iconName); m_modeNames.append(QString("Mode") + QString::number(i)); } - m_tabBarPlacementIndex = qs->value(QLatin1String("TabBarPlacementIndex"), 1).toInt(); // 1 == "Bottom" - m_allowTabBarMovement = qs->value(QLatin1String("AllowTabBarMovement"), false).toBool(); - m_restoreSelectedOnStartup = qs->value(QLatin1String("RestoreSelectedOnStartup"), false).toBool(); + m_tabBarPlacementIndex = settings.value(QLatin1String("TabBarPlacementIndex"), 1).toInt(); // 1 == "Bottom" + m_allowTabBarMovement = settings.value(QLatin1String("AllowTabBarMovement"), false).toBool(); + m_restoreSelectedOnStartup = settings.value(QLatin1String("RestoreSelectedOnStartup"), false).toBool(); - qs->endGroup(); + settings.endGroup(); QTabWidget::TabPosition pos = m_tabBarPlacementIndex == 0 ? QTabWidget::North : QTabWidget::South; emit tabBarSettingsApplied(pos, m_allowTabBarMovement); } -void WorkspaceSettings::saveSettings(QSettings *qs) +void WorkspaceSettings::saveSettings(QSettings &settings) const { - qs->beginGroup(QLatin1String("Workspace")); - qs->setValue(QLatin1String("NumberOfWorkspaces"), m_numberOfWorkspaces); + settings.beginGroup(QLatin1String("Workspace")); + settings.setValue(QLatin1String("NumberOfWorkspaces"), m_numberOfWorkspaces); for (int i = 0; i < MAX_WORKSPACES; ++i) { QString mode = QString("Mode") + QString::number(i + 1); int j = m_modeNames.indexOf(mode); QString numberString = QString::number(i + 1); QString defaultName = "Workspace" + numberString; QString defaultIconName = "Icon" + numberString; - qs->setValue(defaultName, m_names.at(j)); - qs->setValue(defaultIconName, m_iconNames.at(j)); + settings.setValue(defaultName, m_names.at(j)); + settings.setValue(defaultIconName, m_iconNames.at(j)); } - qs->setValue(QLatin1String("TabBarPlacementIndex"), m_tabBarPlacementIndex); - qs->setValue(QLatin1String("AllowTabBarMovement"), m_allowTabBarMovement); - qs->setValue(QLatin1String("RestoreSelectedOnStartup"), m_restoreSelectedOnStartup); - qs->endGroup(); + settings.setValue(QLatin1String("TabBarPlacementIndex"), m_tabBarPlacementIndex); + settings.setValue(QLatin1String("AllowTabBarMovement"), m_allowTabBarMovement); + settings.setValue(QLatin1String("RestoreSelectedOnStartup"), m_restoreSelectedOnStartup); + settings.endGroup(); } void WorkspaceSettings::apply() { selectWorkspace(m_currentIndex, true); - saveSettings(Core::ICore::instance()->settings()); + QSettings settings; + saveSettings(settings); if (m_numberOfWorkspaces != m_previousNumberOfWorkspaces) { - Core::ICore::instance()->readMainSettings(Core::ICore::instance()->settings(), true); + Core::ICore::instance()->readMainSettings(settings, true); m_previousNumberOfWorkspaces = m_numberOfWorkspaces; } diff --git a/ground/gcs/src/plugins/coreplugin/workspacesettings.h b/ground/gcs/src/plugins/coreplugin/workspacesettings.h index b9e387213..bfcbaf0b3 100644 --- a/ground/gcs/src/plugins/coreplugin/workspacesettings.h +++ b/ground/gcs/src/plugins/coreplugin/workspacesettings.h @@ -29,8 +29,9 @@ #define WORKSPACESETTINGS_H #include -#include -#include + +#include +#include #include class QSettings; @@ -59,8 +60,8 @@ public: QWidget *createPage(QWidget *parent); void apply(); void finish(); - void readSettings(QSettings *qs); - void saveSettings(QSettings *qs); + void readSettings(QSettings &settings); + void saveSettings(QSettings &settings) const; int numberOfWorkspaces() const { return m_numberOfWorkspaces; diff --git a/ground/gcs/src/plugins/dial/dialgadgetconfiguration.cpp b/ground/gcs/src/plugins/dial/dialgadgetconfiguration.cpp index 6d5d2115f..274ef0e00 100644 --- a/ground/gcs/src/plugins/dial/dialgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/dial/dialgadgetconfiguration.cpp @@ -30,146 +30,125 @@ #include "utils/pathutils.h" /** - * Loads a saved configuration or defaults if non exist. + * Loads a saved configuration. * */ -DialGadgetConfiguration::DialGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_defaultDial("Unknown"), - dialBackgroundID("background"), - dialForegroundID("foreground"), - dialNeedleID1("needle"), - dialNeedleID2("needle2"), - dialNeedleID3("needle3"), - needle1MinValue(0), - needle1MaxValue(100), - needle2MinValue(0), - needle2MaxValue(100), - needle3MinValue(0), - needle3MaxValue(100), - needle1Factor(1), - needle2Factor(1), - needle3Factor(1), - needle1Move("Rotate"), - needle2Move("Rotate"), - needle3Move("Rotate"), - useOpenGLFlag(false), - beSmooth(true) +DialGadgetConfiguration::DialGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QString dialFile = qSettings->value("dialFile").toString(); + QString dialFile = settings.value("dialFile", "Unknown").toString(); - m_defaultDial = Utils::InsertDataPath(dialFile); - dialBackgroundID = qSettings->value("dialBackgroundID").toString(); - dialForegroundID = qSettings->value("dialForegroundID").toString(); - dialNeedleID1 = qSettings->value("dialNeedleID1").toString(); - dialNeedleID2 = qSettings->value("dialNeedleID2").toString(); - dialNeedleID3 = qSettings->value("dialNeedleID3").toString(); - needle1MinValue = qSettings->value("needle1MinValue").toDouble(); - needle1MaxValue = qSettings->value("needle1MaxValue").toDouble(); - needle2MinValue = qSettings->value("needle2MinValue").toDouble(); - needle2MaxValue = qSettings->value("needle2MaxValue").toDouble(); - needle3MinValue = qSettings->value("needle3MinValue").toDouble(); - needle3MaxValue = qSettings->value("needle3MaxValue").toDouble(); - needle1DataObject = qSettings->value("needle1DataObject").toString(); - needle1ObjectField = qSettings->value("needle1ObjectField").toString(); - needle2DataObject = qSettings->value("needle2DataObject").toString(); - needle2ObjectField = qSettings->value("needle2ObjectField").toString(); - needle3DataObject = qSettings->value("needle3DataObject").toString(); - needle3ObjectField = qSettings->value("needle3ObjectField").toString(); - needle1Factor = qSettings->value("needle1Factor").toDouble(); - needle2Factor = qSettings->value("needle2Factor").toDouble(); - needle3Factor = qSettings->value("needle3Factor").toDouble(); - needle1Move = qSettings->value("needle1Move").toString(); - needle2Move = qSettings->value("needle2Move").toString(); - needle3Move = qSettings->value("needle3Move").toString(); - font = qSettings->value("font").toString(); - useOpenGLFlag = qSettings->value("useOpenGLFlag").toBool(); - beSmooth = qSettings->value("beSmooth").toBool(); - } + m_defaultDial = Utils::InsertDataPath(dialFile); + dialBackgroundID = settings.value("dialBackgroundID", "background").toString(); + dialForegroundID = settings.value("dialForegroundID", "foreground").toString(); + dialNeedleID1 = settings.value("dialNeedleID1", "needle").toString(); + dialNeedleID2 = settings.value("dialNeedleID2", "needle2").toString(); + dialNeedleID3 = settings.value("dialNeedleID3", "needle3").toString(); + needle1MinValue = settings.value("needle1MinValue", 0).toDouble(); + needle1MaxValue = settings.value("needle1MaxValue", 100).toDouble(); + needle2MinValue = settings.value("needle2MinValue", 0).toDouble(); + needle2MaxValue = settings.value("needle2MaxValue", 100).toDouble(); + needle3MinValue = settings.value("needle3MinValue", 0).toDouble(); + needle3MaxValue = settings.value("needle3MaxValue", 100).toDouble(); + needle1DataObject = settings.value("needle1DataObject").toString(); + needle1ObjectField = settings.value("needle1ObjectField").toString(); + needle2DataObject = settings.value("needle2DataObject").toString(); + needle2ObjectField = settings.value("needle2ObjectField").toString(); + needle3DataObject = settings.value("needle3DataObject").toString(); + needle3ObjectField = settings.value("needle3ObjectField").toString(); + needle1Factor = settings.value("needle1Factor", 1).toDouble(); + needle2Factor = settings.value("needle2Factor", 1).toDouble(); + needle3Factor = settings.value("needle3Factor", 1).toDouble(); + needle1Move = settings.value("needle1Move", "Rotate").toString(); + needle2Move = settings.value("needle2Move", "Rotate").toString(); + needle3Move = settings.value("needle3Move", "Rotate").toString(); + font = settings.value("font").toString(); + useOpenGLFlag = settings.value("useOpenGLFlag", false).toBool(); + beSmooth = settings.value("beSmooth", true).toBool(); +} + +DialGadgetConfiguration::DialGadgetConfiguration(const DialGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_defaultDial = obj.m_defaultDial; + dialBackgroundID = obj.dialBackgroundID; + dialForegroundID = obj.dialForegroundID; + dialNeedleID1 = obj.dialNeedleID1; + dialNeedleID2 = obj.dialNeedleID2; + dialNeedleID3 = obj.dialNeedleID3; + needle1MinValue = obj.needle1MinValue; + needle1MaxValue = obj.needle1MaxValue; + needle2MinValue = obj.needle2MinValue; + needle2MaxValue = obj.needle2MaxValue; + needle3MinValue = obj.needle3MinValue; + needle3MaxValue = obj.needle3MaxValue; + needle1DataObject = obj.needle1DataObject; + needle1ObjectField = obj.needle1ObjectField; + needle2DataObject = obj.needle2DataObject; + needle2ObjectField = obj.needle2ObjectField; + needle3DataObject = obj.needle3DataObject; + needle3ObjectField = obj.needle3ObjectField; + needle1Factor = obj.needle1Factor; + needle2Factor = obj.needle2Factor; + needle3Factor = obj.needle3Factor; + needle1Move = obj.needle1Move; + needle2Move = obj.needle2Move; + needle3Move = obj.needle3Move; + font = obj.font; + useOpenGLFlag = obj.useOpenGLFlag; + beSmooth = obj.beSmooth; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *DialGadgetConfiguration::clone() +IUAVGadgetConfiguration *DialGadgetConfiguration::clone() const { - DialGadgetConfiguration *m = new DialGadgetConfiguration(this->classId()); - - m->m_defaultDial = m_defaultDial; - m->setDialBackgroundID(dialBackgroundID); - m->setDialForegroundID(dialForegroundID); - m->setDialNeedleID1(dialNeedleID1); - m->setDialNeedleID2(dialNeedleID2); - m->setDialNeedleID3(dialNeedleID3); - m->setN1Min(needle1MinValue); - m->setN1Max(needle1MaxValue); - m->setN2Min(needle2MinValue); - m->setN2Max(needle2MaxValue); - m->setN3Min(needle3MinValue); - m->setN3Max(needle3MaxValue); - m->setN1DataObject(needle1DataObject); - m->setN1ObjField(needle1ObjectField); - m->setN2DataObject(needle2DataObject); - m->setN2ObjField(needle2ObjectField); - m->setN3DataObject(needle3DataObject); - m->setN3ObjField(needle3ObjectField); - m->setN1Factor(needle1Factor); - m->setN2Factor(needle2Factor); - m->setN3Factor(needle3Factor); - m->setN1Move(needle1Move); - m->setN2Move(needle2Move); - m->setN3Move(needle3Move); - m->setFont(font); - m->useOpenGLFlag = useOpenGLFlag; - m->beSmooth = beSmooth; - - return m; + return new DialGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void DialGadgetConfiguration::saveConfig(QSettings *settings) const +void DialGadgetConfiguration::saveConfig(QSettings &settings) const { QString dialFile = Utils::RemoveDataPath(m_defaultDial); - settings->setValue("dialFile", dialFile); + settings.setValue("dialFile", dialFile); - settings->setValue("dialBackgroundID", dialBackgroundID); - settings->setValue("dialForegroundID", dialForegroundID); + settings.setValue("dialBackgroundID", dialBackgroundID); + settings.setValue("dialForegroundID", dialForegroundID); - settings->setValue("dialNeedleID1", dialNeedleID1); - settings->setValue("dialNeedleID2", dialNeedleID2); - settings->setValue("dialNeedleID3", dialNeedleID3); + settings.setValue("dialNeedleID1", dialNeedleID1); + settings.setValue("dialNeedleID2", dialNeedleID2); + settings.setValue("dialNeedleID3", dialNeedleID3); - settings->setValue("needle1MinValue", needle1MinValue); - settings->setValue("needle1MaxValue", needle1MaxValue); - settings->setValue("needle2MinValue", needle2MinValue); - settings->setValue("needle2MaxValue", needle2MaxValue); - settings->setValue("needle3MinValue", needle3MinValue); - settings->setValue("needle3MaxValue", needle3MaxValue); + settings.setValue("needle1MinValue", needle1MinValue); + settings.setValue("needle1MaxValue", needle1MaxValue); + settings.setValue("needle2MinValue", needle2MinValue); + settings.setValue("needle2MaxValue", needle2MaxValue); + settings.setValue("needle3MinValue", needle3MinValue); + settings.setValue("needle3MaxValue", needle3MaxValue); - settings->setValue("needle1DataObject", needle1DataObject); - settings->setValue("needle1ObjectField", needle1ObjectField); - settings->setValue("needle2DataObject", needle2DataObject); - settings->setValue("needle2ObjectField", needle2ObjectField); - settings->setValue("needle3DataObject", needle3DataObject); - settings->setValue("needle3ObjectField", needle3ObjectField); + settings.setValue("needle1DataObject", needle1DataObject); + settings.setValue("needle1ObjectField", needle1ObjectField); + settings.setValue("needle2DataObject", needle2DataObject); + settings.setValue("needle2ObjectField", needle2ObjectField); + settings.setValue("needle3DataObject", needle3DataObject); + settings.setValue("needle3ObjectField", needle3ObjectField); - settings->setValue("needle1Factor", needle1Factor); - settings->setValue("needle2Factor", needle2Factor); - settings->setValue("needle3Factor", needle3Factor); + settings.setValue("needle1Factor", needle1Factor); + settings.setValue("needle2Factor", needle2Factor); + settings.setValue("needle3Factor", needle3Factor); - settings->setValue("needle1Move", needle1Move); - settings->setValue("needle2Move", needle2Move); - settings->setValue("needle3Move", needle3Move); + settings.setValue("needle1Move", needle1Move); + settings.setValue("needle2Move", needle2Move); + settings.setValue("needle3Move", needle3Move); - settings->setValue("font", font); + settings.setValue("font", font); - settings->setValue("useOpenGLFlag", useOpenGLFlag); - settings->setValue("beSmooth", beSmooth); + settings.setValue("useOpenGLFlag", useOpenGLFlag); + settings.setValue("beSmooth", beSmooth); } diff --git a/ground/gcs/src/plugins/dial/dialgadgetconfiguration.h b/ground/gcs/src/plugins/dial/dialgadgetconfiguration.h index 6929debf9..304f110d3 100644 --- a/ground/gcs/src/plugins/dial/dialgadgetconfiguration.h +++ b/ground/gcs/src/plugins/dial/dialgadgetconfiguration.h @@ -39,8 +39,11 @@ using namespace Core; class DialGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit DialGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit DialGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit DialGadgetConfiguration(const DialGadgetConfiguration &obj); + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; // set dial configuration functions void setDialFile(QString dialFile) @@ -152,7 +155,6 @@ public: beSmooth = flag; } - // get dial configuration functions QString dialFile() { @@ -263,9 +265,6 @@ public: return beSmooth; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: QString m_defaultDial; // The name of the dial's SVG source file QString dialBackgroundID; // SVG elementID of the background diff --git a/ground/gcs/src/plugins/dial/dialgadgetfactory.cpp b/ground/gcs/src/plugins/dial/dialgadgetfactory.cpp index 3c07f11e5..43d2b6183 100644 --- a/ground/gcs/src/plugins/dial/dialgadgetfactory.cpp +++ b/ground/gcs/src/plugins/dial/dialgadgetfactory.cpp @@ -48,9 +48,9 @@ Core::IUAVGadget *DialGadgetFactory::createGadget(QWidget *parent) return new DialGadget(QString("DialGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *DialGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *DialGadgetFactory::createConfiguration(QSettings &settings) { - return new DialGadgetConfiguration(QString("DialGadget"), qSettings); + return new DialGadgetConfiguration(QString("DialGadget"), settings); } IOptionsPage *DialGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/dial/dialgadgetfactory.h b/ground/gcs/src/plugins/dial/dialgadgetfactory.h index e4c51c4c8..c54f75e87 100644 --- a/ground/gcs/src/plugins/dial/dialgadgetfactory.h +++ b/ground/gcs/src/plugins/dial/dialgadgetfactory.h @@ -45,7 +45,7 @@ public: ~DialGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.cpp b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.cpp index 866b43867..4c6dbf835 100644 --- a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.cpp @@ -31,39 +31,43 @@ * Loads a saved configuration or defaults if non exist. * */ -GCSControlGadgetConfiguration::GCSControlGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - rollChannel(-1), - pitchChannel(-1), - yawChannel(-1), - throttleChannel(-1) +GCSControlGadgetConfiguration::GCSControlGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - int i; + controlsMode = settings.value("controlsMode").toInt(); + rollChannel = settings.value("rollChannel", -1).toInt(); + pitchChannel = settings.value("pitchChannel", -1).toInt(); + yawChannel = settings.value("yawChannel", -1).toInt(); + throttleChannel = settings.value("throttleChannel", -1).toInt(); - for (i = 0; i < 8; i++) { - buttonSettings[i].ActionID = 0; - buttonSettings[i].FunctionID = 0; - buttonSettings[i].Amount = 0; - channelReverse[i] = 0; + udp_port = settings.value("controlPortUDP").toUInt(); + udp_host = QHostAddress(settings.value("controlHostUDP").toString()); + + for (int i = 0; i < 8; i++) { + buttonSettings[i].ActionID = settings.value(QString().sprintf("button%dAction", i)).toInt(); + buttonSettings[i].FunctionID = settings.value(QString().sprintf("button%dFunction", i)).toInt(); + buttonSettings[i].Amount = settings.value(QString().sprintf("button%dAmount", i)).toDouble(); + channelReverse[i] = settings.value(QString().sprintf("channel%dReverse", i)).toBool(); } - // if a saved configuration exists load it - if (qSettings != 0) { - controlsMode = qSettings->value("controlsMode").toInt(); - rollChannel = qSettings->value("rollChannel").toInt(); - pitchChannel = qSettings->value("pitchChannel").toInt(); - yawChannel = qSettings->value("yawChannel").toInt(); - throttleChannel = qSettings->value("throttleChannel").toInt(); +} - udp_port = qSettings->value("controlPortUDP").toUInt(); - udp_host = QHostAddress(qSettings->value("controlHostUDP").toString()); +GCSControlGadgetConfiguration::GCSControlGadgetConfiguration(const GCSControlGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + controlsMode = obj.controlsMode; + rollChannel = obj.rollChannel; + pitchChannel = obj.pitchChannel; + yawChannel = obj.yawChannel; + throttleChannel = obj.throttleChannel; - int i; - for (i = 0; i < 8; i++) { - buttonSettings[i].ActionID = qSettings->value(QString().sprintf("button%dAction", i)).toInt(); - buttonSettings[i].FunctionID = qSettings->value(QString().sprintf("button%dFunction", i)).toInt(); - buttonSettings[i].Amount = qSettings->value(QString().sprintf("button%dAmount", i)).toDouble(); - channelReverse[i] = qSettings->value(QString().sprintf("channel%dReverse", i)).toBool(); - } + udp_host = obj.udp_host; + udp_port = obj.udp_port; + + for (int i = 0; i < 8; i++) { + buttonSettings[i].ActionID = obj.buttonSettings[i].ActionID; + buttonSettings[i].FunctionID = obj.buttonSettings[i].FunctionID; + buttonSettings[i].Amount = obj.buttonSettings[i].Amount; + channelReverse[i] = obj.channelReverse[i]; } } @@ -77,6 +81,7 @@ int GCSControlGadgetConfiguration::getUDPControlPort() { return udp_port; } + QHostAddress GCSControlGadgetConfiguration::getUDPControlHost() { return udp_host; @@ -96,14 +101,13 @@ QList GCSControlGadgetConfiguration::getChannelsMapping() ql << rollChannel << pitchChannel << yawChannel << throttleChannel; return ql; } + QList GCSControlGadgetConfiguration::getChannelsReverse() { QList ql; - int i; - for (i = 0; i < 8; i++) { + for (int i = 0; i < 8; i++) { ql << channelReverse[i]; } - return ql; } @@ -111,51 +115,30 @@ QList GCSControlGadgetConfiguration::getChannelsReverse() * Clones a configuration. * */ -IUAVGadgetConfiguration *GCSControlGadgetConfiguration::clone() +IUAVGadgetConfiguration *GCSControlGadgetConfiguration::clone() const { - GCSControlGadgetConfiguration *m = new GCSControlGadgetConfiguration(this->classId()); - - m->controlsMode = controlsMode; - m->rollChannel = rollChannel; - m->pitchChannel = pitchChannel; - m->yawChannel = yawChannel; - m->throttleChannel = throttleChannel; - - m->udp_host = udp_host; - m->udp_port = udp_port; - - int i; - for (i = 0; i < 8; i++) { - m->buttonSettings[i].ActionID = buttonSettings[i].ActionID; - m->buttonSettings[i].FunctionID = buttonSettings[i].FunctionID; - m->buttonSettings[i].Amount = buttonSettings[i].Amount; - m->channelReverse[i] = channelReverse[i]; - } - - - return m; + return new GCSControlGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void GCSControlGadgetConfiguration::saveConfig(QSettings *settings) const +void GCSControlGadgetConfiguration::saveConfig(QSettings &settings) const { - settings->setValue("controlsMode", controlsMode); - settings->setValue("rollChannel", rollChannel); - settings->setValue("pitchChannel", pitchChannel); - settings->setValue("yawChannel", yawChannel); - settings->setValue("throttleChannel", throttleChannel); + settings.setValue("controlsMode", controlsMode); + settings.setValue("rollChannel", rollChannel); + settings.setValue("pitchChannel", pitchChannel); + settings.setValue("yawChannel", yawChannel); + settings.setValue("throttleChannel", throttleChannel); - settings->setValue("controlPortUDP", QString::number(udp_port)); - settings->setValue("controlHostUDP", udp_host.toString()); + settings.setValue("controlPortUDP", QString::number(udp_port)); + settings.setValue("controlHostUDP", udp_host.toString()); - int i; - for (i = 0; i < 8; i++) { - settings->setValue(QString().sprintf("button%dAction", i), buttonSettings[i].ActionID); - settings->setValue(QString().sprintf("button%dFunction", i), buttonSettings[i].FunctionID); - settings->setValue(QString().sprintf("button%dAmount", i), buttonSettings[i].Amount); - settings->setValue(QString().sprintf("channel%dReverse", i), channelReverse[i]); + for (int i = 0; i < 8; i++) { + settings.setValue(QString().sprintf("button%dAction", i), buttonSettings[i].ActionID); + settings.setValue(QString().sprintf("button%dFunction", i), buttonSettings[i].FunctionID); + settings.setValue(QString().sprintf("button%dAmount", i), buttonSettings[i].Amount); + settings.setValue(QString().sprintf("channel%dReverse", i), channelReverse[i]); } } diff --git a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.h b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.h index 66602ac35..d01a1f145 100644 --- a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.h +++ b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetconfiguration.h @@ -29,7 +29,8 @@ #define GCSCONTROLGADGETCONFIGURATION_H #include -#include + +#include typedef struct { int ActionID; @@ -42,14 +43,16 @@ typedef struct { QHostAddress address; } portSettingsStruct; - using namespace Core; - class GCSControlGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit GCSControlGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit GCSControlGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit GCSControlGadgetConfiguration(const GCSControlGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; void setControlsMode(int mode) { @@ -63,8 +66,8 @@ public: { return controlsMode; } - QList getChannelsMapping(); - QList getChannelsReverse(); + QList getChannelsMapping(); + QList getChannelsReverse(); buttonSettingsStruct getbuttonSettings(int i) { @@ -87,10 +90,6 @@ public: channelReverse[i] = Reverse; } - - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: int controlsMode; // Mode1 to Mode4 // Joystick mappings for roll/pitch/yaw/throttle: diff --git a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.cpp b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.cpp index bef6c191f..552b3140e 100644 --- a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.cpp +++ b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.cpp @@ -45,9 +45,9 @@ IUAVGadget *GCSControlGadgetFactory::createGadget(QWidget *parent) return new GCSControlGadget(QString("GCSControlGadget"), gadgetWidget, parent, this->parent()); } -IUAVGadgetConfiguration *GCSControlGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *GCSControlGadgetFactory::createConfiguration(QSettings &settings) { - return new GCSControlGadgetConfiguration(QString("GCSControlGadget"), qSettings); + return new GCSControlGadgetConfiguration(QString("GCSControlGadget"), settings); } IOptionsPage *GCSControlGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.h b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.h index 0a13fd2f1..854859573 100644 --- a/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.h +++ b/ground/gcs/src/plugins/gcscontrol/gcscontrolgadgetfactory.h @@ -46,7 +46,7 @@ public: ~GCSControlGadgetFactory(); IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp index e79adb01b..ce17bdf60 100644 --- a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.cpp @@ -33,77 +33,52 @@ * Loads a saved configuration or defaults if non exist. * */ -GpsDisplayGadgetConfiguration::GpsDisplayGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_connectionMode("Serial"), - m_defaultPort("Unknown"), - m_defaultSpeed(QSerialPort::UnknownBaud), - m_defaultDataBits(QSerialPort::UnknownDataBits), - m_defaultFlow(QSerialPort::UnknownFlowControl), - m_defaultParity(QSerialPort::UnknownParity), - m_defaultStopBits(QSerialPort::UnknownStopBits), - m_defaultTimeOut(5000) +GpsDisplayGadgetConfiguration::GpsDisplayGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QSerialPort::BaudRate speed; - QSerialPort::DataBits databits; - QSerialPort::FlowControl flow; - QSerialPort::Parity parity; - QSerialPort::StopBits stopbits; + m_defaultPort = settings.value("defaultPort", "Unknown").toString(); + m_defaultSpeed = (QSerialPort::BaudRate)settings.value("defaultSpeed", QSerialPort::UnknownBaud).toInt(); + m_defaultDataBits = (QSerialPort::DataBits)settings.value("defaultDataBits", QSerialPort::UnknownDataBits).toInt(); + m_defaultFlow = (QSerialPort::FlowControl)settings.value("defaultFlow", QSerialPort::UnknownFlowControl).toInt(); + m_defaultParity = (QSerialPort::Parity)settings.value("defaultParity", QSerialPort::UnknownParity).toInt(); + m_defaultStopBits = (QSerialPort::StopBits)settings.value("defaultStopBits", QSerialPort::UnknownStopBits).toInt(); + m_connectionMode = settings.value("connectionMode", "Serial").toString(); + m_defaultTimeOut = 5000; +} - int ispeed = qSettings->value("defaultSpeed").toInt(); - int idatabits = qSettings->value("defaultDataBits").toInt(); - int iflow = qSettings->value("defaultFlow").toInt(); - int iparity = qSettings->value("defaultParity").toInt(); - int istopbits = qSettings->value("defaultStopBits").toInt(); - QString port = qSettings->value("defaultPort").toString(); - QString conMode = qSettings->value("connectionMode").toString(); - - databits = (QSerialPort::DataBits)idatabits; - flow = (QSerialPort::FlowControl)iflow; - parity = (QSerialPort::Parity)iparity; - stopbits = (QSerialPort::StopBits)istopbits; - speed = (QSerialPort::BaudRate)ispeed; - m_defaultPort = port; - m_defaultSpeed = speed; - m_defaultDataBits = databits; - m_defaultFlow = flow; - m_defaultParity = parity; - m_defaultStopBits = stopbits; - m_connectionMode = conMode; - } +GpsDisplayGadgetConfiguration::GpsDisplayGadgetConfiguration(const GpsDisplayGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_defaultSpeed = obj.m_defaultSpeed; + m_defaultDataBits = obj.m_defaultDataBits; + m_defaultFlow = obj.m_defaultFlow; + m_defaultParity = obj.m_defaultParity; + m_defaultStopBits = obj.m_defaultStopBits; + m_defaultPort = obj.m_defaultPort; + m_connectionMode = obj.m_connectionMode; + m_defaultTimeOut = obj.m_defaultTimeOut; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *GpsDisplayGadgetConfiguration::clone() +IUAVGadgetConfiguration *GpsDisplayGadgetConfiguration::clone() const { - GpsDisplayGadgetConfiguration *m = new GpsDisplayGadgetConfiguration(this->classId()); - - m->m_defaultSpeed = m_defaultSpeed; - m->m_defaultDataBits = m_defaultDataBits; - m->m_defaultFlow = m_defaultFlow; - m->m_defaultParity = m_defaultParity; - m->m_defaultStopBits = m_defaultStopBits; - m->m_defaultPort = m_defaultPort; - m->m_connectionMode = m_connectionMode; - return m; + return new GpsDisplayGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void GpsDisplayGadgetConfiguration::saveConfig(QSettings *settings) const +void GpsDisplayGadgetConfiguration::saveConfig(QSettings &settings) const { - settings->setValue("defaultSpeed", m_defaultSpeed); - settings->setValue("defaultDataBits", m_defaultDataBits); - settings->setValue("defaultFlow", m_defaultFlow); - settings->setValue("defaultParity", m_defaultParity); - settings->setValue("defaultStopBits", m_defaultStopBits); - settings->setValue("defaultPort", m_defaultPort); - settings->setValue("connectionMode", m_connectionMode); + settings.setValue("defaultSpeed", m_defaultSpeed); + settings.setValue("defaultDataBits", m_defaultDataBits); + settings.setValue("defaultFlow", m_defaultFlow); + settings.setValue("defaultParity", m_defaultParity); + settings.setValue("defaultStopBits", m_defaultStopBits); + settings.setValue("defaultPort", m_defaultPort); + settings.setValue("connectionMode", m_connectionMode); } diff --git a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h index a78669ef8..c0eec1dab 100644 --- a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h +++ b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetconfiguration.h @@ -49,7 +49,11 @@ struct PortSettings { class GpsDisplayGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit GpsDisplayGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit GpsDisplayGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit GpsDisplayGadgetConfiguration(const GpsDisplayGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; void setConnectionMode(QString mode) { @@ -59,7 +63,6 @@ public: { return m_connectionMode; } - // set port configuration functions void setSpeed(QSerialPort::BaudRate speed) { @@ -120,9 +123,6 @@ public: return m_defaultTimeOut; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: QString m_connectionMode; QString m_defaultPort; diff --git a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.cpp b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.cpp index 2b97864d9..7803ccbdb 100644 --- a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.cpp +++ b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.cpp @@ -47,9 +47,9 @@ Core::IUAVGadget *GpsDisplayGadgetFactory::createGadget(QWidget *parent) return new GpsDisplayGadget(QString("GpsDisplayGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *GpsDisplayGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *GpsDisplayGadgetFactory::createConfiguration(QSettings &settings) { - return new GpsDisplayGadgetConfiguration(QString("GpsDisplayGadget"), qSettings); + return new GpsDisplayGadgetConfiguration(QString("GpsDisplayGadget"), settings); } IOptionsPage *GpsDisplayGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.h b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.h index 99bb20e50..c96eef1f5 100644 --- a/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.h +++ b/ground/gcs/src/plugins/gpsdisplay/gpsdisplaygadgetfactory.h @@ -44,7 +44,7 @@ public: ~GpsDisplayGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.cpp b/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.cpp index f2cac7caf..7a70b2e1a 100644 --- a/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.cpp +++ b/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.cpp @@ -28,9 +28,8 @@ #include "settings.h" Settings::Settings(QString settingsPath, QObject *parent) : - QObject(parent) + QObject(parent), settings(settingsPath + "/cc_plugin.ini", QSettings::IniFormat) { - settings = new QSettings(settingsPath + "/cc_plugin.ini", QSettings::IniFormat); // default settings sendToHost = "127.0.0.1"; sendToPort = 40100; @@ -51,12 +50,12 @@ Settings::Settings(QString settingsPath, QObject *parent) : void Settings::read() { // network - listenOnHost = settings->value("listen_on_host", listenOnHost).toString(); - listenOnPort = settings->value("listen_on_port", listenOnPort).toInt(); - sendToHost = settings->value("send_to_host", sendToHost).toString(); - sendToPort = settings->value("send_to_port", sendToPort).toInt(); + listenOnHost = settings.value("listen_on_host", listenOnHost).toString(); + listenOnPort = settings.value("listen_on_port", listenOnPort).toInt(); + sendToHost = settings.value("send_to_host", sendToHost).toString(); + sendToPort = settings.value("send_to_port", sendToPort).toInt(); - QString allChannels = settings->value("all_channels").toString(); + QString allChannels = settings.value("all_channels").toString(); QString chan; int i = 0; foreach(chan, allChannels.split(" ")) @@ -67,31 +66,31 @@ void Settings::read() QString map = ""; for (quint8 i = 0; i < 10; ++i) { num = QString::number(i + 1); - map = settings->value("Input/cc_channel_" + num).toString(); + map = settings.value("Input/cc_channel_" + num).toString(); inputMap[i] = channels.value(map, inputMap.at(i)); } - QString sendTo = settings->value("Input/send_to", "RX").toString(); + QString sendTo = settings.value("Input/send_to", "RX").toString(); sendToRX = (sendTo == "RX") ? true : false; // outputs for (quint8 i = 0; i < 8; ++i) { num = QString::number(i + 1); - map = settings->value("Output/sim_channel_" + num).toString(); + map = settings.value("Output/sim_channel_" + num).toString(); outputMap[i] = channels.value(map, outputMap.at(i)); } - QString takeFrom = settings->value("Output/take_from", "TX").toString(); + QString takeFrom = settings.value("Output/take_from", "TX").toString(); takeFromTX = (takeFrom == "TX") ? true : false; // video - quint8 resolutionNum = settings->value("Video/number_of_resolutions", 0).toInt(); + quint8 resolutionNum = settings.value("Video/number_of_resolutions", 0).toInt(); if (resolutionNum > 0) { videoModes.clear(); videoModes << resolutionNum; for (quint8 i = 0; i < resolutionNum; ++i) { num = QString::number(i + 1); - QString modes = settings->value("Video/resolution_" + num, "0, 0, 640, 480").toString(); + QString modes = settings.value("Video/resolution_" + num, "0, 0, 640, 480").toString(); QString mode; foreach(mode, modes.split(" ")) videoModes << mode.toInt(); diff --git a/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.h b/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.h index b10359a78..e657d1456 100644 --- a/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.h +++ b/ground/gcs/src/plugins/hitl/aerosimrc/src/settings.h @@ -77,8 +77,9 @@ public: } private: + QSettings settings; + QHash channels; - QSettings *settings; QString sendToHost; quint16 sendToPort; QString listenOnHost; diff --git a/ground/gcs/src/plugins/hitl/hitlconfiguration.cpp b/ground/gcs/src/plugins/hitl/hitlconfiguration.cpp index a59a6c9d6..6ab455693 100644 --- a/ground/gcs/src/plugins/hitl/hitlconfiguration.cpp +++ b/ground/gcs/src/plugins/hitl/hitlconfiguration.cpp @@ -27,136 +27,138 @@ #include "hitlconfiguration.h" -HITLConfiguration::HITLConfiguration(QString classId, QSettings *qSettings, QObject *parent) : +// Default settings values +#define DFLT_SIMULATOR_ID "" +#define DFLT_BIN_PATH "" +#define DFLT_DATA_PATH "" +#define DFLT_START_SIM false +#define DFLT_addNoise false +#define DFLT_ADD_NOISE false +#define DFLT_HOST_ADDRESS "127.0.0.1" +#define DFLT_REMOTE_ADDRESS "127.0.0.1" +#define DFLT_OUT_PORT 0 +#define DFLT_IN_PORT 0 +#define DFLT_LATITUDE "" +#define DFLT_LONGITUDE "" + +#define DFLT_ATT_RAW_ENABLED false +#define DFLT_ATT_RAW_RATE 20 + +#define DFLT_ATT_STATE_ENABLED true +#define DFLT_ATT_ACT_HW false +#define DFLT_ATT_ACT_SIM true +#define DFLT_ATT_ACT_CALC false + +#define DFLT_BARO_SENSOR_ENABLED false +#define DFLT_BARO_ALT_RATE 0 + +#define DFLT_GPS_POSITION_ENABLED false +#define DFLT_GPS_POS_RATE 100 + +#define DFLT_GROUND_TRUTH_ENABLED false +#define DFLT_GROUND_TRUTH_RATE 100 + +#define DFLT_INPUT_COMMAND false +#define DFLT_GCS_RECEIVER_ENABLED false +#define DFLT_MANUAL_CONTROL_ENABLED false +#define DFLT_MIN_INPUT_PERIOD 100 + +#define DFLT_AIRSPEED_STATE_ENABLED false +#define DFLT_AIRSPEED_STATE_RATE 100 + +HITLConfiguration::HITLConfiguration(QString classId, QSettings &settings, QObject *parent) : IUAVGadgetConfiguration(classId, parent) { - // Default settings values - settings.simulatorId = ""; - settings.binPath = ""; - settings.dataPath = ""; - settings.manualControlEnabled = true; - settings.startSim = false; - settings.addNoise = false; - settings.hostAddress = "127.0.0.1"; - settings.remoteAddress = "127.0.0.1"; - settings.outPort = 0; - settings.inPort = 0; - settings.latitude = ""; - settings.longitude = ""; + simSettings.simulatorId = settings.value("simulatorId", DFLT_SIMULATOR_ID).toString(); + simSettings.binPath = settings.value("binPath", DFLT_BIN_PATH).toString(); + simSettings.dataPath = settings.value("dataPath", DFLT_DATA_PATH).toString(); - settings.attRawEnabled = false; - settings.attRawRate = 20; + simSettings.hostAddress = settings.value("hostAddress", DFLT_HOST_ADDRESS).toString(); + simSettings.remoteAddress = settings.value("remoteAddress", DFLT_REMOTE_ADDRESS).toString(); + simSettings.outPort = settings.value("outPort", DFLT_OUT_PORT).toInt(); + simSettings.inPort = settings.value("inPort", DFLT_IN_PORT).toInt(); - settings.attStateEnabled = true; - settings.attActHW = false; - settings.attActSim = true; - settings.attActCalc = false; + simSettings.latitude = settings.value("latitude", DFLT_LATITUDE).toString(); + simSettings.longitude = settings.value("longitude", DFLT_LONGITUDE).toString(); + simSettings.startSim = settings.value("startSim", DFLT_START_SIM).toBool(); + simSettings.addNoise = settings.value("noiseCheckBox", DFLT_ADD_NOISE).toBool(); - settings.gpsPositionEnabled = false; - settings.gpsPosRate = 100; + simSettings.gcsReceiverEnabled = settings.value("gcsReceiverEnabled", DFLT_GCS_RECEIVER_ENABLED).toBool(); + simSettings.manualControlEnabled = settings.value("manualControlEnabled", DFLT_MANUAL_CONTROL_ENABLED).toBool(); - settings.groundTruthEnabled = false; - settings.groundTruthRate = 100; + simSettings.attRawEnabled = settings.value("attRawEnabled", DFLT_ATT_RAW_ENABLED).toBool(); + simSettings.attRawRate = settings.value("attRawRate", DFLT_ATT_RAW_RATE).toInt(); - settings.inputCommand = false; - settings.gcsReceiverEnabled = false; - settings.manualControlEnabled = false; - settings.minOutputPeriod = 100; + simSettings.attStateEnabled = settings.value("attStateEnabled", DFLT_ATT_STATE_ENABLED).toBool(); + simSettings.attActHW = settings.value("attActHW", DFLT_ATT_ACT_HW).toBool(); + simSettings.attActSim = settings.value("attActSim", DFLT_ATT_ACT_SIM).toBool(); + simSettings.attActCalc = settings.value("attActCalc", DFLT_ATT_ACT_CALC).toBool(); - settings.airspeedStateEnabled = false; - settings.airspeedStateRate = 100; + simSettings.baroSensorEnabled = settings.value("baroSensorEnabled", DFLT_BARO_SENSOR_ENABLED).toBool(); + simSettings.baroAltRate = settings.value("baroAltRate", DFLT_BARO_ALT_RATE).toInt(); + simSettings.gpsPositionEnabled = settings.value("gpsPositionEnabled", DFLT_GPS_POSITION_ENABLED).toBool(); + simSettings.gpsPosRate = settings.value("gpsPosRate", DFLT_GPS_POS_RATE).toInt(); - // if a saved configuration exists load it, and overwrite defaults - if (qSettings != 0) { - settings.simulatorId = qSettings->value("simulatorId").toString(); - settings.binPath = qSettings->value("binPath").toString(); - settings.dataPath = qSettings->value("dataPath").toString(); + simSettings.groundTruthEnabled = settings.value("groundTruthEnabled", DFLT_GROUND_TRUTH_ENABLED).toBool(); + simSettings.groundTruthRate = settings.value("groundTruthRate", DFLT_GROUND_TRUTH_RATE).toInt(); - settings.hostAddress = qSettings->value("hostAddress").toString(); - settings.remoteAddress = qSettings->value("remoteAddress").toString(); - settings.outPort = qSettings->value("outPort").toInt(); - settings.inPort = qSettings->value("inPort").toInt(); + simSettings.inputCommand = settings.value("inputCommand", DFLT_INPUT_COMMAND).toBool(); + simSettings.minOutputPeriod = settings.value("minOutputPeriod", DFLT_MIN_INPUT_PERIOD).toInt(); - settings.latitude = qSettings->value("latitude").toString(); - settings.longitude = qSettings->value("longitude").toString(); - settings.startSim = qSettings->value("startSim").toBool(); - settings.addNoise = qSettings->value("noiseCheckBox").toBool(); - - settings.gcsReceiverEnabled = qSettings->value("gcsReceiverEnabled").toBool(); - settings.manualControlEnabled = qSettings->value("manualControlEnabled").toBool(); - - settings.attRawEnabled = qSettings->value("attRawEnabled").toBool(); - settings.attRawRate = qSettings->value("attRawRate").toInt(); - - settings.attStateEnabled = qSettings->value("attStateEnabled").toBool(); - settings.attActHW = qSettings->value("attActHW").toBool(); - settings.attActSim = qSettings->value("attActSim").toBool(); - settings.attActCalc = qSettings->value("attActCalc").toBool(); - - settings.baroSensorEnabled = qSettings->value("baroSensorEnabled").toBool(); - settings.baroAltRate = qSettings->value("baroAltRate").toInt(); - - settings.gpsPositionEnabled = qSettings->value("gpsPositionEnabled").toBool(); - settings.gpsPosRate = qSettings->value("gpsPosRate").toInt(); - - settings.groundTruthEnabled = qSettings->value("groundTruthEnabled").toBool(); - settings.groundTruthRate = qSettings->value("groundTruthRate").toInt(); - - settings.inputCommand = qSettings->value("inputCommand").toBool(); - settings.minOutputPeriod = qSettings->value("minOutputPeriod").toInt(); - - settings.airspeedStateEnabled = qSettings->value("airspeedStateEnabled").toBool(); - settings.airspeedStateRate = qSettings->value("airspeedStateRate").toInt(); - } + simSettings.airspeedStateEnabled = settings.value("airspeedStateEnabled", DFLT_AIRSPEED_STATE_ENABLED).toBool(); + simSettings.airspeedStateRate = settings.value("airspeedStateRate", DFLT_AIRSPEED_STATE_RATE).toInt(); } -IUAVGadgetConfiguration *HITLConfiguration::clone() +HITLConfiguration::HITLConfiguration(const HITLConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) { - HITLConfiguration *m = new HITLConfiguration(this->classId()); + simSettings = obj.simSettings; +} - m->settings = settings; - return m; +IUAVGadgetConfiguration *HITLConfiguration::clone() const +{ + return new HITLConfiguration(*this); } /** * Saves a configuration. * */ -void HITLConfiguration::saveConfig(QSettings *qSettings) const +void HITLConfiguration::saveConfig(QSettings &settings) const { - qSettings->setValue("simulatorId", settings.simulatorId); - qSettings->setValue("binPath", settings.binPath); - qSettings->setValue("dataPath", settings.dataPath); + settings.setValue("simulatorId", simSettings.simulatorId); + settings.setValue("binPath", simSettings.binPath); + settings.setValue("dataPath", simSettings.dataPath); - qSettings->setValue("hostAddress", settings.hostAddress); - qSettings->setValue("remoteAddress", settings.remoteAddress); - qSettings->setValue("outPort", settings.outPort); - qSettings->setValue("inPort", settings.inPort); + settings.setValue("hostAddress", simSettings.hostAddress); + settings.setValue("remoteAddress", simSettings.remoteAddress); + settings.setValue("outPort", simSettings.outPort); + settings.setValue("inPort", simSettings.inPort); - qSettings->setValue("latitude", settings.latitude); - qSettings->setValue("longitude", settings.longitude); - qSettings->setValue("addNoise", settings.addNoise); - qSettings->setValue("startSim", settings.startSim); + settings.setValue("latitude", simSettings.latitude); + settings.setValue("longitude", simSettings.longitude); + settings.setValue("addNoise", simSettings.addNoise); + settings.setValue("startSim", simSettings.startSim); - qSettings->setValue("gcsReceiverEnabled", settings.gcsReceiverEnabled); - qSettings->setValue("manualControlEnabled", settings.manualControlEnabled); + settings.setValue("gcsReceiverEnabled", simSettings.gcsReceiverEnabled); + settings.setValue("manualControlEnabled", simSettings.manualControlEnabled); - qSettings->setValue("attRawEnabled", settings.attRawEnabled); - qSettings->setValue("attRawRate", settings.attRawRate); - qSettings->setValue("attStateEnabled", settings.attStateEnabled); - qSettings->setValue("attActHW", settings.attActHW); - qSettings->setValue("attActSim", settings.attActSim); - qSettings->setValue("attActCalc", settings.attActCalc); - qSettings->setValue("baroSensorEnabled", settings.baroSensorEnabled); - qSettings->setValue("baroAltRate", settings.baroAltRate); - qSettings->setValue("gpsPositionEnabled", settings.gpsPositionEnabled); - qSettings->setValue("gpsPosRate", settings.gpsPosRate); - qSettings->setValue("groundTruthEnabled", settings.groundTruthEnabled); - qSettings->setValue("groundTruthRate", settings.groundTruthRate); - qSettings->setValue("inputCommand", settings.inputCommand); - qSettings->setValue("minOutputPeriod", settings.minOutputPeriod); + settings.setValue("attRawEnabled", simSettings.attRawEnabled); + settings.setValue("attRawRate", simSettings.attRawRate); + settings.setValue("attStateEnabled", simSettings.attStateEnabled); + settings.setValue("attActHW", simSettings.attActHW); + settings.setValue("attActSim", simSettings.attActSim); + settings.setValue("attActCalc", simSettings.attActCalc); + settings.setValue("baroSensorEnabled", simSettings.baroSensorEnabled); + settings.setValue("baroAltRate", simSettings.baroAltRate); + settings.setValue("gpsPositionEnabled", simSettings.gpsPositionEnabled); + settings.setValue("gpsPosRate", simSettings.gpsPosRate); + settings.setValue("groundTruthEnabled", simSettings.groundTruthEnabled); + settings.setValue("groundTruthRate", simSettings.groundTruthRate); + settings.setValue("inputCommand", simSettings.inputCommand); + settings.setValue("minOutputPeriod", simSettings.minOutputPeriod); - qSettings->setValue("airspeedStateEnabled", settings.airspeedStateEnabled); - qSettings->setValue("airspeedStateRate", settings.airspeedStateRate); + settings.setValue("airspeedStateEnabled", simSettings.airspeedStateEnabled); + settings.setValue("airspeedStateRate", simSettings.airspeedStateRate); } diff --git a/ground/gcs/src/plugins/hitl/hitlconfiguration.h b/ground/gcs/src/plugins/hitl/hitlconfiguration.h index d9d0ea592..98f72a98b 100644 --- a/ground/gcs/src/plugins/hitl/hitlconfiguration.h +++ b/ground/gcs/src/plugins/hitl/hitlconfiguration.h @@ -29,7 +29,6 @@ #define HITLCONFIGURATION_H #include -#include #include #include @@ -40,25 +39,26 @@ class HITLConfiguration : public IUAVGadgetConfiguration { Q_OBJECT Q_PROPERTY(SimulatorSettings settings READ Settings WRITE setSimulatorSettings) public: - explicit HITLConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit HITLConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit HITLConfiguration(const HITLConfiguration &obj); - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; SimulatorSettings Settings() const { - return settings; + return simSettings; } public slots: void setSimulatorSettings(const SimulatorSettings & params) { - settings = params; + simSettings = params; } private: - SimulatorSettings settings; + SimulatorSettings simSettings; }; #endif // HITLCONFIGURATION_H diff --git a/ground/gcs/src/plugins/hitl/hitlfactory.cpp b/ground/gcs/src/plugins/hitl/hitlfactory.cpp index 4d7e7d833..21aa84c74 100644 --- a/ground/gcs/src/plugins/hitl/hitlfactory.cpp +++ b/ground/gcs/src/plugins/hitl/hitlfactory.cpp @@ -45,9 +45,9 @@ Core::IUAVGadget *HITLFactory::createGadget(QWidget *parent) return new HITLGadget(QString("HITL"), gadgetWidget, parent); } -IUAVGadgetConfiguration *HITLFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *HITLFactory::createConfiguration(QSettings &settings) { - return new HITLConfiguration(QString("HITL"), qSettings); + return new HITLConfiguration(QString("HITL"), settings); } IOptionsPage *HITLFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/hitl/hitlfactory.h b/ground/gcs/src/plugins/hitl/hitlfactory.h index 16da8ae80..93cf72159 100644 --- a/ground/gcs/src/plugins/hitl/hitlfactory.h +++ b/ground/gcs/src/plugins/hitl/hitlfactory.h @@ -44,7 +44,7 @@ public: ~HITLFactory(); IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/importexport/importexportgadgetwidget.cpp b/ground/gcs/src/plugins/importexport/importexportgadgetwidget.cpp index 68fcbe677..e94ba6f89 100644 --- a/ground/gcs/src/plugins/importexport/importexportgadgetwidget.cpp +++ b/ground/gcs/src/plugins/importexport/importexportgadgetwidget.cpp @@ -28,13 +28,15 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "importexportgadgetwidget.h" + #include "ui_importexportgadgetwidget.h" #include "utils/xmlconfig.h" #include "coreplugin/uavgadgetinstancemanager.h" #include "coreplugin/icore.h" #include #include -#include + +#include #include #include #include @@ -125,17 +127,17 @@ void ImportExportGadgetWidget::exportConfiguration(const QString & fileName) bool doAllGadgets = ui->checkBoxAllGadgets->isChecked(); bool doPlugins = ui->checkBoxPlugins->isChecked(); - QSettings qs(fileName, XmlConfig::XmlFormat); + QSettings settings(fileName, XmlConfig::XmlFormat); if (doGeneral) { - Core::ICore::instance()->saveMainSettings(&qs); + Core::ICore::instance()->saveMainSettings(settings); } if (doAllGadgets) { - Core::ICore::instance()->uavGadgetInstanceManager()->saveSettings(&qs); + Core::ICore::instance()->uavGadgetInstanceManager()->saveSettings(settings); } if (doPlugins) { foreach(Core::IConfigurablePlugin * plugin, getConfigurables()) { - Core::ICore::instance()->saveSettings(plugin, &qs); + Core::ICore::instance()->saveSettings(plugin, settings); } } @@ -183,17 +185,17 @@ void ImportExportGadgetWidget::importConfiguration(const QString & fileName) bool doAllGadgets = ui->checkBoxAllGadgets->isChecked(); bool doPlugins = ui->checkBoxPlugins->isChecked(); - QSettings qs(fileName, XmlConfig::XmlFormat); + QSettings settings(fileName, XmlConfig::XmlFormat); if (doAllGadgets) { - Core::ICore::instance()->uavGadgetInstanceManager()->readSettings(&qs); + Core::ICore::instance()->uavGadgetInstanceManager()->readSettings(settings); } if (doGeneral) { - Core::ICore::instance()->readMainSettings(&qs); + Core::ICore::instance()->readMainSettings(settings); } if (doPlugins) { foreach(Core::IConfigurablePlugin * plugin, getConfigurables()) { - Core::ICore::instance()->readSettings(plugin, &qs); + Core::ICore::instance()->readSettings(plugin, settings); } } diff --git a/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.cpp b/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.cpp index 14c9eccd0..741aa805d 100644 --- a/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.cpp +++ b/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.cpp @@ -26,66 +26,73 @@ */ #include "ipconnectionconfiguration.h" + #include -IPconnectionConfiguration::IPconnectionConfiguration(QString classId, QSettings *qSettings, QObject *parent) : +IPconnectionConfiguration::IPconnectionConfiguration(QString classId, QObject *parent) : IUAVGadgetConfiguration(classId, parent), m_HostName("127.0.0.1"), m_Port(1000), m_UseTCP(1) { - Q_UNUSED(qSettings); +} - settings = Core::ICore::instance()->settings(); +IPconnectionConfiguration::IPconnectionConfiguration(const IPconnectionConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_HostName = obj.m_HostName; + m_Port = obj.m_Port; + m_UseTCP = obj.m_UseTCP; } IPconnectionConfiguration::~IPconnectionConfiguration() {} -IUAVGadgetConfiguration *IPconnectionConfiguration::clone() +IUAVGadgetConfiguration *IPconnectionConfiguration::clone() const { - IPconnectionConfiguration *m = new IPconnectionConfiguration(this->classId()); - - m->m_Port = m_Port; - m->m_HostName = m_HostName; - m->m_UseTCP = m_UseTCP; - return m; + return new IPconnectionConfiguration(*this); } /** * Saves a configuration. * */ -void IPconnectionConfiguration::saveConfig(QSettings *qSettings) const +void IPconnectionConfiguration::saveConfig(QSettings &settings) const { - qSettings->setValue("port", m_Port); - qSettings->setValue("hostName", m_HostName); - qSettings->setValue("useTCP", m_UseTCP); + settings.setValue("port", m_Port); + settings.setValue("hostName", m_HostName); + settings.setValue("useTCP", m_UseTCP); } -void IPconnectionConfiguration::savesettings() const +void IPconnectionConfiguration::saveSettings() const { - settings->beginGroup(QLatin1String("IPconnection")); + QSettings settings; - settings->beginWriteArray("Current"); - settings->setArrayIndex(0); - settings->setValue(QLatin1String("HostName"), m_HostName); - settings->setValue(QLatin1String("Port"), m_Port); - settings->setValue(QLatin1String("UseTCP"), m_UseTCP); - settings->endArray(); - settings->endGroup(); + settings.beginGroup("IPconnection"); + + settings.beginWriteArray("Current"); + settings.setArrayIndex(0); + settings.setValue("HostName", m_HostName); + settings.setValue("Port", m_Port); + settings.setValue("UseTCP", m_UseTCP); + settings.endArray(); + + settings.endGroup(); } -void IPconnectionConfiguration::restoresettings() +void IPconnectionConfiguration::restoreSettings() { - settings->beginGroup(QLatin1String("IPconnection")); + QSettings settings; - settings->beginReadArray("Current"); - settings->setArrayIndex(0); - m_HostName = (settings->value(QLatin1String("HostName"), tr("")).toString()); - m_Port = (settings->value(QLatin1String("Port"), tr("")).toInt()); - m_UseTCP = (settings->value(QLatin1String("UseTCP"), tr("")).toInt()); - settings->endArray(); - settings->endGroup(); + settings.beginGroup("IPconnection"); + + settings.beginReadArray("Current"); + settings.setArrayIndex(0); + m_HostName = settings.value("HostName", "").toString(); + m_Port = settings.value("Port", 0).toInt(); + m_UseTCP = settings.value("UseTCP", 0).toInt(); + settings.endArray(); + + settings.endGroup(); } diff --git a/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.h b/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.h index 63b70c5b4..c0faddfd3 100644 --- a/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.h +++ b/ground/gcs/src/plugins/ipconnection/ipconnectionconfiguration.h @@ -29,8 +29,8 @@ #define IPconnectionCONFIGURATION_H #include -#include -#include + +#include using namespace Core; @@ -40,15 +40,16 @@ class IPconnectionConfiguration : public IUAVGadgetConfiguration { Q_PROPERTY(int UseTCP READ UseTCP WRITE setUseTCP) public: - explicit IPconnectionConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit IPconnectionConfiguration(QString classId, QObject *parent = 0); + explicit IPconnectionConfiguration(const IPconnectionConfiguration &obj); virtual ~IPconnectionConfiguration(); - void saveConfig(QSettings *settings) const; - // void savesettings(QSettings* settings) const; - // void restoresettings(QSettings* settings); - void savesettings() const; - void restoresettings(); - IUAVGadgetConfiguration *clone(); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; + + void saveSettings() const; + void restoreSettings(); QString HostName() const { @@ -63,7 +64,6 @@ public: return m_UseTCP; } - public slots: void setHostName(QString HostName) { @@ -82,7 +82,6 @@ private: QString m_HostName; int m_Port; int m_UseTCP; - QSettings *settings; }; #endif // IPconnectionCONFIGURATION_H diff --git a/ground/gcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp b/ground/gcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp index 751fc3731..26e037a5d 100644 --- a/ground/gcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp +++ b/ground/gcs/src/plugins/ipconnection/ipconnectionoptionspage.cpp @@ -42,8 +42,10 @@ IPconnectionOptionsPage::IPconnectionOptionsPage(IPconnectionConfiguration *conf IOptionsPage(parent), m_config(config) {} + IPconnectionOptionsPage::~IPconnectionOptionsPage() {} + QWidget *IPconnectionOptionsPage::createPage(QWidget *parent) { m_page = new Ui::IPconnectionOptionsPage(); @@ -63,7 +65,7 @@ void IPconnectionOptionsPage::apply() m_config->setPort(m_page->Port->value()); m_config->setHostName(m_page->HostName->text()); m_config->setUseTCP(m_page->UseTCP->isChecked() ? 1 : 0); - m_config->savesettings(); + m_config->saveSettings(); emit availableDevChanged(); } diff --git a/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.cpp b/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.cpp index db1f6ed5b..084a5a696 100644 --- a/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.cpp +++ b/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.cpp @@ -121,8 +121,8 @@ IPconnectionConnection::IPconnectionConnection() { ipSocket = NULL; // create all our objects - m_config = new IPconnectionConfiguration("IP Network Telemetry", NULL, this); - m_config->restoresettings(); + m_config = new IPconnectionConfiguration("IP Network Telemetry", this); + m_config->restoreSettings(); m_optionspage = new IPconnectionOptionsPage(m_config, this); diff --git a/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.h b/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.h index a7fcf4bcf..217d40441 100644 --- a/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.h +++ b/ground/gcs/src/plugins/ipconnection/ipconnectionplugin.h @@ -80,7 +80,6 @@ private: QAbstractSocket *ipSocket; IPconnectionConfiguration *m_config; IPconnectionOptionsPage *m_optionspage; - // QSettings* settings; }; class IPconnection_EXPORT IPconnectionPlugin : public ExtensionSystem::IPlugin { diff --git a/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.cpp b/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.cpp index 7fd74d7ed..e38404c9d 100644 --- a/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.cpp @@ -32,92 +32,78 @@ * Loads a saved configuration or defaults if non exist. * */ -LineardialGadgetConfiguration::LineardialGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - dialFile("Unknown"), - sourceDataObject("Unknown"), - sourceObjectField("Unknown"), - minValue(0), - maxValue(100), - redMin(0), - redMax(33), - yellowMin(33), - yellowMax(66), - greenMin(66), - greenMax(100), - factor(1.00), - decimalPlaces(0), - useOpenGLFlag(false) +LineardialGadgetConfiguration::LineardialGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QString dFile = qSettings->value("dFile").toString(); - dialFile = Utils::InsertDataPath(dFile); - sourceDataObject = qSettings->value("sourceDataObject").toString(); - sourceObjectField = qSettings->value("sourceObjectField").toString(); - minValue = qSettings->value("minValue").toDouble(); - maxValue = qSettings->value("maxValue").toDouble(); - redMin = qSettings->value("redMin").toDouble(); - redMax = qSettings->value("redMax").toDouble(); - yellowMin = qSettings->value("yellowMin").toDouble(); - yellowMax = qSettings->value("yellowMax").toDouble(); - greenMin = qSettings->value("greenMin").toDouble(); - greenMax = qSettings->value("greenMax").toDouble(); - font = qSettings->value("font").toString(); - decimalPlaces = qSettings->value("decimalPlaces").toInt(); - factor = qSettings->value("factor").toDouble(); - useOpenGLFlag = qSettings->value("useOpenGLFlag").toBool(); - } + QString dFile = settings.value("dFile").toString(); + + dialFile = Utils::InsertDataPath(dFile); + sourceDataObject = settings.value("sourceDataObject", "Unknown").toString(); + sourceObjectField = settings.value("sourceObjectField", "Unknown").toString(); + minValue = settings.value("minValue", 0).toDouble(); + maxValue = settings.value("maxValue", 100).toDouble(); + redMin = settings.value("redMin", 0).toDouble(); + redMax = settings.value("redMax", 33).toDouble(); + yellowMin = settings.value("yellowMin", 33).toDouble(); + yellowMax = settings.value("yellowMax", 66).toDouble(); + greenMin = settings.value("greenMin", 66).toDouble(); + greenMax = settings.value("greenMax", 100).toDouble(); + font = settings.value("font").toString(); + decimalPlaces = settings.value("decimalPlaces", 0).toInt(); + factor = settings.value("factor", 1.0).toDouble(); + useOpenGLFlag = settings.value("useOpenGLFlag").toBool(); +} + +LineardialGadgetConfiguration::LineardialGadgetConfiguration(const LineardialGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + dialFile = obj.dialFile; + sourceDataObject = obj.sourceDataObject; + sourceObjectField = obj.sourceObjectField; + minValue = obj.minValue; + maxValue = obj.maxValue; + redMin = obj.redMin; + redMax = obj.redMax; + yellowMin = obj.yellowMin; + yellowMax = obj.yellowMax; + greenMin = obj.greenMin; + greenMax = obj.greenMax; + font = obj.font; + decimalPlaces = obj.decimalPlaces; + factor = obj.factor; + useOpenGLFlag = obj.useOpenGLFlag; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *LineardialGadgetConfiguration::clone() +IUAVGadgetConfiguration *LineardialGadgetConfiguration::clone() const { - LineardialGadgetConfiguration *m = new LineardialGadgetConfiguration(this->classId()); - - m->dialFile = dialFile; - m->sourceDataObject = sourceDataObject; - m->sourceObjectField = sourceObjectField; - m->minValue = minValue; - m->maxValue = maxValue; - m->redMin = redMin; - m->redMax = redMax; - m->yellowMin = yellowMin; - m->yellowMax = yellowMax; - m->greenMin = greenMin; - m->greenMax = greenMax; - m->font = font; - m->decimalPlaces = decimalPlaces; - m->factor = factor; - m->useOpenGLFlag = useOpenGLFlag; - - return m; + return new LineardialGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void LineardialGadgetConfiguration::saveConfig(QSettings *qSettings) const +void LineardialGadgetConfiguration::saveConfig(QSettings &settings) const { QString dFile = Utils::RemoveDataPath(dialFile); - qSettings->setValue("dFile", dFile); - qSettings->setValue("sourceDataObject", sourceDataObject); - qSettings->setValue("sourceObjectField", sourceObjectField); - qSettings->setValue("minValue", minValue); - qSettings->setValue("maxValue", maxValue); - qSettings->setValue("redMin", redMin); - qSettings->setValue("redMax", redMax); - qSettings->setValue("yellowMin", yellowMin); - qSettings->setValue("yellowMax", yellowMax); - qSettings->setValue("greenMin", greenMin); - qSettings->setValue("greenMax", greenMax); - qSettings->setValue("font", font); - qSettings->setValue("decimalPlaces", decimalPlaces); - qSettings->setValue("factor", factor); - qSettings->setValue("useOpenGLFlag", useOpenGLFlag); + settings.setValue("dFile", dFile); + settings.setValue("sourceDataObject", sourceDataObject); + settings.setValue("sourceObjectField", sourceObjectField); + settings.setValue("minValue", minValue); + settings.setValue("maxValue", maxValue); + settings.setValue("redMin", redMin); + settings.setValue("redMax", redMax); + settings.setValue("yellowMin", yellowMin); + settings.setValue("yellowMax", yellowMax); + settings.setValue("greenMin", greenMin); + settings.setValue("greenMax", greenMax); + settings.setValue("font", font); + settings.setValue("decimalPlaces", decimalPlaces); + settings.setValue("factor", factor); + settings.setValue("useOpenGLFlag", useOpenGLFlag); } diff --git a/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.h b/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.h index ae1c8b564..41dba0a47 100644 --- a/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.h +++ b/ground/gcs/src/plugins/lineardial/lineardialgadgetconfiguration.h @@ -38,7 +38,11 @@ using namespace Core; class LineardialGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit LineardialGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit LineardialGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit LineardialGadgetConfiguration(const LineardialGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; // set dial configuration functions void setDialFile(QString filename) @@ -61,12 +65,10 @@ public: { redMin = min; redMax = max; } - void setFont(QString text) { font = text; } - void setFactor(double val) { factor = val; @@ -75,7 +77,6 @@ public: { decimalPlaces = val; } - void setSourceDataObject(QString text) { sourceDataObject = text; @@ -84,7 +85,6 @@ public: { sourceObjectField = text; } - void setUseOpenGL(bool flag) { useOpenGLFlag = flag; @@ -152,9 +152,6 @@ public: return useOpenGLFlag; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: // A linear or "bargraph" dial contains: // * A SVG background file diff --git a/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.cpp b/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.cpp index 4d2e27827..088e8ad5a 100644 --- a/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.cpp +++ b/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.cpp @@ -47,9 +47,9 @@ Core::IUAVGadget *LineardialGadgetFactory::createGadget(QWidget *parent) return new LineardialGadget(QString("LineardialGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *LineardialGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *LineardialGadgetFactory::createConfiguration(QSettings &settings) { - return new LineardialGadgetConfiguration(QString("LineardialGadget"), qSettings); + return new LineardialGadgetConfiguration(QString("LineardialGadget"), settings); } IOptionsPage *LineardialGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.h b/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.h index 7eeecb307..32ec9773a 100644 --- a/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.h +++ b/ground/gcs/src/plugins/lineardial/lineardialgadgetfactory.h @@ -44,7 +44,7 @@ public: ~LineardialGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/notify/notificationitem.cpp b/ground/gcs/src/plugins/notify/notificationitem.cpp index 687de55ce..4d47c7b2a 100644 --- a/ground/gcs/src/plugins/notify/notificationitem.cpp +++ b/ground/gcs/src/plugins/notify/notificationitem.cpp @@ -104,42 +104,42 @@ void NotificationItem::copyTo(NotificationItem *that) const } -void NotificationItem::saveState(QSettings *settings) const +void NotificationItem::saveState(QSettings &settings) const { - settings->setValue("SoundCollectionPath", Utils::RemoveDataPath(getSoundCollectionPath())); - settings->setValue(QLatin1String("CurrentLanguage"), getCurrentLanguage()); - settings->setValue(QLatin1String("ObjectField"), getObjectField()); - settings->setValue(QLatin1String("DataObject"), getDataObject()); - settings->setValue(QLatin1String("RangeLimit"), getCondition()); - settings->setValue(QLatin1String("Value1"), singleValue()); - settings->setValue(QLatin1String("Value2"), valueRange2()); - settings->setValue(QLatin1String("Sound1"), getSound1()); - settings->setValue(QLatin1String("Sound2"), getSound2()); - settings->setValue(QLatin1String("Sound3"), getSound3()); - settings->setValue(QLatin1String("SayOrder"), getSayOrder()); - settings->setValue(QLatin1String("Repeat"), retryValue()); - settings->setValue(QLatin1String("ExpireTimeout"), lifetime()); - settings->setValue(QLatin1String("Mute"), mute()); + settings.setValue("SoundCollectionPath", Utils::RemoveDataPath(getSoundCollectionPath())); + settings.setValue(QLatin1String("CurrentLanguage"), getCurrentLanguage()); + settings.setValue(QLatin1String("ObjectField"), getObjectField()); + settings.setValue(QLatin1String("DataObject"), getDataObject()); + settings.setValue(QLatin1String("RangeLimit"), getCondition()); + settings.setValue(QLatin1String("Value1"), singleValue()); + settings.setValue(QLatin1String("Value2"), valueRange2()); + settings.setValue(QLatin1String("Sound1"), getSound1()); + settings.setValue(QLatin1String("Sound2"), getSound2()); + settings.setValue(QLatin1String("Sound3"), getSound3()); + settings.setValue(QLatin1String("SayOrder"), getSayOrder()); + settings.setValue(QLatin1String("Repeat"), retryValue()); + settings.setValue(QLatin1String("ExpireTimeout"), lifetime()); + settings.setValue(QLatin1String("Mute"), mute()); } -void NotificationItem::restoreState(QSettings *settings) +void NotificationItem::restoreState(QSettings &settings) { // settings = Core::ICore::instance()->settings(); - setSoundCollectionPath(Utils::InsertDataPath(settings->value(QLatin1String("SoundCollectionPath"), tr("")).toString())); - setCurrentLanguage(settings->value(QLatin1String("CurrentLanguage"), tr("")).toString()); - setDataObject(settings->value(QLatin1String("DataObject"), tr("")).toString()); - setObjectField(settings->value(QLatin1String("ObjectField"), tr("")).toString()); - setCondition(settings->value(QLatin1String("RangeLimit"), tr("")).toInt()); - setSound1(settings->value(QLatin1String("Sound1"), tr("")).toString()); - setSound2(settings->value(QLatin1String("Sound2"), tr("")).toString()); - setSound3(settings->value(QLatin1String("Sound3"), tr("")).toString()); - setSayOrder(settings->value(QLatin1String("SayOrder"), tr("")).toInt()); - QVariant value = settings->value(QLatin1String("Value1"), tr("")); + setSoundCollectionPath(Utils::InsertDataPath(settings.value(QLatin1String("SoundCollectionPath"), tr("")).toString())); + setCurrentLanguage(settings.value(QLatin1String("CurrentLanguage"), tr("")).toString()); + setDataObject(settings.value(QLatin1String("DataObject"), tr("")).toString()); + setObjectField(settings.value(QLatin1String("ObjectField"), tr("")).toString()); + setCondition(settings.value(QLatin1String("RangeLimit"), tr("")).toInt()); + setSound1(settings.value(QLatin1String("Sound1"), tr("")).toString()); + setSound2(settings.value(QLatin1String("Sound2"), tr("")).toString()); + setSound3(settings.value(QLatin1String("Sound3"), tr("")).toString()); + setSayOrder(settings.value(QLatin1String("SayOrder"), tr("")).toInt()); + QVariant value = settings.value(QLatin1String("Value1"), tr("")); setSingleValue(value); - setValueRange2(settings->value(QLatin1String("Value2"), tr("")).toDouble()); - setRetryValue(settings->value(QLatin1String("Repeat"), tr("")).toInt()); - setLifetime(settings->value(QLatin1String("ExpireTimeout"), tr("")).toInt()); - setMute(settings->value(QLatin1String("Mute"), tr("")).toInt()); + setValueRange2(settings.value(QLatin1String("Value2"), tr("")).toDouble()); + setRetryValue(settings.value(QLatin1String("Repeat"), tr("")).toInt()); + setLifetime(settings.value(QLatin1String("ExpireTimeout"), tr("")).toInt()); + setMute(settings.value(QLatin1String("Mute"), tr("")).toInt()); } void NotificationItem::serialize(QDataStream & stream) @@ -149,7 +149,7 @@ void NotificationItem::serialize(QDataStream & stream) stream << this->_dataObject; stream << this->_objectField; stream << this->_condition; - qNotifyDebug() << "getOptionsPageValues seriaize" << _condition; + qNotifyDebug() << "getOptionsPageValues serialize" << _condition; stream << this->_sound1; stream << this->_sound2; stream << this->_sound3; diff --git a/ground/gcs/src/plugins/notify/notificationitem.h b/ground/gcs/src/plugins/notify/notificationitem.h index c90b9c894..4c064fd42 100644 --- a/ground/gcs/src/plugins/notify/notificationitem.h +++ b/ground/gcs/src/plugins/notify/notificationitem.h @@ -177,9 +177,8 @@ public: _mute = value; } - void saveState(QSettings *settings) const; - void restoreState(QSettings *settings); - + void saveState(QSettings &settings) const; + void restoreState(QSettings &settings); UAVDataObject *getUAVObject(void); UAVObjectField *getUAVObjectField(void); @@ -208,7 +207,7 @@ public: * Returns sound caption name, needed to create string representation of notification. * * @return success - string == , if sound file exists - * error - string == [missind], if sound file doesn't exist + * error - string == [missing], if sound file doesn't exist */ QString getSoundCaption(QString fileName); diff --git a/ground/gcs/src/plugins/notify/notifyplugin.cpp b/ground/gcs/src/plugins/notify/notifyplugin.cpp index 56620a7b0..5119d83ca 100644 --- a/ground/gcs/src/plugins/notify/notifyplugin.cpp +++ b/ground/gcs/src/plugins/notify/notifyplugin.cpp @@ -81,48 +81,48 @@ void SoundNotifyPlugin::extensionsInitialized() connectNotifications(); } -void SoundNotifyPlugin::saveConfig(QSettings *settings, UAVConfigInfo *configInfo) +void SoundNotifyPlugin::saveConfig(QSettings &settings, UAVConfigInfo *configInfo) const { configInfo->setVersion(VERSION); - settings->beginWriteArray("Current"); - settings->setArrayIndex(0); + settings.beginWriteArray("Current"); + settings.setArrayIndex(0); currentNotification.saveState(settings); - settings->endArray(); + settings.endArray(); - settings->beginGroup("listNotifies"); - settings->remove(""); - settings->endGroup(); + settings.beginGroup("listNotifies"); + settings.remove(""); + settings.endGroup(); - settings->beginWriteArray("listNotifies"); + settings.beginWriteArray("listNotifies"); for (int i = 0; i < _notificationList.size(); i++) { - settings->setArrayIndex(i); + settings.setArrayIndex(i); _notificationList.at(i)->saveState(settings); } - settings->endArray(); - settings->setValue(QLatin1String("EnableSound"), enableSound); + settings.endArray(); + settings.setValue(QLatin1String("EnableSound"), enableSound); } -void SoundNotifyPlugin::readConfig(QSettings *settings, UAVConfigInfo * /* configInfo */) +void SoundNotifyPlugin::readConfig(QSettings &settings, UAVConfigInfo * /* configInfo */) { // Just for migration to the new format. // Q_ASSERT(configInfo->version() == UAVConfigVersion()); - settings->beginReadArray("Current"); - settings->setArrayIndex(0); + settings.beginReadArray("Current"); + settings.setArrayIndex(0); currentNotification.restoreState(settings); - settings->endArray(); + settings.endArray(); // read list of notifications from settings - int size = settings->beginReadArray("listNotifies"); + int size = settings.beginReadArray("listNotifies"); for (int i = 0; i < size; ++i) { - settings->setArrayIndex(i); + settings.setArrayIndex(i); NotificationItem *notification = new NotificationItem; notification->restoreState(settings); _notificationList.append(notification); } - settings->endArray(); - setEnableSound(settings->value(QLatin1String("EnableSound"), 0).toBool()); + settings.endArray(); + setEnableSound(settings.value(QLatin1String("EnableSound"), 0).toBool()); } void SoundNotifyPlugin::onTelemetryManagerAdded(QObject *obj) diff --git a/ground/gcs/src/plugins/notify/notifyplugin.h b/ground/gcs/src/plugins/notify/notifyplugin.h index 8c912fddd..c071944c4 100644 --- a/ground/gcs/src/plugins/notify/notifyplugin.h +++ b/ground/gcs/src/plugins/notify/notifyplugin.h @@ -56,8 +56,8 @@ public: void extensionsInitialized(); bool initialize(const QStringList & arguments, QString *errorString); - void readConfig(QSettings *qSettings, Core::UAVConfigInfo *configInfo); - void saveConfig(QSettings *qSettings, Core::UAVConfigInfo *configInfo); + void readConfig(QSettings &settings, Core::UAVConfigInfo *configInfo); + void saveConfig(QSettings &settings, Core::UAVConfigInfo *configInfo) const; void shutdown(); diff --git a/ground/gcs/src/plugins/notify/notifypluginoptionspage.cpp b/ground/gcs/src/plugins/notify/notifypluginoptionspage.cpp index e3c1434dd..1ac488daa 100644 --- a/ground/gcs/src/plugins/notify/notifypluginoptionspage.cpp +++ b/ground/gcs/src/plugins/notify/notifypluginoptionspage.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include diff --git a/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.cpp b/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.cpp index 29ca37516..724bd513b 100644 --- a/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.cpp @@ -29,112 +29,80 @@ #include "utils/pathutils.h" #include -OPMapGadgetConfiguration::OPMapGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_mapProvider("GoogleHybrid"), - m_defaultZoom(2), - m_defaultLatitude(0), - m_defaultLongitude(0), - m_useOpenGL(false), - m_showTileGridLines(false), - m_accessMode("ServerAndCache"), - m_useMemoryCache(true), - m_cacheLocation(Utils::GetStoragePath() + "mapscache" + QDir::separator()), - m_uavSymbol(QString::fromUtf8(":/uavs/images/mapquad.png")), - m_maxUpdateRate(2000), // ms - m_settings(qSettings), - m_opacity(1), - m_defaultWaypointAltitude(15), - m_defaultWaypointVelocity(2) +OPMapGadgetConfiguration::OPMapGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QString mapProvider = qSettings->value("mapProvider").toString(); - int zoom = qSettings->value("defaultZoom").toInt(); - double latitude = qSettings->value("defaultLatitude").toDouble(); - double longitude = qSettings->value("defaultLongitude").toDouble(); - bool useOpenGL = qSettings->value("useOpenGL").toBool(); - bool showTileGridLines = qSettings->value("showTileGridLines").toBool(); - QString accessMode = qSettings->value("accessMode").toString(); - bool useMemoryCache = qSettings->value("useMemoryCache").toBool(); - QString cacheLocation = qSettings->value("cacheLocation").toString(); - QString uavSymbol = qSettings->value("uavSymbol").toString(); - int max_update_rate = qSettings->value("maxUpdateRate").toInt(); - m_defaultWaypointAltitude = qSettings->value("defaultWaypointAltitude", 15).toReal(); - m_defaultWaypointVelocity = qSettings->value("defaultWaypointVelocity", 2).toReal(); - m_opacity = qSettings->value("overlayOpacity", 1).toReal(); + m_defaultWaypointAltitude = settings.value("defaultWaypointAltitude", 15).toReal(); + m_defaultWaypointVelocity = settings.value("defaultWaypointVelocity", 2).toReal(); + m_opacity = settings.value("overlayOpacity", 1).toReal(); - if (!mapProvider.isEmpty()) { - m_mapProvider = mapProvider; - } - m_defaultZoom = zoom; - m_defaultLatitude = latitude; - m_defaultLongitude = longitude; - m_useOpenGL = useOpenGL; - m_showTileGridLines = showTileGridLines; - m_uavSymbol = uavSymbol; + m_mapProvider = settings.value("mapProvider", "GoogleHybrid").toString(); + m_defaultZoom = settings.value("defaultZoom", 2).toInt(); + m_defaultLatitude = settings.value("defaultLatitude").toDouble(); + m_defaultLongitude = settings.value("defaultLongitude").toDouble(); + m_useOpenGL = settings.value("useOpenGL").toBool(); + m_showTileGridLines = settings.value("showTileGridLines").toBool(); + m_uavSymbol = settings.value("uavSymbol", QString::fromUtf8(":/uavs/images/mapquad.png")).toString(); - m_maxUpdateRate = max_update_rate; - if (m_maxUpdateRate < 100 || m_maxUpdateRate > 5000) { - m_maxUpdateRate = 2000; - } - - if (!accessMode.isEmpty()) { - m_accessMode = accessMode; - } - m_useMemoryCache = useMemoryCache; - if (!cacheLocation.isEmpty()) { - m_cacheLocation = Utils::InsertStoragePath(cacheLocation); - } + m_maxUpdateRate = settings.value("maxUpdateRate", 2000).toInt(); + if (m_maxUpdateRate < 100 || m_maxUpdateRate > 5000) { + m_maxUpdateRate = 2000; } + + m_accessMode = settings.value("accessMode", "ServerAndCache").toString(); + m_useMemoryCache = settings.value("useMemoryCache").toBool(); + m_cacheLocation = settings.value("cacheLocation", Utils::GetStoragePath() + "mapscache" + QDir::separator()).toString(); + m_cacheLocation = Utils::InsertStoragePath(m_cacheLocation); } -IUAVGadgetConfiguration *OPMapGadgetConfiguration::clone() +OPMapGadgetConfiguration::OPMapGadgetConfiguration(const OPMapGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) { - OPMapGadgetConfiguration *m = new OPMapGadgetConfiguration(this->classId()); - - m->m_mapProvider = m_mapProvider; - m->m_defaultZoom = m_defaultZoom; - m->m_defaultLatitude = m_defaultLatitude; - m->m_defaultLongitude = m_defaultLongitude; - m->m_useOpenGL = m_useOpenGL; - m->m_showTileGridLines = m_showTileGridLines; - m->m_accessMode = m_accessMode; - m->m_useMemoryCache = m_useMemoryCache; - m->m_cacheLocation = m_cacheLocation; - m->m_uavSymbol = m_uavSymbol; - m->m_maxUpdateRate = m_maxUpdateRate; - m->m_opacity = m_opacity; - m->m_defaultWaypointAltitude = m_defaultWaypointAltitude; - m->m_defaultWaypointVelocity = m_defaultWaypointVelocity; - - return m; + m_mapProvider = obj.m_mapProvider; + m_defaultZoom = obj.m_defaultZoom; + m_defaultLatitude = obj.m_defaultLatitude; + m_defaultLongitude = obj.m_defaultLongitude; + m_useOpenGL = obj.m_useOpenGL; + m_showTileGridLines = obj.m_showTileGridLines; + m_accessMode = obj.m_accessMode; + m_useMemoryCache = obj.m_useMemoryCache; + m_cacheLocation = obj.m_cacheLocation; + m_uavSymbol = obj.m_uavSymbol; + m_maxUpdateRate = obj.m_maxUpdateRate; + m_opacity = obj.m_opacity; + m_defaultWaypointAltitude = obj.m_defaultWaypointAltitude; + m_defaultWaypointVelocity = obj.m_defaultWaypointVelocity; } + +IUAVGadgetConfiguration *OPMapGadgetConfiguration::clone() const +{ + return new OPMapGadgetConfiguration(*this); +} + void OPMapGadgetConfiguration::save() const { - if (!m_settings) { - return; - } + QSettings settings; - saveConfig(m_settings); + saveConfig(settings); } -void OPMapGadgetConfiguration::saveConfig(QSettings *qSettings) const -{ - qSettings->setValue("mapProvider", m_mapProvider); - qSettings->setValue("defaultZoom", m_defaultZoom); - qSettings->setValue("defaultLatitude", m_defaultLatitude); - qSettings->setValue("defaultLongitude", m_defaultLongitude); - qSettings->setValue("useOpenGL", m_useOpenGL); - qSettings->setValue("showTileGridLines", m_showTileGridLines); - qSettings->setValue("accessMode", m_accessMode); - qSettings->setValue("useMemoryCache", m_useMemoryCache); - qSettings->setValue("uavSymbol", m_uavSymbol); - qSettings->setValue("cacheLocation", Utils::RemoveStoragePath(m_cacheLocation)); - qSettings->setValue("maxUpdateRate", m_maxUpdateRate); - qSettings->setValue("overlayOpacity", m_opacity); - qSettings->setValue("defaultWaypointAltitude", m_defaultWaypointAltitude); - qSettings->setValue("defaultWaypointVelocity", m_defaultWaypointVelocity); +void OPMapGadgetConfiguration::saveConfig(QSettings &settings) const +{ + settings.setValue("mapProvider", m_mapProvider); + settings.setValue("defaultZoom", m_defaultZoom); + settings.setValue("defaultLatitude", m_defaultLatitude); + settings.setValue("defaultLongitude", m_defaultLongitude); + settings.setValue("useOpenGL", m_useOpenGL); + settings.setValue("showTileGridLines", m_showTileGridLines); + settings.setValue("accessMode", m_accessMode); + settings.setValue("useMemoryCache", m_useMemoryCache); + settings.setValue("uavSymbol", m_uavSymbol); + settings.setValue("cacheLocation", Utils::RemoveStoragePath(m_cacheLocation)); + settings.setValue("maxUpdateRate", m_maxUpdateRate); + settings.setValue("overlayOpacity", m_opacity); + + settings.setValue("defaultWaypointAltitude", m_defaultWaypointAltitude); + settings.setValue("defaultWaypointVelocity", m_defaultWaypointVelocity); } void OPMapGadgetConfiguration::setCacheLocation(QString cacheLocation) { diff --git a/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.h b/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.h index d1634538e..6c8206e53 100644 --- a/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.h +++ b/ground/gcs/src/plugins/opmap/opmapgadgetconfiguration.h @@ -29,7 +29,8 @@ #define OPMAP_GADGETCONFIGURATION_H #include -#include + +#include using namespace Core; @@ -50,10 +51,13 @@ class OPMapGadgetConfiguration : public IUAVGadgetConfiguration { Q_PROPERTY(qreal defaultWaypointVelocity READ defaultWaypointVelocity WRITE setDefaultWaypointVelocity) public: - explicit OPMapGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit OPMapGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit OPMapGadgetConfiguration(const OPMapGadgetConfiguration &obj); - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; + + void save() const; QString mapProvider() const { @@ -114,7 +118,6 @@ public: return m_defaultWaypointVelocity; } - void save() const; public slots: void setMapProvider(QString provider) { @@ -184,7 +187,6 @@ private: QString m_cacheLocation; QString m_uavSymbol; int m_maxUpdateRate; - QSettings *m_settings; qreal m_opacity; qreal m_defaultWaypointAltitude; qreal m_defaultWaypointVelocity; diff --git a/ground/gcs/src/plugins/opmap/opmapgadgetfactory.cpp b/ground/gcs/src/plugins/opmap/opmapgadgetfactory.cpp index 111cef2cd..bc087a078 100644 --- a/ground/gcs/src/plugins/opmap/opmapgadgetfactory.cpp +++ b/ground/gcs/src/plugins/opmap/opmapgadgetfactory.cpp @@ -45,9 +45,9 @@ Core::IUAVGadget *OPMapGadgetFactory::createGadget(QWidget *parent) return new OPMapGadget(QString("OPMapGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *OPMapGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *OPMapGadgetFactory::createConfiguration(QSettings &settings) { - return new OPMapGadgetConfiguration(QString("OPMapGadget"), qSettings); + return new OPMapGadgetConfiguration(QString("OPMapGadget"), settings); } IOptionsPage *OPMapGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/opmap/opmapgadgetfactory.h b/ground/gcs/src/plugins/opmap/opmapgadgetfactory.h index 9cfccc008..32815f918 100644 --- a/ground/gcs/src/plugins/opmap/opmapgadgetfactory.h +++ b/ground/gcs/src/plugins/opmap/opmapgadgetfactory.h @@ -45,7 +45,7 @@ public: ~OPMapGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.cpp b/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.cpp index 22aa9bf81..0e7a4b9fb 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.cpp +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.cpp @@ -310,14 +310,14 @@ void PfdQmlContext::loadConfiguration(PfdQmlGadgetConfiguration *config) } -void PfdQmlContext::saveState(QSettings *settings) +void PfdQmlContext::saveState(QSettings &settings) { - settings->setValue("modelFile", modelFile()); + settings.setValue("modelFile", modelFile()); } -void PfdQmlContext::restoreState(QSettings *settings) +void PfdQmlContext::restoreState(QSettings &settings) { - QString file = settings->value("modelFile").toString(); + QString file = settings.value("modelFile").toString(); if (!file.isEmpty()) { setModelFile(file); diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.h b/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.h index ca0e88730..96afaf98d 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.h +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlcontext.h @@ -105,8 +105,8 @@ public: Q_INVOKABLE void resetConsumedEnergy(); void loadConfiguration(PfdQmlGadgetConfiguration *config); - void saveState(QSettings *); - void restoreState(QSettings *); + void saveState(QSettings &); + void restoreState(QSettings &); void apply(QQmlContext *context); diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.cpp b/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.cpp index 176641260..872b8bf05 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.cpp +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.cpp @@ -52,12 +52,12 @@ void PfdQmlGadget::loadConfiguration(IUAVGadgetConfiguration *config) m_qmlGadgetWidget->loadConfiguration(m); } -void PfdQmlGadget::saveState(QSettings *settings) +void PfdQmlGadget::saveState(QSettings &settings) { m_qmlGadgetWidget->saveState(settings); } -void PfdQmlGadget::restoreState(QSettings *settings) +void PfdQmlGadget::restoreState(QSettings &settings) { m_qmlGadgetWidget->restoreState(settings); } diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.h b/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.h index 812d17547..6b41f0510 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.h +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadget.h @@ -46,8 +46,8 @@ public: QWidget *widget(); void loadConfiguration(IUAVGadgetConfiguration *config); - void saveState(QSettings *); - void restoreState(QSettings *); + void saveState(QSettings &); + void restoreState(QSettings &); private: PfdQmlGadgetWidget *m_qmlGadgetWidget; diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.cpp b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.cpp index f6df1b985..ca24f28f7 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.cpp @@ -32,24 +32,8 @@ * Loads a saved configuration or defaults if non exist. * */ -PfdQmlGadgetConfiguration::PfdQmlGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_qmlFile("Unknown"), - m_speedFactor(1.0), - m_altitudeFactor(1.0), - m_terrainEnabled(false), - m_terrainFile("Unknown"), - m_cacheOnly(false), - m_latitude(0), - m_longitude(0), - m_altitude(0), - m_timeMode(TimeMode::Local), - m_dateTime(QDateTime()), - m_minAmbientLight(0), - m_modelEnabled(false), - m_modelFile("Unknown"), - m_modelSelectionMode(ModelSelectionMode::Auto), - m_backgroundImageFile("Unknown") +PfdQmlGadgetConfiguration::PfdQmlGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { m_speedMap[1.0] = "m/s"; m_speedMap[3.6] = "km/h"; @@ -59,114 +43,113 @@ PfdQmlGadgetConfiguration::PfdQmlGadgetConfiguration(QString classId, QSettings m_altitudeMap[1.0] = "m"; m_altitudeMap[3.2808] = "ft"; - // if a saved configuration exists load it - if (qSettings != 0) { - m_qmlFile = qSettings->value("qmlFile").toString(); - m_qmlFile = Utils::InsertDataPath(m_qmlFile); + m_qmlFile = settings.value("qmlFile", "Unknown").toString(); + m_qmlFile = Utils::InsertDataPath(m_qmlFile); - m_speedFactor = qSettings->value("speedFactor").toDouble(); - m_altitudeFactor = qSettings->value("altitudeFactor").toDouble(); + m_speedFactor = settings.value("speedFactor", 1.0).toDouble(); + m_altitudeFactor = settings.value("altitudeFactor", 1.0).toDouble(); - // terrain - m_terrainEnabled = qSettings->value("terrainEnabled").toBool(); - m_terrainFile = qSettings->value("earthFile").toString(); - m_terrainFile = Utils::InsertDataPath(m_terrainFile); - m_cacheOnly = qSettings->value("cacheOnly").toBool(); + // terrain + m_terrainEnabled = settings.value("terrainEnabled", false).toBool(); + m_terrainFile = settings.value("earthFile", "Unknown").toString(); + m_terrainFile = Utils::InsertDataPath(m_terrainFile); + m_cacheOnly = settings.value("cacheOnly", false).toBool(); - m_latitude = qSettings->value("latitude").toDouble(); - m_longitude = qSettings->value("longitude").toDouble(); - m_altitude = qSettings->value("altitude").toDouble(); + m_latitude = settings.value("latitude").toDouble(); + m_longitude = settings.value("longitude").toDouble(); + m_altitude = settings.value("altitude").toDouble(); - // sky - m_timeMode = static_cast(qSettings->value("timeMode").toUInt()); - m_dateTime = qSettings->value("dateTime").toDateTime(); - m_minAmbientLight = qSettings->value("minAmbientLight").toDouble(); + // sky + m_timeMode = static_cast(settings.value("timeMode", TimeMode::Local).toUInt()); + m_dateTime = settings.value("dateTime", QDateTime()).toDateTime(); + m_minAmbientLight = settings.value("minAmbientLight").toDouble(); - // model - m_modelEnabled = qSettings->value("modelEnabled").toBool(); - m_modelSelectionMode = static_cast(qSettings->value("modelSelectionMode").toUInt()); - m_modelFile = qSettings->value("modelFile").toString(); - m_modelFile = Utils::InsertDataPath(m_modelFile); + // model + m_modelEnabled = settings.value("modelEnabled").toBool(); + m_modelSelectionMode = static_cast(settings.value("modelSelectionMode", ModelSelectionMode::Auto).toUInt()); + m_modelFile = settings.value("modelFile", "Unknown").toString(); + m_modelFile = Utils::InsertDataPath(m_modelFile); - // background image - m_backgroundImageFile = qSettings->value("backgroundImageFile").toString(); - m_backgroundImageFile = Utils::InsertDataPath(m_backgroundImageFile); - } + // background image + m_backgroundImageFile = settings.value("backgroundImageFile", "Unknown").toString(); + m_backgroundImageFile = Utils::InsertDataPath(m_backgroundImageFile); +} + +PfdQmlGadgetConfiguration::PfdQmlGadgetConfiguration(const PfdQmlGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_qmlFile = obj.m_qmlFile; + + m_speedFactor = obj.m_speedFactor; + m_altitudeFactor = obj.m_altitudeFactor; + + // terrain + m_terrainEnabled = obj.m_terrainEnabled; + m_terrainFile = obj.m_terrainFile; + m_cacheOnly = obj.m_cacheOnly; + + m_latitude = obj.m_latitude; + m_longitude = obj.m_longitude; + m_altitude = obj.m_altitude; + + // sky + m_timeMode = obj.m_timeMode; + m_dateTime = obj.m_dateTime; + m_minAmbientLight = obj.m_minAmbientLight; + + // model + m_modelEnabled = obj.m_modelEnabled; + m_modelSelectionMode = obj.m_modelSelectionMode; + m_modelFile = obj.m_modelFile; + + // background image + m_backgroundImageFile = obj.m_backgroundImageFile; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *PfdQmlGadgetConfiguration::clone() +IUAVGadgetConfiguration *PfdQmlGadgetConfiguration::clone() const { - PfdQmlGadgetConfiguration *m = new PfdQmlGadgetConfiguration(this->classId()); - - m->m_qmlFile = m_qmlFile; - - m->m_speedFactor = m_speedFactor; - m->m_altitudeFactor = m_altitudeFactor; - - // terrain - m->m_terrainEnabled = m_terrainEnabled; - m->m_terrainFile = m_terrainFile; - m->m_cacheOnly = m_cacheOnly; - - m->m_latitude = m_latitude; - m->m_longitude = m_longitude; - m->m_altitude = m_altitude; - - // sky - m->m_timeMode = m_timeMode; - m->m_dateTime = m_dateTime; - m->m_minAmbientLight = m_minAmbientLight; - - // model - m->m_modelEnabled = m_modelEnabled; - m->m_modelSelectionMode = m_modelSelectionMode; - m->m_modelFile = m_modelFile; - - // background image - m->m_backgroundImageFile = m_backgroundImageFile; - - return m; + return new PfdQmlGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void PfdQmlGadgetConfiguration::saveConfig(QSettings *qSettings) const +void PfdQmlGadgetConfiguration::saveConfig(QSettings &settings) const { QString qmlFile = Utils::RemoveDataPath(m_qmlFile); - qSettings->setValue("qmlFile", qmlFile); + settings.setValue("qmlFile", qmlFile); - qSettings->setValue("speedFactor", m_speedFactor); - qSettings->setValue("altitudeFactor", m_altitudeFactor); + settings.setValue("speedFactor", m_speedFactor); + settings.setValue("altitudeFactor", m_altitudeFactor); // terrain - qSettings->setValue("terrainEnabled", m_terrainEnabled); + settings.setValue("terrainEnabled", m_terrainEnabled); QString terrainFile = Utils::RemoveDataPath(m_terrainFile); - qSettings->setValue("earthFile", terrainFile); - qSettings->setValue("cacheOnly", m_cacheOnly); + settings.setValue("earthFile", terrainFile); + settings.setValue("cacheOnly", m_cacheOnly); - qSettings->setValue("latitude", m_latitude); - qSettings->setValue("longitude", m_longitude); - qSettings->setValue("altitude", m_altitude); + settings.setValue("latitude", m_latitude); + settings.setValue("longitude", m_longitude); + settings.setValue("altitude", m_altitude); // sky - qSettings->setValue("timeMode", static_cast(m_timeMode)); - qSettings->setValue("dateTime", m_dateTime); - qSettings->setValue("minAmbientLight", m_minAmbientLight); + settings.setValue("timeMode", static_cast(m_timeMode)); + settings.setValue("dateTime", m_dateTime); + settings.setValue("minAmbientLight", m_minAmbientLight); // model - qSettings->setValue("modelEnabled", m_modelEnabled); - qSettings->setValue("modelSelectionMode", static_cast(m_modelSelectionMode)); + settings.setValue("modelEnabled", m_modelEnabled); + settings.setValue("modelSelectionMode", static_cast(m_modelSelectionMode)); QString modelFile = Utils::RemoveDataPath(m_modelFile); - qSettings->setValue("modelFile", modelFile); + settings.setValue("modelFile", modelFile); // background image QString backgroundImageFile = Utils::RemoveDataPath(m_backgroundImageFile); - qSettings->setValue("backgroundImageFile", backgroundImageFile); + settings.setValue("backgroundImageFile", backgroundImageFile); } diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.h b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.h index 9bcdc42a5..538f36acf 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.h +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetconfiguration.h @@ -39,7 +39,11 @@ using namespace Core; class PfdQmlGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit PfdQmlGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit PfdQmlGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit PfdQmlGadgetConfiguration(const PfdQmlGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; QString qmlFile() const { @@ -206,9 +210,6 @@ public: return QMapIterator(m_altitudeMap); } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: QString m_qmlFile; // The name of the dial's SVG source file diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.cpp b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.cpp index 67ad3b2be..d6f0fdbec 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.cpp +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.cpp @@ -45,9 +45,9 @@ Core::IUAVGadget *PfdQmlGadgetFactory::createGadget(QWidget *parent) return new PfdQmlGadget(QString("PfdQmlGadget"), parent); } -IUAVGadgetConfiguration *PfdQmlGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *PfdQmlGadgetFactory::createConfiguration(QSettings &settings) { - return new PfdQmlGadgetConfiguration(QString("PfdQmlGadget"), qSettings); + return new PfdQmlGadgetConfiguration(QString("PfdQmlGadget"), settings); } IOptionsPage *PfdQmlGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.h b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.h index d7bd061a3..f5d2466c9 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.h +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetfactory.h @@ -44,7 +44,7 @@ public: ~PfdQmlGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp index 6084c5610..11c75313c 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.cpp @@ -93,12 +93,12 @@ void PfdQmlGadgetWidget::loadConfiguration(PfdQmlGadgetConfiguration *config) setQmlFile(config->qmlFile()); } -void PfdQmlGadgetWidget::saveState(QSettings *settings) +void PfdQmlGadgetWidget::saveState(QSettings &settings) { m_pfdQmlContext->saveState(settings); } -void PfdQmlGadgetWidget::restoreState(QSettings *settings) +void PfdQmlGadgetWidget::restoreState(QSettings &settings) { m_pfdQmlContext->restoreState(settings); } diff --git a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.h b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.h index d706f2fac..5feae2f93 100644 --- a/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.h +++ b/ground/gcs/src/plugins/pfdqml/pfdqmlgadgetwidget.h @@ -46,8 +46,8 @@ public: virtual ~PfdQmlGadgetWidget(); void loadConfiguration(PfdQmlGadgetConfiguration *config); - void saveState(QSettings *); - void restoreState(QSettings *); + void saveState(QSettings &); + void restoreState(QSettings &); private: QuickWidgetProxy *m_quickWidgetProxy; diff --git a/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.cpp b/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.cpp index c1090f7ff..49553bfd8 100644 --- a/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.cpp @@ -32,39 +32,38 @@ * Loads a saved configuration or defaults if non exist. * */ -QmlViewGadgetConfiguration::QmlViewGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_defaultDial("Unknown") +QmlViewGadgetConfiguration::QmlViewGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QString dialFile = qSettings->value("dialFile").toString(); - useOpenGLFlag = qSettings->value("useOpenGLFlag").toBool(); - m_defaultDial = Utils::InsertDataPath(dialFile); - } + m_defaultDial = settings.value("dialFile", "Unknown").toString(); + m_defaultDial = Utils::InsertDataPath(m_defaultDial); + useOpenGLFlag = settings.value("useOpenGLFlag").toBool(); +} + +QmlViewGadgetConfiguration::QmlViewGadgetConfiguration(const QmlViewGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_defaultDial = obj.m_defaultDial; + useOpenGLFlag = obj.useOpenGLFlag; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *QmlViewGadgetConfiguration::clone() +IUAVGadgetConfiguration *QmlViewGadgetConfiguration::clone() const { - QmlViewGadgetConfiguration *m = new QmlViewGadgetConfiguration(this->classId()); - - m->m_defaultDial = m_defaultDial; - m->useOpenGLFlag = useOpenGLFlag; - return m; + return new QmlViewGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void QmlViewGadgetConfiguration::saveConfig(QSettings *qSettings) const +void QmlViewGadgetConfiguration::saveConfig(QSettings &settings) const { QString dialFile = Utils::RemoveDataPath(m_defaultDial); - qSettings->setValue("dialFile", dialFile); - qSettings->setValue("useOpenGLFlag", useOpenGLFlag); + settings.setValue("dialFile", dialFile); + settings.setValue("useOpenGLFlag", useOpenGLFlag); } diff --git a/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.h b/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.h index 416d5a8db..3efab25cc 100644 --- a/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.h +++ b/ground/gcs/src/plugins/qmlview/qmlviewgadgetconfiguration.h @@ -35,7 +35,11 @@ using namespace Core; class QmlViewGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit QmlViewGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit QmlViewGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit QmlViewGadgetConfiguration(const QmlViewGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; // set dial configuration functions void setDialFile(QString dialFile) @@ -57,9 +61,6 @@ public: return useOpenGLFlag; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: QString m_defaultDial; // The name of the dial's SVG source file bool useOpenGLFlag; diff --git a/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.cpp b/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.cpp index 619f15179..6ade23edf 100644 --- a/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.cpp +++ b/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.cpp @@ -47,9 +47,9 @@ Core::IUAVGadget *QmlViewGadgetFactory::createGadget(QWidget *parent) return new QmlViewGadget(QString("QmlViewGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *QmlViewGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *QmlViewGadgetFactory::createConfiguration(QSettings &settings) { - return new QmlViewGadgetConfiguration(QString("QmlViewGadget"), qSettings); + return new QmlViewGadgetConfiguration(QString("QmlViewGadget"), settings); } IOptionsPage *QmlViewGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.h b/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.h index 759778875..991b38a3a 100644 --- a/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.h +++ b/ground/gcs/src/plugins/qmlview/qmlviewgadgetfactory.h @@ -44,7 +44,7 @@ public: ~QmlViewGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/scope/scopegadget.cpp b/ground/gcs/src/plugins/scope/scopegadget.cpp index 5531897d1..8f5c4a546 100644 --- a/ground/gcs/src/plugins/scope/scopegadget.cpp +++ b/ground/gcs/src/plugins/scope/scopegadget.cpp @@ -30,7 +30,8 @@ #include "scopegadgetwidget.h" #include -#include +#include +#include ScopeGadget::ScopeGadget(QString classId, ScopeGadgetWidget *widget, QWidget *parent) : IUAVGadget(classId, parent), m_widget(widget) @@ -98,12 +99,12 @@ ScopeGadget::~ScopeGadget() delete m_widget; } -void ScopeGadget::saveState(QSettings *qSettings) +void ScopeGadget::saveState(QSettings &settings) { - m_widget->saveState(qSettings); + m_widget->saveState(settings); } -void ScopeGadget::restoreState(QSettings *qSettings) +void ScopeGadget::restoreState(QSettings &settings) { - m_widget->restoreState(qSettings); + m_widget->restoreState(settings); } diff --git a/ground/gcs/src/plugins/scope/scopegadget.h b/ground/gcs/src/plugins/scope/scopegadget.h index e0408554c..f7c52a30a 100644 --- a/ground/gcs/src/plugins/scope/scopegadget.h +++ b/ground/gcs/src/plugins/scope/scopegadget.h @@ -63,8 +63,8 @@ public: return QString(); } - void saveState(QSettings *qSettings); - void restoreState(QSettings *qSettings); + void saveState(QSettings &settings); + void restoreState(QSettings &settings); private: ScopeGadgetWidget *m_widget; diff --git a/ground/gcs/src/plugins/scope/scopegadgetconfiguration.cpp b/ground/gcs/src/plugins/scope/scopegadgetconfiguration.cpp index 0dd99f35d..d7e444f74 100644 --- a/ground/gcs/src/plugins/scope/scopegadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/scope/scopegadgetconfiguration.cpp @@ -2,7 +2,8 @@ ****************************************************************************** * * @file scopegadgetconfiguration.cpp - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @author The LibrePilot Team http://www.librepilot.org Copyright (C) 2017. + * The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. * @addtogroup GCSPlugins GCS Plugins * @{ * @addtogroup ScopePlugin Scope Gadget Plugin @@ -27,53 +28,79 @@ #include "scopegadgetconfiguration.h" -ScopeGadgetConfiguration::ScopeGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_plotType((int)ChronoPlot), - m_dataSize(60), - m_refreshInterval(1000), - m_mathFunctionType(0) +ScopeGadgetConfiguration::ScopeGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - uint currentStreamVersion = 0; - int plotCurveCount = 0; + uint currentStreamVersion = settings.value("configurationStreamVersion").toUInt(); - - // If a saved configuration exists load it - if (qSettings != 0) { - currentStreamVersion = qSettings->value("configurationStreamVersion").toUInt(); - - if (currentStreamVersion != m_configurationStreamVersion) { - return; - } - - m_plotType = qSettings->value("plotType").toInt(); - m_dataSize = qSettings->value("dataSize").toInt(); - m_refreshInterval = qSettings->value("refreshInterval").toInt(); - plotCurveCount = qSettings->value("plotCurveCount").toInt(); - - for (int plotDatasLoadIndex = 0; plotDatasLoadIndex < plotCurveCount; plotDatasLoadIndex++) { - qSettings->beginGroup(QString("plotCurve") + QString().number(plotDatasLoadIndex)); - - PlotCurveConfiguration *plotCurveConf = new PlotCurveConfiguration(); - plotCurveConf->uavObject = qSettings->value("uavObject").toString(); - plotCurveConf->uavField = qSettings->value("uavField").toString(); - plotCurveConf->color = qSettings->value("color").value(); - plotCurveConf->yScalePower = qSettings->value("yScalePower").toInt(); - plotCurveConf->mathFunction = qSettings->value("mathFunction").toString(); - plotCurveConf->yMeanSamples = qSettings->value("yMeanSamples", 1).toInt(); - plotCurveConf->yMeanSamples = qSettings->value("yMeanSamples", 1).toInt(); - plotCurveConf->drawAntialiased = qSettings->value("drawAntialiased", true).toBool(); - plotCurveConf->yMinimum = qSettings->value("yMinimum").toDouble(); - plotCurveConf->yMaximum = qSettings->value("yMaximum").toDouble(); - m_plotCurveConfigs.append(plotCurveConf); - - qSettings->endGroup(); - } - - m_loggingEnabled = qSettings->value("LoggingEnabled").toBool(); - m_loggingNewFileOnConnect = qSettings->value("LoggingNewFileOnConnect").toBool(); - m_loggingPath = qSettings->value("LoggingPath").toString(); + if (currentStreamVersion != m_configurationStreamVersion) { + return; } + + m_plotType = settings.value("plotType", ChronoPlot).toInt(); + m_dataSize = settings.value("dataSize", 60).toInt(); + m_refreshInterval = settings.value("refreshInterval", 1000).toInt(); + m_mathFunctionType = 0; + + int plotCurveCount = settings.value("plotCurveCount").toInt(); + for (int i = 0; i < plotCurveCount; i++) { + settings.beginGroup(QString("plotCurve") + QString().number(i)); + + PlotCurveConfiguration *plotCurveConf = new PlotCurveConfiguration(); + plotCurveConf->uavObject = settings.value("uavObject").toString(); + plotCurveConf->uavField = settings.value("uavField").toString(); + plotCurveConf->color = settings.value("color").value(); + plotCurveConf->yScalePower = settings.value("yScalePower").toInt(); + plotCurveConf->mathFunction = settings.value("mathFunction").toString(); + plotCurveConf->yMeanSamples = settings.value("yMeanSamples", 1).toInt(); + plotCurveConf->yMeanSamples = settings.value("yMeanSamples", 1).toInt(); + plotCurveConf->drawAntialiased = settings.value("drawAntialiased", true).toBool(); + plotCurveConf->yMinimum = settings.value("yMinimum").toDouble(); + plotCurveConf->yMaximum = settings.value("yMaximum").toDouble(); + m_plotCurveConfigs.append(plotCurveConf); + + settings.endGroup(); + } + + m_loggingEnabled = settings.value("LoggingEnabled").toBool(); + m_loggingNewFileOnConnect = settings.value("LoggingNewFileOnConnect").toBool(); + m_loggingPath = settings.value("LoggingPath").toString(); +} + +ScopeGadgetConfiguration::ScopeGadgetConfiguration(const ScopeGadgetConfiguration & obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_plotType = obj.m_plotType; + m_dataSize = obj.m_dataSize; + m_mathFunctionType = obj.m_mathFunctionType; + m_refreshInterval = obj.m_refreshInterval; + + int plotCurveCount = m_plotCurveConfigs.size(); + for (int i = 0; i < plotCurveCount; i++) { + PlotCurveConfiguration *currentPlotCurveConf = obj.m_plotCurveConfigs.at(i); + + PlotCurveConfiguration *newPlotCurveConf = new PlotCurveConfiguration(); + newPlotCurveConf->uavObject = currentPlotCurveConf->uavObject; + newPlotCurveConf->uavField = currentPlotCurveConf->uavField; + newPlotCurveConf->color = currentPlotCurveConf->color; + newPlotCurveConf->yScalePower = currentPlotCurveConf->yScalePower; + newPlotCurveConf->yMeanSamples = currentPlotCurveConf->yMeanSamples; + newPlotCurveConf->mathFunction = currentPlotCurveConf->mathFunction; + newPlotCurveConf->drawAntialiased = currentPlotCurveConf->drawAntialiased; + newPlotCurveConf->yMinimum = currentPlotCurveConf->yMinimum; + newPlotCurveConf->yMaximum = currentPlotCurveConf->yMaximum; + + addPlotCurveConfig(newPlotCurveConf); + } + + m_loggingEnabled = obj.m_loggingEnabled; + m_loggingNewFileOnConnect = obj.m_loggingNewFileOnConnect; + m_loggingPath = obj.m_loggingPath; +} + +ScopeGadgetConfiguration::~ScopeGadgetConfiguration() +{ + clearPlotData(); } void ScopeGadgetConfiguration::clearPlotData() @@ -91,42 +118,9 @@ void ScopeGadgetConfiguration::clearPlotData() * Clones a configuration. * */ -IUAVGadgetConfiguration *ScopeGadgetConfiguration::clone() +IUAVGadgetConfiguration *ScopeGadgetConfiguration::clone() const { - int plotCurveCount = 0; - int plotDatasLoadIndex = 0; - - ScopeGadgetConfiguration *m = new ScopeGadgetConfiguration(this->classId()); - - m->setPlotType(m_plotType); - m->setDataSize(m_dataSize); - m->setMathFunctionType(m_mathFunctionType); - m->setRefreashInterval(m_refreshInterval); - - plotCurveCount = m_plotCurveConfigs.size(); - - for (plotDatasLoadIndex = 0; plotDatasLoadIndex < plotCurveCount; plotDatasLoadIndex++) { - PlotCurveConfiguration *currentPlotCurveConf = m_plotCurveConfigs.at(plotDatasLoadIndex); - - PlotCurveConfiguration *newPlotCurveConf = new PlotCurveConfiguration(); - newPlotCurveConf->uavObject = currentPlotCurveConf->uavObject; - newPlotCurveConf->uavField = currentPlotCurveConf->uavField; - newPlotCurveConf->color = currentPlotCurveConf->color; - newPlotCurveConf->yScalePower = currentPlotCurveConf->yScalePower; - newPlotCurveConf->yMeanSamples = currentPlotCurveConf->yMeanSamples; - newPlotCurveConf->mathFunction = currentPlotCurveConf->mathFunction; - newPlotCurveConf->drawAntialiased = currentPlotCurveConf->drawAntialiased; - newPlotCurveConf->yMinimum = currentPlotCurveConf->yMinimum; - newPlotCurveConf->yMaximum = currentPlotCurveConf->yMaximum; - - m->addPlotCurveConfig(newPlotCurveConf); - } - - m->setLoggingEnabled(m_loggingEnabled); - m->setLoggingNewFileOnConnect(m_loggingNewFileOnConnect); - m->setLoggingPath(m_loggingPath); - - return m; + return new ScopeGadgetConfiguration(*this); } @@ -134,37 +128,36 @@ IUAVGadgetConfiguration *ScopeGadgetConfiguration::clone() * Saves a configuration. //REDEFINES saveConfig CHILD BEHAVIOR? * */ -void ScopeGadgetConfiguration::saveConfig(QSettings *qSettings) const +void ScopeGadgetConfiguration::saveConfig(QSettings &settings) const { - int plotCurveCount = m_plotCurveConfigs.size(); - int plotDatasLoadIndex = 0; + int plotCurveCount = m_plotCurveConfigs.size(); - qSettings->setValue("configurationStreamVersion", m_configurationStreamVersion); - qSettings->setValue("plotType", m_plotType); - qSettings->setValue("dataSize", m_dataSize); - qSettings->setValue("refreshInterval", m_refreshInterval); - qSettings->setValue("plotCurveCount", plotCurveCount); + settings.setValue("configurationStreamVersion", m_configurationStreamVersion); + settings.setValue("plotType", m_plotType); + settings.setValue("dataSize", m_dataSize); + settings.setValue("refreshInterval", m_refreshInterval); + settings.setValue("plotCurveCount", plotCurveCount); - for (plotDatasLoadIndex = 0; plotDatasLoadIndex < plotCurveCount; plotDatasLoadIndex++) { - qSettings->beginGroup(QString("plotCurve") + QString().number(plotDatasLoadIndex)); + for (int i = 0; i < plotCurveCount; i++) { + settings.beginGroup(QString("plotCurve") + QString().number(i)); - PlotCurveConfiguration *plotCurveConf = m_plotCurveConfigs.at(plotDatasLoadIndex); - qSettings->setValue("uavObject", plotCurveConf->uavObject); - qSettings->setValue("uavField", plotCurveConf->uavField); - qSettings->setValue("color", plotCurveConf->color); - qSettings->setValue("mathFunction", plotCurveConf->mathFunction); - qSettings->setValue("yScalePower", plotCurveConf->yScalePower); - qSettings->setValue("yMeanSamples", plotCurveConf->yMeanSamples); - qSettings->setValue("yMinimum", plotCurveConf->yMinimum); - qSettings->setValue("yMaximum", plotCurveConf->yMaximum); - qSettings->setValue("drawAntialiased", plotCurveConf->drawAntialiased); + PlotCurveConfiguration *plotCurveConf = m_plotCurveConfigs.at(i); + settings.setValue("uavObject", plotCurveConf->uavObject); + settings.setValue("uavField", plotCurveConf->uavField); + settings.setValue("color", plotCurveConf->color); + settings.setValue("mathFunction", plotCurveConf->mathFunction); + settings.setValue("yScalePower", plotCurveConf->yScalePower); + settings.setValue("yMeanSamples", plotCurveConf->yMeanSamples); + settings.setValue("yMinimum", plotCurveConf->yMinimum); + settings.setValue("yMaximum", plotCurveConf->yMaximum); + settings.setValue("drawAntialiased", plotCurveConf->drawAntialiased); - qSettings->endGroup(); + settings.endGroup(); } - qSettings->setValue("LoggingEnabled", m_loggingEnabled); - qSettings->setValue("LoggingNewFileOnConnect", m_loggingNewFileOnConnect); - qSettings->setValue("LoggingPath", m_loggingPath); + settings.setValue("LoggingEnabled", m_loggingEnabled); + settings.setValue("LoggingNewFileOnConnect", m_loggingNewFileOnConnect); + settings.setValue("LoggingPath", m_loggingPath); } void ScopeGadgetConfiguration::replacePlotCurveConfig(QList newPlotCurveConfigs) @@ -173,8 +166,3 @@ void ScopeGadgetConfiguration::replacePlotCurveConfig(QList - -#include +#include "plotdata.h" using namespace Core; @@ -50,9 +48,13 @@ struct PlotCurveConfiguration { class ScopeGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit ScopeGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit ScopeGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit ScopeGadgetConfiguration(const ScopeGadgetConfiguration &obj); - ~ScopeGadgetConfiguration(); + virtual ~ScopeGadgetConfiguration(); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; // configuration setter functions void setPlotType(int value) @@ -99,9 +101,6 @@ public: return m_plotCurveConfigs; } - void saveConfig(QSettings *settings) const; // THIS SEEMS TO BE UNUSED - IUAVGadgetConfiguration *clone(); - bool getLoggingEnabled() { return m_loggingEnabled; @@ -128,7 +127,6 @@ public: } private: - // Increment this if the stream format is not compatible with previous versions. This would cause existing configs to be discarded. static const uint m_configurationStreamVersion = 1000; // The type of the plot diff --git a/ground/gcs/src/plugins/scope/scopegadgetfactory.cpp b/ground/gcs/src/plugins/scope/scopegadgetfactory.cpp index 63551f043..b7cc00461 100644 --- a/ground/gcs/src/plugins/scope/scopegadgetfactory.cpp +++ b/ground/gcs/src/plugins/scope/scopegadgetfactory.cpp @@ -59,9 +59,9 @@ Core::IUAVGadget *ScopeGadgetFactory::createGadget(QWidget *parent) return new ScopeGadget(QString("ScopeGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *ScopeGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *ScopeGadgetFactory::createConfiguration(QSettings &settings) { - return new ScopeGadgetConfiguration(QString("ScopeGadget"), qSettings); + return new ScopeGadgetConfiguration(QString("ScopeGadget"), settings); } IOptionsPage *ScopeGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/scope/scopegadgetfactory.h b/ground/gcs/src/plugins/scope/scopegadgetfactory.h index 11a77f2ca..869c5a5c7 100644 --- a/ground/gcs/src/plugins/scope/scopegadgetfactory.h +++ b/ground/gcs/src/plugins/scope/scopegadgetfactory.h @@ -45,7 +45,7 @@ public: ~ScopeGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); public slots: diff --git a/ground/gcs/src/plugins/scope/scopegadgetwidget.cpp b/ground/gcs/src/plugins/scope/scopegadgetwidget.cpp index 9dfc4c713..48f08e906 100644 --- a/ground/gcs/src/plugins/scope/scopegadgetwidget.cpp +++ b/ground/gcs/src/plugins/scope/scopegadgetwidget.cpp @@ -52,6 +52,7 @@ #include #include #include +#include #include #include @@ -456,7 +457,7 @@ void ScopeGadgetWidget::clearCurvePlots() m_curvesData.clear(); } -void ScopeGadgetWidget::saveState(QSettings *qSettings) +void ScopeGadgetWidget::saveState(QSettings &settings) { // plot state int i = 1; @@ -465,25 +466,25 @@ void ScopeGadgetWidget::saveState(QSettings *qSettings) bool plotVisible = plotData->isVisible(); if (!plotVisible) { - qSettings->setValue(QString("plot%1").arg(i), plotVisible); + settings.setValue(QString("plot%1").arg(i), plotVisible); } i++; } // legend state - qSettings->setValue("legendVisible", legend() != NULL); + settings.setValue("legendVisible", legend() != NULL); } -void ScopeGadgetWidget::restoreState(QSettings *qSettings) +void ScopeGadgetWidget::restoreState(QSettings &settings) { // plot state int i = 1; foreach(PlotData * plotData, m_curvesData.values()) { - plotData->setVisible(qSettings->value(QString("plot%1").arg(i), true).toBool()); + plotData->setVisible(settings.value(QString("plot%1").arg(i), true).toBool()); i++; } // legend state - bool legendVisible = qSettings->value("legendVisible", true).toBool(); + bool legendVisible = settings.value("legendVisible", true).toBool(); if (legendVisible) { addLegend(); } else { diff --git a/ground/gcs/src/plugins/scope/scopegadgetwidget.h b/ground/gcs/src/plugins/scope/scopegadgetwidget.h index 786cc9d22..1ea292005 100644 --- a/ground/gcs/src/plugins/scope/scopegadgetwidget.h +++ b/ground/gcs/src/plugins/scope/scopegadgetwidget.h @@ -100,8 +100,8 @@ public: QString mathFunction = "None", QPen pen = QPen(Qt::black), bool antialiased = true); void clearCurvePlots(); - void saveState(QSettings *qSettings); - void restoreState(QSettings *qSettings); + void saveState(QSettings &settings); + void restoreState(QSettings &settings); int csvLoggingStart(); int csvLoggingStop(); diff --git a/ground/gcs/src/plugins/serialconnection/serialplugin.cpp b/ground/gcs/src/plugins/serialconnection/serialplugin.cpp index 964ec45e7..829de4145 100644 --- a/ground/gcs/src/plugins/serialconnection/serialplugin.cpp +++ b/ground/gcs/src/plugins/serialconnection/serialplugin.cpp @@ -71,8 +71,8 @@ SerialConnection::SerialConnection() : m_enumerateThread(this), m_deviceOpened(false) { - m_config = new SerialPluginConfiguration("Serial Telemetry", NULL, this); - m_config->restoresettings(); + m_config = new SerialPluginConfiguration("Serial Telemetry", this); + m_config->restoreSettings(); m_optionspage = new SerialPluginOptionsPage(m_config, this); diff --git a/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.cpp b/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.cpp index 933a01f40..b106a15d4 100644 --- a/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.cpp +++ b/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.cpp @@ -27,6 +27,7 @@ */ #include "serialpluginconfiguration.h" + #include "utils/pathutils.h" #include @@ -36,13 +37,16 @@ * Loads a saved configuration or defaults if non exist. * */ -SerialPluginConfiguration::SerialPluginConfiguration(QString classId, QSettings *qSettings, QObject *parent) : +SerialPluginConfiguration::SerialPluginConfiguration(QString classId, QObject *parent) : IUAVGadgetConfiguration(classId, parent), m_speed("57600") { - Q_UNUSED(qSettings); +} - settings = Core::ICore::instance()->settings(); +SerialPluginConfiguration::SerialPluginConfiguration(const SerialPluginConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_speed = obj.m_speed; } SerialPluginConfiguration::~SerialPluginConfiguration() @@ -52,39 +56,43 @@ SerialPluginConfiguration::~SerialPluginConfiguration() * Clones a configuration. * */ -IUAVGadgetConfiguration *SerialPluginConfiguration::clone() +IUAVGadgetConfiguration *SerialPluginConfiguration::clone() const { - SerialPluginConfiguration *m = new SerialPluginConfiguration(this->classId()); - - m->m_speed = m_speed; - return m; + return new SerialPluginConfiguration(*this); } /** * Saves a configuration. * */ -void SerialPluginConfiguration::saveConfig(QSettings *settings) const +void SerialPluginConfiguration::saveConfig(QSettings &settings) const { - settings->setValue("speed", m_speed); + settings.setValue("speed", m_speed); } -void SerialPluginConfiguration::restoresettings() +void SerialPluginConfiguration::restoreSettings() { - settings->beginGroup(QLatin1String("SerialConnection")); - QString str = (settings->value(QLatin1String("speed"), tr("")).toString()); + QSettings settings; + + settings.beginGroup("SerialConnection"); + + QString str = settings.value("speed", "").toString(); if (str.isEmpty()) { m_speed = "57600"; } else { m_speed = str; } - // qDebug() << "SerialPluginConfiguration::restoresettings - speed" << str; - settings->endGroup(); + + settings.endGroup(); } -void SerialPluginConfiguration::savesettings() const +void SerialPluginConfiguration::saveSettings() const { - settings->beginGroup(QLatin1String("SerialConnection")); - settings->setValue(QLatin1String("speed"), m_speed); - settings->endGroup(); + QSettings settings; + + settings.beginGroup("SerialConnection"); + + settings.setValue("speed", m_speed); + + settings.endGroup(); } diff --git a/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.h b/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.h index 8335105ea..27ed4aea2 100644 --- a/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.h +++ b/ground/gcs/src/plugins/serialconnection/serialpluginconfiguration.h @@ -39,27 +39,30 @@ using namespace Core; class SerialPluginConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit SerialPluginConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit SerialPluginConfiguration(QString classId, QObject *parent = 0); + explicit SerialPluginConfiguration(const SerialPluginConfiguration &obj); + virtual ~SerialPluginConfiguration(); + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; + + void saveSettings() const; + void restoreSettings(); + QString speed() { return m_speed; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - void savesettings() const; - void restoresettings(); - -private: - QString m_speed; - QSettings *settings; public slots: void setSpeed(QString speed) { m_speed = speed; } + +private: + QString m_speed; }; #endif // SERIALPLUGINCONFIGURATION_H diff --git a/ground/gcs/src/plugins/serialconnection/serialpluginoptionspage.cpp b/ground/gcs/src/plugins/serialconnection/serialpluginoptionspage.cpp index b83f98b9f..8517d6602 100644 --- a/ground/gcs/src/plugins/serialconnection/serialpluginoptionspage.cpp +++ b/ground/gcs/src/plugins/serialconnection/serialpluginoptionspage.cpp @@ -90,7 +90,7 @@ QWidget *SerialPluginOptionsPage::createPage(QWidget *parent) void SerialPluginOptionsPage::apply() { m_config->setSpeed(options_page->cb_speed->currentText()); - m_config->savesettings(); + m_config->saveSettings(); } diff --git a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.cpp b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.cpp index a9cb18e25..134abccfd 100644 --- a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.cpp @@ -32,36 +32,35 @@ * Loads a saved configuration or defaults if non exist. * */ -SystemHealthGadgetConfiguration::SystemHealthGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - systemFile("Unknown") +SystemHealthGadgetConfiguration::SystemHealthGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QString diagram = qSettings->value("diagram").toString(); - systemFile = Utils::InsertDataPath(diagram); - } + systemFile = settings.value("diagram", "Unknown").toString(); + systemFile = Utils::InsertDataPath(systemFile); +} + +SystemHealthGadgetConfiguration::SystemHealthGadgetConfiguration(const SystemHealthGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + systemFile = obj.systemFile; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *SystemHealthGadgetConfiguration::clone() +IUAVGadgetConfiguration *SystemHealthGadgetConfiguration::clone() const { - SystemHealthGadgetConfiguration *m = new SystemHealthGadgetConfiguration(this->classId()); - - m->systemFile = systemFile; - return m; + return new SystemHealthGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void SystemHealthGadgetConfiguration::saveConfig(QSettings *qSettings) const +void SystemHealthGadgetConfiguration::saveConfig(QSettings &settings) const { QString diagram = Utils::RemoveDataPath(systemFile); - qSettings->setValue("diagram", diagram); + settings.setValue("diagram", diagram); } diff --git a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.h b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.h index 7eb42c80b..e04d279f7 100644 --- a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.h +++ b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetconfiguration.h @@ -38,7 +38,11 @@ using namespace Core; class SystemHealthGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit SystemHealthGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit SystemHealthGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit SystemHealthGadgetConfiguration(const SystemHealthGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; // set system health configuration functions void setSystemFile(QString filename) @@ -52,9 +56,6 @@ public: return systemFile; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); - private: // systemFile contains the source SVG: QString systemFile; diff --git a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.cpp b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.cpp index 34a52364d..5931f2576 100644 --- a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.cpp +++ b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.cpp @@ -47,9 +47,9 @@ Core::IUAVGadget *SystemHealthGadgetFactory::createGadget(QWidget *parent) return new SystemHealthGadget(QString("SystemHealthGadget"), gadgetWidget, parent); } -IUAVGadgetConfiguration *SystemHealthGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *SystemHealthGadgetFactory::createConfiguration(QSettings &settings) { - return new SystemHealthGadgetConfiguration(QString("SystemHealthGadget"), qSettings); + return new SystemHealthGadgetConfiguration(QString("SystemHealthGadget"), settings); } IOptionsPage *SystemHealthGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.h b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.h index cdc38590b..eb081510e 100644 --- a/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.h +++ b/ground/gcs/src/plugins/systemhealth/systemhealthgadgetfactory.h @@ -44,7 +44,7 @@ public: ~SystemHealthGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.cpp b/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.cpp index b90a537d8..012c7e099 100644 --- a/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.cpp @@ -27,28 +27,27 @@ #include "monitorgadgetconfiguration.h" -MonitorGadgetConfiguration::MonitorGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : +MonitorGadgetConfiguration::MonitorGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : IUAVGadgetConfiguration(classId, parent) -{ - // if a saved configuration exists load it - if (qSettings != 0) {} -} +{} -IUAVGadgetConfiguration *MonitorGadgetConfiguration::clone() -{ - MonitorGadgetConfiguration *mv = new MonitorGadgetConfiguration(this->classId()); +MonitorGadgetConfiguration::MonitorGadgetConfiguration(const MonitorGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{} - return mv; +IUAVGadgetConfiguration *MonitorGadgetConfiguration::clone() const +{ + return new MonitorGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void MonitorGadgetConfiguration::saveConfig(QSettings *qSettings) const +void MonitorGadgetConfiguration::saveConfig(QSettings &settings) const { - Q_UNUSED(qSettings); -// qSettings->setValue("acFilename", Utils::RemoveDataPath(m_acFilename)); -// qSettings->setValue("bgFilename", Utils::RemoveDataPath(m_bgFilename)); -// qSettings->setValue("enableVbo", m_enableVbo); + Q_UNUSED(settings); +// settings->setValue("acFilename", Utils::RemoveDataPath(m_acFilename)); +// settings->setValue("bgFilename", Utils::RemoveDataPath(m_bgFilename)); +// settings->setValue("enableVbo", m_enableVbo); } diff --git a/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.h b/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.h index 20c570a78..cb51b0280 100644 --- a/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.h +++ b/ground/gcs/src/plugins/telemetry/monitorgadgetconfiguration.h @@ -35,10 +35,11 @@ using namespace Core; class MonitorGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit MonitorGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit MonitorGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit MonitorGadgetConfiguration(const MonitorGadgetConfiguration &obj); - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; }; #endif // MONITORGADGETCONFIGURATION_H diff --git a/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.cpp b/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.cpp index 89af56f0e..8ae2a626a 100644 --- a/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.cpp +++ b/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.cpp @@ -75,9 +75,9 @@ MonitorWidget *MonitorGadgetFactory::createMonitorWidget(QWidget *parent) return widget; } -IUAVGadgetConfiguration *MonitorGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *MonitorGadgetFactory::createConfiguration(QSettings &settings) { - return new MonitorGadgetConfiguration(QString("TelemetryMonitorGadget"), qSettings); + return new MonitorGadgetConfiguration(QString("TelemetryMonitorGadget"), settings); } IOptionsPage *MonitorGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config) diff --git a/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.h b/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.h index 0b44e8b53..ca74ec69a 100644 --- a/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.h +++ b/ground/gcs/src/plugins/telemetry/monitorgadgetfactory.h @@ -31,7 +31,6 @@ #include "monitorwidget.h" #include - namespace Core { class IUAVGadget; class IUAVGadgetFactory; @@ -46,7 +45,7 @@ public: ~MonitorGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); MonitorWidget *createMonitorWidget(QWidget *parent); diff --git a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.cpp b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.cpp index 1fdc53cb8..87fc486d7 100644 --- a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.cpp +++ b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.cpp @@ -27,64 +27,55 @@ #include "uavobjectbrowserconfiguration.h" -UAVObjectBrowserConfiguration::UAVObjectBrowserConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_unknownObjectColor(QColor(Qt::gray)), - m_recentlyUpdatedColor(QColor(255, 230, 230)), - m_manuallyChangedColor(QColor(230, 230, 255)), - m_onlyHilightChangedValues(false), - m_recentlyUpdatedTimeout(500), - m_useCategorizedView(false), - m_useScientificView(false), - m_showMetaData(false), - m_showDescription(false) +UAVObjectBrowserConfiguration::UAVObjectBrowserConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - m_unknownObjectColor = qSettings->value("unknownObjectColor", QVariant(QColor(Qt::gray))).value(); - m_useCategorizedView = qSettings->value("CategorizedView").toBool(); - m_useScientificView = qSettings->value("ScientificView").toBool(); - m_showMetaData = qSettings->value("showMetaData").toBool(); - m_showDescription = qSettings->value("showDescription").toBool(); - m_splitterState = qSettings->value("splitterState").toByteArray(); - m_recentlyUpdatedColor = qSettings->value("recentlyUpdatedColor").value(); - m_manuallyChangedColor = qSettings->value("manuallyChangedColor").value(); - m_recentlyUpdatedTimeout = qSettings->value("recentlyUpdatedTimeout").toInt(); - m_onlyHilightChangedValues = qSettings->value("onlyHilightChangedValues").toBool(); - } + m_unknownObjectColor = settings.value("unknownObjectColor", QColor(Qt::gray)).value(); + m_useCategorizedView = settings.value("CategorizedView", false).toBool(); + m_useScientificView = settings.value("ScientificView", false).toBool(); + m_showMetaData = settings.value("showMetaData", false).toBool(); + m_showDescription = settings.value("showDescription", false).toBool(); + m_splitterState = settings.value("splitterState").toByteArray(); + m_recentlyUpdatedColor = settings.value("recentlyUpdatedColor", QColor(255, 230, 230)).value(); + m_manuallyChangedColor = settings.value("manuallyChangedColor", QColor(230, 230, 255)).value(); + m_recentlyUpdatedTimeout = settings.value("recentlyUpdatedTimeout", 500).toInt(); + m_onlyHilightChangedValues = settings.value("onlyHilightChangedValues", false).toBool(); } -IUAVGadgetConfiguration *UAVObjectBrowserConfiguration::clone() +UAVObjectBrowserConfiguration::UAVObjectBrowserConfiguration(const UAVObjectBrowserConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) { - UAVObjectBrowserConfiguration *m = new UAVObjectBrowserConfiguration(this->classId()); + m_recentlyUpdatedColor = obj.m_recentlyUpdatedColor; + m_manuallyChangedColor = obj.m_manuallyChangedColor; + m_recentlyUpdatedTimeout = obj.m_recentlyUpdatedTimeout; + m_onlyHilightChangedValues = obj.m_onlyHilightChangedValues; + m_useCategorizedView = obj.m_useCategorizedView; + m_useScientificView = obj.m_useScientificView; + m_splitterState = obj.m_splitterState; + m_showMetaData = obj.m_showMetaData; + m_unknownObjectColor = obj.m_unknownObjectColor; + m_showDescription = obj.m_showDescription; +} - m->m_recentlyUpdatedColor = m_recentlyUpdatedColor; - m->m_manuallyChangedColor = m_manuallyChangedColor; - m->m_recentlyUpdatedTimeout = m_recentlyUpdatedTimeout; - m->m_onlyHilightChangedValues = m_onlyHilightChangedValues; - m->m_useCategorizedView = m_useCategorizedView; - m->m_useScientificView = m_useScientificView; - m->m_splitterState = m_splitterState; - m->m_showMetaData = m_showMetaData; - m->m_unknownObjectColor = m_unknownObjectColor; - m->m_showDescription = m_showDescription; - return m; +IUAVGadgetConfiguration *UAVObjectBrowserConfiguration::clone() const +{ + return new UAVObjectBrowserConfiguration(*this); } /** * Saves a configuration. * */ -void UAVObjectBrowserConfiguration::saveConfig(QSettings *qSettings) const +void UAVObjectBrowserConfiguration::saveConfig(QSettings &settings) const { - qSettings->setValue("unknownObjectColor", m_unknownObjectColor); - qSettings->setValue("recentlyUpdatedColor", m_recentlyUpdatedColor); - qSettings->setValue("manuallyChangedColor", m_manuallyChangedColor); - qSettings->setValue("recentlyUpdatedTimeout", m_recentlyUpdatedTimeout); - qSettings->setValue("onlyHilightChangedValues", m_onlyHilightChangedValues); - qSettings->setValue("CategorizedView", m_useCategorizedView); - qSettings->setValue("ScientificView", m_useScientificView); - qSettings->setValue("showMetaData", m_showMetaData); - qSettings->setValue("showDescription", m_showDescription); - qSettings->setValue("splitterState", m_splitterState); + settings.setValue("unknownObjectColor", m_unknownObjectColor); + settings.setValue("recentlyUpdatedColor", m_recentlyUpdatedColor); + settings.setValue("manuallyChangedColor", m_manuallyChangedColor); + settings.setValue("recentlyUpdatedTimeout", m_recentlyUpdatedTimeout); + settings.setValue("onlyHilightChangedValues", m_onlyHilightChangedValues); + settings.setValue("CategorizedView", m_useCategorizedView); + settings.setValue("ScientificView", m_useScientificView); + settings.setValue("showMetaData", m_showMetaData); + settings.setValue("showDescription", m_showDescription); + settings.setValue("splitterState", m_splitterState); } diff --git a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h index 67449223c..c0e943b64 100644 --- a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h +++ b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserconfiguration.h @@ -29,6 +29,7 @@ #define UAVOBJECTBROWSERCONFIGURATION_H #include + #include using namespace Core; @@ -44,11 +45,13 @@ class UAVObjectBrowserConfiguration : public IUAVGadgetConfiguration { Q_PROPERTY(bool m_showDescription READ showDescription WRITE setShowDescription) Q_PROPERTY(bool m_showMetaData READ showMetaData WRITE setShowMetaData) Q_PROPERTY(QByteArray m_splitterState READ splitterState WRITE setSplitterState) -public: - explicit UAVObjectBrowserConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); +public: + explicit UAVObjectBrowserConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit UAVObjectBrowserConfiguration(const UAVObjectBrowserConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; QColor unknownObjectColor() const { @@ -86,14 +89,11 @@ public: { return m_showDescription; } - QByteArray splitterState() const { return m_splitterState; } -signals: - public slots: void setUnknownObjectColor(QColor color) { @@ -131,7 +131,6 @@ public slots: { m_showDescription = value; } - void setSplitterState(QByteArray arg) { m_splitterState = arg; diff --git a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.cpp b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.cpp index 2fb7ee2ab..c9eb9c4e9 100644 --- a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.cpp +++ b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.cpp @@ -45,9 +45,9 @@ Core::IUAVGadget *UAVObjectBrowserFactory::createGadget(QWidget *parent) return new UAVObjectBrowser(QString("UAVObjectBrowser"), gadgetWidget, parent); } -IUAVGadgetConfiguration *UAVObjectBrowserFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *UAVObjectBrowserFactory::createConfiguration(QSettings &settings) { - return new UAVObjectBrowserConfiguration(QString("UAVObjectBrowser"), qSettings); + return new UAVObjectBrowserConfiguration(QString("UAVObjectBrowser"), settings); } diff --git a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.h b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.h index a85fbeb1d..a85831256 100644 --- a/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.h +++ b/ground/gcs/src/plugins/uavobjectbrowser/uavobjectbrowserfactory.h @@ -44,7 +44,7 @@ public: ~UAVObjectBrowserFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config); }; diff --git a/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.cpp b/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.cpp index 7ccbb3236..4715c3c9f 100644 --- a/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.cpp +++ b/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.cpp @@ -33,72 +33,49 @@ * Loads a saved configuration or defaults if non exist. * */ -UploaderGadgetConfiguration::UploaderGadgetConfiguration(QString classId, QSettings *qSettings, QObject *parent) : - IUAVGadgetConfiguration(classId, parent), - m_defaultPort("Unknown"), - m_defaultSpeed(QSerialPort::UnknownBaud), - m_defaultDataBits(QSerialPort::UnknownDataBits), - m_defaultFlow(QSerialPort::UnknownFlowControl), - m_defaultParity(QSerialPort::UnknownParity), - m_defaultStopBits(QSerialPort::UnknownStopBits), - m_defaultTimeOut(5000) +UploaderGadgetConfiguration::UploaderGadgetConfiguration(QString classId, QSettings &settings, QObject *parent) : + IUAVGadgetConfiguration(classId, parent) { - // if a saved configuration exists load it - if (qSettings != 0) { - QSerialPort::BaudRate speed; - QSerialPort::DataBits databits; - QSerialPort::FlowControl flow; - QSerialPort::Parity parity; - QSerialPort::StopBits stopbits; + m_defaultPort = settings.value("defaultPort", "Unknown").toString(); + m_defaultSpeed = (QSerialPort::BaudRate)settings.value("defaultSpeed", QSerialPort::UnknownBaud).toInt(); + m_defaultDataBits = (QSerialPort::DataBits)settings.value("defaultDataBits", QSerialPort::UnknownDataBits).toInt(); + m_defaultFlow = (QSerialPort::FlowControl)settings.value("defaultFlow", QSerialPort::UnknownFlowControl).toInt(); + m_defaultParity = (QSerialPort::Parity)settings.value("defaultParity", QSerialPort::UnknownParity).toInt(); + m_defaultStopBits = (QSerialPort::StopBits)settings.value("defaultStopBits", QSerialPort::UnknownStopBits).toInt(); + m_defaultTimeOut = 5000; +} - int ispeed = qSettings->value("defaultSpeed").toInt(); - int idatabits = qSettings->value("defaultDataBits").toInt(); - int iflow = qSettings->value("defaultFlow").toInt(); - int iparity = qSettings->value("defaultParity").toInt(); - int istopbits = qSettings->value("defaultStopBits").toInt(); - QString port = qSettings->value("defaultPort").toString(); - - databits = (QSerialPort::DataBits)idatabits; - flow = (QSerialPort::FlowControl)iflow; - parity = (QSerialPort::Parity)iparity; - stopbits = (QSerialPort::StopBits)istopbits; - speed = (QSerialPort::BaudRate)ispeed; - m_defaultPort = port; - m_defaultSpeed = speed; - m_defaultDataBits = databits; - m_defaultFlow = flow; - m_defaultParity = parity; - m_defaultStopBits = stopbits; - } +UploaderGadgetConfiguration::UploaderGadgetConfiguration(const UploaderGadgetConfiguration &obj) : + IUAVGadgetConfiguration(obj.classId(), obj.parent()) +{ + m_defaultSpeed = obj.m_defaultSpeed; + m_defaultDataBits = obj.m_defaultDataBits; + m_defaultFlow = obj.m_defaultFlow; + m_defaultParity = obj.m_defaultParity; + m_defaultStopBits = obj.m_defaultStopBits; + m_defaultPort = obj.m_defaultPort; + m_defaultTimeOut = obj.m_defaultTimeOut; } /** * Clones a configuration. * */ -IUAVGadgetConfiguration *UploaderGadgetConfiguration::clone() +IUAVGadgetConfiguration *UploaderGadgetConfiguration::clone() const { - UploaderGadgetConfiguration *m = new UploaderGadgetConfiguration(this->classId()); - - m->m_defaultSpeed = m_defaultSpeed; - m->m_defaultDataBits = m_defaultDataBits; - m->m_defaultFlow = m_defaultFlow; - m->m_defaultParity = m_defaultParity; - m->m_defaultStopBits = m_defaultStopBits; - m->m_defaultPort = m_defaultPort; - return m; + return new UploaderGadgetConfiguration(*this); } /** * Saves a configuration. * */ -void UploaderGadgetConfiguration::saveConfig(QSettings *qSettings) const +void UploaderGadgetConfiguration::saveConfig(QSettings &settings) const { - qSettings->setValue("defaultSpeed", m_defaultSpeed); - qSettings->setValue("defaultDataBits", m_defaultDataBits); - qSettings->setValue("defaultFlow", m_defaultFlow); - qSettings->setValue("defaultParity", m_defaultParity); - qSettings->setValue("defaultStopBits", m_defaultStopBits); - qSettings->setValue("defaultPort", m_defaultPort); + settings.setValue("defaultSpeed", m_defaultSpeed); + settings.setValue("defaultDataBits", m_defaultDataBits); + settings.setValue("defaultFlow", m_defaultFlow); + settings.setValue("defaultParity", m_defaultParity); + settings.setValue("defaultStopBits", m_defaultStopBits); + settings.setValue("defaultPort", m_defaultPort); } diff --git a/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.h b/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.h index 986c46053..5671a4ba9 100644 --- a/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.h +++ b/ground/gcs/src/plugins/uploader/uploadergadgetconfiguration.h @@ -51,7 +51,11 @@ struct PortSettings { class UPLOADER_EXPORT UploaderGadgetConfiguration : public IUAVGadgetConfiguration { Q_OBJECT public: - explicit UploaderGadgetConfiguration(QString classId, QSettings *qSettings = 0, QObject *parent = 0); + explicit UploaderGadgetConfiguration(QString classId, QSettings &settings, QObject *parent = 0); + explicit UploaderGadgetConfiguration(const UploaderGadgetConfiguration &obj); + + IUAVGadgetConfiguration *clone() const; + void saveConfig(QSettings &settings) const; // set port configuration functions void setSpeed(QSerialPort::BaudRate speed) @@ -112,8 +116,6 @@ public: { return m_defaultTimeOut; } - void saveConfig(QSettings *settings) const; - IUAVGadgetConfiguration *clone(); private: QString m_defaultPort; diff --git a/ground/gcs/src/plugins/uploader/uploadergadgetfactory.cpp b/ground/gcs/src/plugins/uploader/uploadergadgetfactory.cpp index 73029dc95..f9901cdc8 100644 --- a/ground/gcs/src/plugins/uploader/uploadergadgetfactory.cpp +++ b/ground/gcs/src/plugins/uploader/uploadergadgetfactory.cpp @@ -50,9 +50,9 @@ Core::IUAVGadget *UploaderGadgetFactory::createGadget(QWidget *parent) return new UploaderGadget(QString("Uploader"), gadgetWidget, parent); } -IUAVGadgetConfiguration *UploaderGadgetFactory::createConfiguration(QSettings *qSettings) +IUAVGadgetConfiguration *UploaderGadgetFactory::createConfiguration(QSettings &settings) { - return new UploaderGadgetConfiguration(QString("Uploader"), qSettings); + return new UploaderGadgetConfiguration(QString("Uploader"), settings); } bool UploaderGadgetFactory::isAutoUpdateCapable() { diff --git a/ground/gcs/src/plugins/uploader/uploadergadgetfactory.h b/ground/gcs/src/plugins/uploader/uploadergadgetfactory.h index 03bfdab9b..20a192ea6 100644 --- a/ground/gcs/src/plugins/uploader/uploadergadgetfactory.h +++ b/ground/gcs/src/plugins/uploader/uploadergadgetfactory.h @@ -45,7 +45,7 @@ public: ~UploaderGadgetFactory(); Core::IUAVGadget *createGadget(QWidget *parent); - IUAVGadgetConfiguration *createConfiguration(QSettings *qSettings); + IUAVGadgetConfiguration *createConfiguration(QSettings &settings); bool isAutoUpdateCapable(); private: bool isautocapable;