diff --git a/src/tools/pin/pintool.cpp b/src/tools/pin/pintool.cpp index de0cdaeb..481e6300 100755 --- a/src/tools/pin/pintool.cpp +++ b/src/tools/pin/pintool.cpp @@ -44,7 +44,11 @@ QString PinTool::description() const { QWidget* PinTool::widget() { PinWidget *w = new PinWidget(m_pixmap); - w->setGeometry(m_geometry); + QRect adjusted_pos = QRect (m_geometry.left() - LAYOUT_MARGIN, + m_geometry.top() - LAYOUT_MARGIN, + m_geometry.width() + 2 * LAYOUT_MARGIN, + m_geometry.height() + 2 * LAYOUT_MARGIN); + w->setGeometry(adjusted_pos); return w; } diff --git a/src/tools/pin/pinwidget.cpp b/src/tools/pin/pinwidget.cpp index d4b63145..dd84a17a 100644 --- a/src/tools/pin/pinwidget.cpp +++ b/src/tools/pin/pinwidget.cpp @@ -26,8 +26,19 @@ PinWidget::PinWidget(const QPixmap &pixmap, QWidget *parent) : QWidget(parent), m_pixmap(pixmap) { setWindowFlags(Qt::WindowStaysOnTopHint - | Qt::FramelessWindowHint); + | Qt::FramelessWindowHint + | Qt::Tool + | Qt::X11BypassWindowManagerHint); + //set the bottom widget background transparent + setAttribute(Qt::WA_TranslucentBackground); + + m_shadowEffect->setColor(Qt::lightGray); + m_shadowEffect->setBlurRadius(2 * LAYOUT_MARGIN); + m_shadowEffect->setOffset(0, 0); + setGraphicsEffect(m_shadowEffect); + m_layout = new QVBoxLayout(this); + m_layout->setContentsMargins(LAYOUT_MARGIN, LAYOUT_MARGIN, LAYOUT_MARGIN, LAYOUT_MARGIN); m_label = new QLabel(); m_label->setPixmap(m_pixmap); @@ -49,6 +60,13 @@ void PinWidget::wheelEvent(QWheelEvent *e) { e->accept(); } +void PinWidget::enterEvent(QEvent *) { + m_shadowEffect->setColor(QColor(3, 150, 255)); +} +void PinWidget::leaveEvent(QEvent *) { + m_shadowEffect->setColor(Qt::lightGray); +} + void PinWidget::mouseDoubleClickEvent(QMouseEvent *) { close(); } diff --git a/src/tools/pin/pinwidget.h b/src/tools/pin/pinwidget.h index 75b8c1a5..2851bbfb 100644 --- a/src/tools/pin/pinwidget.h +++ b/src/tools/pin/pinwidget.h @@ -18,6 +18,9 @@ #pragma once #include +#include + +#define LAYOUT_MARGIN 7 class QVBoxLayout; class QLabel; @@ -32,6 +35,8 @@ protected: void mouseDoubleClickEvent(QMouseEvent *); void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); + void enterEvent(QEvent *); + void leaveEvent(QEvent *); private: void setScaledPixmap(const QSize &size); @@ -41,4 +46,5 @@ private: QLabel *m_label; QPoint m_dragStart; qreal m_offsetX, m_offsetY; + QGraphicsDropShadowEffect *m_shadowEffect = new QGraphicsDropShadowEffect(this); };