]> sigrok.org Git - pulseview.git/blobdiff - pv/globalsettings.hpp
MinGW: Fix a compile error due to a missing #include.
[pulseview.git] / pv / globalsettings.hpp
index 317805a72f3ddc1ff5fb4fb5828048ebdaa6bdfd..093ac59b59ca584ba028d3313cfd6753a3065f8a 100644 (file)
 
 using std::function;
 using std::map;
-using std::multimap;
+using std::vector;
 
 namespace pv {
 
+class GlobalSettingsInterface
+{
+public:
+       virtual void on_setting_changed(const QString &key, const QVariant &value) = 0;
+};
+
+
 class GlobalSettings : public QSettings
 {
        Q_OBJECT
@@ -42,20 +49,29 @@ class GlobalSettings : public QSettings
 public:
        static const QString Key_View_ZoomToFitDuringAcq;
        static const QString Key_View_ZoomToFitAfterAcq;
+       static const QString Key_View_TriggerIsZeroTime;
        static const QString Key_View_ColouredBG;
        static const QString Key_View_StickyScrolling;
        static const QString Key_View_ShowSamplingPoints;
        static const QString Key_View_ShowAnalogMinorGrid;
+       static const QString Key_View_ConversionThresholdDispMode;
        static const QString Key_View_DefaultDivHeight;
+       static const QString Key_View_DefaultLogicHeight;
        static const QString Key_Dec_InitialStateConfigurable;
 
+       enum ConvThrDispMode {
+               ConvThrDispMode_None = 0,
+               ConvThrDispMode_Background,
+               ConvThrDispMode_Dots
+       };
+
 public:
        GlobalSettings();
 
        void set_defaults_where_needed();
 
-       static void register_change_handler(const QString key,
-               function<void(QVariant)> cb);
+       static void add_change_handler(GlobalSettingsInterface *cb);
+       static void remove_change_handler(GlobalSettingsInterface *cb);
 
        void setValue(const QString& key, const QVariant& value);
 
@@ -82,7 +98,7 @@ public:
        static GVariant* restore_gvariant(QSettings &settings);
 
 private:
-       static multimap< QString, function<void(QVariant)> > callbacks_;
+       static vector<GlobalSettingsInterface*> callbacks_;
 
        static bool tracking_;
        static map<QString, QVariant> tracked_changes_;