diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2016-08-16 13:37:49 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2016-08-31 07:47:27 +0000 |
commit | 83ea1f4deb4f5752f4eb1e36664761a7cdc79a9e (patch) | |
tree | 4b95a5d93201e259063d03ab31258b561e8746fd /src/plugins/cpptools/cpptoolsreuse.cpp | |
parent | 6c00095181d8ef1dd1ff2d6090e8668376641e1b (diff) | |
download | qt-creator-83ea1f4deb4f5752f4eb1e36664761a7cdc79a9e.tar.gz |
CppTools: Add UI for file size limit of indexer
Task-number: QTCREATORBUG-16712
Change-Id: I92db8cbcac9669cbd5e4ee5f7ef6f613797c753a
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/cpptools/cpptoolsreuse.cpp')
-rw-r--r-- | src/plugins/cpptools/cpptoolsreuse.cpp | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/plugins/cpptools/cpptoolsreuse.cpp b/src/plugins/cpptools/cpptoolsreuse.cpp index f544c165f5..7a21b4c6da 100644 --- a/src/plugins/cpptools/cpptoolsreuse.cpp +++ b/src/plugins/cpptools/cpptoolsreuse.cpp @@ -25,11 +25,13 @@ #include "cpptoolsreuse.h" +#include "cppcodemodelsettings.h" #include "cpptoolsplugin.h" #include <coreplugin/documentmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/idocument.h> +#include <coreplugin/messagemanager.h> #include <texteditor/convenience.h> #include <cplusplus/Overview.h> @@ -255,29 +257,31 @@ QSharedPointer<CppCodeModelSettings> codeModelSettings() return CppTools::Internal::CppToolsPlugin::instance()->codeModelSettings(); } -int fileSizeLimit() +int indexerFileSizeLimitInMb() { - static const QByteArray fileSizeLimitAsByteArray = qgetenv("QTC_CPP_FILE_SIZE_LIMIT_MB"); - static int fileSizeLimitAsInt = -1; + const QSharedPointer<CppCodeModelSettings> settings = codeModelSettings(); + QTC_ASSERT(settings, return -1); - if (fileSizeLimitAsInt == -1) { - bool ok; - const int limit = fileSizeLimitAsByteArray.toInt(&ok); - fileSizeLimitAsInt = ok && limit >= 0 ? limit : 0; - } + if (settings->skipIndexingBigFiles()) + return settings->indexerFileSizeLimitInMb(); - return fileSizeLimitAsInt; + return -1; } -bool skipFileDueToSizeLimit(const QFileInfo &fileInfo, int limitInMB) +bool fileSizeExceedsLimit(const QFileInfo &fileInfo, int sizeLimitInMb) { - if (limitInMB == 0) // unlimited + if (sizeLimitInMb <= 0) return false; - const int fileSizeInMB = fileInfo.size() / (1000 * 1000); - if (fileSizeInMB > limitInMB) { - qWarning() << "Files to process limited by QTC_CPP_FILE_SIZE_LIMIT_MB, skipping" - << fileInfo.absoluteFilePath(); + const qint64 fileSizeInMB = fileInfo.size() / (1000 * 1000); + if (fileSizeInMB > sizeLimitInMb) { + const QString absoluteFilePath = fileInfo.absoluteFilePath(); + const QString msg = QCoreApplication::translate( + "CppIndexer", + "C++ Indexer: Skipping file \"%1\" because it is too big.") + .arg(absoluteFilePath); + Core::MessageManager::write(msg, Core::MessageManager::Silent); + qWarning().noquote() << msg; return true; } |