From bb26954bd498cacf31a06a568cc4f9dc93deff6f Mon Sep 17 00:00:00 2001 From: joshua Date: Mon, 7 Jun 2021 20:00:52 +0200 Subject: [PATCH] Revert "Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet into terminal_strip" This reverts commit 364bce618cc8a2a77329261cc485a40f4825eac5, reversing changes made to efb4a8dd71b9e19ac55c5ac8911f1f53e3b43c22. --- qelectrotech.pro | 16 +- .../UndoCommand/addterminalstripcommand.cpp | 87 --- .../UndoCommand/addterminalstripcommand.h | 57 -- .../UndoCommand/addterminaltostripcommand.cpp | 156 ----- .../UndoCommand/addterminaltostripcommand.h | 79 --- .../UndoCommand/changeterminalstripdata.cpp | 43 -- .../UndoCommand/changeterminalstripdata.h | 41 -- sources/TerminalStrip/terminalstrip.cpp | 634 ------------------ sources/TerminalStrip/terminalstrip.h | 113 ---- sources/TerminalStrip/terminalstripdata.cpp | 102 --- sources/TerminalStrip/terminalstripdata.h | 55 -- .../ui/terminalstripcreatordialog.cpp | 107 --- .../ui/terminalstripcreatordialog.h | 54 -- .../ui/terminalstripcreatordialog.ui | 146 ---- .../TerminalStrip/ui/terminalstripeditor.cpp | 383 ----------- .../TerminalStrip/ui/terminalstripeditor.h | 70 -- .../TerminalStrip/ui/terminalstripeditor.ui | 271 -------- .../ui/terminalstriptreewidget.cpp | 139 ---- .../ui/terminalstriptreewidget.h | 73 -- sources/elementprovider.cpp | 26 - sources/elementprovider.h | 2 - sources/qetdiagrameditor.cpp | 32 +- sources/qetdiagrameditor.h | 1 - sources/qetgraphicsitem/terminalelement.cpp | 23 - sources/qetgraphicsitem/terminalelement.h | 7 - sources/qetproject.cpp | 100 --- sources/qetproject.h | 9 - 27 files changed, 12 insertions(+), 2814 deletions(-) delete mode 100644 sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp delete mode 100644 sources/TerminalStrip/UndoCommand/addterminalstripcommand.h delete mode 100644 sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp delete mode 100644 sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h delete mode 100644 sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp delete mode 100644 sources/TerminalStrip/UndoCommand/changeterminalstripdata.h delete mode 100644 sources/TerminalStrip/terminalstrip.cpp delete mode 100644 sources/TerminalStrip/terminalstrip.h delete mode 100644 sources/TerminalStrip/terminalstripdata.cpp delete mode 100644 sources/TerminalStrip/terminalstripdata.h delete mode 100644 sources/TerminalStrip/ui/terminalstripcreatordialog.cpp delete mode 100644 sources/TerminalStrip/ui/terminalstripcreatordialog.h delete mode 100644 sources/TerminalStrip/ui/terminalstripcreatordialog.ui delete mode 100644 sources/TerminalStrip/ui/terminalstripeditor.cpp delete mode 100644 sources/TerminalStrip/ui/terminalstripeditor.h delete mode 100644 sources/TerminalStrip/ui/terminalstripeditor.ui delete mode 100644 sources/TerminalStrip/ui/terminalstriptreewidget.cpp delete mode 100644 sources/TerminalStrip/ui/terminalstriptreewidget.h 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 *)