Merge remote-tracking branch 'origin/2.4'

Conflicts:
	qtcreator.pri
	share/qtcreator/templates/qtquickapp/main.cpp
	src/plugins/analyzerbase/analyzermanager.cpp
	src/plugins/qmlprofiler/qmlprofilertool.cpp

Change-Id: I3be78f22e7301d61a9c7fc142cbc34a3cebc2cf4
This commit is contained in:
Eike Ziller
2011-11-18 10:16:49 +01:00
93 changed files with 4807 additions and 1775 deletions

View File

@@ -65,13 +65,16 @@ dev_qch_docs.depends += dev_html_docs
unix:!macx { unix:!macx {
inst_qch_docs.files = $$QCH_FILE inst_qch_docs.files = $$QCH_FILE
inst_qch_docs.path = /share/doc/qtcreator inst_qch_docs.path = /share/doc/qtcreator
inst_qch_docs.CONFIG += no_check_exist inst_qch_docs.CONFIG += no_check_exist no_default_install
INSTALLS += inst_qch_docs INSTALLS += inst_qch_docs
inst_dev_qch_docs.files = $$DEV_QCH_FILE inst_dev_qch_docs.files = $$DEV_QCH_FILE
inst_dev_qch_docs.path = /share/doc/qtcreator inst_dev_qch_docs.path = /share/doc/qtcreator
inst_dev_qch_docs.CONFIG += no_check_exist inst_dev_qch_docs.CONFIG += no_check_exist no_default_install
INSTALLS += inst_dev_qch_docs 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_online.depends = html_docs_online dev_html_docs_online

View File

@@ -1,11 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=BatteryIndicator
Exec=/opt/usr/bin/BatteryIndicator
Icon=BatteryIndicator
X-Window-Icon=
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,32 +0,0 @@
# Add files and directories to ship with the application
# by adapting the examples below.
# file1.source = myfile
# dir1.source = mydir
DEPLOYMENTFOLDERS = # file1 dir1
# Avoid auto screen rotation
#DEFINES += ORIENTATIONLOCK
# Needs to be defined for Symbian
#DEFINES += NETWORKACCESS
symbian:TARGET.UID3 = 0xE5123A52
CONFIG += mobility
MOBILITY = systeminfo
SOURCES += main.cpp mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
# Please do not modify the following two lines. Required for deployment.
include(deployment.pri)
qtcAddDeployment()
OTHER_FILES += \
debian/changelog \
debian/compat \
debian/control \
debian/copyright \
debian/README \
debian/rules

View File

@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="44px"
version="1.1"
viewBox="0 0 44 44"
width="44px"
x="0px"
y="0px"
id="svg2"
inkscape:version="0.47 r22583"
sodipodi:docname="qt.svg">
<metadata
id="metadata18">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs16">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 22 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="44 : 22 : 1"
inkscape:persp3d-origin="22 : 14.666667 : 1"
id="perspective2836" />
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1020"
id="namedview14"
showgrid="false"
inkscape:zoom="21.454545"
inkscape:cx="49.412871"
inkscape:cy="21.894358"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="g3" />
<g
transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
id="g3">
<path
d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
style="fill:#006225"
id="path5"
sodipodi:nodetypes="cccccccc" />
<path
d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
style="fill:#80c342"
id="path7" />
<path
d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
style="fill:#006225"
id="path11" />
<path
d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
style="fill:#006225"
id="path13" />
<path
id="path17"
style="fill:#ffffff"
d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
<path
d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
style="fill:#006225"
id="path19" />
<path
id="path21"
style="fill:#006225"
d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -1,6 +0,0 @@
The Debian Package batteryindicator
----------------------------
Comments regarding the Package
-- unknown <> Tue, 05 Oct 2010 12:01:24 +0200

View File

@@ -1,5 +0,0 @@
batteryindicator (0.0.1) unstable; urgency=low
* Initial Release.
-- unknown <> Tue, 05 Oct 2010 12:01:24 +0200

View File

@@ -1 +0,0 @@
7

View File

@@ -1,13 +0,0 @@
Source: batteryindicator
Section: user/hidden
Priority: optional
Maintainer: unknown <>
Build-Depends: debhelper (>= 5), libqt4-dev
Standards-Version: 3.7.3
Homepage: <insert the upstream URL, if relevant>
Package: batteryindicator
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>

View File

@@ -1,40 +0,0 @@
This package was debianized by unknown <> on
Tue, 05 Oct 2010 12:01:24 +0200.
It was downloaded from <url://example.com>
Upstream Author(s):
<put author's name and email here>
<likewise for another author>
Copyright:
<Copyright (C) YYYY Name OfAuthor>
<likewise for another author>
License:
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
The Debian packaging is (C) 2010, unknown <> and
is licensed under the GPL, see above.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.

View File

@@ -1,91 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
configure: configure-stamp
configure-stamp:
dh_testdir
# Add here commands to configure the package.
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
$(MAKE)
#docbook-to-man debian/batteryindicator.sgml > batteryindicator.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
$(MAKE) clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/batteryindicator.
$(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/batteryindicator install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
# dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
# dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
# dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

View File

@@ -1,93 +0,0 @@
# checksum 0x2bb3 version 0x10001
# This file should not be edited.
# Future versions of Qt Creator might offer updated versions of this file.
defineTest(qtcAddDeployment) {
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
itemsources = $${item}.sources
$$itemsources = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath= $$eval($${deploymentfolder}.target)
export($$itemsources)
export($$itempath)
DEPLOYMENT += $$item
}
MAINPROFILEPWD = $$PWD
symbian {
ICON = $${TARGET}.svg
TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
contains(DEFINES, ORIENTATIONLOCK):LIBS += -lavkon -leikcore -leiksrv -lcone
contains(DEFINES, NETWORKACCESS):TARGET.CAPABILITY += NetworkServices
} else:win32 {
!isEqual(PWD,$$OUT_PWD) {
copyCommand = @echo Copying application data...
for(deploymentfolder, DEPLOYMENTFOLDERS) {
source = $$eval($${deploymentfolder}.source)
pathSegments = $$split(source, /)
sourceAndTarget = $$MAINPROFILEPWD/$$source $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(pathSegments)
copyCommand += && $(COPY_DIR) $$replace(sourceAndTarget, /, \\)
}
copydeploymentfolders.commands = $$copyCommand
first.depends = $(first) copydeploymentfolders
export(first.depends)
export(copydeploymentfolders.commands)
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
}
} else:unix {
maemo5 {
installPrefix = /opt/usr
desktopfile.path = /usr/share/applications/hildon
} else {
installPrefix = /usr
desktopfile.path = /usr/share/applications
!isEqual(PWD,$$OUT_PWD) {
copyCommand = @echo Copying application data...
for(deploymentfolder, DEPLOYMENTFOLDERS) {
macx {
target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
} else {
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
}
copyCommand += && $(MKDIR) $$target
copyCommand += && $(COPY_DIR) $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) $$target
}
copydeploymentfolders.commands = $$copyCommand
first.depends = $(first) copydeploymentfolders
export(first.depends)
export(copydeploymentfolders.commands)
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
}
}
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
itemfiles = $${item}.files
$$itemfiles = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
export($$itemfiles)
export($$itempath)
INSTALLS += $$item
}
icon.files = $${TARGET}.png
icon.path = /usr/share/icons/hicolor/64x64/apps
desktopfile.files = $${TARGET}.desktop
target.path = $${installPrefix}/bin
export(icon.files)
export(icon.path)
export(desktopfile.files)
export(desktopfile.path)
export(target.path)
INSTALLS += desktopfile icon target
}
export (ICON)
export (INSTALLS)
export (DEPLOYMENT)
export (TARGET.EPOCHEAPSIZE)
export (TARGET.CAPABILITY)
export (LIBS)
export (QMAKE_EXTRA_TARGETS)
}

View File

@@ -1,61 +0,0 @@
/***************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of Qt Creator.
**
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
#include "mainwindow.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.setOrientation(MainWindow::Auto);
//! [0]
#ifdef Q_OS_SYMBIAN
mainWindow.showFullScreen();
#elif defined(Q_WS_MAEMO_5)
mainWindow.showMaximized();
#else
mainWindow.show();
#endif
//! [0]
return app.exec();
}

View File

@@ -1,115 +0,0 @@
/***************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of Qt Creator.
**
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
// checksum 0xd429 version 0x10001
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore/QCoreApplication>
#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
#include <eikenv.h>
#include <eikappui.h>
#include <aknenv.h>
#include <aknappui.h>
#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
//! [2]
MainWindow::MainWindow(QWidget *parent):
QMainWindow(parent),
ui(new Ui::MainWindow),
deviceInfo(NULL)
{
ui->setupUi(this);
setupGeneral();
}
//! [2]
MainWindow::~MainWindow()
{
delete ui;
}
//! [1]
void MainWindow::setupGeneral()
{
deviceInfo = new QSystemDeviceInfo(this);
ui->batteryLevelBar->setValue(deviceInfo->batteryLevel());
connect(deviceInfo, SIGNAL(batteryLevelChanged(int)),
ui->batteryLevelBar, SLOT(setValue(int)));
}
//! [1]
void MainWindow::setOrientation(Orientation orientation)
{
#ifdef Q_OS_SYMBIAN
if (orientation != Auto) {
#if defined(ORIENTATIONLOCK)
const CAknAppUiBase::TAppUiOrientation uiOrientation =
(orientation == LockPortrait) ? CAknAppUi::EAppUiOrientationPortrait
: CAknAppUi::EAppUiOrientationLandscape;
CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi());
TRAPD(error,
if (appUi)
appUi->SetOrientationL(uiOrientation);
);
#else // ORIENTATIONLOCK
qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation.");
#endif // ORIENTATIONLOCK
}
#elif defined(Q_WS_MAEMO_5)
Qt::WidgetAttribute attribute;
switch (orientation) {
case LockPortrait:
attribute = Qt::WA_Maemo5PortraitOrientation;
break;
case LockLandscape:
attribute = Qt::WA_Maemo5LandscapeOrientation;
break;
case Auto:
default:
attribute = Qt::WA_Maemo5AutoOrientation;
break;
}
setAttribute(attribute, true);
#else // Q_OS_SYMBIAN
Q_UNUSED(orientation);
#endif // Q_OS_SYMBIAN
}

View File

@@ -1,80 +0,0 @@
/***************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of Qt Creator.
**
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
// checksum 0xa940 version 0x10001
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
//! [1]
#include <QSystemDeviceInfo>
//! [1]
//! [2]
QTM_USE_NAMESPACE
//! [2]
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
public:
enum Orientation {
LockPortrait,
LockLandscape,
Auto
};
MainWindow(QWidget *parent = 0);
~MainWindow();
void setOrientation(Orientation orientation);
//! [3]
private:
Ui::MainWindow *ui;
void setupGeneral();
QSystemDeviceInfo *deviceInfo;
//! [3]
};
#endif // MAINWINDOW_H

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>200</width>
<height>320</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QProgressBar" name="batteryLevelBar">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>200</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

View File

@@ -1,3 +1,9 @@
//! [2]
//! [1]
//! [0]
import QtQuick 1.0 import QtQuick 1.0
Rectangle { Rectangle {
@@ -32,6 +38,7 @@ Rectangle {
onClicked: page.state = ' ' onClicked: page.state = ' '
} }
} }
//! [0]
Rectangle { Rectangle {
id: middleRightRect id: middleRightRect
@@ -71,6 +78,8 @@ Rectangle {
} }
} }
//! [1]
states: [ states: [
State { State {
name: "State1" name: "State1"
@@ -116,3 +125,5 @@ Rectangle {
} }
] ]
} }
//! [2]

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -82,6 +82,10 @@
\section1 Selecting Options for Memory Analysis \section1 Selecting Options for Memory Analysis
You can specify analyzer settings either globally for all projects or
separately for each project in the \l{Specifying Run Settings}{run settings}
of the project.
Stack traces can get quite large and confusing, and therefore, reading them Stack traces can get quite large and confusing, and therefore, reading them
from the bottom up can help. If the stack trace is not big enough or it is from the bottom up can help. If the stack trace is not big enough or it is
too big, select \gui {Tools > Options > Analyzer}. too big, select \gui {Tools > Options > Analyzer}.
@@ -168,6 +172,10 @@
\section1 Selecting Profiling Options \section1 Selecting Profiling Options
You can specify analyzer settings either globally for all projects or
separately for each project in the \l{Specifying Run Settings}{run settings}
of the project.
To specify settings for Valgrind, select \gui {Tools > Options > To specify settings for Valgrind, select \gui {Tools > Options >
Analyzer}. The \gui {Profiling Options} group contains Callgrind options. Analyzer}. The \gui {Profiling Options} group contains Callgrind options.

View File

@@ -81,6 +81,16 @@
application is launched. Data collection starts when you select the button application is launched. Data collection starts when you select the button
again. again.
\section1 Attaching to Running Qt Quick Applications
To profile Qt Quick applications that are not launched by \QC, select
\gui {Analyze > QML Profiler (Remote)}. You must enable QML debugging for
the application in the project build settings. For more information, see
\l{Setting Up QML Debugging}.
In the \gui {QML Profiler} dialog, \gui Port field, specify the port to
listen to.
\section1 Analyzing Collected Data \section1 Analyzing Collected Data
The \gui Timeline view displays graphical representations of: The \gui Timeline view displays graphical representations of:

View File

@@ -27,7 +27,7 @@
/*! /*!
\contentspage index.html \contentspage index.html
\previouspage creator-build-dependencies.html \previouspage creator-running-targets.html
\page creator-debugging.html \page creator-debugging.html
\nextpage creator-debugging-example.html \nextpage creator-debugging-example.html

View File

@@ -44,7 +44,7 @@
\section1 Setting Up QML Debugging \section1 Setting Up QML Debugging
The process of setting up debugging for Qt Quick projects depends on the The process of setting up debugging for Qt Quick projects depends on the
type of the project: Qt Quick UI or Qt Quick Application. type of the project: Qt Quick UI or Qt Quick Application, and the Qt version used.
To debug Qt Quick UI projects: To debug Qt Quick UI projects:
@@ -53,7 +53,7 @@
\o Select \gui Projects, and then select the \gui QML check box in the \o Select \gui Projects, and then select the \gui QML check box in the
\gui {Run Settings}, to enable QML debugging. \gui {Run Settings}, to enable QML debugging.
\o Compile the QML Inspector debugging helper. For more information, \o For Qt 4.7, compile the QML Inspector debugging helper. For more information,
see \l{Debugging Helpers for QML}. see \l{Debugging Helpers for QML}.
\endlist \endlist
@@ -62,8 +62,9 @@
\list 1 \list 1
\o Select \gui Projects, and then select the \gui {Link QML debugging \o Select \gui Projects, and then select the
library} check box in \gui {Build Steps}. \gui {Enable QML debugging} check box in the \gui qmake section
in \gui {Build Steps}.
You might have to compile the library first, by selecting the You might have to compile the library first, by selecting the
\gui Compile link. \gui Compile link.
@@ -91,9 +92,7 @@
\section1 Mixed C++/QML Debugging \section1 Mixed C++/QML Debugging
To debug both the C++ and QML parts of your application at the same time, To debug both the C++ and QML parts of your application at the same time,
select the checkboxes for both languages in the \gui{Run Settings}. However, select the checkboxes for both languages in the \gui{Run Settings}.
C++ breakpoints are be ignored until the debugger attaches also to the
QML engine.
\section1 Starting QML Debugging \section1 Starting QML Debugging
@@ -144,11 +143,8 @@
\section1 Applying QML Changes at Runtime \section1 Applying QML Changes at Runtime
If you change property values or add properties in the code editor, the If you change property values or add properties in the code editor, the
changes are updated in the running application when you save them. If live debugger can update the properties in the running application when you save
preview is not supported for an element, a message appears. Click the file. This is enabled by default. To disable it, click
\gui Reload to preview the changes.
Reloading is enabled by default. To disable it, click
\inlineimage qml-observer-bar-reload.png "Apply Changes on Save button" \inlineimage qml-observer-bar-reload.png "Apply Changes on Save button"
on the toolbar. on the toolbar.
@@ -196,15 +192,16 @@
\section1 Debugging Animations \section1 Debugging Animations
\image qml-observer.png To play and pause animations in the running application, select
\inlineimage qml-inspector-play.png
and
\inlineimage qml-inspector-pause.png
on the toolbar.
To play and pause animations in the running application, select the To change the speed at which animations are played, click and hold down
\gui {Play/Pause Animations} button on the toolbar or \gui {Debugging > \inlineimage qml-inspector-play.png
Animations > Pause}, or press or
\key {Ctrl+.}. \inlineimage qml-inspector-pause.png
and select a value.
To change the speed at which animations are played, select a value in
\gui {Debugging > Animations} or click and hold down the
\gui {Play/Pause Animations} button to select a value.
*/ */

View File

@@ -365,11 +365,8 @@
\image qtcreator-build-settings-maemo.png "Maemo build settings" \image qtcreator-build-settings-maemo.png "Maemo build settings"
\o In the \gui{Run Settings} section, click \gui Add to add a new \o In the \gui{Run Settings} section, in the
deploy configuration. The configuration is named automatically. To \gui {Device configuration} field, select the device
give it a new name, click \gui Rename.
\o In the \gui {Device configuration} field, select the device
connection or the emulator connection. connection or the emulator connection.
\image qtcreator-run-settings-maemo.png "Maemo run settings" \image qtcreator-run-settings-maemo.png "Maemo run settings"

