summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/basehoverhandler.h
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2017-06-26 11:15:19 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2017-07-03 07:42:12 +0000
commit999e6bc6714600069eadd916d861f21e70faba95 (patch)
treeea2988b65584321ea30193e9ed64e876f1526ba3 /src/plugins/texteditor/basehoverhandler.h
parent6e51fd2a0c5e1bd4a8e8bd12b0b0c2dec4854d66 (diff)
downloadqt-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.h15
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;