TextEditor: Let BaseHoverHandler handle help id callbacks

...to support asynchronous hover handlers like ClangHoverHandler.

Change-Id: I8dc7189db37ec3a923cf493b8957c59ec9be447c
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-01-18 11:58:22 +01:00
parent 0a4073ef90
commit 9fd9bd25ab
3 changed files with 27 additions and 9 deletions

View File

@@ -28,6 +28,8 @@
#include "texteditor_global.h"
#include "helpitem.h"
#include <coreplugin/icontext.h>
#include <functional>
QT_BEGIN_NAMESPACE
@@ -43,7 +45,9 @@ class TEXTEDITOR_EXPORT BaseHoverHandler
public:
virtual ~BaseHoverHandler();
QString contextHelpId(TextEditorWidget *widget, int pos);
void contextHelpId(TextEditorWidget *widget,
int pos,
const Core::IContext::HelpIdCallback &callback);
using ReportPriority = std::function<void(int priority)>;
void checkPriority(TextEditorWidget *widget, int pos, ReportPriority report);
@@ -67,6 +71,8 @@ protected:
void setLastHelpItemIdentified(const HelpItem &help);
const HelpItem &lastHelpItemIdentified() const;
void propagateHelpId(TextEditorWidget *widget, const Core::IContext::HelpIdCallback &callback);
// identifyMatch() is required to report a priority by using the "report" callback.
// It is recommended to use e.g.
// Utils::ExecuteOnDestruction reportPriority([this, report](){ report(priority()); });