[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
]
- To: qet@xxxxxxxxxxxxxxxxxxx
- Subject: [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 .
- From: subversion@xxxxxxxxxxxxx
- Date: Tue, 23 Feb 2010 23:04:23 +0100
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;
}