diff --git a/sources/diagramevent/diagrameventaddtext.cpp b/sources/diagramevent/diagrameventaddtext.cpp
new file mode 100644
index 000000000..6d12599cb
--- /dev/null
+++ b/sources/diagramevent/diagrameventaddtext.cpp
@@ -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 .
+*/
+
+#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(text, m_diagram, event->scenePos()));
+ text->setTextInteractionFlags(Qt::TextEditorInteraction);
+ text->setFocus(Qt::MouseFocusReason);
+ emit finish();
+ return true;
+ }
+ return false;
+}
diff --git a/sources/diagramevent/diagrameventaddtext.h b/sources/diagramevent/diagrameventaddtext.h
new file mode 100644
index 000000000..8ef2393d3
--- /dev/null
+++ b/sources/diagramevent/diagrameventaddtext.h
@@ -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 .
+*/
+#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
diff --git a/sources/dvevent/dveventaddtext.cpp b/sources/dvevent/dveventaddtext.cpp
deleted file mode 100644
index e7d85cf64..000000000
--- a/sources/dvevent/dveventaddtext.cpp
+++ /dev/null
@@ -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 .
-*/
-#include "dveventaddtext.h"
-#include "independenttextitem.h"
-#include "diagram.h"
-#include "diagramcommands.h"
-#include "diagramview.h"
-#include
-
-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(text, m_diagram, m_dv -> mapToScene(event -> pos())));
- text->setTextInteractionFlags(Qt::TextEditorInteraction);
- text->setFocus(Qt::MouseFocusReason);
- emit finish();
- return true;
- }
- return false;
-}
diff --git a/sources/dvevent/dveventaddtext.h b/sources/dvevent/dveventaddtext.h
deleted file mode 100644
index afe70d312..000000000
--- a/sources/dvevent/dveventaddtext.h
+++ /dev/null
@@ -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 .
-*/
-#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
diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp
index 237b7a83c..d2c2b9bce 100644
--- a/sources/qetdiagrameditor.cpp
+++ b/sources/qetdiagrameditor.cpp
@@ -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)
{