summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2006-11-03 01:51:51 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2006-11-03 01:51:51 +0000
commit874250752d22276a5cf71cc07495a876d1565474 (patch)
tree2d562b9a68535b1ee2be3bd757142bcbf741112b /src
parentadd view mode toggle (diff)
downloadinkscape-874250752d22276a5cf71cc07495a876d1565474.tar.gz
inkscape-874250752d22276a5cf71cc07495a876d1565474.zip
add view mode toggle, store current mode for the session in prefs
(bzr r1888)
Diffstat (limited to 'src')
-rw-r--r--src/desktop.cpp16
-rw-r--r--src/desktop.h1
-rw-r--r--src/preferences-skeleton.h2
-rw-r--r--src/verbs.cpp5
-rw-r--r--src/verbs.h1
5 files changed, 21 insertions, 4 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index df13bed37..7b0c1f6fc 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -190,12 +190,10 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas)
if (prefs_get_int_attribute("options.startmode", "outline", 0)) {
// Start in outline mode
- SP_CANVAS_ARENA (drawing)->arena->rendermode = RENDERMODE_OUTLINE;
- canvas->rendermode = RENDERMODE_OUTLINE; // canvas needs that for choosing the best buffer size
+ setDisplayModeOutline();
} else {
// Start in normal mode, default
- SP_CANVAS_ARENA (drawing)->arena->rendermode = RENDERMODE_NORMAL;
- canvas->rendermode = RENDERMODE_NORMAL; // canvas needs that for choosing the best buffer size
+ setDisplayModeNormal();
}
grid = (SPCanvasGroup *) sp_canvas_item_new (main, SP_TYPE_CANVAS_GROUP, NULL);
@@ -347,6 +345,7 @@ SPDesktop::~SPDesktop() {}
void SPDesktop::setDisplayModeNormal()
{
+ prefs_set_int_attribute("options.outlinemode", "value", 0);
SP_CANVAS_ARENA (drawing)->arena->rendermode = RENDERMODE_NORMAL;
canvas->rendermode = RENDERMODE_NORMAL; // canvas needs that for choosing the best buffer size
sp_canvas_item_affine_absolute (SP_CANVAS_ITEM (main), _d2w); // redraw
@@ -354,11 +353,20 @@ void SPDesktop::setDisplayModeNormal()
void SPDesktop::setDisplayModeOutline()
{
+ prefs_set_int_attribute("options.outlinemode", "value", 1);
SP_CANVAS_ARENA (drawing)->arena->rendermode = RENDERMODE_OUTLINE;
canvas->rendermode = RENDERMODE_OUTLINE; // canvas needs that for choosing the best buffer size
sp_canvas_item_affine_absolute (SP_CANVAS_ITEM (main), _d2w); // redraw
}
+void SPDesktop::displayModeToggle()
+{
+ if (prefs_get_int_attribute("options.outlinemode", "value", prefs_get_int_attribute("options.startmode", "outline", 0)))
+ setDisplayModeNormal();
+ else
+ setDisplayModeOutline();
+}
+
/**
* Returns current root (=bottom) layer.
*/
diff --git a/src/desktop.h b/src/desktop.h
index 948fd53bc..708ca8fd5 100644
--- a/src/desktop.h
+++ b/src/desktop.h
@@ -161,6 +161,7 @@ struct SPDesktop : public Inkscape::UI::View::View
void setDisplayModeNormal();
void setDisplayModeOutline();
+ void displayModeToggle();
void set_active (bool new_active);
SPObject *currentRoot() const;
diff --git a/src/preferences-skeleton.h b/src/preferences-skeleton.h
index ec8ca4428..32614fc7b 100644
--- a/src/preferences-skeleton.h
+++ b/src/preferences-skeleton.h
@@ -194,6 +194,8 @@ static char const preferences_skeleton[] =
" <group id=\"compassangledisplay\" value=\"0\"/>\n"
" <group id=\"maskobject\" topmost=\"1\" remove=\"1\"/>\n"
" <group id=\"blurquality\" value=\"0\"/>\n"
+" <group id=\"startmode\" outline=\"0\"/>\n"
+" <group id=\"outlinemode\" value=\"0\"/>\n"
" <group id=\"wireframecolors\" "
" onlight=\"255\"" // 000000ff
" ondark=\"4294967295\"" //ffffffff
diff --git a/src/verbs.cpp b/src/verbs.cpp
index d741d5a8f..58003bbdb 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -1535,6 +1535,9 @@ ZoomVerb::perform(SPAction *action, void *data, void *pdata)
case SP_VERB_VIEW_MODE_OUTLINE:
dt->setDisplayModeOutline();
break;
+ case SP_VERB_VIEW_MODE_TOGGLE:
+ dt->displayModeToggle();
+ break;
case SP_VERB_VIEW_ICON_PREVIEW:
show_panel( Inkscape::UI::Dialogs::IconPreviewPanel::getInstance(), "dialogs.iconpreview", SP_VERB_VIEW_ICON_PREVIEW );
break;
@@ -2255,6 +2258,8 @@ Verb *Verb::_base_verbs[] = {
N_("Switch to normal display mode"), NULL),
new ZoomVerb(SP_VERB_VIEW_MODE_OUTLINE, "ViewModeOutline", N_("_Outline"),
N_("Switch to outline (wireframe) display mode"), NULL),
+ new ZoomVerb(SP_VERB_VIEW_MODE_TOGGLE, "ViewModeToggle", N_("Toggle Display Mode"),
+ N_("Toggle between normal and outline display modes"), NULL),
new ZoomVerb(SP_VERB_VIEW_ICON_PREVIEW, "ViewIconPreview", N_("Ico_n Preview..."),
N_("Open a window to preview objects at different icon resolutions"), "view_icon_preview"),
diff --git a/src/verbs.h b/src/verbs.h
index 2055ac2ee..f20806c02 100644
--- a/src/verbs.h
+++ b/src/verbs.h
@@ -179,6 +179,7 @@ enum {
SP_VERB_VIEW_NEW_PREVIEW,
SP_VERB_VIEW_MODE_NORMAL,
SP_VERB_VIEW_MODE_OUTLINE,
+ SP_VERB_VIEW_MODE_TOGGLE,
SP_VERB_VIEW_ICON_PREVIEW,
SP_VERB_ZOOM_PAGE,
SP_VERB_ZOOM_PAGE_WIDTH,