defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010-2011 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 #include "gridelementmovewidget.hpp" 00012 #include "gridelement.hpp" 00013 #include "exception.hpp" 00014 #include "gridwidget.hpp" 00015 #include "tab.hpp" 00016 #include <QMouseEvent> 00017 00018 using namespace Gui; 00019 00020 GridElementMoveWidget::GridElementMoveWidget(QWidget *parent) : 00021 QLabel(parent) 00022 { 00023 setAcceptDrops(true); 00024 if (!(gridElement = dynamic_cast<GridElement*>(parent->parentWidget()))) 00025 throw_exception(0x01, tr("Move widget parent must be a GridElement.")); 00026 tab = gridElement->getGridWidget()->getTab(); 00027 } 00028 00029 void GridElementMoveWidget::mousePressEvent(QMouseEvent *event) 00030 { 00031 if (event->button() == Qt::LeftButton) 00032 { 00033 QDrag *drag = new QDrag(this); 00034 QMimeData *mimeData = new QMimeData; 00035 mimeData->setData("application/x-defuzeme-gridelement", gridElement->getModule()->getUniqId().toUtf8()); 00036 drag->setMimeData(mimeData); 00037 drag->setPixmap(QPixmap::grabWidget(gridElement).scaledToWidth(qMin(200, gridElement->width()), 00038 Qt::SmoothTransformation)); 00039 tab->showDropLocations(gridElement->getPosition()); 00040 drag->exec(); 00041 tab->cleanGrid(); 00042 } 00043 }