View File

@@ -383,7 +383,8 @@
\image qtcreator-screenshot-build-settings.png \image qtcreator-screenshot-build-settings.png
\o In the \gui {Device configuration} field, select the \o In the \gui {Run Settings} section,
\gui {Device configuration} field, select the
device connection or the emulator connection. device connection or the emulator connection.
\image qtcreator-screenshot-run-settings.png \image qtcreator-screenshot-run-settings.png

View File

@@ -42,7 +42,6 @@
\if defined(qcmanual) \if defined(qcmanual)
\o \l{Creating a Qt Quick Application Using Qt Quick Components} \o \l{Creating a Qt Quick Application Using Qt Quick Components}
\o \l{Creating a Qt Widget Based Application} \o \l{Creating a Qt Widget Based Application}
\o \l{Creating a Qt Widget Based Mobile Application}
\endif \endif
\endlist \endlist

View File

@@ -57,6 +57,10 @@
switch to the nfs-kernel-server, or create a symlink so that the switch to the nfs-kernel-server, or create a symlink so that the
settings are stored locally. settings are stored locally.
\o Qt 4.7.4 is known to contain a bug exposed by g++ 4.6 which triggers
a crash in \QC. For more information, see
\l{https://bugreports.qt.nokia.com/browse/QTBUG-21265}{QTBUG-21265}
\o The Okteta KDE custom widget plugin might be installed as part of \o The Okteta KDE custom widget plugin might be installed as part of
some Linux distributions. It can cause Qt Designer to crash. For some Linux distributions. It can cause Qt Designer to crash. For
more information, see: more information, see:

View File

@@ -53,13 +53,17 @@
\endlist \endlist
By default, when you select the \gui Run function, \QC builds, deploys, and By default, when you select the \gui Run function, \QC builds the project,
runs the project. To specify the relationship between the release, build, deploys it to the selected target, and runs it there. However, if you have
not made any changes to the project since you last built and deployed it,
\QC simply runs it again.
To specify the relationship between the release, build,
and deploy configurations, select \gui {Tools > Options > Project}. By and deploy configurations, select \gui {Tools > Options > Project}. By
default, the \gui {Always build project before deploying it} and the default, the \gui {Always build project before deploying it} and the
\gui {Always deploy project before running it} options are enabled. \gui {Always deploy project before running it} options are enabled.
Therefore, when you select the \gui Run function, \QC builds, deploys, and Therefore, when you select the \gui Run function, \QC checks for changes in
runs the project. the project files and also builds and deploys the project if necessary.
\image qtcreator-project-options-deploy.png "Project General Options" \image qtcreator-project-options-deploy.png "Project General Options"

View File

@@ -27,7 +27,7 @@
/*! /*!
\contentspage index.html \contentspage index.html
\previouspage creator-mobile-example.html \previouspage creator-writing-program.html
\page creator-project-managing.html \page creator-project-managing.html
\nextpage creator-project-creating.html \nextpage creator-project-creating.html

View File

@@ -29,7 +29,7 @@
\contentspage index.html \contentspage index.html
\previouspage creator-building-targets.html \previouspage creator-building-targets.html
\page creator-running-targets.html \page creator-running-targets.html
\nextpage creator-build-settings.html \nextpage creator-debugging.html
\title Running Applications on Multiple Targets \title Running Applications on Multiple Targets

View File

@@ -27,7 +27,7 @@
/*! /*!
\contentspage index.html \contentspage index.html
\previouspage creator-running-targets.html \previouspage creator-configuring-projects.html
\page creator-build-settings.html \page creator-build-settings.html
\nextpage creator-project-qmake.html \nextpage creator-project-qmake.html

View File

@@ -61,8 +61,6 @@
\o In the \gui {Current settings} field, select the settings to modify \o In the \gui {Current settings} field, select the settings to modify
and click \gui Copy. and click \gui Copy.
\image qtcreator-code-style-settings.png "Code Style Settings view"
\o Give a name to the settings and click \gui OK. \o Give a name to the settings and click \gui OK.
\o Click \gui Edit to specify code style settings for the project. \o Click \gui Edit to specify code style settings for the project.

View File

@@ -48,7 +48,7 @@
\o Select \gui {Projects > Editor Settings}. \o Select \gui {Projects > Editor Settings}.
\o Deselect the \gui {Use global settings} check box. \o In the \gui {Editor Settings} field, select \gui {Custom}.
\o Specify text editor settings for the project. \o Specify text editor settings for the project.
@@ -56,6 +56,8 @@
\image qtcreator-editor-settings.png "Editor Settings view" \image qtcreator-editor-settings.png "Editor Settings view"
Click \gui {Restore Global} to revert to the global settings.
For more information about the settings, see: For more information about the settings, see:
\list \list

View File

@@ -29,7 +29,7 @@
\contentspage index.html \contentspage index.html
\previouspage creator-project-qmake-libraries.html \previouspage creator-project-qmake-libraries.html
\page creator-configuring-projects.html \page creator-configuring-projects.html
\nextpage creator-building-targets.html \nextpage creator-build-settings.html
\title Configuring Projects \title Configuring Projects

View File

@@ -0,0 +1,37 @@
\section2 Specifying Analyzer Settings
\QC integrates \l{Analyzing Code}{Valgrind code analysis tools} for
detecting memory leaks and profiling function execution. You can configure
the tools according to your needs.
You can specify analyzer settings for the desktop and Qt Simulator targets.
You can specify them either globally for all projects or separately for each
project.
To specify analyzer settings for the current project:
\list 1
\o In the \gui {Analyzer Settings} section, select \gui Custom.
\o Specify analyzer settings for the project.
\image qtcreator-analyzer-settings.png "Analyzer Settings"
\endlist
For more information about the settings, see:
\list
\o \l{Selecting Options for Memory Analysis}
\o \l{Selecting Profiling Options}
\endlist
Click \gui {Restore Global} to revert to the global settings.
To specify global analyzer settings, select \gui {Tools > Options >
Analyzer}.

View File

@@ -50,6 +50,7 @@
\if defined(qcmanual) \if defined(qcmanual)
\input projects/creator-projects-settings-run-desktop.qdocinc \input projects/creator-projects-settings-run-desktop.qdocinc
\input projects/creator-projects-settings-run-analyze.qdocinc
\input symbian/creator-projects-settings-run-symbian.qdocinc \input symbian/creator-projects-settings-run-symbian.qdocinc
\input linux-mobile/creator-projects-settings-run-madde.qdocinc \input linux-mobile/creator-projects-settings-run-madde.qdocinc
\input linux-mobile/creator-projects-settings-run-generic-linux.qdocinc \input linux-mobile/creator-projects-settings-run-generic-linux.qdocinc

View File

@@ -27,7 +27,7 @@
/*! /*!
\contentspage index.html \contentspage index.html
\previouspage creator-publish-ovi.html \previouspage creator-publish-ovi-meego.html
\page creator-remote-compiler.html \page creator-remote-compiler.html
\nextpage creator-help.html \nextpage creator-help.html

View File

@@ -59,8 +59,6 @@
\o \l{Creating a Qt Quick Application} \o \l{Creating a Qt Quick Application}
\o \l{Creating a Qt Quick Application Using Qt Quick Components} \o \l{Creating a Qt Quick Application Using Qt Quick Components}
\o \l{Creating a Qt Widget Based Application} \o \l{Creating a Qt Widget Based Application}
\o \l{Creating a Qt Widget Based Mobile Application}
\endlist \endlist
\o \l{Managing Projects} \o \l{Managing Projects}
\list \list

View File

@@ -642,7 +642,7 @@
You can dowload QML templates that specify different types of screens from You can dowload QML templates that specify different types of screens from
\l{https://projects.developer.nokia.com/QMLTemplates}{QML Templates} for use in \l{https://projects.developer.nokia.com/QMLTemplates}{QML Templates} for use in
your Qt Quick projects. You can open and edit the templates in \QD. your Qt Quick projects. You can open and edit the templates in \QMLD.
\section1 Adding Components to Screens \section1 Adding Components to Screens

View File

@@ -56,8 +56,25 @@
\o Select \gui{File > New File or Project > Qt Quick Project > Qt Quick \o Select \gui{File > New File or Project > Qt Quick Project > Qt Quick
Application > Choose}. Application > Choose}.
\o Follow the instructions of the wizard to create a project called \o In the \gui{Name} field, type \bold {Transitions}.
Transitions.
\o In the \gui {Create in} field, enter the path for the project files.
For example, \c {C:\Qt\examples}, and then click \gui{Next}.
\o In the \gui {Application Type} dialog, select \gui {Built-in
elements only (for all platforms)}, and then click \gui{Next}.
\o Select targets, and then click \gui{Next}.
\note Targets are listed if you installed the appropriate
development environment, for example, as part of the \QSDK. You can
add targets later in the \gui Projects mode.
\o Select \gui Next in the following dialogs to use the default
settings.
\o Review the project settings, and click \gui{Finish} to create the
project.
\o Press \key {Ctrl+R} to run the application. \o Press \key {Ctrl+R} to run the application.
@@ -188,6 +205,10 @@
\endlist \endlist
The qml.main file should now look as follows:
\snippet examples/transitions/qml/Transitions/main.qml 0
\o In the \gui Navigator pane, copy topLeftRect (by pressing \o In the \gui Navigator pane, copy topLeftRect (by pressing
\key {Ctrl+C}) and paste it to the canvas twice (by pressing \key {Ctrl+C}) and paste it to the canvas twice (by pressing
\key {Ctrl+V}). \QC renames the new instances of the element \key {Ctrl+V}). \QC renames the new instances of the element
@@ -236,6 +257,10 @@
You will create State2 later. You will create State2 later.
The qml.main file should now look as follows:
\snippet examples/transitions/qml/Transitions/main.qml 1
\endlist \endlist
\o Press \key {Ctrl+S} to save the changes. \o Press \key {Ctrl+S} to save the changes.
@@ -331,4 +356,10 @@
Click the rectangles to view the animated transitions. Click the rectangles to view the animated transitions.
\section1 Example Code
When you have completed the steps, the main.qml file should look as follows:
\snippet examples/transitions/qml/Transitions/main.qml 2
*/ */

View File

@@ -227,7 +227,7 @@
\i Yes (Symbian Anna APIs) \i Yes (Symbian Anna APIs)
\i Yes \i Yes
\row \row
\i Symbian Belle Qt 4.7.4 \i Symbian Belle Qt 4.7.4 (online installer only)
\i 1.1 \i 1.1
\i 1.1 \i 1.1
\i 1.2 \i 1.2
@@ -251,12 +251,12 @@
Symbian and Qt 4.7.4 for Symbian support for Symbian devices with Symbian and Qt 4.7.4 for Symbian support for Symbian devices with
the Application TRK debug agent. the Application TRK debug agent.
\note The \QSDK 1.1.2 and \QSDK 1.1.4 do not play well together. On Windows \note Problems may arise if you install multiple instances of Qt SDK on the
and Linux, you must use separate user accounts to install them or install same development PC using the same user account. Use separate user accounts
them on separate development PCs. to install them or install them on separate development PCs.
\note Do not update \QSDK 1.1.2 with the \QSDK update tool, because \note Do not update \QSDK 1.1.2 with the \QSDK update tool, because
the updater removes App TRK support and the older targets. the updater removes App TRK support.
In general, if you use only Qt 4.6 APIs in the application, you In general, if you use only Qt 4.6 APIs in the application, you
can use \gui {S60 5th Edition Qt 4.6.3} to build it. The application is can use \gui {S60 5th Edition Qt 4.6.3} to build it. The application is

View File

@@ -29,7 +29,7 @@
\contentspage index.html \contentspage index.html
\previouspage creator-qml-components-example.html \previouspage creator-qml-components-example.html
\page creator-writing-program.html \page creator-writing-program.html
\nextpage creator-mobile-example.html \nextpage creator-project-managing.html
\title Creating a Qt Widget Based Application \title Creating a Qt Widget Based Application

View File

@@ -1,291 +0,0 @@
/****************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
**
** GNU Free Documentation License
**
** 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.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
****************************************************************************/
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\contentspage index.html
\previouspage creator-writing-program.html
\page creator-mobile-example.html
\nextpage creator-project-managing.html
\title Creating a Qt Widget Based Mobile Application
\note To complete this tutorial, you must install \QSDK.
The installation program installs and configures the necessary tool chains
for mobile application development.
This tutorial describes how to use \QC to create a small Qt
application, Battery Indicator, that uses the System Information
Mobility API to fetch battery information from the device.
The user interface for the application is designed using Qt widgets. This
enforces a platform look and feel for Symbian devices and Maemo 5 devices.
However, to achieve a platform look and feel for MeeGo Harmattan devices,
\l{Creating Qt Quick Applications}{create a Qt Quick Application} and use
the Qt Quick components for MeeGo.
\image qtcreator-batteryindicator-screenshot.png
\section1 Creating the Battery Indicator Project
\note Create the project with the \gui{Help} mode active so that you can
follow these instructions while you work.
\list 1
\o Select \gui{File > New File or Project > Qt Widget Project > Mobile
Qt Application > Choose}.
\image qtcreator-new-mobile-project.png "New File or Project dialog"
The \gui{Introduction and Project Location} dialog opens.
\image qtcreator-mobile-intro-and-location.png "Introduction and Project Location dialog"
\o In the \gui{Name} field, type \bold {BatteryIndicator}.
\o In the \gui {Create in} field, enter the path for the project files.
For example, \c {C:\Qt\examples}, and then click \gui{Next}.
The \gui{Target Setup} dialog opens.
\image qtcreator-mobile-project-qt-versions.png "Target Setup dialog"
\o Select \gui {Symbian Device}, \gui {Maemo5}, \gui Harmattan, and
\gui {Qt Simulator} targets, and click \gui{Next}.
\note Targets are listed if you installed the appropriate
development environment, for example, as part of the \QSDK. You can
add targets later in the \gui Projects mode.
The \gui {Mobile Options} dialog opens.
\image qtcreator-mobile-project-app-options.png "Mobile Options dialog"
\o In the \gui {Orientation behavior} field, determine how the
application behaves when the orientation of the device display
rotates between portrait and landscape, and then click \gui{Next}.
\note This dialog opens only if you select \gui Maemo5 or
\gui {Symbian Device} target in the \gui {Target Setup} dialog. On
Harmattan, the Qt Quick Components for MeeGo provide native-looking
rotation.
The \gui {Symbian Specific} dialog opens.
\image qtcreator-mobile-project-symbian-options.png "Symbian Specific dialog"
\note \QC contains a default program icon and generates an
\l{Application UID}, for testing the application on a device. You
only need to change the icon and UID if you deliver the application
for public use.
\o Click \gui Next.
The \gui {Maemo Specific} dialog opens.
\image qtcreator-mobile-project-maemo-options.png "Maemo Specific dialog"
\o In the \gui {Application icon} field, select the application
icon to use on Maemo 5 or Harmattan targets, or click \gui Next to
use the default icon.
The \gui{Project Management} dialog opens.
\image qtcreator-mobile-project-summary.png "Project Management dialog"
\o Review the project settings, and click \gui{Finish} to create the
project.
\endlist
The BatteryIndicator project now contains the following files:
\list
\o BatteryIndicator.pro
\o main.cpp
\o BatteryIndicator.svg
\o BatteryIndicator.png
\o BatteryIndicator.desktop
\o deployment.pri
\o mainwindow.cpp
\o mainwindow.ui
\o mainwindow.h
\o templates for Debian deployment files
\endlist
\image qtcreator-mobile-project-contents.png "Project contents"
The files come with the necessary boiler plate code that you must
modify, as described in the following sections.
\section1 Declaring the Qt Mobility API
To use the Qt Mobility APIs or develop applications for Symbian
devices, you must modify the .pro file to declare the Qt Mobility APIs
that you use.
This example uses the System Info API, so you must declare it, as
illustrated by the following code snippet:
\code
CONFIG += mobility
MOBILITY = systeminfo
\endcode
Each Mobility API has its corresponding value that you have to add
as a value of MOBILITY to use the API. For a list of the APIs and the
corresponding values that you can assign to MOBILITY, see the
\l {http://doc.qt.nokia.com/qtmobility/quickstart.html}{Quickstart Example}.
\section1 Designing the User Interface
\list 1
\o In the \gui{Editor} mode, double-click the mainwindow.ui
file in the \gui{Projects} view to launch the integrated \QD.
\o Drag and drop a \gui{Progress Bar}
(\l{http://doc.qt.nokia.com/4.7/qprogressbar.html}{QProgressBar})
widget to the form.
\image qtcreator-mobile-project-widgets.png "Adding widgets to the UI"
\o In the \gui Properties pane, change the \gui objectName to
\bold batteryLevelBar.
\o Right-click the \gui MainWindow object and select
\gui {Lay Out > Lay Out Horizontally} to ensure that the battery
indicator widget size is adjusted correctly on Maemo devices.
\endlist
\section1 Completing the Header File
The mainwindow.h file contains some of the necessary #includes, a
constructor, a destructor, and the \c{Ui} object. You must include
the System Info header file, add a shortcut to the mobility name
space, and add a private function to update the battery level value in
the indicator when the battery power level changes.
\list 1
\o In the \gui{Projects} view, double-click the \c{mainwindow.h} file
to open it for editing.
\o Include the System Device Info header file, as illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.h 1
\o Add a shortcut to the mobility name space, as illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.h 2
\o Declare a private function in the \c{private} section, after the
\c{Ui::MainWindow} function, as illustrated by the following code
snippet:
\snippet examples/batteryindicator/mainwindow.h 3
\endlist
\section1 Completing the Source File
Now that the header file is complete, move on to the source file,
mainwindow.cpp.
\list 1
\o In the \gui{Projects} view, double-click the mainwindow.cpp file
to open it for editing.
\o Create a QSystemDeviceInfo object and set its value. Then connect
the signal that indicates that battery level changed to the
\c setValue slot of the progress bar. This is illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.cpp 1
\o Use the constructor to set initial values and make sure that the
created object is in a defined state, as illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.cpp 2
\endlist
\section1 Compiling and Running Your Program
Now that you have all the necessary code, select \gui {Qt Simulator}
as the target and click the
\inlineimage qtcreator-run.png
button to build your program and run it in the Qt Simulator.
In Qt Simulator, run the runOutOfBattery.qs example script
to see the value change in the Battery Indicator application.
Select \gui {Scripting > examples > runOutOfBattery.qs > Run}.
\image qtcreator-mobile-simulated.png "Mobile example in Qt Simulator"
\section1 Testing on a Symbian Device
You also need to test the application on real devices. Before you can
start testing on Symbian devices, you must connect them to the development
PC by using a USB cable and install an on-device debugging agent on them.
\list 1
\o Install the necessary software on the device. For more information,
see \l{Connecting Symbian Devices}.
\o Start the CODA debugging agent on the device.
\o Click the \gui {Target Selector} and select \gui {Symbian Device}.
\o Click \gui Run to build the application for the Symbian device.
\endlist
\section1 Testing on the Maemo or MeeGo Harmattan Emulator
The Maemo 5 (Fremantle) and MeeGo Harmattan emulator are installed as part
of the \QSDK. After they are installed, you can start them from \QC.
The Maemo emulator emulates the Nokia N900 device environment. You can test
applications in conditions practically identical to running the application
on a Nokia N900 device with the software update release 1.3 (V20.2010.36-2).
The MeeGo Harmattan emulator emulates the Nokia N9 device environment.
For more information, see \l{Using Maemo or MeeGo Harmattan Emulator}.
*/

View File

@@ -1262,7 +1262,7 @@ def qdump__QSet(d, value):
isSimpleKey = isSimpleType(keyType) isSimpleKey = isSimpleType(keyType)
node = hashDataFirstNode(value) node = hashDataFirstNode(value)
innerType = e_ptr.dereference().type innerType = e_ptr.dereference().type
with Children(d, size, numChild=1000, childType=keyType): with Children(d, size, maxNumChild=1000, childType=innerType):
for i in xrange(size): for i in xrange(size):
it = node.dereference().cast(innerType) it = node.dereference().cast(innerType)
with SubItem(d, i): with SubItem(d, i):

View File

@@ -4,12 +4,12 @@
Q_DECL_EXPORT int main(int argc, char *argv[]) Q_DECL_EXPORT int main(int argc, char *argv[])
{ {
QScopedPointer<QApplication> app(createApplication(argc, argv)); QScopedPointer<QApplication> app(createApplication(argc, argv));
QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
viewer->addImportPath(QLatin1String("modules")); // ADDIMPORTPATH QmlApplicationViewer viewer;
viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION viewer.addImportPath(QLatin1String("modules")); // ADDIMPORTPATH
viewer->setMainQmlFile(QLatin1String("qml/app/qtquick10/main.qml")); // MAINQML viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION
viewer->showExpanded(); viewer.setMainQmlFile(QLatin1String("qml/app/qtquick10/main.qml")); // MAINQML
viewer.showExpanded();
return app->exec(); return app->exec();
} }

View File

@@ -1,4 +1,5 @@
import QtQuick 1.0 // import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Rectangle { Rectangle {
width: 360 width: 360

View File

@@ -11,10 +11,10 @@
#include <QtCore/QDir> #include <QtCore/QDir>
#include <QtCore/QFileInfo> #include <QtCore/QFileInfo>
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeComponent> #include <QtDeclarative/QDeclarativeComponent>
#include <QtDeclarative/QDeclarativeEngine> #include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeContext> #include <QtDeclarative/QDeclarativeContext>
#include <QtGui/QApplication>
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN #include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
@@ -49,12 +49,9 @@ static QmlJsDebuggingEnabler enableDebuggingHelper;
class QmlApplicationViewerPrivate class QmlApplicationViewerPrivate
{ {
QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {}
QString mainQmlFile; QString mainQmlFile;
QDeclarativeView *view;
friend class QmlApplicationViewer; friend class QmlApplicationViewer;
QString adjustPath(const QString &path); static QString adjustPath(const QString &path);
}; };
QString QmlApplicationViewerPrivate::adjustPath(const QString &path) QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
@@ -76,34 +73,17 @@ QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
: QDeclarativeView(parent) : QDeclarativeView(parent)
, d(new QmlApplicationViewerPrivate(this)) , d(new QmlApplicationViewerPrivate())
{ {
connect(engine(), SIGNAL(quit()), SLOT(close())); connect(engine(), SIGNAL(quit()), SLOT(close()));
setResizeMode(QDeclarativeView::SizeRootObjectToView); setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 #if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#if !defined(NO_JSDEBUGGER) #if !defined(NO_JSDEBUGGER)
new QmlJSDebugger::JSDebuggerAgent(d->view->engine()); new QmlJSDebugger::JSDebuggerAgent(engine());
#endif #endif
#if !defined(NO_QMLOBSERVER) #if !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); new QmlJSDebugger::QDeclarativeViewObserver(this, this);
#endif
#endif
}
QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent)
: QDeclarativeView(parent)
, d(new QmlApplicationViewerPrivate(view))
{
connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));
view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#if !defined(NO_JSDEBUGGER)
new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
#endif
#if !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
#endif #endif
#endif #endif
} }
@@ -115,22 +95,18 @@ QmlApplicationViewer::~QmlApplicationViewer()
QmlApplicationViewer *QmlApplicationViewer::create() QmlApplicationViewer *QmlApplicationViewer::create()
{ {
#ifdef HARMATTAN_BOOSTER
return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0);
#else
return new QmlApplicationViewer(); return new QmlApplicationViewer();
#endif
} }
void QmlApplicationViewer::setMainQmlFile(const QString &file) void QmlApplicationViewer::setMainQmlFile(const QString &file)
{ {
d->mainQmlFile = d->adjustPath(file); d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile)); setSource(QUrl::fromLocalFile(d->mainQmlFile));
} }
void QmlApplicationViewer::addImportPath(const QString &path) void QmlApplicationViewer::addImportPath(const QString &path)
{ {
d->view->engine()->addImportPath(d->adjustPath(path)); engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
} }
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation) void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
@@ -179,11 +155,11 @@ void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
void QmlApplicationViewer::showExpanded() void QmlApplicationViewer::showExpanded()
{ {
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR) #if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
d->view->showFullScreen(); showFullScreen();
#elif defined(Q_WS_MAEMO_5) #elif defined(Q_WS_MAEMO_5)
d->view->showMaximized(); showMaximized();
#else #else
d->view->show(); show();
#endif #endif
} }

View File

@@ -37,7 +37,6 @@ public:
void showExpanded(); void showExpanded();
private: private:
explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent);
class QmlApplicationViewerPrivate *d; class QmlApplicationViewerPrivate *d;
}; };

View File

@@ -1737,7 +1737,7 @@
<name>Core::Internal::OpenWithDialog</name> <name>Core::Internal::OpenWithDialog</name>
<message> <message>
<source>Open file &apos;%1&apos; with:</source> <source>Open file &apos;%1&apos; with:</source>
<translation>Öffne &apos;%1; mit:</translation> <translation>Öffne &apos;%1&apos; mit:</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -4832,7 +4832,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message> </message>
<message> <message>
<source>No user defined filters available or no filter selected.</source> <source>No user defined filters available or no filter selected.</source>
<translation>Es sind keine benutzerdefinierten Filter vorhanden beziehungsweise ausgewählt.</translation> <translation>Es sind keine benutzerdefinierten Filter vorhanden oder ausgewählt.</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -6255,7 +6255,7 @@ rückgängig machen?</translation>
</message> </message>
<message> <message>
<source>No user defined filters available or no filter selected.</source> <source>No user defined filters available or no filter selected.</source>
<translation>Es sind keine benutzerdefinierten Filter vorhanden beziehungsweise ausgewählt.</translation> <translation>Es sind keine benutzerdefinierten Filter vorhanden oder ausgewählt.</translation>
</message> </message>
<message> <message>
<source>The filter &quot;%1&quot; will show every documentation file available, as no attributes are specified.</source> <source>The filter &quot;%1&quot; will show every documentation file available, as no attributes are specified.</source>
@@ -9046,7 +9046,7 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü
</message> </message>
<message> <message>
<source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;</source> <source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;</source>
<translation>Erstellt qmake-basierte C++-Bibliotheken:&lt;ul&gt;&lt;li&gt;Dynamisch linkbare C++-Bibliothek zur Verwendung mit &lt;tt&gt;QPluginLoader&lt;/tt&gt; zur Laufzeit (Plugin)&lt;/li&gt;&lt;li&gt;Statisch oder dynamisch linkbare C++-Bibliothek zur Verwendung in einem anderen Projekt zur Linkzeit&lt;/li&gt;&lt;/ul&gt;.</translation> <translation>Erstellt qmake-basierte C++-Bibliotheken:&lt;ul&gt;&lt;li&gt;Dynamisch linkbare C++-Bibliothek zur Verwendung mit &lt;tt&gt;QPluginLoader&lt;/tt&gt; zur Laufzeit (Plugin)&lt;/li&gt;&lt;li&gt;Statisch oder dynamisch linkbare C++-Bibliothek zur Verwendung in einem anderen Projekt zur Linkzeit&lt;/li&gt;&lt;/ul&gt;</translation>
</message> </message>
<message> <message>
<source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;.</source> <source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;.</source>
@@ -20146,7 +20146,7 @@ imported JavaScript libraries. Indicating that a library is
stateless means that a single instance will be shared among stateless means that a single instance will be shared among
all components. Stateless libraries will not be able to access all components. Stateless libraries will not be able to access
QML component instance objects and properties directly.</source> QML component instance objects and properties directly.</source>
<translation>Für gewöhnlich hat jede Instanz eine QML-Komponente eine eindeutige Kopie <translation>Für gewöhnlich hat jede Instanz einer QML-Komponente eine eindeutige Kopie
der importierten Java-Script-Bibliotheken. Eine zustandslose Bibliothek wird der importierten Java-Script-Bibliotheken. Eine zustandslose Bibliothek wird
von allen Komponenten verwendet. Zustandslose Bibliotheken können nicht direkt von allen Komponenten verwendet. Zustandslose Bibliotheken können nicht direkt
auf Instanzen von QML-Komponenten-Objekten und Eigenschaften zugreifen.</translation> auf Instanzen von QML-Komponenten-Objekten und Eigenschaften zugreifen.</translation>
@@ -21662,7 +21662,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
</message> </message>
<message> <message>
<source>Bazaar Clone (Or Branch)</source> <source>Bazaar Clone (Or Branch)</source>
<translation>Bazaar Clone (bzw. Branch)</translation> <translation>Bazaar Clone (oder Branch)</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -26850,7 +26850,7 @@ Erfordert Qt 4.7.4 oder neuer sowie die Installation des Komponentensatzes für
</message> </message>
<message> <message>
<source>Application icon (80x80):</source> <source>Application icon (80x80):</source>
<translation>Icon der Anwendung n (80x80):</translation> <translation>Icon der Anwendung (80x80):</translation>
</message> </message>
<message> <message>
<source>Generate code to speed up the launching on the device.</source> <source>Generate code to speed up the launching on the device.</source>

File diff suppressed because it is too large Load Diff

View File

@@ -667,6 +667,8 @@ void PluginManager::startTests()
{ {
#ifdef WITH_TESTS #ifdef WITH_TESTS
foreach (PluginSpec *pluginSpec, d->testSpecs) { foreach (PluginSpec *pluginSpec, d->testSpecs) {
if (!pluginSpec->plugin())
continue;
const QMetaObject *mo = pluginSpec->plugin()->metaObject(); const QMetaObject *mo = pluginSpec->plugin()->metaObject();
QStringList methods; QStringList methods;
methods.append("arg0"); methods.append("arg0");
@@ -678,7 +680,10 @@ void PluginManager::startTests()
methods.append(method.left(method.size()-2)); methods.append(method.left(method.size()-2));
} }
} }
QTest::qExec(pluginSpec->plugin(), methods); // Don't run QTest::qExec with only one argument, that'd run
// *all* slots as tests.
if (methods.size() > 1)
QTest::qExec(pluginSpec->plugin(), methods);
} }
if (!d->testSpecs.isEmpty()) if (!d->testSpecs.isEmpty())
QTimer::singleShot(1, QCoreApplication::instance(), SLOT(quit())); QTimer::singleShot(1, QCoreApplication::instance(), SLOT(quit()));

