diff --git a/doc/images/qtcreator-build-steps-custom.png b/doc/images/qtcreator-build-steps-custom.png index 9f46ee7af7ee62db7aa2127f2cc4b1b324414b13..edea702bcacb71a394b6613bcdf8f7ae0d3e1c98 100644 Binary files a/doc/images/qtcreator-build-steps-custom.png and b/doc/images/qtcreator-build-steps-custom.png differ diff --git a/doc/images/qtcreator-build-steps.png b/doc/images/qtcreator-build-steps.png index 5f03246e767b81ff22f2187ab7c40f51559047fe..a1f717e50bc963fc3fdc403941ffb438dea9998e 100644 Binary files a/doc/images/qtcreator-build-steps.png and b/doc/images/qtcreator-build-steps.png differ diff --git a/doc/images/qtcreator-clean-steps.png b/doc/images/qtcreator-clean-steps.png index 6946143f5c38c53def74320df34bb763b5bd737b..6d2ad4f0cc86edc5d283f1bfa8ec766fda589802 100644 Binary files a/doc/images/qtcreator-clean-steps.png and b/doc/images/qtcreator-clean-steps.png differ diff --git a/doc/images/qtcreator-disable-steps.png b/doc/images/qtcreator-disable-steps.png index 5fd83de9f9c51ff9d0ba85aafceffe50de89d387..2829e67039924456d15e60582d458d05085b33c4 100644 Binary files a/doc/images/qtcreator-disable-steps.png and b/doc/images/qtcreator-disable-steps.png differ diff --git a/doc/images/qtcreator-project-targets.png b/doc/images/qtcreator-project-targets.png index c95e52092d521f8c613a64b8cd00beec84940066..fc2ec4594c347380494d1827f556962435c8ada9 100644 Binary files a/doc/images/qtcreator-project-targets.png and b/doc/images/qtcreator-project-targets.png differ diff --git a/doc/src/projects/creator-projects-settings-code-style.qdoc b/doc/src/projects/creator-projects-settings-code-style.qdoc index 68113b16fdeeb67c96bd4bde054f81f3609d4f20..486a9fab7ba7fbe1b87e2b6d94bc3db03eae7c1c 100644 --- a/doc/src/projects/creator-projects-settings-code-style.qdoc +++ b/doc/src/projects/creator-projects-settings-code-style.qdoc @@ -54,7 +54,7 @@ \o Select \gui {Projects > Code Style Settings}. - \o In the \gui Language field, select \gui C++ or \gui Qt Quick. + \o In the \gui Language field, select \gui C++ or \gui {Qt Quick}. \o In the \gui {Current settings} field, select the settings to modify and click \gui Copy. diff --git a/doc/src/projects/creator-projects-settings-overview.qdoc b/doc/src/projects/creator-projects-settings-overview.qdoc index c6671e60b3e3b84bb3d56b17752d80fef78504d7..2a4f293d79eaa8c6b890f0cbd17a2ab7045e089e 100644 --- a/doc/src/projects/creator-projects-settings-overview.qdoc +++ b/doc/src/projects/creator-projects-settings-overview.qdoc @@ -42,14 +42,12 @@ \image qtcreator-project-targets.png - You can add a target if the development environment for the target platform - is installed on the development PC and the target is configured in - \gui Tools > \gui Options > \gui {Build & Run} > \gui Targets. - - Click - \inlineimage qtcreator-qt4-addbutton.png "Add Target button" - and select from a list of available targets. To remove a target, select it - and click + To add build and run targets for the project, select \gui Add. The list + displays targets that are configured in \gui Tools > \gui Options > + \gui {Build & Run} > \gui Targets. To add targets to the list, select + \gui Manage. + + To remove a target, hover the cursor over it (1) and click \inlineimage qtcreator-target-remove.png "Remove Target button" . @@ -70,10 +68,7 @@ \endlist - \note If you have installed the development environment for only - one target, the \gui Targets tab is replaced by a \gui Build - tab and a \gui Run tab. - If you have not configured the project for building, the + \note If you have not configured the project for building, the \gui Targets tab is replaced by the \l{Opening Projects} {Configure Projects} tab. diff --git a/doc/src/qtquick/qtquick-components.qdoc b/doc/src/qtquick/qtquick-components.qdoc index b4cee0e0b956cabd91f30262312a2d0d743cd38d..7074ebe0c397b53c2b5f0db189ab69db33ac82df 100644 --- a/doc/src/qtquick/qtquick-components.qdoc +++ b/doc/src/qtquick/qtquick-components.qdoc @@ -84,10 +84,6 @@ Even if you use the Qt Quick Components, you can still write cross-platform applications, by using different sets of QML files for each platform. - You can dowload a set of commonly used UI-components for generic use in - Qt Quick projects from \l{https://projects.forum.nokia.com/QMLTemplates} - {QML Templates}. You can open and edit the templates in \QD. - \section1 Creating Components in Qt Quick Designer \list 1 diff --git a/src/libs/3rdparty/botan/botan.pro b/src/libs/3rdparty/botan/botan.pro index 7ae5df14d53f2b909138b7d1a5dbc8806979be3f..5618387dbad9bada1228d25d3bdb785cbc6419dc 100644 --- a/src/libs/3rdparty/botan/botan.pro +++ b/src/libs/3rdparty/botan/botan.pro @@ -3,11 +3,11 @@ TARGET = Botan PRECOMPILED_HEADER = ../precompiled_headers/botan_pch.h -include(../../../qtcreatorlibrary.pri) CONFIG += exceptions CONFIG += release -CONFIG -= debug +CONFIG -= debug debug_and_release +include(../../../qtcreatorlibrary.pri) DEPENDPATH += . INCLUDEPATH += . diff --git a/src/libs/3rdparty/cplusplus/Lexer.cpp b/src/libs/3rdparty/cplusplus/Lexer.cpp index 3b52059a36a1882b6724c27115f7cd9634239443..5214a345f706e5a1a57ee30496346d38ddf6834a 100644 --- a/src/libs/3rdparty/cplusplus/Lexer.cpp +++ b/src/libs/3rdparty/cplusplus/Lexer.cpp @@ -579,25 +579,19 @@ void Lexer::scan_helper(Token *tok) } else if (_yychar == '\'') { yyinp(); scanCharLiteral(tok, ch); - } else { - if (_yychar == '8') { - unsigned char la = 0; - if (_currentChar + 1 != _lastChar) - la = *(_currentChar + 1); - if (la == '"') { - yyinp(); - yyinp(); - scanStringLiteral(tok, '8'); - } else if (la == '\'') { - yyinp(); - yyinp(); - scanCharLiteral(tok, '8'); - } else { - scanIdentifier(tok); - } + } else if (ch == 'u' && _yychar == '8') { + yyinp(); + if (_yychar == '"') { + yyinp(); + scanStringLiteral(tok, '8'); + } else if (_yychar == '\'') { + yyinp(); + scanCharLiteral(tok, '8'); } else { - scanIdentifier(tok); + scanIdentifier(tok, 1); } + } else { + scanIdentifier(tok); } } else if (std::isalpha(ch) || ch == '_' || ch == '$') { scanIdentifier(tok); @@ -693,9 +687,9 @@ void Lexer::scanNumericLiteral(Token *tok) tok->number = control()->numericLiteral(yytext, yylen); } -void Lexer::scanIdentifier(Token *tok) +void Lexer::scanIdentifier(Token *tok, unsigned extraProcessedChars) { - const char *yytext = _currentChar - 1; + const char *yytext = _currentChar - 1 - extraProcessedChars; while (std::isalnum(_yychar) || _yychar == '_' || _yychar == '$') yyinp(); int yylen = _currentChar - yytext; diff --git a/src/libs/3rdparty/cplusplus/Lexer.h b/src/libs/3rdparty/cplusplus/Lexer.h index 8e4eab9797b668d42c5c6309c1c7ecbc71e791fd..c61b53c31f070d3a7eb246af1de1382d673af7df 100644 --- a/src/libs/3rdparty/cplusplus/Lexer.h +++ b/src/libs/3rdparty/cplusplus/Lexer.h @@ -94,7 +94,7 @@ private: void scanCharLiteral(Token *tok, unsigned char hint = 0); void scanUntilQuote(Token *tok, unsigned char quote); void scanNumericLiteral(Token *tok); - void scanIdentifier(Token *tok); + void scanIdentifier(Token *tok, unsigned extraProcessedChars = 0); inline void yyinp() { diff --git a/src/libs/utils/savefile.cpp b/src/libs/utils/savefile.cpp index ebd310d679465b0bbb4aa4c02a7a2aef732fb336..4406fb8c92b44ce2b1ca2cf001ab6bbc5b01127a 100644 --- a/src/libs/utils/savefile.cpp +++ b/src/libs/utils/savefile.cpp @@ -88,7 +88,7 @@ bool SaveFile::commit() return false; } #ifdef Q_OS_WIN - FlushFileBuffers(handle()); + FlushFileBuffers(reinterpret_cast<HANDLE>(handle())); #else fdatasync(handle()); #endif diff --git a/src/libs/utils/tcpportsgatherer.cpp b/src/libs/utils/tcpportsgatherer.cpp index ebde4d6226b1eadcbb4cddf088c8954ae433ba6f..6ed167890147dbcddd06044a5e576a915af0e87f 100644 --- a/src/libs/utils/tcpportsgatherer.cpp +++ b/src/libs/utils/tcpportsgatherer.cpp @@ -46,7 +46,7 @@ #if defined(Q_OS_WIN) && defined(Q_CC_MINGW) // Missing declarations for MinGW. This requires MinGW with gcc 4.6. -#if __GNUC__ == 4 && __GNUC_MINOR__ < 7 +#if __GNUC__ == 4 && __GNUC_MINOR__ < 7 && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 2) typedef enum { } MIB_TCP_STATE; #endif diff --git a/src/plugins/debugger/debuggerprofileinformation.cpp b/src/plugins/debugger/debuggerprofileinformation.cpp index 41f0d8aff70df569a1e008e24b368d9ecfc938eb..bda8c41c5e0897d64f24c7404b4346892f1abd48 100644 --- a/src/plugins/debugger/debuggerprofileinformation.cpp +++ b/src/plugins/debugger/debuggerprofileinformation.cpp @@ -167,21 +167,36 @@ QVariant DebuggerProfileInformation::defaultValue(Profile *p) const QList<Task> DebuggerProfileInformation::validate(Profile *p) const { + const Core::Id id(Constants::TASK_CATEGORY_BUILDSYSTEM); QList<Task> result; FileName dbg = debuggerCommand(p); if (dbg.isEmpty()) { - result << Task(Task::Warning, tr("No debugger set up."), FileName(), -1, - Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM)); + result << Task(Task::Warning, tr("No debugger set up."), FileName(), -1, id); return result; } QFileInfo fi = dbg.toFileInfo(); if (!fi.exists() || fi.isDir()) - result << Task(Task::Error, tr("Debugger not found."), FileName(), -1, - Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM)); + result << Task(Task::Error, tr("Debugger not found."), FileName(), -1, id); else if (!fi.isExecutable()) - result << Task(Task::Error, tr("Debugger not exectutable."), FileName(), -1, - Core::Id(Constants::TASK_CATEGORY_BUILDSYSTEM)); + result << Task(Task::Error, tr("Debugger not exectutable."), FileName(), -1, id); + + if (ToolChain *tc = ToolChainProfileInformation::toolChain(p)) { + // We need an absolute path to be able to locate Python on Windows. + const Abi abi = tc->targetAbi(); + if (abi.os() == Abi::WindowsOS && !fi.isAbsolute()) { + result << Task(Task::Error, tr("The debugger location must be given as an " + "absolute path (%1).").arg(dbg.toString()), FileName(), -1, id); + } + // FIXME: Make sure debugger matches toolchain. + // if (isCdb()) { + // if (abi.binaryFormat() != Abi::PEFormat || abi.os() != Abi::WindowsOS) { + // result << Task(Tas->errorDetails.push_back(CdbEngine::tr("The CDB debug engine does not support the %1 ABI."). + // arg(abi.toString())); + // return false; + // } + // } + } return result; } diff --git a/src/plugins/resourceeditor/qrceditor/resourcefile.cpp b/src/plugins/resourceeditor/qrceditor/resourcefile.cpp index 33fc8accb4c93616b7ca1ac4e8f11c2596c56380..68efd3e8e14c2649c4acd7df06813971c65f0c45 100644 --- a/src/plugins/resourceeditor/qrceditor/resourcefile.cpp +++ b/src/plugins/resourceeditor/qrceditor/resourcefile.cpp @@ -49,16 +49,6 @@ #include <QDomDocument> - -/* -TRANSLATOR ResourceEditor::ResourceModel -*/ - -static QString msgFileNameEmpty() -{ - return QCoreApplication::translate("Designer", "The file name is empty."); -} - using namespace ResourceEditor; using namespace ResourceEditor::Internal; @@ -126,7 +116,7 @@ bool ResourceFile::load() m_error_message.clear(); if (m_file_name.isEmpty()) { - m_error_message = msgFileNameEmpty(); + m_error_message = tr("The file name is empty."); return false; } @@ -143,14 +133,14 @@ bool ResourceFile::load() QString error_msg; int error_line, error_col; if (!doc.setContent(&file, &error_msg, &error_line, &error_col)) { - m_error_message = QCoreApplication::translate("Designer", "XML error on line %1, col %2: %3") + m_error_message = tr("XML error on line %1, col %2: %3") .arg(error_line).arg(error_col).arg(error_msg); return false; } QDomElement root = doc.firstChildElement(QLatin1String("RCC")); if (root.isNull()) { - m_error_message = QCoreApplication::translate("Designer", "The <RCC> root element is missing."); + m_error_message = tr("The <RCC> root element is missing."); return false; } @@ -189,7 +179,7 @@ bool ResourceFile::save() m_error_message.clear(); if (m_file_name.isEmpty()) { - m_error_message = msgFileNameEmpty(); + m_error_message = tr("The file name is empty."); return false; } @@ -238,7 +228,7 @@ bool ResourceFile::save() #if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0) stream.flush(); if (stream.status() != QTextStream::Ok) { - m_error_message = QCoreApplication::translate("Designer", "Cannot write file. Disk full?"); + m_error_message = tr("Cannot write file. Disk full?"); return false; } #endif diff --git a/src/plugins/resourceeditor/qrceditor/resourcefile_p.h b/src/plugins/resourceeditor/qrceditor/resourcefile_p.h index ffcc09025dbe90c2eec7e2bb2e353ec81e085648..412a368f7dd29f6021bf3845fd033adeb14f3bc7 100644 --- a/src/plugins/resourceeditor/qrceditor/resourcefile_p.h +++ b/src/plugins/resourceeditor/qrceditor/resourcefile_p.h @@ -32,6 +32,7 @@ #define RESOURCEFILE_P_H #include <QAbstractItemModel> +#include <QCoreApplication> #include <QMap> #include <QString> #include <QStringList> @@ -123,6 +124,7 @@ typedef QList<Prefix *> PrefixList; */ class ResourceFile { + Q_DECLARE_TR_FUNCTIONS(ResourceFile) public: ResourceFile(const QString &file_name = QString()); ~ResourceFile();