aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2016-10-05 15:28:04 +0200
committerEike Ziller <eike.ziller@qt.io>2016-10-05 15:28:04 +0200
commit90cf4487a52cbff8389be85b8926afba24d75918 (patch)
treed2226523d433f6531ea9aa28c512a6ab454c1f13
parentf036877a0d04681e60cbc010995a8a68c14f89c0 (diff)
parent8902fbc62c80896c6fc9316b90b2f6d0cced7491 (diff)
Merge remote-tracking branch 'origin/4.1'
Conflicts: src/plugins/autotest/qtest/qttestoutputreader.cpp Change-Id: I4b323f2f3041d015fa04b9a25ec925f3b3e2411f
-rwxr-xr-xbin/qtcreator.sh13
-rw-r--r--src/libs/qmljs/qmljsplugindumper.cpp6
-rw-r--r--src/plugins/autotest/qtest/qttestoutputreader.cpp2
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp2
-rw-r--r--src/plugins/macros/macromanager.cpp2
-rw-r--r--src/plugins/projectexplorer/waitforstopdialog.cpp1
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp16
-rw-r--r--src/plugins/qmlprofiler/tests/flamegraphmodel_test.cpp38
-rw-r--r--tests/system/shared/editor_utils.py18
-rw-r--r--tests/system/suite_APTW/tst_APTW03/test.py10
10 files changed, 58 insertions, 50 deletions
diff --git a/bin/qtcreator.sh b/bin/qtcreator.sh
index 454224c26ee..80fc4499c96 100755
--- a/bin/qtcreator.sh
+++ b/bin/qtcreator.sh
@@ -19,15 +19,14 @@ makeAbsolute() {
me=`which "$0"` # Search $PATH if necessary
if test -L "$me"; then
- # Try readlink(1)
- readlink=`type readlink 2>/dev/null` || readlink=
- if test -n "$readlink"; then
- # We have readlink(1), so we can use it. Assuming GNU readlink (for -f).
- me=`readlink -nf "$me"`
+ # Try GNU readlink(1)
+ nme=`readlink -nf "$me" 2>/dev/null`
+ if test -n "$nme"; then
+ me=$nme
else
- # No readlink(1), so let's try ls -l
- me=`ls -l "$me" | sed 's/^.*-> //'`
+ # No GNU readlink(1), so let's try ls -l
base=`dirname "$me"`
+ me=`ls -l "$me" | sed 's/^.*-> //'`
me=`makeAbsolute "$me" "$base"`
fi
fi
diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp
index 1f3d6c68c6c..5e1cadb0959 100644
--- a/src/libs/qmljs/qmljsplugindumper.cpp
+++ b/src/libs/qmljs/qmljsplugindumper.cpp
@@ -516,8 +516,12 @@ void PluginDumper::loadQmltypesFile(const QStringList &qmltypesFilePaths,
void PluginDumper::runQmlDump(const QmlJS::ModelManagerInterface::ProjectInfo &info,
const QStringList &arguments, const QString &importPath)
{
+ QDir wd = QDir(importPath);
+ wd.cdUp();
QProcess *process = new QProcess(this);
process->setEnvironment(info.qmlDumpEnvironment.toStringList());
+ QString workingDir = wd.canonicalPath();
+ process->setWorkingDirectory(workingDir);
connect(process, static_cast<void (QProcess::*)(int)>(&QProcess::finished),
this, &PluginDumper::qmlPluginTypeDumpDone);
connect(process, &QProcess::errorOccurred, this, &PluginDumper::qmlPluginTypeDumpError);
@@ -567,7 +571,7 @@ void PluginDumper::dump(const Plugin &plugin)
args << QLatin1String("-nonrelocatable");
args << plugin.importUri;
args << plugin.importVersion;
- args << plugin.importPath;
+ args << (plugin.importPath.isEmpty() ? QLatin1String(".") : plugin.importPath);
runQmlDump(info, args, plugin.qmldirPath);
}
diff --git a/src/plugins/autotest/qtest/qttestoutputreader.cpp b/src/plugins/autotest/qtest/qttestoutputreader.cpp
index 9e5a08a1ac7..c0f468d073d 100644
--- a/src/plugins/autotest/qtest/qttestoutputreader.cpp
+++ b/src/plugins/autotest/qtest/qttestoutputreader.cpp
@@ -195,7 +195,7 @@ void QtTestOutputReader::processOutput(const QByteArray &outputLine)
m_lineNumber = attributes.value(QStringLiteral("line")).toInt();
} else if (currentTag == QStringLiteral("BenchmarkResult")) {
const QXmlStreamAttributes &attributes = m_xmlReader.attributes();
- const QString metric = attributes.value(QStringLiteral("metrics")).toString();
+ const QString metric = attributes.value(QStringLiteral("metric")).toString();
const double value = attributes.value(QStringLiteral("value")).toDouble();
const int iterations = attributes.value(QStringLiteral("iterations")).toInt();
m_description = constructBenchmarkInformation(metric, value, iterations);
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 0d4afff535b..2e4a0133686 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1782,7 +1782,7 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
m_modeWindow = createModeWindow(Constants::MODE_DEBUG, m_mainWindow);
m_mode->setWidget(m_modeWindow);
- m_plugin->addAutoReleasedObject(new DebugModeContext(m_mainWindow));
+ m_plugin->addAutoReleasedObject(new DebugModeContext(m_modeWindow));
m_plugin->addObject(m_mode);
diff --git a/src/plugins/macros/macromanager.cpp b/src/plugins/macros/macromanager.cpp
index fb758cc025c..cfda1684ffc 100644
--- a/src/plugins/macros/macromanager.cpp
+++ b/src/plugins/macros/macromanager.cpp
@@ -178,6 +178,8 @@ void MacroManager::MacroManagerPrivate::removeMacro(const QString &name)
// Remove macro from the map
Macro *macro = macros.take(name);
+ if (macro == currentMacro)
+ currentMacro = 0;
delete macro;
}
diff --git a/src/plugins/projectexplorer/waitforstopdialog.cpp b/src/plugins/projectexplorer/waitforstopdialog.cpp
index 1bd57372b44..e7006ecdbde 100644
--- a/src/plugins/projectexplorer/waitforstopdialog.cpp
+++ b/src/plugins/projectexplorer/waitforstopdialog.cpp
@@ -39,6 +39,7 @@ WaitForStopDialog::WaitForStopDialog(QList<ProjectExplorer::RunControl *> runCon
m_runControls(runControls)
{
setWindowTitle(tr("Waiting for Applications to Stop"));
+ setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
auto layout = new QVBoxLayout();
setLayout(layout);
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index 28fb062310d..445e4302f06 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -494,22 +494,6 @@ void QbsProject::handleQbsParsingDone(bool success)
m_qbsUpdateFutureInterface->reportCanceled();
}
- bool hasTargetArtifacts = false;
- if (dataChanged) {
- qCDebug(qbsPmLog) << "Project data changed.";
- foreach (const qbs::ProductData &product, m_projectData.allProducts()) {
- if (!product.targetArtifacts().isEmpty()) {
- hasTargetArtifacts = true;
- break;
- }
- }
- if (!hasTargetArtifacts) {
- qCDebug(qbsPmLog) << "No target artifacts present, executing rules";
- m_qbsProjectParser->startRuleExecution();
- return;
- }
- }
-
m_qbsProjectParser->deleteLater();
m_qbsProjectParser = 0;
m_qbsUpdateFutureInterface->reportFinished();
diff --git a/src/plugins/qmlprofiler/tests/flamegraphmodel_test.cpp b/src/plugins/qmlprofiler/tests/flamegraphmodel_test.cpp
index c8a6beaeaee..660bd3e4a85 100644
--- a/src/plugins/qmlprofiler/tests/flamegraphmodel_test.cpp
+++ b/src/plugins/qmlprofiler/tests/flamegraphmodel_test.cpp
@@ -111,8 +111,9 @@ void FlameGraphModelTest::testIndex()
void FlameGraphModelTest::testCounts()
{
- QCOMPARE(model.rowCount(), 1);
+ QCOMPARE(model.rowCount(), 2);
QCOMPARE(model.rowCount(model.index(0, 0)), 1);
+ QCOMPARE(model.rowCount(model.index(1, 0)), 1);
QCOMPARE(model.columnCount(), 1);
}
@@ -122,40 +123,65 @@ void FlameGraphModelTest::testData()
FlameGraphModel::tr("JavaScript"),
FlameGraphModel::tr("Signal"),
FlameGraphModel::tr("Binding"),
- FlameGraphModel::tr("Create"),
- FlameGraphModel::tr("Compile"),
+ FlameGraphModel::tr("Create")
});
QModelIndex index = model.index(0, 0);
+ QModelIndex index2 = model.index(1, 0);
QCOMPARE(model.data(index, FlameGraphModel::TypeIdRole).toInt(), 0);
+ QCOMPARE(model.data(index2, FlameGraphModel::TypeIdRole).toInt(), 4);
QCOMPARE(model.data(index, FlameGraphModel::TypeRole).toString(),
FlameGraphModel::tr("JavaScript"));
+ QCOMPARE(model.data(index2, FlameGraphModel::TypeRole).toString(),
+ FlameGraphModel::tr("Compile"));
QCOMPARE(model.data(index, FlameGraphModel::DurationRole).toLongLong(), 20);
+ QCOMPARE(model.data(index2, FlameGraphModel::DurationRole).toLongLong(), 12);
QCOMPARE(model.data(index, FlameGraphModel::CallCountRole).toInt(), 1);
+ QCOMPARE(model.data(index2, FlameGraphModel::CallCountRole).toInt(), 1);
QCOMPARE(model.data(index, FlameGraphModel::DetailsRole).toString(),
QLatin1String("funcfunc"));
+ QCOMPARE(model.data(index2, FlameGraphModel::DetailsRole).toString(),
+ QLatin1String("funcfunc"));
QCOMPARE(model.data(index, FlameGraphModel::FilenameRole).toString(),
QLatin1String("somefile.js"));
+ QCOMPARE(model.data(index2, FlameGraphModel::FilenameRole).toString(),
+ QLatin1String("somefile.js"));
QCOMPARE(model.data(index, FlameGraphModel::LineRole).toInt(), 0);
+ QCOMPARE(model.data(index2, FlameGraphModel::LineRole).toInt(), 4);
QCOMPARE(model.data(index, FlameGraphModel::ColumnRole).toInt(), 20);
+ QCOMPARE(model.data(index2, FlameGraphModel::ColumnRole).toInt(), 16);
QCOMPARE(model.data(index, FlameGraphModel::NoteRole).toString(), QString("dings"));
+ QCOMPARE(model.data(index2, FlameGraphModel::NoteRole).toString(), QString());
QCOMPARE(model.data(index, FlameGraphModel::TimePerCallRole).toLongLong(), 20);
- QCOMPARE(model.data(index, FlameGraphModel::TimeInPercentRole).toInt(), 100);
+ QCOMPARE(model.data(index2, FlameGraphModel::TimePerCallRole).toLongLong(), 12);
+ QCOMPARE(model.data(index, FlameGraphModel::TimeInPercentRole).toInt(), 62);
+ QCOMPARE(model.data(index2, FlameGraphModel::TimeInPercentRole).toInt(), 37);
QCOMPARE(model.data(index, FlameGraphModel::RangeTypeRole).toInt(),
static_cast<int>(Javascript));
+ QCOMPARE(model.data(index2, FlameGraphModel::RangeTypeRole).toInt(),
+ static_cast<int>(Compiling));
QCOMPARE(model.data(index, FlameGraphModel::LocationRole).toString(),
QLatin1String("somefile.js:0"));
+ QCOMPARE(model.data(index2, FlameGraphModel::LocationRole).toString(),
+ QLatin1String("somefile.js:4"));
QVERIFY(!model.data(index, -10).isValid());
+ QVERIFY(!model.data(index2, -10).isValid());
QVERIFY(!model.data(QModelIndex(), FlameGraphModel::LineRole).isValid());
- for (int i = 1; i < 10; ++i) {
+ for (int i = 1; i < 8; ++i) {
index = model.index(0, 0, index);
QCOMPARE(model.data(index, FlameGraphModel::TypeRole).toString(),
typeRoles[i % typeRoles.length()]);
QCOMPARE(model.data(index, FlameGraphModel::NoteRole).toString(),
(i % typeRoles.length() == 0) ? QString("dings") : QString());
}
- QCOMPARE(model.data(index, FlameGraphModel::CallCountRole).toInt(), 2);
+ QCOMPARE(model.data(index, FlameGraphModel::CallCountRole).toInt(), 1);
+
+ index2 = model.index(0, 0, index2);
+ QCOMPARE(model.data(index2, FlameGraphModel::TypeRole).toString(),
+ FlameGraphModel::tr("Compile"));
+ QCOMPARE(model.data(index2, FlameGraphModel::NoteRole).toString(), QString());
+ QCOMPARE(model.data(index2, FlameGraphModel::CallCountRole).toInt(), 2);
}
void FlameGraphModelTest::testRoleNames()
diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py
index 588ee3e6429..e3afb02afca 100644
--- a/tests/system/shared/editor_utils.py
+++ b/tests/system/shared/editor_utils.py
@@ -344,20 +344,10 @@ def validateSearchResult(expectedCount):
def invokeContextMenuItem(editorArea, command1, command2 = None):
ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
snooze(1)
- if platform.system() == 'Darwin':
- item1 = waitForObjectItem(ctxtMenu, command1)
- subMenu = item1.menu()
- activateItem(item1)
- # subMenu could have been triggered by hovering, but closed again by clicking
- if subMenu and not subMenu.visible:
- activateItem(item1)
- if command2:
- activateItem(subMenu, command2)
- else:
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), command1, 2000))
- if command2:
- activateItem(waitForObjectItem("{title='%s' type='QMenu' visible='1' window=%s}"
- % (command1, objectMap.realName(ctxtMenu)), command2, 2000))
+ activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), command1, 2000))
+ if command2:
+ activateItem(waitForObjectItem("{title='%s' type='QMenu' visible='1' window=%s}"
+ % (command1, objectMap.realName(ctxtMenu)), command2, 2000))
# this function invokes the "Find Usages" item from context menu
# param editor an editor object
diff --git a/tests/system/suite_APTW/tst_APTW03/test.py b/tests/system/suite_APTW/tst_APTW03/test.py
index 3ed4a06d111..36053d2709a 100644
--- a/tests/system/suite_APTW/tst_APTW03/test.py
+++ b/tests/system/suite_APTW/tst_APTW03/test.py
@@ -85,9 +85,9 @@ def main():
target=targets)
virtualFunctionsAdded = False
for kit, config in iterateBuildConfigs(len(checkedTargets), "Debug"):
+ is480Kit = "480" in Targets.getStringForTarget(checkedTargets[kit])
verifyBuildConfig(len(checkedTargets), kit, config, True, True)
- if (virtualFunctionsAdded and platform.system() in ('Microsoft', 'Windows')
- and "480" in Targets.getStringForTarget(checkedTargets[kit])):
+ if virtualFunctionsAdded and platform.system() in ('Microsoft', 'Windows') and is480Kit:
test.warning("Skipping building of Qt4.8 targets because of QTCREATORBUG-12251.")
continue
invokeMenuItem('Build', 'Build Project "%s"' % projectName)
@@ -125,12 +125,14 @@ def main():
addReturn(editor, "QObject \*%s::create.*" % className, "0")
virtualFunctionsAdded = True
invokeMenuItem('File', 'Save All')
- if (platform.system() in ('Microsoft', 'Windows') # QTCREATORBUG-12251
- and "480" in Targets.getStringForTarget(checkedTargets[kit])):
+ if platform.system() in ('Microsoft', 'Windows') and is480Kit: # QTCREATORBUG-12251
test.warning("Skipping building of Qt4.8 targets because of QTCREATORBUG-12251.")
continue
invokeMenuItem('Build', 'Rebuild Project "%s"' % projectName)
waitForCompile(10000)
+ if platform.system() == "Darwin" and is480Kit:
+ test.log("Skipping compile check (gcc on OSX is only clang with gcc frontend nowadays)")
+ continue
checkCompile()
invokeMenuItem("File", "Exit")