summaryrefslogtreecommitdiffstats
path: root/src/desktop.h
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-04-19 22:26:37 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-04-19 22:26:37 +0000
commit23be58fdf34cbcb29040b312de7e2b6764f60c50 (patch)
treed25a24e24f830c7618edeadc9d211e15e576c3fa /src/desktop.h
parentupdate to trunk (diff)
parentMerge in outline bitmap image preference feature (diff)
downloadinkscape-23be58fdf34cbcb29040b312de7e2b6764f60c50.tar.gz
inkscape-23be58fdf34cbcb29040b312de7e2b6764f60c50.zip
update to trunk
(bzr r11950.1.329)
Diffstat (limited to 'src/desktop.h')
-rw-r--r--src/desktop.h26
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);