diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2014-04-19 22:26:37 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2014-04-19 22:26:37 +0000 |
| commit | 23be58fdf34cbcb29040b312de7e2b6764f60c50 (patch) | |
| tree | d25a24e24f830c7618edeadc9d211e15e576c3fa /src/desktop.h | |
| parent | update to trunk (diff) | |
| parent | Merge in outline bitmap image preference feature (diff) | |
| download | inkscape-23be58fdf34cbcb29040b312de7e2b6764f60c50.tar.gz inkscape-23be58fdf34cbcb29040b312de7e2b6764f60c50.zip | |
update to trunk
(bzr r11950.1.329)
Diffstat (limited to 'src/desktop.h')
| -rw-r--r-- | src/desktop.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/desktop.h b/src/desktop.h index 2f47dc2dd..fec6249e9 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -35,12 +35,14 @@ #include "display/rendermode.h" #include <glibmm/ustring.h> +#include "preferences.h" #include "sp-gradient.h" // TODO refactor enums out to their own .h file class SPCSSAttr; struct SPCanvas; struct SPCanvasItem; struct SPCanvasGroup; +struct DesktopPrefObserver; namespace Inkscape { namespace UI { @@ -206,7 +208,7 @@ public: /// Emitted when the zoom factor changes (not emitted when scrolling). /// The parameter is the new zoom factor sigc::signal<void, double> signal_zoom_changed; - + sigc::connection connectDestroy(const sigc::slot<void, SPDesktop*> &slot) { return _destroy_signal.connect(slot); @@ -256,6 +258,8 @@ public: Inkscape::Display::TemporaryItem * add_temporary_canvasitem (SPCanvasItem *item, guint lifetime, bool move_to_bottom = true); void remove_temporary_canvasitem (Inkscape::Display::TemporaryItem * tempitem); + void redrawDesktop(); + void _setDisplayMode(Inkscape::RenderMode mode); void setDisplayModeNormal() { _setDisplayMode(Inkscape::RENDERMODE_NORMAL); @@ -426,6 +430,26 @@ private: Geom::Affine _d2w; Geom::Affine _doc2dt; + /* + * Allow redrawing or refreshing if preferences change + */ + class DesktopPrefObserver : public Inkscape::Preferences::Observer { + public: + DesktopPrefObserver(SPDesktop *desktop, Glib::ustring const &path) + : Inkscape::Preferences::Observer(path) + , _desktop(desktop) { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->addObserver(*this); + } + private: + void notify(Inkscape::Preferences::Entry const &val) { + _desktop->redrawDesktop(); + } + SPDesktop *_desktop; + }; + + DesktopPrefObserver _image_render_observer; + bool grids_visible; /* don't set this variable directly, use the method below */ void set_grids_visible(bool visible); |
