Topic: bug verrouillage image

Bonsoir,

j'ai noté un petit bug dans la 0.4rc1 . 

- poser une image, verrouiller sa position avec la checkbox, l'image est bien verrouillée
- sauver, fermer, réouvrir : l'image n'est plus verrouillée, la checkbox est décochée

Re: bug verrouillage image

Bonjour,
Le statut verrouillé ou pas n’était pas sauvegardé dans le xml ni lu pour les basic shapes et les images.
Un premier patch ressemblerai à ça:

Index: sources/qetgraphicsitem/diagramimageitem.cpp
===================================================================
--- sources/qetgraphicsitem/diagramimageitem.cpp    (révision 3478)
+++ sources/qetgraphicsitem/diagramimageitem.cpp    (copie de travail)
@@ -198,6 +198,7 @@
     if (e.tagName() != "image") return (false);
     QDomNode image_node = e.firstChild();
     if (!image_node.isText()) return (false);
+    is_movable_ = (e.attribute("is_movable").toInt());
 
     //load xml image to QByteArray
     QByteArray array;
@@ -226,6 +227,7 @@
     result.setAttribute("y", QString("%1").arg(pos().y()));
     result.setAttribute("rotation", QString("%1").arg(rotation()));
     result.setAttribute("size", QString("%1").arg(scale()));
+    result.setAttribute("is_movable", bool(is_movable_));
 
     //write the pixmap in the xml element after he was been transformed to base64
     QByteArray array;
Index: sources/qetgraphicsitem/qetshapeitem.cpp
===================================================================
--- sources/qetgraphicsitem/qetshapeitem.cpp    (révision 3478)
+++ sources/qetgraphicsitem/qetshapeitem.cpp    (copie de travail)
@@ -204,6 +204,7 @@
 bool QetShapeItem::fromXml(const QDomElement &e) {
     if (e.tagName() != "shape") return (false);
 
+    is_movable_ = (e.attribute("is_movable").toInt());
     m_shapeStyle = Qt::PenStyle(e.attribute("style","0").toInt());
 
     if (e.attribute("type", "0").toInt() != Polyline) {
@@ -235,6 +236,7 @@
     //write some attribute
     result.setAttribute("type", QString::number(m_shapeType));
     result.setAttribute("style", QString::number(m_shapeStyle));
+    result.setAttribute("is_movable", bool(is_movable_));
 
     if (m_shapeType != Polyline) {
         result.setAttribute("x1", mapToScene(m_P1).x());

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: bug verrouillage image

Merci du retour, tu pourras tester?
La révision 3482 sauvegarde l’état de verrouillage des images, basic shapes.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

4 (edited by gromit 2014-11-13 14:20:03)

Re: bug verrouillage image

testé sous windows : ça marche. je vais tester ce soir avec mon pinguoin.

PS: t'es trop rapide pour répondre aux demandes, ça va donner de mauvaises habitudes aux utilisateurs ...

Re: bug verrouillage image

PS: t'es trop rapide pour répondre aux demandes, ça va donner de mauvaises habitudes aux utilisateurs ...

Et Joshua encore plus rapide pour trouver un bug dans mon commit, et le corriger.  ;-)
Revision: 3483
Author:   blacksun
Date:     2014-11-13 13:12:53 +0100 (Thu, 13 Nov 2014)
Log Message:
-----------
Diagram image item fix : At opening of diagram, position is wrong if image was saved with is_movable to false;


r3483-blacksun.diff
Modified: trunk/sources/qetgraphicsitem/diagramimageitem.cpp
===================================================================
--- trunk/sources/qetgraphicsitem/diagramimageitem.cpp  2014-11-13 11:21:06 UTC (rev 3482)
+++ trunk/sources/qetgraphicsitem/diagramimageitem.cpp  2014-11-13 12:12:53 UTC (rev 3483)
@@ -198,7 +198,6 @@
        if (e.tagName() != "image") return (false);
        QDomNode image_node = e.firstChild();
        if (!image_node.isText()) return (false);
-       is_movable_ = (e.attribute("is_movable").toInt());
 
        //load xml image to QByteArray
        QByteArray array;
@@ -212,6 +211,7 @@
        setScale(e.attribute("size").toDouble());
        applyRotation(e.attribute("rotation").toDouble());
        setPos(e.attribute("x").toDouble(), e.attribute("y").toDouble());
+       is_movable_ = (e.attribute("is_movable").toInt());
 
        return (true);
 }

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: bug verrouillage image

testé aussi sous linux: ça marche

Re: bug verrouillage image

Merci ;-)

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."