diff --git a/sources/ui/linksingleelementwidget.cpp b/sources/ui/linksingleelementwidget.cpp index 57637166f..670e0f9fe 100644 --- a/sources/ui/linksingleelementwidget.cpp +++ b/sources/ui/linksingleelementwidget.cpp @@ -83,10 +83,12 @@ LinkSingleElementWidget::~LinkSingleElementWidget() if(m_showed_element) m_showed_element->setHighlighted(false); - m_element->setHighlighted(false); - - if (!m_element->isFree()) - m_element->linkedElements().first()->setHighlighted(false); + if(m_element) + { + m_element->setHighlighted(false); + if (!m_element->isFree()) + m_element->linkedElements().first()->setHighlighted(false); + } delete ui; } diff --git a/sources/ui/potentialselectordialog.cpp b/sources/ui/potentialselectordialog.cpp index 5477b0b3f..14e9e231a 100644 --- a/sources/ui/potentialselectordialog.cpp +++ b/sources/ui/potentialselectordialog.cpp @@ -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 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("\nNumero : %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("\nNumero : %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/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 6a5524c8f..0c5f8d0fb 100644 --- a/sources/undocommand/linkelementcommand.h +++ b/sources/undocommand/linkelementcommand.h @@ -38,8 +38,6 @@ class LinkElementCommand : public QUndoCommand 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);