[qet] [1065] Correction du bug #32 : desactivation des flags Focusable avant le rendu de l' impression pour contourner un bug Qt relatif au focus des textes.

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


Revision: 1065
Author:   xavier
Date:     2010-06-28 00:42:43 +0200 (Mon, 28 Jun 2010)
Log Message:
-----------
Correction du bug #32 : desactivation des flags Focusable avant le rendu de l'impression pour contourner un bug Qt relatif au focus des textes.

Modified Paths:
--------------
    trunk/sources/diagramprintdialog.cpp

Modified: trunk/sources/diagramprintdialog.cpp
===================================================================
--- trunk/sources/diagramprintdialog.cpp	2010-06-22 20:57:46 UTC (rev 1064)
+++ trunk/sources/diagramprintdialog.cpp	2010-06-27 22:42:43 UTC (rev 1065)
@@ -382,6 +382,20 @@
 	QList<QGraphicsItem *> selected_elmts = diagram -> selectedItems();
 	foreach (QGraphicsItem *qgi, selected_elmts) qgi -> setSelected(false);
 	
+	// enleve le flag focusable de tous les elements concernes pour eviter toute reprise de focus par un champ de texte editable
+	QList<QGraphicsItem *> focusable_items;
+	foreach (QGraphicsItem *qgi, diagram -> items()) {
+		if (qgi -> flags() & QGraphicsItem::ItemIsFocusable) {
+			focusable_items << qgi;
+			qgi -> setFlag(QGraphicsItem::ItemIsFocusable, false);
+		}
+	}
+	
+	// evite toute autre forme d'interaction
+	foreach (QGraphicsView *view, diagram -> views()) {
+		view -> setInteractive(false);
+	}
+	
 	if (fit_page) {
 		// impression adaptee sur une seule page
 		diagram -> render(qp, QRectF(), diagramRect(diagram), Qt::KeepAspectRatio);
@@ -446,6 +460,16 @@
 		}
 	}
 	
+	// remet en place les interactions
+	foreach (QGraphicsView *view, diagram -> views()) {
+		view -> setInteractive(true);
+	}
+	
+	// restaure les flags focusable
+	foreach (QGraphicsItem *qgi, focusable_items) {
+		qgi -> setFlag(QGraphicsItem::ItemIsFocusable, true);
+	}
+	
 	// restaure les elements selectionnes
 	foreach (QGraphicsItem *qgi, selected_elmts) qgi -> setSelected(true);
 	


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