View File

@@ -219,8 +219,6 @@ public:
// list of dock widgets to prevent memory leak // list of dock widgets to prevent memory leak
typedef QWeakPointer<QDockWidget> DockPtr; typedef QWeakPointer<QDockWidget> DockPtr;
QList<DockPtr> m_dockWidgets; QList<DockPtr> m_dockWidgets;
bool m_restartOnStop;
}; };
AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq): AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq):
@@ -235,8 +233,7 @@ AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq):
m_menu(0), m_menu(0),
m_toolBox(new QComboBox), m_toolBox(new QComboBox),
m_controlsStackWidget(new QStackedWidget), m_controlsStackWidget(new QStackedWidget),
m_statusLabel(new Utils::StatusLabel), m_statusLabel(new Utils::StatusLabel)
m_restartOnStop(false)
{ {
m_toolBox->setObjectName(QLatin1String("AnalyzerManagerToolBox")); m_toolBox->setObjectName(QLatin1String("AnalyzerManagerToolBox"));
connect(m_toolBox, SIGNAL(activated(int)), SLOT(selectToolboxAction(int))); connect(m_toolBox, SIGNAL(activated(int)), SLOT(selectToolboxAction(int)));
@@ -519,26 +516,6 @@ void AnalyzerManagerPrivate::startLocalTool(IAnalyzerTool *tool, StartMode)
buildType = buildConfig->buildType(); buildType = buildConfig->buildType();
} }
} }
if (!runConfig || !runConfig->isEnabled())
return;
// Check if there already is an analyzer run.
if (m_isRunning) {
// ask if user wants to restart the analyzer
const QString msg = tr("<html><head/><body><center><i>%1</i> is still running. "
"You have to quit the Analyzer before being able to run another instance."
"<center/><center>Force it to quit?</center></body></html>")
.arg(m_currentTool->displayName());
bool stopRequested = showPromptDialog(tr("Analyzer Still Running"), msg,
tr("Stop Active Run"), tr("Keep Running"));
if (!stopRequested)
return; // no restart, keep it running, do nothing
// user selected to stop the active run. stop it, activate restart on stop
m_restartOnStop = true;
q->stopTool();
return;
}
IAnalyzerTool::ToolMode toolMode = tool->toolMode(); IAnalyzerTool::ToolMode toolMode = tool->toolMode();
@@ -586,9 +563,7 @@ void AnalyzerManagerPrivate::startLocalTool(IAnalyzerTool *tool, StartMode)
return; return;
} }
m_isRunning = true;
pe->runProject(pro, tool->id().toString()); pe->runProject(pro, tool->id().toString());
updateRunActions();
} }
void AnalyzerManagerPrivate::startTool() void AnalyzerManagerPrivate::startTool()
@@ -730,18 +705,11 @@ void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, const StartModes &mode
void AnalyzerManagerPrivate::handleToolStarted() void AnalyzerManagerPrivate::handleToolStarted()
{ {
m_isRunning = true; // FIXME: Make less global. m_isRunning = true; // FIXME: Make less global.
updateRunActions();
} }
void AnalyzerManagerPrivate::handleToolFinished() void AnalyzerManagerPrivate::handleToolFinished()
{ {
m_isRunning = false; m_isRunning = false;
updateRunActions();
if (m_restartOnStop) {
m_currentTool->startTool(m_currentMode);
m_restartOnStop = false;
}
} }
void AnalyzerManagerPrivate::loadToolSettings(IAnalyzerTool *tool) void AnalyzerManagerPrivate::loadToolSettings(IAnalyzerTool *tool)
@@ -791,7 +759,7 @@ void AnalyzerManagerPrivate::updateRunActions()
m_toolBox->setEnabled(!m_isRunning); m_toolBox->setEnabled(!m_isRunning);
m_stopAction->setEnabled(m_isRunning); m_stopAction->setEnabled(m_isRunning);
foreach (QAction *action, m_actions) foreach (QAction *action, m_actions)
action->setEnabled(!m_isRunning); action->setEnabled(startEnabled);
} }
void AnalyzerManagerPrivate::onCurrentProjectChanged(Project *project) void AnalyzerManagerPrivate::onCurrentProjectChanged(Project *project)

