@@ -661,9 +661,11 @@ void MainWindow::doAnalyzeFiles(const QStringList &files, const bool checkLibrar
661661 return ;
662662 }
663663
664- mUI -> mResults -> checkingStarted (fileNames. count () );
664+ std::list<FileWithDetails> fdetails = enrichFilesForAnalysis (fileNames, checkSettings );
665665
666- mThread ->setFiles (fileNames);
666+ // TODO: lock UI here?
667+ mUI ->mResults ->checkingStarted (fdetails.size ());
668+ mThread ->setFiles (std::move (fdetails));
667669 if (mProjectFile && !checkConfiguration)
668670 mThread ->setAddonsAndTools (mProjectFile ->getAddonsAndTools ());
669671 mThread ->setSuppressions (mProjectFile ? mProjectFile ->getCheckingSuppressions () : QList<SuppressionList::Suppression>());
@@ -701,9 +703,9 @@ void MainWindow::analyzeCode(const QString& code, const QString& filename)
701703 if (!getCppcheckSettings (checkSettings, supprs))
702704 return ;
703705
706+ // TODO: split ErrorLogger from ThreadResult
704707 // Initialize dummy ThreadResult as ErrorLogger
705708 ThreadResult result;
706- result.setFiles (QStringList (filename));
707709 connect (&result, SIGNAL (progress (int ,QString)),
708710 mUI ->mResults , SLOT (progress (int ,QString)));
709711 connect (&result, SIGNAL (error (ErrorItem)),
@@ -720,7 +722,7 @@ void MainWindow::analyzeCode(const QString& code, const QString& filename)
720722 checkLockDownUI ();
721723 clearResults ();
722724 mUI ->mResults ->checkingStarted (1 );
723- // TODO: apply enforcedLanguage
725+ // TODO: apply enforcedLanguage?
724726 cppcheck.check (FileWithDetails (filename.toStdString (), Path::identify (filename.toStdString (), false ), 0 ), code.toStdString ());
725727 analysisDone ();
726728
@@ -1380,10 +1382,12 @@ void MainWindow::reAnalyzeSelected(const QStringList& files)
13801382 pathList.addPathList (files);
13811383 if (mProjectFile )
13821384 pathList.addExcludeList (mProjectFile ->getExcludedPaths ());
1383- QStringList fileNames = pathList.getFileList ();
1385+
1386+ std::list<FileWithDetails> fdetails = enrichFilesForAnalysis (pathList.getFileList (), checkSettings);
1387+
13841388 checkLockDownUI (); // lock UI while checking
1385- mUI ->mResults ->checkingStarted (fileNames .size ());
1386- mThread ->setCheckFiles (fileNames );
1389+ mUI ->mResults ->checkingStarted (fdetails .size ());
1390+ mThread ->setCheckFiles (std::move (fdetails) );
13871391
13881392 // Saving last check start time, otherwise unchecked modified files will not be
13891393 // considered in "Modified Files Check" performed after "Selected Files Check"
@@ -1396,7 +1400,7 @@ void MainWindow::reAnalyzeSelected(const QStringList& files)
13961400
13971401void MainWindow::reAnalyze (bool all)
13981402{
1399- const QStringList files = mThread ->getReCheckFiles (all);
1403+ const std::list<FileWithDetails> files = mThread ->getReCheckFiles (all);
14001404 if (files.empty ())
14011405 return ;
14021406
@@ -1409,8 +1413,8 @@ void MainWindow::reAnalyze(bool all)
14091413 mUI ->mResults ->clear (all);
14101414
14111415 // Clear results for changed files
1412- for (int i = 0 ; i < files. size (); ++i )
1413- mUI ->mResults ->clear (files[i] );
1416+ for (const auto & f : files)
1417+ mUI ->mResults ->clear (QString::fromStdString (f. path ()) );
14141418
14151419 checkLockDownUI (); // lock UI while checking
14161420 mUI ->mResults ->checkingStarted (files.size ());
@@ -2349,3 +2353,12 @@ void MainWindow::changeReportType() {
23492353 }
23502354}
23512355
2356+ std::list<FileWithDetails> MainWindow::enrichFilesForAnalysis (const QStringList& fileNames, const Settings& settings) const {
2357+ std::list<FileWithDetails> fdetails;
2358+ std::transform (fileNames.cbegin (), fileNames.cend (), std::back_inserter (fdetails), [](const QString& f) {
2359+ return FileWithDetails{f.toStdString (), Standards::Language::None, static_cast <std::size_t >(QFile (f).size ())};
2360+ });
2361+ const Standards::Language enforcedLang = static_cast <Standards::Language>(mSettings ->value (SETTINGS_ENFORCED_LANGUAGE, 0 ).toInt ());
2362+ frontend::applyLang (fdetails, settings, enforcedLang);
2363+ return fdetails;
2364+ }
0 commit comments