Commit 17cf48f5 authored by Eike Ziller's avatar Eike Ziller
Browse files

Merge remote-tracking branch 'origin/2.6'

parents 457c2891 2ded6900
doc/images/qtcreator-build-steps.png

14.3 KB | W: | H:

doc/images/qtcreator-build-steps.png

14.1 KB | W: | H:

doc/images/qtcreator-build-steps.png
doc/images/qtcreator-build-steps.png
doc/images/qtcreator-build-steps.png
doc/images/qtcreator-build-steps.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-clean-steps.png

6.61 KB | W: | H:

doc/images/qtcreator-clean-steps.png

8.62 KB | W: | H:

doc/images/qtcreator-clean-steps.png
doc/images/qtcreator-clean-steps.png
doc/images/qtcreator-clean-steps.png
doc/images/qtcreator-clean-steps.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-disable-steps.png

470 Bytes | W: | H:

doc/images/qtcreator-disable-steps.png

692 Bytes | W: | H:

doc/images/qtcreator-disable-steps.png
doc/images/qtcreator-disable-steps.png
doc/images/qtcreator-disable-steps.png
doc/images/qtcreator-disable-steps.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -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.
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.
......
......@@ -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
......
......@@ -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 += .
......
......@@ -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;
......
......@@ -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();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment