Merge remote-tracking branch 'origin/4.0'

Conflicts:
	src/plugins/valgrind/valgrindruncontrolfactory.cpp

Change-Id: I96c0f8cc3b49f8f55f45ef1f839857f878f532f4
This commit is contained in:
Eike Ziller
2016-05-18 12:12:46 +02:00
12 changed files with 3466 additions and 613 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -28,6 +28,7 @@
#include "clangstaticanalyzerutils.h" #include "clangstaticanalyzerutils.h"
#include <QDir>
#include <QThread> #include <QThread>
namespace ClangStaticAnalyzer { namespace ClangStaticAnalyzer {
@@ -63,7 +64,8 @@ ClangStaticAnalyzerConfigWidget::ClangStaticAnalyzerConfigWidget(
chooser->setValidationFunction(validator); chooser->setValidationFunction(validator);
bool clangExeIsSet; bool clangExeIsSet;
const QString clangExe = settings->clangExecutable(&clangExeIsSet); const QString clangExe = settings->clangExecutable(&clangExeIsSet);
chooser->lineEdit()->setPlaceholderText(settings->defaultClangExecutable()); chooser->lineEdit()->setPlaceholderText(QDir::toNativeSeparators(
settings->defaultClangExecutable()));
if (clangExeIsSet) { if (clangExeIsSet) {
chooser->setPath(clangExe); chooser->setPath(clangExe);
} else { } else {

View File

@@ -585,7 +585,7 @@ void ClangStaticAnalyzerRunControl::handleFinished()
void ClangStaticAnalyzerRunControl::onProgressCanceled() void ClangStaticAnalyzerRunControl::onProgressCanceled()
{ {
m_progress.reportCanceled(); m_progress.reportCanceled();
m_progress.reportFinished(); stop();
} }
void ClangStaticAnalyzerRunControl::updateProgressValue() void ClangStaticAnalyzerRunControl::updateProgressValue()

View File

@@ -2051,6 +2051,15 @@ void DebuggerEngine::updateItem(const QByteArray &iname)
doUpdateLocals(params); doUpdateLocals(params);
} }
void DebuggerEngine::updateWatchData(const QByteArray &iname)
{
// This is used in cases where re-evaluation is ok for the same iname
// e.g. when changing the expression in a watcher.
UpdateParameters params;
params.partialVariable = iname;
doUpdateLocals(params);
}
void DebuggerEngine::expandItem(const QByteArray &iname) void DebuggerEngine::expandItem(const QByteArray &iname)
{ {
updateItem(iname); updateItem(iname);

View File

@@ -200,6 +200,7 @@ public:
virtual bool canHandleToolTip(const DebuggerToolTipContext &) const; virtual bool canHandleToolTip(const DebuggerToolTipContext &) const;
virtual void expandItem(const QByteArray &iname); // Called when item in tree gets expanded. virtual void expandItem(const QByteArray &iname); // Called when item in tree gets expanded.
virtual void updateItem(const QByteArray &iname); // Called for fresh watch items. virtual void updateItem(const QByteArray &iname); // Called for fresh watch items.
void updateWatchData(const QByteArray &iname); // FIXME: Merge with above.
virtual void selectWatchData(const QByteArray &iname); virtual void selectWatchData(const QByteArray &iname);
virtual void startDebugger(DebuggerRunControl *runControl); virtual void startDebugger(DebuggerRunControl *runControl);

View File

@@ -163,6 +163,8 @@
#include <cpptools/cpptoolstestcase.h> #include <cpptools/cpptoolstestcase.h>
#include <cpptools/projectinfo.h> #include <cpptools/projectinfo.h>
#include <utils/executeondestruction.h>
#include <QTest> #include <QTest>
#include <QSignalSpy> #include <QSignalSpy>
#include <QTestEventLoop> #include <QTestEventLoop>
@@ -3704,6 +3706,9 @@ void DebuggerUnitTests::testStateMachine()
ProjectExplorerPlugin::buildProject(SessionManager::startupProject()); ProjectExplorerPlugin::buildProject(SessionManager::startupProject());
loop.exec(); loop.exec();
ExecuteOnDestruction guard([] () {
EditorManager::closeAllEditors(false);
});
DebuggerRunParameters rp; DebuggerRunParameters rp;
Target *t = SessionManager::startupProject()->activeTarget(); Target *t = SessionManager::startupProject()->activeTarget();
QVERIFY(t); QVERIFY(t);
@@ -3720,7 +3725,6 @@ void DebuggerUnitTests::testStateMachine()
}); });
QTestEventLoop::instance().enterLoop(5); QTestEventLoop::instance().enterLoop(5);
EditorManager::closeAllEditors(false);
} }

