summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppelementevaluator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppelementevaluator.h')
-rw-r--r--src/plugins/cpptools/cppelementevaluator.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/plugins/cpptools/cppelementevaluator.h b/src/plugins/cpptools/cppelementevaluator.h
index 6ce518a2e1..08ded2c6cb 100644
--- a/src/plugins/cpptools/cppelementevaluator.h
+++ b/src/plugins/cpptools/cppelementevaluator.h
@@ -32,11 +32,12 @@
#include <cplusplus/CppDocument.h>
+#include <QFuture>
+#include <QIcon>
+#include <QSharedPointer>
#include <QString>
#include <QStringList>
-#include <QSharedPointer>
#include <QTextCursor>
-#include <QIcon>
namespace CPlusPlus {
class LookupItem;
@@ -57,6 +58,7 @@ public:
void setLookupDerivedClasses(const bool lookup);
void execute();
+ QFuture<QSharedPointer<CppElement>> asyncExecute();
bool identifiedCppElement() const;
const QSharedPointer<CppElement> &cppElement() const;
bool hasDiagnosis() const;
@@ -64,13 +66,18 @@ public:
private:
void clear();
+ using ExecFunction = QFuture<QSharedPointer<CppElement>>(CppElementEvaluator::*)
+ (const CPlusPlus::Snapshot &, const CPlusPlus::LookupItem &,
+ const CPlusPlus::LookupContext &);
+
+ QFuture<QSharedPointer<CppElement>> execute(ExecFunction execFuntion);
+ QFuture<QSharedPointer<CppElement>> syncExec(const CPlusPlus::Snapshot &,
+ const CPlusPlus::LookupItem &, const CPlusPlus::LookupContext &);
+ QFuture<QSharedPointer<CppElement>> asyncExec(const CPlusPlus::Snapshot &,
+ const CPlusPlus::LookupItem &, const CPlusPlus::LookupContext &);
void checkDiagnosticMessage(int pos);
bool matchIncludeFile(const CPlusPlus::Document::Ptr &document, int line);
bool matchMacroInUse(const CPlusPlus::Document::Ptr &document, int pos);
- void handleLookupItemMatch(const CPlusPlus::Snapshot &snapshot,
- const CPlusPlus::LookupItem &lookupItem,
- const CPlusPlus::LookupContext &lookupContext,
- const CPlusPlus::Scope *scope);
TextEditor::TextEditorWidget *m_editor;
CppTools::CppModelManager *m_modelManager;
@@ -123,8 +130,10 @@ public:
CppClass *toCppClass() final;
- void lookupBases(CPlusPlus::Symbol *declaration, const CPlusPlus::LookupContext &context);
- void lookupDerived(CPlusPlus::Symbol *declaration, const CPlusPlus::Snapshot &snapshot);
+ void lookupBases(QFutureInterfaceBase &futureInterface,
+ CPlusPlus::Symbol *declaration, const CPlusPlus::LookupContext &context);
+ void lookupDerived(QFutureInterfaceBase &futureInterface,
+ CPlusPlus::Symbol *declaration, const CPlusPlus::Snapshot &snapshot);
public:
QList<CppClass> bases;