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()
|
||||
{}
|
||||
|
||||
QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sourceFiles)
|
||||
QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sourceFiles,
|
||||
CppModelManagerInterface::ProgressNotificationMode mode)
|
||||
{
|
||||
CppModelManager *mgr = CppModelManager::instance();
|
||||
const WorkingCopy workingCopy = mgr->workingCopy();
|
||||
@@ -189,7 +190,7 @@ QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sour
|
||||
|
||||
m_synchronizer.addFuture(result);
|
||||
|
||||
if (sourceFiles.count() > 1) {
|
||||
if (mode == CppModelManagerInterface::ForcedProgressNotification || sourceFiles.count() > 1) {
|
||||
Core::ICore::progressManager()->addTask(result,
|
||||
QCoreApplication::translate("CppTools::Internal::BuiltinIndexingSupport", "Parsing"),
|
||||
QLatin1String(CppTools::Constants::TASK_INDEX));
|
||||
|
@@ -46,8 +46,10 @@ public:
|
||||
BuiltinIndexingSupport();
|
||||
~BuiltinIndexingSupport();
|
||||
|
||||
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles);
|
||||
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters, QSet<QString> fileNames);
|
||||
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles,
|
||||
CppModelManagerInterface::ProgressNotificationMode mode);
|
||||
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters,
|
||||
QSet<QString> fileNames);
|
||||
|
||||
private:
|
||||
QFutureSynchronizer<void> m_synchronizer;
|
||||
|
@@ -32,6 +32,8 @@
|
||||
|
||||
#include "cpptools_global.h"
|
||||
|
||||
#include "cppmodelmanagerinterface.h"
|
||||
|
||||
#include <find/searchresultwindow.h>
|
||||
#include <find/textfindconstants.h>
|
||||
|
||||
@@ -80,8 +82,10 @@ class CPPTOOLS_EXPORT CppIndexingSupport
|
||||
public:
|
||||
virtual ~CppIndexingSupport() = 0;
|
||||
|
||||
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles) = 0;
|
||||
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters, QSet<QString> fileNames) = 0;
|
||||
virtual QFuture<void> refreshSourceFiles(const QStringList &sourceFiles,
|
||||
CppModelManagerInterface::ProgressNotificationMode mode) = 0;
|
||||
virtual SymbolSearcher *createSymbolSearcher(SymbolSearcher::Parameters parameters,
|
||||
QSet<QString> fileNames) = 0;
|
||||
};
|
||||
|
||||
} // namespace CppTools
|
||||
|
@@ -522,14 +522,15 @@ CppModelManager::WorkingCopy CppModelManager::workingCopy() const
|
||||
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)
|
||||
return QFuture<void>();
|
||||
|
||||
if (m_indexingSupporter)
|
||||
m_indexingSupporter->refreshSourceFiles(sourceFiles);
|
||||
return m_internalIndexingSupport->refreshSourceFiles(sourceFiles);
|
||||
m_indexingSupporter->refreshSourceFiles(sourceFiles, mode);
|
||||
return m_internalIndexingSupport->refreshSourceFiles(sourceFiles, mode);
|
||||
}
|
||||
|
||||
QList<CppModelManager::ProjectInfo> CppModelManager::projectInfos() const
|
||||
|
@@ -67,7 +67,8 @@ public:
|
||||
|
||||
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 QList<ProjectInfo> projectInfos() const;
|
||||
|
@@ -35,6 +35,20 @@
|
||||
|
||||
#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
|
||||
Allows C++ parser engine to inject headers or change inner settings as
|
||||
|
@@ -117,6 +117,12 @@ class CPPTOOLS_EXPORT CppModelManagerInterface : public QObject
|
||||
|
||||
public:
|
||||
|
||||
// Documented in source file.
|
||||
enum ProgressNotificationMode {
|
||||
ForcedProgressNotification,
|
||||
ReservedProgressNotification
|
||||
};
|
||||
|
||||
class CPPTOOLS_EXPORT ProjectInfo
|
||||
{
|
||||
public:
|
||||
@@ -251,8 +257,10 @@ Q_SIGNALS:
|
||||
void projectPartsUpdated(ProjectExplorer::Project *project);
|
||||
|
||||
public Q_SLOTS:
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user