forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.2' into 4.3
Conflicts: doc/src/qtcreator.qdoc tests/system/suite_general/suite.conf Change-Id: Ia298b177d6920a1d853e342b62cf98f7c48a278a
This commit is contained in:
37
dist/changes-4.2.2.md
vendored
37
dist/changes-4.2.2.md
vendored
@@ -7,6 +7,14 @@ 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.1..v4.2.2
|
git log --cherry-pick --pretty=oneline v4.2.1..v4.2.2
|
||||||
|
|
||||||
|
All Projects
|
||||||
|
|
||||||
|
* Fixed available kits after selecting Qt 5.8 as minimal required version
|
||||||
|
in wizard (QTCREATORBUG-17574)
|
||||||
|
* Fixed that `Run in terminal` was sometimes ignored (QTCREATORBUG-17608)
|
||||||
|
* Fixed that `This file is not part of any project` was shown in editor after
|
||||||
|
adding new file to project (QTCREATORBUG-17743)
|
||||||
|
|
||||||
Qt Support
|
Qt Support
|
||||||
|
|
||||||
* Fixed ABI detection of static Qt builds
|
* Fixed ABI detection of static Qt builds
|
||||||
@@ -14,6 +22,18 @@ Qt Support
|
|||||||
Qbs Projects
|
Qbs Projects
|
||||||
|
|
||||||
* Fixed duplicate include paths (QTCREATORBUG-17381)
|
* Fixed duplicate include paths (QTCREATORBUG-17381)
|
||||||
|
* Fixed that generated object files where shown in Locator and Advanced Search
|
||||||
|
(QTCREATORBUG-17382)
|
||||||
|
|
||||||
|
C++ Support
|
||||||
|
|
||||||
|
* Fixed that inline namespaces were used in generated code (QTCREATORBUG-16086)
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
|
||||||
|
* GDB
|
||||||
|
* Fixed performance regression when resolving enum names
|
||||||
|
(QTCREATORBUG-17598)
|
||||||
|
|
||||||
Version Control Systems
|
Version Control Systems
|
||||||
|
|
||||||
@@ -23,3 +43,20 @@ Version Control Systems
|
|||||||
when using `git grep`
|
when using `git grep`
|
||||||
* Fixed discarding changes before performing other actions (such as Pull)
|
* Fixed discarding changes before performing other actions (such as Pull)
|
||||||
(QTCREATORBUG-17156)
|
(QTCREATORBUG-17156)
|
||||||
|
|
||||||
|
Platform Specific
|
||||||
|
|
||||||
|
Android
|
||||||
|
|
||||||
|
* Fixed that installing package with lower version number than already installed
|
||||||
|
package silently failed (QTCREATORBUG-17789)
|
||||||
|
* Fixed crash when re-running application after stopping it (QTCREATORBUG-17691)
|
||||||
|
|
||||||
|
iOS
|
||||||
|
|
||||||
|
* Fixed running applications on devices with iOS 10.1 and later
|
||||||
|
(QTCREATORBUG-17818)
|
||||||
|
|
||||||
|
BareMetal
|
||||||
|
|
||||||
|
* Fixed debugging with OpenOCD in TCP/IP mode on Windows (QTCREATORBUG-17765)
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ defines = Q_QDOC \
|
|||||||
Q_BYTE_ORDER \
|
Q_BYTE_ORDER \
|
||||||
QT_DEPRECATED \
|
QT_DEPRECATED \
|
||||||
Q_NO_USING_KEYWORD \
|
Q_NO_USING_KEYWORD \
|
||||||
__cplusplus \
|
__cplusplus
|
||||||
$QTC_LICENSE_TYPE
|
|
||||||
|
|
||||||
versionsym = QT_VERSION_STR
|
versionsym = QT_VERSION_STR
|
||||||
|
|||||||
@@ -38,27 +38,26 @@ sourcedirs = . \
|
|||||||
headers.fileextensions = "*.h"
|
headers.fileextensions = "*.h"
|
||||||
sources.fileextensions = "*.cpp *.qdoc"
|
sources.fileextensions = "*.cpp *.qdoc"
|
||||||
|
|
||||||
imagedirs = $SRCDIR/api/images $SRCDIR/images $SRCDIR/templates/images
|
imagedirs = ../api/images ../images ../templates/images
|
||||||
outputdir = $OUTDIR
|
exampledirs = ../api/examples
|
||||||
exampledirs = $SRCDIR/api/examples
|
|
||||||
|
|
||||||
indexes += $QDOC_INDEX_DIR/qtwidgets/qtwidgets.index \
|
depends += qtwidgets \
|
||||||
$QDOC_INDEX_DIR/qtcore/qtcore.index \
|
qtcore \
|
||||||
$QDOC_INDEX_DIR/qtqml/qtqml.index \
|
qtqml \
|
||||||
$QDOC_INDEX_DIR/qtquick/qtquick.index \
|
qtquick \
|
||||||
$QDOC_INDEX_DIR/qmake/qmake.index \
|
qmake \
|
||||||
$QDOC_INDEX_DIR/qtdesigner/qtdesigner.index \
|
qtdesigner \
|
||||||
$QDOC_INDEX_DIR/qtdoc/qtdoc.index \
|
qtdoc \
|
||||||
$QDOC_INDEX_DIR/qtgui/qtgui.index \
|
qtgui \
|
||||||
$QDOC_INDEX_DIR/qthelp/qthelp.index \
|
qthelp \
|
||||||
$QDOC_INDEX_DIR/qtquickcontrols/qtquickcontrols.index \
|
qtquickcontrols \
|
||||||
$QDOC_INDEX_DIR/qtquicklayouts/qtquicklayouts.index \
|
qtquicklayouts \
|
||||||
$QDOC_INDEX_DIR/qtlinguist/qtlinguist.index \
|
qtlinguist \
|
||||||
$QDOC_INDEX_DIR/qtscript/qtscript.index \
|
qtscript \
|
||||||
$QDOC_INDEX_DIR/qtsensors/qtsensors.index \
|
qtsensors \
|
||||||
$QDOC_INDEX_DIR/qtuitools/qtuitools.index \
|
qtuitools \
|
||||||
$QDOC_INDEX_DIR/qtwebkit/qtwebkit.index \
|
qtwebkit \
|
||||||
$QDOC_INDEX_DIR/qtxml/qtxml.index
|
qtxml
|
||||||
|
|
||||||
include(macros.qdocconf)
|
include(macros.qdocconf)
|
||||||
include(qt-cpp-ignore.qdocconf)
|
include(qt-cpp-ignore.qdocconf)
|
||||||
|
|||||||
@@ -3,51 +3,49 @@ description = "Qt Creator Manual"
|
|||||||
url = http://doc.qt.io/qtcreator
|
url = http://doc.qt.io/qtcreator
|
||||||
|
|
||||||
headerdirs =
|
headerdirs =
|
||||||
sourcedirs = $SRCDIR/src
|
sourcedirs = ../src
|
||||||
imagedirs = $SRCDIR/images \
|
imagedirs = ../images \
|
||||||
$SRCDIR/templates/images \
|
../templates/images \
|
||||||
$SRCDIR/../src/libs/qmleditorwidgets/images \
|
../../src/libs/qmleditorwidgets/images \
|
||||||
$SRCDIR/../src/libs/utils/images \
|
../../src/libs/utils/images \
|
||||||
$SRCDIR/../src/plugins/android/images \
|
../../src/plugins/android/images \
|
||||||
$SRCDIR/../src/plugins/autotest/images \
|
../../src/plugins/autotest/images \
|
||||||
$SRCDIR/../src/plugins/classview/images \
|
../../src/plugins/classview/images \
|
||||||
$SRCDIR/../src/plugins/coreplugin/images \
|
../../src/plugins/coreplugin/images \
|
||||||
$SRCDIR/../src/plugins/debugger/images \
|
../../src/plugins/debugger/images \
|
||||||
$SRCDIR/../src/plugins/diffeditor/images \
|
../../src/plugins/diffeditor/images \
|
||||||
$SRCDIR/../src/plugins/help/images \
|
../../src/plugins/help/images \
|
||||||
$SRCDIR/../src/plugins/projectexplorer/images \
|
../../src/plugins/projectexplorer/images \
|
||||||
$SRCDIR/../src/plugins/qmldesigner/components/formeditor \
|
../../src/plugins/qmldesigner/components/formeditor \
|
||||||
$SRCDIR/../src/plugins/qmldesigner/components/navigator \
|
../../src/plugins/qmldesigner/components/navigator \
|
||||||
$SRCDIR/../src/plugins/scxmleditor/common/images \
|
../../src/plugins/scxmleditor/common/images \
|
||||||
$SRCDIR/../src/plugins/texteditor/images
|
../../src/plugins/texteditor/images
|
||||||
|
|
||||||
outputdir = $OUTDIR
|
exampledirs = ../examples
|
||||||
exampledirs = $SRCDIR/examples
|
|
||||||
examples.fileextensions += *.qml *.svg
|
examples.fileextensions += *.qml *.svg
|
||||||
|
|
||||||
HTML.extraimages = images/commercial.png
|
HTML.extraimages = images/commercial.png
|
||||||
qhp.QtCreator.extraFiles = images/commercial.png
|
qhp.QtCreator.extraFiles = images/commercial.png
|
||||||
|
|
||||||
|
depends += qtwidgets \
|
||||||
indexes += $QDOC_INDEX_DIR/qtwidgets/qtwidgets.index \
|
qtcore \
|
||||||
$QDOC_INDEX_DIR/qtcore/qtcore.index \
|
qtqml \
|
||||||
$QDOC_INDEX_DIR/qtqml/qtqml.index \
|
qtquick \
|
||||||
$QDOC_INDEX_DIR/qtquick/qtquick.index \
|
qmake \
|
||||||
$QDOC_INDEX_DIR/qmake/qmake.index \
|
qtdesigner \
|
||||||
$QDOC_INDEX_DIR/qtdesigner/qtdesigner.index \
|
qtdoc \
|
||||||
$QDOC_INDEX_DIR/qtdoc/qtdoc.index \
|
qtgui \
|
||||||
$QDOC_INDEX_DIR/qtgui/qtgui.index \
|
qthelp \
|
||||||
$QDOC_INDEX_DIR/qthelp/qthelp.index \
|
qtquickcontrols \
|
||||||
$QDOC_INDEX_DIR/qtquickcontrols/qtquickcontrols.index \
|
qtquickcontrols2 \
|
||||||
$QDOC_INDEX_DIR/qtquickcontrols2/qtquickcontrols2.index \
|
qtquickextras \
|
||||||
$QDOC_INDEX_DIR/qtquickextras/qtquickextras.index \
|
qtlinguist \
|
||||||
$QDOC_INDEX_DIR/qtlinguist/qtlinguist.index \
|
qtscript \
|
||||||
$QDOC_INDEX_DIR/qtscript/qtscript.index \
|
qtscxml \
|
||||||
$QDOC_INDEX_DIR/qtscxml/qtscxml.index \
|
qtsensors \
|
||||||
$QDOC_INDEX_DIR/qtsensors/qtsensors.index \
|
qttestlib \
|
||||||
$QDOC_INDEX_DIR/qttestlib/qttestlib.index \
|
qtuitools \
|
||||||
$QDOC_INDEX_DIR/qtuitools/qtuitools.index \
|
qtxml
|
||||||
$QDOC_INDEX_DIR/qtxml/qtxml.index
|
|
||||||
|
|
||||||
include(macros.qdocconf)
|
include(macros.qdocconf)
|
||||||
include(qt-cpp-ignore.qdocconf)
|
include(qt-cpp-ignore.qdocconf)
|
||||||
@@ -67,7 +65,7 @@ qhp.QtCreator.indexRoot =
|
|||||||
|
|
||||||
qhp.QtCreator.subprojects = manual
|
qhp.QtCreator.subprojects = manual
|
||||||
qhp.QtCreator.subprojects.manual.title = Qt Creator Manual
|
qhp.QtCreator.subprojects.manual.title = Qt Creator Manual
|
||||||
qhp.QtCreator.subprojects.manual.indexTitle = Qt Creator Manual
|
qhp.QtCreator.subprojects.manual.indexTitle = Qt Creator TOC
|
||||||
qhp.QtCreator.subprojects.manual.type = manual
|
qhp.QtCreator.subprojects.manual.type = manual
|
||||||
|
|
||||||
# Doxygen compatibility commands
|
# Doxygen compatibility commands
|
||||||
|
|||||||
90
doc/doc.pri
90
doc/doc.pri
@@ -1,89 +1,9 @@
|
|||||||
HELPGENERATOR = $$shell_path($$[QT_INSTALL_BINS]/qhelpgenerator) -platform minimal
|
build_online_docs: \
|
||||||
QDOC_BIN = $$shell_path($$[QT_INSTALL_BINS]/qdoc)
|
QTC_DOCS = $$PWD/qtcreator-online.qdocconf $$PWD/api/qtcreator-dev-online.qdocconf
|
||||||
QDOC_GLOBAL = QT_INSTALL_DOCS=$$[QT_INSTALL_DOCS/src] QDOC_INDEX_DIR=$$[QT_INSTALL_DOCS]
|
else: \
|
||||||
COMPAT =
|
QTC_DOCS = $$PWD/qtcreator.qdocconf $$PWD/api/qtcreator-dev.qdocconf
|
||||||
|
|
||||||
VERSION_TAG = $$replace(QTCREATOR_VERSION, "[-.]", )
|
include(../docs.pri)
|
||||||
|
|
||||||
isEmpty(LICENSE_TYPE):LICENSE_TYPE=opensource
|
|
||||||
|
|
||||||
# unset the installdir for qdoc, so we force generation
|
|
||||||
# of URLs for the links to the Qt documentation
|
|
||||||
QMAKE_DOCS_INSTALLDIR =
|
|
||||||
|
|
||||||
defineReplace(cmdEnv) {
|
|
||||||
!equals(QMAKE_DIR_SEP, /): 1 ~= s,^(.*)$,(set \\1) &&,g
|
|
||||||
return("$$1")
|
|
||||||
}
|
|
||||||
|
|
||||||
defineReplace(qdoc) {
|
|
||||||
return("$$cmdEnv(SRCDIR=$$PWD OUTDIR=$$1 QTC_VERSION=$$QTCREATOR_VERSION QTC_VERSION_TAG=$$VERSION_TAG QTC_LICENSE_TYPE=$$LICENSE_TYPE $$QDOC_GLOBAL) $$QDOC_BIN")
|
|
||||||
}
|
|
||||||
|
|
||||||
QHP_FILE = $$OUT_PWD/doc/html/qtcreator.qhp
|
|
||||||
QCH_FILE = $$IDE_DOC_PATH/qtcreator.qch
|
|
||||||
|
|
||||||
HELP_DEP_FILES = $$PWD/src/qtcreator.qdoc \
|
|
||||||
$$PWD/config/macros.qdocconf \
|
|
||||||
$$PWD/config/qt-cpp-ignore.qdocconf \
|
|
||||||
$$PWD/config/qt-defines.qdocconf
|
|
||||||
|
|
||||||
html_docs.commands = $$qdoc($$OUT_PWD/doc/html) $$PWD/qtcreator.qdocconf
|
|
||||||
html_docs.depends += $$HELP_DEP_FILES
|
|
||||||
html_docs.files = $$QHP_FILE
|
|
||||||
|
|
||||||
html_docs_online.commands = $$qdoc($$OUT_PWD/doc/html) $$PWD/qtcreator-online.qdocconf
|
|
||||||
html_docs_online.depends += $$HELP_DEP_FILES
|
|
||||||
|
|
||||||
qch_docs.commands = $$HELPGENERATOR -o \"$$QCH_FILE\" $$QHP_FILE
|
|
||||||
qch_docs.depends += html_docs
|
|
||||||
|
|
||||||
DEV_QHP_FILE = $$OUT_PWD/doc/html-dev/qtcreator-dev.qhp
|
|
||||||
DEV_QCH_FILE = $$IDE_DOC_PATH/qtcreator-dev.qch
|
|
||||||
|
|
||||||
DEV_HELP_DEP_FILES = \
|
|
||||||
$$PWD/api/qtcreator-api.qdoc \
|
|
||||||
$$PWD/api/coding-style.qdoc \
|
|
||||||
$$PWD/api/external-tool-spec.qdoc \
|
|
||||||
$$PWD/api/qtcreator-dev.qdoc \
|
|
||||||
$$PWD/api/qtcreator-dev-wizards.qdoc \
|
|
||||||
$$PWD/api/creating-plugins.qdoc \
|
|
||||||
$$PWD/api/getting-and-building.qdoc \
|
|
||||||
$$PWD/api/first-plugin.qdoc \
|
|
||||||
$$PWD/api/plugin-metadata.qdoc \
|
|
||||||
$$PWD/api/plugin-lifecycle.qdoc \
|
|
||||||
$$PWD/api/pluginmanager.qdoc \
|
|
||||||
$$PWD/api/qtcreator-documentation.qdoc \
|
|
||||||
$$PWD/api/qtcreator-ui-text.qdoc \
|
|
||||||
$$PWD/api/qtcreator-dev.qdocconf
|
|
||||||
|
|
||||||
dev_html_docs.commands = $$qdoc($$OUT_PWD/doc/html-dev) $$PWD/api/qtcreator-dev.qdocconf
|
|
||||||
dev_html_docs.depends += $$DEV_HELP_DEP_FILES
|
|
||||||
|
|
||||||
dev_html_docs_online.commands = $$qdoc($$OUT_PWD/doc/html-dev) $$PWD/api/qtcreator-dev-online.qdocconf
|
|
||||||
dev_html_docs_online.depends += $$DEV_HELP_DEP_FILES
|
|
||||||
|
|
||||||
dev_qch_docs.commands = $$HELPGENERATOR -o \"$$DEV_QCH_FILE\" $$DEV_QHP_FILE
|
|
||||||
dev_qch_docs.depends += dev_html_docs
|
|
||||||
|
|
||||||
inst_qch_docs.files = $$QCH_FILE
|
|
||||||
inst_qch_docs.path = $$INSTALL_DOC_PATH
|
|
||||||
inst_qch_docs.CONFIG += no_check_exist no_default_install
|
|
||||||
INSTALLS += inst_qch_docs
|
|
||||||
|
|
||||||
inst_dev_qch_docs.files = $$DEV_QCH_FILE
|
|
||||||
inst_dev_qch_docs.path = $$INSTALL_DOC_PATH
|
|
||||||
inst_dev_qch_docs.CONFIG += no_check_exist no_default_install
|
|
||||||
INSTALLS += inst_dev_qch_docs
|
|
||||||
|
|
||||||
install_docs.depends = install_inst_qch_docs install_inst_dev_qch_docs
|
|
||||||
QMAKE_EXTRA_TARGETS += install_docs
|
|
||||||
|
|
||||||
docs_online.depends = html_docs_online dev_html_docs_online
|
|
||||||
docs.depends = qch_docs dev_qch_docs
|
|
||||||
QMAKE_EXTRA_TARGETS += html_docs dev_html_docs html_docs_online dev_html_docs_online qch_docs dev_qch_docs docs docs_online
|
|
||||||
|
|
||||||
DISTFILES = $$HELP_DEP_FILES $$DEV_HELP_DEP_FILES
|
|
||||||
|
|
||||||
fixnavi.commands = \
|
fixnavi.commands = \
|
||||||
cd $$shell_path($$PWD) && \
|
cd $$shell_path($$PWD) && \
|
||||||
|
|||||||
@@ -74,8 +74,6 @@ for my $file (@files) {
|
|||||||
$inif = 0;
|
$inif = 0;
|
||||||
$skipping = 0;
|
$skipping = 0;
|
||||||
$define_skip = "";
|
$define_skip = "";
|
||||||
} elsif (keys(%title2page) == 1 && /^\h*\\section1 Table Of Contents/) {
|
|
||||||
$havetoc = 1;
|
|
||||||
} elsif ($havetoc && /^\h*\\list/) {
|
} elsif ($havetoc && /^\h*\\list/) {
|
||||||
$intoc++;
|
$intoc++;
|
||||||
} elsif ($intoc) {
|
} elsif ($intoc) {
|
||||||
@@ -110,7 +108,11 @@ for my $file (@files) {
|
|||||||
}
|
}
|
||||||
$title2type{$1} = $curtype;
|
$title2type{$1} = $curtype;
|
||||||
$title2page{$1} = $curpage;
|
$title2page{$1} = $curpage;
|
||||||
$doctitle = $1 if (!$doctitle);
|
if ($1 eq "Qt Creator TOC") {
|
||||||
|
$havetoc = 1;
|
||||||
|
} elsif (!$doctitle) {
|
||||||
|
$doctitle = $1;
|
||||||
|
}
|
||||||
$curpage = "";
|
$curpage = "";
|
||||||
$inhdr = 0;
|
$inhdr = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
216
doc/src/qtcreator-toc.qdoc
Normal file
216
doc/src/qtcreator-toc.qdoc
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2017 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Creator documentation.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Free Documentation License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Free
|
||||||
|
** Documentation License version 1.3 as published by the Free Software
|
||||||
|
** Foundation and appearing in the file included in the packaging of
|
||||||
|
** this file. Please review the following information to ensure
|
||||||
|
** the GNU Free Documentation License version 1.3 requirements
|
||||||
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\contentspage {Qt Creator}
|
||||||
|
\page qtcreator-toc.html
|
||||||
|
|
||||||
|
\title Qt Creator TOC
|
||||||
|
|
||||||
|
This file is used only for generating the TOC for the help file to be
|
||||||
|
displayed in the Qt Creator Help mode Contents view.
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \l{Getting Started}
|
||||||
|
\list
|
||||||
|
\li \l{IDE Overview}
|
||||||
|
\li \l{User Interface}
|
||||||
|
\li \l{Configuring Qt Creator}
|
||||||
|
\li \l{Building and Running an Example}
|
||||||
|
\li \l{Tutorials}
|
||||||
|
\list
|
||||||
|
\li \l{Creating a Qt Quick Application}
|
||||||
|
\li \l{Creating a Qt Widget Based Application}
|
||||||
|
\li \l{Creating a Mobile Application}
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
|
\li \l{Managing Projects}
|
||||||
|
\list
|
||||||
|
\li \l{Creating Projects}
|
||||||
|
\list
|
||||||
|
\li \l{Opening Projects}
|
||||||
|
\li \l{Adding Libraries to Projects}
|
||||||
|
\li \l{Adding New Custom Wizards}
|
||||||
|
\list
|
||||||
|
\li \l{Adding JSON-Based Wizards}
|
||||||
|
\li \l{Adding XML-Based Wizards}
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
|
\li \l{Using Version Control Systems}
|
||||||
|
\list
|
||||||
|
\li \l{Using Bazaar}
|
||||||
|
\li \l{Using ClearCase}
|
||||||
|
\li \l{Using CVS}
|
||||||
|
\li \l{Using Git}
|
||||||
|
\li \l{Using Mercurial}
|
||||||
|
\li \l{Using Perforce}
|
||||||
|
\li \l{Using Subversion}
|
||||||
|
\endlist
|
||||||
|
\li \l{Configuring Projects}
|
||||||
|
\list
|
||||||
|
\li \l{Adding Kits}
|
||||||
|
\li \l{Adding Qt Versions}
|
||||||
|
\li \l{Adding Compilers}
|
||||||
|
\li \l{Adding Debuggers}
|
||||||
|
\li \l{Specifying Build Settings}
|
||||||
|
\li \l{Specifying Run Settings}
|
||||||
|
\li \l{Specifying Editor Settings}
|
||||||
|
\li \l{Specifying Code Style Settings}
|
||||||
|
\li \l{Specifying Dependencies}
|
||||||
|
\li \l{Sharing Project Settings}
|
||||||
|
\endlist
|
||||||
|
\li \l{Managing Sessions}
|
||||||
|
\endlist
|
||||||
|
\li \l{Designing User Interfaces}
|
||||||
|
\list
|
||||||
|
\li \l{Developing Qt Quick Applications}
|
||||||
|
\list
|
||||||
|
\li \l {Creating Qt Quick Projects}
|
||||||
|
\li \l {Qt Quick UI Forms}
|
||||||
|
\li \l {Using Qt Quick Designer}
|
||||||
|
\li \l {Editing PathView Properties}
|
||||||
|
\li \l {Adding Connections}
|
||||||
|
\li \l {Creating Components}
|
||||||
|
\li \l {Creating Buttons}
|
||||||
|
\li \l {Creating Scalable Buttons and Borders}
|
||||||
|
\li \l {Creating Screens}
|
||||||
|
\li \l {Browsing ISO 7000 Icons}
|
||||||
|
\li \l {Exporting Designs from Graphics Software}
|
||||||
|
\li \l {Using QML Modules with Plugins}
|
||||||
|
\endlist
|
||||||
|
\li \l{Developing Widget Based Applications}
|
||||||
|
\list
|
||||||
|
\li \l{Adding Qt Designer Plugins}
|
||||||
|
\endlist
|
||||||
|
\li \l{Optimizing Applications for Mobile Devices}
|
||||||
|
\endlist
|
||||||
|
\li \l{Coding}
|
||||||
|
\list
|
||||||
|
\li \l{Writing Code}
|
||||||
|
\list
|
||||||
|
\li \l{Working in Edit Mode}
|
||||||
|
\li \l{Semantic Highlighting}
|
||||||
|
\li \l{Checking Code Syntax}
|
||||||
|
\li \l{Completing Code}
|
||||||
|
\li \l{Indenting Text or Code}
|
||||||
|
\li \l{Using Qt Quick Toolbars}
|
||||||
|
\li \l{Pasting and Fetching Code Snippets}
|
||||||
|
\li \l{Using Text Editing Macros}
|
||||||
|
\li \l{Comparing Files}
|
||||||
|
\li \l{Parsing C++ Files with the Clang Code Model}
|
||||||
|
\endlist
|
||||||
|
\li \l{Finding}
|
||||||
|
\list
|
||||||
|
\li \l{Finding and Replacing}
|
||||||
|
\li \l{Searching with the Locator}
|
||||||
|
\endlist
|
||||||
|
\li \l{Refactoring}
|
||||||
|
\li \l{Beautifying Source Code}
|
||||||
|
\li \l{Configuring the Editor}
|
||||||
|
\list
|
||||||
|
\li \l{Specifying Text Editor Settings}
|
||||||
|
\li \l{Using FakeVim Mode}
|
||||||
|
\endlist
|
||||||
|
\li \l{Editing MIME Types}
|
||||||
|
\li \l{Modeling}
|
||||||
|
\li \l{Editing State Charts}
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
\li \l{Building and Running}
|
||||||
|
\list
|
||||||
|
\li \l{Building for Multiple Platforms}
|
||||||
|
\li \l{Running on Multiple Platforms}
|
||||||
|
\li \l{Deploying to Mobile Devices}
|
||||||
|
\list
|
||||||
|
\li \l{Deploying Applications to Android Devices}
|
||||||
|
\li \l{Deploying Applications to Embedded Linux Devices}
|
||||||
|
\li \l{Deploying Applications to QNX Neutrino Devices}
|
||||||
|
\endlist
|
||||||
|
\li \l{Connecting Mobile Devices}
|
||||||
|
\list
|
||||||
|
\li \l{Connecting Android Devices}
|
||||||
|
\li \l{Connecting Bare Metal Devices}
|
||||||
|
\li \l{Connecting Embedded Linux Devices}
|
||||||
|
\li \l{Connecting iOS Devices}
|
||||||
|
\li \l{Connecting QNX Devices}
|
||||||
|
\li \l{Connecting Windows Runtime Devices}
|
||||||
|
\endlist
|
||||||
|
\li \l{Customizing the Build Process}
|
||||||
|
\endlist
|
||||||
|
\li \l{Testing}
|
||||||
|
\list
|
||||||
|
\li \l{Debugging}
|
||||||
|
\list
|
||||||
|
\li \l{Setting Up Debugger}
|
||||||
|
\li \l{Launching the Debugger}
|
||||||
|
\li \l{Interacting with the Debugger}
|
||||||
|
\li \l{Using Debugging Helpers}
|
||||||
|
\li \l{Debugging Qt Quick Projects}
|
||||||
|
\li \l{Debugging a C++ Example Application}
|
||||||
|
\li \l{Debugging a Qt Quick Example Application}
|
||||||
|
\li \l{Troubleshooting Debugger}
|
||||||
|
\endlist
|
||||||
|
\li \l{Analyzing Code}
|
||||||
|
\list
|
||||||
|
\li \l{Profiling QML Applications}
|
||||||
|
\li \l{Using Valgrind Code Analysis Tools}
|
||||||
|
\list
|
||||||
|
\li \l{Detecting Memory Leaks}
|
||||||
|
\li \l{Profiling Function Execution}
|
||||||
|
\li \l{Running Valgrind Tools on External Applications}
|
||||||
|
\endlist
|
||||||
|
\li \l{Using Clang Static Analyzer}
|
||||||
|
\li \l{Analyzing CPU Usage}
|
||||||
|
\endlist
|
||||||
|
\li \l{Running Autotests}
|
||||||
|
\endlist
|
||||||
|
\li \l{Advanced Use}
|
||||||
|
\list
|
||||||
|
\li \l{Supported Platforms}
|
||||||
|
\li \l{Using Other Build Systems}
|
||||||
|
\list
|
||||||
|
\li \l{Setting Up CMake}
|
||||||
|
\li \l{Setting Up Qbs}
|
||||||
|
\li \l{Setting Up an Autotools Project}
|
||||||
|
\li \l{Setting Up a Generic Project}
|
||||||
|
\endlist
|
||||||
|
\li \l{Using Command Line Options}
|
||||||
|
\li \l{Keyboard Shortcuts}
|
||||||
|
\li \l{Using External Tools}
|
||||||
|
\li \l{Showing Task List Files in Issues Pane}
|
||||||
|
\endlist
|
||||||
|
\li \l{Getting Help}
|
||||||
|
\list
|
||||||
|
\li \l{Using the Help Mode}
|
||||||
|
\li \l{FAQ}
|
||||||
|
\li \l{Tips and Tricks}
|
||||||
|
\li \l{Known Issues}
|
||||||
|
\li \l{Glossary}
|
||||||
|
\li \l{Technical Support}
|
||||||
|
\li \l{Acknowledgements}
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
@@ -132,189 +132,4 @@
|
|||||||
\l{http://lists.qt-project.org/mailman/listinfo/}
|
\l{http://lists.qt-project.org/mailman/listinfo/}
|
||||||
{lists.qt-project.org Mailing Lists}.
|
{lists.qt-project.org Mailing Lists}.
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
\omit
|
|
||||||
\section1 Table Of Contents
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li \l{Getting Started}
|
|
||||||
\list
|
|
||||||
\li \l{IDE Overview}
|
|
||||||
\li \l{User Interface}
|
|
||||||
\li \l{Configuring Qt Creator}
|
|
||||||
\li \l{Building and Running an Example}
|
|
||||||
\li \l{Tutorials}
|
|
||||||
\list
|
|
||||||
\li \l{Creating a Qt Quick Application}
|
|
||||||
\li \l{Creating a Qt Widget Based Application}
|
|
||||||
\li \l{Creating a Mobile Application}
|
|
||||||
\endlist
|
|
||||||
\endlist
|
|
||||||
\li \l{Managing Projects}
|
|
||||||
\list
|
|
||||||
\li \l{Creating Projects}
|
|
||||||
\list
|
|
||||||
\li \l{Opening Projects}
|
|
||||||
\li \l{Adding Libraries to Projects}
|
|
||||||
\li \l{Adding New Custom Wizards}
|
|
||||||
\list
|
|
||||||
\li \l{Adding JSON-Based Wizards}
|
|
||||||
\li \l{Adding XML-Based Wizards}
|
|
||||||
\endlist
|
|
||||||
\endlist
|
|
||||||
\li \l{Using Version Control Systems}
|
|
||||||
\list
|
|
||||||
\li \l{Using Bazaar}
|
|
||||||
\li \l{Using ClearCase}
|
|
||||||
\li \l{Using CVS}
|
|
||||||
\li \l{Using Git}
|
|
||||||
\li \l{Using Mercurial}
|
|
||||||
\li \l{Using Perforce}
|
|
||||||
\li \l{Using Subversion}
|
|
||||||
\endlist
|
|
||||||
\li \l{Configuring Projects}
|
|
||||||
\list
|
|
||||||
\li \l{Adding Kits}
|
|
||||||
\li \l{Adding Qt Versions}
|
|
||||||
\li \l{Adding Compilers}
|
|
||||||
\li \l{Adding Debuggers}
|
|
||||||
\li \l{Specifying Build Settings}
|
|
||||||
\li \l{Specifying Run Settings}
|
|
||||||
\li \l{Specifying Editor Settings}
|
|
||||||
\li \l{Specifying Code Style Settings}
|
|
||||||
\li \l{Specifying Dependencies}
|
|
||||||
\li \l{Sharing Project Settings}
|
|
||||||
\endlist
|
|
||||||
\li \l{Managing Sessions}
|
|
||||||
\endlist
|
|
||||||
\li \l{Designing User Interfaces}
|
|
||||||
\list
|
|
||||||
\li \l{Developing Qt Quick Applications}
|
|
||||||
\list
|
|
||||||
\li \l {Creating Qt Quick Projects}
|
|
||||||
\li \l {Qt Quick UI Forms}
|
|
||||||
\li \l {Using Qt Quick Designer}
|
|
||||||
\li \l {Editing PathView Properties}
|
|
||||||
\li \l {Adding Connections}
|
|
||||||
\li \l {Creating Components}
|
|
||||||
\li \l {Creating Buttons}
|
|
||||||
\li \l {Creating Scalable Buttons and Borders}
|
|
||||||
\li \l {Creating Screens}
|
|
||||||
\li \l {Browsing ISO 7000 Icons}
|
|
||||||
\li \l {Exporting Designs from Graphics Software}
|
|
||||||
\li \l {Using QML Modules with Plugins}
|
|
||||||
\endlist
|
|
||||||
\li \l{Developing Widget Based Applications}
|
|
||||||
\list
|
|
||||||
\li \l{Adding Qt Designer Plugins}
|
|
||||||
\endlist
|
|
||||||
\li \l{Optimizing Applications for Mobile Devices}
|
|
||||||
\endlist
|
|
||||||
\li \l{Coding}
|
|
||||||
\list
|
|
||||||
\li \l{Writing Code}
|
|
||||||
\list
|
|
||||||
\li \l{Working in Edit Mode}
|
|
||||||
\li \l{Semantic Highlighting}
|
|
||||||
\li \l{Checking Code Syntax}
|
|
||||||
\li \l{Completing Code}
|
|
||||||
\li \l{Indenting Text or Code}
|
|
||||||
\li \l{Using Qt Quick Toolbars}
|
|
||||||
\li \l{Pasting and Fetching Code Snippets}
|
|
||||||
\li \l{Using Text Editing Macros}
|
|
||||||
\li \l{Comparing Files}
|
|
||||||
\li \l{Parsing C++ Files with the Clang Code Model}
|
|
||||||
\endlist
|
|
||||||
\li \l{Finding}
|
|
||||||
\list
|
|
||||||
\li \l{Finding and Replacing}
|
|
||||||
\li \l{Searching with the Locator}
|
|
||||||
\endlist
|
|
||||||
\li \l{Refactoring}
|
|
||||||
\li \l{Beautifying Source Code}
|
|
||||||
\li \l{Configuring the Editor}
|
|
||||||
\list
|
|
||||||
\li \l{Specifying Text Editor Settings}
|
|
||||||
\li \l{Using FakeVim Mode}
|
|
||||||
\endlist
|
|
||||||
\li \l{Editing MIME Types}
|
|
||||||
\li \l{Modeling}
|
|
||||||
\li \l{Editing State Charts}
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
\li \l{Building and Running}
|
|
||||||
\list
|
|
||||||
\li \l{Building for Multiple Platforms}
|
|
||||||
\li \l{Running on Multiple Platforms}
|
|
||||||
\li \l{Deploying to Mobile Devices}
|
|
||||||
\list
|
|
||||||
\li \l{Deploying Applications to Android Devices}
|
|
||||||
\li \l{Deploying Applications to Embedded Linux Devices}
|
|
||||||
\li \l{Deploying Applications to QNX Neutrino Devices}
|
|
||||||
\endlist
|
|
||||||
\li \l{Connecting Mobile Devices}
|
|
||||||
\list
|
|
||||||
\li \l{Connecting Android Devices}
|
|
||||||
\li \l{Connecting Bare Metal Devices}
|
|
||||||
\li \l{Connecting Embedded Linux Devices}
|
|
||||||
\li \l{Connecting iOS Devices}
|
|
||||||
\li \l{Connecting QNX Devices}
|
|
||||||
\li \l{Connecting Windows Runtime Devices}
|
|
||||||
\endlist
|
|
||||||
\li \l{Customizing the Build Process}
|
|
||||||
\endlist
|
|
||||||
\li \l{Testing}
|
|
||||||
\list
|
|
||||||
\li \l{Debugging}
|
|
||||||
\list
|
|
||||||
\li \l{Setting Up Debugger}
|
|
||||||
\li \l{Launching the Debugger}
|
|
||||||
\li \l{Interacting with the Debugger}
|
|
||||||
\li \l{Using Debugging Helpers}
|
|
||||||
\li \l{Debugging Qt Quick Projects}
|
|
||||||
\li \l{Debugging a C++ Example Application}
|
|
||||||
\li \l{Debugging a Qt Quick Example Application}
|
|
||||||
\li \l{Troubleshooting Debugger}
|
|
||||||
\endlist
|
|
||||||
\li \l{Analyzing Code}
|
|
||||||
\list
|
|
||||||
\li \l{Profiling QML Applications}
|
|
||||||
\li \l{Using Valgrind Code Analysis Tools}
|
|
||||||
\list
|
|
||||||
\li \l{Detecting Memory Leaks}
|
|
||||||
\li \l{Profiling Function Execution}
|
|
||||||
\li \l{Running Valgrind Tools on External Applications}
|
|
||||||
\endlist
|
|
||||||
\li \l{Using Clang Static Analyzer}
|
|
||||||
\li \l{Analyzing CPU Usage}
|
|
||||||
\endlist
|
|
||||||
\li \l{Running Autotests}
|
|
||||||
\endlist
|
|
||||||
\li \l{Advanced Use}
|
|
||||||
\list
|
|
||||||
\li \l{Supported Platforms}
|
|
||||||
\li \l{Using Other Build Systems}
|
|
||||||
\list
|
|
||||||
\li \l{Setting Up CMake}
|
|
||||||
\li \l{Setting Up Qbs}
|
|
||||||
\li \l{Setting Up an Autotools Project}
|
|
||||||
\li \l{Setting Up a Generic Project}
|
|
||||||
\endlist
|
|
||||||
\li \l{Using Command Line Options}
|
|
||||||
\li \l{Keyboard Shortcuts}
|
|
||||||
\li \l{Using External Tools}
|
|
||||||
\li \l{Showing Task List Files in Issues Pane}
|
|
||||||
\endlist
|
|
||||||
\li \l{Getting Help}
|
|
||||||
\list
|
|
||||||
\li \l{Using the Help Mode}
|
|
||||||
\li \l{FAQ}
|
|
||||||
\li \l{Tips and Tricks}
|
|
||||||
\li \l{Known Issues}
|
|
||||||
\li \l{Glossary}
|
|
||||||
\li \l{Technical Support}
|
|
||||||
\li \l{Acknowledgements}
|
|
||||||
\endlist
|
|
||||||
\endlist
|
|
||||||
\endomit
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
54
docs.pri
Normal file
54
docs.pri
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# adapted from qt_docs.prf
|
||||||
|
|
||||||
|
isEmpty(VERSION): error("Include qtcreator.pri before including docs.pri!")
|
||||||
|
|
||||||
|
qtcver.name = QTC_VERSION
|
||||||
|
qtcver.value = $$VERSION
|
||||||
|
qtcvertag.name = QTC_VERSION_TAG
|
||||||
|
qtcvertag.value = $$replace(qtcver.value, \.,)
|
||||||
|
qtdocs.name = QT_INSTALL_DOCS
|
||||||
|
qtdocs.value = $$[QT_INSTALL_DOCS/src]
|
||||||
|
qdocindex.name = QDOC_INDEX_DIR
|
||||||
|
qdocindex.value = $$[QT_INSTALL_DOCS]
|
||||||
|
qtcdocsdir.name = QTC_DOCS_DIR
|
||||||
|
qtcdocsdir.value = $$IDE_SOURCE_TREE/doc
|
||||||
|
QT_TOOL_ENV = qtcver qtcvertag qtdocs qdocindex qtcdocsdir
|
||||||
|
qtPrepareTool(QDOC, qdoc)
|
||||||
|
QT_TOOL_ENV =
|
||||||
|
|
||||||
|
!build_online_docs: qtPrepareTool(QHELPGENERATOR, qhelpgenerator)
|
||||||
|
|
||||||
|
QTC_DOCS_BASE_OUTDIR = $$OUT_PWD/doc
|
||||||
|
DOC_INDEXES = -indexdir $$shell_quote($$[QT_INSTALL_DOCS]) \
|
||||||
|
-indexdir $$shell_quote($$IDE_BUILD_TREE/doc)
|
||||||
|
|
||||||
|
for (qtc_doc, QTC_DOCS) {
|
||||||
|
!exists($$qtc_doc): error("Cannot find documentation specification file $$qtc_doc")
|
||||||
|
QTC_DOCS_TARGET = $$replace(qtc_doc, ^(.*/)?(.*)\\.qdocconf$, \\2)
|
||||||
|
QTC_DOCS_TARGETDIR = $$QTC_DOCS_TARGET
|
||||||
|
QTC_DOCS_OUTPUTDIR = $$QTC_DOCS_BASE_OUTDIR/$$QTC_DOCS_TARGETDIR
|
||||||
|
|
||||||
|
!isEmpty(html_docs.commands): html_docs.commands += &&
|
||||||
|
html_docs.commands += $$QDOC -outputdir $$shell_quote($$QTC_DOCS_OUTPUTDIR) $$qtc_doc $$DOC_INDEXES
|
||||||
|
|
||||||
|
!build_online_docs {
|
||||||
|
!isEmpty(qch_docs.commands): qch_docs.commands += &&
|
||||||
|
qch_docs.commands += $$QHELPGENERATOR $$shell_quote($$QTC_DOCS_OUTPUTDIR/$${QTC_DOCS_TARGET}.qhp) -o $$shell_quote($$IDE_DOC_PATH/$${QTC_DOCS_TARGET}.qch)
|
||||||
|
|
||||||
|
inst_qch_docs.files += $$IDE_DOC_PATH/$${QTC_DOCS_TARGET}.qch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
!build_online_docs {
|
||||||
|
qch_docs.depends = html_docs
|
||||||
|
inst_qch_docs.path = $$INSTALL_DOC_PATH
|
||||||
|
inst_qch_docs.CONFIG += no_check_exist no_default_install no_build
|
||||||
|
install_docs.depends = install_inst_qch_docs
|
||||||
|
docs.depends = qch_docs
|
||||||
|
INSTALLS += inst_qch_docs
|
||||||
|
QMAKE_EXTRA_TARGETS += qch_docs install_docs
|
||||||
|
} else {
|
||||||
|
docs.depends = html_docs
|
||||||
|
}
|
||||||
|
|
||||||
|
QMAKE_EXTRA_TARGETS += html_docs docs
|
||||||
@@ -19,7 +19,6 @@ Product {
|
|||||||
|
|
||||||
property string versionTag: qtc.qtcreator_version.replace(/\.|-/g, "")
|
property string versionTag: qtc.qtcreator_version.replace(/\.|-/g, "")
|
||||||
Qt.core.qdocEnvironment: [
|
Qt.core.qdocEnvironment: [
|
||||||
"QTC_LICENSE_TYPE=" + project.licenseType,
|
|
||||||
"QTC_VERSION=" + qtc.qtcreator_version,
|
"QTC_VERSION=" + qtc.qtcreator_version,
|
||||||
"QTC_VERSION_TAG=" + qtc.qtcreator_version,
|
"QTC_VERSION_TAG=" + qtc.qtcreator_version,
|
||||||
"SRCDIR=" + sourceDirectory,
|
"SRCDIR=" + sourceDirectory,
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ Project {
|
|||||||
name: "Qt Creator"
|
name: "Qt Creator"
|
||||||
minimumQbsVersion: "1.6.0"
|
minimumQbsVersion: "1.6.0"
|
||||||
property bool withAutotests: qbs.buildVariant === "debug"
|
property bool withAutotests: qbs.buildVariant === "debug"
|
||||||
property string licenseType: "opensource"
|
|
||||||
property path ide_source_tree: path
|
property path ide_source_tree: path
|
||||||
property pathList additionalPlugins: []
|
property pathList additionalPlugins: []
|
||||||
property pathList additionalLibs: []
|
property pathList additionalLibs: []
|
||||||
|
|||||||
@@ -2427,15 +2427,17 @@ static bool dumpQDateTime(const SymbolGroupValue &v, std::wostream &str, std::st
|
|||||||
int status = 0;
|
int status = 0;
|
||||||
int tiVersion = QtInfo::qtTypeInfoVersion(v.context());
|
int tiVersion = QtInfo::qtTypeInfoVersion(v.context());
|
||||||
if (tiVersion > 10) {
|
if (tiVersion > 10) {
|
||||||
|
const ULONG64 address =
|
||||||
|
SymbolGroupValue::isPointerType(v.type()) ? v.pointerValue() : v.address();
|
||||||
const ULONG64 data = SymbolGroupValue::readUnsignedValue(
|
const ULONG64 data = SymbolGroupValue::readUnsignedValue(
|
||||||
v.context().dataspaces, v.address(), 8, 0);
|
v.context().dataspaces, address, 8, 0);
|
||||||
status = data & 0xFF;
|
status = data & 0xFF;
|
||||||
ULONG64 timeZone = 0;
|
ULONG64 timeZone = 0;
|
||||||
if (status & 0x01) {
|
if (status & 0x01) {
|
||||||
msecs = data >> 8;
|
msecs = data >> 8;
|
||||||
spec = (status & 0x30) >> 4;
|
spec = (status & 0x30) >> 4;
|
||||||
} else {
|
} else {
|
||||||
ULONG64 addr = SymbolGroupValue::readPointerValue(v.context().dataspaces, v.address());
|
ULONG64 addr = SymbolGroupValue::readPointerValue(v.context().dataspaces, address);
|
||||||
msecs = SymbolGroupValue::readSignedValue(v.context().dataspaces, addr, 8, 0);
|
msecs = SymbolGroupValue::readSignedValue(v.context().dataspaces, addr, 8, 0);
|
||||||
|
|
||||||
addr += 8 /*int64*/;
|
addr += 8 /*int64*/;
|
||||||
@@ -3222,7 +3224,7 @@ unsigned dumpSimpleType(SymbolGroupNode *n, const SymbolGroupValueContext &ctx,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rc != SymbolGroupNode::SimpleDumperFailed && SymbolGroupValue::isPointerType(v.type()))
|
if (rc != SymbolGroupNode::SimpleDumperFailed && SymbolGroupValue::isPointerType(v.type()) && encoding->empty())
|
||||||
str << L" @" << std::showbase << std::hex << v.pointerValue() << std::dec << std::noshowbase;
|
str << L" @" << std::showbase << std::hex << v.pointerValue() << std::dec << std::noshowbase;
|
||||||
|
|
||||||
if (rc == SymbolGroupNode::SimpleDumperOk)
|
if (rc == SymbolGroupNode::SimpleDumperOk)
|
||||||
|
|||||||
@@ -160,10 +160,13 @@ Command ArtisticStyle::command(const QString &cfgFile) const
|
|||||||
command.addOption("-q");
|
command.addOption("-q");
|
||||||
command.addOption("--options=" + cfgFile);
|
command.addOption("--options=" + cfgFile);
|
||||||
|
|
||||||
if (m_settings->version() > ArtisticStyleSettings::Version_2_03) {
|
const int version = m_settings->version();
|
||||||
|
if (version > ArtisticStyleSettings::Version_2_03) {
|
||||||
command.setProcessing(Command::PipeProcessing);
|
command.setProcessing(Command::PipeProcessing);
|
||||||
command.setPipeAddsNewline(true);
|
if (version == ArtisticStyleSettings::Version_2_04)
|
||||||
|
command.setPipeAddsNewline(true);
|
||||||
command.setReturnsCRLF(Utils::HostOsInfo::isWindowsHost());
|
command.setReturnsCRLF(Utils::HostOsInfo::isWindowsHost());
|
||||||
|
command.addOption("-z2");
|
||||||
} else {
|
} else {
|
||||||
command.addOption("%file");
|
command.addOption("%file");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ class ArtisticStyleSettings : public AbstractSettings
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
enum ArtisticStyleVersion {
|
enum ArtisticStyleVersion {
|
||||||
Version_2_03 = 203
|
Version_2_03 = 203,
|
||||||
|
Version_2_04 = 204
|
||||||
};
|
};
|
||||||
|
|
||||||
ArtisticStyleSettings();
|
ArtisticStyleSettings();
|
||||||
|
|||||||
@@ -574,15 +574,32 @@ void QmlEngine::notifyEngineRemoteSetupFinished(const RemoteSetupResult &result)
|
|||||||
if (result.qmlServerPort.isValid())
|
if (result.qmlServerPort.isValid())
|
||||||
runParameters().qmlServer.port = result.qmlServerPort;
|
runParameters().qmlServer.port = result.qmlServerPort;
|
||||||
|
|
||||||
notifyEngineSetupOk();
|
switch (state()) {
|
||||||
|
case InferiorSetupOk:
|
||||||
|
// FIXME: This is not a legal transition, but we need to
|
||||||
|
// get to EngineSetupOk somehow from InferiorSetupOk.
|
||||||
|
// fallthrough. QTCREATORBUG-14089.
|
||||||
|
case EngineSetupRequested:
|
||||||
|
notifyEngineSetupOk();
|
||||||
|
break;
|
||||||
|
case EngineSetupOk:
|
||||||
|
case EngineRunRequested:
|
||||||
|
// QTCREATORBUG-17718: On Android while doing debugging in mixed mode, the QML debug engine
|
||||||
|
// sometimes reports EngineSetupOK after the EngineRunRequested thus overwriting the state
|
||||||
|
// which eventually results into app to waiting for the QML engine connection.
|
||||||
|
// Skipping the EngineSetupOK in aforementioned case.
|
||||||
|
// Nothing to do here. The setup is already done.
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
QTC_ASSERT(false, qDebug() << "Unexpected state" << state());
|
||||||
|
}
|
||||||
|
|
||||||
// The remote setup can take while especialy with mixed debugging.
|
// The remote setup can take while especialy with mixed debugging.
|
||||||
// Just waiting for 8 seconds is not enough. Increase the timeout
|
// Just waiting for 8 seconds is not enough. Increase the timeout
|
||||||
// to 60 s
|
// to 60 s
|
||||||
// In case we get an output the d->outputParser will start the connection.
|
// In case we get an output the d->outputParser will start the connection.
|
||||||
d->noDebugOutputTimer.setInterval(60000);
|
d->noDebugOutputTimer.setInterval(60000);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (isMasterEngine())
|
if (isMasterEngine())
|
||||||
QMessageBox::critical(ICore::dialogParent(), tr("Failed to start application"),
|
QMessageBox::critical(ICore::dialogParent(), tr("Failed to start application"),
|
||||||
tr("Application startup failed: %1").arg(result.reason));
|
tr("Application startup failed: %1").arg(result.reason));
|
||||||
|
|||||||
@@ -728,16 +728,13 @@ void GitClient::requestReload(const QString &documentId, const QString &source,
|
|||||||
|
|
||||||
IDocument *document = DiffEditorController::findOrCreateDocument(documentId, title);
|
IDocument *document = DiffEditorController::findOrCreateDocument(documentId, title);
|
||||||
QTC_ASSERT(document, return);
|
QTC_ASSERT(document, return);
|
||||||
DiffEditorController *controller = DiffEditorController::controller(document);
|
DiffEditorController *controller = factory(document);
|
||||||
if (!controller) {
|
QTC_ASSERT(controller, return);
|
||||||
controller = factory(document);
|
|
||||||
QTC_ASSERT(controller, return);
|
|
||||||
|
|
||||||
connect(controller, &DiffEditorController::chunkActionsRequested,
|
connect(controller, &DiffEditorController::chunkActionsRequested,
|
||||||
this, &GitClient::slotChunkActionsRequested, Qt::DirectConnection);
|
this, &GitClient::slotChunkActionsRequested, Qt::DirectConnection);
|
||||||
connect(controller, &DiffEditorController::requestInformationForCommit,
|
connect(controller, &DiffEditorController::requestInformationForCommit,
|
||||||
this, &GitClient::branchesForCommit);
|
this, &GitClient::branchesForCommit);
|
||||||
}
|
|
||||||
|
|
||||||
VcsBasePlugin::setSource(document, sourceCopy);
|
VcsBasePlugin::setSource(document, sourceCopy);
|
||||||
EditorManager::activateEditorForDocument(document);
|
EditorManager::activateEditorForDocument(document);
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ typedef int (MDEV_API *AMDeviceSecureInstallApplicationPtr)(int, AMDeviceRef, CF
|
|||||||
namespace Ios {
|
namespace Ios {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
static const am_res_t kAMDMobileImageMounterImageMountFailed = 0xe8000076;
|
||||||
|
|
||||||
class MobileDeviceLib {
|
class MobileDeviceLib {
|
||||||
public :
|
public :
|
||||||
MobileDeviceLib();
|
MobileDeviceLib();
|
||||||
@@ -1033,12 +1035,13 @@ bool CommandSession::mountDeveloperDiskImage() {
|
|||||||
|
|
||||||
if (connectDevice()) {
|
if (connectDevice()) {
|
||||||
CFStringRef cfImgPath = imagePath.toCFString();
|
CFStringRef cfImgPath = imagePath.toCFString();
|
||||||
if (am_res_t result = lib()->deviceMountImage(device, cfImgPath, options, &mountCallback, 0)) {
|
am_res_t result = lib()->deviceMountImage(device, cfImgPath, options, &mountCallback, 0);
|
||||||
|
if (result == 0 || result == kAMDMobileImageMounterImageMountFailed) {
|
||||||
|
// Mounting succeeded or developer image already installed
|
||||||
|
success = true;
|
||||||
|
} else {
|
||||||
addError(QString::fromLatin1("Mount Developer Disk Image \"%1\" failed, AMDeviceMountImage returned %2 (0x%3)")
|
addError(QString::fromLatin1("Mount Developer Disk Image \"%1\" failed, AMDeviceMountImage returned %2 (0x%3)")
|
||||||
.arg(imagePath).arg(mobileDeviceErrorString(lib(), result)).arg(QString::number(result, 16)));
|
.arg(imagePath).arg(mobileDeviceErrorString(lib(), result)).arg(QString::number(result, 16)));
|
||||||
} else {
|
|
||||||
// Mounting succeeded.
|
|
||||||
success = true;
|
|
||||||
}
|
}
|
||||||
CFRelease(cfImgPath);
|
CFRelease(cfImgPath);
|
||||||
disconnectDevice();
|
disconnectDevice();
|
||||||
|
|||||||
@@ -110,6 +110,7 @@
|
|||||||
:New.templateCategoryView_QTreeView {name='templateCategoryView' type='QTreeView' visible='1' window=':New_Core::Internal::NewDialog'}
|
:New.templateCategoryView_QTreeView {name='templateCategoryView' type='QTreeView' visible='1' window=':New_Core::Internal::NewDialog'}
|
||||||
:New_Core::Internal::NewDialog {name='Core__Internal__NewDialog' type='Core::Internal::NewDialog' visible='1' windowTitle?='New*'}
|
:New_Core::Internal::NewDialog {name='Core__Internal__NewDialog' type='Core::Internal::NewDialog' visible='1' windowTitle?='New*'}
|
||||||
:Next_QPushButton {text~='(Next.*|Continue)' type='QPushButton' visible='1'}
|
:Next_QPushButton {text~='(Next.*|Continue)' type='QPushButton' visible='1'}
|
||||||
|
:No valid kits found._QLabel {text?='*No valid kits found.*' type='QLabel' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
:OpenDocuments_Widget {type='Core::Internal::OpenEditorsWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow' windowTitle='Open Documents'}
|
:OpenDocuments_Widget {type='Core::Internal::OpenEditorsWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow' windowTitle='Open Documents'}
|
||||||
:Options.Cancel_QPushButton {text='Cancel' type='QPushButton' unnamed='1' visible='1' window=':Options_Core::Internal::SettingsDialog'}
|
:Options.Cancel_QPushButton {text='Cancel' type='QPushButton' unnamed='1' visible='1' window=':Options_Core::Internal::SettingsDialog'}
|
||||||
:Options.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Options_Core::Internal::SettingsDialog'}
|
:Options.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Options_Core::Internal::SettingsDialog'}
|
||||||
@@ -176,6 +177,7 @@
|
|||||||
:QtSupport__Internal__QtVersionManager.errorLabel.QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='errorLabel' type='QLabel' visible='1'}
|
:QtSupport__Internal__QtVersionManager.errorLabel.QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='errorLabel' type='QLabel' visible='1'}
|
||||||
:QtSupport__Internal__QtVersionManager.qmake_QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='qmakePath' type='QLabel' visible='1'}
|
:QtSupport__Internal__QtVersionManager.qmake_QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='qmakePath' type='QLabel' visible='1'}
|
||||||
:QtVersionLabel_KitPage {container=':qt_tabwidget_stackedwidget_QWidget' text='Qt version:' type='QLabel' unnamed='1' visible='1'}
|
:QtVersionLabel_KitPage {container=':qt_tabwidget_stackedwidget_QWidget' text='Qt version:' type='QLabel' unnamed='1' visible='1'}
|
||||||
|
:Remove_QPushButton {container=':qt_tabwidget_stackedwidget_QScrollArea' text='Remove' type='QPushButton' unnamed='1' visible='1'}
|
||||||
:Restart required.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Restart required_QMessageBox'}
|
:Restart required.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Restart required_QMessageBox'}
|
||||||
:Restart required_QMessageBox {text='The language change will take effect after a restart of Qt Creator.' type='QMessageBox' unnamed='1' visible='1'}
|
:Restart required_QMessageBox {text='The language change will take effect after a restart of Qt Creator.' type='QMessageBox' unnamed='1' visible='1'}
|
||||||
:Revert to Saved.Proceed_QPushButton {text='Proceed' type='QPushButton' unnamed='1' visible='1' window=':Revert to Saved_QMessageBox'}
|
:Revert to Saved.Proceed_QPushButton {text='Proceed' type='QPushButton' unnamed='1' visible='1' window=':Revert to Saved_QMessageBox'}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import operator
|
|||||||
|
|
||||||
# for easier re-usage (because Python hasn't an enum type)
|
# for easier re-usage (because Python hasn't an enum type)
|
||||||
class Targets:
|
class Targets:
|
||||||
ALL_TARGETS = map(lambda x: 2 ** x , range(6))
|
ALL_TARGETS = tuple(map(lambda x: 2 ** x , range(6)))
|
||||||
|
|
||||||
(DESKTOP_474_GCC,
|
(DESKTOP_474_GCC,
|
||||||
DESKTOP_480_DEFAULT,
|
DESKTOP_480_DEFAULT,
|
||||||
@@ -37,11 +37,20 @@ class Targets:
|
|||||||
DESKTOP_541_GCC,
|
DESKTOP_541_GCC,
|
||||||
DESKTOP_561_DEFAULT) = ALL_TARGETS
|
DESKTOP_561_DEFAULT) = ALL_TARGETS
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def availableTargetClasses():
|
||||||
|
availableTargets = list(Targets.ALL_TARGETS)
|
||||||
|
if platform.system() in ('Windows', 'Microsoft'):
|
||||||
|
availableTargets.remove(Targets.EMBEDDED_LINUX)
|
||||||
|
elif platform.system() == 'Darwin':
|
||||||
|
availableTargets.remove(Targets.DESKTOP_541_GCC)
|
||||||
|
return availableTargets
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def desktopTargetClasses():
|
def desktopTargetClasses():
|
||||||
desktopTargets = (sum(Targets.ALL_TARGETS) & ~Targets.EMBEDDED_LINUX)
|
desktopTargets = Targets.availableTargetClasses()
|
||||||
if platform.system() == 'Darwin':
|
if Targets.EMBEDDED_LINUX in desktopTargets:
|
||||||
desktopTargets &= ~Targets.DESKTOP_541_GCC
|
desktopTargets.remove(Targets.EMBEDDED_LINUX)
|
||||||
return desktopTargets
|
return desktopTargets
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -79,14 +88,6 @@ class Targets:
|
|||||||
test.fatal("You've passed at least one unknown target!")
|
test.fatal("You've passed at least one unknown target!")
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def intToArray(targets):
|
|
||||||
return filter(lambda x: x & targets, Targets.ALL_TARGETS)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def arrayToInt(targetArr):
|
|
||||||
return reduce(operator.or_, targetArr, 0)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getDefaultKit():
|
def getDefaultKit():
|
||||||
return Targets.DESKTOP_531_DEFAULT
|
return Targets.DESKTOP_531_DEFAULT
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ def openCmakeProject(projectPath, buildDir):
|
|||||||
|
|
||||||
invokeMenuItem("File", "Open File or Project...")
|
invokeMenuItem("File", "Open File or Project...")
|
||||||
selectFromFileDialog(projectPath)
|
selectFromFileDialog(projectPath)
|
||||||
__chooseTargets__(0) # uncheck all
|
__chooseTargets__([]) # uncheck all
|
||||||
__chooseTargets__(Targets.DESKTOP_480_DEFAULT, additionalFunc=additionalFunction)
|
__chooseTargets__([Targets.DESKTOP_480_DEFAULT], additionalFunc=additionalFunction)
|
||||||
clickButton(waitForObject(":Qt Creator.Configure Project_QPushButton"))
|
clickButton(waitForObject(":Qt Creator.Configure Project_QPushButton"))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -344,7 +344,7 @@ def createEmptyQtProject(workingDir=None, projectName=None, targets=Targets.desk
|
|||||||
__createProjectHandleLastPage__()
|
__createProjectHandleLastPage__()
|
||||||
return projectName, checkedTargets
|
return projectName, checkedTargets
|
||||||
|
|
||||||
def createNewNonQtProject(workingDir=None, projectName=None, target=Targets.DESKTOP_474_GCC,
|
def createNewNonQtProject(workingDir=None, projectName=None, target=[Targets.DESKTOP_474_GCC],
|
||||||
plainC=False, cmake=False, qbs=False):
|
plainC=False, cmake=False, qbs=False):
|
||||||
if plainC:
|
if plainC:
|
||||||
template = "Plain C Application"
|
template = "Plain C Application"
|
||||||
@@ -373,7 +373,7 @@ def createNewNonQtProject(workingDir=None, projectName=None, target=Targets.DESK
|
|||||||
return projectName
|
return projectName
|
||||||
|
|
||||||
def createNewCPPLib(projectDir = None, projectName = None, className = None, fromWelcome = False,
|
def createNewCPPLib(projectDir = None, projectName = None, className = None, fromWelcome = False,
|
||||||
target = Targets.DESKTOP_474_GCC, isStatic = False, modules = ["QtCore"]):
|
target = [Targets.DESKTOP_474_GCC], isStatic = False, modules = ["QtCore"]):
|
||||||
available = __createProjectOrFileSelectType__(" Library", "C++ Library", fromWelcome, True)
|
available = __createProjectOrFileSelectType__(" Library", "C++ Library", fromWelcome, True)
|
||||||
if isStatic:
|
if isStatic:
|
||||||
libType = LibType.STATIC
|
libType = LibType.STATIC
|
||||||
@@ -391,7 +391,7 @@ def createNewCPPLib(projectDir = None, projectName = None, className = None, fro
|
|||||||
return checkedTargets, projectName, className
|
return checkedTargets, projectName, className
|
||||||
|
|
||||||
def createNewQtPlugin(projectDir=None, projectName=None, className=None, fromWelcome=False,
|
def createNewQtPlugin(projectDir=None, projectName=None, className=None, fromWelcome=False,
|
||||||
target=Targets.DESKTOP_474_GCC, baseClass="QGenericPlugin"):
|
target=[Targets.DESKTOP_474_GCC], baseClass="QGenericPlugin"):
|
||||||
available = __createProjectOrFileSelectType__(" Library", "C++ Library", fromWelcome, True)
|
available = __createProjectOrFileSelectType__(" Library", "C++ Library", fromWelcome, True)
|
||||||
if projectDir == None:
|
if projectDir == None:
|
||||||
projectDir = tempDir()
|
projectDir = tempDir()
|
||||||
@@ -403,25 +403,21 @@ def createNewQtPlugin(projectDir=None, projectName=None, className=None, fromWel
|
|||||||
__createProjectHandleLastPage__()
|
__createProjectHandleLastPage__()
|
||||||
return checkedTargets, projectName, className
|
return checkedTargets, projectName, className
|
||||||
|
|
||||||
# parameter target can be an OR'd value of Targets
|
# parameter target can be a list of Targets
|
||||||
# parameter availableTargets should be the result of __createProjectOrFileSelectType__()
|
# parameter availableTargets should be the result of __createProjectOrFileSelectType__()
|
||||||
# or use None as a fallback
|
# or use None as a fallback
|
||||||
# parameter additionalFunc function to be executed inside the detailed view of each chosen kit
|
# parameter additionalFunc function to be executed inside the detailed view of each chosen kit
|
||||||
# if present, 'Details' button will be clicked, function will be executed,
|
# if present, 'Details' button will be clicked, function will be executed,
|
||||||
# 'Details' button will be clicked again
|
# 'Details' button will be clicked again
|
||||||
def __chooseTargets__(targets=Targets.DESKTOP_474_GCC, availableTargets=None, additionalFunc=None):
|
def __chooseTargets__(targets=[Targets.DESKTOP_474_GCC], availableTargets=None, additionalFunc=None):
|
||||||
if availableTargets != None:
|
if availableTargets != None:
|
||||||
available = availableTargets
|
available = availableTargets
|
||||||
else:
|
else:
|
||||||
# following targets depend on the build environment - added for further/later tests
|
# following targets depend on the build environment - added for further/later tests
|
||||||
available = list(Targets.ALL_TARGETS)
|
available = Targets.availableTargetClasses()
|
||||||
if platform.system() in ('Windows', 'Microsoft'):
|
|
||||||
available.remove(Targets.EMBEDDED_LINUX)
|
|
||||||
elif platform.system() == 'Darwin':
|
|
||||||
available.remove(Targets.DESKTOP_541_GCC)
|
|
||||||
checkedTargets = []
|
checkedTargets = []
|
||||||
for current in available:
|
for current in available:
|
||||||
mustCheck = targets & current == current
|
mustCheck = current in targets
|
||||||
try:
|
try:
|
||||||
ensureChecked("{type='QCheckBox' text='%s' visible='1'}" % Targets.getStringForTarget(current),
|
ensureChecked("{type='QCheckBox' text='%s' visible='1'}" % Targets.getStringForTarget(current),
|
||||||
mustCheck, 3000)
|
mustCheck, 3000)
|
||||||
@@ -660,10 +656,7 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False):
|
|||||||
if platform.system() != 'Darwin':
|
if platform.system() != 'Darwin':
|
||||||
result.append(Targets.DESKTOP_541_GCC)
|
result.append(Targets.DESKTOP_541_GCC)
|
||||||
elif 'Platform independent' in text:
|
elif 'Platform independent' in text:
|
||||||
result = list(Targets.ALL_TARGETS)
|
result = Targets.desktopTargetClasses()
|
||||||
result.remove(Targets.EMBEDDED_LINUX)
|
|
||||||
if platform.system() == 'Darwin':
|
|
||||||
result.remove(Targets.DESKTOP_541_GCC)
|
|
||||||
else:
|
else:
|
||||||
test.warning("Returning None (__getSupportedPlatforms__())",
|
test.warning("Returning None (__getSupportedPlatforms__())",
|
||||||
"Parsed text: '%s'" % text)
|
"Parsed text: '%s'" % text)
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ def main():
|
|||||||
checkSimpleCppLib("SampleApp2", True)
|
checkSimpleCppLib("SampleApp2", True)
|
||||||
|
|
||||||
# Qt Plugin needs Qt4.8 for QGenericPlugin which is tested by default
|
# Qt Plugin needs Qt4.8 for QGenericPlugin which is tested by default
|
||||||
targets = Targets.desktopTargetClasses() & ~Targets.DESKTOP_474_GCC
|
targets = Targets.desktopTargetClasses()
|
||||||
|
targets.remove(Targets.DESKTOP_474_GCC)
|
||||||
checkedTargets, projectName, className = createNewQtPlugin(tempDir(), "SampleApp3", "MyPlugin",
|
checkedTargets, projectName, className = createNewQtPlugin(tempDir(), "SampleApp3", "MyPlugin",
|
||||||
target=targets)
|
target=targets)
|
||||||
virtualFunctionsAdded = False
|
virtualFunctionsAdded = False
|
||||||
|
|||||||
@@ -40,7 +40,9 @@ def main():
|
|||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
# open example project, supports only Qt 5
|
# open example project, supports only Qt 5
|
||||||
targets = Targets.desktopTargetClasses() & ~Targets.DESKTOP_474_GCC & ~Targets.DESKTOP_480_DEFAULT
|
targets = Targets.desktopTargetClasses()
|
||||||
|
targets.remove(Targets.DESKTOP_474_GCC)
|
||||||
|
targets.remove(Targets.DESKTOP_480_DEFAULT)
|
||||||
checkedTargets = openQmakeProject(examplePath, targets)
|
checkedTargets = openQmakeProject(examplePath, targets)
|
||||||
# build and wait until finished - on all build configurations
|
# build and wait until finished - on all build configurations
|
||||||
availableConfigs = iterateBuildConfigs(len(checkedTargets))
|
availableConfigs = iterateBuildConfigs(len(checkedTargets))
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ def main():
|
|||||||
for useClang in [False, True]:
|
for useClang in [False, True]:
|
||||||
if not startCreator(useClang):
|
if not startCreator(useClang):
|
||||||
continue
|
continue
|
||||||
openQmakeProject(examplePath, Targets.DESKTOP_531_DEFAULT)
|
openQmakeProject(examplePath, [Targets.DESKTOP_531_DEFAULT])
|
||||||
checkCodeModelSettings(useClang)
|
checkCodeModelSettings(useClang)
|
||||||
if not openDocument("cplusplus-tools.Sources.main\\.cpp"):
|
if not openDocument("cplusplus-tools.Sources.main\\.cpp"):
|
||||||
earlyExit("Failed to open main.cpp.")
|
earlyExit("Failed to open main.cpp.")
|
||||||
|
|||||||
@@ -53,11 +53,18 @@ def main():
|
|||||||
switchViewTo(ViewConstants.HELP)
|
switchViewTo(ViewConstants.HELP)
|
||||||
manualQModelIndex = getQModelIndexStr("text?='Qt Creator Manual *'",
|
manualQModelIndex = getQModelIndexStr("text?='Qt Creator Manual *'",
|
||||||
":Qt Creator_QHelpContentWidget")
|
":Qt Creator_QHelpContentWidget")
|
||||||
doubleClick(waitForObject(manualQModelIndex), 5, 5, 0, Qt.LeftButton)
|
manualQMIObj = waitForObject(manualQModelIndex)
|
||||||
|
doubleClick(manualQMIObj, 5, 5, 0, Qt.LeftButton)
|
||||||
|
if not waitFor("not manualQMIObj.collapsed", 2000):
|
||||||
|
test.warning("It takes more than two seconds to expand the help content tree.")
|
||||||
mouseClick(waitForObject(getQModelIndexStr("text='Building and Running an Example'",
|
mouseClick(waitForObject(getQModelIndexStr("text='Building and Running an Example'",
|
||||||
manualQModelIndex)), 5, 5, 0, Qt.LeftButton)
|
manualQModelIndex)), 5, 5, 0, Qt.LeftButton)
|
||||||
helpSelector = waitForObject(":Qt Creator_HelpSelector_QComboBox")
|
helpSelector = waitForObject(":Qt Creator_HelpSelector_QComboBox")
|
||||||
waitFor("str(helpSelector.currentText).startswith('Building and Running an Example')", 10000)
|
pageOpened = "str(helpSelector.currentText).startswith('Building and Running an Example')"
|
||||||
|
if not waitFor(pageOpened, 10000):
|
||||||
|
test.fatal("Help page is not opened after ten seconds. Giving up.")
|
||||||
|
invokeMenuItem("File", "Exit")
|
||||||
|
return
|
||||||
# open bookmarks window
|
# open bookmarks window
|
||||||
clickButton(waitForObject(":Qt Creator.Add Bookmark_QToolButton"))
|
clickButton(waitForObject(":Qt Creator.Add Bookmark_QToolButton"))
|
||||||
clickButton(waitForObject(":Add Bookmark.ExpandBookmarksList_QToolButton"))
|
clickButton(waitForObject(":Add Bookmark.ExpandBookmarksList_QToolButton"))
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ def main():
|
|||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
# open example project
|
# open example project
|
||||||
openQmakeProject(examplePath, Targets.DESKTOP_531_DEFAULT)
|
openQmakeProject(examplePath, [Targets.DESKTOP_531_DEFAULT])
|
||||||
# open qml file
|
# open qml file
|
||||||
openDocument("animation.Resources.animation\\.qrc./animation.basics.color-animation\\.qml")
|
openDocument("animation.Resources.animation\\.qrc./animation.basics.color-animation\\.qml")
|
||||||
# get editor
|
# get editor
|
||||||
|
|||||||
@@ -58,13 +58,12 @@ def main():
|
|||||||
performDebugging(projectName, checkedTargets)
|
performDebugging(projectName, checkedTargets)
|
||||||
invokeMenuItem("File", "Close All Projects and Editors")
|
invokeMenuItem("File", "Close All Projects and Editors")
|
||||||
# C/C++
|
# C/C++
|
||||||
targets = Targets.intToArray(Targets.desktopTargetClasses())
|
|
||||||
for name,isC in {"C":True, "CPP":False}.items():
|
for name,isC in {"C":True, "CPP":False}.items():
|
||||||
for singleTarget in targets:
|
for singleTarget in targets:
|
||||||
workingDir = tempDir()
|
workingDir = tempDir()
|
||||||
qtVersion = re.search("\d{3}", Targets.getStringForTarget(singleTarget)).group()
|
qtVersion = re.search("\d{3}", Targets.getStringForTarget(singleTarget)).group()
|
||||||
projectName = createNewNonQtProject(workingDir, "Sample%s%s" % (name, qtVersion),
|
projectName = createNewNonQtProject(workingDir, "Sample%s%s" % (name, qtVersion),
|
||||||
singleTarget, isC)
|
[singleTarget], isC)
|
||||||
if projectName == None:
|
if projectName == None:
|
||||||
test.fail("Failed to create Sample%s%s" % (name, qtVersion),
|
test.fail("Failed to create Sample%s%s" % (name, qtVersion),
|
||||||
"Target: %s, plainC: %s" % (Targets.getStringForTargt(singleTarget), isC))
|
"Target: %s, plainC: %s" % (Targets.getStringForTargt(singleTarget), isC))
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ def main():
|
|||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
# Requires Qt 4.8
|
# Requires Qt 4.8
|
||||||
targets = Targets.desktopTargetClasses() & ~Targets.DESKTOP_474_GCC
|
targets = Targets.desktopTargetClasses()
|
||||||
|
targets.remove(Targets.DESKTOP_474_GCC)
|
||||||
# using a temporary directory won't mess up a potentially existing
|
# using a temporary directory won't mess up a potentially existing
|
||||||
workingDir = tempDir()
|
workingDir = tempDir()
|
||||||
checkedTargets, projectName = createNewQtQuickApplication(workingDir, targets=targets)
|
checkedTargets, projectName = createNewQtQuickApplication(workingDir, targets=targets)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ def main():
|
|||||||
# add docs to have the correct tool tips
|
# add docs to have the correct tool tips
|
||||||
addHelpDocumentation([os.path.join(Qt5Path.docsPath(target), "qtquick.qch")])
|
addHelpDocumentation([os.path.join(Qt5Path.docsPath(target), "qtquick.qch")])
|
||||||
templateDir = prepareTemplate(sourceExample, "/../../helper")
|
templateDir = prepareTemplate(sourceExample, "/../../helper")
|
||||||
openQmakeProject(os.path.join(templateDir, proFile), target)
|
openQmakeProject(os.path.join(templateDir, proFile), [target])
|
||||||
openDocument("focus.QML.qml" + os.sep + "focus.focus\\.qml")
|
openDocument("focus.QML.qml" + os.sep + "focus.focus\\.qml")
|
||||||
testRenameId()
|
testRenameId()
|
||||||
testFindUsages()
|
testFindUsages()
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ HOOK_SUB_PROCESSES=false
|
|||||||
IMPLICITAUTSTART=0
|
IMPLICITAUTSTART=0
|
||||||
LANGUAGE=Python
|
LANGUAGE=Python
|
||||||
OBJECTMAP=../objects.map
|
OBJECTMAP=../objects.map
|
||||||
TEST_CASES=tst_build_speedcrunch tst_cmake_speedcrunch tst_create_proj_wizard tst_custom_wizard_check tst_default_settings tst_installed_languages tst_new_class tst_opencreator_qbs tst_openqt_creator tst_rename_file tst_save_before_build tst_session_handling tst_tasks_handling
|
TEST_CASES=tst_build_speedcrunch tst_cmake_speedcrunch tst_create_proj_wizard tst_custom_wizard_check tst_default_settings tst_installed_languages tst_new_class tst_opencreator_qbs tst_openqt_creator tst_remove_kits tst_rename_file tst_save_before_build tst_session_handling tst_tasks_handling
|
||||||
VERSION=2
|
VERSION=2
|
||||||
WRAPPERS=Qt
|
WRAPPERS=Qt
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ def main():
|
|||||||
startApplication("qtcreator" + SettingsPath)
|
startApplication("qtcreator" + SettingsPath)
|
||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
checkedTargets = openQmakeProject(SpeedCrunchPath, Targets.DESKTOP_480_DEFAULT)
|
checkedTargets = openQmakeProject(SpeedCrunchPath, [Targets.DESKTOP_480_DEFAULT])
|
||||||
progressBarWait(30000)
|
progressBarWait(30000)
|
||||||
|
|
||||||
fancyToolButton = waitForObject(":*Qt Creator_Core::Internal::FancyToolButton")
|
fancyToolButton = waitForObject(":*Qt Creator_Core::Internal::FancyToolButton")
|
||||||
|
|||||||
@@ -36,12 +36,12 @@ def main():
|
|||||||
return
|
return
|
||||||
|
|
||||||
runButton = findObject(':*Qt Creator.Run_Core::Internal::FancyToolButton')
|
runButton = findObject(':*Qt Creator.Run_Core::Internal::FancyToolButton')
|
||||||
openQmakeProject(pathSpeedcrunch, Targets.DESKTOP_480_DEFAULT)
|
openQmakeProject(pathSpeedcrunch, [Targets.DESKTOP_480_DEFAULT])
|
||||||
# Wait for parsing to complete
|
# Wait for parsing to complete
|
||||||
waitFor("runButton.enabled", 30000)
|
waitFor("runButton.enabled", 30000)
|
||||||
# Starting before opening, because this is where Creator froze (QTCREATORBUG-10733)
|
# Starting before opening, because this is where Creator froze (QTCREATORBUG-10733)
|
||||||
startopening = datetime.utcnow()
|
startopening = datetime.utcnow()
|
||||||
openQmakeProject(pathCreator, Targets.DESKTOP_561_DEFAULT)
|
openQmakeProject(pathCreator, [Targets.DESKTOP_561_DEFAULT])
|
||||||
# Wait for parsing to complete
|
# Wait for parsing to complete
|
||||||
startreading = datetime.utcnow()
|
startreading = datetime.utcnow()
|
||||||
waitFor("runButton.enabled", 300000)
|
waitFor("runButton.enabled", 300000)
|
||||||
|
|||||||
64
tests/system/suite_general/tst_remove_kits/test.py
Normal file
64
tests/system/suite_general/tst_remove_kits/test.py
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (C) 2017 The Qt Company Ltd.
|
||||||
|
# Contact: https://www.qt.io/licensing/
|
||||||
|
#
|
||||||
|
# This file is part of Qt Creator.
|
||||||
|
#
|
||||||
|
# Commercial License Usage
|
||||||
|
# Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
# accordance with the commercial license agreement provided with the
|
||||||
|
# Software or, alternatively, in accordance with the terms contained in
|
||||||
|
# a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
# and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
# information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
#
|
||||||
|
# GNU General Public License Usage
|
||||||
|
# Alternatively, this file may be used under the terms of the GNU
|
||||||
|
# General Public License version 3 as published by the Free Software
|
||||||
|
# Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
# included in the packaging of this file. Please review the following
|
||||||
|
# information to ensure the GNU General Public License requirements will
|
||||||
|
# be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
source("../../shared/qtcreator.py")
|
||||||
|
|
||||||
|
def verifyProjectsMode(expectedKits):
|
||||||
|
treeView = waitForObject(":Projects.ProjectNavigationTreeView")
|
||||||
|
bAndRIndex = getQModelIndexStr("text='Build & Run'",
|
||||||
|
":Projects.ProjectNavigationTreeView")
|
||||||
|
test.compare(len(dumpItems(treeView.model(), waitForObject(bAndRIndex))),
|
||||||
|
len(expectedKits), "Verify number of listed kits.")
|
||||||
|
test.compare(set(dumpItems(treeView.model(), waitForObject(bAndRIndex))),
|
||||||
|
set(expectedKits), "Verify if expected kits are listed.")
|
||||||
|
hasKits = len(expectedKits) > 0
|
||||||
|
test.verify(checkIfObjectExists(":scrollArea.Edit build configuration:_QLabel", hasKits),
|
||||||
|
"Verify if build settings are being displayed.")
|
||||||
|
test.verify(checkIfObjectExists(":No valid kits found._QLabel", not hasKits),
|
||||||
|
"Verify if Creator reports missing kits.")
|
||||||
|
|
||||||
|
kitNameTemplate = "Manual.%s"
|
||||||
|
|
||||||
|
def __removeKit__(kit, kitName):
|
||||||
|
global kitNameTemplate
|
||||||
|
if kitName == Targets.getStringForTarget(Targets.getDefaultKit()):
|
||||||
|
# The following kits will be the default kit at that time
|
||||||
|
kitNameTemplate += " (default)"
|
||||||
|
item = kitNameTemplate % kitName
|
||||||
|
waitForObjectItem(":BuildAndRun_QTreeView", item)
|
||||||
|
clickItem(":BuildAndRun_QTreeView", item, 5, 5, 0, Qt.LeftButton)
|
||||||
|
clickButton(waitForObject(":Remove_QPushButton"))
|
||||||
|
|
||||||
|
def main():
|
||||||
|
startApplication("qtcreator" + SettingsPath)
|
||||||
|
if not startedWithoutPluginError():
|
||||||
|
return
|
||||||
|
createProject_Qt_Console(tempDir(), "SquishProject")
|
||||||
|
switchViewTo(ViewConstants.PROJECTS)
|
||||||
|
verifyProjectsMode(Targets.getTargetsAsStrings(Targets.availableTargetClasses()))
|
||||||
|
iterateKits(True, False, __removeKit__)
|
||||||
|
clickButton(waitForObject(":Options.OK_QPushButton"))
|
||||||
|
verifyProjectsMode([])
|
||||||
|
invokeMenuItem("File", "Exit")
|
||||||
@@ -39,7 +39,7 @@ def main():
|
|||||||
"Verifying window title contains created session name.")
|
"Verifying window title contains created session name.")
|
||||||
checkWelcomePage(sessionName, True)
|
checkWelcomePage(sessionName, True)
|
||||||
for project in projects:
|
for project in projects:
|
||||||
openQmakeProject(project, Targets.DESKTOP_531_DEFAULT)
|
openQmakeProject(project, [Targets.DESKTOP_531_DEFAULT])
|
||||||
progressBarWait(20000)
|
progressBarWait(20000)
|
||||||
checkNavigator(52, "Verifying whether all projects have been opened.")
|
checkNavigator(52, "Verifying whether all projects have been opened.")
|
||||||
openDocument("animation.Resources.animation\\.qrc./animation.basics.animators\\.qml")
|
openDocument("animation.Resources.animation\\.qrc./animation.basics.animators\\.qml")
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ def main():
|
|||||||
startApplication("qtcreator" + SettingsPath)
|
startApplication("qtcreator" + SettingsPath)
|
||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
openQmakeProject(os.path.join(templateDir, proFile), Targets.DESKTOP_531_DEFAULT)
|
openQmakeProject(os.path.join(templateDir, proFile), [Targets.DESKTOP_531_DEFAULT])
|
||||||
qmlFiles = [treebase + "focus\\.qml", treebase + "Core.ListMenu\\.qml"]
|
qmlFiles = [treebase + "focus\\.qml", treebase + "Core.ListMenu\\.qml"]
|
||||||
checkOutlineFor(qmlFiles)
|
checkOutlineFor(qmlFiles)
|
||||||
testModify()
|
testModify()
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ def main():
|
|||||||
|
|
||||||
for qtVersion, controls in available:
|
for qtVersion, controls in available:
|
||||||
if qtVersion == "5.3":
|
if qtVersion == "5.3":
|
||||||
targ = Targets.DESKTOP_531_DEFAULT
|
targ = [Targets.DESKTOP_531_DEFAULT]
|
||||||
quick = "2.3"
|
quick = "2.3"
|
||||||
else:
|
else:
|
||||||
targ = Targets.DESKTOP_541_GCC
|
targ = [Targets.DESKTOP_541_GCC]
|
||||||
quick = "2.4"
|
quick = "2.4"
|
||||||
# using a temporary directory won't mess up a potentially existing
|
# using a temporary directory won't mess up a potentially existing
|
||||||
workingDir = tempDir()
|
workingDir = tempDir()
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ def main():
|
|||||||
startApplication("qtcreator" + SettingsPath)
|
startApplication("qtcreator" + SettingsPath)
|
||||||
if not startedWithoutPluginError():
|
if not startedWithoutPluginError():
|
||||||
return
|
return
|
||||||
for targ, quickVer in [[Targets.DESKTOP_480_DEFAULT, 1], [Targets.DESKTOP_561_DEFAULT, 2],
|
for targ, quickVer in [[[Targets.DESKTOP_480_DEFAULT], 1], [[Targets.DESKTOP_561_DEFAULT], 2],
|
||||||
[Targets.DESKTOP_531_DEFAULT, 2]]:
|
[[Targets.DESKTOP_531_DEFAULT], 2]]:
|
||||||
# using a temporary directory won't mess up a potentially existing
|
# using a temporary directory won't mess up a potentially existing
|
||||||
createNewQmlExtension(tempDir(), targ, quickVer)
|
createNewQmlExtension(tempDir(), targ, quickVer)
|
||||||
# wait for parsing to complete
|
# wait for parsing to complete
|
||||||
|
|||||||
Reference in New Issue
Block a user