diff options
Diffstat (limited to 'src/ui/widget/canvas/prefs.h')
-rw-r--r-- | src/ui/widget/canvas/prefs.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/ui/widget/canvas/prefs.h b/src/ui/widget/canvas/prefs.h new file mode 100644 index 0000000..363fb6d --- /dev/null +++ b/src/ui/widget/canvas/prefs.h @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#ifndef INKSCAPE_UI_WIDGET_CANVAS_PREFS_H +#define INKSCAPE_UI_WIDGET_CANVAS_PREFS_H + +#include "preferences.h" + +namespace Inkscape::UI::Widget { + +class Prefs +{ +public: + Prefs() + { + devmode.action = [this] { set_devmode(devmode); }; + devmode.action(); + } + + // Main preferences + Pref<int> xray_radius = { "/options/rendering/xray-radius", 100, 1, 1500 }; + Pref<int> outline_overlay_opacity = { "/options/rendering/outline-overlay-opacity", 50, 0, 100 }; + Pref<int> update_strategy = { "/options/rendering/update_strategy", 3, 1, 3 }; + Pref<bool> request_opengl = { "/options/rendering/request_opengl" }; + Pref<int> grabsize = { "/options/grabsize/value", 3, 1, 15 }; + Pref<int> numthreads = { "/options/threading/numthreads", 0, 1, 256 }; + + // Colour management + Pref<bool> from_display = { "/options/displayprofile/from_display" }; + Pref<void> displayprofile = { "/options/displayprofile" }; + Pref<void> softproof = { "/options/softproof" }; + + // Auto-scrolling + Pref<int> autoscrolldistance = { "/options/autoscrolldistance/value", 0, -1000, 10000 }; + Pref<double> autoscrollspeed = { "/options/autoscrollspeed/value", 1.0, 0.0, 10.0 }; + + // Devmode preferences + Pref<int> tile_size = { "/options/rendering/tile_size", 300, 1, 10000 }; + Pref<int> render_time_limit = { "/options/rendering/render_time_limit", 80, 1, 5000 }; + Pref<bool> block_updates = { "/options/rendering/block_updates", true }; + Pref<int> pixelstreamer_method = { "/options/rendering/pixelstreamer_method", 1, 1, 4 }; + Pref<int> padding = { "/options/rendering/padding", 350, 0, 1000 }; + Pref<int> prerender = { "/options/rendering/prerender", 100, 0, 1000 }; + Pref<int> preempt = { "/options/rendering/preempt", 250, 0, 1000 }; + Pref<int> coarsener_min_size = { "/options/rendering/coarsener_min_size", 200, 0, 1000 }; + Pref<int> coarsener_glue_size = { "/options/rendering/coarsener_glue_size", 80, 0, 1000 }; + Pref<double> coarsener_min_fullness = { "/options/rendering/coarsener_min_fullness", 0.3, 0.0, 1.0 }; + + // Debug switches + Pref<bool> debug_framecheck = { "/options/rendering/debug_framecheck" }; + Pref<bool> debug_logging = { "/options/rendering/debug_logging" }; + Pref<bool> debug_delay_redraw = { "/options/rendering/debug_delay_redraw" }; + Pref<int> debug_delay_redraw_time = { "/options/rendering/debug_delay_redraw_time", 50, 0, 1000000 }; + Pref<bool> debug_show_redraw = { "/options/rendering/debug_show_redraw" }; + Pref<bool> debug_show_unclean = { "/options/rendering/debug_show_unclean" }; // no longer implemented + Pref<bool> debug_show_snapshot = { "/options/rendering/debug_show_snapshot" }; + Pref<bool> debug_show_clean = { "/options/rendering/debug_show_clean" }; // no longer implemented + Pref<bool> debug_disable_redraw = { "/options/rendering/debug_disable_redraw" }; + Pref<bool> debug_sticky_decoupled = { "/options/rendering/debug_sticky_decoupled" }; + Pref<bool> debug_animate = { "/options/rendering/debug_animate" }; + +private: + // Developer mode + Pref<bool> devmode = { "/options/rendering/devmode" }; + + void set_devmode(bool on) + { + tile_size.set_enabled(on); + render_time_limit.set_enabled(on); + pixelstreamer_method.set_enabled(on); + padding.set_enabled(on); + prerender.set_enabled(on); + preempt.set_enabled(on); + coarsener_min_size.set_enabled(on); + coarsener_glue_size.set_enabled(on); + coarsener_min_fullness.set_enabled(on); + debug_framecheck.set_enabled(on); + debug_logging.set_enabled(on); + debug_delay_redraw.set_enabled(on); + debug_delay_redraw_time.set_enabled(on); + debug_show_redraw.set_enabled(on); + debug_show_unclean.set_enabled(on); + debug_show_snapshot.set_enabled(on); + debug_show_clean.set_enabled(on); + debug_disable_redraw.set_enabled(on); + debug_sticky_decoupled.set_enabled(on); + debug_animate.set_enabled(on); + } +}; + +} // namespace Inkscape::UI::Widget + +#endif // INKSCAPE_UI_WIDGET_CANVAS_PREFS_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : |