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 log --cherry-pick --pretty=oneline v4.2.0..v4.2.1
|
||||
|
||||
General
|
||||
|
||||
* Fixed `Open Command Prompt Here` on Windows (QTCREATORBUG-17439)
|
||||
|
||||
Editing
|
||||
|
||||
* Fixed that viewport could change unexpectedly when block selection was
|
||||
active but not visible in viewport (QTCREATORBUG-17475)
|
||||
|
||||
Help
|
||||
|
||||
* Fixed crash when using drag & drop with bookmarks (QTCREATORBUG-17547)
|
||||
|
||||
All Projects
|
||||
|
||||
* 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
|
||||
|
||||
@@ -25,6 +42,10 @@ Generic Projects
|
||||
|
||||
* Fixed that project files were no longer shown in project tree
|
||||
|
||||
C++ Support
|
||||
|
||||
* Fixed crash that could happen when using `auto` (QTCREATORBUG-16731)
|
||||
|
||||
Debugging
|
||||
|
||||
* Fixed issue with infinite message boxes being displayed
|
||||
@@ -43,3 +64,8 @@ iOS
|
||||
|
||||
* Fixed that starting applications in simulator could fail, especially with
|
||||
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
|
||||
|
||||
\li Windows
|
||||
|
||||
\list
|
||||
|
||||
\li Windows Vista
|
||||
|
||||
\li Windows 7
|
||||
|
||||
\li Windows 8
|
||||
|
||||
\li Windows 8.1
|
||||
|
||||
\endlist
|
||||
\li Windows 7 or later
|
||||
|
||||
\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
|
||||
@@ -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}
|
||||
{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
|
||||
following:
|
||||
@@ -109,7 +97,7 @@
|
||||
|
||||
\endlist
|
||||
|
||||
\li OS X 10.7 or later with the following:
|
||||
\li \macos 10.8 or later with the following:
|
||||
|
||||
\list
|
||||
|
||||
@@ -122,9 +110,9 @@
|
||||
|
||||
\section2 Developing for Embedded Devices
|
||||
|
||||
The development environment supported by Qt for Device Creation is
|
||||
Ubuntu Linux 64-bit (12.04 LTS or later). For more information about
|
||||
the requirements for the development host, see the
|
||||
Either Windows 7 or later or Ubuntu Linux 64-bit 12.04 LTS or later is
|
||||
required to install and use Qt for Device Creation. For more information
|
||||
about the requirements for the development host, see the
|
||||
\l{http://doc.qt.io/QtForDeviceCreation/qtee-installation-guide.html}
|
||||
{Installation Guide} in the
|
||||
\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 void setTerminalEmulator(QSettings *settings, const QString &term);
|
||||
|
||||
static bool startTerminalEmulator(QSettings *settings, const QString &workingDir);
|
||||
|
||||
signals:
|
||||
void error(QProcess::ProcessError error);
|
||||
void processError(const QString &errorString);
|
||||
|
||||
@@ -395,4 +395,10 @@ QStringList ConsoleProcess::availableTerminalEmulators()
|
||||
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
|
||||
|
||||
@@ -389,4 +389,31 @@ void ConsoleProcess::setSettings(QSettings *settings)
|
||||
// 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
|
||||
|
||||
@@ -31,15 +31,14 @@
|
||||
#include <coreplugin/iversioncontrol.h>
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
#include <utils/consoleprocess.h>
|
||||
#include <utils/environment.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/qtcprocess.h>
|
||||
#include <utils/unixutils.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QPushButton>
|
||||
#include <QWidget>
|
||||
|
||||
@@ -110,27 +109,11 @@ void FileUtils::showInGraphicalShell(QWidget *parent, const QString &pathIn)
|
||||
|
||||
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 QString pwd = QDir::toNativeSeparators(fileInfo.isDir() ?
|
||||
fileInfo.absoluteFilePath() :
|
||||
fileInfo.absolutePath());
|
||||
QProcess::startDetached(terminalEmulator, args, pwd);
|
||||
ConsoleProcess::startTerminalEmulator(ICore::settings(), pwd);
|
||||
}
|
||||
|
||||
QString FileUtils::msgFindInDirectory()
|
||||
|
||||
@@ -937,6 +937,8 @@ void IosSimulatorToolHandlerPrivate::launchAppOnSimulator(const QStringList &ext
|
||||
// Poll every 1 sec to check whether the app is running.
|
||||
QThread::msleep(1000);
|
||||
} while (!fi.isCanceled() && kill(pid, 0) == 0);
|
||||
#else
|
||||
Q_UNUSED(pid);
|
||||
#endif
|
||||
// Future is cancelled if the app is stopped from the qt creator.
|
||||
if (!fi.isCanceled())
|
||||
|
||||
@@ -30,10 +30,12 @@
|
||||
#include "projectexplorersettings.h"
|
||||
#include "taskhub.h"
|
||||
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/qtcprocess.h>
|
||||
#include <utils/synchronousprocess.h>
|
||||
|
||||
#include <QDir>
|
||||
#include <QSysInfo>
|
||||
#include <QTemporaryFile>
|
||||
#include <QTextCodec>
|
||||
|
||||
@@ -271,7 +273,8 @@ bool AbstractMsvcToolChain::generateEnvironmentSettings(const Utils::Environment
|
||||
call += ' ';
|
||||
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("@echo " + marker.toLocal8Bit() + "\r\n");
|
||||
saver.write("set\r\n");
|
||||
|
||||
@@ -96,7 +96,7 @@ QString RemoteLinuxSignalOperation::interruptProcessByNameCommandLine(const QStr
|
||||
|
||||
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)));
|
||||
}
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@ void SemanticHighlighter::clearExtraAdditionalFormatsUntilEnd(
|
||||
QTextDocument *doc = highlighter->document();
|
||||
|
||||
const int firstBlockToClear = lastBlockNumber + 1;
|
||||
if (firstBlockToClear <= doc->blockCount())
|
||||
if (firstBlockToClear >= doc->blockCount())
|
||||
return;
|
||||
|
||||
QTextBlock b = doc->findBlockByNumber(firstBlockToClear);
|
||||
|
||||
Reference in New Issue
Block a user