/** * @RDE_HEADER@ * An Image Editor which shows an Image, and emits a signal when clicked (to edit/swap an Image) * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2016-09-19 */ #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); /** * @brief setPixmap sets the picture of this button. If no pixmap / picture is set, the picture-layer is button colored. * @param pixmap The picture to draw on the button. */ void setPixmap(const QPixmap &pixmap); /** * @brief getPixmap TODO * @return */ QPixmap pixmap() const { return m_pixmap; } /** * @brief setMenuEnabled changes the hover & click behaviour. If the menu is enabled, the profile button indicates a menu on hovering, and by clicking it, the signal 'signalClicked' is emitted (menu is enabled by default) * @param enabled true if menu is enabled, false if not */ 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: /** * @brief signalClicked is emitted when this widget has been clicked. */ void signalClicked(); void imageChanged(); }; }