pineapple-pictures/graphicsview.h

47 lines
1.3 KiB
C
Raw Normal View History

2019-09-28 01:18:08 +08:00
#ifndef GRAPHICSVIEW_H
#define GRAPHICSVIEW_H
#include <QGraphicsView>
#include <QUrl>
2019-09-28 01:18:08 +08:00
2019-09-29 15:52:35 +08:00
class GraphicsScene;
2019-09-28 01:18:08 +08:00
class GraphicsView : public QGraphicsView
{
public:
GraphicsView(QWidget *parent = nullptr);
void showFromUrlList(const QList<QUrl> &urlList);
2019-09-29 15:52:35 +08:00
void showImage(const QPixmap &pixmap);
void showText(const QString &text);
2019-09-29 23:53:29 +08:00
void showSvg(const QString &filepath);
2019-09-30 13:11:43 +08:00
void showGif(const QString &filepath);
2019-09-29 15:52:35 +08:00
GraphicsScene * scene() const;
void setScene(GraphicsScene *scene);
2019-09-30 23:02:44 +08:00
public slots:
void toggleCheckerboard();
2019-09-28 01:18:08 +08:00
private:
void mousePressEvent(QMouseEvent * event) override;
void mouseMoveEvent(QMouseEvent * event) override;
void mouseReleaseEvent(QMouseEvent * event) override;
void wheelEvent(QWheelEvent *event) override;
2019-09-29 21:22:20 +08:00
void resizeEvent(QResizeEvent *event) override;
2019-09-29 15:52:35 +08:00
void dragEnterEvent(QDragEnterEvent *event) override;
void dragMoveEvent(QDragMoveEvent *event) override;
void dropEvent(QDropEvent *event) override;
2019-09-29 21:22:20 +08:00
bool isThingSmallerThanWindowWith(const QTransform &transform) const;
bool shouldIgnoreMousePressMoveEvent(const QMouseEvent *event) const;
2019-09-30 23:02:44 +08:00
void checkAndDoFitInView();
void setCheckerboardEnabled(bool enabled);
2019-09-29 21:22:20 +08:00
bool m_enableFitInView = false;
2019-09-30 23:02:44 +08:00
bool m_checkerboardEnabled = false;
2019-09-28 01:18:08 +08:00
};
#endif // GRAPHICSVIEW_H