View File

@@ -94,7 +94,6 @@ AnalyzerRunControl::AnalyzerRunControl(IAnalyzerTool *tool,
SLOT(addTask(ProjectExplorer::Task::TaskType,QString,QString,int))); SLOT(addTask(ProjectExplorer::Task::TaskType,QString,QString,int)));
connect(d->m_engine, SIGNAL(finished()), connect(d->m_engine, SIGNAL(finished()),
SLOT(engineFinished())); SLOT(engineFinished()));
connect(this, SIGNAL(finished()), SLOT(runControlFinished()), Qt::QueuedConnection);
} }
AnalyzerRunControl::~AnalyzerRunControl() AnalyzerRunControl::~AnalyzerRunControl()
@@ -114,6 +113,8 @@ void AnalyzerRunControl::start()
return; return;
} }
AnalyzerManager::handleToolStarted();
// clear about-to-be-outdated tasks // clear about-to-be-outdated tasks
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
TaskHub *hub = pm->getObject<TaskHub>(); TaskHub *hub = pm->getObject<TaskHub>();
@@ -145,12 +146,8 @@ void AnalyzerRunControl::stopIt()
void AnalyzerRunControl::engineFinished() void AnalyzerRunControl::engineFinished()
{ {
d->m_isRunning = false; d->m_isRunning = false;
emit finished();
}
void AnalyzerRunControl::runControlFinished()
{
AnalyzerManager::handleToolFinished(); AnalyzerManager::handleToolFinished();
emit finished();
} }
bool AnalyzerRunControl::isRunning() const bool AnalyzerRunControl::isRunning() const

View File

@@ -69,7 +69,6 @@ private slots:
const QString &file, int line); const QString &file, int line);
void engineFinished(); void engineFinished();
void runControlFinished();
private: private:
class Private; class Private;

View File

@@ -56,7 +56,7 @@ using namespace Bazaar;
BazaarEditor::BazaarEditor(const VCSBase::VCSBaseEditorParameters *type, QWidget *parent) BazaarEditor::BazaarEditor(const VCSBase::VCSBaseEditorParameters *type, QWidget *parent)
: VCSBase::VCSBaseEditorWidget(type, parent), : VCSBase::VCSBaseEditorWidget(type, parent),
m_exactChangesetId(QLatin1String(Constants::CHANGESET_ID_EXACT)), m_exactChangesetId(QLatin1String(Constants::CHANGESET_ID_EXACT)),
m_diffFileId(QLatin1String("^=== modified file '(.*)'\\s*$")) m_diffFileId(QLatin1String("^=== [a-z]+ [a-z]+ '(.*)'\\s*"))
{ {
setAnnotateRevisionTextFormat(tr("Annotate %1")); setAnnotateRevisionTextFormat(tr("Annotate %1"));
setAnnotatePreviousRevisionTextFormat(tr("Annotate parent revision %1")); setAnnotatePreviousRevisionTextFormat(tr("Annotate parent revision %1"));
@@ -109,7 +109,7 @@ VCSBase::BaseAnnotationHighlighter *BazaarEditor::createAnnotationHighlighter(co
QString BazaarEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString BazaarEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const
{ {
// Check for: // Check for:
// === modified file 'mainwindow.cpp' // === <change> <file|dir> 'mainwindow.cpp'
for (QTextBlock block = inBlock; block.isValid(); block = block.previous()) { for (QTextBlock block = inBlock; block.isValid(); block = block.previous()) {
const QString line = block.text(); const QString line = block.text();
if (m_diffFileId.indexIn(line) != -1) if (m_diffFileId.indexIn(line) != -1)

View File

@@ -634,6 +634,8 @@ void CPPEditorWidget::abortRename()
m_currentRenameSelectionBegin = QTextCursor(); m_currentRenameSelectionBegin = QTextCursor();
m_currentRenameSelectionEnd = QTextCursor(); m_currentRenameSelectionEnd = QTextCursor();
setExtraSelections(CodeSemanticsSelection, m_renameSelections); setExtraSelections(CodeSemanticsSelection, m_renameSelections);
semanticRehighlight(/* force = */ true);
} }
void CPPEditorWidget::onDocumentUpdated(Document::Ptr doc) void CPPEditorWidget::onDocumentUpdated(Document::Ptr doc)
@@ -2133,7 +2135,7 @@ TextEditor::IAssistInterface *CPPEditorWidget::createAssistInterface(
includePaths, includePaths,
frameworkPaths); frameworkPaths);
} else if (kind == TextEditor::QuickFix) { } else if (kind == TextEditor::QuickFix) {
if (!semanticInfo().doc || semanticInfo().revision != editorRevision()) if (!semanticInfo().doc || isOutdated())
return 0; return 0;
return new CppQuickFixAssistInterface(const_cast<CPPEditorWidget *>(this), reason); return new CppQuickFixAssistInterface(const_cast<CPPEditorWidget *>(this), reason);
} }

View File

@@ -94,6 +94,8 @@ bool BaseWindow::handleBaseContextAction(QAction *act)
return true; return true;
} }
if (act == m_alwaysAdjustColumnsAction) { if (act == m_alwaysAdjustColumnsAction) {
if (act->isChecked())
resizeColumnsToContents();
// Action triggered automatically. // Action triggered automatically.
return true; return true;
} }
@@ -121,5 +123,13 @@ void BaseWindow::setAlwaysResizeColumnsToContents(bool on)
header()->setResizeMode(0, mode); header()->setResizeMode(0, mode);
} }
void BaseWindow::reset()
{
QTreeView::reset();
if (header() && m_alwaysAdjustColumnsAction
&& m_alwaysAdjustColumnsAction->isChecked())
resizeColumnsToContents();
}
} // namespace Internal } // namespace Internal
} // namespace Debugger } // namespace Debugger

View File

@@ -59,6 +59,7 @@ public slots:
private slots: private slots:
void setAlternatingRowColorsHelper(bool on) { setAlternatingRowColors(on); } void setAlternatingRowColorsHelper(bool on) { setAlternatingRowColors(on); }
void rowActivatedHelper(const QModelIndex &index) { rowActivated(index); } void rowActivatedHelper(const QModelIndex &index) { rowActivated(index); }
void reset();
private: private:
QAction *m_alwaysAdjustColumnsAction; QAction *m_alwaysAdjustColumnsAction;

View File

@@ -67,7 +67,8 @@ QString QmlFileWizard::fileContents(const QString &fileName) const
// str << CppTools::AbstractEditorSupport::licenseTemplate(); // str << CppTools::AbstractEditorSupport::licenseTemplate();
// 100:62 is the 'golden ratio' // 100:62 is the 'golden ratio'
str << QLatin1String("import QtQuick 1.0\n") str << QLatin1String("// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5\n")
<< QLatin1String("import QtQuick 1.1\n")
<< QLatin1String("\n") << QLatin1String("\n")
<< QLatin1String("Rectangle {\n") << QLatin1String("Rectangle {\n")
<< QLatin1String(" width: 100\n") << QLatin1String(" width: 100\n")

View File

@@ -206,7 +206,6 @@ bool QmlProfilerEngine::start()
d->m_fetchingData = true; d->m_fetchingData = true;
} }
AnalyzerManager::handleToolStarted();
emit starting(this); emit starting(this);
return true; return true;
} }

View File

@@ -119,7 +119,8 @@ Core::GeneratedFiles QmlProjectApplicationWizard::generateFiles(const QWizard *w
QTextStream out(&contents); QTextStream out(&contents);
out out
<< "import QtQuick 1.0" << endl << "// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5" << endl
<< "import QtQuick 1.1" << endl
<< endl << endl
<< "Rectangle {" << endl << "Rectangle {" << endl
<< " width: 360" << endl << " width: 360" << endl

View File

@@ -695,10 +695,7 @@ void QMakeStepConfigWidget::updateQmlDebuggingOption()
m_ui->qmlDebuggingLibraryCheckBox->setEnabled(m_step->isQmlDebuggingLibrarySupported()); m_ui->qmlDebuggingLibraryCheckBox->setEnabled(m_step->isQmlDebuggingLibrarySupported());
QtSupport::BaseQtVersion *qtVersion = m_step->qt4BuildConfiguration()->qtVersion(); QtSupport::BaseQtVersion *qtVersion = m_step->qt4BuildConfiguration()->qtVersion();
if (!qtVersion || !qtVersion->needsQmlDebuggingLibrary()) m_ui->debuggingLibraryLabel->setText(tr("Enable QML debugging:"));
m_ui->debuggingLibraryLabel->setText(tr("Enable QML debugging:"));
else
m_ui->debuggingLibraryLabel->setText(tr("Link QML debugging library:"));
QString warningText; QString warningText;

View File

@@ -466,7 +466,7 @@ QString QtQuickApp::componentSetDir(ComponentSet componentSet) const
} }
} }
const int QtQuickApp::StubVersion = 18; const int QtQuickApp::StubVersion = 19;
} // namespace Internal } // namespace Internal
} // namespace Qt4ProjectManager } // namespace Qt4ProjectManager

