From 3c32f841dee26d9e76c0efec4fbff3f7a23bf882 Mon Sep 17 00:00:00 2001 From: Munkyu Im Date: Mon, 4 Apr 2016 20:03:36 +0900 Subject: [PATCH] dnd: make basic event handling structure Change-Id: I54b74b47c1b28732ccb84d3f9ea7cb3b61133ae7 Signed-off-by: Munkyu Im --- tizen/src/ui/displaybase.cpp | 15 +++++++++++++++ tizen/src/ui/displaybase.h | 3 +++ tizen/src/ui/displayglwidget.cpp | 14 ++++++++++++++ tizen/src/ui/displayglwidget.h | 3 +++ tizen/src/ui/displayswwidget.cpp | 14 ++++++++++++++ tizen/src/ui/displayswwidget.h | 3 +++ 6 files changed, 52 insertions(+) diff --git a/tizen/src/ui/displaybase.cpp b/tizen/src/ui/displaybase.cpp index c4c1dea7e6..04fcadf900 100644 --- a/tizen/src/ui/displaybase.cpp +++ b/tizen/src/ui/displaybase.cpp @@ -439,6 +439,21 @@ void DisplayBase::turnOffMovingMode() } } +void DisplayBase::handleDragEnterEvent(QDragEnterEvent *event) +{ + if (event->mimeData()->hasUrls()) { + event->acceptProposedAction(); + } +} + +void DisplayBase::handleDropEvent(QDropEvent *event) +{ + foreach (const QUrl &url, event->mimeData()->urls()) { + QString fileName = url.toLocalFile(); + qDebug() << "Dropped file:" << fileName; + } +} + bool DisplayBase::isMovingMode() { return movingMode; diff --git a/tizen/src/ui/displaybase.h b/tizen/src/ui/displaybase.h index ab47c5aa4d..3279f663ab 100644 --- a/tizen/src/ui/displaybase.h +++ b/tizen/src/ui/displaybase.h @@ -81,6 +81,9 @@ protected: void handleMouseEnter(QEvent *event); void handleMouseLeave(QEvent *event); + void handleDragEnterEvent(QDragEnterEvent *event); + void handleDropEvent(QDropEvent *event); + bool isTsEnabled; int rotateAngle; qreal scaleFactor; diff --git a/tizen/src/ui/displayglwidget.cpp b/tizen/src/ui/displayglwidget.cpp index 9030bc1342..f4dcb67ed0 100644 --- a/tizen/src/ui/displayglwidget.cpp +++ b/tizen/src/ui/displayglwidget.cpp @@ -40,6 +40,8 @@ DisplayGLWidget::DisplayGLWidget(QWidget *parent, QGLContext *context, QGLWidget(context, parent), DisplayBase(displayForm, resolution, scaleFactor, this) { setAutoBufferSwap(false); + /* to be enable to drop events */ + setAcceptDrops(true); } /* override */ @@ -48,6 +50,18 @@ void DisplayGLWidget::initializeGL() qDebug("initialize GL"); } +/* override */ +void DisplayGLWidget::dragEnterEvent(QDragEnterEvent *event) +{ + handleDragEnterEvent(event); +} + +/* override */ +void DisplayGLWidget::dropEvent(QDropEvent *event) +{ + handleDropEvent(event); +} + /* override */ void DisplayGLWidget::paintEvent(QPaintEvent *event) { diff --git a/tizen/src/ui/displayglwidget.h b/tizen/src/ui/displayglwidget.h index 378fd6377d..491d6fe594 100644 --- a/tizen/src/ui/displayglwidget.h +++ b/tizen/src/ui/displayglwidget.h @@ -58,6 +58,9 @@ protected: void enterEvent(QEvent *event); void leaveEvent(QEvent *event); + + void dragEnterEvent(QDragEnterEvent *event); + void dropEvent(QDropEvent *event); }; #endif // DISPLAYGLWIDGET_H diff --git a/tizen/src/ui/displayswwidget.cpp b/tizen/src/ui/displayswwidget.cpp index 114dbed4c4..3880f7deb1 100644 --- a/tizen/src/ui/displayswwidget.cpp +++ b/tizen/src/ui/displayswwidget.cpp @@ -46,6 +46,8 @@ DisplaySWWidget::DisplaySWWidget(QWidget *parent, displayForm->getRect().height() * scaleFactor); initImage.fill(Qt::black); setPixmap(initImage); + /* to be enable to drop events */ + setAcceptDrops(true); } void DisplaySWWidget::drawMtPoints(QPainter &painter) @@ -78,6 +80,18 @@ void DisplaySWWidget::paintEvent(QPaintEvent *event) } } +/* override */ +void DisplaySWWidget::dragEnterEvent(QDragEnterEvent *event) +{ + handleDragEnterEvent(event); +} + +/* override */ +void DisplaySWWidget::dropEvent(QDropEvent *event) +{ + handleDropEvent(event); +} + /* override */ void DisplaySWWidget::resizeEvent(QResizeEvent *event) { diff --git a/tizen/src/ui/displayswwidget.h b/tizen/src/ui/displayswwidget.h index 2e753e2643..01dc7876dd 100644 --- a/tizen/src/ui/displayswwidget.h +++ b/tizen/src/ui/displayswwidget.h @@ -57,6 +57,9 @@ protected: void enterEvent(QEvent *event); void leaveEvent(QEvent *event); + void dragEnterEvent(QDragEnterEvent *event); + void dropEvent(QDropEvent *event); + private: void drawMtPoints(QPainter &painter); }; -- 2.34.1