Handle zero files to process

The analyzer was stuck in the running mode (busy cursor, progress bar)
for zero files.

Change-Id: I9e520dc65b6d027b82e6e31043c0401ebb9f3673
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-07-09 15:28:09 +02:00
parent 19d470ac6a
commit d8d5bff071
2 changed files with 27 additions and 14 deletions

View File

@@ -349,6 +349,11 @@ bool ClangStaticAnalyzerRunControl::startEngine()
const int parallelRuns = ClangStaticAnalyzerSettings::instance()->simultaneousProcesses();
QTC_ASSERT(parallelRuns >= 1, emit finished(); return false);
m_success = true;
if (m_unitsToProcess.isEmpty()) {
finalize();
return false;
}
while (m_runners.size() < parallelRuns && !m_unitsToProcess.isEmpty())
analyzeNextFile();
return true;
@@ -376,20 +381,8 @@ void ClangStaticAnalyzerRunControl::analyzeNextFile()
return; // The previous call already reported that we are finished.
if (m_unitsToProcess.isEmpty()) {
if (m_runners.size() == 0) {
appendMessage(tr("Clang Static Analyzer finished: "
"Processed %1 files successfully, %2 failed.")
.arg(m_filesAnalyzed)
.arg(m_filesNotAnalyzed)
+ QLatin1Char('\n'),
Utils::NormalMessageFormat);
if (m_filesAnalyzed == 0 && m_filesNotAnalyzed != 0) {
AnalyzerUtils::logToIssuesPane(Task::Error,
tr("Clang Static Analyzer: Failed to analyze any files."));
}
m_progress.reportFinished();
emit finished();
}
if (m_runners.isEmpty())
finalize();
return;
}
@@ -480,5 +473,23 @@ void ClangStaticAnalyzerRunControl::updateProgressValue()
m_progress.setProgressValue(m_initialFilesToProcessSize - m_unitsToProcess.size());
}
void ClangStaticAnalyzerRunControl::finalize()
{
appendMessage(tr("Clang Static Analyzer finished: "
"Processed %1 files successfully, %2 failed.")
.arg(m_filesAnalyzed)
.arg(m_filesNotAnalyzed)
+ QLatin1Char('\n'),
Utils::NormalMessageFormat);
if (m_filesAnalyzed == 0 && m_filesNotAnalyzed != 0) {
AnalyzerUtils::logToIssuesPane(Task::Error,
tr("Clang Static Analyzer: Failed to analyze any files."));
}
m_progress.reportFinished();
emit finished();
}
} // namespace Internal
} // namespace ClangStaticAnalyzer

View File

@@ -69,6 +69,8 @@ private:
void onProgressCanceled();
void updateProgressValue();
void finalize();
private:
const CppTools::ProjectInfo m_projectInfo;
const unsigned char m_wordWidth;