This is an automated email from the git hooks/post-receive script. thansen pushed a commit to branch master in repository aseprite.
commit 2af47fe9071c0b25ec4e720dac78840c8fa4b586 Author: David Capello <[email protected]> Date: Thu Mar 24 13:04:35 2016 -0300 Add option to toggle the selection edges visibility (fix #861) --- data/gui.xml | 34 +++++---- data/pref.xml | 7 +- src/app/CMakeLists.txt | 1 + src/app/commands/cmd_grid.cpp | 66 +++------------- src/app/commands/cmd_show.cpp | 141 +++++++++++++++++++++++++++++++++++ src/app/commands/commands_list.h | 2 + src/app/ui/editor/editor.cpp | 99 ++++++++++++------------ src/app/ui/editor/editor.h | 7 +- src/app/ui/editor/tool_loop_impl.cpp | 9 ++- 9 files changed, 239 insertions(+), 127 deletions(-) diff --git a/data/gui.xml b/data/gui.xml index 2ebc57b..dd365d9 100644 --- a/data/gui.xml +++ b/data/gui.xml @@ -111,6 +111,7 @@ <key command="PaletteEditor" shortcut="F4"> <param name="switch" value="true" /> </key> + <key command="ShowExtras" shortcut="Ctrl+H" /> <!-- Tabs --> <key command="GotoNextTab" shortcut="Ctrl+Tab" /> <key command="GotoPreviousTab" shortcut="Ctrl+Shift+Tab" /> @@ -718,28 +719,35 @@ <item command="SaveMask" text="&Save to MSK file" /> </menu> <menu text="&View"> - <item command="DuplicateView" text="Duplicate &View" /> + <item command="DuplicateView" text="Duplicate &View" /> <separator /> - <item command="ShowPixelGrid" text="Show &Pixel Grid" /> - <item command="ShowGrid" text="Show &Grid" /> - <item command="SnapToGrid" text="&Snap to Grid" /> - <item command="GridSettings" text="Gri&d Settings" /> - <item command="SelectionAsGrid" text="Select&ion as Grid" /> - <menu text="Tiled &Mode"> + <item command="ShowExtras" text="&Extras" /> + <menu text="&Show"> + <item command="ShowSelectionEdges" text="&Selection Edges" /> + <item command="ShowGrid" text="&Grid" /> + <item command="ShowPixelGrid" text="&Pixel Grid" /> + </menu> + <separator /> + <menu text="&Grid"> + <item command="GridSettings" text="Gri&d Settings" /> + <item command="SelectionAsGrid" text="Select&ion as Grid" /> + <item command="SnapToGrid" text="&Snap to Grid" /> + </menu> + <menu text="Tiled &Mode"> <item command="TiledMode" text="&None"> <param name="axis" value="none" /> - </item> + </item> <item command="TiledMode" text="Tiled in &Both Axes"> <param name="axis" value="both" /> - </item> + </item> <item command="TiledMode" text="Tiled in &X Axis"> <param name="axis" value="x" /> - </item> + </item> <item command="TiledMode" text="Tiled in &Y Axis"> <param name="axis" value="y" /> - </item> - </menu> - <item command="SymmetryMode" text="S&ymmetry Options" /> + </item> + </menu> + <item command="SymmetryMode" text="S&ymmetry Options" /> <separator /> <item command="SetLoopSection" text="Set &Loop Section" /> <item command="ShowOnionSkin" text="Show &Onion Skin" /> diff --git a/data/pref.xml b/data/pref.xml index e912877..d283514 100644 --- a/data/pref.xml +++ b/data/pref.xml @@ -220,14 +220,12 @@ </section> <section id="grid"> <option id="snap" type="bool" default="false" migrate="Grid.SnapTo" /> - <option id="visible" type="bool" default="false" migrate="Grid.Visible" /> <option id="bounds" type="gfx::Rect" default="gfx::Rect(0, 0, 16, 16)" migrate="Grid.Bounds" /> <option id="color" type="app::Color" default="app::Color::fromRgb(0, 0, 255)" migrate="Grid.Color" /> <option id="opacity" type="int" default="160" migrate="Grid.Opacity" /> <option id="auto_opacity" type="bool" default="true" migrate="Grid.AutoOpacity" /> </section> <section id="pixel_grid"> - <option id="visible" type="bool" default="false" migrate="PixelGrid.Visible" /> <option id="color" type="app::Color" default="app::Color::fromRgb(200, 200, 200)" migrate="PixelGrid.Color" /> <option id="opacity" type="int" default="160" migrate="PixelGrid.Opacity" /> <option id="auto_opacity" type="bool" default="true" migrate="PixelGrid.AutoOpacity" /> @@ -281,6 +279,11 @@ <option id="scroll" type="gfx::Point" /> <option id="auto_scroll" type="bool" default="true" /> </section> + <section id="show"> + <option id="selection_edges" type="bool" default="true" /> + <option id="grid" type="bool" default="false" migrate="grid.visible" /> + <option id="pixel_grid" type="bool" default="false" migrate="pixel_grid.visible" /> + </section> </document> </preferences> diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 149d59e..fcc4136 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -254,6 +254,7 @@ add_library(app-lib commands/cmd_set_palette.cpp commands/cmd_set_palette_entry_size.cpp commands/cmd_set_same_ink.cpp + commands/cmd_show.cpp commands/cmd_sprite_properties.cpp commands/cmd_sprite_size.cpp commands/cmd_switch_colors.cpp diff --git a/src/app/commands/cmd_grid.cpp b/src/app/commands/cmd_grid.cpp index e091b2c..54c07eb 100644 --- a/src/app/commands/cmd_grid.cpp +++ b/src/app/commands/cmd_grid.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2001-2015 David Capello +// Copyright (C) 2001-2016 David Capello // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -29,50 +29,6 @@ namespace app { using namespace ui; using namespace gfx; -class ShowGridCommand : public Command { -public: - ShowGridCommand() - : Command("ShowGrid", - "Show Grid", - CmdUIOnlyFlag) { - } - - Command* clone() const override { return new ShowGridCommand(*this); } - -protected: - bool onChecked(Context* ctx) override { - DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); - return docPref.grid.visible(); - } - - void onExecute(Context* ctx) override { - DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); - docPref.grid.visible(!docPref.grid.visible()); - } -}; - -class ShowPixelGridCommand : public Command { -public: - ShowPixelGridCommand() - : Command("ShowPixelGrid", - "Show Pixel Grid", - CmdUIOnlyFlag) { - } - - Command* clone() const override { return new ShowPixelGridCommand(*this); } - -protected: - bool onChecked(Context* ctx) override { - DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); - return docPref.pixelGrid.visible(); - } - - void onExecute(Context* ctx) override { - DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); - docPref.pixelGrid.visible(!docPref.pixelGrid.visible()); - } -}; - class SnapToGridCommand : public Command { public: SnapToGridCommand() @@ -122,8 +78,10 @@ protected: Preferences::instance().document(ctx->activeDocument()); docPref.grid.bounds(mask->bounds()); - if (!docPref.grid.visible()) - docPref.grid.visible(true); + + // Make grid visible + if (!docPref.show.grid()) + docPref.show.grid(true); } }; @@ -177,17 +135,11 @@ void GridSettingsCommand::onExecute(Context* context) bounds.h = MAX(bounds.h, 1); docPref.grid.bounds(bounds); - } -} -Command* CommandFactory::createShowGridCommand() -{ - return new ShowGridCommand; -} - -Command* CommandFactory::createShowPixelGridCommand() -{ - return new ShowPixelGridCommand; + // Make grid visible + if (!docPref.show.grid()) + docPref.show.grid(true); + } } Command* CommandFactory::createSnapToGridCommand() diff --git a/src/app/commands/cmd_show.cpp b/src/app/commands/cmd_show.cpp new file mode 100644 index 0000000..e7620aa --- /dev/null +++ b/src/app/commands/cmd_show.cpp @@ -0,0 +1,141 @@ +// Aseprite +// Copyright (C) 2001-2016 David Capello +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as +// published by the Free Software Foundation. + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "app/commands/command.h" +#include "app/context.h" +#include "app/pref/preferences.h" + +namespace app { + +class ShowExtrasCommand : public Command { +public: + ShowExtrasCommand() + : Command("ShowExtras", + "Show Extras", + CmdUIOnlyFlag) { + } + + Command* clone() const override { return new ShowExtrasCommand(*this); } + +protected: + bool onChecked(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + return docPref.show.selectionEdges(); + } + + void onExecute(Context* ctx) override { + DocumentPreferences& globPref = Preferences::instance().document(nullptr); + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + if (docPref.show.selectionEdges()) { + globPref.show = docPref.show; + docPref.show.selectionEdges(false); + docPref.show.grid(false); + docPref.show.pixelGrid(false); + } + else { + docPref.show.selectionEdges(true); + docPref.show.grid( + docPref.show.grid() || + globPref.show.grid()); + docPref.show.pixelGrid( + docPref.show.pixelGrid() || + globPref.show.pixelGrid()); + } + } +}; + +class ShowGridCommand : public Command { +public: + ShowGridCommand() + : Command("ShowGrid", + "Show Grid", + CmdUIOnlyFlag) { + } + + Command* clone() const override { return new ShowGridCommand(*this); } + +protected: + bool onChecked(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + return docPref.show.grid(); + } + + void onExecute(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + docPref.show.grid(!docPref.show.grid()); + } +}; + +class ShowPixelGridCommand : public Command { +public: + ShowPixelGridCommand() + : Command("ShowPixelGrid", + "Show Pixel Grid", + CmdUIOnlyFlag) { + } + + Command* clone() const override { return new ShowPixelGridCommand(*this); } + +protected: + bool onChecked(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + return docPref.show.pixelGrid(); + } + + void onExecute(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + docPref.show.pixelGrid(!docPref.show.pixelGrid()); + } +}; + +class ShowSelectionEdgesCommand : public Command { +public: + ShowSelectionEdgesCommand() + : Command("ShowSelectionEdges", + "Show Selection Edges", + CmdUIOnlyFlag) { + } + + Command* clone() const override { return new ShowSelectionEdgesCommand(*this); } + +protected: + bool onChecked(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + return docPref.show.selectionEdges(); + } + + void onExecute(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + docPref.show.selectionEdges(!docPref.show.selectionEdges()); + } +}; + +Command* CommandFactory::createShowExtrasCommand() +{ + return new ShowExtrasCommand; +} + +Command* CommandFactory::createShowGridCommand() +{ + return new ShowGridCommand; +} + +Command* CommandFactory::createShowPixelGridCommand() +{ + return new ShowPixelGridCommand; +} + +Command* CommandFactory::createShowSelectionEdgesCommand() +{ + return new ShowSelectionEdgesCommand; +} + +} // namespace app diff --git a/src/app/commands/commands_list.h b/src/app/commands/commands_list.h index 4fc6516..a558ac3 100644 --- a/src/app/commands/commands_list.h +++ b/src/app/commands/commands_list.h @@ -116,9 +116,11 @@ FOR_EACH_COMMAND(SetLoopSection) FOR_EACH_COMMAND(SetPalette) FOR_EACH_COMMAND(SetPaletteEntrySize) FOR_EACH_COMMAND(SetSameInk) +FOR_EACH_COMMAND(ShowExtras) FOR_EACH_COMMAND(ShowGrid) FOR_EACH_COMMAND(ShowOnionSkin) FOR_EACH_COMMAND(ShowPixelGrid) +FOR_EACH_COMMAND(ShowSelectionEdges) FOR_EACH_COMMAND(SnapToGrid) FOR_EACH_COMMAND(SpriteProperties) FOR_EACH_COMMAND(SpriteSize) diff --git a/src/app/ui/editor/editor.cpp b/src/app/ui/editor/editor.cpp index f847633..6e4bb70 100644 --- a/src/app/ui/editor/editor.cpp +++ b/src/app/ui/editor/editor.cpp @@ -153,6 +153,7 @@ Editor::Editor(Document* document, EditorFlags flags) , m_layer(m_sprite->folder()->getFirstLayer()) , m_frame(frame_t(0)) , m_zoom(1, 1) + , m_docPref(Preferences::instance().document(document)) , m_brushPreview(this) , m_lastDrawingPosition(-1, -1) , m_quicktool(NULL) @@ -183,22 +184,23 @@ Editor::Editor(Document* document, EditorFlags flags) App::instance()->getMainWindow()->getContextBar()->BrushChange.connect( base::Bind<void>(&Editor::onContextBarBrushChange, this)); - DocumentPreferences& docPref = Preferences::instance().document(m_document); - // Restore last site in preferences - frame_t preferredFrame = docPref.site.frame(); - Layer* preferredLayer = m_sprite->indexToLayer(docPref.site.layer()); + frame_t preferredFrame = m_docPref.site.frame(); + Layer* preferredLayer = m_sprite->indexToLayer(m_docPref.site.layer()); if (preferredFrame >= 0 && preferredFrame <= m_sprite->lastFrame()) setFrame(preferredFrame); if (preferredLayer) setLayer(preferredLayer); - m_tiledConn = docPref.tiled.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); - m_gridConn = docPref.grid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); - m_pixelGridConn = docPref.pixelGrid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); - m_bgConn = docPref.bg.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); - m_onionskinConn = docPref.onionskin.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); + m_tiledConn = m_docPref.tiled.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); + m_gridConn = m_docPref.grid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); + m_pixelGridConn = m_docPref.pixelGrid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); + m_bgConn = m_docPref.bg.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); + m_onionskinConn = m_docPref.onionskin.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); m_symmetryModeConn = Preferences::instance().symmetryMode.enabled.AfterChange.connect(base::Bind<void>(&Editor::invalidateIfActive, this)); + m_showExtrasConn = + m_docPref.show.AfterChange.connect( + base::Bind<void>(&Editor::onShowExtrasChange, this)); m_document->addObserver(this); @@ -208,10 +210,8 @@ Editor::Editor(Document* document, EditorFlags flags) Editor::~Editor() { if (m_document && m_sprite) { - DocumentPreferences& docPref = Preferences::instance() - .document(m_document); - docPref.site.frame(frame()); - docPref.site.layer(m_sprite->layerToIndex(layer())); + m_docPref.site.frame(frame()); + m_docPref.site.layer(m_sprite->layerToIndex(layer())); } m_observers.notifyDestroyEditor(this); @@ -309,8 +309,7 @@ void Editor::setLayer(const Layer* layer) // If the onion skinning depends on the active layer, we've to // redraw the whole editor. if (m_document && changed) { - DocumentPreferences& docPref = Preferences::instance().document(m_document); - if (docPref.onionskin.currentLayer()) + if (m_docPref.onionskin.currentLayer()) invalidate(); } @@ -464,26 +463,23 @@ void Editor::drawOneSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& sprite m_renderEngine.disableOnionskin(); if ((m_flags & kShowOnionskin) == kShowOnionskin) { - DocumentPreferences& docPref = Preferences::instance() - .document(m_document); - - if (docPref.onionskin.active()) { + if (m_docPref.onionskin.active()) { OnionskinOptions opts( - (docPref.onionskin.type() == app::gen::OnionskinType::MERGE ? + (m_docPref.onionskin.type() == app::gen::OnionskinType::MERGE ? render::OnionskinType::MERGE: - (docPref.onionskin.type() == app::gen::OnionskinType::RED_BLUE_TINT ? + (m_docPref.onionskin.type() == app::gen::OnionskinType::RED_BLUE_TINT ? render::OnionskinType::RED_BLUE_TINT: render::OnionskinType::NONE))); - opts.position(docPref.onionskin.position()); - opts.prevFrames(docPref.onionskin.prevFrames()); - opts.nextFrames(docPref.onionskin.nextFrames()); - opts.opacityBase(docPref.onionskin.opacityBase()); - opts.opacityStep(docPref.onionskin.opacityStep()); - opts.layer(docPref.onionskin.currentLayer() ? m_layer: nullptr); + opts.position(m_docPref.onionskin.position()); + opts.prevFrames(m_docPref.onionskin.prevFrames()); + opts.nextFrames(m_docPref.onionskin.nextFrames()); + opts.opacityBase(m_docPref.onionskin.opacityBase()); + opts.opacityStep(m_docPref.onionskin.opacityStep()); + opts.layer(m_docPref.onionskin.currentLayer() ? m_layer: nullptr); FrameTag* tag = nullptr; - if (docPref.onionskin.loopTag()) + if (m_docPref.onionskin.loopTag()) tag = m_sprite->frameTags().innerTag(m_frame); opts.loopTag(tag); @@ -563,10 +559,7 @@ void Editor::drawSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& _rc) outside.createSubtraction(outside, gfx::Region(spriteRect)); // Document preferences - DocumentPreferences& docPref = - Preferences::instance().document(m_document); - - if (int(docPref.tiled.mode()) & int(filters::TiledMode::X_AXIS)) { + if (int(m_docPref.tiled.mode()) & int(filters::TiledMode::X_AXIS)) { drawOneSpriteUnclippedRect(g, rc, -spriteRect.w, 0); drawOneSpriteUnclippedRect(g, rc, +spriteRect.w, 0); @@ -574,7 +567,7 @@ void Editor::drawSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& _rc) outside.createSubtraction(outside, gfx::Region(enclosingRect)); } - if (int(docPref.tiled.mode()) & int(filters::TiledMode::Y_AXIS)) { + if (int(m_docPref.tiled.mode()) & int(filters::TiledMode::Y_AXIS)) { drawOneSpriteUnclippedRect(g, rc, 0, -spriteRect.h); drawOneSpriteUnclippedRect(g, rc, 0, +spriteRect.h); @@ -582,7 +575,7 @@ void Editor::drawSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& _rc) outside.createSubtraction(outside, gfx::Region(enclosingRect)); } - if (docPref.tiled.mode() == filters::TiledMode::BOTH) { + if (m_docPref.tiled.mode() == filters::TiledMode::BOTH) { drawOneSpriteUnclippedRect(g, rc, -spriteRect.w, -spriteRect.h); drawOneSpriteUnclippedRect(g, rc, +spriteRect.w, -spriteRect.h); drawOneSpriteUnclippedRect(g, rc, -spriteRect.w, +spriteRect.h); @@ -610,34 +603,34 @@ void Editor::drawSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& _rc) IntersectClip clip(g, cliprc); // Draw the pixel grid - if ((m_zoom.scale() > 2.0) && docPref.pixelGrid.visible()) { - int alpha = docPref.pixelGrid.opacity(); + if ((m_zoom.scale() > 2.0) && m_docPref.show.pixelGrid()) { + int alpha = m_docPref.pixelGrid.opacity(); - if (docPref.pixelGrid.autoOpacity()) { + if (m_docPref.pixelGrid.autoOpacity()) { alpha = int(alpha * (m_zoom.scale()-2.) / (16.-2.)); alpha = MID(0, alpha, 255); } drawGrid(g, enclosingRect, Rect(0, 0, 1, 1), - docPref.pixelGrid.color(), alpha); + m_docPref.pixelGrid.color(), alpha); } // Draw the grid - if (docPref.grid.visible()) { - gfx::Rect gridrc = docPref.grid.bounds(); + if (m_docPref.show.grid()) { + gfx::Rect gridrc = m_docPref.grid.bounds(); if (m_zoom.apply(gridrc.w) > 2 && m_zoom.apply(gridrc.h) > 2) { - int alpha = docPref.grid.opacity(); + int alpha = m_docPref.grid.opacity(); - if (docPref.grid.autoOpacity()) { + if (m_docPref.grid.autoOpacity()) { double len = (m_zoom.apply(gridrc.w) + m_zoom.apply(gridrc.h)) / 2.; alpha = int(alpha * len / 32.); alpha = MID(0, alpha, 255); } if (alpha > 8) - drawGrid(g, enclosingRect, docPref.grid.bounds(), - docPref.grid.color(), alpha); + drawGrid(g, enclosingRect, m_docPref.grid.bounds(), + m_docPref.grid.color(), alpha); } } } @@ -647,14 +640,14 @@ void Editor::drawSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& _rc) if (isActive() && (m_flags & Editor::kShowSymmetryLine) && Preferences::instance().symmetryMode.enabled()) { - switch (docPref.symmetry.mode()) { + switch (m_docPref.symmetry.mode()) { case app::gen::SymmetryMode::NONE: // Do nothing break; case app::gen::SymmetryMode::HORIZONTAL: { - int x = docPref.symmetry.xAxis(); + int x = m_docPref.symmetry.xAxis(); if (x > 0) { - gfx::Color color = color_utils::color_for_ui(docPref.grid.color()); + gfx::Color color = color_utils::color_for_ui(m_docPref.grid.color()); g->drawVLine(color, spriteRect.x + m_zoom.apply(x), enclosingRect.y, @@ -663,9 +656,9 @@ void Editor::drawSpriteUnclippedRect(ui::Graphics* g, const gfx::Rect& _rc) break; } case app::gen::SymmetryMode::VERTICAL: { - int y = docPref.symmetry.yAxis(); + int y = m_docPref.symmetry.yAxis(); if (y > 0) { - gfx::Color color = color_utils::color_for_ui(docPref.grid.color()); + gfx::Color color = color_utils::color_for_ui(m_docPref.grid.color()); g->drawHLine(color, enclosingRect.x, spriteRect.y + m_zoom.apply(y), @@ -722,7 +715,8 @@ void Editor::drawSpriteClipped(const gfx::Region& updateRegion) */ void Editor::drawMask(Graphics* g) { - if ((m_flags & kShowMask) == 0) + if ((m_flags & kShowMask) == 0 || + !m_docPref.show.selectionEdges()) return; ASSERT(m_document->getMaskBoundaries()); @@ -1447,6 +1441,11 @@ void Editor::onContextBarBrushChange() m_brushPreview.redraw(); } +void Editor::onShowExtrasChange() +{ + invalidate(); +} + void Editor::onExposeSpritePixels(doc::DocumentEvent& ev) { if (m_state && ev.sprite() == m_sprite) diff --git a/src/app/ui/editor/editor.h b/src/app/ui/editor/editor.h index cc278d2..cfe1966 100644 --- a/src/app/ui/editor/editor.h +++ b/src/app/ui/editor/editor.h @@ -12,7 +12,7 @@ #include "app/app_render.h" #include "app/color.h" #include "app/document.h" -#include "app/pref/option.h" +#include "app/pref/preferences.h" #include "app/tools/selection_mode.h" #include "app/ui/color_source.h" #include "app/ui/editor/brush_preview.h" @@ -234,6 +234,7 @@ namespace app { void onCurrentToolChange(); void onFgColorChange(); void onContextBarBrushChange(); + void onShowExtrasChange(); void onExposeSpritePixels(doc::DocumentEvent& ev) override; private: @@ -271,8 +272,9 @@ namespace app { Document* m_document; // Active document in the editor Sprite* m_sprite; // Active sprite in the editor Layer* m_layer; // Active layer in the editor - frame_t m_frame; // Active frame in the editor + frame_t m_frame; // Active frame in the editor render::Zoom m_zoom; // Zoom in the editor + DocumentPreferences& m_docPref; // Brush preview BrushPreview m_brushPreview; @@ -302,6 +304,7 @@ namespace app { base::ScopedConnection m_currentToolChangeConn; base::ScopedConnection m_fgColorChangeConn; base::ScopedConnection m_contextBarBrushChangeConn; + base::ScopedConnection m_showExtrasConn; // Slots listeing document preferences. base::ScopedConnection m_tiledConn; diff --git a/src/app/ui/editor/tool_loop_impl.cpp b/src/app/ui/editor/tool_loop_impl.cpp index 8592bc0..70a0bee 100644 --- a/src/app/ui/editor/tool_loop_impl.cpp +++ b/src/app/ui/editor/tool_loop_impl.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2001-2015 David Capello +// Copyright (C) 2001-2016 David Capello // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -205,14 +205,14 @@ public: bool getContiguous() override { return m_contiguous; } tools::SelectionMode getSelectionMode() override { return m_editor->getSelectionMode(); } filters::TiledMode getTiledMode() override { return m_docPref.tiled.mode(); } - bool getGridVisible() override { return m_docPref.grid.visible(); } + bool getGridVisible() override { return m_docPref.show.grid(); } bool getSnapToGrid() override { return m_docPref.grid.snap(); } bool getStopAtGrid() override { switch (m_toolPref.floodfill.stopAtGrid()) { case app::gen::StopAtGrid::NEVER: return false; case app::gen::StopAtGrid::IF_VISIBLE: - return m_docPref.grid.visible(); + return m_docPref.show.grid(); case app::gen::StopAtGrid::ALWAYS: return true; } @@ -357,6 +357,9 @@ public: else if (getInk()->isSelection()) { m_document->generateMaskBoundaries(); redraw = true; + + // Show selection edges + m_docPref.show.selectionEdges(true); } m_transaction.commit(); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

