Files
qt6-migration-pipeline/Lts/Common/LtsWidgets/lts_picture_view.h
T

61 lines
1.3 KiB
C++
Executable File

#pragma once
#include "lts_widgets_export.h"
#include <QGraphicsView>
class QRubberBand;
namespace LtsWidgets
{
class LTSWIDGETS_EXPORT LtsPictureView : public QGraphicsView
{
Q_OBJECT
public:
explicit LtsPictureView(QWidget *parent = nullptr);
~LtsPictureView();
void hideRubberband();
void newRubberBand();
void cutPicture();
QGraphicsPixmapItem *getImage();
protected:
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
private:
bool m_mouseActive;
bool m_moveable;
bool m_aspectRatioEnabled;
bool m_s_inEdit;
double m_aspectRatio;
QRect m_curRectangle;
QGraphicsScene *m_gsPicture;
QRubberBand *m_rubberband;
QGraphicsPixmapItem *m_image;
QGraphicsPixmapItem *m_origimage;
QPoint m_origin;
QPoint m_bandoffset;
public slots:
void setPicture(const QImage &image, const QPoint &pos, const bool flag);
void setAspectRatio(double aspectRatio);
void ratioClicked(bool enabled);
void leftChanged(int left);
void rightChanged(int right);
void topChanged(int top);
void bottomChanged(int bottom);
signals:
void mouseMoved(const QRect &);
void setLimits(const QSize &, bool);
};
}