[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/krita
From: Sven Langkamp <sven.langkamp () gmail ! com>
Date: 2010-10-02 22:21:38
Message-ID: 20101002222138.6F2ABAC891 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1181987 by langkamp:
fix interaction of move tool and move command with selection masks
CCBUG:252463
M +8 -2 image/commands/kis_node_move_command.cpp
M +3 -1 image/commands/kis_node_move_command.h
M +6 -2 plugins/tools/defaulttools/kis_tool_move.cc
--- trunk/koffice/krita/image/commands/kis_node_move_command.cpp #1181986:1181987
@@ -22,10 +22,12 @@
#include <QRect>
#include "kis_node.h"
#include "commands/kis_node_move_command.h"
+#include <kis_image.h>
+#include <kis_undo_adapter.h>
-KisNodeMoveCommand::KisNodeMoveCommand(KisNodeSP node, const QPoint& oldpos, const QPoint& newpos) :
- KisNodeCommand(i18n("Move"), node)
+KisNodeMoveCommand::KisNodeMoveCommand(KisNodeSP node, const QPoint& oldpos, const QPoint& newpos, \
KisImageSP image) : + KisNodeCommand(i18n("Move"), node), m_image(image)
{
m_oldPos = oldpos;
m_newPos = newpos;
@@ -57,4 +59,8 @@
m_node->setY(pos.y());
m_node->setDirty(m_updateRect);
+
+ if(m_image && m_node->inherits("KisSelectionMask")) {
+ m_image->undoAdapter()->emitSelectionChanged();
}
+}
--- trunk/koffice/krita/image/commands/kis_node_move_command.h #1181986:1181987
@@ -32,8 +32,9 @@
* @param node The node the command will be working on.
* @param oldpos the old layer position
* @param newpos the new layer position
+ * @param image image, only needed if the moved node is a selection mask and the image should be \
notified
*/
- KisNodeMoveCommand(KisNodeSP node, const QPoint& oldpos, const QPoint& newpos);
+ KisNodeMoveCommand(KisNodeSP node, const QPoint& oldpos, const QPoint& newpos, KisImageSP image = \
0); virtual ~KisNodeMoveCommand();
virtual void redo();
@@ -46,6 +47,7 @@
QRect m_updateRect;
QPoint m_oldPos;
QPoint m_newPos;
+ KisImageSP m_image;
};
--- trunk/koffice/krita/plugins/tools/defaulttools/kis_tool_move.cc #1181986:1181987
@@ -159,7 +159,7 @@
currentImage()->undoAdapter()->beginMacro(i18n("Move"));
- if (selection && !selection->isTotallyUnselected(image->bounds()) && !selection->isDeselected()) \
{ + if (selection && !selection->isTotallyUnselected(image->bounds()) && \
!selection->isDeselected() && !node->inherits("KisSelectionMask")) {
// Create a temporary layer with the contents of the selection of the current layer.
Q_ASSERT(!node->inherits("KisGroupLayer"));
@@ -251,7 +251,7 @@
QPoint pos = convertToPixelCoord(event).toPoint();
drag(pos);
- QUndoCommand *cmd = new KisNodeMoveCommand(m_selectedNode, m_layerStart, m_layerPosition);
+ QUndoCommand *cmd = new KisNodeMoveCommand(m_selectedNode, m_layerStart, m_layerPosition, \
currentImage()); Q_CHECK_PTR(cmd);
canvas()->addCommand(cmd);
@@ -281,6 +281,10 @@
m_layerPosition = QPoint(m_selectedNode->x(), m_selectedNode->y());
m_dragStart = original;
+ if (m_selectedNode->inherits("KisSelectionMask")) {
+ currentImage()->undoAdapter()->emitSelectionChanged();
+ }
+
m_selectedNode->setDirty(rc);
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic