aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/textmark.h
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-09-24 10:14:57 +0200
committerhjk <hjk@qt.io>2020-09-24 13:06:55 +0000
commit94df9822f98c14fdecbf6509f9d6e0333e1673c2 (patch)
tree3caaafc91844fe8a5dc5eb82363f6eb632c9c9f5 /src/plugins/texteditor/textmark.h
parentcc502e36671e8d45d470b9aa38877e541c4f8613 (diff)
TextEditor: Add a mechanism to provide dynamic icons and tooltips
... to TextMarks more easily by allowing callbacks in addition to fixed values. Change-Id: Ica9e7d54dd1a53a59dc11812857402d0b7594d6c Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/textmark.h')
-rw-r--r--src/plugins/texteditor/textmark.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/plugins/texteditor/textmark.h b/src/plugins/texteditor/textmark.h
index 971d8f22a6..5dd24a4a13 100644
--- a/src/plugins/texteditor/textmark.h
+++ b/src/plugins/texteditor/textmark.h
@@ -97,8 +97,9 @@ public:
void addToToolTipLayout(QGridLayout *target) const;
virtual bool addToolTipContent(QLayout *target) const;
- void setIcon(const QIcon &icon) { m_icon = icon; }
- const QIcon &icon() const { return m_icon; }
+ void setIcon(const QIcon &icon);
+ void setIconProvider(const std::function<QIcon()> &iconProvider);
+ const QIcon icon() const;
// call this if the icon has changed.
void updateMarker();
Priority priority() const { return m_priority;}
@@ -121,8 +122,9 @@ public:
QString lineAnnotation() const { return m_lineAnnotation; }
void setLineAnnotation(const QString &lineAnnotation) { m_lineAnnotation = lineAnnotation; }
- QString toolTip() const { return m_toolTip; }
- void setToolTip(const QString &toolTip) { m_toolTip = toolTip; }
+ QString toolTip() const;
+ void setToolTip(const QString &toolTip);
+ void setToolTipProvider(const std::function<QString ()> &toolTipProvider);
QVector<QAction *> actions() const;
void setActions(const QVector<QAction *> &actions); // Takes ownership
@@ -135,12 +137,14 @@ private:
int m_lineNumber = 0;
Priority m_priority = LowPriority;
QIcon m_icon;
+ std::function<QIcon()> m_iconProvider;
Utils::optional<Utils::Theme::Color> m_color;
bool m_visible = false;
Utils::Id m_category;
double m_widthFactor = 1.0;
QString m_lineAnnotation;
QString m_toolTip;
+ std::function<QString()> m_toolTipProvider;
QString m_defaultToolTip;
QVector<QAction *> m_actions;
};