Diagram command add QGraphicsItem and derived :

Remove each comand for each type and replace it by generic class by using template class (addItemComand).


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3368 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2014-10-10 08:58:44 +00:00
parent 0cd1a812f3
commit 743b6768eb
10 changed files with 169 additions and 397 deletions

View File

@@ -54,7 +54,10 @@ DVEventAddImage::~DVEventAddImage() {
*/
bool DVEventAddImage::mousePressEvent(QMouseEvent *event) {
if (m_image && event -> button() == Qt::LeftButton) {
m_diagram -> undoStack().push(new AddImageCommand(m_diagram, m_image, m_dv->mapToScene(event->pos())));
QPointF pos = m_dv -> mapToScene(event -> pos());
pos.rx() -= m_image->boundingRect().width()/2;
pos.ry() -= m_image->boundingRect().height()/2;
m_diagram -> undoStack().push (new AddItemCommand<DiagramImageItem *>(m_image, m_diagram, pos));
m_dv -> setContextMenuPolicy(Qt::DefaultContextMenu);
m_running = false;
return true;

View File

@@ -76,7 +76,7 @@ bool DVEventAddShape::mousePressEvent(QMouseEvent *event) {
// Next left click finish all shape item except the polyline
if (m_shape_type != QetShapeItem::Polyline && event->button() == Qt::LeftButton) {
m_shape_item -> setP2 (pos);
m_diagram -> undoStack().push (new AddShapeCommand(m_diagram, m_shape_item, pos));
m_diagram -> undoStack().push (new AddItemCommand<QetShapeItem *> (m_shape_item, m_diagram));
m_dv -> setContextMenuPolicy(Qt::DefaultContextMenu);
m_running = false;
return true;
@@ -94,7 +94,7 @@ bool DVEventAddShape::mousePressEvent(QMouseEvent *event) {
// m_running is set to false at the release of right button.
if (m_shape_type == QetShapeItem::Polyline && event -> button() == Qt::RightButton) {
m_shape_item -> setP2 (pos);
m_diagram -> undoStack().push(new AddShapeCommand(m_diagram, m_shape_item, pos));
m_diagram -> undoStack().push (new AddItemCommand<QetShapeItem *> (m_shape_item, m_diagram));
return true;
}

View File

@@ -30,9 +30,9 @@ DVEventAddText::~DVEventAddText() {}
bool DVEventAddText::mousePressEvent(QMouseEvent *event) {
if (event->button() == Qt::LeftButton) {
m_diagram -> undoStack().push(new AddTextCommand(m_diagram,
new IndependentTextItem("_"),
m_dv -> mapToScene(event -> pos())));
m_diagram -> undoStack().push(new AddItemCommand<IndependentTextItem *>(new IndependentTextItem("_"),
m_diagram,
m_dv -> mapToScene(event -> pos())));
return true;
}
return false;