View File

@@ -796,8 +796,7 @@ DiffChunk VCSBaseEditorWidget::diffChunk(QTextCursor cursor) const
DiffChunk rc; DiffChunk rc;
// Search back for start of chunk. // Search back for start of chunk.
QTextBlock block = cursor.block(); QTextBlock block = cursor.block();
QTextBlock next = block.next(); if (block.isValid() && TextEditor::BaseTextDocumentLayout::foldingIndent(block) <= 1)
if (next.isValid() && TextEditor::BaseTextDocumentLayout::foldingIndent(next) <= 1)
/* We are in a diff header, not in a chunk! DiffHighlighter sets the foldingIndent for us. */ /* We are in a diff header, not in a chunk! DiffHighlighter sets the foldingIndent for us. */
return rc; return rc;

View File

@@ -18,7 +18,6 @@ contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
!macx { !macx {
win32 { win32 {
target.path = /bin target.path = /bin
target.files = $$DESTDIR/$${TARGET}.dll
} else { } else {
target.path = /$$IDE_LIBRARY_BASENAME/qtcreator target.path = /$$IDE_LIBRARY_BASENAME/qtcreator
} }

View File

@@ -2269,7 +2269,7 @@ ProStringList ProFileEvaluator::Private::evaluateExpandFunction(
src = s; src = s;
break; break;
} }
ret.append(ProString(before + var.join(glue) + after, NoHash).setSource(src)); ret = split_value_list(before + var.join(glue) + after, src);
} }
} }
break; break;

View File

@@ -42,9 +42,20 @@
<value type="bool" key="isAutodetected">false</value> <value type="bool" key="isAutodetected">false</value>
</valuemap> </valuemap>
</data> </data>
<data>
<variable>QtVersion.4</variable>
<valuemap type="QVariantMap">
<value type="int" key="Id">1</value>
<value type="QString" key="Name">Harmattan Target (Qt SDK)</value>
<value type="QString" key="QMakePath">~/QtSDK/Madde/targets/harmattan_10.2011.34-1/bin/qmake</value>
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Maemo</value>
<value type="QString" key="autodetectionSource">SDK.MeeGo_1.2_Harmattan_API</value>
<value type="bool" key="isAutodetected">true</value>
</valuemap>
</data>
<data> <data>
<variable>QtVersion.Count</variable> <variable>QtVersion.Count</variable>
<value type="int">4</value> <value type="int">5</value>
</data> </data>
<data> <data>
<variable>Version</variable> <variable>Version</variable>

View File

@@ -74,12 +74,12 @@
<variable>QtVersion.6</variable> <variable>QtVersion.6</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="int" key="Id">12</value> <value type="int" key="Id">12</value>
<value type="QString" key="Name">Qt 4.7.3 for Symbian^3 (Qt SDK)</value> <value type="QString" key="Name">Qt 4.7.4 for Symbian Anna (Qt SDK)</value>
<value type="QString" key="QMakePath">c:/qtsdk/symbian/sdks/symbian3qt473/bin/qmake.exe</value> <value type="QString" key="QMakePath">c:/qtsdk/symbian/sdks/symbian3qt474/bin/qmake.exe</value>
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Symbian</value> <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Symbian</value>
<value type="QString" key="SBSv2Directory">C:/QtSDK/Symbian/tools/sbs/bin</value> <value type="QString" key="SBSv2Directory">C:/QtSDK/Symbian/tools/sbs/bin</value>
<value type="QString" key="SystemRoot">C:/QtSDK/Symbian/SDKs/Symbian3Qt473/</value> <value type="QString" key="SystemRoot">C:/QtSDK/Symbian/SDKs/Symbian3Qt474/</value>
<value type="QString" key="autodetectionSource">SDK.C:/QtSDK/Symbian/SDKs/Symbian3Qt473</value> <value type="QString" key="autodetectionSource">SDK.C:/QtSDK/Symbian/SDKs/Symbian3Qt474</value>
<value type="bool" key="isAutodetected">true</value> <value type="bool" key="isAutodetected">true</value>
</valuemap> </valuemap>
</data> </data>
@@ -87,7 +87,7 @@
<variable>QtVersion.7</variable> <variable>QtVersion.7</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="int" key="Id">13</value> <value type="int" key="Id">13</value>
<value type="QString" key="Name">Qt 4.7.3 for Symbian^1 (Qt SDK)</value> <value type="QString" key="Name">Qt 4.7.3 for S60 5th Edition (Qt SDK)</value>
<value type="QString" key="QMakePath">c:/qtsdk/symbian/sdks/symbian1qt473/bin/qmake.exe</value> <value type="QString" key="QMakePath">c:/qtsdk/symbian/sdks/symbian1qt473/bin/qmake.exe</value>
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Symbian</value> <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Symbian</value>
<value type="QString" key="SBSv2Directory"></value> <value type="QString" key="SBSv2Directory"></value>
@@ -98,21 +98,10 @@
</data> </data>
<data> <data>
<variable>QtVersion.8</variable> <variable>QtVersion.8</variable>
<valuemap type="QVariantMap">
<value type="int" key="Id">14</value>
<value type="QString" key="Name">Harmattan Platform API (Qt SDK)</value>
<value type="QString" key="QMakePath">c:/qtsdk/madde/targets/harmattan-platform-api/bin/qmake.exe</value>
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Maemo</value>
<value type="QString" key="autodetectionSource">SDK.Harmattan_Platform_API</value>
<value type="bool" key="isAutodetected">true</value>
</valuemap>
</data>
<data>
<variable>QtVersion.9</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="int" key="Id">15</value> <value type="int" key="Id">15</value>
<value type="QString" key="Name">MeeGo 1.2 Harmattan API (Qt SDK)</value> <value type="QString" key="Name">Harmattan Target (Qt SDK)</value>
<value type="QString" key="QMakePath">c:/qtsdk/madde/targets/harmattan-nokia-meego-api/bin/qmake.exe</value> <value type="QString" key="QMakePath">c:/qtsdk/madde/targets/harmattan_10.2011.34-1/bin/qmake.exe</value>
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Maemo</value> <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Maemo</value>
<value type="QString" key="autodetectionSource">SDK.MeeGo_1.2_Harmattan_API</value> <value type="QString" key="autodetectionSource">SDK.MeeGo_1.2_Harmattan_API</value>
<value type="bool" key="isAutodetected">true</value> <value type="bool" key="isAutodetected">true</value>
@@ -120,7 +109,7 @@
</data> </data>
<data> <data>
<variable>QtVersion.Count</variable> <variable>QtVersion.Count</variable>
<value type="int">10</value> <value type="int">9</value>
</data> </data>
<data> <data>
<variable>Version</variable> <variable>Version</variable>

View File

@@ -43,11 +43,10 @@ def prepareQmlFile():
originalText = "%s" % editor.plainText originalText = "%s" % editor.plainText
indented = editor.plainText indented = editor.plainText
unindented = "" unindented = ""
lines = str(indented).split("\n") lines = str(indented).splitlines()
test.log("Using %d lines..." % len(lines)) test.log("Using %d lines..." % len(lines))
for line in lines: for line in lines:
unindented += line.lstrip()+"\n" unindented += line.lstrip()+"\n"
unindented=unindented[0:-1]
editor.plainText = unindented editor.plainText = unindented
return True return True
@@ -63,11 +62,13 @@ def testReIndent():
"window=':Qt Creator_Core::Internal::MainWindow'}") "window=':Qt Creator_Core::Internal::MainWindow'}")
type(editor, "<Ctrl+A>") type(editor, "<Ctrl+A>")
test.log("calling re-indent") test.log("calling re-indent")
starttime = datetime.utcnow()
type(editor, "<Ctrl+I>") type(editor, "<Ctrl+I>")
waitFor("textHasChanged==True", 20000) waitFor("textHasChanged==True", 25000)
endtime = datetime.utcnow()
textAfterReIndent = "%s" % editor.plainText textAfterReIndent = "%s" % editor.plainText
if originalText==textAfterReIndent: if originalText==textAfterReIndent:
test.passes("Text successfully reindented...") test.passes("Text successfully re-indented within %d seconds" % (endtime-starttime).seconds)
else: else:
# shrink the texts - it's huge output that takes long time to finish & screenshot is taken as well # shrink the texts - it's huge output that takes long time to finish & screenshot is taken as well
originalText = shrinkText(originalText, 20) originalText = shrinkText(originalText, 20)