]> sigrok.org Git - pulseview.git/blobdiff - pv/globalsettings.hpp
Session: Fix issue #67 by improving error handling
[pulseview.git] / pv / globalsettings.hpp
index d8374a354ff432c3d2edbfff810e6fb909c3389c..f6239a6b3d089f726cea54afd1bffaf3f211b14a 100644 (file)
@@ -17,8 +17,8 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef PULSEVIEW_GLOBALSETTINGS_HPP
-#define PULSEVIEW_GLOBALSETTINGS_HPP
+#ifndef PULSEVIEW_PV_GLOBALSETTINGS_HPP
+#define PULSEVIEW_PV_GLOBALSETTINGS_HPP
 
 #include <map>
 
@@ -30,6 +30,8 @@
 #include <QString>
 #include <QVariant>
 
+#include "util.hpp"
+
 using std::map;
 using std::pair;
 using std::vector;
@@ -51,13 +53,17 @@ class GlobalSettings : public QSettings
        Q_OBJECT
 
 public:
+       static const QString Key_General_Language;
        static const QString Key_General_Theme;
        static const QString Key_General_Style;
+       static const QString Key_General_SaveWithSetup;
+       static const QString Key_General_StartAllSessions;
        static const QString Key_View_ZoomToFitDuringAcq;
        static const QString Key_View_ZoomToFitAfterAcq;
        static const QString Key_View_TriggerIsZeroTime;
        static const QString Key_View_ColoredBG;
        static const QString Key_View_StickyScrolling;
+       static const QString Key_View_AllowVerticalDragging;
        static const QString Key_View_ShowSamplingPoints;
        static const QString Key_View_FillSignalHighAreas;
        static const QString Key_View_FillSignalHighAreaColor;
@@ -66,9 +72,15 @@ public:
        static const QString Key_View_DefaultDivHeight;
        static const QString Key_View_DefaultLogicHeight;
        static const QString Key_View_ShowHoverMarker;
+       static const QString Key_View_KeepRulerItemSelected;
        static const QString Key_View_SnapDistance;
+       static const QString Key_View_CursorFillColor;
+       static const QString Key_View_CursorShowInterval;
+       static const QString Key_View_CursorShowFrequency;
+       static const QString Key_View_CursorShowSamples;
        static const QString Key_Dec_InitialStateConfigurable;
        static const QString Key_Dec_ExportFormat;
+       static const QString Key_Dec_AlwaysShowAllRows;
        static const QString Key_Log_BufferSize;
        static const QString Key_Log_NotifyOfStacktrace;
 
@@ -81,11 +93,16 @@ public:
 public:
        GlobalSettings();
 
-       void set_defaults_where_needed();
        void save_internal_defaults();
+       void set_defaults_where_needed();
+       void set_bright_theme_default_colors();
+       void set_dark_theme_default_colors();
 
+       static bool current_theme_is_dark();
        void apply_theme();
 
+       void apply_language();
+
        static void add_change_handler(GlobalSettingsInterface *cb);
        static void remove_change_handler(GlobalSettingsInterface *cb);
 
@@ -110,13 +127,14 @@ public:
        void undo_tracked_changes();
 
        static void store_gvariant(QSettings &settings, GVariant *v);
-
        static GVariant* restore_gvariant(QSettings &settings);
 
        static void store_variantbase(QSettings &settings, Glib::VariantBase v);
-
        static Glib::VariantBase restore_variantbase(QSettings &settings);
 
+       static void store_timestamp(QSettings &settings, const char *name, const pv::util::Timestamp &ts);
+       static pv::util::Timestamp restore_timestamp(QSettings &settings, const char *name);
+
 private:
        static vector<GlobalSettingsInterface*> callbacks_;
 
@@ -125,8 +143,10 @@ private:
 
        static QString default_style_;
        static QPalette default_palette_;
+
+       static bool is_dark_theme_;
 };
 
 } // namespace pv
 
-#endif // PULSEVIEW_GLOBALSETTINGS_HPP
+#endif // PULSEVIEW_PV_GLOBALSETTINGS_HPP