This is an automated email from the git hooks/post-receive script. thansen pushed a commit to branch master in repository aseprite.
commit 591b3b19acc9b6dd5265219f931e25d953f15efe Author: David Capello <[email protected]> Date: Wed May 18 12:03:28 2016 -0300 Add MoveMaskCommand::getDelta member function --- src/app/commands/cmd_move_mask.cpp | 93 ++++++++++++++++++++++---------------- src/app/commands/cmd_move_mask.h | 3 +- src/app/ui/document_view.h | 1 + 3 files changed, 56 insertions(+), 41 deletions(-) diff --git a/src/app/commands/cmd_move_mask.cpp b/src/app/commands/cmd_move_mask.cpp index 962bfa9..1c974f3 100644 --- a/src/app/commands/cmd_move_mask.cpp +++ b/src/app/commands/cmd_move_mask.cpp @@ -20,7 +20,9 @@ #include "app/modules/gui.h" #include "app/pref/preferences.h" #include "app/transaction.h" +#include "app/ui/document_view.h" #include "app/ui/editor/editor.h" +#include "app/ui_context.h" #include "base/convert_to.h" #include "doc/mask.h" #include "doc/sprite.h" @@ -89,9 +91,53 @@ bool MoveMaskCommand::onEnabled(Context* context) void MoveMaskCommand::onExecute(Context* context) { - DocumentPreferences& docPref = Preferences::instance().document(context->activeDocument()); - ui::View* view = ui::View::getView(current_editor); - gfx::Rect vp = view->viewportBounds(); + gfx::Point delta = getDelta(context); + + switch (m_target) { + + case Boundaries: { + ContextWriter writer(context); + Document* document(writer.document()); + { + Transaction transaction(writer.context(), "Move Selection", DoesntModifyDocument); + gfx::Point pt = document->mask()->bounds().origin(); + document->getApi(transaction).setMaskPosition(pt.x+delta.x, pt.y+delta.y); + transaction.commit(); + } + + document->generateMaskBoundaries(); + update_screen_for_document(document); + break; + } + + case Content: + if (m_wrap) { + ContextWriter writer(context); + if (writer.cel()) { + // Rotate content + Transaction transaction(writer.context(), "Shift Pixels"); + transaction.execute(new cmd::ShiftMaskedCel(writer.cel(), delta.x, delta.y)); + transaction.commit(); + } + update_screen_for_document(writer.document()); + } + else { + current_editor->startSelectionTransformation(delta, 0.0); + } + break; + + } +} + +gfx::Point MoveMaskCommand::getDelta(Context* context) const +{ + DocumentView* view = static_cast<UIContext*>(context)->activeView(); + if (!view) + return gfx::Point(0, 0); + + DocumentPreferences& docPref = Preferences::instance().document(view->document()); + Editor* editor = view->editor(); + gfx::Rect vp = view->viewWidget()->viewportBounds(); gfx::Rect gridBounds = docPref.grid.bounds(); int dx = 0; int dy = 0; @@ -108,13 +154,13 @@ void MoveMaskCommand::onExecute(Context* context) pixels = gridBounds.h; break; case ZoomedPixel: - pixels = current_editor->zoom().apply(1); + pixels = editor->zoom().apply(1); break; case ZoomedTileWidth: - pixels = current_editor->zoom().apply(gridBounds.w); + pixels = editor->zoom().apply(gridBounds.w); break; case ZoomedTileHeight: - pixels = current_editor->zoom().apply(gridBounds.h); + pixels = editor->zoom().apply(gridBounds.h); break; case ViewportWidth: pixels = vp.h; @@ -131,40 +177,7 @@ void MoveMaskCommand::onExecute(Context* context) case Down: dy = +m_quantity * pixels; break; } - switch (m_target) { - - case Boundaries: { - ContextWriter writer(context); - Document* document(writer.document()); - { - Transaction transaction(writer.context(), "Move Selection", DoesntModifyDocument); - gfx::Point pt = document->mask()->bounds().origin(); - document->getApi(transaction).setMaskPosition(pt.x+dx, pt.y+dy); - transaction.commit(); - } - - document->generateMaskBoundaries(); - update_screen_for_document(document); - break; - } - - case Content: - if (m_wrap) { - ContextWriter writer(context); - if (writer.cel()) { - // Rotate content - Transaction transaction(writer.context(), "Shift Pixels"); - transaction.execute(new cmd::ShiftMaskedCel(writer.cel(), dx, dy)); - transaction.commit(); - } - update_screen_for_document(writer.document()); - } - else { - current_editor->startSelectionTransformation(gfx::Point(dx, dy), 0.0); - } - break; - - } + return gfx::Point(dx, dy); } std::string MoveMaskCommand::onGetFriendlyName() const diff --git a/src/app/commands/cmd_move_mask.h b/src/app/commands/cmd_move_mask.h index 12f24e3..8def5cc 100644 --- a/src/app/commands/cmd_move_mask.h +++ b/src/app/commands/cmd_move_mask.h @@ -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 @@ -32,6 +32,7 @@ namespace app { Command* clone() const override { return new MoveMaskCommand(*this); } Target getTarget() const { return m_target; } + gfx::Point getDelta(Context* context) const; protected: void onLoadParams(const Params& params) override; diff --git a/src/app/ui/document_view.h b/src/app/ui/document_view.h index 4f03be8..7d9ef3b 100644 --- a/src/app/ui/document_view.h +++ b/src/app/ui/document_view.h @@ -52,6 +52,7 @@ namespace app { Document* document() const { return m_document; } Editor* editor() { return m_editor; } + ui::View* viewWidget() const { return m_view; } void getSite(doc::Site* site) const; bool isPreview() { return m_type == Preview; } -- 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

