diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.cpp index d5a87c7c486353eb67859ab6f9c28f902c4ac7ea..07645ff281fd4fcacde6b6c9c968cdd5d81f5961 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.cpp @@ -52,6 +52,24 @@ QObject *QuickWindowNodeInstance::parent() const return 0; } +QImage QuickWindowNodeInstance::renderImage() const +{ + /* + Since the content item transucient + we just fill an image with the window color + */ + + QRectF renderBoundingRect = boundingRect(); + + QImage renderImage(renderBoundingRect.size().toSize(), QImage::Format_ARGB32_Premultiplied); + + QPalette palette; + + renderImage.fill(palette.color(QPalette::Window).rgba()); + + return renderImage; +} + QuickWindowNodeInstance::Pointer QuickWindowNodeInstance::create(QObject *object) { QQuickWindow *quickWindow = qobject_cast<QQuickWindow*>(object); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.h index e9651f9e68fa588a4d42ed527b9c6562fc9d653f..c9c7773d3afc0c26d050d60de15a6bc91fc92ba0 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickwindownodeinstance.h @@ -62,7 +62,7 @@ public: bool isAnchoredBySibling() const Q_DECL_OVERRIDE; - + QImage renderImage() const Q_DECL_OVERRIDE; protected: QuickWindowNodeInstance(QQuickWindow*); diff --git a/share/qtcreator/templates/qml/qtquickcontrols/main.qml b/share/qtcreator/templates/qml/qtquickcontrols/main.qml index 23c924f3ec1ca7cf9ed6919060dff21bc18da2f9..f886b99fb9da01e3995bd1b9d3cbdbc4a07ec942 100644 --- a/share/qtcreator/templates/qml/qtquickcontrols/main.qml +++ b/share/qtcreator/templates/qml/qtquickcontrols/main.qml @@ -3,6 +3,7 @@ import QtQuick.Controls 1.0 import QtQuick.Window 2.0 ApplicationWindow { + title: qsTr("Hello World") width: 640 height: 480 diff --git a/src/libs/cplusplus/ResolveExpression.h b/src/libs/cplusplus/ResolveExpression.h index 95268e69536f2592bcad99805d74102fb3b7e913..157c51246e58f49a59b489a60d9755bf3d2cf559 100644 --- a/src/libs/cplusplus/ResolveExpression.h +++ b/src/libs/cplusplus/ResolveExpression.h @@ -123,7 +123,7 @@ protected: private: Scope *_scope; - LookupContext _context; + const LookupContext& _context; Bind bind; QList<LookupItem> _results; bool _reference; diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 63f6807ea645d869c0b397c0f951599d09c907f0..d3575c364e9118c8c7e1ed49669de3889233845a 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -2239,3 +2239,37 @@ void CppToolsPlugin::test_completion_instantiate_template_function() QVERIFY(completions.contains(QLatin1String("A"))); QVERIFY(completions.contains(QLatin1String("a"))); } + +void CppToolsPlugin::test_completion_crash_cloning_template_class_QTCREATORBUG9329() +{ + TestData data; + data.srcText = + "struct A {};\n" + "template <typename T>\n" + "struct Templ {};\n" + "struct B : A, Templ<A>\n" + "{\n" + " int f()\n" + " {\n" + " @\n" + " // padding so we get the scope right\n" + " }\n" + "};\n" + ; + setup(&data); + + Utils::ChangeSet change; + QString txt = QLatin1String("this->"); + change.insert(data.pos, txt); + QTextCursor cursor(data.doc); + change.apply(&cursor); + data.pos += txt.length(); + + QStringList completions = getCompletions(data); + + QCOMPARE(completions.size(), 4); + QVERIFY(completions.contains(QLatin1String("A"))); + QVERIFY(completions.contains(QLatin1String("B"))); + QVERIFY(completions.contains(QLatin1String("Templ"))); + QVERIFY(completions.contains(QLatin1String("f"))); +} diff --git a/src/plugins/cpptools/cpptoolsplugin.h b/src/plugins/cpptools/cpptoolsplugin.h index 5e4d14385068056abb2394a054737a66b72a2e79..10f033c0434b424b0f86bfb31e153c237daa9b4a 100644 --- a/src/plugins/cpptools/cpptoolsplugin.h +++ b/src/plugins/cpptools/cpptoolsplugin.h @@ -137,6 +137,7 @@ private slots: void test_completion_type_and_using_declaration_data(); void test_completion_instantiate_template_with_anonymous_class(); void test_completion_instantiate_template_function(); + void test_completion_crash_cloning_template_class_QTCREATORBUG9329(); void test_format_pointerdeclaration_in_simpledeclarations(); void test_format_pointerdeclaration_in_simpledeclarations_data(); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index a0dc481d1f1a0539b47018c7258cbc4425c43a0e..2b8e213d1ce823c1936e3013e37d9d0967e39ba5 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3749,7 +3749,7 @@ void GdbEngine::handleThreadInfo(const GdbResponse &response) selectThread(other); } updateViews(); // Adjust Threads combobox. - if (false && m_hasInferiorThreadList && debuggerCore()->boolSetting(ShowThreadNames)) { + if (m_hasInferiorThreadList && debuggerCore()->boolSetting(ShowThreadNames)) { postCommand("threadnames " + debuggerCore()->action(MaximalStackDepth)->value().toByteArray(), Discardable, CB(handleThreadNames)); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 53cfd46ae4dc782cfd5c636b16ae2ef79a6619aa..0f3da1fdf65803edd15e53d773961fe366deea6a 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -116,7 +116,7 @@ void QbsBuildStep::run(QFutureInterface<bool> &fi) QbsProject *pro = static_cast<QbsProject *>(project()); qbs::BuildOptions options(m_qbsBuildOptions); - options.changedFiles = m_changedFiles; + options.setChangedFiles(m_changedFiles); m_job = pro->build(options); @@ -179,18 +179,18 @@ void QbsBuildStep::setQbsConfiguration(const QVariantMap &config) bool QbsBuildStep::dryRun() const { - return m_qbsBuildOptions.dryRun; + return m_qbsBuildOptions.dryRun(); } bool QbsBuildStep::keepGoing() const { - return m_qbsBuildOptions.keepGoing; + return m_qbsBuildOptions.keepGoing(); } int QbsBuildStep::maxJobs() const { - if (m_qbsBuildOptions.maxJobCount > 0) - return m_qbsBuildOptions.maxJobCount; + if (m_qbsBuildOptions.maxJobCount() > 0) + return m_qbsBuildOptions.maxJobCount(); return qbs::BuildOptions::defaultMaxJobCount(); } @@ -200,9 +200,9 @@ bool QbsBuildStep::fromMap(const QVariantMap &map) return false; setQbsConfiguration(map.value(QLatin1String(QBS_CONFIG)).toMap()); - m_qbsBuildOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN)).toBool(); - m_qbsBuildOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING)).toBool(); - m_qbsBuildOptions.maxJobCount = map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt(); + m_qbsBuildOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN)).toBool()); + m_qbsBuildOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING)).toBool()); + m_qbsBuildOptions.setMaxJobCount(map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt()); return true; } @@ -210,9 +210,9 @@ QVariantMap QbsBuildStep::toMap() const { QVariantMap map = ProjectExplorer::BuildStep::toMap(); map.insert(QLatin1String(QBS_CONFIG), m_qbsConfiguration); - map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun); - map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing); - map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount); + map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun()); + map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing()); + map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount()); return map; } @@ -221,7 +221,7 @@ void QbsBuildStep::buildingDone(bool success) // Report errors: foreach (const qbs::ErrorData &data, m_job->error().entries()) createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), - data.codeLocation().fileName, data.codeLocation().line); + data.codeLocation().fileName(), data.codeLocation().line()); QTC_ASSERT(m_fi, return); m_fi->reportResult(success); @@ -251,7 +251,7 @@ void QbsBuildStep::handleWarningReport(const qbs::Error &error) { foreach (const qbs::ErrorData &data, error.entries()) { createTaskAndOutput(ProjectExplorer::Task::Warning, data.description(), - data.codeLocation().fileName, data.codeLocation().line); + data.codeLocation().fileName(), data.codeLocation().line()); } } @@ -263,21 +263,21 @@ void QbsBuildStep::handleCommandDescriptionReport(const QString &highlight, cons void QbsBuildStep::handleProcessResultReport(const qbs::ProcessResult &result) { - bool hasOutput = !result.stdOut.isEmpty() || !result.stdErr.isEmpty(); + bool hasOutput = !result.stdOut().isEmpty() || !result.stdErr().isEmpty(); - if (result.success && !hasOutput) + if (result.success() && !hasOutput) return; - m_parser->setWorkingDirectory(result.workingDirectory); + m_parser->setWorkingDirectory(result.workingDirectory()); - QString commandline = result.binary + QLatin1Char(' ') + result.arguments.join(QLatin1String(" ")); + QString commandline = result.executableFilePath() + QLatin1Char(' ') + result.arguments().join(QLatin1String(" ")); addOutput(commandline, NormalOutput); - foreach (const QString &line, result.stdErr) { + foreach (const QString &line, result.stdErr()) { m_parser->stdError(line); addOutput(line, ErrorOutput); } - foreach (const QString &line, result.stdOut) { + foreach (const QString &line, result.stdOut()) { m_parser->stdOutput(line); addOutput(line, NormalOutput); } @@ -312,25 +312,25 @@ QString QbsBuildStep::profile() const void QbsBuildStep::setDryRun(bool dr) { - if (m_qbsBuildOptions.dryRun == dr) + if (m_qbsBuildOptions.dryRun() == dr) return; - m_qbsBuildOptions.dryRun = dr; + m_qbsBuildOptions.setDryRun(dr); emit qbsBuildOptionsChanged(); } void QbsBuildStep::setKeepGoing(bool kg) { - if (m_qbsBuildOptions.keepGoing == kg) + if (m_qbsBuildOptions.keepGoing() == kg) return; - m_qbsBuildOptions.keepGoing = kg; + m_qbsBuildOptions.setKeepGoing(kg); emit qbsBuildOptionsChanged(); } void QbsBuildStep::setMaxJobs(int jobcount) { - if (m_qbsBuildOptions.maxJobCount == jobcount) + if (m_qbsBuildOptions.maxJobCount() == jobcount) return; - m_qbsBuildOptions.maxJobCount = jobcount; + m_qbsBuildOptions.setMaxJobCount(jobcount); emit qbsBuildOptionsChanged(); } diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp index 338bd265e8550ef399dafe7e23e6dab45e3a94bf..6911144cb17c3ac343ed2b43fc5f27ad3cc934e5 100644 --- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp +++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp @@ -134,12 +134,12 @@ void QbsCleanStep::cancel() bool QbsCleanStep::dryRun() const { - return m_qbsCleanOptions.dryRun; + return m_qbsCleanOptions.dryRun(); } bool QbsCleanStep::keepGoing() const { - return m_qbsCleanOptions.keepGoing; + return m_qbsCleanOptions.keepGoing(); } int QbsCleanStep::maxJobs() const @@ -149,7 +149,7 @@ int QbsCleanStep::maxJobs() const bool QbsCleanStep::cleanAll() const { - return m_qbsCleanOptions.cleanType == qbs::CleanOptions::CleanupAll; + return m_qbsCleanOptions.cleanType() == qbs::CleanOptions::CleanupAll; } bool QbsCleanStep::fromMap(const QVariantMap &map) @@ -157,10 +157,10 @@ bool QbsCleanStep::fromMap(const QVariantMap &map) if (!ProjectExplorer::BuildStep::fromMap(map)) return false; - m_qbsCleanOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN)).toBool(); - m_qbsCleanOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING)).toBool(); - m_qbsCleanOptions.cleanType = map.value(QLatin1String(QBS_CLEAN_ALL)).toBool() - ? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries; + m_qbsCleanOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN)).toBool()); + m_qbsCleanOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING)).toBool()); + m_qbsCleanOptions.setCleanType(map.value(QLatin1String(QBS_CLEAN_ALL)).toBool() + ? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries); return true; } @@ -168,10 +168,10 @@ bool QbsCleanStep::fromMap(const QVariantMap &map) QVariantMap QbsCleanStep::toMap() const { QVariantMap map = ProjectExplorer::BuildStep::toMap(); - map.insert(QLatin1String(QBS_DRY_RUN), m_qbsCleanOptions.dryRun); - map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsCleanOptions.keepGoing); + map.insert(QLatin1String(QBS_DRY_RUN), m_qbsCleanOptions.dryRun()); + map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsCleanOptions.keepGoing()); map.insert(QLatin1String(QBS_CLEAN_ALL), - m_qbsCleanOptions.cleanType == qbs::CleanOptions::CleanupAll); + m_qbsCleanOptions.cleanType() == qbs::CleanOptions::CleanupAll); return map; } @@ -181,7 +181,7 @@ void QbsCleanStep::cleaningDone(bool success) // Report errors: foreach (const qbs::ErrorData &data, m_job->error().entries()) { createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), - data.codeLocation().fileName, data.codeLocation().line); + data.codeLocation().fileName(), data.codeLocation().line()); } QTC_ASSERT(m_fi, return); @@ -217,17 +217,17 @@ void QbsCleanStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type, con void QbsCleanStep::setDryRun(bool dr) { - if (m_qbsCleanOptions.dryRun == dr) + if (m_qbsCleanOptions.dryRun() == dr) return; - m_qbsCleanOptions.dryRun = dr; + m_qbsCleanOptions.setDryRun(dr); emit changed(); } void QbsCleanStep::setKeepGoing(bool kg) { - if (m_qbsCleanOptions.keepGoing == kg) + if (m_qbsCleanOptions.keepGoing() == kg) return; - m_qbsCleanOptions.keepGoing = kg; + m_qbsCleanOptions.setKeepGoing(kg); emit changed(); } @@ -241,9 +241,9 @@ void QbsCleanStep::setCleanAll(bool ca) { qbs::CleanOptions::CleanType newType = ca ? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries; - if (m_qbsCleanOptions.cleanType == newType) + if (m_qbsCleanOptions.cleanType() == newType) return; - m_qbsCleanOptions.cleanType = newType; + m_qbsCleanOptions.setCleanType(newType); emit changed(); } diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp index c7cafcfca0c0a4af976b445b675c49942ead927d..bac939de882bcc12033c23d8ce7cde1a1c658d59 100644 --- a/src/plugins/qbsprojectmanager/qbsinstallstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsinstallstep.cpp @@ -126,8 +126,8 @@ void QbsInstallStep::cancel() QString QbsInstallStep::installRoot() const { - if (!m_qbsInstallOptions.installRoot.isEmpty()) - return m_qbsInstallOptions.installRoot; + if (!m_qbsInstallOptions.installRoot().isEmpty()) + return m_qbsInstallOptions.installRoot(); return qbs::InstallOptions::defaultInstallRoot(); } @@ -143,17 +143,17 @@ QString QbsInstallStep::absoluteInstallRoot() const bool QbsInstallStep::removeFirst() const { - return m_qbsInstallOptions.removeFirst; + return m_qbsInstallOptions.removeExistingInstallation(); } bool QbsInstallStep::dryRun() const { - return m_qbsInstallOptions.dryRun; + return m_qbsInstallOptions.dryRun(); } bool QbsInstallStep::keepGoing() const { - return m_qbsInstallOptions.keepGoing; + return m_qbsInstallOptions.keepGoing(); } bool QbsInstallStep::fromMap(const QVariantMap &map) @@ -162,9 +162,9 @@ bool QbsInstallStep::fromMap(const QVariantMap &map) return false; setInstallRoot(map.value(QLatin1String(QBS_INSTALL_ROOT)).toString()); - m_qbsInstallOptions.removeFirst = map.value(QLatin1String(QBS_REMOVE_FIRST), false).toBool(); - m_qbsInstallOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN), false).toBool(); - m_qbsInstallOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING), false).toBool(); + m_qbsInstallOptions.setRemoveExistingInstallation(map.value(QLatin1String(QBS_REMOVE_FIRST), false).toBool()); + m_qbsInstallOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN), false).toBool()); + m_qbsInstallOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING), false).toBool()); return true; } @@ -172,20 +172,25 @@ bool QbsInstallStep::fromMap(const QVariantMap &map) QVariantMap QbsInstallStep::toMap() const { QVariantMap map = ProjectExplorer::BuildStep::toMap(); - map.insert(QLatin1String(QBS_INSTALL_ROOT), m_qbsInstallOptions.installRoot); - map.insert(QLatin1String(QBS_REMOVE_FIRST), m_qbsInstallOptions.removeFirst); - map.insert(QLatin1String(QBS_DRY_RUN), m_qbsInstallOptions.dryRun); - map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsInstallOptions.keepGoing); + map.insert(QLatin1String(QBS_INSTALL_ROOT), m_qbsInstallOptions.installRoot()); + map.insert(QLatin1String(QBS_REMOVE_FIRST), m_qbsInstallOptions.removeExistingInstallation()); + map.insert(QLatin1String(QBS_DRY_RUN), m_qbsInstallOptions.dryRun()); + map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsInstallOptions.keepGoing()); return map; } +qbs::InstallOptions QbsInstallStep::installOptions() const +{ + return m_qbsInstallOptions; +} + void QbsInstallStep::installDone(bool success) { // Report errors: foreach (const qbs::ErrorData &data, m_job->error().entries()) { createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), - data.codeLocation().fileName, data.codeLocation().line); + data.codeLocation().fileName(), data.codeLocation().line()); } QTC_ASSERT(m_fi, return); @@ -222,33 +227,33 @@ void QbsInstallStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type, void QbsInstallStep::setInstallRoot(const QString &ir) { - if (m_qbsInstallOptions.installRoot == ir) + if (m_qbsInstallOptions.installRoot() == ir) return; - m_qbsInstallOptions.installRoot = ir; + m_qbsInstallOptions.installRoot() = ir; emit changed(); } void QbsInstallStep::setRemoveFirst(bool rf) { - if (m_qbsInstallOptions.removeFirst == rf) + if (m_qbsInstallOptions.removeExistingInstallation() == rf) return; - m_qbsInstallOptions.removeFirst = rf; + m_qbsInstallOptions.setRemoveExistingInstallation(rf); emit changed(); } void QbsInstallStep::setDryRun(bool dr) { - if (m_qbsInstallOptions.dryRun == dr) + if (m_qbsInstallOptions.dryRun() == dr) return; - m_qbsInstallOptions.dryRun = dr; + m_qbsInstallOptions.setDryRun(dr); emit changed(); } void QbsInstallStep::setKeepGoing(bool kg) { - if (m_qbsInstallOptions.keepGoing == kg) + if (m_qbsInstallOptions.keepGoing() == kg) return; - m_qbsInstallOptions.keepGoing = kg; + m_qbsInstallOptions.setKeepGoing(kg); emit changed(); } diff --git a/src/plugins/qbsprojectmanager/qbsinstallstep.h b/src/plugins/qbsprojectmanager/qbsinstallstep.h index f0122520f05f67c5fc97bc4e6634aedfe0fb5522..2857e3c8cc524551fa5ecd0b6b19f4d395df9bcd 100644 --- a/src/plugins/qbsprojectmanager/qbsinstallstep.h +++ b/src/plugins/qbsprojectmanager/qbsinstallstep.h @@ -63,6 +63,7 @@ public: bool fromMap(const QVariantMap &map); QVariantMap toMap() const; + qbs::InstallOptions installOptions() const; QString installRoot() const; QString absoluteInstallRoot() const; bool removeFirst() const; diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 677585ba2eb6054ab408d58b774f5560f5c9e11b..819ed968266ee28d3c2227d86921c03b099661c3 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -313,9 +313,9 @@ QbsGroupNode::QbsGroupNode(const qbs::GroupData *grp, const QString &productPath { setIcon(m_groupIcon); - QbsFileNode *idx = new QbsFileNode(grp->location().fileName, + QbsFileNode *idx = new QbsFileNode(grp->location().fileName(), ProjectExplorer::ProjectFileType, false, - grp->location().line); + grp->location().line()); addFileNodes(QList<ProjectExplorer::FileNode *>() << idx, this); updateQbsGroupData(grp, productPath); @@ -334,7 +334,7 @@ void QbsGroupNode::updateQbsGroupData(const qbs::GroupData *grp, const QString & m_productPath = productPath; m_qbsGroupData = grp; - setPath(grp->location().fileName); + setPath(grp->location().fileName()); setDisplayName(grp->name()); QbsFileNode *idx = 0; @@ -346,8 +346,8 @@ void QbsGroupNode::updateQbsGroupData(const qbs::GroupData *grp, const QString & // idx not found, which should never happen! Q_ASSERT(idx); - idx->setPath(grp->location().fileName); - idx->setLine(grp->location().line); + idx->setPath(grp->location().fileName()); + idx->setLine(grp->location().line()); setupFiles(this, grp->allFilePaths(), m_productPath); emitNodeUpdated(); @@ -433,7 +433,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, // -------------------------------------------------------------------- QbsProductNode::QbsProductNode(const qbs::ProductData *prd) : - QbsBaseProjectNode(prd->location().fileName), + QbsBaseProjectNode(prd->location().fileName()), m_qbsProductData(0) { setIcon(m_productIcon); @@ -451,24 +451,24 @@ void QbsProductNode::setQbsProductData(const qbs::ProductData *prd) return; setDisplayName(prd->name()); - setPath(prd->location().fileName); - const QString &productPath = QFileInfo(prd->location().fileName).absolutePath(); + setPath(prd->location().fileName()); + const QString &productPath = QFileInfo(prd->location().fileName()).absolutePath(); // Set Product file node used to jump to the product QList<ProjectExplorer::FileNode *> files = fileNodes(); QbsFileNode *idx = 0; if (files.isEmpty()) { - idx = new QbsFileNode(prd->location().fileName, + idx = new QbsFileNode(prd->location().fileName(), ProjectExplorer::ProjectFileType, false, - prd->location().line); + prd->location().line()); addFileNodes(QList<ProjectExplorer::FileNode *>() << idx, this); } else { // Find the QbsFileNode we added earlier: foreach (ProjectExplorer::FileNode *fn, files) { idx = qobject_cast<QbsFileNode *>(fn); if (idx) { - idx->setPath(prd->location().fileName); - idx->setLine(prd->location().line); + idx->setPath(prd->location().fileName()); + idx->setLine(prd->location().line()); break; } } @@ -505,8 +505,10 @@ QList<ProjectExplorer::RunConfiguration *> QbsProductNode::runConfigurationsFor( Q_UNUSED(node); QList<ProjectExplorer::RunConfiguration *> result; QbsProjectNode *pn = qobject_cast<QbsProjectNode *>(projectNode()); - if (!isEnabled() || !pn || pn->qbsProject()->targetExecutable(*m_qbsProductData).isEmpty()) + if (!isEnabled() || !pn || pn->qbsProject()->targetExecutable(*m_qbsProductData, + qbs::InstallOptions()).isEmpty()) { return result; + } foreach (ProjectExplorer::RunConfiguration *rc, pn->project()->activeTarget()->runConfigurations()) { QbsRunConfiguration *qbsRc = qobject_cast<QbsRunConfiguration *>(rc); diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index e44729a5062c94c0cca9b13f6ba96eedaf674c39..217467f338cc3b8b518df7b83b1be1680b04f316 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -163,11 +163,11 @@ QStringList QbsProject::files(ProjectExplorer::Project::FilesMode fileMode) cons foreach (const qbs::GroupData &grp, prd.groups()) { foreach (const QString &file, grp.allFilePaths()) result.insert(file); - result.insert(grp.location().fileName); + result.insert(grp.location().fileName()); } - result.insert(prd.location().fileName); + result.insert(prd.location().fileName()); } - result.insert(m_rootProjectNode->qbsProjectData()->location().fileName); + result.insert(m_rootProjectNode->qbsProjectData()->location().fileName()); } return result.toList(); } @@ -356,8 +356,8 @@ void QbsProject::generateErrors(const qbs::Error &e) foreach (const qbs::ErrorData &data, e.entries()) taskHub()->addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, data.description(), - Utils::FileName::fromString(data.codeLocation().fileName), - data.codeLocation().line, + Utils::FileName::fromString(data.codeLocation().fileName()), + data.codeLocation().line(), ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); } @@ -370,14 +370,14 @@ void QbsProject::parse(const QVariantMap &config, const QString &dir) QTC_ASSERT(!m_qbsSetupProjectJob, return); qbs::SetupProjectParameters params; - params.buildConfiguration = m_qbsBuildConfig; - params.buildRoot = m_qbsBuildRoot; - params.projectFilePath = m_fileName; - params.ignoreDifferentProjectFilePath = false; + params.setBuildConfiguration(m_qbsBuildConfig); + params.setBuildRoot(m_qbsBuildRoot); + params.setProjectFilePath(m_fileName); + params.setIgnoreDifferentProjectFilePath(false); qbs::Preferences *prefs = QbsManager::preferences(); const QString buildDir = qbsBuildDir(); - params.searchPaths = prefs->searchPaths(buildDir); - params.pluginPaths = prefs->pluginPaths(buildDir); + params.setSearchPaths(prefs->searchPaths(buildDir)); + params.setPluginPaths(prefs->pluginPaths(buildDir)); m_qbsSetupProjectJob = qbs::Project::setupProject(params, m_manager->settings(), m_manager->logSink(), 0); @@ -417,9 +417,9 @@ void QbsProject::updateDocuments(const qbs::ProjectData *prj) newFiles.insert(m_fileName); // make sure we always have the project file... if (prj) { - newFiles.insert(prj->location().fileName); + newFiles.insert(prj->location().fileName()); foreach (const qbs::ProductData &prd, prj->products()) - newFiles.insert(prd.location().fileName); + newFiles.insert(prd.location().fileName()); } QSet<QString> oldFiles; foreach (Core::IDocument *doc, m_qbsDocuments) diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp index cdeed8b434b150bb202a3ac14216f011f0286160..669229ba80964f9bbb2bec5dc9c578903935212b 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp @@ -202,7 +202,7 @@ QString QbsRunConfiguration::executable() const if (!product) return QString(); - return pro->qbsProject()->targetExecutable(*product, installRoot()); + return pro->qbsProject()->targetExecutable(*product, installOptions()); } ProjectExplorer::LocalApplicationRunConfiguration::RunMode QbsRunConfiguration::runMode() const @@ -306,6 +306,13 @@ QString QbsRunConfiguration::defaultDisplayName() return defaultName; } +qbs::InstallOptions QbsRunConfiguration::installOptions() const +{ + if (m_currentInstallStep) + return m_currentInstallStep->installOptions(); + return qbs::InstallOptions(); +} + QString QbsRunConfiguration::installRoot() const { if (m_currentInstallStep) @@ -558,7 +565,7 @@ QList<Core::Id> QbsRunConfigurationFactory::availableCreationIds(ProjectExplorer return result; foreach (const qbs::ProductData &product, project->qbsProjectData()->products()) { - if (!project->qbsProject()->targetExecutable(product, QString()).isEmpty()) + if (!project->qbsProject()->targetExecutable(product, qbs::InstallOptions()).isEmpty()) result << Core::Id::fromString(QString::fromLatin1(QBS_RC_PREFIX) + product.name()); } return result; diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h index 30cc33205adbba05b51e3451e88140b7a003bfb7..cb697bef96737299c69a497d0ca6de4501d9698d 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h @@ -43,6 +43,10 @@ class QRadioButton; class QComboBox; QT_END_NAMESPACE +namespace qbs { +class InstallOptions; +} + namespace Utils { class PathChooser; class DetailsWidget; @@ -112,6 +116,7 @@ private: void setCommandLineArguments(const QString &argumentsString); QString rawCommandLineArguments() const; QString defaultDisplayName(); + qbs::InstallOptions installOptions() const; QString installRoot() const; void ctor(); diff --git a/src/plugins/qbsprojectmanager/qbsstep.cpp b/src/plugins/qbsprojectmanager/qbsstep.cpp index 4fe25df5f966d72394b66ec19456e15aa7278925..cd736678ad3e62f7d31c77038d7e2394f23a78f8 100644 --- a/src/plugins/qbsprojectmanager/qbsstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsstep.cpp @@ -65,7 +65,7 @@ QbsStep::QbsStep(ProjectExplorer::BuildStepList *bsl, Core::Id id) : ProjectExplorer::BuildStep(bsl, id), m_job(0) { - m_qbsBuildOptions.maxJobCount = QbsManager::preferences()->jobs(); + m_qbsBuildOptions.setMaxJobCount(QbsManager::preferences()->jobs()); } QbsStep::QbsStep(ProjectExplorer::BuildStepList *bsl, const QbsStep *other) : @@ -137,17 +137,17 @@ void QbsStep::cancel() bool QbsStep::dryRun() const { - return m_qbsBuildOptions.dryRun; + return m_qbsBuildOptions.dryRun(); } bool QbsStep::keepGoing() const { - return m_qbsBuildOptions.keepGoing; + return m_qbsBuildOptions.keepGoing(); } int QbsStep::maxJobs() const { - return m_qbsBuildOptions.maxJobCount; + return m_qbsBuildOptions.maxJobCount(); } bool QbsStep::fromMap(const QVariantMap &map) @@ -155,12 +155,12 @@ bool QbsStep::fromMap(const QVariantMap &map) if (!ProjectExplorer::BuildStep::fromMap(map)) return false; - m_qbsBuildOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN)).toBool(); - m_qbsBuildOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING)).toBool(); - m_qbsBuildOptions.maxJobCount = map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt(); + m_qbsBuildOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN)).toBool()); + m_qbsBuildOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING)).toBool()); + m_qbsBuildOptions.setMaxJobCount(map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt()); - if (m_qbsBuildOptions.maxJobCount <= 0) - m_qbsBuildOptions.maxJobCount = QbsManager::preferences()->jobs(); + if (m_qbsBuildOptions.maxJobCount() <= 0) + m_qbsBuildOptions.setMaxJobCount(QbsManager::preferences()->jobs()); return true; } @@ -168,9 +168,9 @@ bool QbsStep::fromMap(const QVariantMap &map) QVariantMap QbsStep::toMap() const { QVariantMap map = ProjectExplorer::BuildStep::toMap(); - map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun); - map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing); - map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount); + map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun()); + map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing()); + map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount()); return map; } @@ -180,7 +180,7 @@ void QbsStep::jobDone(bool success) if (m_job) { foreach (const qbs::ErrorData &data, m_job->error().entries()) createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), - data.codeLocation().fileName, data.codeLocation().line); + data.codeLocation().fileName(), data.codeLocation().line()); m_job->deleteLater(); m_job = 0; } @@ -218,25 +218,25 @@ void QbsStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type, const QS void QbsStep::setDryRun(bool dr) { - if (m_qbsBuildOptions.dryRun == dr) + if (m_qbsBuildOptions.dryRun() == dr) return; - m_qbsBuildOptions.dryRun = dr; + m_qbsBuildOptions.setDryRun(dr); emit qbsBuildOptionsChanged(); } void QbsStep::setKeepGoing(bool kg) { - if (m_qbsBuildOptions.keepGoing == kg) + if (m_qbsBuildOptions.keepGoing() == kg) return; - m_qbsBuildOptions.keepGoing = kg; + m_qbsBuildOptions.setKeepGoing(kg); emit qbsBuildOptionsChanged(); } void QbsStep::setMaxJobs(int jobcount) { - if (m_qbsBuildOptions.maxJobCount == jobcount) + if (m_qbsBuildOptions.maxJobCount() == jobcount) return; - m_qbsBuildOptions.maxJobCount = jobcount; + m_qbsBuildOptions.setMaxJobCount(jobcount); emit qbsBuildOptionsChanged(); } diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 2e71543baa7364816937c43530a551077d1d86ab..3a6ba896345380b1e41d71cfef9ed934643b84e4 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -275,9 +275,9 @@ QList<PropertyInfo> getQmlTypes(const CppComponentValue *objectValue, const Cont const CppComponentValue * qmlObjectValue = value_cast<CppComponentValue>(prototype); if (qmlObjectValue) - propertyList.append(getQmlTypes(qmlObjectValue, context, false, rec + 1)); + propertyList.append(getQmlTypes(qmlObjectValue, context, false, rec)); else - propertyList.append(getObjectTypes(prototype, context, false, rec + 1)); + propertyList.append(getObjectTypes(prototype, context, false, rec)); } return propertyList; @@ -349,9 +349,9 @@ QList<PropertyInfo> getObjectTypes(const ObjectValue *objectValue, const Context const CppComponentValue * qmlObjectValue = value_cast<CppComponentValue>(prototype); if (qmlObjectValue) - propertyList.append(getQmlTypes(qmlObjectValue, context, local, rec + 1)); + propertyList.append(getQmlTypes(qmlObjectValue, context, local, rec)); else - propertyList.append(getObjectTypes(prototype, context, local, rec + 1)); + propertyList.append(getObjectTypes(prototype, context, local, rec)); } return propertyList; diff --git a/src/shared/qbs b/src/shared/qbs index 40c966d00bb2d33b7fc66fe1a68df2fc541efd1e..32ae53690c01e5269ac2a9ad0dadf549ce04ee3f 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 40c966d00bb2d33b7fc66fe1a68df2fc541efd1e +Subproject commit 32ae53690c01e5269ac2a9ad0dadf549ce04ee3f