diff --git a/qelectrotech.pro b/qelectrotech.pro
index 997e6511f..f182f8587 100644
--- a/qelectrotech.pro
+++ b/qelectrotech.pro
@@ -160,10 +160,7 @@ HEADERS += $$files(sources/*.h) $$files(sources/ui/*.h) \
$$files(sources/dataBase/*.h) \
$$files(sources/dataBase/ui/*.h) \
$$files(sources/factory/ui/*.h) \
- $$files(sources/print/*.h) \
- $$files(sources/TerminalStrip/*.h) \
- $$files(sources/TerminalStrip/ui/*.h) \
- $$files(sources/TerminalStrip/UndoCommand/*.h)
+ $$files(sources/print/*.h)
SOURCES += $$files(sources/*.cpp) \
$$files(sources/editor/*.cpp) \
@@ -196,13 +193,7 @@ SOURCES += $$files(sources/*.cpp) \
$$files(sources/dataBase/*.cpp) \
$$files(sources/dataBase/ui/*.cpp) \
$$files(sources/factory/ui/*.cpp) \
- $$files(sources/print/*.cpp) \
- $$files(sources/TerminalStrip/*.cpp) \
- $$files(sources/TerminalStrip/ui/*.cpp) \
- $$files(sources/TerminalStrip/UndoCommand/*.cpp)
-
-# Needed for use promote QTreeWidget in terminalstripeditor.ui
-INCLUDEPATH += sources/TerminalStrip/ui
+ $$files(sources/print/*.cpp)
# Liste des fichiers qui seront incorpores au binaire en tant que ressources Qt
RESOURCES += qelectrotech.qrc
@@ -228,8 +219,7 @@ FORMS += $$files(sources/richtext/*.ui) \
$$files(sources/qetgraphicsitem/ViewItem/ui/*.ui) \
$$files(sources/dataBase/ui/*.ui) \
$$files(sources/factory/ui/*.ui) \
- $$files(sources/print/*.ui) \
- $$files(sources/TerminalStrip/ui/*.ui)
+ $$files(sources/print/*.ui)
UI_SOURCES_DIR = sources/ui/
UI_HEADERS_DIR = sources/ui/
diff --git a/sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp b/sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp
deleted file mode 100644
index 46fe13bdd..000000000
--- a/sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- Copyright 2006-2021 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 "addterminalstripcommand.h"
-#include "../../qetproject.h"
-#include "../terminalstrip.h"
-#include "../qetgraphicsitem/element.h"
-
-#include
-
-/**
- * @brief AddTerminalStripCommand::AddTerminalStripCommand
- * @param strip
- * @param parent
- */
-AddTerminalStripCommand::AddTerminalStripCommand(TerminalStrip *strip,
- QETProject *project,
- QUndoCommand *parent) :
- QUndoCommand(parent),
- m_strip(strip),
- m_project(project)
-{
- setText(QObject::tr("Ajouter un groupe de bornes"));
-}
-
-AddTerminalStripCommand::~AddTerminalStripCommand()
-{}
-
-void AddTerminalStripCommand::undo() {
- if (m_project && m_strip) {
- m_project->removeTerminalStrip(m_strip);
- }
-}
-
-void AddTerminalStripCommand::redo() {
- if (m_project && m_strip) {
- m_project->addTerminalStrip(m_strip);
- }
-}
-
-RemoveTerminalStripCommand::RemoveTerminalStripCommand(TerminalStrip *strip,
- QETProject *project,
- QUndoCommand *parent) :
- QUndoCommand(parent),
- m_strip(strip),
- m_project(project),
- m_elements(strip->terminalElement())
-{
- setText(QObject::tr("Supprimer un groupe de bornes"));
-}
-
-RemoveTerminalStripCommand::~RemoveTerminalStripCommand()
-{}
-
-void RemoveTerminalStripCommand::undo()
-{
- if (m_project && m_strip) {
- for (auto elmt : m_elements) {
- m_strip->addTerminal(elmt);
- }
- m_project->addTerminalStrip(m_strip);
- }
-}
-
-void RemoveTerminalStripCommand::redo()
-{
- if (m_project && m_strip) {
- for (auto elmt : m_elements) {
- m_strip->removeTerminal(elmt);
- }
- m_project->removeTerminalStrip(m_strip);
- }
-}
diff --git a/sources/TerminalStrip/UndoCommand/addterminalstripcommand.h b/sources/TerminalStrip/UndoCommand/addterminalstripcommand.h
deleted file mode 100644
index 8317479e4..000000000
--- a/sources/TerminalStrip/UndoCommand/addterminalstripcommand.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- Copyright 2006-2021 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 ADDTERMINALSTRIPCOMMAND_H
-#define ADDTERMINALSTRIPCOMMAND_H
-
-#include
-#include
-
-class TerminalStrip;
-class QETProject;
-class Element;
-
-class AddTerminalStripCommand : public QUndoCommand
-{
- public:
- AddTerminalStripCommand(TerminalStrip *strip, QETProject *project, QUndoCommand *parent = nullptr);
- ~AddTerminalStripCommand() override;
-
- void undo() override;
- void redo() override;
-
- private:
- QPointer m_strip;
- QPointer m_project;
-};
-
-class RemoveTerminalStripCommand : public QUndoCommand
-{
- public:
- RemoveTerminalStripCommand(TerminalStrip *strip, QETProject *project, QUndoCommand *parent = nullptr);
- ~RemoveTerminalStripCommand() override;
-
- void undo() override;
- void redo() override;
-
- private:
- QPointer m_strip;
- QPointer m_project;
- QVector> m_elements;
-};
-
-#endif // ADDTERMINALSTRIPCOMMAND_H
diff --git a/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp b/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp
deleted file mode 100644
index f5e59239f..000000000
--- a/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- Copyright 2006-2021 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 "addterminaltostripcommand.h"
-#include "../../qetgraphicsitem/terminalelement.h"
-
-/**
- * @brief AddTerminalToStripCommand::AddTerminalToStripCommand
- * Add \p terminal to \p strip
- * @param terminal : terminal to add to strip
- * @param strip : terminal strip where terminal must be added
- * @param parent : parent undo command
- */
-AddTerminalToStripCommand::AddTerminalToStripCommand(TerminalElement *terminal, TerminalStrip *strip, QUndoCommand *parent) :
- QUndoCommand(parent),
- m_terminal(terminal),
- m_new_strip(strip),
- m_operation(Operation::add)
-{
- auto t_label = terminal->actualLabel();
- auto ts_name = strip->name();
-
- auto str_1 = t_label.isEmpty() ? QObject::tr("Ajouter une borne") :
- QObject::tr("Ajouter la borne %1").arg(t_label);
-
- auto str_2 = ts_name.isEmpty() ? QObject::tr("à un groupe de bornes") :
- QObject::tr("au groupe de bornes %1").arg(ts_name);
-
- setText(str_1 + " " + str_2);
-}
-
-/**
- * @brief AddTerminalToStripCommand::AddTerminalToStripCommand
- * Move \p terminal from \p old_strip to \p new_strip
- * @param terminal : terminal to move
- * @param old_strip : terminal where start the move
- * @param new_strip : terminal where finish the move
- * @param parent : parent undo command
- */
-AddTerminalToStripCommand::AddTerminalToStripCommand(TerminalElement *terminal, TerminalStrip *old_strip,
- TerminalStrip *new_strip, QUndoCommand *parent) :
- QUndoCommand(parent),
- m_terminal(terminal),
- m_old_strip(old_strip),
- m_new_strip(new_strip),
- m_operation(Operation::move)
-{
- auto t_label = terminal->actualLabel();
- auto old_ts_name = old_strip->name();
- auto new_ts_name = new_strip->name();
-
- auto str_1 = t_label.isEmpty() ? QObject::tr("Déplacer une borne") :
- QObject::tr("Déplacer la borne %1").arg(t_label);
-
- auto str_2 = old_ts_name.isEmpty() ? QObject::tr("d'un groupe de bornes") :
- QObject::tr("du groupe de bornes %1").arg(old_ts_name);
-
- auto str_3 = new_ts_name.isEmpty() ? QObject::tr("à un autre groupe de bornes") :
- QObject::tr("au groupe de bornes %1").arg(new_ts_name);
-
- setText(str_1 + " " + str_2 + " " + str_3);
-}
-
-AddTerminalToStripCommand::~AddTerminalToStripCommand()
-{}
-
-/**
- * @brief AddTerminalToStripCommand::undo
- * Reimplemented from QUndoCommand
- */
-void AddTerminalToStripCommand::undo()
-{
- if (!m_terminal ||
- !m_new_strip) {
- return;
- }
-
- m_new_strip->removeTerminal(m_terminal);
-
- if ( m_operation == Operation::move &&
- m_old_strip) {
- m_old_strip->addTerminal(m_terminal);
- }
-}
-
-/**
- * @brief AddTerminalToStripCommand::redo
- * Reimplemented from QUndoCommand
- */
-void AddTerminalToStripCommand::redo()
-{
- if (!m_terminal ||
- !m_new_strip) {
- return;
- }
-
- if (m_operation == Operation::move &&
- m_old_strip) {
- m_old_strip->removeTerminal(m_terminal);
- }
-
- m_new_strip->addTerminal(m_terminal);
-}
-
-/**
- * @brief RemoveTerminalFromStripCommand::RemoveTerminalFromStripCommand
- * @param terminal
- * @param strip
- * @param parent
- */
-RemoveTerminalFromStripCommand::RemoveTerminalFromStripCommand(TerminalElement *terminal,
- TerminalStrip *strip,
- QUndoCommand *parent) :
- QUndoCommand(parent),
- m_terminal(terminal),
- m_strip(strip)
-{
- auto t_label = terminal->actualLabel();
- auto strip_name = strip->name();
-
- auto str_1 = t_label.isEmpty() ? QObject::tr("Enlever une borne") :
- QObject::tr("Enlever la borne %1").arg(t_label);
-
- auto str_2 = strip_name.isEmpty() ? QObject::tr("d'un groupe de bornes") :
- QObject::tr("du groupe de bornes %1").arg(strip_name);
- setText(str_1 + " " + str_2);
-}
-
-void RemoveTerminalFromStripCommand::undo()
-{
- if (m_terminal && m_strip) {
- m_strip->addTerminal(m_terminal);
- }
-}
-
-void RemoveTerminalFromStripCommand::redo()
-{
- if (m_terminal && m_strip) {
- m_strip->removeTerminal(m_terminal);
- }
-}
-
diff --git a/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h b/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h
deleted file mode 100644
index bf2313fb1..000000000
--- a/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- Copyright 2006-2021 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 ADDTERMINALTOSTRIPCOMMAND_H
-#define ADDTERMINALTOSTRIPCOMMAND_H
-
-#include
-#include
-
-class TerminalElement;
-class TerminalStrip;
-
-/**
- * @brief The AddTerminalToStripCommand class
- * Add a terminal element to a terminal strip
- * Two cases are handled :
- * Add free terminal to strip,
- * Move terminal from strip to another strip
- */
-class AddTerminalToStripCommand : public QUndoCommand
-{
- public:
- AddTerminalToStripCommand(TerminalElement *terminal, TerminalStrip *strip, QUndoCommand *parent = nullptr);
- AddTerminalToStripCommand(TerminalElement *terminal, TerminalStrip *old_strip,
- TerminalStrip *new_strip, QUndoCommand *parent = nullptr);
- ~AddTerminalToStripCommand() override;
-
- void undo() override;
- void redo() override;
-
- private:
- enum Operation{
- none,
- add,
- move,
- };
-
- QPointer m_terminal;
- QPointer m_old_strip;
- QPointer m_new_strip;
- Operation m_operation = Operation::none;
-
-
-};
-
-/**
- * @brief The RemoveTerminalFromStripCommand class
- * Remove a terminal from a terminal strip.
- * The removed terminal become free.
- */
-class RemoveTerminalFromStripCommand : public QUndoCommand
-{
- public:
- RemoveTerminalFromStripCommand (TerminalElement *terminal, TerminalStrip *strip, QUndoCommand *parent = nullptr);
- ~RemoveTerminalFromStripCommand() override {}
-
- void undo() override;
- void redo() override;
-
- private:
- QPointer m_terminal;
- QPointer m_strip;
-};
-
-#endif // ADDTERMINALTOSTRIPCOMMAND_H
diff --git a/sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp b/sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp
deleted file mode 100644
index 90840d4f6..000000000
--- a/sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- Copyright 2006-2021 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 "changeterminalstripdata.h"
-
-ChangeTerminalStripData::ChangeTerminalStripData(TerminalStrip *strip,
- const TerminalStripData &data,
- QUndoCommand *parent) :
- QUndoCommand(parent),
- m_strip(strip),
- m_new_data(data)
-{
- setText(QObject::tr("Modifier les proriétés d'un groupe de bornes"));
- m_old_data = strip->data();
-}
-
-void ChangeTerminalStripData::undo()
-{
- if (m_strip) {
- m_strip->setData(m_old_data);
- }
-}
-
-void ChangeTerminalStripData::redo()
-{
- if (m_strip) {
- m_strip->setData(m_new_data);
- }
-}
diff --git a/sources/TerminalStrip/UndoCommand/changeterminalstripdata.h b/sources/TerminalStrip/UndoCommand/changeterminalstripdata.h
deleted file mode 100644
index 1cec87d72..000000000
--- a/sources/TerminalStrip/UndoCommand/changeterminalstripdata.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- Copyright 2006-2021 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 CHANGETERMINALSTRIPDATA_H
-#define CHANGETERMINALSTRIPDATA_H
-
-#include
-#include "../terminalstripdata.h"
-#include "../terminalstrip.h"
-
-/**
- * @brief The ChangeTerminalStripData class
- */
-class ChangeTerminalStripData : public QUndoCommand
-{
- public:
- ChangeTerminalStripData(TerminalStrip *strip, const TerminalStripData &data, QUndoCommand *parent = nullptr);
-
- void undo() override;
- void redo() override;
-
- private:
- QPointer m_strip;
- TerminalStripData m_old_data, m_new_data;
-};
-
-#endif // CHANGETERMINALSTRIPDATA_H
diff --git a/sources/TerminalStrip/terminalstrip.cpp b/sources/TerminalStrip/terminalstrip.cpp
deleted file mode 100644
index 04aadd0d6..000000000
--- a/sources/TerminalStrip/terminalstrip.cpp
+++ /dev/null
@@ -1,634 +0,0 @@
-/*
- Copyright 2006-2021 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 "terminalstrip.h"
-#include "../qetproject.h"
-#include "../qetgraphicsitem/element.h"
-#include "../qetgraphicsitem/terminalelement.h"
-#include "../elementprovider.h"
-#include "../qetxml.h"
-
-using shared_real_terminal = QSharedPointer;
-using shared_physical_terminal = QSharedPointer;
-
-
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-
-/**
- * @brief The RealTerminal class
- * Represent a real terminal.
- * A real terminal can be a drawed terminal in a folio
- * or a terminal set by user but not present
- * on any folio (for example a reserved terminal).
- */
-class RealTerminal
-{
- public :
-
- /**
- * @brief RealTerminal
- * @param parent_strip : parent terminal strip
- * @param terminal : terminal element (if any) in a folio
- */
- RealTerminal(TerminalStrip *parent_strip, Element *terminal = nullptr) :
- m_element(terminal),
- m_parent_terminal_strip(parent_strip)
- {}
-
- /**
- * @brief isElement
- * @return true if this real terminal is linked to a terminal element
- */
- bool isElement() const {
- return m_element.isNull() ? false : true;
- }
-
- /**
- * @brief element
- * @return the element linked to this real terminal
- * or nullptr if not linked to an Element.
- */
- Element *element() const {
- return m_element.data();
- }
-
- /**
- * @brief label
- * @return the label of this real terminal
- */
- QString label() const {
- if (!m_element.isNull()) {
- return m_element->actualLabel();
- } else {
- return QStringLiteral("");
- }
- }
-
- /**
- * @brief elementUuid
- * @return if this real terminal is an element
- * in a folio, return the uuid of the element
- * else return a null uuid.
- */
- QUuid elementUuid() const {
- if (!m_element.isNull()) {
- return m_element->uuid();
- } else {
- return QUuid();
- }
- }
-
- /**
- * @brief uuid
- * @return the uuid of this real terminal
- */
- QUuid uuid() const {
- return m_uuid;
- }
-
- static QString xmlTagName() {
- return QStringLiteral("real_terminal");
- }
-
- /**
- * @brief toXml
- * @param parent_document
- * @return this real terminal to xml
- */
- QDomElement toXml(QDomDocument &parent_document) const
- {
- auto root_elmt = parent_document.createElement(this->xmlTagName());
- root_elmt.setAttribute("is_draw", m_element ? "true" : "false");
- root_elmt.setAttribute("uuid", m_element ? m_element->uuid().toString() :
- m_uuid.toString());
-
- return root_elmt;
- }
-
- /**
- * @brief fromXml
- * @param xml_element
- * @return
- */
- bool fromXml(QDomElement xml_element, const QVector &terminal_vector)
- {
- if (xml_element.tagName() != xmlTagName()) {
- return true;
- }
-
- auto is_draw = xml_element.attribute(QStringLiteral("is_draw")) == QLatin1String("true")
- ? true : false;
- auto uuid_ = QUuid::fromString(xml_element.attribute(QStringLiteral("uuid")));
-
- if (is_draw) {
- for (auto terminal : terminal_vector) {
- if (terminal->uuid() == uuid_)
- {
- m_element = terminal;
- break;
- }
- }
- } else {
- m_uuid = uuid_;
- }
-
- return true;
- }
-
- private :
- QPointer m_element;
- QPointer m_parent_terminal_strip;
- QUuid m_uuid = QUuid::createUuid();
-};
-
-
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-
-
-
-
-/**
- * @brief The PhysicalTerminal class
- * Represent a physical terminal.
- * A physical terminal is composed a least by one real terminal.
- * When a physical terminal have more than one real terminal
- * that mean the physical terminal have levels (one by real terminal).
- * The index of terminals returned by the function terminals()
- * is the same as the real level of the physical terminal, the index are from back to front.
- *
- * Example for a 3 levels terminal.
- * index 0 = back (mounting plate)
- * index 1 = middle
- * index 2 = front (electrical cabinet door)
- *
- * m
- * o _
- * u | |
- * n | | _
- * t | || |
- * i | || | _
- * n | || || | d
- * g |0||1||2| o
- * | || ||_| o
- * p | || | r
- * l | ||_|
- * a | |
- * t |_|
- * e
- *
- */
-class PhysicalTerminal
-{
- public:
- /**
- * @brief PhysicalTerminal
- * @param parent_strip : Parent terminal strip
- * @param terminals : A vector of real terminals
- * who compose this physical terminal.
- * \p terminals must have at least one terminal
- */
- PhysicalTerminal(TerminalStrip *parent_strip,
- QVector terminals) :
- m_parent_terminal_strip(parent_strip),
- m_real_terminal(terminals)
- {}
-
- /**
- * @brief setTerminals
- * Set the real terminal of this physical terminal
- * the order of the terminal in \p terminals represent
- * the level index.
- * @param terminals
- */
- void setTerminals(QVector terminals) {
- m_real_terminal = terminals;
- }
-
- /**
- * @brief levelCount
- * @return the number of level of this terminal
- */
- int levelCount() const {
- return m_real_terminal.size();
- }
-
- /**
- * @brief terminals
- * @return A vector of real terminal who compose this physical terminal
- */
- QVector terminals() const {
- return m_real_terminal;
- }
-
- static QString xmlTagName() {
- return QStringLiteral("physical_terminal");
- }
-
- /**
- * @brief toXml
- * @param parent_document
- * @return this physical terminal to xml
- */
- QDomElement toXml(QDomDocument &parent_document) const
- {
- auto root_elmt = parent_document.createElement(this->xmlTagName());
- for (auto &real_t : m_real_terminal) {
- root_elmt.appendChild(real_t->toXml(parent_document));
- }
-
- return root_elmt;
- }
-
- private:
- QPointer m_parent_terminal_strip;
- QVector m_real_terminal;
-};
-
-
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-
-/**
- * @brief TerminalStrip::TerminalStrip
- * @param project
- */
-TerminalStrip::TerminalStrip(QETProject *project) :
- QObject(project),
- m_project(project)
-{}
-
-/**
- * @brief TerminalStrip::TerminalStrip
- * @param installation
- * @param location
- * @param name
- * @param project
- */
-TerminalStrip::TerminalStrip(const QString &installation, const QString &location, const QString &name, QETProject *project) :
- QObject(project),
- m_project(project)
-{
- m_data.m_installation = installation;
- m_data.m_location = location;
- m_data.m_name = name;
-}
-
-void TerminalStrip::setInstallation(const QString &installation) {
- m_data.m_installation = installation;
-}
-
-void TerminalStrip::setLocation(const QString &location) {
- m_data.m_location = location;
-}
-
-void TerminalStrip::setName(const QString &name) {
- m_data.m_name = name;
-}
-
-void TerminalStrip::setComment(const QString &comment) {
- m_data.m_comment = comment;
-}
-
-void TerminalStrip::setDescription(const QString &description) {
- m_data.m_description = description;
-}
-
-/**
- * @brief TerminalStrip::data
- * @return The internal data of this strip
- */
-TerminalStripData TerminalStrip::data() const {
- return m_data;
-}
-
-/**
- * @brief TerminalStrip::setData
- * The internal data of this strip to data.
- * the uuid of the new data is set to the uuid
- * of the previous data to keep the uuid
- * of the terminal strip unchanged
- * @param data
- */
-void TerminalStrip::setData(const TerminalStripData &data)
-{
- auto uuid_ = m_data.m_uuid;
- m_data = data;
- m_data.m_uuid = uuid_;
-}
-
-/**
- * @brief TerminalStrip::addTerminal
- * Add terminal to this terminal strip
- * @param terminal
- * @return true if the terminal was successfully added.
- * Return false, if terminal already exist.
- * Return false, if terminal is not a terminal element.
- */
-bool TerminalStrip::addTerminal(Element *terminal)
-{
- if (m_terminal_elements_vector.contains(terminal)) {
- return false;
- }
- if (terminal->elementData().m_type != ElementData::Terminale) {
- return false;
- }
-
- m_terminal_elements_vector.append(terminal);
-
- //Create the real terminal
- shared_real_terminal real_terminal(new RealTerminal(this, terminal));
- m_real_terminals.append(real_terminal);
-
- //Create a new single level physical terminal
- shared_physical_terminal physical_terminal(
- new PhysicalTerminal(this,
- QVector{real_terminal}));
-
- m_physical_terminals.append(physical_terminal);
-
- static_cast(terminal)->setParentTerminalStrip(this);
-
- return true;
-}
-
-/**
- * @brief TerminalStrip::removeTerminal
- * Remove terminal from this terminal strip
- * @param terminal
- * @return true if terminal was successfully removed
- */
-bool TerminalStrip::removeTerminal(Element *terminal)
-{
- if (m_terminal_elements_vector.contains(terminal))
- {
- m_terminal_elements_vector.removeOne(terminal);
-
- //Get the real and physical terminal associated to @terminal
- if (auto real_terminal = realTerminal(terminal))
- {
- if (auto physical_terminal = physicalTerminal(real_terminal))
- {
- if (physical_terminal->levelCount() == 1) {
- m_physical_terminals.removeOne(physical_terminal);
- } else {
- auto v = physical_terminal->terminals();
- v.removeOne(real_terminal);
- physical_terminal->setTerminals(v);
- }
- }
- m_real_terminals.removeOne(real_terminal);
-
- static_cast(terminal)->setParentTerminalStrip(nullptr);
-
- return true;
- }
-
- //There is no reason to be here, but in case of....
- return false;
- }
- return false;
-}
-
-/**
- * @brief TerminalStrip::haveTerminal
- * @param terminal
- * @return true if \p terminal belong to this strip
- */
-bool TerminalStrip::haveTerminal(Element *terminal) {
- return m_terminal_elements_vector.contains(terminal);
-}
-
-/**
- * @brief TerminalStrip::physicalTerminalCount
- * @return the number of physical terminal.
- * A physical terminal is the representation of a real electrical terminal.
- * Notice that a physical terminal can have level (like in real life)
- */
-int TerminalStrip::physicalTerminalCount() const {
- return m_physical_terminals.size();
-}
-
-TerminalStripIndex TerminalStrip::index(int index)
-{
- TerminalStripIndex tsi_;
-
- if (index < 0 ||
- index >= m_physical_terminals.size()) {
- return tsi_;
- }
-
- auto phy_term = m_physical_terminals.at(index);
-
- for(auto &real_term : phy_term->terminals()) {
- tsi_.m_label.append(real_term->label());
- tsi_.m_uuid.append(real_term->elementUuid());
- tsi_.m_is_element.append(real_term->isElement());
- tsi_.m_element.append(static_cast(real_term->element()));
- }
-
- tsi_.m_valid = true;
- return tsi_;
-}
-
-/**
- * @brief TerminalStrip::terminalElement
- * @return A vector of all terminal element owned by this strip
- */
-QVector > TerminalStrip::terminalElement() const {
- return m_terminal_elements_vector;
-}
-
-/**
- * @brief TerminalStrip::toXml
- * @param parent_document
- * @return
- */
-QDomElement TerminalStrip::toXml(QDomDocument &parent_document)
-{
- auto root_elmt = parent_document.createElement(this->xmlTagName());
-
- root_elmt.appendChild(m_data.toXml(parent_document));
-
- //Undrawed terminals
- auto xml_layout = parent_document.createElement("layout");
- for (auto &phy_t : m_physical_terminals) {
- xml_layout.appendChild(phy_t->toXml(parent_document));
- }
- root_elmt.appendChild(xml_layout);
-
- return root_elmt;
-}
-
-/**
- * @brief TerminalStrip::fromXml
- * @param xml_element
- * @return Set up this terminal strip from the xml description \p xml_element
- */
-bool TerminalStrip::fromXml(QDomElement &xml_element)
-{
- if (xml_element.tagName() != xmlTagName()) {
- return false;
- }
-
- //Read terminal strip data
- auto xml_data = xml_element.firstChildElement(m_data.xmlTagName());
- if (!xml_data.isNull()) {
- m_data.fromXml(xml_data);
- }
-
- //Read layout
- auto xml_layout = xml_element.firstChildElement(QStringLiteral("layout"));
- if (!xml_layout.isNull())
- {
- //Get all free elements terminal of the project
- ElementProvider ep(m_project);
- auto free_terminals = ep.freeTerminal();
-
- //Read each physical terminal
- for(auto &xml_physical : QETXML::findInDomElement(xml_layout, PhysicalTerminal::xmlTagName()))
- {
- QVector real_t_vector;
-
- //Read each real terminal of the current physical terminal of the loop
- for (auto &xml_real : QETXML::findInDomElement(xml_physical, RealTerminal::xmlTagName()))
- {
- shared_real_terminal real_t(new RealTerminal(this));
- real_t->fromXml(xml_real, free_terminals);
- if(real_t->isElement())
- {
- m_terminal_elements_vector.append(real_t->element());
- static_cast(real_t->element())->setParentTerminalStrip(this);
- }
- real_t_vector.append(real_t);
- }
-
- shared_physical_terminal phy_t(new PhysicalTerminal(this, real_t_vector));
- m_physical_terminals.append(phy_t);
- m_real_terminals.append(real_t_vector);
- }
-
- }
-
- return true;
-}
-
-/**
- * @brief TerminalStrip::realTerminal
- * @param terminal
- * @return the real terminal linked to \p terminal
- * the returned QSharedPointer can be null.
- */
-QSharedPointer TerminalStrip::realTerminal(Element *terminal)
-{
- shared_real_terminal rt;
-
- for (auto &real : qAsConst(m_real_terminals)) {
- if (real->element() == terminal) {
- return real;
- }
- }
-
- return rt;
-}
-
-/**
- * @brief TerminalStrip::physicalTerminal
- * @param terminal
- * @return the physical terminal linked to \p terminal.
- * The returned QSharedPointer can be null.
- */
-QSharedPointer TerminalStrip::physicalTerminal(QSharedPointer terminal)
-{
- shared_physical_terminal pt;
-
- for (auto &physical : qAsConst(m_physical_terminals))
- {
- if (physical->terminals().contains(terminal))
- {
- pt = physical;
- break;
- }
- }
-
- return pt;
-}
-
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-/************************************************************************************/
-
-
-
-
-
-bool TerminalStripIndex::isValid() const
-{
- return m_valid;
-}
-
-QString TerminalStripIndex::label(int level) const
-{
- if (level<0 ||
- level >= m_label.size()) {
- return QStringLiteral("");
- }
-
- return m_label.at(level);
-}
-
-QUuid TerminalStripIndex::uuid(int level) const
-{
- if (level<0 ||
- level >= m_uuid.size()) {
- return QUuid();
- }
-
- return m_uuid.at(level);
-}
-
-bool TerminalStripIndex::isElement(int level) const
-{
- if (level<0 ||
- level >= m_is_element.size()) {
- return false;
- }
-
- return m_is_element.at(level);
-}
-
-TerminalElement *TerminalStripIndex::element(int level) const
-{
- if (level<0 ||
- level >= m_element.size()) {
- return nullptr;
- }
-
- return m_element.at(level);
-}
diff --git a/sources/TerminalStrip/terminalstrip.h b/sources/TerminalStrip/terminalstrip.h
deleted file mode 100644
index c147fb14b..000000000
--- a/sources/TerminalStrip/terminalstrip.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- Copyright 2006-2021 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 TERMINALSTRIP_H
-#define TERMINALSTRIP_H
-
-#include
-#include
-#include "terminalstripdata.h"
-
-class Element;
-class RealTerminal;
-class QETProject;
-class PhysicalTerminal;
-class TerminalStripIndex;
-class TerminalElement;
-
-/**
- * @brief The TerminalStrip class
- * This class hold all the datas and configurations
- * of a terminal strip (but the not the visual aspect).
- * A terminal strip have some informations (name comment etc...)
- * and is composed by terminals (draw in a diagram or described in the terminal strip)
- */
-class TerminalStrip : public QObject
-{
- Q_OBJECT
- public:
- TerminalStrip(QETProject *project);
-
- TerminalStrip(const QString &installation,
- const QString &location,
- const QString &name,
- QETProject *project);
-
- void setInstallation(const QString &installation);
- QString installation() const {return m_data.m_installation;}
- void setLocation(const QString &location);
- QString location() const {return m_data.m_location;}
- void setName(const QString &name);
- QString name() const {return m_data.m_name;}
- void setComment(const QString &comment);
- QString comment() const {return m_data.m_comment;}
- void setDescription(const QString &description);
- QString description() const {return m_data.m_description;}
- QUuid uuid() const {return m_data.m_uuid;}
-
- TerminalStripData data() const;
- void setData(const TerminalStripData &data);
-
- bool addTerminal (Element *terminal);
- bool removeTerminal (Element *terminal);
- bool haveTerminal (Element *terminal);
-
- int physicalTerminalCount() const;
- TerminalStripIndex index(int index = 0);
-
- QVector> terminalElement() const;
-
- static QString xmlTagName() {return QStringLiteral("terminal_strip");}
- QDomElement toXml(QDomDocument &parent_document);
- bool fromXml(QDomElement &xml_element);
-
- private:
- QSharedPointer realTerminal(Element *terminal);
- QSharedPointer physicalTerminal(QSharedPointer terminal);
-
- private:
- TerminalStripData m_data;
- QPointer m_project;
- QVector> m_terminal_elements_vector;
- QVector> m_real_terminals;
- QVector> m_physical_terminals;
-};
-
-class TerminalStripIndex
-{
- friend class TerminalStrip;
-
- private :
- TerminalStripIndex () {}
- TerminalStripIndex (TerminalStripIndex *) {}
-
- public:
- bool isValid() const;
- QString label(int level = 0) const;
- QUuid uuid(int level = 0) const;
- bool isElement(int level = 0) const;
- TerminalElement *element(int level = 0) const;
-
- private:
- QVector m_label;
- QVector m_uuid;
- bool m_valid = false;
- QVector m_is_element;
- QVector m_element;
-};
-
-#endif // TERMINALSTRIP_H
diff --git a/sources/TerminalStrip/terminalstripdata.cpp b/sources/TerminalStrip/terminalstripdata.cpp
deleted file mode 100644
index 89e59a1ca..000000000
--- a/sources/TerminalStrip/terminalstripdata.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- Copyright 2006-2021 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 "terminalstripdata.h"
-#include "../qetxml.h"
-#include
-
-TerminalStripData::TerminalStripData()
-{
-
-}
-
-QDomElement TerminalStripData::toXml(QDomDocument &xml_document) const
-{
- auto root_elmt = xml_document.createElement(this->xmlTagName());
-
- root_elmt.setAttribute(QStringLiteral("uuid"), m_uuid.toString());
-
- auto info_elmt = xml_document.createElement("informations");
- root_elmt.appendChild(info_elmt);
-
- if (!m_installation.isEmpty()) {
- info_elmt.appendChild(infoToXml(xml_document, QStringLiteral("installation"), m_installation));
- }
- if (!m_location.isEmpty()) {
- info_elmt.appendChild(infoToXml(xml_document, QStringLiteral("location"), m_location));
- }
- if (!m_name.isEmpty()) {
- info_elmt.appendChild(infoToXml(xml_document, QStringLiteral("name"), m_name));
- }
- if (!m_comment.isEmpty()) {
- info_elmt.appendChild(infoToXml(xml_document, QStringLiteral("comment"), m_comment));
- }
- if (!m_description.isEmpty()) {
- info_elmt.appendChild(infoToXml(xml_document, QStringLiteral("description"), m_description));
- }
-
- return root_elmt;
-}
-
-bool TerminalStripData::fromXml(const QDomElement &xml_element)
-{
- if (xml_element.tagName() != this->xmlTagName())
- {
- qDebug() << "TerminalStripData::fromXml : failed to load from xml " \
- "due to wrong tag name. Expected " << this->xmlTagName() << " used " << xml_element.tagName();
- return false;
- }
-
- m_uuid.fromString(xml_element.attribute("uuid"));
-
- for (auto &xml_info :
- QETXML::findInDomElement(xml_element.firstChildElement("informations"),
- QStringLiteral("information")))
- {
- auto name = xml_info.attribute("name");
- auto value = xml_info.text();
-
- if (name == QStringLiteral("installation")) { m_installation = value;}
- else if (name == QStringLiteral("location")) {m_location = value;}
- else if (name == QStringLiteral("name")) {m_name = value;}
- else if (name == QStringLiteral("comment")) {m_comment = value;}
- else if (name == QStringLiteral("description")) {m_description = value;}
- }
-
- return true;
-}
-
-TerminalStripData &TerminalStripData::operator=(const TerminalStripData &other)
-{
- m_installation = other.m_installation;
- m_location = other.m_location;
- m_name = other.m_name;
- m_comment = other.m_comment;
- m_description = other.m_description;
- m_uuid = other.m_uuid;
-
- return *this;
-}
-
-QDomElement TerminalStripData::infoToXml(QDomDocument &xml_doc, const QString &name, const QString &value)
-{
- auto xml_elmt = xml_doc.createElement("information");
- xml_elmt.setAttribute(QStringLiteral("name"), name);
- xml_elmt.appendChild(xml_doc.createTextNode(value));
-
- return xml_elmt;
-}
diff --git a/sources/TerminalStrip/terminalstripdata.h b/sources/TerminalStrip/terminalstripdata.h
deleted file mode 100644
index 2dfdc6216..000000000
--- a/sources/TerminalStrip/terminalstripdata.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- Copyright 2006-2021 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 TERMINALSTRIPDATA_H
-#define TERMINALSTRIPDATA_H
-
-#include "../properties/propertiesinterface.h"
-
-#include
-
-class TerminalStripData : public PropertiesInterface
-{
- friend class TerminalStrip;
- friend class TerminalStripEditor;
-
- public:
- TerminalStripData();
-
- void toSettings(QSettings &/*settings*/, const QString = QString()) const override {}
- void fromSettings (const QSettings &/*settings*/, const QString = QString()) override {}
-
- QDomElement toXml (QDomDocument &xml_document) const override;
- bool fromXml (const QDomElement &xml_element) override;
-
- static QString xmlTagName() {return QStringLiteral("terminal_strip_data");}
-
- TerminalStripData &operator= (const TerminalStripData &other);
-
- private :
- static QDomElement infoToXml(QDomDocument &xml_doc, const QString &name, const QString &value);
-
- QString m_installation = QStringLiteral("="),
- m_location = QStringLiteral("+"),
- m_name,
- m_comment,
- m_description;
- QUuid m_uuid = QUuid::createUuid();
-
-};
-
-#endif // TERMINALSTRIPDATA_H
diff --git a/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp b/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp
deleted file mode 100644
index 8b048e935..000000000
--- a/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- Copyright 2006-2021 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 "terminalstripcreatordialog.h"
-#include "ui_terminalstripcreatordialog.h"
-#include "../terminalstrip.h"
-#include "../../qetproject.h"
-
-/**
- * @brief TerminalStripCreatorDialog::TerminalStripCreatorDialog
- * @param project : Project to add a new terminal strip
- * @param parent : parent widget
- */
-TerminalStripCreatorDialog::TerminalStripCreatorDialog(QETProject *project, QWidget *parent) :
- QDialog(parent),
- ui(new Ui::TerminalStripCreatorDialog),
- m_project(project)
-{
- ui->setupUi(this);
-}
-
-/**
- * @brief TerminalStripCreatorDialog::~TerminalStripCreatorDialog
- */
-TerminalStripCreatorDialog::~TerminalStripCreatorDialog() {
- delete ui;
-}
-
-/**
- * @brief TerminalStripCreatorDialog::setInstallation
- * Set the installation field string
- * @param installation
- */
-void TerminalStripCreatorDialog::setInstallation(const QString &installation) {
- ui->m_installation_le->setText(installation);
- setCursorToEmptyLine();
-}
-
-/**
- * @brief TerminalStripCreatorDialog::setLocation
- * Set the location field string
- * @param location
- */
-void TerminalStripCreatorDialog::setLocation(const QString &location) {
- ui->m_location_le->setText(location);
- setCursorToEmptyLine();
-}
-
-/**
- * @brief TerminalStripCreatorDialog::generatedTerminalStrip
- * @return A new terminal Strip according to the value set by user.
- * The terminal strip is already added to the terminalStrip list of the project
- * so it's ready to use.
- */
-TerminalStrip *TerminalStripCreatorDialog::generatedTerminalStrip() const
-{
- QString installation_ = ui->m_installation_le->text();
- QString location_ = ui->m_location_le->text();
- QString name_ = ui->m_name_le->text();
-
- if (installation_.isEmpty()) {
- installation_ = QStringLiteral("=INST"); }
- if (location_.isEmpty()) {
- location_ = QStringLiteral("+LOC"); }
- if (name_.isEmpty()) {
- name_ = QStringLiteral("X"); }
-
- auto strip = m_project->newTerminalStrip(installation_,
- location_,
- name_);
- strip->setComment(ui->m_comment_le->text());
- strip->setDescription(ui->m_description_te->toPlainText());
-
- return strip;
-}
-
-/**
- * @brief TerminalStripCreatorDialog::setCursorToEmptyLine
- * Set the cursor to the first empty field.
- * It's usefull when user create a new terminal strip
- * with some value prefilled, to increase productivity.
- */
-void TerminalStripCreatorDialog::setCursorToEmptyLine()
-{
- if (ui->m_installation_le->text().isEmpty()) {
- return;
- }
- if (ui->m_location_le->text().isEmpty()) {
- ui->m_location_le->setFocus();
- return;
- }
- ui->m_name_le->setFocus();
-}
diff --git a/sources/TerminalStrip/ui/terminalstripcreatordialog.h b/sources/TerminalStrip/ui/terminalstripcreatordialog.h
deleted file mode 100644
index 22deb7ddf..000000000
--- a/sources/TerminalStrip/ui/terminalstripcreatordialog.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- Copyright 2006-2021 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 TERMINALSTRIPCREATORDIALOG_H
-#define TERMINALSTRIPCREATORDIALOG_H
-
-#include
-
-class TerminalStrip;
-class QETProject;
-
-namespace Ui {
- class TerminalStripCreatorDialog;
-}
-
-/**
- * @brief The TerminalStripCreatorDialog class
- * A simple dialog for create a new terminal strip
- */
-class TerminalStripCreatorDialog : public QDialog
-{
- Q_OBJECT
-
- public:
- explicit TerminalStripCreatorDialog(QETProject *project, QWidget *parent = nullptr);
- ~TerminalStripCreatorDialog() override;
-
- void setInstallation(const QString &installation);
- void setLocation(const QString &location);
- TerminalStrip *generatedTerminalStrip() const;
-
- private:
- void setCursorToEmptyLine();
-
- private:
- Ui::TerminalStripCreatorDialog *ui;
- QETProject *m_project = nullptr;
-};
-
-#endif // TERMINALSTRIPCREATORDIALOG_H
diff --git a/sources/TerminalStrip/ui/terminalstripcreatordialog.ui b/sources/TerminalStrip/ui/terminalstripcreatordialog.ui
deleted file mode 100644
index 803e37f0d..000000000
--- a/sources/TerminalStrip/ui/terminalstripcreatordialog.ui
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
- TerminalStripCreatorDialog
-
-
-
- 0
- 0
- 744
- 321
-
-
-
- Création groupe de bornes
-
-
- -
-
-
- Localisation :
-
-
-
- -
-
-
- Nom :
-
-
-
- -
-
-
- Installation :
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Description :
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
-
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Cancel|QDialogButtonBox::Ok
-
-
-
- -
-
-
- Commentaire :
-
-
-
- -
-
-
-
-
-
- m_installation_le
- m_location_le
- m_name_le
- m_comment_le
- m_description_te
-
-
-
-
- buttonBox
- accepted()
- TerminalStripCreatorDialog
- accept()
-
-
- 248
- 254
-
-
- 157
- 274
-
-
-
-
- buttonBox
- rejected()
- TerminalStripCreatorDialog
- reject()
-
-
- 316
- 260
-
-
- 286
- 274
-
-
-
-
-
diff --git a/sources/TerminalStrip/ui/terminalstripeditor.cpp b/sources/TerminalStrip/ui/terminalstripeditor.cpp
deleted file mode 100644
index d7c21fbc7..000000000
--- a/sources/TerminalStrip/ui/terminalstripeditor.cpp
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- Copyright 2006-2021 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 "terminalstripeditor.h"
-#include "ui_terminalstripeditor.h"
-#include "terminalstripcreatordialog.h"
-#include "../../qetproject.h"
-#include "../terminalstrip.h"
-#include "../elementprovider.h"
-#include "../qetgraphicsitem/terminalelement.h"
-#include "../UndoCommand/addterminalstripcommand.h"
-#include "../UndoCommand/addterminaltostripcommand.h"
-#include "../UndoCommand/changeterminalstripdata.h"
-#include "terminalstriptreewidget.h"
-#include "../../qeticons.h"
-
-#include
-
-/**
- * @brief TerminalStripEditor::TerminalStripEditor
- * @param project : Project to manage the terminal strip
- * @param parent : paent widget
- */
-TerminalStripEditor::TerminalStripEditor(QETProject *project, QWidget *parent) :
- QDialog(parent),
- ui(new Ui::TerminalStripEditor),
- m_project(project)
-{
- ui->setupUi(this);
- ui->m_remove_terminal_strip_pb->setDisabled(true);
- buildTree();
- ui->m_terminal_strip_tw->expandRecursively(ui->m_terminal_strip_tw->rootIndex());
- setUpUndoConnections();
-}
-
-/**
- * @brief TerminalStripEditor::~TerminalStripEditor
- */
-TerminalStripEditor::~TerminalStripEditor() {
- delete ui;
-}
-
-void TerminalStripEditor::setUpUndoConnections()
-{
- connect(ui->m_terminal_strip_tw, &TerminalStripTreeWidget::terminalAddedToStrip,
- [this](QUuid terminal_uuid, QUuid strip_uuid)
- {
- auto terminal = m_uuid_terminal_H.value(terminal_uuid);
- auto strip = m_uuid_strip_H.value(strip_uuid);
-
- if (!terminal || !strip) {
- return;
- }
-
- auto undo = new AddTerminalToStripCommand(terminal, strip);
- m_project->undoStack()->push(undo);
- });
-
- connect(ui->m_terminal_strip_tw, &TerminalStripTreeWidget::terminalMovedFromStripToStrip,
- [this] (QUuid terminal_uuid, QUuid old_strip_uuid, QUuid new_strip_uuid)
- {
- auto terminal = m_uuid_terminal_H.value(terminal_uuid);
- auto old_strip = m_uuid_strip_H.value(old_strip_uuid);
- auto new_strip = m_uuid_strip_H.value(new_strip_uuid);
-
- if (!terminal || !old_strip || !new_strip) {
- return;
- }
-
- auto undo = new AddTerminalToStripCommand(terminal, old_strip, new_strip);
- m_project->undoStack()->push(undo);
- });
-
- connect(ui->m_terminal_strip_tw, &TerminalStripTreeWidget::terminalRemovedFromStrip,
- [this] (QUuid terminal_uuid, QUuid old_strip_uuid)
- {
- auto terminal_ = m_uuid_terminal_H.value(terminal_uuid);
- auto strip_ = m_uuid_strip_H.value(old_strip_uuid);
-
- if (!terminal_ || !strip_) {
- return;
- }
-
- auto undo = new RemoveTerminalFromStripCommand(terminal_, strip_);
- m_project->undoStack()->push(undo);
- });
-}
-
-/**
- * @brief TerminalStripEditor::buildTree
- * Build the tree widget use to explore terminal strip
- */
-void TerminalStripEditor::buildTree()
-{
- ui->m_terminal_strip_tw->clear();
-
- auto title = m_project->title();
- if (title.isEmpty()) {
- title = tr("Projet sans titre");
- }
-
- QStringList strl{title};
- new QTreeWidgetItem(ui->m_terminal_strip_tw, strl, TerminalStripTreeWidget::Root);
-
- QStringList ftstrl(tr("Bornes indépendante"));
- new QTreeWidgetItem(ui->m_terminal_strip_tw, ftstrl, TerminalStripTreeWidget::FreeTerminal);
-
- auto ts_vector = m_project->terminalStrip();
- std::sort(ts_vector.begin(), ts_vector.end(), [](TerminalStrip *a, TerminalStrip *b) {
- return a->name() < b->name();});
-
- for (const auto ts : qAsConst(ts_vector)) {
- addTerminalStrip(ts);
- }
- addFreeTerminal();
-}
-
-/**
- * @brief TerminalStripEditor::addTerminalStrip
- * Add a new terminal strip to the list of displayed terminal strip
- * in the tree widget
- * @param terminal_strip
- * @return the QTreeWidgetItem who represent the terminal strip
- * both if created or already exist
- */
-QTreeWidgetItem* TerminalStripEditor::addTerminalStrip(TerminalStrip *terminal_strip)
-{
- if (auto item = m_item_strip_H.key(terminal_strip)) {
- return item;
- }
-
- auto root_item = ui->m_terminal_strip_tw->topLevelItem(0);
-
- //Check if installation already exist
- //if not create a new one
- auto installation_str = terminal_strip->installation();
- QTreeWidgetItem *inst_qtwi = nullptr;
- for (int i = 0 ; ichildCount() ; ++i) {
- auto child_inst = root_item->child(i);
- if (child_inst->data(0, Qt::DisplayRole).toString() == installation_str) {
- inst_qtwi = child_inst;
- break;
- }
- }
- if (!inst_qtwi) {
- QStringList inst_strl{installation_str};
- inst_qtwi = new QTreeWidgetItem(root_item, inst_strl, TerminalStripTreeWidget::Installation);
- }
-
- //Check if location already exist
- //if not create a new one
- auto location_str = terminal_strip->location();
- QTreeWidgetItem *loc_qtwi = nullptr;
- for (int i = 0 ; ichildCount() ; ++i) {
- auto child_loc = inst_qtwi->child(i);
- if (child_loc->data(0, Qt::DisplayRole).toString() == location_str) {
- loc_qtwi = child_loc;
- break;
- }
- }
- if (!loc_qtwi) {
- QStringList loc_strl{location_str};
- loc_qtwi = new QTreeWidgetItem(inst_qtwi, loc_strl, TerminalStripTreeWidget::Location);
- }
-
- //Add the terminal strip
- QStringList name{terminal_strip->name()};
- auto strip_item = new QTreeWidgetItem(loc_qtwi, name, TerminalStripTreeWidget::Strip);
- strip_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, terminal_strip->uuid());
- strip_item->setIcon(0, QET::Icons::TerminalStrip);
-
- //Add child terminal of the strip
- for (auto i=0 ; iphysicalTerminalCount() ; ++i)
- {
- auto index = terminal_strip->index(i);
- auto term_item = new QTreeWidgetItem(strip_item, QStringList(index.label()), TerminalStripTreeWidget::Terminal);
- term_item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, index.uuid().toString());
- term_item->setIcon(0, QET::Icons::ElementTerminal);
-
- if (index.isElement()) {
- m_uuid_terminal_H.insert(index.uuid(), index.element());
- }
- }
-
- m_item_strip_H.insert(strip_item, terminal_strip);
- m_uuid_strip_H.insert(terminal_strip->uuid(), terminal_strip);
- return strip_item;
-}
-
-/**
- * @brief TerminalStripEditor::addFreeTerminal
- * Add free terminal (aka terminal which not belong to a terminal strip)
- * in the tree widget
- */
-void TerminalStripEditor::addFreeTerminal()
-{
- ElementProvider ep(m_project);
- auto vector_ = ep.freeTerminal();
-
- if (vector_.isEmpty()) {
- return;
- }
-
- //Sort the terminal element by label
- std::sort(vector_.begin(), vector_.end(), [](TerminalElement *a, TerminalElement *b) {
- return a->actualLabel() < b->actualLabel();
- });
-
- auto free_terminal_item = ui->m_terminal_strip_tw->topLevelItem(1);
-
- for (const auto terminal : qAsConst(vector_))
- {
- QUuid uuid_ = terminal->uuid();
- QStringList strl{terminal->actualLabel()};
- auto item = new QTreeWidgetItem(free_terminal_item, strl, TerminalStripTreeWidget::Terminal);
- item->setData(0, TerminalStripTreeWidget::UUID_USER_ROLE, uuid_.toString());
- item->setIcon(0, QET::Icons::ElementTerminal);
-
- m_uuid_terminal_H.insert(uuid_, terminal);
- }
-}
-
-/**
- * @brief TerminalStripEditor::clearDataTab
- */
-void TerminalStripEditor::clearDataTab()
-{
- ui->m_installation_le ->clear();
- ui->m_location_le ->clear();
- ui->m_name_le ->clear();
- ui->m_comment_le ->clear();
- ui->m_description_te ->clear();
- m_current_strip = nullptr;
-}
-
-/**
- * @brief TerminalStripEditor::on_m_add_terminal_strip_pb_clicked
- * Action when user click on add terminal strip button
- */
-void TerminalStripEditor::on_m_add_terminal_strip_pb_clicked()
-{
- QScopedPointer dialog(new TerminalStripCreatorDialog(m_project, this));
-
- if (auto item = ui->m_terminal_strip_tw->currentItem())
- {
- if (item->type() == TerminalStripTreeWidget::Strip) {
- item = item->parent();
- }
- if (item->type() == TerminalStripTreeWidget::Location) {
- dialog->setLocation(item->data(0, Qt::DisplayRole).toString());
- item = item->parent();
- }
- if (item->type() == TerminalStripTreeWidget::Installation) {
- dialog->setInstallation(item->data(0, Qt::DisplayRole).toString());
- }
- }
-
- if (dialog->exec() == QDialog::Accepted)
- {
- auto ts = dialog->generatedTerminalStrip();
- m_project->undoStack()->push(new AddTerminalStripCommand(ts, m_project));
-
- auto item = addTerminalStrip(ts);
- ui->m_terminal_strip_tw->setCurrentItem(item);
- }
-}
-
-/**
- * @brief TerminalStripEditor::on_m_remove_terminal_strip_pb_clicked
- * Action when user click on remove terminal strip button
- */
-void TerminalStripEditor::on_m_remove_terminal_strip_pb_clicked()
-{
- auto item = ui->m_terminal_strip_tw->currentItem();
- if (auto strip = m_item_strip_H.value(item))
- {
- m_item_strip_H.remove(item);
- m_uuid_strip_H.remove(strip->uuid());
- delete item;
-
- m_project->undoStack()->push(new RemoveTerminalStripCommand(strip, m_project));
- }
-
- on_m_reload_pb_clicked();
-}
-
-/**
- * @brief TerminalStripEditor::on_m_reload_pb_clicked
- */
-void TerminalStripEditor::on_m_reload_pb_clicked()
-{
- auto current_ = m_current_strip;
-
- ui->m_terminal_strip_tw->clear();
- m_item_strip_H.clear();
- m_uuid_terminal_H.clear();
- m_uuid_strip_H.clear();
-
- qDeleteAll(m_item_strip_H.keys());
-
- buildTree();
- ui->m_terminal_strip_tw->expandRecursively(ui->m_terminal_strip_tw->rootIndex());
-
- //Reselect the tree widget item of the current edited strip
- auto item = m_item_strip_H.key(current_);
- if (item) {
- ui->m_terminal_strip_tw->setCurrentItem(item);
- }
-}
-
-/**
- * @brief TerminalStripEditor::on_m_terminal_strip_tw_currentItemChanged
- * @param current
- * @param previous
- */
-void TerminalStripEditor::on_m_terminal_strip_tw_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
-{
- Q_UNUSED(previous)
-
- if (!current) {
- clearDataTab();
- ui->m_remove_terminal_strip_pb->setDisabled(true);
- return;
- }
-
- TerminalStrip *strip_ = nullptr;
- if (current->type() == TerminalStripTreeWidget::Strip) {
- strip_ = m_item_strip_H.value(current);
- ui->m_remove_terminal_strip_pb->setEnabled(true);
- }
- else if (current->type() == TerminalStripTreeWidget::Terminal
- && current->parent()
- && current->parent()->type() == TerminalStripTreeWidget::Strip) {
- strip_ = m_item_strip_H.value(current->parent());
- ui->m_remove_terminal_strip_pb->setDisabled(true);
- } else {
- ui->m_remove_terminal_strip_pb->setDisabled(true);
- }
-
- if (strip_) {
- m_current_strip = strip_;
- ui->m_installation_le ->setText(strip_->installation());
- ui->m_location_le ->setText(strip_->location());
- ui->m_name_le ->setText(strip_->name());
- ui->m_comment_le ->setText(strip_->comment());
- ui->m_description_te ->setPlainText(strip_->description());
- } else {
- clearDataTab();
- }
-}
-
-void TerminalStripEditor::on_m_apply_data_pb_clicked(QAbstractButton *button)
-{
- Q_UNUSED(button)
-
- if (m_current_strip)
- {
- TerminalStripData data;
- data.m_installation = ui->m_installation_le->text();
- data.m_location = ui->m_location_le->text();
- data.m_name = ui->m_name_le->text();
- data.m_comment = ui->m_comment_le->text();
- data.m_description = ui->m_description_te->toPlainText();
-
- m_project->undoStack()->push(new ChangeTerminalStripData(m_current_strip, data, nullptr));
- }
-
- on_m_reload_pb_clicked();
-}
diff --git a/sources/TerminalStrip/ui/terminalstripeditor.h b/sources/TerminalStrip/ui/terminalstripeditor.h
deleted file mode 100644
index efdf91d7a..000000000
--- a/sources/TerminalStrip/ui/terminalstripeditor.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Copyright 2006-2021 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 TERMINALSTRIPEDITOR_H
-#define TERMINALSTRIPEDITOR_H
-
-#include
-
-namespace Ui {
- class TerminalStripEditor;
-}
-
-class QETProject;
-class TerminalStrip;
-class QTreeWidgetItem;
-class TerminalElement;
-class QAbstractButton;
-
-/**
- * @brief The TerminalStripEditor class
- * Main dialog used to edit terminal strip
- * of a project
- */
-class TerminalStripEditor : public QDialog
-{
- Q_OBJECT
-
- public:
- explicit TerminalStripEditor(QETProject *project, QWidget *parent = nullptr);
- ~TerminalStripEditor() override;
-
- private:
- void setUpUndoConnections();
- void buildTree();
- QTreeWidgetItem* addTerminalStrip(TerminalStrip *terminal_strip);
- void addFreeTerminal();
- void clearDataTab();
-
- private slots:
- void on_m_add_terminal_strip_pb_clicked();
- void on_m_remove_terminal_strip_pb_clicked();
- void on_m_reload_pb_clicked();
- void on_m_terminal_strip_tw_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
- void on_m_apply_data_pb_clicked(QAbstractButton *button);
-
- private:
- Ui::TerminalStripEditor *ui;
- QETProject *m_project = nullptr;
-
- QHash m_item_strip_H;
- QHash> m_uuid_terminal_H;
- QHash> m_uuid_strip_H;
- TerminalStrip *m_current_strip = nullptr;
-};
-
-#endif // TERMINALSTRIPEDITOR_H
diff --git a/sources/TerminalStrip/ui/terminalstripeditor.ui b/sources/TerminalStrip/ui/terminalstripeditor.ui
deleted file mode 100644
index 7db32253b..000000000
--- a/sources/TerminalStrip/ui/terminalstripeditor.ui
+++ /dev/null
@@ -1,271 +0,0 @@
-
-
- TerminalStripEditor
-
-
-
- 0
- 0
- 951
- 491
-
-
-
- Gestionnaire de borniers
-
-
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Ajouter un bornier
-
-
-
- :/ico/16x16/list-add.png:/ico/16x16/list-add.png
-
-
-
- -
-
-
- Supprimer le bornier
-
-
-
- :/ico/16x16/list-remove.png:/ico/16x16/list-remove.png
-
-
-
- -
-
-
-
-
-
-
- :/ico/16x16/view-refresh.png:/ico/16x16/view-refresh.png
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- 4
-
-
- false
-
-
-
-
- 0
- 0
-
-
-
- false
-
-
- QAbstractItemView::InternalMove
-
-
- 500
-
-
- true
-
-
-
- Explorateur de bornier
-
-
-
-
-
-
- 1
- 0
-
-
-
- 0
-
-
-
- Disposition
-
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
-
-
-
- Propriétés
-
-
- -
-
-
- Description
-
-
-
- -
-
-
- Installation :
-
-
-
- -
-
-
- Commentaire
-
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- -
-
-
- -
-
-
- Nom :
-
-
-
- -
-
-
- -
-
-
- -
-
-
- Localisation :
-
-
-
- -
-
-
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- QDialogButtonBox::Apply
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TerminalStripTreeWidget
- QTreeWidget
- terminalstriptreewidget.h
-
-
-
- m_tab_widget
- m_installation_le
- m_location_le
- m_name_le
- m_comment_le
- m_description_te
- tableView
-
-
-
-
-
-
diff --git a/sources/TerminalStrip/ui/terminalstriptreewidget.cpp b/sources/TerminalStrip/ui/terminalstriptreewidget.cpp
deleted file mode 100644
index 666436078..000000000
--- a/sources/TerminalStrip/ui/terminalstriptreewidget.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- Copyright 2006-2021 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 "terminalstriptreewidget.h"
-#include "../../qeticons.h"
-
-#include
-#include
-#include
-#include
-
-int TerminalStripTreeWidget::UUID_USER_ROLE = Qt::UserRole + 1;
-
-TerminalStripTreeWidget::TerminalStripTreeWidget(QWidget *parent) :
- QTreeWidget(parent)
-{}
-
-QStringList TerminalStripTreeWidget::mimeTypes() const
-{
- QStringList strl(QStringLiteral("application/x-qet-terminal-strip-tree-terminal-uuid"));
-
- return strl;
-}
-
-void TerminalStripTreeWidget::startDrag(Qt::DropActions supportedActions)
-{
- Q_UNUSED(supportedActions)
-
- auto item = currentItem();
-
- if (!item ||
- item->type() != TerminalStripTreeWidget::Terminal) {
- return;
- }
-
- QDrag drag(this);
- auto mime_data = new QMimeData();
- mime_data->setData("application/x-qet-terminal-strip-tree-terminal-uuid", item->data(0, UUID_USER_ROLE).toString().toLatin1());
-
- drag.setMimeData(mime_data);
- drag.setPixmap(QET::Icons::ElementTerminal.pixmap(16,16));
- drag.exec(Qt::MoveAction);
-}
-
-void TerminalStripTreeWidget::dragMoveEvent(QDragMoveEvent *event)
-{
- auto strl = event->mimeData()->formats();
- if (strl.size() != 1 ||
- strl.first() != "application/x-qet-terminal-strip-tree-terminal-uuid") {
- event->ignore();
- return;
- }
- //Accepted move are :
- //free terminal to terminal strip
- //terminal strip to another terminal strip
- //terminal strip to free terminal
- //All other other move is ignored
- QTreeWidget::dragMoveEvent(event);
-
- auto overred_item = itemAt(event->pos());
- auto dragged_item = currentItem();
- if (!overred_item ||
- !dragged_item ||
- !dragged_item->parent()) {
- return;
- }
- //Ignore the event by default, we confirm it bellow if needed.
- event->ignore();
-
- //Move terminal
- if (dragged_item->parent()->type() == FreeTerminal && //From free to strip
- overred_item->type() == Strip) {
- event->accept();
- }
- else if (dragged_item->parent()->type() == Strip) //From strip to ...
- {
- if (overred_item->type() == FreeTerminal) { //Free terminal
- event->accept();
- } else if (overred_item->type() == Strip && //Another strip
- dragged_item->parent() != overred_item) {
- event->accept();
- }
- }
-}
-
-void TerminalStripTreeWidget::dropEvent(QDropEvent *event)
-{
- auto overred_item = itemAt(event->pos());
- auto dragged_item = currentItem();
- if (!overred_item ||
- !dragged_item ||
- !dragged_item->parent()) {
- return;
- }
-
- auto old_parent = dragged_item->parent();
- old_parent->removeChild(dragged_item);
- overred_item->addChild(dragged_item);
-
- //Move terminal
- if (old_parent->type() == FreeTerminal && //From free to strip
- overred_item->type() == Strip) {
- emit terminalAddedToStrip(QUuid::fromString(dragged_item->data(0, UUID_USER_ROLE).toString()),
- QUuid::fromString(overred_item->data(0, UUID_USER_ROLE).toString()));
- }
- else if (old_parent->type() == Strip) //From strip to ...
- {
- if (overred_item->type() == FreeTerminal) //Free terminal
- {
- emit terminalRemovedFromStrip(QUuid::fromString(dragged_item->data(0, UUID_USER_ROLE).toString()),
- QUuid::fromString(old_parent->data(0, UUID_USER_ROLE).toString()));
- }
- else if (overred_item->type() == Strip) //To another strip
- {
- emit terminalMovedFromStripToStrip(QUuid::fromString(dragged_item->data(0, UUID_USER_ROLE).toString()),
- QUuid::fromString(old_parent->data(0, UUID_USER_ROLE).toString()),
- QUuid::fromString(overred_item->data(0, UUID_USER_ROLE).toString()));
- }
- }
-
-}
-
-Qt::DropActions TerminalStripTreeWidget::supportedDropActions() const {
- return Qt::MoveAction;
-}
diff --git a/sources/TerminalStrip/ui/terminalstriptreewidget.h b/sources/TerminalStrip/ui/terminalstriptreewidget.h
deleted file mode 100644
index fc1218bc7..000000000
--- a/sources/TerminalStrip/ui/terminalstriptreewidget.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- Copyright 2006-2021 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 TERMINALSTRIPTREEWIDGET_H
-#define TERMINALSTRIPTREEWIDGET_H
-
-#include
-#include
-
-/**
- * @brief The TerminalStripTreeWidget class
- * Derived class use to implement custom drag and drop
- */
-class TerminalStripTreeWidget : public QTreeWidget
-{
- Q_OBJECT
- public :
- enum TreeWidgetType{
- Root,
- Terminal,
- FreeTerminal,
- Installation,
- Location,
- Strip
- };
-
- //Role used for data in QTreeWidgetItem
- static int UUID_USER_ROLE;
-
- signals:
- /**
- * @brief terminalAddedToStrip
- * Signal emited when a terminal is moved from free terminal to a terminals trip
- */
- void terminalAddedToStrip(QUuid terminal_uuid, QUuid strip_uuid);
- /**
- * @brief terminalMovedFromStripToStrip
- * Signam emitted when a terminal is moved from from a terminal stip to another one
- */
- void terminalMovedFromStripToStrip(QUuid terminal_uuid, QUuid old_strip_uuid, QUuid new_strip_uuid);
- /**
- * @brief terminalRemovedFromStrip
- * Signal emitted when a terminal is moved from a terminal strip to free terminal
- */
- void terminalRemovedFromStrip(QUuid terminal_uuid, QUuid old_strip_uuid);
-
-
- public:
- TerminalStripTreeWidget(QWidget *parent = nullptr);
-
- protected:
- QStringList mimeTypes() const override;
- void startDrag(Qt::DropActions supportedActions) override;
- void dragMoveEvent(QDragMoveEvent *event) override;
- void dropEvent(QDropEvent *event) override;
- Qt::DropActions supportedDropActions() const override;
-};
-
-#endif // TERMINALSTRIPTREEWIDGET_H
diff --git a/sources/elementprovider.cpp b/sources/elementprovider.cpp
index d530f32ae..83c98dab0 100644
--- a/sources/elementprovider.cpp
+++ b/sources/elementprovider.cpp
@@ -20,7 +20,6 @@
#include "diagram.h"
#include "qetgraphicsitem/ViewItem/qetgraphicstableitem.h"
#include "qetgraphicsitem/element.h"
-#include "qetgraphicsitem/terminalelement.h"
#include "qetproject.h"
#include
@@ -182,28 +181,3 @@ QetGraphicsTableItem *ElementProvider::tableFromUuid(const QUuid &uuid)
return nullptr;
}
-
-/**
- * @brief ElementProvider::freeTerminal
- * @return a vector of every terminals element who doesn't
- * belong to a terminal strip.
- */
-QVector ElementProvider::freeTerminal() const
-{
- QVector vector_;
-
- for (const auto diagram : m_diagram_list) {
- DiagramContent dc(diagram, false);
- for (const auto element : qAsConst(dc.m_elements)) {
- if (element->elementData().m_type == ElementData::Terminale)
- {
- auto te = static_cast(element);
- if (!te->parentTerminalStrip()) {
- vector_.append(static_cast(element));
- }
- }
- }
- }
-
- return vector_;
-}
diff --git a/sources/elementprovider.h b/sources/elementprovider.h
index 9fbbabd4a..15954dd45 100644
--- a/sources/elementprovider.h
+++ b/sources/elementprovider.h
@@ -26,7 +26,6 @@ class QETProject;
class Diagram;
class Element;
class QetGraphicsTableItem;
-class TerminalElement;
/**
this class can search in the given diagram or project some kind of element
@@ -44,7 +43,6 @@ class ElementProvider
QList find(const int filter) const;
QVector table(QetGraphicsTableItem *table = nullptr, QAbstractItemModel *model = nullptr);
QetGraphicsTableItem *tableFromUuid(const QUuid &uuid);
- QVector freeTerminal() const;
private:
QList m_diagram_list;
diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp
index baa6f69ab..69e392ea8 100644
--- a/sources/qetdiagrameditor.cpp
+++ b/sources/qetdiagrameditor.cpp
@@ -42,7 +42,6 @@
#include "undocommand/rotateselectioncommand.h"
#include "undocommand/rotatetextscommand.h"
#include "diagram.h"
-#include "TerminalStrip/ui/terminalstripeditor.h"
#ifdef BUILD_WITHOUT_KF5
#else
@@ -437,16 +436,6 @@ void QETDiagramEditor::setUpActions()
}
});
- m_terminal_strip_dialog = new QAction(QET::Icons::TerminalStrip, tr("Gestionnaire de borniers (DEV)"), this);
- connect(m_terminal_strip_dialog, &QAction::triggered, [this]()
- {
- if (auto project = this->currentProject())
- {
- auto str = new TerminalStripEditor(project, this);
- str->show();
- }
- });
-
//Lauch the plugin of terminal generator
m_project_terminalBloc = new QAction(QET::Icons::TerminalStrip, tr("Lancer le plugin de création de borniers"), this);
connect(m_project_terminalBloc, &QAction::triggered, this, &QETDiagramEditor::generateTerminalBlock);
@@ -820,7 +809,6 @@ void QETDiagramEditor::setUpMenu()
menu_project -> addAction(m_add_nomenclature);
menu_project -> addAction(m_csv_export);
menu_project -> addAction(m_project_export_conductor_num);
- menu_project -> addAction(m_terminal_strip_dialog);
menu_project -> addAction(m_project_terminalBloc);
#ifdef QET_EXPORT_PROJECT_DB
menu_project -> addSeparator();
@@ -1514,7 +1502,16 @@ void QETDiagramEditor::slot_updateActions()
m_close_file-> setEnabled(opened_project);
m_save_file-> setEnabled(opened_project);
m_save_file_as-> setEnabled(opened_project);
+ m_project_edit_properties-> setEnabled(opened_project);
+ m_project_export_conductor_num->setEnabled(opened_project);
+ //prj_terminalBloc -> setEnabled(opened_project);
m_rotate_texts-> setEnabled(editable_project);
+ m_project_add_diagram-> setEnabled(editable_project);
+ m_remove_diagram_from_project-> setEnabled(editable_project);
+ m_clean_project-> setEnabled(editable_project);
+ m_add_nomenclature-> setEnabled(editable_project);
+ m_add_summary-> setEnabled(editable_project);
+ m_csv_export-> setEnabled(editable_project);
m_export_to_images-> setEnabled(opened_diagram);
m_print-> setEnabled(opened_diagram);
m_export_to_pdf-> setEnabled(opened_diagram);
@@ -1525,17 +1522,6 @@ void QETDiagramEditor::slot_updateActions()
m_row_column_actions_group. setEnabled(editable_project);
m_grey_background-> setEnabled(opened_diagram);
- //Project menu
- m_project_edit_properties -> setEnabled(opened_project);
- m_project_add_diagram -> setEnabled(editable_project);
- m_remove_diagram_from_project -> setEnabled(editable_project);
- m_clean_project -> setEnabled(editable_project);
- m_add_summary -> setEnabled(editable_project);
- m_add_nomenclature -> setEnabled(editable_project);
- m_csv_export -> setEnabled(editable_project);
- m_project_export_conductor_num-> setEnabled(opened_project);
- m_terminal_strip_dialog -> setEnabled(editable_project);
-
slot_updateUndoStack();
slot_updateModeActions();
diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h
index 34d9da9f1..db17ea877 100644
--- a/sources/qetdiagrameditor.h
+++ b/sources/qetdiagrameditor.h
@@ -192,7 +192,6 @@ class QETDiagramEditor : public QETMainWindow
*m_csv_export, ///< generate nomenclature
*m_add_nomenclature, ///< Add nomenclature graphics item;
*m_add_summary, /// m_parent_terminal_strip;
};
#endif // TERMINALELEMENT_H
diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp
index ee187509b..748b7bfbc 100644
--- a/sources/qetproject.cpp
+++ b/sources/qetproject.cpp
@@ -31,8 +31,6 @@
#include "titleblocktemplate.h"
#include "ui/dialogwaiting.h"
#include "ui/importelementdialog.h"
-#include "TerminalStrip/terminalstrip.h"
-#include "qetxml.h"
#include
#include
@@ -914,16 +912,6 @@ QDomDocument QETProject::toXml()
appended_diagram.toElement().setAttribute("order", order_num ++);
}
- //Write terminal strip to xml
- if (m_terminal_strip_vector.count())
- {
- auto xml_strip = xml_doc.createElement(QStringLiteral("terminal_strips"));
- for (auto &strip : m_terminal_strip_vector) {
- xml_strip.appendChild(strip->toXml(xml_doc));
- }
- project_root.appendChild(xml_strip);
- }
-
// Write the elements collection.
project_root.appendChild(m_elements_collection->root().cloneNode(true));
@@ -1353,26 +1341,16 @@ void QETProject::readProjectXml(QDomDocument &xml_project)
}
m_data_base.blockSignals(true);
-
//Load the project-wide properties
readProjectPropertiesXml(xml_project);
-
//Load the default properties for the new diagrams
readDefaultPropertiesXml(xml_project);
-
//load the embedded titleblock templates
m_titleblocks_collection.fromXml(xml_project.documentElement());
-
//Load the embedded elements collection
readElementsCollectionXml(xml_project);
-
//Load the diagrams
readDiagramsXml(xml_project);
-
- //Load the terminal strip
- readTerminalStripXml(xml_project);
-
-
m_data_base.blockSignals(false);
m_data_base.updateDB();
@@ -1590,26 +1568,6 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
}
}
-/**
- * @brief QETProject::readTerminalStripXml
- * Read the terminal strips of this project
- * @param xml_project
- */
-void QETProject::readTerminalStripXml(const QDomDocument &xml_project)
-{
- auto xml_elmt = xml_project.documentElement();
- auto xml_strips = xml_elmt.firstChildElement(QStringLiteral("terminal_strips"));
- if (!xml_strips.isNull())
- {
- for (auto xml_strip : QETXML::findInDomElement(xml_strips, TerminalStrip::xmlTagName()))
- {
- auto terminal_strip = new TerminalStrip(this);
- terminal_strip->fromXml(xml_strip);
- addTerminalStrip(terminal_strip);
- }
- }
-}
-
/**
Export project properties under the \a xml_element XML element.
*/
@@ -1858,64 +1816,6 @@ void QETProject::setProjectProperties(const DiagramContext &context) {
updateDiagramsFolioData();
}
-/**
- * @brief QETProject::terminalStrip
- * @return a QVector who contain all terminal strip owned by this project
- */
-QVector QETProject::terminalStrip() const {
- return m_terminal_strip_vector;
-}
-
-/**
- * @brief QETProject::newTerminalStrip
- * @param installation : installation of the terminal strip
- * @param location : location of the terminal strip
- * @param name : name of the terminal strip
- * @return Create a new terminal strip with this project as parent.
- * You can retrieve this terminal strip at any time by calling the function
- * QETProject::terminalStrip()
- */
-TerminalStrip *QETProject::newTerminalStrip(QString installation, QString location, QString name)
-{
- auto ts = new TerminalStrip(installation,
- location,
- name,
- this);
-
- m_terminal_strip_vector.append(ts);
- return ts;
-}
-
-/**
- * @brief QETProject::addTerminalStrip
- * Add \p strip to the terminal strip list of the project.
- * The project of \p strip must this project
- * @param strip
- * @return true if successfully added
- */
-bool QETProject::addTerminalStrip(TerminalStrip *strip)
-{
- if (strip->parent() != this)
- return false;
-
- if (m_terminal_strip_vector.contains(strip))
- return true;
-
- m_terminal_strip_vector.append(strip);
- return true;
-}
-
-/**
- * @brief QETProject::removeTerminalStrip
- * Remove \p strip from the terminal strip list of this project.
- * Strip is removed from the list but not deleted.
- * @param strip
- * @return true if successfully removed.
- */
-bool QETProject::removeTerminalStrip(TerminalStrip *strip) {
- return m_terminal_strip_vector.removeOne(strip);
-}
-
/**
Cette methode sert a reperer un projet vide, c-a-d un projet identique a ce
que l'on obtient en faisant Fichier > Nouveau.
diff --git a/sources/qetproject.h b/sources/qetproject.h
index 09dfa2825..a4561de4e 100644
--- a/sources/qetproject.h
+++ b/sources/qetproject.h
@@ -42,8 +42,6 @@ class NumerotationContext;
class QUndoStack;
class XmlElementCollection;
class QTimer;
-class TerminalStrip;
-
#ifdef BUILD_WITHOUT_KF5
#else
class KAutoSaveFile;
@@ -178,11 +176,6 @@ class QETProject : public QObject
void setProjectProperties(const DiagramContext &);
QUndoStack* undoStack() {return m_undo_stack;}
- QVector terminalStrip() const;
- TerminalStrip * newTerminalStrip(QString installation = QString(), QString location = QString(), QString name = QString());
- bool addTerminalStrip(TerminalStrip *strip);
- bool removeTerminalStrip(TerminalStrip *strip);
-
public slots:
Diagram *addNewDiagram(int pos = -1);
void removeDiagram(Diagram *);
@@ -225,7 +218,6 @@ class QETProject : public QObject
void readElementsCollectionXml(QDomDocument &xml_project);
void readProjectPropertiesXml(QDomDocument &xml_project);
void readDefaultPropertiesXml(QDomDocument &xml_project);
- void readTerminalStripXml(const QDomDocument &xml_project);
void writeProjectPropertiesXml(QDomElement &);
void writeDefaultPropertiesXml(QDomElement &);
@@ -289,7 +281,6 @@ class QETProject : public QObject
#endif
QUuid m_uuid = QUuid::createUuid();
projectDataBase m_data_base;
- QVector m_terminal_strip_vector;
};
Q_DECLARE_METATYPE(QETProject *)