From ee4f5f7a2e3ca9d7a120357c4be46f52ca5495b5 Mon Sep 17 00:00:00 2001 From: Kaj Wallin Date: Fri, 21 May 2010 15:58:08 +0300 Subject: [PATCH] Merged with latest master Reviewed by: --- .gitignore | 1 + src/ui/zoombuttonpanel.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/ui/zoombuttonpanel.h | 8 ++++++++ 3 files changed, 45 insertions(+) diff --git a/.gitignore b/.gitignore index 1874bce..8294240 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ mainwindow_test qrc_images.cpp build-stamp debian/situare.substvars +debian/files diff --git a/src/ui/zoombuttonpanel.cpp b/src/ui/zoombuttonpanel.cpp index 94d04c0..ddc7c97 100644 --- a/src/ui/zoombuttonpanel.cpp +++ b/src/ui/zoombuttonpanel.cpp @@ -47,6 +47,42 @@ ZoomButtonPanel::ZoomButtonPanel(QWidget *parent, int x, int y) m_panelLayout.addWidget(m_zoomOutButton, 1, 0); move(m_x, m_y); + + QPalette pal = palette(); + pal.setColor(QPalette::Background, QColor(0, 0, 0, 128)); + 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 +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(); + event->accept(); + } +} + +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(); + setAutoFillBackground(true); + event->accept(); + } +} + +void ZoomButtonPanel::mouseReleaseEvent(QMouseEvent *event) +{ + qDebug() << __PRETTY_FUNCTION__; + setAutoFillBackground(false); + event->accept(); } void ZoomButtonPanel::disableZoomInButton() diff --git a/src/ui/zoombuttonpanel.h b/src/ui/zoombuttonpanel.h index 0349676..56a2951 100644 --- a/src/ui/zoombuttonpanel.h +++ b/src/ui/zoombuttonpanel.h @@ -67,6 +67,14 @@ public slots: */ void resetButtons(); +protected: + void mouseMoveEvent(QMouseEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + +private: + QPoint dragPosition; + /******************************************************************************* * DATA MEMBERS ******************************************************************************/ -- 1.7.9.5