Merge remote-tracking branch 'origin/2.7' into 2.8

Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h
	src/plugins/qbsprojectmanager/qbsbuildstep.cpp
	src/plugins/qbsprojectmanager/qbscleanstep.cpp
	src/plugins/qbsprojectmanager/qbsnodes.cpp
	src/shared/qbs

Change-Id: I8fc97ed61c47af2c3d9e5cc2bf81e97661204d4e
This commit is contained in:
Eike Ziller
2013-05-24 16:20:10 +02:00
18 changed files with 192 additions and 118 deletions

View File

@@ -52,6 +52,24 @@ QObject *QuickWindowNodeInstance::parent() const
return 0; 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) QuickWindowNodeInstance::Pointer QuickWindowNodeInstance::create(QObject *object)
{ {
QQuickWindow *quickWindow = qobject_cast<QQuickWindow*>(object); QQuickWindow *quickWindow = qobject_cast<QQuickWindow*>(object);

View File

@@ -62,7 +62,7 @@ public:
bool isAnchoredBySibling() const Q_DECL_OVERRIDE; bool isAnchoredBySibling() const Q_DECL_OVERRIDE;
QImage renderImage() const Q_DECL_OVERRIDE;
protected: protected:
QuickWindowNodeInstance(QQuickWindow*); QuickWindowNodeInstance(QQuickWindow*);

View File

@@ -3,6 +3,7 @@ import QtQuick.Controls 1.0
import QtQuick.Window 2.0 import QtQuick.Window 2.0
ApplicationWindow { ApplicationWindow {
title: qsTr("Hello World")
width: 640 width: 640
height: 480 height: 480

View File

@@ -123,7 +123,7 @@ protected:
private: private:
Scope *_scope; Scope *_scope;
LookupContext _context; const LookupContext& _context;
Bind bind; Bind bind;
QList<LookupItem> _results; QList<LookupItem> _results;
bool _reference; bool _reference;

View File

@@ -2239,3 +2239,37 @@ void CppToolsPlugin::test_completion_instantiate_template_function()
QVERIFY(completions.contains(QLatin1String("A"))); QVERIFY(completions.contains(QLatin1String("A")));
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")));
}

View File

@@ -137,6 +137,7 @@ private slots:
void test_completion_type_and_using_declaration_data(); void test_completion_type_and_using_declaration_data();
void test_completion_instantiate_template_with_anonymous_class(); void test_completion_instantiate_template_with_anonymous_class();
void test_completion_instantiate_template_function(); 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();
void test_format_pointerdeclaration_in_simpledeclarations_data(); void test_format_pointerdeclaration_in_simpledeclarations_data();

View File

@@ -3749,7 +3749,7 @@ void GdbEngine::handleThreadInfo(const GdbResponse &response)
selectThread(other); selectThread(other);
} }
updateViews(); // Adjust Threads combobox. updateViews(); // Adjust Threads combobox.
if (false && m_hasInferiorThreadList && debuggerCore()->boolSetting(ShowThreadNames)) { if (m_hasInferiorThreadList && debuggerCore()->boolSetting(ShowThreadNames)) {
postCommand("threadnames " + postCommand("threadnames " +
debuggerCore()->action(MaximalStackDepth)->value().toByteArray(), debuggerCore()->action(MaximalStackDepth)->value().toByteArray(),
Discardable, CB(handleThreadNames)); Discardable, CB(handleThreadNames));

View File

@@ -116,7 +116,7 @@ void QbsBuildStep::run(QFutureInterface<bool> &fi)
QbsProject *pro = static_cast<QbsProject *>(project()); QbsProject *pro = static_cast<QbsProject *>(project());
qbs::BuildOptions options(m_qbsBuildOptions); qbs::BuildOptions options(m_qbsBuildOptions);
options.changedFiles = m_changedFiles; options.setChangedFiles(m_changedFiles);
m_job = pro->build(options); m_job = pro->build(options);
@@ -179,18 +179,18 @@ void QbsBuildStep::setQbsConfiguration(const QVariantMap &config)
bool QbsBuildStep::dryRun() const bool QbsBuildStep::dryRun() const
{ {
return m_qbsBuildOptions.dryRun; return m_qbsBuildOptions.dryRun();
} }
bool QbsBuildStep::keepGoing() const bool QbsBuildStep::keepGoing() const
{ {
return m_qbsBuildOptions.keepGoing; return m_qbsBuildOptions.keepGoing();
} }
int QbsBuildStep::maxJobs() const int QbsBuildStep::maxJobs() const
{ {
if (m_qbsBuildOptions.maxJobCount > 0) if (m_qbsBuildOptions.maxJobCount() > 0)
return m_qbsBuildOptions.maxJobCount; return m_qbsBuildOptions.maxJobCount();
return qbs::BuildOptions::defaultMaxJobCount(); return qbs::BuildOptions::defaultMaxJobCount();
} }
@@ -200,9 +200,9 @@ bool QbsBuildStep::fromMap(const QVariantMap &map)
return false; return false;
setQbsConfiguration(map.value(QLatin1String(QBS_CONFIG)).toMap()); setQbsConfiguration(map.value(QLatin1String(QBS_CONFIG)).toMap());
m_qbsBuildOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN)).toBool(); m_qbsBuildOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN)).toBool());
m_qbsBuildOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING)).toBool(); m_qbsBuildOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING)).toBool());
m_qbsBuildOptions.maxJobCount = map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt(); m_qbsBuildOptions.setMaxJobCount(map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt());
return true; return true;
} }
@@ -210,9 +210,9 @@ QVariantMap QbsBuildStep::toMap() const
{ {
QVariantMap map = ProjectExplorer::BuildStep::toMap(); QVariantMap map = ProjectExplorer::BuildStep::toMap();
map.insert(QLatin1String(QBS_CONFIG), m_qbsConfiguration); map.insert(QLatin1String(QBS_CONFIG), m_qbsConfiguration);
map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun); map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun());
map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing); map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing());
map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount); map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount());
return map; return map;
} }
@@ -221,7 +221,7 @@ void QbsBuildStep::buildingDone(bool success)
// Report errors: // Report errors:
foreach (const qbs::ErrorData &data, m_job->error().entries()) foreach (const qbs::ErrorData &data, m_job->error().entries())
createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
data.codeLocation().fileName, data.codeLocation().line); data.codeLocation().fileName(), data.codeLocation().line());
QTC_ASSERT(m_fi, return); QTC_ASSERT(m_fi, return);
m_fi->reportResult(success); m_fi->reportResult(success);
@@ -251,7 +251,7 @@ void QbsBuildStep::handleWarningReport(const qbs::Error &error)
{ {
foreach (const qbs::ErrorData &data, error.entries()) { foreach (const qbs::ErrorData &data, error.entries()) {
createTaskAndOutput(ProjectExplorer::Task::Warning, data.description(), 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) 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; 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); addOutput(commandline, NormalOutput);
foreach (const QString &line, result.stdErr) { foreach (const QString &line, result.stdErr()) {
m_parser->stdError(line); m_parser->stdError(line);
addOutput(line, ErrorOutput); addOutput(line, ErrorOutput);
} }
foreach (const QString &line, result.stdOut) { foreach (const QString &line, result.stdOut()) {
m_parser->stdOutput(line); m_parser->stdOutput(line);
addOutput(line, NormalOutput); addOutput(line, NormalOutput);
} }
@@ -312,25 +312,25 @@ QString QbsBuildStep::profile() const
void QbsBuildStep::setDryRun(bool dr) void QbsBuildStep::setDryRun(bool dr)
{ {
if (m_qbsBuildOptions.dryRun == dr) if (m_qbsBuildOptions.dryRun() == dr)
return; return;
m_qbsBuildOptions.dryRun = dr; m_qbsBuildOptions.setDryRun(dr);
emit qbsBuildOptionsChanged(); emit qbsBuildOptionsChanged();
} }
void QbsBuildStep::setKeepGoing(bool kg) void QbsBuildStep::setKeepGoing(bool kg)
{ {
if (m_qbsBuildOptions.keepGoing == kg) if (m_qbsBuildOptions.keepGoing() == kg)
return; return;
m_qbsBuildOptions.keepGoing = kg; m_qbsBuildOptions.setKeepGoing(kg);
emit qbsBuildOptionsChanged(); emit qbsBuildOptionsChanged();
} }
void QbsBuildStep::setMaxJobs(int jobcount) void QbsBuildStep::setMaxJobs(int jobcount)
{ {
if (m_qbsBuildOptions.maxJobCount == jobcount) if (m_qbsBuildOptions.maxJobCount() == jobcount)
return; return;
m_qbsBuildOptions.maxJobCount = jobcount; m_qbsBuildOptions.setMaxJobCount(jobcount);
emit qbsBuildOptionsChanged(); emit qbsBuildOptionsChanged();
} }

View File

@@ -134,12 +134,12 @@ void QbsCleanStep::cancel()
bool QbsCleanStep::dryRun() const bool QbsCleanStep::dryRun() const
{ {
return m_qbsCleanOptions.dryRun; return m_qbsCleanOptions.dryRun();
} }
bool QbsCleanStep::keepGoing() const bool QbsCleanStep::keepGoing() const
{ {
return m_qbsCleanOptions.keepGoing; return m_qbsCleanOptions.keepGoing();
} }
int QbsCleanStep::maxJobs() const int QbsCleanStep::maxJobs() const
@@ -149,7 +149,7 @@ int QbsCleanStep::maxJobs() const
bool QbsCleanStep::cleanAll() 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) bool QbsCleanStep::fromMap(const QVariantMap &map)
@@ -157,10 +157,10 @@ bool QbsCleanStep::fromMap(const QVariantMap &map)
if (!ProjectExplorer::BuildStep::fromMap(map)) if (!ProjectExplorer::BuildStep::fromMap(map))
return false; return false;
m_qbsCleanOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN)).toBool(); m_qbsCleanOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN)).toBool());
m_qbsCleanOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING)).toBool(); m_qbsCleanOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING)).toBool());
m_qbsCleanOptions.cleanType = map.value(QLatin1String(QBS_CLEAN_ALL)).toBool() m_qbsCleanOptions.setCleanType(map.value(QLatin1String(QBS_CLEAN_ALL)).toBool()
? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries; ? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries);
return true; return true;
} }
@@ -168,10 +168,10 @@ bool QbsCleanStep::fromMap(const QVariantMap &map)
QVariantMap QbsCleanStep::toMap() const QVariantMap QbsCleanStep::toMap() const
{ {
QVariantMap map = ProjectExplorer::BuildStep::toMap(); QVariantMap map = ProjectExplorer::BuildStep::toMap();
map.insert(QLatin1String(QBS_DRY_RUN), m_qbsCleanOptions.dryRun); map.insert(QLatin1String(QBS_DRY_RUN), m_qbsCleanOptions.dryRun());
map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsCleanOptions.keepGoing); map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsCleanOptions.keepGoing());
map.insert(QLatin1String(QBS_CLEAN_ALL), map.insert(QLatin1String(QBS_CLEAN_ALL),
m_qbsCleanOptions.cleanType == qbs::CleanOptions::CleanupAll); m_qbsCleanOptions.cleanType() == qbs::CleanOptions::CleanupAll);
return map; return map;
} }
@@ -181,7 +181,7 @@ void QbsCleanStep::cleaningDone(bool success)
// Report errors: // Report errors:
foreach (const qbs::ErrorData &data, m_job->error().entries()) { foreach (const qbs::ErrorData &data, m_job->error().entries()) {
createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
data.codeLocation().fileName, data.codeLocation().line); data.codeLocation().fileName(), data.codeLocation().line());
} }
QTC_ASSERT(m_fi, return); QTC_ASSERT(m_fi, return);
@@ -217,17 +217,17 @@ void QbsCleanStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type, con
void QbsCleanStep::setDryRun(bool dr) void QbsCleanStep::setDryRun(bool dr)
{ {
if (m_qbsCleanOptions.dryRun == dr) if (m_qbsCleanOptions.dryRun() == dr)
return; return;
m_qbsCleanOptions.dryRun = dr; m_qbsCleanOptions.setDryRun(dr);
emit changed(); emit changed();
} }
void QbsCleanStep::setKeepGoing(bool kg) void QbsCleanStep::setKeepGoing(bool kg)
{ {
if (m_qbsCleanOptions.keepGoing == kg) if (m_qbsCleanOptions.keepGoing() == kg)
return; return;
m_qbsCleanOptions.keepGoing = kg; m_qbsCleanOptions.setKeepGoing(kg);
emit changed(); emit changed();
} }
@@ -241,9 +241,9 @@ void QbsCleanStep::setCleanAll(bool ca)
{ {
qbs::CleanOptions::CleanType newType = ca qbs::CleanOptions::CleanType newType = ca
? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries; ? qbs::CleanOptions::CleanupAll : qbs::CleanOptions::CleanupTemporaries;
if (m_qbsCleanOptions.cleanType == newType) if (m_qbsCleanOptions.cleanType() == newType)
return; return;
m_qbsCleanOptions.cleanType = newType; m_qbsCleanOptions.setCleanType(newType);
emit changed(); emit changed();
} }

