diff --git a/sources/ui/potentialselectordialog.cpp b/sources/ui/potentialselectordialog.cpp index 4039aa0bb..ae4580bc5 100644 --- a/sources/ui/potentialselectordialog.cpp +++ b/sources/ui/potentialselectordialog.cpp @@ -57,7 +57,7 @@ class NewConductorPotentialSelector : public AbstractPotentialSelector m_is_valid = true; } - bool isValid() const {return m_is_valid;} + bool isValid() const override {return m_is_valid;} /** * @brief getPotential @@ -110,7 +110,7 @@ class NewConductorPotentialSelector : public AbstractPotentialSelector properties_list.append(c->properties()); } - ~NewConductorPotentialSelector() {} + ~NewConductorPotentialSelector() override {} private : bool m_is_valid; @@ -155,9 +155,9 @@ class LinkReportPotentialSelector : public AbstractPotentialSelector } } - ~LinkReportPotentialSelector() {} + ~LinkReportPotentialSelector() override {} - bool isValid() const {return m_is_valid;} + bool isValid() const override {return m_is_valid;} private: bool m_is_valid; @@ -215,8 +215,27 @@ PotentialSelectorDialog::~PotentialSelectorDialog() */ void PotentialSelectorDialog::buildWidget() { - QRadioButton *rb1 = new QRadioButton(tr("Le potentiel avec numero de fil %1 est présent %2 fois").arg(m_potential_selector->m_properties_list_1.first().text).arg(m_potential_selector->m_conductor_number_1), this); - QRadioButton *rb2 = new QRadioButton(tr("Le potentiel avec numero de fil %1 est présent %2 fois").arg(m_potential_selector->m_properties_list_2.first().text).arg(m_potential_selector->m_conductor_number_2), this); + QString text1(tr("%n conducteurs composent le potentiel suivant :", "", m_potential_selector->m_conductor_number_1)); + ConductorProperties cp1 = m_potential_selector->m_properties_list_1.first(); + + if(!cp1.text.isEmpty()) + text1.append(tr("\nNuméro : %1").arg(cp1.text)); + if(!cp1.m_function.isEmpty()) + text1.append(tr("\nFonction : %1").arg(cp1.m_function)); + if(!cp1.m_tension_protocol.isEmpty()) + text1.append(tr("\nTension/protocole : %1").arg(cp1.m_tension_protocol)); + + QString text2(tr("%n conducteurs composent le potentiel suivant :", "", m_potential_selector->m_conductor_number_2)); + ConductorProperties cp2 = m_potential_selector->m_properties_list_2.first(); + if(!cp2.text.isEmpty()) + text2.append(tr("\nNuméro : %1").arg(cp2.text)); + if(!cp2.m_function.isEmpty()) + text2.append(tr("\nFonction : %1").arg(cp2.m_function)); + if(!cp2.m_tension_protocol.isEmpty()) + text2.append(tr("\nTension/protocole : %1").arg(cp2.m_tension_protocol)); + + QRadioButton *rb1 = new QRadioButton(text1, this); + QRadioButton *rb2 = new QRadioButton(text2, this); connect(rb1, &QRadioButton::toggled, [this](bool t) { @@ -252,7 +271,6 @@ void PotentialSelectorDialog::buildWidget() rb2->setChecked(true); } } -#include /** * @brief PotentialSelectorDialog::on_buttonBox_accepted diff --git a/sources/ui/potentialselectordialog.h b/sources/ui/potentialselectordialog.h index dedb9b7d6..0af016ff7 100644 --- a/sources/ui/potentialselectordialog.h +++ b/sources/ui/potentialselectordialog.h @@ -61,7 +61,7 @@ class PotentialSelectorDialog : public QDialog public: explicit PotentialSelectorDialog(Conductor *conductor, QUndoCommand *parent_undo = nullptr, QWidget *parent = nullptr); explicit PotentialSelectorDialog(Element *report, QUndoCommand *parent_undo = nullptr, QWidget *parent = nullptr); - ~PotentialSelectorDialog(); + ~PotentialSelectorDialog() override; private slots: void on_buttonBox_accepted(); diff --git a/sources/undocommand/linkelementcommand.cpp b/sources/undocommand/linkelementcommand.cpp index 1e472c2fc..8b711d0bb 100644 --- a/sources/undocommand/linkelementcommand.cpp +++ b/sources/undocommand/linkelementcommand.cpp @@ -123,29 +123,6 @@ bool LinkElementCommand::isLinkable(Element *element_a, Element *element_b, bool } } -/** - * @brief LinkElementCommand::addLink - * Add elements from the list to the linked element of edited element - * This method do several check to know if element can be linked or not. - * @param element_list - */ -void LinkElementCommand::addLink(QList element_list) -{ - setUpNewLink(element_list, false); -} - -/** - * @brief LinkElementCommand::addLink - * This is an overloaded function - * @param element_ - */ -void LinkElementCommand::addLink(Element *element_) -{ - QList list; - list << element_; - addLink(list); -} - /** * @brief LinkElementCommand::setLink * Replace all linked elements of edited element by elements stored in @element_list @@ -209,6 +186,9 @@ void LinkElementCommand::redo() if(m_element->diagram()) m_element->diagram()->showMe(); makeLink(m_linked_after); + //If the action is to link two reports together, we check if the conductors + //of the new potential have the same text, function, and protocol. + //if not, a dialog ask what do to. if (m_first_redo && (m_element->linkType() & Element::AllReport) \ && m_element->conductors().size() \ && m_linked_after.size() && m_linked_after.first()->conductors().size()) @@ -217,11 +197,18 @@ void LinkElementCommand::redo() QSet c_list = m_element->conductors().first()->relatedPotentialConductors(); c_list << m_element->conductors().first(); //fill list of text - QStringList strl; - foreach (const Conductor *c, c_list) strl<<(c->properties().text); + QStringList str_txt; + QStringList str_funct; + QStringList str_tens; + for (const Conductor *c : c_list) + { + str_txt << c->properties().text; + str_funct << c->properties().m_function; + str_tens << c->properties().m_tension_protocol; + } //check text list, isn't same in potential, ask user what to do - if (!QET::eachStrIsEqual(strl)) + if (!QET::eachStrIsEqual(str_txt) || !QET::eachStrIsEqual(str_funct) || !QET::eachStrIsEqual(str_tens)) { PotentialSelectorDialog psd(m_element, this); psd.exec(); diff --git a/sources/undocommand/linkelementcommand.h b/sources/undocommand/linkelementcommand.h index 9f580c427..0c5f8d0fb 100644 --- a/sources/undocommand/linkelementcommand.h +++ b/sources/undocommand/linkelementcommand.h @@ -31,22 +31,20 @@ class Element; class LinkElementCommand : public QUndoCommand { public: - LinkElementCommand(Element *element_, QUndoCommand *parent = 0); + LinkElementCommand(Element *element_, QUndoCommand *parent = nullptr); - virtual int id() const {return 2;} - virtual bool mergeWith(const QUndoCommand *other); + int id() const override {return 2;} + bool mergeWith(const QUndoCommand *other) override; static bool isLinkable (Element *element_a, Element *element_b, bool already_linked = false); - void addLink (QList element_list); - void addLink (Element *element_); void setLink (QList element_list); void setLink (Element *element_); void unlink (QList element_list); void unlinkAll (); - void undo(); - void redo(); + void undo() override; + void redo() override; private: void setUpNewLink (const QList &element_list, bool already_link);