GUI: Indicate in project file dialog if clang-tidy is not found
This commit is contained in:
parent
bef6d6f446
commit
fb94b47f84
|
@ -25,6 +25,7 @@
|
||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
#include <QProcess>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "projectfiledialog.h"
|
#include "projectfiledialog.h"
|
||||||
#include "projectfile.h"
|
#include "projectfile.h"
|
||||||
|
@ -32,6 +33,30 @@
|
||||||
#include "cppcheck.h"
|
#include "cppcheck.h"
|
||||||
#include "errorlogger.h"
|
#include "errorlogger.h"
|
||||||
|
|
||||||
|
static QString clangTidyCmd() {
|
||||||
|
QString path = QSettings().value(SETTINGS_CLANG_PATH,QString()).toString();
|
||||||
|
if (!path.isEmpty())
|
||||||
|
path += '/';
|
||||||
|
path += "clang-tidy";
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
path += ".exe";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QProcess process;
|
||||||
|
process.start(path, QStringList() << "--version");
|
||||||
|
process.waitForFinished();
|
||||||
|
if (process.exitCode() == 0)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
// Try to autodetect clang-tidy
|
||||||
|
if (QFileInfo("C:/Program Files/LLVM/bin/clang-tidy.exe").exists())
|
||||||
|
return "C:/Program Files/LLVM/bin/clang-tidy.exe";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
ProjectFileDialog::ProjectFileDialog(ProjectFile *projectFile, QWidget *parent)
|
ProjectFileDialog::ProjectFileDialog(ProjectFile *projectFile, QWidget *parent)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
, mProjectFile(projectFile)
|
, mProjectFile(projectFile)
|
||||||
|
@ -151,6 +176,10 @@ void ProjectFileDialog::loadFromProjectFile(const ProjectFile *projectFile)
|
||||||
mUI.mAddonCert->setChecked(projectFile->getAddons().contains("cert"));
|
mUI.mAddonCert->setChecked(projectFile->getAddons().contains("cert"));
|
||||||
mUI.mToolClangAnalyzer->setChecked(projectFile->getClangAnalyzer());
|
mUI.mToolClangAnalyzer->setChecked(projectFile->getClangAnalyzer());
|
||||||
mUI.mToolClangTidy->setChecked(projectFile->getClangTidy());
|
mUI.mToolClangTidy->setChecked(projectFile->getClangTidy());
|
||||||
|
if (clangTidyCmd().isEmpty()) {
|
||||||
|
mUI.mToolClangTidy->setText(tr("Clang-tidy (not found)"));
|
||||||
|
mUI.mToolClangTidy->setEnabled(false);
|
||||||
|
}
|
||||||
QString tags;
|
QString tags;
|
||||||
foreach (const QString tag, projectFile->getTags()) {
|
foreach (const QString tag, projectFile->getTags()) {
|
||||||
if (tags.isEmpty())
|
if (tags.isEmpty())
|
||||||
|
|
Loading…
Reference in New Issue