X-Git-Url: http://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fglobalsettings.cpp;fp=pv%2Fglobalsettings.cpp;h=10b344a4aa4bb156e6f52163cf5c7085c7a60866;hp=614b983c40a45418fb6b986c367fd2fad2227ee9;hb=e887fe9e6ede73b9fe9ace9c6bfd4f6a096eb3b2;hpb=9a220973c4e4eaccdab85a5dc90d2ee893f8d247 diff --git a/pv/globalsettings.cpp b/pv/globalsettings.cpp index 614b983c..10b344a4 100644 --- a/pv/globalsettings.cpp +++ b/pv/globalsettings.cpp @@ -17,8 +17,9 @@ * along with this program; if not, see . */ -#include "globalsettings.hpp" -#include "application.hpp" +#include +#include +#include #include #include @@ -30,9 +31,13 @@ #include #include +#include "globalsettings.hpp" +#include "application.hpp" + using std::map; using std::pair; using std::string; +using std::stringstream; using std::vector; namespace pv { @@ -370,4 +375,28 @@ Glib::VariantBase GlobalSettings::restore_variantbase(QSettings &settings) return ret_val; } +void GlobalSettings::store_timestamp(QSettings &settings, const char *name, const pv::util::Timestamp &ts) +{ + stringstream ss; + boost::archive::text_oarchive oa(ss); + oa << boost::serialization::make_nvp(name, ts); + settings.setValue(name, QString::fromStdString(ss.str())); +} + +pv::util::Timestamp GlobalSettings::restore_timestamp(QSettings &settings, const char *name) +{ + util::Timestamp result; + stringstream ss; + ss << settings.value(name).toString().toStdString(); + + try { + boost::archive::text_iarchive ia(ss); + ia >> boost::serialization::make_nvp(name, result); + } catch (boost::archive::archive_exception&) { + qDebug() << "Could not restore setting" << name; + } + + return result; +} + } // namespace pv