View File

@@ -126,8 +126,8 @@ void QbsInstallStep::cancel()
QString QbsInstallStep::installRoot() const QString QbsInstallStep::installRoot() const
{ {
if (!m_qbsInstallOptions.installRoot.isEmpty()) if (!m_qbsInstallOptions.installRoot().isEmpty())
return m_qbsInstallOptions.installRoot; return m_qbsInstallOptions.installRoot();
return qbs::InstallOptions::defaultInstallRoot(); return qbs::InstallOptions::defaultInstallRoot();
} }
@@ -143,17 +143,17 @@ QString QbsInstallStep::absoluteInstallRoot() const
bool QbsInstallStep::removeFirst() const bool QbsInstallStep::removeFirst() const
{ {
return m_qbsInstallOptions.removeFirst; return m_qbsInstallOptions.removeExistingInstallation();
} }
bool QbsInstallStep::dryRun() const bool QbsInstallStep::dryRun() const
{ {
return m_qbsInstallOptions.dryRun; return m_qbsInstallOptions.dryRun();
} }
bool QbsInstallStep::keepGoing() const bool QbsInstallStep::keepGoing() const
{ {
return m_qbsInstallOptions.keepGoing; return m_qbsInstallOptions.keepGoing();
} }
bool QbsInstallStep::fromMap(const QVariantMap &map) bool QbsInstallStep::fromMap(const QVariantMap &map)
@@ -162,9 +162,9 @@ bool QbsInstallStep::fromMap(const QVariantMap &map)
return false; return false;
setInstallRoot(map.value(QLatin1String(QBS_INSTALL_ROOT)).toString()); setInstallRoot(map.value(QLatin1String(QBS_INSTALL_ROOT)).toString());
m_qbsInstallOptions.removeFirst = map.value(QLatin1String(QBS_REMOVE_FIRST), false).toBool(); m_qbsInstallOptions.setRemoveExistingInstallation(map.value(QLatin1String(QBS_REMOVE_FIRST), false).toBool());
m_qbsInstallOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN), false).toBool(); m_qbsInstallOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN), false).toBool());
m_qbsInstallOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING), false).toBool(); m_qbsInstallOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING), false).toBool());
return true; return true;
} }
@@ -172,20 +172,25 @@ bool QbsInstallStep::fromMap(const QVariantMap &map)
QVariantMap QbsInstallStep::toMap() const QVariantMap QbsInstallStep::toMap() const
{ {
QVariantMap map = ProjectExplorer::BuildStep::toMap(); QVariantMap map = ProjectExplorer::BuildStep::toMap();
map.insert(QLatin1String(QBS_INSTALL_ROOT), m_qbsInstallOptions.installRoot); map.insert(QLatin1String(QBS_INSTALL_ROOT), m_qbsInstallOptions.installRoot());
map.insert(QLatin1String(QBS_REMOVE_FIRST), m_qbsInstallOptions.removeFirst); map.insert(QLatin1String(QBS_REMOVE_FIRST), m_qbsInstallOptions.removeExistingInstallation());
map.insert(QLatin1String(QBS_DRY_RUN), m_qbsInstallOptions.dryRun); map.insert(QLatin1String(QBS_DRY_RUN), m_qbsInstallOptions.dryRun());
map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsInstallOptions.keepGoing); map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsInstallOptions.keepGoing());
return map; return map;
} }
qbs::InstallOptions QbsInstallStep::installOptions() const
{
return m_qbsInstallOptions;
}
void QbsInstallStep::installDone(bool success) void QbsInstallStep::installDone(bool success)
{ {
// Report errors: // Report errors:
foreach (const qbs::ErrorData &data, m_job->error().entries()) { foreach (const qbs::ErrorData &data, m_job->error().entries()) {
createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
data.codeLocation().fileName, data.codeLocation().line); data.codeLocation().fileName(), data.codeLocation().line());
} }
QTC_ASSERT(m_fi, return); QTC_ASSERT(m_fi, return);
@@ -222,33 +227,33 @@ void QbsInstallStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type,
void QbsInstallStep::setInstallRoot(const QString &ir) void QbsInstallStep::setInstallRoot(const QString &ir)
{ {
if (m_qbsInstallOptions.installRoot == ir) if (m_qbsInstallOptions.installRoot() == ir)
return; return;
m_qbsInstallOptions.installRoot = ir; m_qbsInstallOptions.installRoot() = ir;
emit changed(); emit changed();
} }
void QbsInstallStep::setRemoveFirst(bool rf) void QbsInstallStep::setRemoveFirst(bool rf)
{ {
if (m_qbsInstallOptions.removeFirst == rf) if (m_qbsInstallOptions.removeExistingInstallation() == rf)
return; return;
m_qbsInstallOptions.removeFirst = rf; m_qbsInstallOptions.setRemoveExistingInstallation(rf);
emit changed(); emit changed();
} }
void QbsInstallStep::setDryRun(bool dr) void QbsInstallStep::setDryRun(bool dr)
{ {
if (m_qbsInstallOptions.dryRun == dr) if (m_qbsInstallOptions.dryRun() == dr)
return; return;
m_qbsInstallOptions.dryRun = dr; m_qbsInstallOptions.setDryRun(dr);
emit changed(); emit changed();
} }
void QbsInstallStep::setKeepGoing(bool kg) void QbsInstallStep::setKeepGoing(bool kg)
{ {
if (m_qbsInstallOptions.keepGoing == kg) if (m_qbsInstallOptions.keepGoing() == kg)
return; return;
m_qbsInstallOptions.keepGoing = kg; m_qbsInstallOptions.setKeepGoing(kg);
emit changed(); emit changed();
} }

