menu: refactoring for Move function
authorGiWoong Kim <giwoong.kim@samsung.com>
Fri, 15 Jan 2016 07:47:28 +0000 (16:47 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Fri, 22 Jan 2016 01:44:39 +0000 (10:44 +0900)
- cancel the moving mode before the layout changing
- use override functions instead of event filter
- delete unnecessary functions
- modify function and variable names

Change-Id: I0e97f3c9816ab4f107796bba0616a6ab590184ff
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/ui/mainwindow.cpp
tizen/src/ui/mainwindow.h
tizen/src/ui/menu/contextmenu.cpp
tizen/src/ui/transwidget.cpp
tizen/src/ui/transwidget.h

index 1035ebf7703826c3a97b01a6b64caae9c1946d5a..2f25c16f6057d6c71f49dfaa148e018e0a45b840 100644 (file)
@@ -428,6 +428,9 @@ void MainWindow::switchForm(int index)
 {
     qDebug("window switch: %d", index);
 
+    /* terminate the moving mode */
+    destroyTransWidget();
+
     /* cancel HW key shortcuts */
     keyboardShortcut->cancelHwKeyShortcuts(uiInfo->getMainForm()->getKeyList());
 
@@ -462,6 +465,9 @@ void MainWindow::scaleForm(int scale)
 {
     qDebug("window scale: %d", scale);
 
+    /* terminate the moving mode */
+    destroyTransWidget();
+
     /* scale changing */
     getUiState()->setScalePct(scale);
 
@@ -576,31 +582,26 @@ void MainWindow::closeEvent(QCloseEvent *event)
 /* emulator move function */
 void MainWindow::createTransWidget()
 {
-    qDebug("create transparent widget");
+    qDebug("enter the moving mode");
 
-    if (this->uiInfo == NULL) {
-        qWarning("UiInfo object is null.");
-        return;
+    if (isTransWidgetCreated() == false) {
+        transWidget = new TransWidget(this);
     }
 
-    this->transWidget = new TransWidget(this);
-    this->transWidget->show();
+    transWidget->show();
 }
 
-void MainWindow::setTransWidget(TransWidget *widget)
+void MainWindow::destroyTransWidget()
 {
-    this->transWidget = widget;
-}
+    qDebug("leave the moving mode");
 
-TransWidget *MainWindow::getTransWidget()
-{
-    return this->transWidget;
+    if (isTransWidgetCreated() == true) {
+        transWidget->close();
+        transWidget = NULL;
+    }
 }
 
 bool MainWindow::isTransWidgetCreated()
 {
-    if (this->transWidget == NULL) {
-        return false;
-    }
-    return true;
+    return (transWidget != NULL);
 }
index 24a15a879abc5c6ef42282ab2cafd2d3424570fd..2178ec72b41e894a91445f8c2fc61ccd433dd29d 100644 (file)
@@ -83,8 +83,7 @@ public:
 
     /* emulator move function */
     void createTransWidget();
-    void setTransWidget(TransWidget *widget);
-    TransWidget *getTransWidget();
+    void destroyTransWidget();
     bool isTransWidgetCreated();
 
 public slots:
index 5f8a5ae4e438b5a379688d322453218a461d259a..dc324432239992f6300d3b3d9481eff833f23303 100644 (file)
@@ -705,10 +705,7 @@ void ContextMenu::slotOnTopShortcut()
 
 void ContextMenu::slotMove()
 {
-    if (parent->getTransWidget() == NULL) {
-        parent->createTransWidget();
-        parent->getTransWidget()->setCursor(Qt::SizeAllCursor);
-    }
+    parent->createTransWidget();
 }
 
 void ContextMenu::slotSwitch(int index)
index 88becb6b2e08574d29d00a3fb5acbcfee85c301a..592ddcbfa89fb60b77ad367f767fcb46def1e85a 100644 (file)
  */
 
 #include "transwidget.h"
-#include <QDesktopWidget>
-#include <QMouseEvent>
 #include "mainwindow.h"
 
 TransWidget::TransWidget(QWidget *parent) : QWidget(parent)
 {
-    qDebug("transparent widget is created.");
+    this->win = (MainWindow *)parent;
+    this->isGrab = false;
 
-#if defined(CONFIG_DARWIN)
-    setWindowFlags(Qt::Window);
-    setWindowFlags(Qt::FramelessWindowHint);
-#elif defined(CONFIG_LINUX)
+#ifndef CONFIG_WIN32
     setWindowFlags(Qt::FramelessWindowHint);
 #endif
 
     setAttribute(Qt::WA_NoSystemBackground);
     setAttribute(Qt::WA_TranslucentBackground);
     setAttribute(Qt::WA_DeleteOnClose);
-    resize(parent->size());
-    qDebug() << "transparent widget size: " << parent->size();
-    installEventFilter(this);
-    isGrab = false;
+
+    resize(win->size());
+    qDebug() << "transparent widget size:" << win->size();
+
+    setCursor(Qt::SizeAllCursor);
 }
 
 /* override */
-bool TransWidget::eventFilter(QObject *obj, QEvent *event)
+void TransWidget::mousePressEvent(QMouseEvent *event)
 {
-    TransWidget *widget = dynamic_cast<TransWidget *>(obj);
-    if (widget == NULL) {
-        return QObject::eventFilter(obj, event);
-    }
+    QWidget::mousePressEvent(event);
 
-    QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent *>(event);
-    if (mouseEvent == NULL) {
-        return QObject::eventFilter(obj, event);
+    if (event->button() == Qt::LeftButton) {
+        isGrab = true;
+        grabPos = event->pos();
+    } else {
+        qDebug("cancel the moving mode");
+        win->destroyTransWidget();
     }
+}
 
-    MainWindow *parent = qobject_cast<MainWindow*>(this->parent());
-    if (parent == NULL) {
-        qWarning() << "parent object(MainWindow) is null.";
-        return QObject::eventFilter(obj, event);
-    }
+/* override */
+void TransWidget::mouseReleaseEvent(QMouseEvent *event)
+{
+    QWidget::mouseReleaseEvent(event);
 
-    if (event->type() == QEvent::MouseButtonPress) {
-        if (mouseEvent->button() == Qt::LeftButton) {
-            isGrab = true;
-            grabPos = parent->mapToGlobal(QPoint(0,0)) - mouseEvent->globalPos();
-        }
-        if (mouseEvent->button() == Qt::RightButton) {
-            mouseEvent->ignore(); /* filtering */
-            return true;
-        }
-    } else if (event->type() == QEvent::MouseMove) {
-        if(isGrab == true) {
-            parent->move(mouseEvent->globalPos() + grabPos);
-        }
-    } else if (event->type() == QEvent::MouseButtonRelease) {
-        qDebug() << "The position of the emulator: " << this->mapToGlobal(QPoint(0,0));
-        close();
-        return true;
-    }
+    qDebug() << "window position:" << win->pos();
 
-    return QObject::eventFilter(obj, event);
+    isGrab = false;
+    win->destroyTransWidget();
+}
+
+/* override */
+void TransWidget::mouseMoveEvent(QMouseEvent *event)
+{
+    QWidget::mouseMoveEvent(event);
+
+    if (isGrab == true) {
+        win->move(event->globalPos() - grabPos);
+    }
 }
 
 TransWidget::~TransWidget()
 {
     qDebug("destroy transparent widget");
-    removeEventFilter(this);
-    MainWindow *parent = (MainWindow *)(this->parent());
-    parent->setTransWidget(NULL);
+
+    /* do nothing */
 }
index 033c5c7a7c8d517bac7a4dbee8028c484cd35a63..e69dabf3b25528d117162cba21e212490f620b67 100644 (file)
 #include <QWidget>
 #include <QEvent>
 
+class MainWindow;
+
 class TransWidget : public QWidget
 {
 public:
-    explicit TransWidget(QWidget *parent = 0);
+    explicit TransWidget(QWidget *parent);
     ~TransWidget();
-    bool isGrab;
-    QPoint grabPos;
 
 protected:
-    bool eventFilter(QObject *obj, QEvent *event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+
+private:
+    MainWindow *win;
+    bool isGrab;
+    QPoint grabPos;
 };
 
 #endif // TRANSWIDGET_H