package DiagramTextItem; use strict; use warnings; use QtCore4; use QtGui4; # [0] use QtCore4::isa qw( Qt::GraphicsTextItem ); use DiagramScene; use QtCore4::signals lostFocus => ['QGraphicsTextItem *'], selectedChange => ['QGraphicsItem *']; use constant { Type => Qt::GraphicsTextItem::UserType() + 3 }; sub type() { return Type; } # [0] sub NEW { my ($class, $parent, $scene) = @_; $class->SUPER::NEW($parent, $scene); this->setFlag(Qt::GraphicsItem::ItemIsMovable()); this->setFlag(Qt::GraphicsItem::ItemIsSelectable()); } # [0] # [1] sub itemChange { my ($change, $value) = @_; if ($change == Qt::GraphicsItem::ItemSelectedHasChanged()) { emit this->selectedChange(this); } return $value; } # [1] # [2] sub focusOutEvent { my ($event) = @_; this->setTextInteractionFlags(Qt::NoTextInteraction()); emit this->lostFocus(this); this->SUPER::focusOutEvent($event); } # [2] # [5] sub mouseDoubleClickEvent { my ($event) = @_; if (this->textInteractionFlags() == Qt::NoTextInteraction()) { this->setTextInteractionFlags(Qt::TextEditorInteraction()); } this->SUPER::mouseDoubleClickEvent($event); } # [5] 1;