Replace DVEventAddText by DiagramEventAddText.

Use is unchanged


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4258 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun 2015-11-12 17:29:48 +00:00
parent ce75710f6c
commit 491652ba35
5 changed files with 101 additions and 94 deletions

View File

@ -0,0 +1,56 @@
/*
Copyright 2006-2015 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "diagrameventaddtext.h"
#include "independenttextitem.h"
#include "diagramcommands.h"
#include "diagram.h"
/**
* @brief DiagramEventAddText::DiagramEventAddText
* Default constructor
* @param diagram : the diagram where this event must operate
*/
DiagramEventAddText::DiagramEventAddText(Diagram *diagram) :
DiagramEventInterface(diagram)
{}
/**
* @brief DiagramEventAddText::~DiagramEventAddText
*/
DiagramEventAddText::~DiagramEventAddText()
{}
/**
* @brief DiagramEventAddText::mousePressEvent
* @param event : event of mouse press event.
* @return : true if this event is handled, otherwise false
*/
bool DiagramEventAddText::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
IndependentTextItem *text = new IndependentTextItem();
m_diagram -> undoStack().push(new AddItemCommand<IndependentTextItem *>(text, m_diagram, event->scenePos()));
text->setTextInteractionFlags(Qt::TextEditorInteraction);
text->setFocus(Qt::MouseFocusReason);
emit finish();
return true;
}
return false;
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2006-2015 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DIAGRAMEVENTADDTEXT_H
#define DIAGRAMEVENTADDTEXT_H
#include "diagrameventinterface.h"
class Diagram;
/**
* @brief The DiagramEventAddText class
* This diagram event handle the creation of a new text in a diagram
*/
class DiagramEventAddText : public DiagramEventInterface
{
Q_OBJECT
public:
DiagramEventAddText(Diagram *diagram);
virtual ~DiagramEventAddText();
virtual bool mousePressEvent (QGraphicsSceneMouseEvent *event);
};
#endif // DIAGRAMEVENTADDTEXT_H

View File

@ -1,43 +0,0 @@
/*
Copyright 2006-2015 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "dveventaddtext.h"
#include "independenttextitem.h"
#include "diagram.h"
#include "diagramcommands.h"
#include "diagramview.h"
#include <QMouseEvent>
DVEventAddText::DVEventAddText(DiagramView *dv) :
DVEventInterface (dv)
{}
DVEventAddText::~DVEventAddText() {}
bool DVEventAddText::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
IndependentTextItem *text = new IndependentTextItem();
m_diagram -> undoStack().push(new AddItemCommand<IndependentTextItem *>(text, m_diagram, m_dv -> mapToScene(event -> pos())));
text->setTextInteractionFlags(Qt::TextEditorInteraction);
text->setFocus(Qt::MouseFocusReason);
emit finish();
return true;
}
return false;
}

View File

@ -1,33 +0,0 @@
/*
Copyright 2006-2015 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DVEVENTADDTEXT_H
#define DVEVENTADDTEXT_H
#include "dveventinterface.h"
class DVEventAddText : public DVEventInterface
{
Q_OBJECT
public:
DVEventAddText(DiagramView *dv);
virtual ~DVEventAddText ();
virtual bool mousePressEvent (QMouseEvent *event);
};
#endif // DVEVENTADDTEXT_H

View File

@ -35,11 +35,11 @@
#include "nomenclature.h"
#include "diagramfoliolist.h"
#include "qetshapeitem.h"
#include "dveventaddtext.h"
#include "reportproperties.h"
#include "diagrampropertieseditordockwidget.h"
#include "diagrameventaddshape.h"
#include "diagrameventaddimage.h"
#include "diagrameventaddtext.h"
#include "ui/dialogautonum.h"
@ -1138,25 +1138,10 @@ void QETDiagramEditor::selectGroupTriggered(QAction *action)
void QETDiagramEditor::addItemGroupTriggered(QAction *action)
{
QString value = action->data().toString();
DiagramView *dv = currentDiagram();
if (!dv || value.isEmpty()) return;
if (Q_UNLIKELY (!currentDiagram() || !currentDiagram()->diagram() || value.isEmpty())) return;
DVEventInterface *dvevent = nullptr;
if (value == "text")
dvevent = new DVEventAddText(dv);
if (dvevent)
{
dv->setEventInterface(dvevent);
connect(dvevent, &DVEventInterface::finish, [action](){action->setChecked(false);});
return;
}
if (Q_UNLIKELY (!dv->diagram())) return;
Diagram *d = dv->diagram();
Diagram *d = currentDiagram()->diagram();
DiagramEventInterface *diagram_event = nullptr;
if (value == "line")
@ -1179,6 +1164,8 @@ void QETDiagramEditor::addItemGroupTriggered(QAction *action)
else
diagram_event = deai;
}
else if (value == "text")
diagram_event = new DiagramEventAddText(d);
if (diagram_event)
{