#pragma once #include "lts_widgets_export.h" #include #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(QEnterEvent*); 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(); }; } // namespace LtsWidgets