Zoomb button mode is now set to disabled when zoombuttonpanel gets
authorKaj Wallin <kaj.wallin@ixonos.com>
Mon, 24 May 2010 07:59:05 +0000 (10:59 +0300)
committerKaj Wallin <kaj.wallin@ixonos.com>
Mon, 24 May 2010 07:59:05 +0000 (10:59 +0300)
mouse press event

Reviewed by:

debian/changelog
src/ui/zoombuttonpanel.cpp
src/ui/zoombuttonpanel.h

index eafb800..28b50eb 100644 (file)
@@ -1,3 +1,8 @@
+situare (0.4-2) unstable; urgency=low
+  * Mid-sprint test build
+
+ -- Kaj Wallin <kaj.wallin@ixonos.com>  Wed, 24 May 2010 10:08:00 +0300
+
 situare (0.4-1) unstable; urgency=low
   * Initial pre-alpha release
     Basic functionality is completely usable. Usability might not be top notch and many feature will be added or changed
index ddc7c97..1621712 100644 (file)
@@ -53,26 +53,30 @@ ZoomButtonPanel::ZoomButtonPanel(QWidget *parent, int x, int y)
     setPalette(pal);
 }
 
-// BUG: long mouse press before dragging causes panel to not be centered
-// on the cursor. Cause: Long press does not appear to be mousePressEvent o_O
+// BUG: Zoom buttons catch the mouse press event and it doesn't propagate to zoombuttonpanel
 void ZoomButtonPanel::mousePressEvent(QMouseEvent *event)
 {
     qDebug() << __PRETTY_FUNCTION__;
-    if (event->button() == Qt::LeftButton) {
 
-        dragPosition = event->pos();
-        qWarning() << "EvPos:" << event->pos().x() << event->pos().y() << "DP:" << dragPosition.x() << dragPosition.y();
+    if (event->button() == Qt::LeftButton) {
+        m_dragPosition = event->pos();
+        qWarning() << "Press:" << event->pos().x() << event->pos().y()
+                   << "DP:" << m_dragPosition.x() << m_dragPosition.y();
         event->accept();
+        m_inButtonMode = m_zoomInButton->mode();
+        m_outButtonMode = m_zoomOutButton->mode();
+        m_zoomInButton->setMode(QIcon::Disabled);
+        m_zoomOutButton->setMode(QIcon::Disabled);
     }
 }
 
 void ZoomButtonPanel::mouseMoveEvent(QMouseEvent *event)
 {
     qDebug() << __PRETTY_FUNCTION__;
+
     if (event->buttons() & Qt::LeftButton) {
-        move(mapToParent(event->pos()) - dragPosition);
-//        move(event->pos() - dragPosition);
-        qWarning() << "EvPos2:" << event->pos().x() << event->pos().y();
+        move(mapToParent(event->pos()) - m_dragPosition);
+        qWarning() << "Move:" << event->pos().x() << event->pos().y();
         setAutoFillBackground(true);
         event->accept();
     }
@@ -81,8 +85,11 @@ void ZoomButtonPanel::mouseMoveEvent(QMouseEvent *event)
 void ZoomButtonPanel::mouseReleaseEvent(QMouseEvent *event)
 {
     qDebug() << __PRETTY_FUNCTION__;
+
     setAutoFillBackground(false);
     event->accept();
+    m_zoomInButton->setMode(m_inButtonMode);
+    m_zoomOutButton->setMode(m_outButtonMode);
 }
 
 void ZoomButtonPanel::disableZoomInButton()
index 56a2951..828cba4 100644 (file)
@@ -72,8 +72,6 @@ protected:
     void mousePressEvent(QMouseEvent *event);
     void mouseReleaseEvent(QMouseEvent *event);
 
-private:
-    QPoint dragPosition;
 
 /*******************************************************************************
  * DATA MEMBERS
@@ -84,6 +82,9 @@ public:
 
 private:
     QGridLayout m_panelLayout;  ///< Panel layout
+    QPoint m_dragPosition;
+    QIcon::Mode m_inButtonMode;
+    QIcon::Mode m_outButtonMode;
     int m_x;                    ///< Panel x coordinate
     int m_y;                    ///< Panel y coordinate
 };