diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-06-26 11:15:19 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-07-03 07:42:12 +0000 |
commit | 999e6bc6714600069eadd916d861f21e70faba95 (patch) | |
tree | ea2988b65584321ea30193e9ed64e876f1526ba3 /src/plugins/texteditor/basehoverhandler.h | |
parent | 6e51fd2a0c5e1bd4a8e8bd12b0b0c2dec4854d66 (diff) | |
download | qt-creator-999e6bc6714600069eadd916d861f21e70faba95.tar.gz |
TextEditor: Allow asynchronous hover handlers
Change-Id: I956b126e2c779aa81f86e4432d127b45ac1912ff
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/basehoverhandler.h')
-rw-r--r-- | src/plugins/texteditor/basehoverhandler.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/plugins/texteditor/basehoverhandler.h b/src/plugins/texteditor/basehoverhandler.h index 44dfc61e92..cdd8735264 100644 --- a/src/plugins/texteditor/basehoverhandler.h +++ b/src/plugins/texteditor/basehoverhandler.h @@ -28,6 +28,8 @@ #include "texteditor_global.h" #include "helpitem.h" +#include <functional> + QT_BEGIN_NAMESPACE class QPoint; QT_END_NAMESPACE @@ -41,9 +43,15 @@ class TEXTEDITOR_EXPORT BaseHoverHandler public: virtual ~BaseHoverHandler(); + bool isAsyncHandler() const; + void setIsAsyncHandler(bool isAsyncHandler); + QString contextHelpId(TextEditorWidget *widget, int pos); - int checkToolTip(TextEditorWidget *widget, int pos); + using ReportPriority = std::function<void(int priority)>; + void checkPriority(TextEditorWidget *widget, int pos, ReportPriority report); + virtual void cancelAsyncCheck(); + void showToolTip(TextEditorWidget *widget, const QPoint &point, bool decorate = true); protected: @@ -63,11 +71,14 @@ protected: const HelpItem &lastHelpItemIdentified() const; virtual void identifyMatch(TextEditorWidget *editorWidget, int pos); + virtual void identifyMatchAsync(TextEditorWidget *editorWidget, int pos, ReportPriority report); virtual void decorateToolTip(); virtual void operateTooltip(TextEditorWidget *editorWidget, const QPoint &point); private: - void process(TextEditorWidget *widget, int pos); + void process(TextEditorWidget *widget, int pos, ReportPriority report); + + bool m_isAsyncHandler = false; QString m_toolTip; HelpItem m_lastHelpItemIdentified; |