[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
]
- To: qet@xxxxxxxxxxxxxxxxxxx
- Subject: [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.
- From: subversion@xxxxxxxxxxxxx
- Date: Mon, 28 Jun 2010 00:42:44 +0200
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);