diff --git a/dist/changes-3.4.1.md b/dist/changes-3.4.1.md
index 195bd519a95..e43e323c32a 100644
--- a/dist/changes-3.4.1.md
+++ b/dist/changes-3.4.1.md
@@ -19,6 +19,11 @@ Editing
* Fixed that the completion popup could become huge
(QTCREATORBUG-14331)
+Help
+
+* Fixed that manually registered documentation vanished on restart
+ on Windows (QTCREATORBUG-14249)
+
Project Management
* Fixed adding static libraries with `Add Library` wizard
@@ -54,6 +59,8 @@ C++ Support
QML Support
* Fixed completion for QtQml and QtQml.Models (QTCREATORBUG-13780)
+* Fixed that dragging items from QML overview onto editor removed the
+ items (QTCREATORBUG-14496)
Platform Specific
diff --git a/share/qtcreator/welcomescreen/qtcreator_tutorials.xml b/share/qtcreator/welcomescreen/qtcreator_tutorials.xml
index 88beade07bd..6d87848411f 100644
--- a/share/qtcreator/welcomescreen/qtcreator_tutorials.xml
+++ b/share/qtcreator/welcomescreen/qtcreator_tutorials.xml
@@ -105,7 +105,7 @@
qt quick,qt creator,qml profiler
-
+
qt,3d
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index a1d3eff3c72..2de972a2ff4 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -103,7 +103,7 @@ void DocSettingsPage::addDocumentation()
}
addItem(nameSpace, file, true/*user managed*/);
- m_filesToRegister.insert(nameSpace, QDir::toNativeSeparators(filePath));
+ m_filesToRegister.insert(nameSpace, filePath);
m_filesToRegisterUserManaged.insert(nameSpace, true/*user managed*/);
// If the files to unregister contains the namespace, grab a copy of all paths added and try to
diff --git a/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp b/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp
index d83a5d5fc1c..36407376d4f 100644
--- a/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp
+++ b/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp
@@ -225,6 +225,7 @@ static const char *const variableKeywords[] = {
"UI_HEADERS_DIR",
"UI_SOURCES_DIR",
"VERSION",
+ "VERSION_PE_HEADER",
"VER_MAJ",
"VER_MIN",
"VER_PAT",
diff --git a/src/plugins/remotelinux/genericdirectuploadservice.cpp b/src/plugins/remotelinux/genericdirectuploadservice.cpp
index dd9d1f93a7d..a5852ade3a8 100644
--- a/src/plugins/remotelinux/genericdirectuploadservice.cpp
+++ b/src/plugins/remotelinux/genericdirectuploadservice.cpp
@@ -31,6 +31,7 @@
#include
#include
+#include
#include
#include
#include
@@ -184,7 +185,8 @@ void GenericDirectUploadService::handleUploadFinished(SftpJobId jobId, const QSt
// This is done for Windows.
if (df.isExecutable()) {
- const QString command = QLatin1String("chmod a+x ") + df.remoteFilePath();
+ const QString command = QLatin1String("chmod a+x ")
+ + Utils::QtcProcess::quoteArgUnix(df.remoteFilePath());
d->chmodProc = connection()->createRemoteProcess(command.toUtf8());
connect(d->chmodProc.data(), SIGNAL(closed(int)), SLOT(handleChmodFinished(int)));
connect(d->chmodProc.data(), SIGNAL(readyReadStandardOutput()),
@@ -263,8 +265,9 @@ void GenericDirectUploadService::handleMkdirFinished(int exitStatus)
const QString remoteFilePath = df.remoteDirectory() + QLatin1Char('/') + fi.fileName();
if (fi.isSymLink()) {
const QString target = fi.dir().relativeFilePath(fi.symLinkTarget()); // see QTBUG-5817.
- const QString command = QLatin1String("ln -sf ") + target + QLatin1Char(' ')
- + remoteFilePath;
+ const QStringList args = QStringList() << QLatin1String("ln") << QLatin1String("-sf")
+ << target << remoteFilePath;
+ const QString command = Utils::QtcProcess::joinArgs(args, Utils::OsTypeLinux);
// See comment in SftpChannel::createLink as to why we can't use it.
d->lnProc = connection()->createRemoteProcess(command.toUtf8());
@@ -370,7 +373,8 @@ void GenericDirectUploadService::uploadNextFile()
QFileInfo fi = df.localFilePath().toFileInfo();
if (fi.isDir())
dirToCreate += QLatin1Char('/') + fi.fileName();
- const QString command = QLatin1String("mkdir -p ") + dirToCreate;
+ const QString command = QLatin1String("mkdir -p ")
+ + Utils::QtcProcess::quoteArgUnix(dirToCreate);
d->mkdirProc = connection()->createRemoteProcess(command.toUtf8());
connect(d->mkdirProc.data(), SIGNAL(closed(int)), SLOT(handleMkdirFinished(int)));
connect(d->mkdirProc.data(), SIGNAL(readyReadStandardOutput()), SLOT(handleStdOutData()));
diff --git a/tests/system/suite_general/tst_rename_file/test.py b/tests/system/suite_general/tst_rename_file/test.py
index 25fa7c48fd6..5de12b43625 100644
--- a/tests/system/suite_general/tst_rename_file/test.py
+++ b/tests/system/suite_general/tst_rename_file/test.py
@@ -55,12 +55,7 @@ def main():
previous = filenames[-1]
for filename in filenames:
tempFiletype = filetype
- if previous in ("test", "TEST"):
- if tempFiletype in ("Headers", "Sources", "QML"):
- tempFiletype = "Sources"
- else: # then it must be Resources
- tempFiletype = "Other files"
- elif filetype == "QML" and previous[-4:] != ".qml":
+ if previous in ("test", "TEST") or filetype == "QML" and previous[-4:] != ".qml":
tempFiletype = "Other files"
renameFile(templateDir, usedProFile, projectName + "." + tempFiletype,
previous, filename)