dnd: make basic event handling structure
authorMunkyu Im <munkyu.im@samsung.com>
Mon, 4 Apr 2016 11:03:36 +0000 (20:03 +0900)
committerMunkyu Im <munkyu.im@samsung.com>
Tue, 12 Apr 2016 01:26:40 +0000 (10:26 +0900)
Change-Id: I54b74b47c1b28732ccb84d3f9ea7cb3b61133ae7
Signed-off-by: Munkyu Im <munkyu.im@samsung.com>
tizen/src/ui/displaybase.cpp
tizen/src/ui/displaybase.h
tizen/src/ui/displayglwidget.cpp
tizen/src/ui/displayglwidget.h
tizen/src/ui/displayswwidget.cpp
tizen/src/ui/displayswwidget.h

index c4c1dea7e6df634db59d70788eeeb135a719a991..04fcadf900a8cf3b6714320762f8734aa839076b 100644 (file)
@@ -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;
index ab47c5aa4d623a02551e143e8dd16eb37a35fdf4..3279f663ab2143b7f5b4973c51fcef008c53646d 100644 (file)
@@ -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;
index 9030bc13429b071c9a339a8965ab21ac929a88e7..f4dcb67ed05d92fb7ad03f85edf7e374664e3f95 100644 (file)
@@ -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)
 {
index 378fd6377d90dde7fee6810935e8872fed8fc840..491d6fe5946a07769892c41b6573f4ebe83fc973 100644 (file)
@@ -58,6 +58,9 @@ protected:
 
     void enterEvent(QEvent *event);
     void leaveEvent(QEvent *event);
+
+    void dragEnterEvent(QDragEnterEvent *event);
+    void dropEvent(QDropEvent *event);
 };
 
 #endif // DISPLAYGLWIDGET_H
index 114dbed4c48172974db2691c3fb6fcfd18cb3525..3880f7deb178849a843511e7b5457950c3e5db8f 100644 (file)
@@ -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)
 {
index 2e753e26437b6a1779ea5ddb12b02d85d99e208d..01dc7876dd188b378c18607b22332b7fbef14d1d 100644 (file)
@@ -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);
 };