This is an automated email from the git hooks/post-receive script. thansen pushed a commit to branch master in repository aseprite.
commit 8b161dac0aa9b83f0b4c69a4d35975527bf6d4e4 Author: David Capello <[email protected]> Date: Thu Mar 24 14:45:28 2016 -0300 Add ShowBrushPreview command so the user can hide the brush preview with a keyboard shortcut (fix #792) --- data/gui.xml | 2 ++ data/pref.xml | 1 + src/app/commands/cmd_show.cpp | 33 +++++++++++++++++++++++++++++++++ src/app/commands/commands_list.h | 1 + src/app/ui/editor/brush_preview.cpp | 19 +++++++++++++++++-- src/app/ui/editor/editor.h | 1 + 6 files changed, 55 insertions(+), 2 deletions(-) diff --git a/data/gui.xml b/data/gui.xml index dd365d9..a182383 100644 --- a/data/gui.xml +++ b/data/gui.xml @@ -726,6 +726,8 @@ <item command="ShowSelectionEdges" text="&Selection Edges" /> <item command="ShowGrid" text="&Grid" /> <item command="ShowPixelGrid" text="&Pixel Grid" /> + <separator /> + <item command="ShowBrushPreview" text="&Brush Preview" /> </menu> <separator /> <menu text="&Grid"> diff --git a/data/pref.xml b/data/pref.xml index b99f9e3..656de3a 100644 --- a/data/pref.xml +++ b/data/pref.xml @@ -289,6 +289,7 @@ <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" /> + <option id="brush_preview" type="bool" default="true" /> </section> </document> diff --git a/src/app/commands/cmd_show.cpp b/src/app/commands/cmd_show.cpp index e7620aa..7e08e6c 100644 --- a/src/app/commands/cmd_show.cpp +++ b/src/app/commands/cmd_show.cpp @@ -11,6 +11,7 @@ #include "app/commands/command.h" #include "app/context.h" +#include "app/modules/gui.h" #include "app/pref/preferences.h" namespace app { @@ -118,6 +119,33 @@ protected: } }; +class ShowBrushPreviewCommand : public Command { +public: + ShowBrushPreviewCommand() + : Command("ShowBrushPreview", + "Show Brush Preview", + CmdUIOnlyFlag) { + } + + Command* clone() const override { return new ShowBrushPreviewCommand(*this); } + +protected: + bool onChecked(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + return docPref.show.brushPreview(); + } + + void onExecute(Context* ctx) override { + DocumentPreferences& docPref = Preferences::instance().document(ctx->activeDocument()); + docPref.show.brushPreview(!docPref.show.brushPreview()); + + // TODO we shouldn't need this, but it happens to be that the + // Preview editor isn't being updated correctly when we change the + // brush preview state. + update_screen_for_document(ctx->activeDocument()); + } +}; + Command* CommandFactory::createShowExtrasCommand() { return new ShowExtrasCommand; @@ -138,4 +166,9 @@ Command* CommandFactory::createShowSelectionEdgesCommand() return new ShowSelectionEdgesCommand; } +Command* CommandFactory::createShowBrushPreviewCommand() +{ + return new ShowBrushPreviewCommand; +} + } // namespace app diff --git a/src/app/commands/commands_list.h b/src/app/commands/commands_list.h index a558ac3..7a514cd 100644 --- a/src/app/commands/commands_list.h +++ b/src/app/commands/commands_list.h @@ -116,6 +116,7 @@ FOR_EACH_COMMAND(SetLoopSection) FOR_EACH_COMMAND(SetPalette) FOR_EACH_COMMAND(SetPaletteEntrySize) FOR_EACH_COMMAND(SetSameInk) +FOR_EACH_COMMAND(ShowBrushPreview) FOR_EACH_COMMAND(ShowExtras) FOR_EACH_COMMAND(ShowGrid) FOR_EACH_COMMAND(ShowOnionSkin) diff --git a/src/app/ui/editor/brush_preview.cpp b/src/app/ui/editor/brush_preview.cpp index d669ab1..4734155 100644 --- a/src/app/ui/editor/brush_preview.cpp +++ b/src/app/ui/editor/brush_preview.cpp @@ -96,7 +96,8 @@ void BrushPreview::show(const gfx::Point& screenPos) m_editor->getUpdateRegion()); // Get cursor color - app::Color app_cursor_color = Preferences::instance().editor.cursorColor(); + const auto& pref = Preferences::instance(); + app::Color app_cursor_color = pref.editor.cursorColor(); gfx::Color ui_cursor_color = color_utils::color_for_ui(app_cursor_color); m_blackAndWhiteNegative = (app_cursor_color.getType() == app::Color::MaskType); @@ -138,7 +139,21 @@ void BrushPreview::show(const gfx::Point& screenPos) } bool usePreview = false; - switch (Preferences::instance().editor.brushPreview()) { + + auto brushPreview = pref.editor.brushPreview(); + + // If the brush preview is hidden, we step down one level. E.g. If + // we have full-brush preview, we move to edges, or if it's edges, + // we don't show it at all. + if (!m_editor->docPref().show.brushPreview()) { + switch (brushPreview) { + case app::gen::BrushPreview::NONE: break; + case app::gen::BrushPreview::EDGES: brushPreview = app::gen::BrushPreview::NONE; break; + case app::gen::BrushPreview::FULL: brushPreview = app::gen::BrushPreview::EDGES; break; + } + } + + switch (brushPreview) { case app::gen::BrushPreview::NONE: m_type = CROSS; break; diff --git a/src/app/ui/editor/editor.h b/src/app/ui/editor/editor.h index cfe1966..7a2e0af 100644 --- a/src/app/ui/editor/editor.h +++ b/src/app/ui/editor/editor.h @@ -120,6 +120,7 @@ namespace app { Sprite* sprite() { return m_sprite; } Layer* layer() { return m_layer; } frame_t frame() { return m_frame; } + DocumentPreferences& docPref() { return m_docPref; } void getSite(Site* site) const; Site getSite() const; -- 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

