* Resizing pinned screenshot * Zooming in/out on pinned screenshot * Minor refactoring * clang-format
43 lines
1.0 KiB
C++
43 lines
1.0 KiB
C++
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
// SPDX-FileCopyrightText: 2017-2019 Alejandro Sirgo Rica & Contributors
|
|
|
|
#pragma once
|
|
|
|
#include <QGraphicsDropShadowEffect>
|
|
#include <QWidget>
|
|
|
|
class QVBoxLayout;
|
|
class QLabel;
|
|
|
|
class PinWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit PinWidget(const QPixmap& pixmap,
|
|
const QRect& geometry,
|
|
QWidget* parent = nullptr);
|
|
|
|
int margin() const;
|
|
|
|
protected:
|
|
void wheelEvent(QWheelEvent* e);
|
|
void mouseDoubleClickEvent(QMouseEvent*);
|
|
void mousePressEvent(QMouseEvent*);
|
|
void mouseMoveEvent(QMouseEvent*);
|
|
void enterEvent(QEvent*);
|
|
void leaveEvent(QEvent*);
|
|
|
|
private:
|
|
void setScaledPixmapToLabel(const QSize& newSize,
|
|
const qreal scale,
|
|
const bool expanding);
|
|
|
|
QPixmap m_pixmap;
|
|
QVBoxLayout* m_layout;
|
|
QLabel* m_label;
|
|
QPoint m_dragStart;
|
|
qreal m_offsetX, m_offsetY;
|
|
QGraphicsDropShadowEffect* m_shadowEffect;
|
|
QColor m_baseColor, m_hoverColor;
|
|
};
|