diff options
| author | bulia byak <buliabyak@gmail.com> | 2006-11-03 01:51:51 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2006-11-03 01:51:51 +0000 |
| commit | 874250752d22276a5cf71cc07495a876d1565474 (patch) | |
| tree | 2d562b9a68535b1ee2be3bd757142bcbf741112b /src | |
| parent | add view mode toggle (diff) | |
| download | inkscape-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.cpp | 16 | ||||
| -rw-r--r-- | src/desktop.h | 1 | ||||
| -rw-r--r-- | src/preferences-skeleton.h | 2 | ||||
| -rw-r--r-- | src/verbs.cpp | 5 | ||||
| -rw-r--r-- | src/verbs.h | 1 |
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, |
