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;
}
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);

View File

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

View File

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

View File

@@ -123,7 +123,7 @@ protected:
private:
Scope *_scope;
LookupContext _context;
const LookupContext& _context;
Bind bind;
QList<LookupItem> _results;
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")));
}
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_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();

View File

@@ -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));

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -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();
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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)

View File

@@ -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;

View File

@@ -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();

View File

@@ -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();
}

View File

@@ -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;