forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.2'
Change-Id: If7e8fbfeae064c95e412b4cfa4804f7aa732be67
This commit is contained in:
26
dist/changes-4.2.1.md
vendored
26
dist/changes-4.2.1.md
vendored
@@ -7,14 +7,31 @@ you can check out from the public Git repository. For example:
|
|||||||
git clone git://code.qt.io/qt-creator/qt-creator.git
|
git clone git://code.qt.io/qt-creator/qt-creator.git
|
||||||
git log --cherry-pick --pretty=oneline v4.2.0..v4.2.1
|
git log --cherry-pick --pretty=oneline v4.2.0..v4.2.1
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
* Fixed `Open Command Prompt Here` on Windows (QTCREATORBUG-17439)
|
||||||
|
|
||||||
Editing
|
Editing
|
||||||
|
|
||||||
* Fixed that viewport could change unexpectedly when block selection was
|
* Fixed that viewport could change unexpectedly when block selection was
|
||||||
active but not visible in viewport (QTCREATORBUG-17475)
|
active but not visible in viewport (QTCREATORBUG-17475)
|
||||||
|
|
||||||
|
Help
|
||||||
|
|
||||||
|
* Fixed crash when using drag & drop with bookmarks (QTCREATORBUG-17547)
|
||||||
|
|
||||||
All Projects
|
All Projects
|
||||||
|
|
||||||
* Fixed issue with upgrading tool chain settings in auto-detected kits
|
* Fixed issue with upgrading tool chain settings in auto-detected kits
|
||||||
|
* Fixed crash when setting custom executable (QTCREATORBUG-17505)
|
||||||
|
|
||||||
|
QMake Projects
|
||||||
|
|
||||||
|
* Fixed wrong warning about incompatible compilers
|
||||||
|
* Fixed various issues with run configurations
|
||||||
|
(QTCREATORBUG-17462, QTCREATORBUG-17477)
|
||||||
|
* Fixed that `OTHER_FILES` and `DISTFILES` in subdirs projects were no longer
|
||||||
|
shown in project tree (QTCREATORBUG-17473)
|
||||||
|
|
||||||
Qbs Projects
|
Qbs Projects
|
||||||
|
|
||||||
@@ -25,6 +42,10 @@ Generic Projects
|
|||||||
|
|
||||||
* Fixed that project files were no longer shown in project tree
|
* Fixed that project files were no longer shown in project tree
|
||||||
|
|
||||||
|
C++ Support
|
||||||
|
|
||||||
|
* Fixed crash that could happen when using `auto` (QTCREATORBUG-16731)
|
||||||
|
|
||||||
Debugging
|
Debugging
|
||||||
|
|
||||||
* Fixed issue with infinite message boxes being displayed
|
* Fixed issue with infinite message boxes being displayed
|
||||||
@@ -43,3 +64,8 @@ iOS
|
|||||||
|
|
||||||
* Fixed that starting applications in simulator could fail, especially with
|
* Fixed that starting applications in simulator could fail, especially with
|
||||||
iOS 10 devices (QTCREATORBUG-17336)
|
iOS 10 devices (QTCREATORBUG-17336)
|
||||||
|
|
||||||
|
Android
|
||||||
|
|
||||||
|
* Fixed that password prompt was not shown again after entering invalid
|
||||||
|
keystore password (QTCREATORBUG-17317)
|
||||||
|
|||||||
@@ -47,19 +47,7 @@
|
|||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
\li Windows
|
\li Windows 7 or later
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li Windows Vista
|
|
||||||
|
|
||||||
\li Windows 7
|
|
||||||
|
|
||||||
\li Windows 8
|
|
||||||
|
|
||||||
\li Windows 8.1
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\note Some \QC plugins rely on Direct3D (part of DirectX). You might
|
\note Some \QC plugins rely on Direct3D (part of DirectX). You might
|
||||||
have to manually enable support for it if you are running Windows in a
|
have to manually enable support for it if you are running Windows in a
|
||||||
@@ -69,7 +57,7 @@
|
|||||||
\l{http://pubs.vmware.com/workstation-10/index.jsp?topic=%2Fcom.vmware.ws.using.doc%2FGUID-EA588485-718A-4FD8-81F5-B6E1F04C5788.html}
|
\l{http://pubs.vmware.com/workstation-10/index.jsp?topic=%2Fcom.vmware.ws.using.doc%2FGUID-EA588485-718A-4FD8-81F5-B6E1F04C5788.html}
|
||||||
{Prepare the Host System to Use DirectX 9 Accelerated Graphics}.
|
{Prepare the Host System to Use DirectX 9 Accelerated Graphics}.
|
||||||
|
|
||||||
\li (K)Ubuntu Linux 11.10 (32-bit and 64-bit) or later
|
\li (K)Ubuntu Linux 14.04 (64-bit) or later
|
||||||
|
|
||||||
To build Qt applications using \QC on Linux, you usually need the
|
To build Qt applications using \QC on Linux, you usually need the
|
||||||
following:
|
following:
|
||||||
@@ -109,7 +97,7 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\li OS X 10.7 or later with the following:
|
\li \macos 10.8 or later with the following:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
@@ -122,9 +110,9 @@
|
|||||||
|
|
||||||
\section2 Developing for Embedded Devices
|
\section2 Developing for Embedded Devices
|
||||||
|
|
||||||
The development environment supported by Qt for Device Creation is
|
Either Windows 7 or later or Ubuntu Linux 64-bit 12.04 LTS or later is
|
||||||
Ubuntu Linux 64-bit (12.04 LTS or later). For more information about
|
required to install and use Qt for Device Creation. For more information
|
||||||
the requirements for the development host, see the
|
about the requirements for the development host, see the
|
||||||
\l{http://doc.qt.io/QtForDeviceCreation/qtee-installation-guide.html}
|
\l{http://doc.qt.io/QtForDeviceCreation/qtee-installation-guide.html}
|
||||||
{Installation Guide} in the
|
{Installation Guide} in the
|
||||||
\l{http://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation}
|
\l{http://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -91,6 +91,8 @@ public:
|
|||||||
static QString terminalEmulator(const QSettings *settings, bool nonEmpty = true);
|
static QString terminalEmulator(const QSettings *settings, bool nonEmpty = true);
|
||||||
static void setTerminalEmulator(QSettings *settings, const QString &term);
|
static void setTerminalEmulator(QSettings *settings, const QString &term);
|
||||||
|
|
||||||
|
static bool startTerminalEmulator(QSettings *settings, const QString &workingDir);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void error(QProcess::ProcessError error);
|
void error(QProcess::ProcessError error);
|
||||||
void processError(const QString &errorString);
|
void processError(const QString &errorString);
|
||||||
|
|||||||
@@ -395,4 +395,10 @@ QStringList ConsoleProcess::availableTerminalEmulators()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ConsoleProcess::startTerminalEmulator(QSettings *settings, const QString &workingDir)
|
||||||
|
{
|
||||||
|
const QString emu = QtcProcess::splitArgs(terminalEmulator(settings)).takeFirst();
|
||||||
|
return QProcess::startDetached(emu, QStringList(), workingDir);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Utils
|
} // namespace Utils
|
||||||
|
|||||||
@@ -389,4 +389,31 @@ void ConsoleProcess::setSettings(QSettings *settings)
|
|||||||
// Not used on Windows
|
// Not used on Windows
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ConsoleProcess::startTerminalEmulator(QSettings *, const QString &workingDir)
|
||||||
|
{
|
||||||
|
STARTUPINFO si;
|
||||||
|
ZeroMemory(&si, sizeof(si));
|
||||||
|
si.cb = sizeof(si);
|
||||||
|
|
||||||
|
PROCESS_INFORMATION pinfo;
|
||||||
|
ZeroMemory(&pinfo, sizeof(pinfo));
|
||||||
|
|
||||||
|
QString cmdLine = createWinCommandline(
|
||||||
|
QString::fromLocal8Bit(qgetenv("COMSPEC")), QString());
|
||||||
|
// cmdLine is assumed to be detached -
|
||||||
|
// https://blogs.msdn.microsoft.com/oldnewthing/20090601-00/?p=18083
|
||||||
|
|
||||||
|
bool success = CreateProcessW(0, (WCHAR *)cmdLine.utf16(),
|
||||||
|
0, 0, FALSE, CREATE_NEW_CONSOLE,
|
||||||
|
0, workingDir.isEmpty() ? 0 : (WCHAR *)workingDir.utf16(),
|
||||||
|
&si, &pinfo);
|
||||||
|
|
||||||
|
if (success) {
|
||||||
|
CloseHandle(pinfo.hThread);
|
||||||
|
CloseHandle(pinfo.hProcess);
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Utils
|
} // namespace Utils
|
||||||
|
|||||||
@@ -31,15 +31,14 @@
|
|||||||
#include <coreplugin/iversioncontrol.h>
|
#include <coreplugin/iversioncontrol.h>
|
||||||
#include <coreplugin/vcsmanager.h>
|
#include <coreplugin/vcsmanager.h>
|
||||||
#include <utils/consoleprocess.h>
|
#include <utils/consoleprocess.h>
|
||||||
|
#include <utils/environment.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/qtcprocess.h>
|
|
||||||
#include <utils/unixutils.h>
|
#include <utils/unixutils.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QProcess>
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
@@ -110,27 +109,11 @@ void FileUtils::showInGraphicalShell(QWidget *parent, const QString &pathIn)
|
|||||||
|
|
||||||
void FileUtils::openTerminal(const QString &path)
|
void FileUtils::openTerminal(const QString &path)
|
||||||
{
|
{
|
||||||
// Get terminal application
|
|
||||||
QString terminalEmulator;
|
|
||||||
QStringList args;
|
|
||||||
const OsType hostOs = HostOsInfo::hostOs();
|
|
||||||
if (hostOs == OsTypeWindows) {
|
|
||||||
terminalEmulator = ConsoleProcess::defaultTerminalEmulator();
|
|
||||||
} else if (hostOs == OsTypeMac) {
|
|
||||||
terminalEmulator = ICore::resourcePath()
|
|
||||||
+ QLatin1String("/scripts/openTerminal.command");
|
|
||||||
} else {
|
|
||||||
args = QtcProcess::splitArgs(ConsoleProcess::terminalEmulator(ICore::settings()), hostOs);
|
|
||||||
terminalEmulator = args.takeFirst();
|
|
||||||
args.append(QString::fromLocal8Bit(qgetenv("SHELL")));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Launch terminal with working directory set.
|
|
||||||
const QFileInfo fileInfo(path);
|
const QFileInfo fileInfo(path);
|
||||||
const QString pwd = QDir::toNativeSeparators(fileInfo.isDir() ?
|
const QString pwd = QDir::toNativeSeparators(fileInfo.isDir() ?
|
||||||
fileInfo.absoluteFilePath() :
|
fileInfo.absoluteFilePath() :
|
||||||
fileInfo.absolutePath());
|
fileInfo.absolutePath());
|
||||||
QProcess::startDetached(terminalEmulator, args, pwd);
|
ConsoleProcess::startTerminalEmulator(ICore::settings(), pwd);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FileUtils::msgFindInDirectory()
|
QString FileUtils::msgFindInDirectory()
|
||||||
|
|||||||
@@ -937,6 +937,8 @@ void IosSimulatorToolHandlerPrivate::launchAppOnSimulator(const QStringList &ext
|
|||||||
// Poll every 1 sec to check whether the app is running.
|
// Poll every 1 sec to check whether the app is running.
|
||||||
QThread::msleep(1000);
|
QThread::msleep(1000);
|
||||||
} while (!fi.isCanceled() && kill(pid, 0) == 0);
|
} while (!fi.isCanceled() && kill(pid, 0) == 0);
|
||||||
|
#else
|
||||||
|
Q_UNUSED(pid);
|
||||||
#endif
|
#endif
|
||||||
// Future is cancelled if the app is stopped from the qt creator.
|
// Future is cancelled if the app is stopped from the qt creator.
|
||||||
if (!fi.isCanceled())
|
if (!fi.isCanceled())
|
||||||
|
|||||||
@@ -30,10 +30,12 @@
|
|||||||
#include "projectexplorersettings.h"
|
#include "projectexplorersettings.h"
|
||||||
#include "taskhub.h"
|
#include "taskhub.h"
|
||||||
|
|
||||||
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/qtcprocess.h>
|
#include <utils/qtcprocess.h>
|
||||||
#include <utils/synchronousprocess.h>
|
#include <utils/synchronousprocess.h>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
#include <QSysInfo>
|
||||||
#include <QTemporaryFile>
|
#include <QTemporaryFile>
|
||||||
#include <QTextCodec>
|
#include <QTextCodec>
|
||||||
|
|
||||||
@@ -271,7 +273,8 @@ bool AbstractMsvcToolChain::generateEnvironmentSettings(const Utils::Environment
|
|||||||
call += ' ';
|
call += ' ';
|
||||||
call += batchArgs.toLocal8Bit();
|
call += batchArgs.toLocal8Bit();
|
||||||
}
|
}
|
||||||
saver.write("chcp 65001\r\n");
|
if (Utils::HostOsInfo::isWindowsHost() && QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS7)
|
||||||
|
saver.write("chcp 65001\r\n"); // Only works for Windows 7 or later
|
||||||
saver.write(call + "\r\n");
|
saver.write(call + "\r\n");
|
||||||
saver.write("@echo " + marker.toLocal8Bit() + "\r\n");
|
saver.write("@echo " + marker.toLocal8Bit() + "\r\n");
|
||||||
saver.write("set\r\n");
|
saver.write("set\r\n");
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ QString RemoteLinuxSignalOperation::interruptProcessByNameCommandLine(const QStr
|
|||||||
|
|
||||||
void RemoteLinuxSignalOperation::killProcess(qint64 pid)
|
void RemoteLinuxSignalOperation::killProcess(qint64 pid)
|
||||||
{
|
{
|
||||||
run(QString::fromLatin1("%1; %2").arg(signalProcessByPidCommandLine(pid, 15),
|
run(QString::fromLatin1("%1; sleep 1; %2").arg(signalProcessByPidCommandLine(pid, 15),
|
||||||
signalProcessByPidCommandLine(pid, 9)));
|
signalProcessByPidCommandLine(pid, 9)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ void SemanticHighlighter::clearExtraAdditionalFormatsUntilEnd(
|
|||||||
QTextDocument *doc = highlighter->document();
|
QTextDocument *doc = highlighter->document();
|
||||||
|
|
||||||
const int firstBlockToClear = lastBlockNumber + 1;
|
const int firstBlockToClear = lastBlockNumber + 1;
|
||||||
if (firstBlockToClear <= doc->blockCount())
|
if (firstBlockToClear >= doc->blockCount())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QTextBlock b = doc->findBlockByNumber(firstBlockToClear);
|
QTextBlock b = doc->findBlockByNumber(firstBlockToClear);
|
||||||
|
|||||||
Reference in New Issue
Block a user