qt-creator: Backport a patch to fix Qbs crash
By Tobias Hunger:
06615843df
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
From 06615843df1541e67686f6a016f0c81e154c1869 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Hunger <tobias.hunger@digia.com>
|
||||
Date: Tue, 23 Sep 2014 13:05:00 +0200
|
||||
Subject: [PATCH] Qbs: Do not crash when using simplified project view
|
||||
|
||||
Root cause is trying to set the display name on a FolderNode that
|
||||
is not in the tree yet.
|
||||
|
||||
Allow setting the displayname in the constructor and use that new
|
||||
constructor where it makes sense.
|
||||
|
||||
Task-number: QTCREATORBUG-12897
|
||||
Change-Id: I907e48cac837966e38524bfe88a87ef17d93f0b2
|
||||
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
|
||||
---
|
||||
src/plugins/projectexplorer/projectnodes.cpp | 6 ++++--
|
||||
src/plugins/projectexplorer/projectnodes.h | 3 ++-
|
||||
src/plugins/qbsprojectmanager/qbsnodes.cpp | 9 +++++----
|
||||
3 files changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp
|
||||
index c0a8a8e..b3bc123 100644
|
||||
--- a/src/plugins/projectexplorer/projectnodes.cpp
|
||||
+++ b/src/plugins/projectexplorer/projectnodes.cpp
|
||||
@@ -247,10 +247,12 @@ bool FileNode::isGenerated() const
|
||||
|
||||
\sa ProjectExplorer::FileNode, ProjectExplorer::ProjectNode
|
||||
*/
|
||||
-FolderNode::FolderNode(const QString &folderPath, NodeType nodeType) :
|
||||
+FolderNode::FolderNode(const QString &folderPath, NodeType nodeType, const QString &displayName) :
|
||||
Node(nodeType, folderPath),
|
||||
- m_displayName(QDir::toNativeSeparators(folderPath))
|
||||
+ m_displayName(displayName)
|
||||
{
|
||||
+ if (m_displayName.isEmpty())
|
||||
+ m_displayName = QDir::toNativeSeparators(folderPath);
|
||||
}
|
||||
|
||||
FolderNode::~FolderNode()
|
||||
diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h
|
||||
index 8212e71..233f930 100644
|
||||
--- a/src/plugins/projectexplorer/projectnodes.h
|
||||
+++ b/src/plugins/projectexplorer/projectnodes.h
|
||||
@@ -162,7 +162,8 @@ private:
|
||||
class PROJECTEXPLORER_EXPORT FolderNode : public Node {
|
||||
Q_OBJECT
|
||||
public:
|
||||
- explicit FolderNode(const QString &folderPath, NodeType nodeType = FolderNodeType);
|
||||
+ explicit FolderNode(const QString &folderPath, NodeType nodeType = FolderNodeType,
|
||||
+ const QString &displayName = QString());
|
||||
virtual ~FolderNode();
|
||||
|
||||
QString displayName() const;
|
||||
diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp
|
||||
index ee63fbd..48af5cd 100644
|
||||
--- a/src/plugins/qbsprojectmanager/qbsnodes.cpp
|
||||
+++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp
|
||||
@@ -527,14 +527,15 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
|
||||
break;
|
||||
}
|
||||
if (!fn) {
|
||||
- fn = new FolderNode(c->path());
|
||||
+ fn = new FolderNode(c->path(), ProjectExplorer::FolderNodeType,
|
||||
+ displayNameFromPath(c->path(), baseDir));
|
||||
root->addFolderNodes(QList<FolderNode *>() << fn);
|
||||
} else {
|
||||
foldersToRemove.removeOne(fn);
|
||||
if (updateExisting)
|
||||
fn->emitNodeUpdated();
|
||||
+ fn->setDisplayName(displayNameFromPath(c->path(), baseDir));
|
||||
}
|
||||
- fn->setDisplayName(displayNameFromPath(c->path(), baseDir));
|
||||
|
||||
setupFolder(fn, c, c->path(), updateExisting);
|
||||
}
|
||||
@@ -811,9 +812,9 @@ QbsProjectNode *QbsProjectNode::findProjectNode(const QString &name)
|
||||
QbsRootProjectNode::QbsRootProjectNode(QbsProject *project) :
|
||||
QbsProjectNode(project->projectFilePath().toString()),
|
||||
m_project(project),
|
||||
- m_buildSystemFiles(new ProjectExplorer::FolderNode(project->projectDirectory().toString()))
|
||||
+ m_buildSystemFiles(new ProjectExplorer::FolderNode(project->projectDirectory().toString(),
|
||||
+ ProjectExplorer::FolderNodeType, tr("Qbs files")))
|
||||
{
|
||||
- m_buildSystemFiles->setDisplayName(tr("Qbs files"));
|
||||
addFolderNodes(QList<FolderNode *>() << m_buildSystemFiles);
|
||||
}
|
||||
|
||||
--
|
||||
2.1.2
|
||||
|
||||
@@ -8,7 +8,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
#_base_ver=3.3.0
|
||||
_base_ver=3.2.1
|
||||
pkgver=${_base_ver}${_pre}
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
pkgdesc='Cross-patform IDE (mingw-w64)'
|
||||
url='http://qt-project.org'
|
||||
install=qt-creator-${CARCH}.install
|
||||
@@ -30,6 +30,7 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-gdb: for the debugger"
|
||||
_pkgfqn="${_realname}-opensource-src-${_base_ver}${__pre}"
|
||||
source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_ver%.*}/${_base_ver}${__pre}/${_pkgfqn}.tar.gz
|
||||
http://download.qt-project.org/official_releases/qtcreator/${pkgver%.*}/${pkgver}/${_pkgfqn}.tar.gz
|
||||
0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch
|
||||
0001-autotools-Allow-builds-to-be-done-in-buildDir.patch
|
||||
0001-autotools-Remove-broken-unchanged-check.patch
|
||||
0002-autotools-Use-summaryInWorkdir.patch
|
||||
@@ -45,6 +46,7 @@ source=(#http://download.qt-project.org/development_releases/qtcreator/${_base_v
|
||||
)
|
||||
noextract=(${_pkgfqn}.tar.gz)
|
||||
sha256sums=('dd212d2379a08ca481ffc79fdf18ede48de0f5d025f485f06dccfe9aec67e74e'
|
||||
'18f59946054e667b56276f53ec544d4786c3c249fee6c0bd9b0b565ed4b7cf2d'
|
||||
'6c34b2bad7a24c5922d237dc67fcced14e83d65116f77cd84aa80ae2ebd4aad9'
|
||||
'2f45ff4c2806c90c36f19da07707fef213e50fbf8825fe169e1bce6349efacee'
|
||||
'22253cf29a2c8effebb1cc8313a0f350cf993d7fc404763063e6bd8444fa61f1'
|
||||
@@ -63,6 +65,7 @@ prepare() {
|
||||
tar -xzf ${SRCDEST}/${_pkgfqn}.tar.gz -C $srcdir || true
|
||||
|
||||
cd ${srcdir}/${_pkgfqn}
|
||||
patch -p1 -i "${srcdir}"/0001-Qbs-Do-not-crash-when-using-simplified-project-view.patch
|
||||
# Attempting to upstream: https://codereview.qt-project.org/#/c/93073/
|
||||
patch -p1 -i "${srcdir}"/0001-autotools-Allow-builds-to-be-done-in-buildDir.patch
|
||||
# patch -p1 -i "${srcdir}"/0001-autotools-Remove-broken-unchanged-check.patch
|
||||
|
||||
Reference in New Issue
Block a user