[qet] qet/qet: [5107] 0.6 branch : fix wrong behavior, in some condition when two folios report are linked together,

[ Thread Index | Date Index | More lists.tuxfamily.org/qet Archives ]


Revision: 5107
Author:   blacksun
Date:     2017-11-23 11:12:10 +0100 (Thu, 23 Nov 2017)
Log Message:
-----------
0.6 branch : fix wrong behavior, in some condition when two folios report are linked together,
the value of the funtion and tension/protocol of the selected potential are not transmit to the other report.

Modified Paths:
--------------
    branches/0.60/sources/ui/potentialselectordialog.cpp
    branches/0.60/sources/ui/potentialselectordialog.h
    branches/0.60/sources/undocommand/linkelementcommand.cpp
    branches/0.60/sources/undocommand/linkelementcommand.h

Modified: branches/0.60/sources/ui/potentialselectordialog.cpp
===================================================================
--- branches/0.60/sources/ui/potentialselectordialog.cpp	2017-11-18 19:23:04 UTC (rev 5106)
+++ branches/0.60/sources/ui/potentialselectordialog.cpp	2017-11-23 10:12:10 UTC (rev 5107)
@@ -57,7 +57,7 @@
 			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 @@
 				properties_list.append(c->properties());
 		}
 
-		~NewConductorPotentialSelector() {}
+		~NewConductorPotentialSelector() override {}
 
 	private :
 		bool m_is_valid;
@@ -155,9 +155,9 @@
 			}
 		}
 
-		~LinkReportPotentialSelector() {}
+		~LinkReportPotentialSelector() override {}
 
-		bool isValid() const {return m_is_valid;}
+		bool isValid() const override {return m_is_valid;}
 
 	private:
 		bool m_is_valid;
@@ -215,9 +215,28 @@
  */
 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)
 	{
 		if(t)
@@ -252,7 +271,6 @@
 		rb2->setChecked(true);
 	}
 }
-#include <QDebug>
 
 /**
  * @brief PotentialSelectorDialog::on_buttonBox_accepted

Modified: branches/0.60/sources/ui/potentialselectordialog.h
===================================================================
--- branches/0.60/sources/ui/potentialselectordialog.h	2017-11-18 19:23:04 UTC (rev 5106)
+++ branches/0.60/sources/ui/potentialselectordialog.h	2017-11-23 10:12:10 UTC (rev 5107)
@@ -61,7 +61,7 @@
     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();

Modified: branches/0.60/sources/undocommand/linkelementcommand.cpp
===================================================================
--- branches/0.60/sources/undocommand/linkelementcommand.cpp	2017-11-18 19:23:04 UTC (rev 5106)
+++ branches/0.60/sources/undocommand/linkelementcommand.cpp	2017-11-23 10:12:10 UTC (rev 5107)
@@ -124,29 +124,6 @@
 }
 
 /**
- * @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 *> element_list)
-{
-	setUpNewLink(element_list, false);
-}
-
-/**
- * @brief LinkElementCommand::addLink
- * This is an overloaded function
- * @param element_
- */
-void LinkElementCommand::addLink(Element *element_)
-{
-	QList<Element *> list;
-	list << element_;
-	addLink(list);
-}
-
-/**
  * @brief LinkElementCommand::setLink
  * Replace all linked elements of edited element by elements stored in @element_list
  * This method do several check to know if element can be linked or not.
@@ -209,6 +186,9 @@
 	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 @@
 		QSet <Conductor *> 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();

Modified: branches/0.60/sources/undocommand/linkelementcommand.h
===================================================================
--- branches/0.60/sources/undocommand/linkelementcommand.h	2017-11-18 19:23:04 UTC (rev 5106)
+++ branches/0.60/sources/undocommand/linkelementcommand.h	2017-11-23 10:12:10 UTC (rev 5107)
@@ -31,22 +31,20 @@
 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 *> element_list);
-		void addLink (Element *element_);
 		void setLink (QList<Element *> element_list);
 		void setLink (Element *element_);
 		void unlink  (QList<Element *> element_list);
 		void unlinkAll ();
 
-		void undo();
-		void redo();
+		void undo() override;
+		void redo() override;
 
 	private:
 		void setUpNewLink (const QList<Element *> &element_list, bool already_link);


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/