#pragma once #include "lts_widgets_export.h" #include #include #include #include #include #include namespace LtsWidgets { class LTSWIDGETS_EXPORT LtsLinkEvent : public QEvent { public: explicit LtsLinkEvent(QUrl url, QWidget* sourceBaseLayoutWidget) : QEvent(eventTypeId()), m_url(std::move(url)), m_sourceBaseLayoutWidget(sourceBaseLayoutWidget) { } static QEvent::Type eventTypeId(); QWidget* sourceBaseLayoutWidget() const { return m_sourceBaseLayoutWidget.data(); } QUrl url() const { return m_url; } private: QUrl m_url; QPointer m_sourceBaseLayoutWidget; }; class LTSWIDGETS_EXPORT SaveImageEvent : public QEvent { public: SaveImageEvent(QWidget* w, QPixmap&& pm) : QEvent(saveImageEventId()), m_widget(w), m_pix(std::move(pm)) {} const QPixmap& pixmap() const { return m_pix; } QWidget* widget() const { return m_widget.data(); } static QEvent::Type saveImageEventId(); private: QPointer m_widget; QPixmap m_pix; }; class LTSWIDGETS_EXPORT AddMarkerEvent : public QEvent { public: AddMarkerEvent() : QEvent(addMarkerEventId()) {} static QEvent::Type addMarkerEventId(); }; class LTSWIDGETS_EXPORT SetMarkerEvent : public QEvent { public: SetMarkerEvent(const QString& description) : QEvent(setMarkerEventId()), m_description(description) {} const QString& getDescription() const { return m_description; } void setDescription(const QString& description) { m_description = description; } static QEvent::Type setMarkerEventId(); private: QString m_description; }; class LTSWIDGETS_EXPORT AddSnapshotEvent : public QEvent { public: AddSnapshotEvent() : QEvent(addSnapshotEventId()) {} static QEvent::Type addSnapshotEventId(); }; class LTSWIDGETS_EXPORT SaveSnapshotEvent : public QEvent { public: SaveSnapshotEvent(const QString& description) : QEvent(saveSnapshotEventId()), m_description(description) {} const QString& getDescription() const { return m_description; } void setDescription(const QString& description) { m_description = description; } static QEvent::Type saveSnapshotEventId(); private: QString m_description; }; } // namespace LtsWidgets