#pragma once #include "lts_widgets_export.h" #include namespace LtsWidgets { class LTSWIDGETS_EXPORT LtsImageEditor : public QWidget { Q_OBJECT Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap) Q_PROPERTY(bool menuEnabled READ isMenuEnabled WRITE setMenuEnabled) public: explicit LtsImageEditor(QWidget *parent = nullptr); void setPixmap(const QPixmap &pixmap); QPixmap pixmap() const { return m_pixmap; } void setMenuEnabled(bool enabled = true) { m_menuEnabled = enabled; } bool isMenuEnabled() const { return m_menuEnabled; } void setDrawOuterRect(bool bDraw) { m_bDrawOuterRect = bDraw; } bool drawOuterRect() const { return m_bDrawOuterRect; } protected: void paintEvent(QPaintEvent *event); void enterEvent(QEvent *); void leaveEvent(QEvent *); bool event(QEvent *event); private: QPixmap m_pixmap; bool m_isHovered; bool m_menuEnabled; bool m_bDrawOuterRect; signals: void signalClicked(); void imageChanged(); }; }