mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Merge branch 0.4 import image to trunk
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2449 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
#include "ghostelement.h"
|
||||
#include "independenttextitem.h"
|
||||
#include "qetapp.h"
|
||||
#include "diagramimageitem.h"
|
||||
|
||||
const int Diagram::xGrid = 10;
|
||||
const int Diagram::yGrid = 10;
|
||||
@@ -334,6 +335,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
|
||||
QList<Element *> list_elements;
|
||||
QList<Conductor *> list_conductors;
|
||||
QList<DiagramTextItem *> list_texts;
|
||||
QList<DiagramImageItem *> list_images;
|
||||
|
||||
// Determine les elements a "XMLiser"
|
||||
foreach(QGraphicsItem *qgi, items()) {
|
||||
@@ -350,6 +352,9 @@ QDomDocument Diagram::toXml(bool whole_content) {
|
||||
} else if (IndependentTextItem *iti = qgraphicsitem_cast<IndependentTextItem *>(qgi)) {
|
||||
if (whole_content) list_texts << iti;
|
||||
else if (iti -> isSelected()) list_texts << iti;
|
||||
} else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(qgi)) {
|
||||
if (whole_content) list_images << dii;
|
||||
else if (dii -> isSelected()) list_images << dii;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -382,6 +387,15 @@ QDomDocument Diagram::toXml(bool whole_content) {
|
||||
}
|
||||
racine.appendChild(inputs);
|
||||
}
|
||||
|
||||
// save of images
|
||||
if (!list_images.isEmpty()) {
|
||||
QDomElement images = document.createElement("images");
|
||||
foreach (DiagramImageItem *dii, list_images) {
|
||||
images.appendChild(dii -> toXml(document));
|
||||
}
|
||||
racine.appendChild(images);
|
||||
}
|
||||
|
||||
// on retourne le document XML ainsi genere
|
||||
return(document);
|
||||
@@ -536,6 +550,14 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
addIndependentTextItem(iti);
|
||||
added_texts << iti;
|
||||
}
|
||||
|
||||
QList<DiagramImageItem *> added_images;
|
||||
foreach (QDomElement image_xml, QET::findInDomElement(root, "images", "image")) {
|
||||
DiagramImageItem *dii = new DiagramImageItem (this);
|
||||
dii -> fromXml(image_xml);
|
||||
addItem(dii);
|
||||
added_images << dii;
|
||||
}
|
||||
|
||||
// gere la translation des nouveaux elements et texte si celle-ci est demandee
|
||||
if (position != QPointF()) {
|
||||
@@ -545,6 +567,7 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
QList<QGraphicsItem *> added_items;
|
||||
foreach (Element *added_element, added_elements) added_items << added_element;
|
||||
foreach (DiagramTextItem *added_text, added_texts) added_items << added_text;
|
||||
foreach (DiagramImageItem *added_image, added_images) added_items << added_image;
|
||||
foreach (QGraphicsItem *item, added_items) {
|
||||
QPointF csg = item -> mapToScene(item -> boundingRect()).boundingRect().topLeft();
|
||||
qreal px = csg.x();
|
||||
@@ -566,6 +589,9 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
foreach (DiagramTextItem *added_text, added_texts) {
|
||||
added_text -> setPos(added_text -> pos().x() + diff_x, added_text -> pos().y() + diff_y);
|
||||
}
|
||||
foreach (DiagramImageItem *added_image, added_images) {
|
||||
added_image -> setPos(added_image -> pos().x() + diff_x, added_image -> pos().y() + diff_y);
|
||||
}
|
||||
}
|
||||
|
||||
// chargement de tous les Conducteurs du fichier XML
|
||||
@@ -601,6 +627,7 @@ bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_inf
|
||||
content_ptr -> elements = added_elements.toSet();
|
||||
content_ptr -> conductorsToMove = added_conductors.toSet();
|
||||
content_ptr -> textFields = added_texts.toSet();
|
||||
content_ptr -> images = added_images.toSet();
|
||||
}
|
||||
|
||||
return(true);
|
||||
@@ -707,6 +734,15 @@ void Diagram::addIndependentTextItem(IndependentTextItem *iti) {
|
||||
);
|
||||
}
|
||||
|
||||
void Diagram::addDiagramImageItem(DiagramImageItem *dii) {
|
||||
if (!dii || isReadOnly()) return;
|
||||
|
||||
//add image at diagram
|
||||
if (dii -> scene() != this) {
|
||||
addItem(dii);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Enleve un element du schema
|
||||
@param element Element a enlever
|
||||
@@ -1183,6 +1219,8 @@ DiagramContent Diagram::selectedContent() {
|
||||
) {
|
||||
dc.otherConductors << c;
|
||||
}
|
||||
} else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(item)) {
|
||||
dc.images << dii;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1227,6 +1265,8 @@ bool Diagram::canRotateSelection() const {
|
||||
if (e -> orientation().current() != e -> orientation().next()) {
|
||||
return(true);
|
||||
}
|
||||
} else if (qgraphicsitem_cast<DiagramImageItem *>(qgi)) {
|
||||
return (true);
|
||||
}
|
||||
}
|
||||
return(false);
|
||||
|
||||
Reference in New Issue
Block a user