From c58448bf76da5a7bd27a159d6bed69c9052cc489 Mon Sep 17 00:00:00 2001 From: blacksun Date: Wed, 1 Jan 2014 16:28:19 +0000 Subject: [PATCH] update folio report when move diagram position git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2692 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/diagram.cpp | 2 +- sources/elementprovider.cpp | 2 +- sources/elementprovider.h | 2 +- sources/qetgraphicsitem/element.h | 2 +- sources/qetgraphicsitem/reportelement.cpp | 13 ++++++++++--- sources/qetgraphicsitem/reportelement.h | 3 ++- sources/ui/folioreportproperties.cpp | 2 +- sources/ui/folioreportproperties.ui | 2 +- 8 files changed, 18 insertions(+), 10 deletions(-) diff --git a/sources/diagram.cpp b/sources/diagram.cpp index 369219377..388528951 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -767,7 +767,7 @@ void Diagram::removeElement(Element *element) { if (!element || isReadOnly()) return; // remove all links of element - element->unLinkAllElements(); + element->unlinkAllElements(); // enleve l'element au schema removeItem(element); diff --git a/sources/elementprovider.cpp b/sources/elementprovider.cpp index 5ef5d33e7..ef8aadc47 100644 --- a/sources/elementprovider.cpp +++ b/sources/elementprovider.cpp @@ -38,7 +38,7 @@ ElementProvider::ElementProvider(QETProject *prj, Diagram *diagram) * (You can find all filter with the #define in Element.h) * @return */ -QList ElementProvider::FreeElement(const int filter) const{ +QList ElementProvider::freeElement(const int filter) const{ QList free_elmt; //serch in all diagram diff --git a/sources/elementprovider.h b/sources/elementprovider.h index 9ab95ae13..432f1149e 100644 --- a/sources/elementprovider.h +++ b/sources/elementprovider.h @@ -32,7 +32,7 @@ class ElementProvider { public: ElementProvider(QETProject *prj, Diagram *diagram=0); - QList FreeElement(const int filter) const; + QList freeElement(const int filter) const; QList fromUuids(QList ) const; private: diff --git a/sources/qetgraphicsitem/element.h b/sources/qetgraphicsitem/element.h index 089147a14..f1dda6dc3 100644 --- a/sources/qetgraphicsitem/element.h +++ b/sources/qetgraphicsitem/element.h @@ -89,7 +89,7 @@ class Element : public QetGraphicsItem { // related method for link between element bool isFree () const; virtual void linkToElement(Element *) {} - virtual void unLinkAllElements() {} + virtual void unlinkAllElements() {} void initLink(QETProject *); QList linkedElements () const; diff --git a/sources/qetgraphicsitem/reportelement.cpp b/sources/qetgraphicsitem/reportelement.cpp index 495e185bf..51e177ee9 100644 --- a/sources/qetgraphicsitem/reportelement.cpp +++ b/sources/qetgraphicsitem/reportelement.cpp @@ -18,6 +18,7 @@ #include "reportelement.h" #include "elementtextitem.h" #include "diagramposition.h" +#include "qetproject.h" ReportElement::ReportElement(const ElementsLocation &location, QGraphicsItem *qgi, Diagram *s, int *state) : CustomElement(location, qgi, s, state) @@ -25,6 +26,10 @@ ReportElement::ReportElement(const ElementsLocation &location, QGraphicsItem *qg texts().at(0)->setNoEditable(); } +ReportElement::~ReportElement() { + unlinkAllElements(); +} + /** * @brief ReportElement::linkToElement * Link this element to the other element @@ -40,9 +45,10 @@ void ReportElement::linkToElement(Element * elmt) { //ensure elmt is a report if (elmt->linkType() == Report && i) { - unLinkAllElements(); + unlinkAllElements(); connected_elements << elmt; connect(elmt, SIGNAL(positionChange(QPointF)), this, SLOT(updateLabel())); + connect(diagram()->project(), SIGNAL(projectDiagramsOrderChanged(QETProject*,int,int)), this, SLOT(updateLabel())); updateLabel(); tmp_uuids_link.removeAll(elmt->uuid()); elmt->linkToElement(this); @@ -53,18 +59,19 @@ void ReportElement::linkToElement(Element * elmt) { * @brief ReportElement::unLinkAllElements * Unlink all of the element in the QList connected_elements */ -void ReportElement::unLinkAllElements(){ +void ReportElement::unlinkAllElements(){ if (!isFree()){ QList tmp_elmt = connected_elements; foreach(Element *elmt, connected_elements) { disconnect(elmt, SIGNAL(positionChange(QPointF)), this, SLOT(updateLabel())); + disconnect(diagram()->project(), SIGNAL(projectDiagramsOrderChanged(QETProject*,int,int)), this, SLOT(updateLabel())); } connected_elements.clear(); updateLabel(); foreach(Element *elmt, tmp_elmt){ - elmt->unLinkAllElements(); + elmt->unlinkAllElements(); } } } diff --git a/sources/qetgraphicsitem/reportelement.h b/sources/qetgraphicsitem/reportelement.h index edcbc5c9d..c9c28d881 100644 --- a/sources/qetgraphicsitem/reportelement.h +++ b/sources/qetgraphicsitem/reportelement.h @@ -31,8 +31,9 @@ class ReportElement : public CustomElement { public : explicit ReportElement(const ElementsLocation &, QGraphicsItem * = 0, Diagram * = 0, int * = 0); + ~ReportElement(); virtual void linkToElement(Element *); - virtual void unLinkAllElements(); + virtual void unlinkAllElements(); virtual int linkType() const; private: diff --git a/sources/ui/folioreportproperties.cpp b/sources/ui/folioreportproperties.cpp index 62aea9fd0..1c79626eb 100644 --- a/sources/ui/folioreportproperties.cpp +++ b/sources/ui/folioreportproperties.cpp @@ -37,7 +37,7 @@ FolioReportProperties::~FolioReportProperties() */ void FolioReportProperties::BuildRadioList() { ElementProvider ep(element_->diagram()->project(), element_->diagram()); - QList elmt_list = ep.FreeElement(Element::Report); + QList elmt_list = ep.freeElement(Element::Report); foreach (Element *elmt, elmt_list) { if (elmt != element_) { diff --git a/sources/ui/folioreportproperties.ui b/sources/ui/folioreportproperties.ui index 827971f71..9275732e9 100644 --- a/sources/ui/folioreportproperties.ui +++ b/sources/ui/folioreportproperties.ui @@ -15,7 +15,7 @@ - +