Qt
view release on metacpan or search on metacpan
qtgui/examples/tools/undoframework/Commands.pm view on Meta::CPAN
package MoveCommand;
use strict;
use warnings;
use QtCore4;
use QtGui4;
use DiagramItem;
# [0]
use QtCore4::isa qw( Qt::UndoCommand );
use constant { Id => 1234 };
sub id() { return Id; }
sub myDiagramItem() {
return this->{myDiagramItem};
}
sub myOldPos() {
return this->{myOldPos};
}
sub newPos() {
return this->{newPos};
}
# [0]
sub NEW
{
my ($class, $diagramItem, $oldPos, $parent) = @_;
$class->SUPER::NEW($parent);
this->{myDiagramItem} = $diagramItem;
this->{newPos} = $diagramItem->pos();
this->{myOldPos} = $oldPos;
}
# [0]
# [1]
sub mergeWith
{
my ($command) = @_;
my $moveCommand = $command;
my $item = $moveCommand->myDiagramItem;
if (myDiagramItem != $item) {
return 0;
}
this->{newPos} = $item->pos();
setText(Qt::String( Qt::Object::tr('Move %1') )
->arg(CommandsCommon::createCommandString(myDiagramItem, newPos)));
return 1;
}
# [1]
# [2]
sub undo
{
myDiagramItem->setPos(myOldPos);
myDiagramItem->scene()->update();
setText(Qt::String( Qt::Object::tr('Move %1') )
->arg(CommandsCommon::createCommandString(myDiagramItem, newPos)));
}
# [2]
# [3]
sub redo
{
myDiagramItem->setPos(newPos);
setText(Qt::String( Qt::Object::tr('Move %1') )
->arg(CommandsCommon::createCommandString(myDiagramItem, newPos)));
}
( run in 0.593 second using v1.01-cache-2.11-cpan-4ab04211f4c )