Let SignalBase store/restore its internal data

This commit is contained in:
Soeren Apel 2016-08-29 18:08:11 +02:00
parent aecae05c59
commit 6de38b17e7
3 changed files with 22 additions and 6 deletions

View File

@ -152,5 +152,20 @@ void SignalBase::set_decoder_stack(std::shared_ptr<pv::data::DecoderStack>
}
#endif
void SignalBase::save_settings(QSettings &settings) const
{
settings.setValue("name", name());
settings.setValue("enabled", enabled());
settings.setValue("colour", colour());
}
void SignalBase::restore_settings(QSettings &settings)
{
set_name(settings.value("name").toString());
set_enabled(settings.value("enabled").toBool());
set_colour(settings.value("colour").value<QColor>());
}
} // namespace data
} // namespace pv

View File

@ -24,6 +24,7 @@
#include <QColor>
#include <QObject>
#include <QSettings>
#include <QString>
#include <libsigrokcxx/libsigrokcxx.hpp>
@ -134,6 +135,10 @@ public:
decoder_stack);
#endif
void save_settings(QSettings &settings) const;
void restore_settings(QSettings &settings);
Q_SIGNALS:
void enabled_changed(const bool &value);

View File

@ -202,9 +202,7 @@ void Session::save_settings(QSettings &settings) const
#endif
{
settings.beginGroup(base->internal_name());
settings.setValue("name", base->name());
settings.setValue("enabled", base->enabled());
settings.setValue("colour", base->colour());
base->save_settings(settings);
settings.endGroup();
}
}
@ -247,9 +245,7 @@ void Session::restore_settings(QSettings &settings)
// Restore channels
for (shared_ptr<data::SignalBase> base : signalbases_) {
settings.beginGroup(base->internal_name());
base->set_name(settings.value("name").toString());
base->set_enabled(settings.value("enabled").toBool());
base->set_colour(settings.value("colour").value<QColor>());
base->restore_settings(settings);
settings.endGroup();
}