[qet] [859] Desormais, lors du drag'n drop d'un element depuis le panel d'element , la pixmap accrochee au pointeur est reduite si elle depasse une certaine taille .

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


Revision: 859
Author:   xavier
Date:     2010-02-23 23:04:22 +0100 (Tue, 23 Feb 2010)
Log Message:
-----------
Desormais, lors du drag'n drop d'un element depuis le panel d'element, la pixmap accrochee au pointeur est reduite si elle depasse une certaine taille.

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

Modified: trunk/sources/elementspanel.cpp
===================================================================
--- trunk/sources/elementspanel.cpp	2010-02-22 19:37:46 UTC (rev 858)
+++ trunk/sources/elementspanel.cpp	2010-02-23 22:04:22 UTC (rev 859)
@@ -35,6 +35,18 @@
 */
 #define ENABLE_PANEL_DND_CHECKS
 
+/*
+	Largeur maximale, en pixels, de la pixmap accrochee au pointeur de la
+	souris
+*/
+#define QET_MAX_DND_PIXMAP_WIDTH 500
+
+/*
+	Hauteur maximale, en pixels, de la pixmap accrochee au pointeur de la
+	souris
+*/
+#define QET_MAX_DND_PIXMAP_HEIGHT 375
+
 /**
 	Constructeur
 	@param parent Le QWidget parent du panel d'appareils
@@ -439,9 +451,22 @@
 		}
 		
 		// accrochage d'une pixmap representant l'appareil au pointeur
-		drag -> setPixmap(temp_elmt -> pixmap());
-		drag -> setHotSpot(temp_elmt -> hotspot());
+		QPixmap elmt_pixmap(temp_elmt -> pixmap());
+		QPoint elmt_hotspot(temp_elmt -> hotspot());
 		
+		// ajuste la pixmap si celle-ci est trop grande
+		QPoint elmt_pixmap_size(elmt_pixmap.width(), elmt_pixmap.height());
+		if (elmt_pixmap.width() > QET_MAX_DND_PIXMAP_WIDTH || elmt_pixmap.height() > QET_MAX_DND_PIXMAP_HEIGHT) {
+			elmt_pixmap = elmt_pixmap.scaled(QET_MAX_DND_PIXMAP_WIDTH, QET_MAX_DND_PIXMAP_HEIGHT, Qt::KeepAspectRatio);
+			elmt_hotspot = QPoint(
+				elmt_hotspot.x() * elmt_pixmap.width() / elmt_pixmap_size.x(),
+				elmt_hotspot.y() * elmt_pixmap.height() / elmt_pixmap_size.y()
+			);
+		}
+		
+		drag -> setPixmap(elmt_pixmap);
+		drag -> setHotSpot(elmt_hotspot);
+		
 		// suppression de l'appareil temporaire
 		delete temp_elmt;
 	}


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