View File

@@ -1448,7 +1448,7 @@ void WatchHandler::watchExpression(const QString &exp0, const QString &name)
item->setValue(QString(QLatin1Char(' '))); item->setValue(QString(QLatin1Char(' ')));
item->update(); item->update();
} else { } else {
m_model->m_engine->updateItem(item->iname); m_model->m_engine->updateWatchData(item->iname);
} }
updateWatchersWindow(); updateWatchersWindow();
} }

View File

@@ -27,6 +27,7 @@
#include "qbsconstants.h" #include "qbsconstants.h"
#include <projectexplorer/abi.h> #include <projectexplorer/abi.h>
#include <projectexplorer/gcctoolchain.h>
#include <projectexplorer/kit.h> #include <projectexplorer/kit.h>
#include <projectexplorer/kitinformation.h> #include <projectexplorer/kitinformation.h>
#include <projectexplorer/toolchain.h> #include <projectexplorer/toolchain.h>
@@ -156,6 +157,19 @@ QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k,
return data; return data;
} }
struct MSVCVersion
{
int major = 0;
int minor = 0;
};
static MSVCVersion msvcCompilerVersion(const ProjectExplorer::Abi &abi)
{
MSVCVersion v;
v.major = abi.osFlavor() - ProjectExplorer::Abi::WindowsMsvc2005Flavor + 14;
return v;
}
QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplorer::Kit *k, QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplorer::Kit *k,
const QVariantMap &defaultData) const const QVariantMap &defaultData) const
{ {
@@ -228,16 +242,25 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor
const QString toolchainPrefix = extractToolchainPrefix(&compilerName); const QString toolchainPrefix = extractToolchainPrefix(&compilerName);
if (!toolchainPrefix.isEmpty()) if (!toolchainPrefix.isEmpty())
data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), toolchainPrefix); data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), toolchainPrefix);
if (toolchain.contains(QLatin1String("msvc"))) if (toolchain.contains(QLatin1String("msvc"))) {
data.insert(QLatin1String(CPP_COMPILERNAME), compilerName); data.insert(QLatin1String(CPP_COMPILERNAME), compilerName);
else const MSVCVersion v = msvcCompilerVersion(targetAbi);
data.insert(QLatin1String(CPP_COMPILERVERSIONMAJOR), v.major);
data.insert(QLatin1String(CPP_COMPILERVERSIONMINOR), v.minor);
} else {
data.insert(QLatin1String(CPP_CXXCOMPILERNAME), compilerName); data.insert(QLatin1String(CPP_CXXCOMPILERNAME), compilerName);
}
if (targetAbi.os() != ProjectExplorer::Abi::WindowsOS if (targetAbi.os() != ProjectExplorer::Abi::WindowsOS
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
data.insert(QLatin1String(CPP_LINKERNAME), compilerName); data.insert(QLatin1String(CPP_LINKERNAME), compilerName);
} }
data.insert(QLatin1String(CPP_TOOLCHAINPATH), cxxFileInfo.absolutePath()); data.insert(QLatin1String(CPP_TOOLCHAINPATH), cxxFileInfo.absolutePath());
if (ProjectExplorer::GccToolChain *gcc = dynamic_cast<ProjectExplorer::GccToolChain *>(tc)) {
data.insert(QLatin1String(CPP_PLATFORMCOMMONCOMPILERFLAGS), gcc->platformCodeGenFlags());
data.insert(QLatin1String(CPP_PLATFORMLINKERFLAGS), gcc->platformLinkerFlags());
}
// TODO: Remove this once compiler version properties are set for MSVC // TODO: Remove this once compiler version properties are set for MSVC
if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) { || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {

View File

@@ -455,6 +455,8 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
connect(m_step, SIGNAL(qbsBuildOptionsChanged()), this, SLOT(updateState())); connect(m_step, SIGNAL(qbsBuildOptionsChanged()), this, SLOT(updateState()));
connect(&QbsProjectManagerSettings::instance(), &QbsProjectManagerSettings::settingsBaseChanged, connect(&QbsProjectManagerSettings::instance(), &QbsProjectManagerSettings::settingsBaseChanged,
this, &QbsBuildStepConfigWidget::updateState); this, &QbsBuildStepConfigWidget::updateState);
connect(step->buildConfiguration()->target(), &ProjectExplorer::Target::buildDirectoryChanged,
this, &QbsBuildStepConfigWidget::updateState);
setContentsMargins(0, 0, 0, 0); setContentsMargins(0, 0, 0, 0);

View File

@@ -37,9 +37,14 @@ const char CPP_TOOLCHAINPATH[] = "cpp.toolchainInstallPath";
const char CPP_TOOLCHAINPREFIX[] = "cpp.toolchainPrefix"; const char CPP_TOOLCHAINPREFIX[] = "cpp.toolchainPrefix";
const char CPP_COMPILERNAME[] = "cpp.compilerName"; const char CPP_COMPILERNAME[] = "cpp.compilerName";
const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName"; const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName";
const char CPP_COMPILERVERSIONMAJOR[] = "cpp.compilerVersionMajor";
const char CPP_COMPILERVERSIONMINOR[] = "cpp.compilerVersionMinor";
const char CPP_COMPILERVERSIONPATCH[] = "cpp.compilerVersionPatch";
const char CPP_LINKERNAME[] = "cpp.linkerName"; const char CPP_LINKERNAME[] = "cpp.linkerName";
const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags"; const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags";
const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags"; const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags";
const char CPP_PLATFORMCOMMONCOMPILERFLAGS[] = "cpp.platformCommonCompilerFlags";
const char CPP_PLATFORMLINKERFLAGS[] = "cpp.platformLinkerFlags";
const char CPP_PLATFORMPATH[] = "cpp.platformPath"; const char CPP_PLATFORMPATH[] = "cpp.platformPath";
const char CPP_XCODESDKNAME[] = "cpp.xcodeSdkName"; const char CPP_XCODESDKNAME[] = "cpp.xcodeSdkName";
const char CPP_XCODESDKVERSION[] = "cpp.xcodeSdkVersion"; const char CPP_XCODESDKVERSION[] = "cpp.xcodeSdkVersion";

View File

@@ -659,6 +659,7 @@ void TextDocumentLayout::FoldValidator::process(QTextBlock block)
&& !TextDocumentLayout::canFold(previous)) && !TextDocumentLayout::canFold(previous))
|| (!TextDocumentLayout::isFolded(previous) || (!TextDocumentLayout::isFolded(previous)
&& TextDocumentLayout::canFold(previous) && TextDocumentLayout::canFold(previous)
&& previous.isVisible()
&& !block.isVisible())) { && !block.isVisible())) {
TextDocumentLayout::setFolded(previous, !TextDocumentLayout::isFolded(previous)); TextDocumentLayout::setFolded(previous, !TextDocumentLayout::isFolded(previous));
} }

View File

@@ -50,12 +50,15 @@ def getQtCreatorVersionFromFile():
return "" return ""
def checkQtCreatorHelpVersion(expectedVersion): def checkQtCreatorHelpVersion(expectedVersion):
def rightStart(x):
return x.startswith('Qt Creator Manual')
switchViewTo(ViewConstants.HELP) switchViewTo(ViewConstants.HELP)
try: try:
helpContentWidget = waitForObject(':Qt Creator_QHelpContentWidget', 5000) helpContentWidget = waitForObject(':Qt Creator_QHelpContentWidget', 5000)
waitFor("helpContentWidget.model().rowCount > 0", 2000) waitFor("any(map(rightStart, dumpItems(helpContentWidget.model())))", 10000)
items = dumpItems(helpContentWidget.model()) items = dumpItems(helpContentWidget.model())
test.compare(filter(lambda x: x.startswith('Qt Creator Manual'), items)[0], test.compare(filter(rightStart, items)[0],
'Qt Creator Manual %s' % expectedVersion, 'Qt Creator Manual %s' % expectedVersion,
'Verifying whether manual uses expected version.') 'Verifying whether manual uses expected version.')
except: except: