#ifndef TOOLTIPVIEWMODEL_H #define TOOLTIPVIEWMODEL_H #include class QQuickItem; class TooltipViewModel : public QObject { Q_OBJECT Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged) Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged) Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged) Q_PROPERTY(QQuickItem* viewport READ viewport WRITE setViewport NOTIFY viewportChanged) public: TooltipViewModel(); int x() const { return m_x; } int y() const { return m_y; } bool visible() const { return m_visible; } QString text() const { return m_text; } QQuickItem* viewport() const { return m_viewport; } public slots: void setX(int x) { if (m_x == x) return; m_x = x; emit xChanged(x); } void setY(int y) { if (m_y == y) return; m_y = y; emit yChanged(y); } void setVisible(bool visible) { if (m_visible == visible) return; m_visible = visible; emit visibleChanged(visible); } void setText(const QString& text) { if (m_text == text) return; m_text = text; emit textChanged(text); } void setViewport(QQuickItem* viewport) { if (m_viewport == viewport) return; m_viewport = viewport; emit viewportChanged(viewport); } signals: void xChanged(int x); void yChanged(int y); void visibleChanged(bool visible); void textChanged(const QString& text); void viewportChanged(QQuickItem* viewport); private: int m_x; int m_y; bool m_visible; QString m_text; QQuickItem* m_viewport; }; #endif // TOOLTIPVIEWMODEL_H