Merge remote-tracking branch 'origin/2.6'
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 470 B After Width: | Height: | Size: 692 B |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 14 KiB |
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
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.
|
||||
|
||||
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 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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
4
src/libs/3rdparty/botan/botan.pro
vendored
@@ -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 += .
|
||||
|
||||
18
src/libs/3rdparty/cplusplus/Lexer.cpp
vendored
@@ -579,26 +579,20 @@ 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 == '"') {
|
||||
} else if (ch == 'u' && _yychar == '8') {
|
||||
yyinp();
|
||||
if (_yychar == '"') {
|
||||
yyinp();
|
||||
scanStringLiteral(tok, '8');
|
||||
} else if (la == '\'') {
|
||||
yyinp();
|
||||
} 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);
|
||||
} else if (std::isdigit(ch)) {
|
||||
@@ -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;
|
||||
|
||||
2
src/libs/3rdparty/cplusplus/Lexer.h
vendored
@@ -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()
|
||||
{
|
||||
|
||||
@@ -88,7 +88,7 @@ bool SaveFile::commit()
|
||||
return false;
|
||||
}
|
||||
#ifdef Q_OS_WIN
|
||||
FlushFileBuffers(handle());
|
||||
FlushFileBuffers(reinterpret_cast<HANDLE>(handle()));
|
||||
#else
|
||||
fdatasync(handle());
|
||||
#endif
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||