forked from qt-creator/qt-creator
CppTools: Allow to force a "Parsing" notification
Task-number: QTCREATORBUG-9597 Change-Id: I726a818c7d4af35dcb4863f74b08cd639a189bdd Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -163,7 +163,8 @@ BuiltinIndexingSupport::BuiltinIndexingSupport()
|
|||||||
BuiltinIndexingSupport::~BuiltinIndexingSupport()
|
BuiltinIndexingSupport::~BuiltinIndexingSupport()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sourceFiles)
|
QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sourceFiles,
|
||||||
|
CppModelManagerInterface::ProgressNotificationMode mode)
|
||||||
{
|
{
|
||||||
CppModelManager *mgr = CppModelManager::instance();
|
CppModelManager *mgr = CppModelManager::instance();
|
||||||
const WorkingCopy workingCopy = mgr->workingCopy();
|
const WorkingCopy workingCopy = mgr->workingCopy();
|
||||||
@@ -189,7 +190,7 @@ QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sour
|
|||||||
|
|
||||||
m_synchronizer.addFuture(result);
|
m_synchronizer.addFuture(result);
|
||||||
|
|
||||||
if (sourceFiles.count() > 1) {
|
if (mode == CppModelManagerInterface::ForcedProgressNotification || sourceFiles.count() > 1) {
|
||||||
Core::ICore::progressManager()->addTask(result,
|
Core::ICore::progressManager()->addTask(result,
|
||||||
QCoreApplication::translate("CppTools::Internal::BuiltinIndexingSupport", "Parsing"),
|
QCoreApplication::translate("CppTools::Internal::BuiltinIndexingSupport", "Parsing"),
|
||||||
QLatin1String(CppTools::Constants::TASK_INDEX));
|
QLatin1String(CppTools::Constants::TASK_INDEX));
|
||||||
|
@@ -46,8 +46,10 @@ public:
|
|||||||
BuiltinIndexingSupport();
|
BuiltinIndexingSupport();
|
||||||
~BuiltinIndexingSupport();
|
~BuiltinIndexingSupport();
|
||||||
|
|
||||||
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles);
|
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles,
|
||||||
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters, QSet<QString> fileNames);
|
CppModelManagerInterface::ProgressNotificationMode mode);
|
||||||
|
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters,
|
||||||
|
QSet<QString> fileNames);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QFutureSynchronizer<void> m_synchronizer;
|
QFutureSynchronizer<void> m_synchronizer;
|
||||||
|
@@ -32,6 +32,8 @@
|
|||||||
|
|
||||||
#include "cpptools_global.h"
|
#include "cpptools_global.h"
|
||||||
|
|
||||||
|
#include "cppmodelmanagerinterface.h"
|
||||||
|
|
||||||
#include <find/searchresultwindow.h>
|
#include <find/searchresultwindow.h>
|
||||||
#include <find/textfindconstants.h>
|
#include <find/textfindconstants.h>
|
||||||
|
|
||||||
@@ -80,8 +82,10 @@ class CPPTOOLS_EXPORT CppIndexingSupport
|
|||||||
public:
|
public:
|
||||||
virtual ~CppIndexingSupport() = 0;
|
virtual ~CppIndexingSupport() = 0;
|
||||||
|
|
||||||
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles) = 0;
|
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles,
|
||||||
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters, QSet<QString> fileNames) = 0;
|
CppModelManagerInterface::ProgressNotificationMode mode) = 0;
|
||||||
|
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters,
|
||||||
|
QSet<QString> fileNames) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace CppTools
|
} // namespace CppTools
|
||||||
|
@@ -522,14 +522,15 @@ CppModelManager::WorkingCopy CppModelManager::workingCopy() const
|
|||||||
return const_cast<CppModelManager *>(this)->buildWorkingCopyList();
|
return const_cast<CppModelManager *>(this)->buildWorkingCopyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
QFuture<void> CppModelManager::updateSourceFiles(const QStringList &sourceFiles)
|
QFuture<void> CppModelManager::updateSourceFiles(const QStringList &sourceFiles,
|
||||||
|
ProgressNotificationMode mode)
|
||||||
{
|
{
|
||||||
if (sourceFiles.isEmpty() || !m_indexerEnabled)
|
if (sourceFiles.isEmpty() || !m_indexerEnabled)
|
||||||
return QFuture<void>();
|
return QFuture<void>();
|
||||||
|
|
||||||
if (m_indexingSupporter)
|
if (m_indexingSupporter)
|
||||||
m_indexingSupporter->refreshSourceFiles(sourceFiles);
|
m_indexingSupporter->refreshSourceFiles(sourceFiles, mode);
|
||||||
return m_internalIndexingSupport->refreshSourceFiles(sourceFiles);
|
return m_internalIndexingSupport->refreshSourceFiles(sourceFiles, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<CppModelManager::ProjectInfo> CppModelManager::projectInfos() const
|
QList<CppModelManager::ProjectInfo> CppModelManager::projectInfos() const
|
||||||
|
@@ -67,7 +67,8 @@ public:
|
|||||||
|
|
||||||
static CppModelManager *instance();
|
static CppModelManager *instance();
|
||||||
|
|
||||||
virtual QFuture<void> updateSourceFiles(const QStringList &sourceFiles);
|
virtual QFuture<void> updateSourceFiles(const QStringList &sourceFiles,
|
||||||
|
ProgressNotificationMode mode = ReservedProgressNotification);
|
||||||
virtual WorkingCopy workingCopy() const;
|
virtual WorkingCopy workingCopy() const;
|
||||||
|
|
||||||
virtual QList<ProjectInfo> projectInfos() const;
|
virtual QList<ProjectInfo> projectInfos() const;
|
||||||
|
@@ -35,6 +35,20 @@
|
|||||||
|
|
||||||
#include <QtCore/QSet>
|
#include <QtCore/QSet>
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\enum CppTools::CppModelManagerInterface::ProgressNotificationMode
|
||||||
|
|
||||||
|
This enum type specifies whether a progress bar notification should be
|
||||||
|
shown if more than one file is requested to update via
|
||||||
|
CppModelManagerInterface::updateSourceFiles().
|
||||||
|
|
||||||
|
\value ForcedProgressNotification
|
||||||
|
Notify regardless of the number of files requested for update.
|
||||||
|
|
||||||
|
\value ReservedProgressNotification
|
||||||
|
Notify only if more than one file is requested for update.
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\enum CppTools::CppModelManagerInterface::QtVersion
|
\enum CppTools::CppModelManagerInterface::QtVersion
|
||||||
Allows C++ parser engine to inject headers or change inner settings as
|
Allows C++ parser engine to inject headers or change inner settings as
|
||||||
|
@@ -117,6 +117,12 @@ class CPPTOOLS_EXPORT CppModelManagerInterface : public QObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
// Documented in source file.
|
||||||
|
enum ProgressNotificationMode {
|
||||||
|
ForcedProgressNotification,
|
||||||
|
ReservedProgressNotification
|
||||||
|
};
|
||||||
|
|
||||||
class CPPTOOLS_EXPORT ProjectInfo
|
class CPPTOOLS_EXPORT ProjectInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -251,8 +257,10 @@ Q_SIGNALS:
|
|||||||
void projectPartsUpdated(ProjectExplorer::Project *project);
|
void projectPartsUpdated(ProjectExplorer::Project *project);
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
|
|
||||||
virtual void updateModifiedSourceFiles() = 0;
|
virtual void updateModifiedSourceFiles() = 0;
|
||||||
virtual QFuture<void> updateSourceFiles(const QStringList &sourceFiles) = 0;
|
virtual QFuture<void> updateSourceFiles(const QStringList &sourceFiles,
|
||||||
|
ProgressNotificationMode mode = ReservedProgressNotification) = 0;
|
||||||
virtual void GC() = 0;
|
virtual void GC() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user