View File

@@ -63,6 +63,7 @@ public:
bool fromMap(const QVariantMap &map); bool fromMap(const QVariantMap &map);
QVariantMap toMap() const; QVariantMap toMap() const;
qbs::InstallOptions installOptions() const;
QString installRoot() const; QString installRoot() const;
QString absoluteInstallRoot() const; QString absoluteInstallRoot() const;
bool removeFirst() const; bool removeFirst() const;

View File

@@ -313,9 +313,9 @@ QbsGroupNode::QbsGroupNode(const qbs::GroupData *grp, const QString &productPath
{ {
setIcon(m_groupIcon); setIcon(m_groupIcon);
QbsFileNode *idx = new QbsFileNode(grp->location().fileName, QbsFileNode *idx = new QbsFileNode(grp->location().fileName(),
ProjectExplorer::ProjectFileType, false, ProjectExplorer::ProjectFileType, false,
grp->location().line); grp->location().line());
addFileNodes(QList<ProjectExplorer::FileNode *>() << idx, this); addFileNodes(QList<ProjectExplorer::FileNode *>() << idx, this);
updateQbsGroupData(grp, productPath); updateQbsGroupData(grp, productPath);
@@ -334,7 +334,7 @@ void QbsGroupNode::updateQbsGroupData(const qbs::GroupData *grp, const QString &
m_productPath = productPath; m_productPath = productPath;
m_qbsGroupData = grp; m_qbsGroupData = grp;
setPath(grp->location().fileName); setPath(grp->location().fileName());
setDisplayName(grp->name()); setDisplayName(grp->name());
QbsFileNode *idx = 0; QbsFileNode *idx = 0;
@@ -346,8 +346,8 @@ void QbsGroupNode::updateQbsGroupData(const qbs::GroupData *grp, const QString &
// idx not found, which should never happen! // idx not found, which should never happen!
Q_ASSERT(idx); Q_ASSERT(idx);
idx->setPath(grp->location().fileName); idx->setPath(grp->location().fileName());
idx->setLine(grp->location().line); idx->setLine(grp->location().line());
setupFiles(this, grp->allFilePaths(), m_productPath); setupFiles(this, grp->allFilePaths(), m_productPath);
emitNodeUpdated(); emitNodeUpdated();
@@ -433,7 +433,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
// -------------------------------------------------------------------- // --------------------------------------------------------------------
QbsProductNode::QbsProductNode(const qbs::ProductData *prd) : QbsProductNode::QbsProductNode(const qbs::ProductData *prd) :
QbsBaseProjectNode(prd->location().fileName), QbsBaseProjectNode(prd->location().fileName()),
m_qbsProductData(0) m_qbsProductData(0)
{ {
setIcon(m_productIcon); setIcon(m_productIcon);
@@ -451,24 +451,24 @@ void QbsProductNode::setQbsProductData(const qbs::ProductData *prd)
return; return;
setDisplayName(prd->name()); setDisplayName(prd->name());
setPath(prd->location().fileName); setPath(prd->location().fileName());
const QString &productPath = QFileInfo(prd->location().fileName).absolutePath(); const QString &productPath = QFileInfo(prd->location().fileName()).absolutePath();
// Set Product file node used to jump to the product // Set Product file node used to jump to the product
QList<ProjectExplorer::FileNode *> files = fileNodes(); QList<ProjectExplorer::FileNode *> files = fileNodes();
QbsFileNode *idx = 0; QbsFileNode *idx = 0;
if (files.isEmpty()) { if (files.isEmpty()) {
idx = new QbsFileNode(prd->location().fileName, idx = new QbsFileNode(prd->location().fileName(),
ProjectExplorer::ProjectFileType, false, ProjectExplorer::ProjectFileType, false,
prd->location().line); prd->location().line());
addFileNodes(QList<ProjectExplorer::FileNode *>() << idx, this); addFileNodes(QList<ProjectExplorer::FileNode *>() << idx, this);
} else { } else {
// Find the QbsFileNode we added earlier: // Find the QbsFileNode we added earlier:
foreach (ProjectExplorer::FileNode *fn, files) { foreach (ProjectExplorer::FileNode *fn, files) {
idx = qobject_cast<QbsFileNode *>(fn); idx = qobject_cast<QbsFileNode *>(fn);
if (idx) { if (idx) {
idx->setPath(prd->location().fileName); idx->setPath(prd->location().fileName());
idx->setLine(prd->location().line); idx->setLine(prd->location().line());
break; break;
} }
} }
@@ -505,8 +505,10 @@ QList<ProjectExplorer::RunConfiguration *> QbsProductNode::runConfigurationsFor(
Q_UNUSED(node); Q_UNUSED(node);
QList<ProjectExplorer::RunConfiguration *> result; QList<ProjectExplorer::RunConfiguration *> result;
QbsProjectNode *pn = qobject_cast<QbsProjectNode *>(projectNode()); 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; return result;
}
foreach (ProjectExplorer::RunConfiguration *rc, pn->project()->activeTarget()->runConfigurations()) { foreach (ProjectExplorer::RunConfiguration *rc, pn->project()->activeTarget()->runConfigurations()) {
QbsRunConfiguration *qbsRc = qobject_cast<QbsRunConfiguration *>(rc); QbsRunConfiguration *qbsRc = qobject_cast<QbsRunConfiguration *>(rc);

View File

@@ -163,11 +163,11 @@ QStringList QbsProject::files(ProjectExplorer::Project::FilesMode fileMode) cons
foreach (const qbs::GroupData &grp, prd.groups()) { foreach (const qbs::GroupData &grp, prd.groups()) {
foreach (const QString &file, grp.allFilePaths()) foreach (const QString &file, grp.allFilePaths())
result.insert(file); 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(); return result.toList();
} }
@@ -356,8 +356,8 @@ void QbsProject::generateErrors(const qbs::Error &e)
foreach (const qbs::ErrorData &data, e.entries()) foreach (const qbs::ErrorData &data, e.entries())
taskHub()->addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, taskHub()->addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error,
data.description(), data.description(),
Utils::FileName::fromString(data.codeLocation().fileName), Utils::FileName::fromString(data.codeLocation().fileName()),
data.codeLocation().line, data.codeLocation().line(),
ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
} }
@@ -370,14 +370,14 @@ void QbsProject::parse(const QVariantMap &config, const QString &dir)
QTC_ASSERT(!m_qbsSetupProjectJob, return); QTC_ASSERT(!m_qbsSetupProjectJob, return);
qbs::SetupProjectParameters params; qbs::SetupProjectParameters params;
params.buildConfiguration = m_qbsBuildConfig; params.setBuildConfiguration(m_qbsBuildConfig);
params.buildRoot = m_qbsBuildRoot; params.setBuildRoot(m_qbsBuildRoot);
params.projectFilePath = m_fileName; params.setProjectFilePath(m_fileName);
params.ignoreDifferentProjectFilePath = false; params.setIgnoreDifferentProjectFilePath(false);
qbs::Preferences *prefs = QbsManager::preferences(); qbs::Preferences *prefs = QbsManager::preferences();
const QString buildDir = qbsBuildDir(); const QString buildDir = qbsBuildDir();
params.searchPaths = prefs->searchPaths(buildDir); params.setSearchPaths(prefs->searchPaths(buildDir));
params.pluginPaths = prefs->pluginPaths(buildDir); params.setPluginPaths(prefs->pluginPaths(buildDir));
m_qbsSetupProjectJob m_qbsSetupProjectJob
= qbs::Project::setupProject(params, m_manager->settings(), m_manager->logSink(), 0); = 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... newFiles.insert(m_fileName); // make sure we always have the project file...
if (prj) { if (prj) {
newFiles.insert(prj->location().fileName); newFiles.insert(prj->location().fileName());
foreach (const qbs::ProductData &prd, prj->products()) foreach (const qbs::ProductData &prd, prj->products())
newFiles.insert(prd.location().fileName); newFiles.insert(prd.location().fileName());
} }
QSet<QString> oldFiles; QSet<QString> oldFiles;
foreach (Core::IDocument *doc, m_qbsDocuments) foreach (Core::IDocument *doc, m_qbsDocuments)

View File

@@ -202,7 +202,7 @@ QString QbsRunConfiguration::executable() const
if (!product) if (!product)
return QString(); return QString();
return pro->qbsProject()->targetExecutable(*product, installRoot()); return pro->qbsProject()->targetExecutable(*product, installOptions());
} }
ProjectExplorer::LocalApplicationRunConfiguration::RunMode QbsRunConfiguration::runMode() const ProjectExplorer::LocalApplicationRunConfiguration::RunMode QbsRunConfiguration::runMode() const
@@ -306,6 +306,13 @@ QString QbsRunConfiguration::defaultDisplayName()
return defaultName; return defaultName;
} }
qbs::InstallOptions QbsRunConfiguration::installOptions() const
{
if (m_currentInstallStep)
return m_currentInstallStep->installOptions();
return qbs::InstallOptions();
}
QString QbsRunConfiguration::installRoot() const QString QbsRunConfiguration::installRoot() const
{ {
if (m_currentInstallStep) if (m_currentInstallStep)
@@ -558,7 +565,7 @@ QList<Core::Id> QbsRunConfigurationFactory::availableCreationIds(ProjectExplorer
return result; return result;
foreach (const qbs::ProductData &product, project->qbsProjectData()->products()) { 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()); result << Core::Id::fromString(QString::fromLatin1(QBS_RC_PREFIX) + product.name());
} }
return result; return result;

View File

@@ -43,6 +43,10 @@ class QRadioButton;
class QComboBox; class QComboBox;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace qbs {
class InstallOptions;
}
namespace Utils { namespace Utils {
class PathChooser; class PathChooser;
class DetailsWidget; class DetailsWidget;
@@ -112,6 +116,7 @@ private:
void setCommandLineArguments(const QString &argumentsString); void setCommandLineArguments(const QString &argumentsString);
QString rawCommandLineArguments() const; QString rawCommandLineArguments() const;
QString defaultDisplayName(); QString defaultDisplayName();
qbs::InstallOptions installOptions() const;
QString installRoot() const; QString installRoot() const;
void ctor(); void ctor();

View File

@@ -65,7 +65,7 @@ QbsStep::QbsStep(ProjectExplorer::BuildStepList *bsl, Core::Id id) :
ProjectExplorer::BuildStep(bsl, id), ProjectExplorer::BuildStep(bsl, id),
m_job(0) m_job(0)
{ {
m_qbsBuildOptions.maxJobCount = QbsManager::preferences()->jobs(); m_qbsBuildOptions.setMaxJobCount(QbsManager::preferences()->jobs());
} }
QbsStep::QbsStep(ProjectExplorer::BuildStepList *bsl, const QbsStep *other) : QbsStep::QbsStep(ProjectExplorer::BuildStepList *bsl, const QbsStep *other) :
@@ -137,17 +137,17 @@ void QbsStep::cancel()
bool QbsStep::dryRun() const bool QbsStep::dryRun() const
{ {
return m_qbsBuildOptions.dryRun; return m_qbsBuildOptions.dryRun();
} }
bool QbsStep::keepGoing() const bool QbsStep::keepGoing() const
{ {
return m_qbsBuildOptions.keepGoing; return m_qbsBuildOptions.keepGoing();
} }
int QbsStep::maxJobs() const int QbsStep::maxJobs() const
{ {
return m_qbsBuildOptions.maxJobCount; return m_qbsBuildOptions.maxJobCount();
} }
bool QbsStep::fromMap(const QVariantMap &map) bool QbsStep::fromMap(const QVariantMap &map)
@@ -155,12 +155,12 @@ bool QbsStep::fromMap(const QVariantMap &map)
if (!ProjectExplorer::BuildStep::fromMap(map)) if (!ProjectExplorer::BuildStep::fromMap(map))
return false; return false;
m_qbsBuildOptions.dryRun = map.value(QLatin1String(QBS_DRY_RUN)).toBool(); m_qbsBuildOptions.setDryRun(map.value(QLatin1String(QBS_DRY_RUN)).toBool());
m_qbsBuildOptions.keepGoing = map.value(QLatin1String(QBS_KEEP_GOING)).toBool(); m_qbsBuildOptions.setKeepGoing(map.value(QLatin1String(QBS_KEEP_GOING)).toBool());
m_qbsBuildOptions.maxJobCount = map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt(); m_qbsBuildOptions.setMaxJobCount(map.value(QLatin1String(QBS_MAXJOBCOUNT)).toInt());
if (m_qbsBuildOptions.maxJobCount <= 0) if (m_qbsBuildOptions.maxJobCount() <= 0)
m_qbsBuildOptions.maxJobCount = QbsManager::preferences()->jobs(); m_qbsBuildOptions.setMaxJobCount(QbsManager::preferences()->jobs());
return true; return true;
} }
@@ -168,9 +168,9 @@ bool QbsStep::fromMap(const QVariantMap &map)
QVariantMap QbsStep::toMap() const QVariantMap QbsStep::toMap() const
{ {
QVariantMap map = ProjectExplorer::BuildStep::toMap(); QVariantMap map = ProjectExplorer::BuildStep::toMap();
map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun); map.insert(QLatin1String(QBS_DRY_RUN), m_qbsBuildOptions.dryRun());
map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing); map.insert(QLatin1String(QBS_KEEP_GOING), m_qbsBuildOptions.keepGoing());
map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount); map.insert(QLatin1String(QBS_MAXJOBCOUNT), m_qbsBuildOptions.maxJobCount());
return map; return map;
} }
@@ -180,7 +180,7 @@ void QbsStep::jobDone(bool success)
if (m_job) { if (m_job) {
foreach (const qbs::ErrorData &data, m_job->error().entries()) foreach (const qbs::ErrorData &data, m_job->error().entries())
createTaskAndOutput(ProjectExplorer::Task::Error, data.description(), createTaskAndOutput(ProjectExplorer::Task::Error, data.description(),
data.codeLocation().fileName, data.codeLocation().line); data.codeLocation().fileName(), data.codeLocation().line());
m_job->deleteLater(); m_job->deleteLater();
m_job = 0; m_job = 0;
} }
@@ -218,25 +218,25 @@ void QbsStep::createTaskAndOutput(ProjectExplorer::Task::TaskType type, const QS
void QbsStep::setDryRun(bool dr) void QbsStep::setDryRun(bool dr)
{ {
if (m_qbsBuildOptions.dryRun == dr) if (m_qbsBuildOptions.dryRun() == dr)
return; return;
m_qbsBuildOptions.dryRun = dr; m_qbsBuildOptions.setDryRun(dr);
emit qbsBuildOptionsChanged(); emit qbsBuildOptionsChanged();
} }
void QbsStep::setKeepGoing(bool kg) void QbsStep::setKeepGoing(bool kg)
{ {
if (m_qbsBuildOptions.keepGoing == kg) if (m_qbsBuildOptions.keepGoing() == kg)
return; return;
m_qbsBuildOptions.keepGoing = kg; m_qbsBuildOptions.setKeepGoing(kg);
emit qbsBuildOptionsChanged(); emit qbsBuildOptionsChanged();
} }
void QbsStep::setMaxJobs(int jobcount) void QbsStep::setMaxJobs(int jobcount)
{ {
if (m_qbsBuildOptions.maxJobCount == jobcount) if (m_qbsBuildOptions.maxJobCount() == jobcount)
return; return;
m_qbsBuildOptions.maxJobCount = jobcount; m_qbsBuildOptions.setMaxJobCount(jobcount);
emit qbsBuildOptionsChanged(); emit qbsBuildOptionsChanged();
} }

View File

@@ -275,9 +275,9 @@ QList<PropertyInfo> getQmlTypes(const CppComponentValue *objectValue, const Cont
const CppComponentValue * qmlObjectValue = value_cast<CppComponentValue>(prototype); const CppComponentValue * qmlObjectValue = value_cast<CppComponentValue>(prototype);
if (qmlObjectValue) if (qmlObjectValue)
propertyList.append(getQmlTypes(qmlObjectValue, context, false, rec + 1)); propertyList.append(getQmlTypes(qmlObjectValue, context, false, rec));
else else
propertyList.append(getObjectTypes(prototype, context, false, rec + 1)); propertyList.append(getObjectTypes(prototype, context, false, rec));
} }
return propertyList; return propertyList;
@@ -349,9 +349,9 @@ QList<PropertyInfo> getObjectTypes(const ObjectValue *objectValue, const Context
const CppComponentValue * qmlObjectValue = value_cast<CppComponentValue>(prototype); const CppComponentValue * qmlObjectValue = value_cast<CppComponentValue>(prototype);
if (qmlObjectValue) if (qmlObjectValue)
propertyList.append(getQmlTypes(qmlObjectValue, context, local, rec + 1)); propertyList.append(getQmlTypes(qmlObjectValue, context, local, rec));
else else
propertyList.append(getObjectTypes(prototype, context, local, rec + 1)); propertyList.append(getObjectTypes(prototype, context, local, rec));
} }
return propertyList; return propertyList;