X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fglobalsettings.cpp;h=6821f342757d49008b250694278da507826dbb1e;hb=3ce5dd9a981d128085dc5ea507dd7157a87be4cb;hp=1573a9f2ba165b23c2582de93aa0aba05ef794c1;hpb=79a37ed84b4021736ee7cac75fa3a255b5453dda;p=pulseview.git diff --git a/pv/globalsettings.cpp b/pv/globalsettings.cpp index 1573a9f2..6821f342 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 { @@ -47,11 +52,13 @@ const QString GlobalSettings::Key_General_Language = "General_Language"; const QString GlobalSettings::Key_General_Theme = "General_Theme"; const QString GlobalSettings::Key_General_Style = "General_Style"; const QString GlobalSettings::Key_General_SaveWithSetup = "General_SaveWithSetup"; +const QString GlobalSettings::Key_General_StartAllSessions = "General_StartAllSessions"; const QString GlobalSettings::Key_View_ZoomToFitDuringAcq = "View_ZoomToFitDuringAcq"; const QString GlobalSettings::Key_View_ZoomToFitAfterAcq = "View_ZoomToFitAfterAcq"; const QString GlobalSettings::Key_View_TriggerIsZeroTime = "View_TriggerIsZeroTime"; const QString GlobalSettings::Key_View_ColoredBG = "View_ColoredBG"; const QString GlobalSettings::Key_View_StickyScrolling = "View_StickyScrolling"; +const QString GlobalSettings::Key_View_AllowVerticalDragging = "View_AllowVerticalDragging"; const QString GlobalSettings::Key_View_ShowSamplingPoints = "View_ShowSamplingPoints"; const QString GlobalSettings::Key_View_FillSignalHighAreas = "View_FillSignalHighAreas"; const QString GlobalSettings::Key_View_FillSignalHighAreaColor = "View_FillSignalHighAreaColor"; @@ -64,6 +71,7 @@ const QString GlobalSettings::Key_View_SnapDistance = "View_SnapDistance"; const QString GlobalSettings::Key_View_CursorFillColor = "View_CursorFillColor"; const QString GlobalSettings::Key_View_CursorShowFrequency = "View_CursorShowFrequency"; const QString GlobalSettings::Key_View_CursorShowInterval = "View_CursorShowInterval"; +const QString GlobalSettings::Key_View_CursorShowSamples = "View_CursorShowSamples"; const QString GlobalSettings::Key_Dec_InitialStateConfigurable = "Dec_InitialStateConfigurable"; const QString GlobalSettings::Key_Dec_ExportFormat = "Dec_ExportFormat"; const QString GlobalSettings::Key_Dec_AlwaysShowAllRows = "Dec_AlwaysShowAllRows"; @@ -96,10 +104,11 @@ void GlobalSettings::set_defaults_where_needed() { if (!contains(Key_General_Language)) { // Determine and set default UI language - QString language = QLocale().uiLanguages().first(); // May return e.g. en-Latn-US + QString language = QLocale().uiLanguages().first(); // May return e.g. en-Latn-US // clazy:exclude=detaching-temporary language = language.split("-").first(); setValue(Key_General_Language, language); + apply_language(); } // Use no theme by default @@ -116,6 +125,10 @@ void GlobalSettings::set_defaults_where_needed() if (!contains(Key_View_ZoomToFitAfterAcq)) setValue(Key_View_ZoomToFitAfterAcq, true); + // Allow vertical dragging by default + if (!contains(Key_View_AllowVerticalDragging)) + setValue(Key_View_AllowVerticalDragging, true); + // Enable colored trace backgrounds by default if (!contains(Key_View_ColoredBG)) setValue(Key_View_ColoredBG, true); @@ -369,4 +382,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