summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@nokia.com>2011-09-15 11:50:29 +0200
committerEike Ziller <eike.ziller@nokia.com>2011-09-15 11:50:29 +0200
commitb0efd44d20e9129c40b47ad3715c248962a947b9 (patch)
tree4415eccb62e5fca5bf1f83d19f1cdaad6ca339e7
parent8801c76a8e223b6f41a8369e75c71b67237d8d25 (diff)
parent33cd873d56f948b4805da31adaf436618ac7edac (diff)
downloadqt-creator-b0efd44d20e9129c40b47ad3715c248962a947b9.tar.gz
Merge remote-tracking branch 'origin/2.3'
Conflicts: qtcreator.pri qtcreator.pro share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp src/plugins/qt4projectmanager/qt4buildconfiguration.cpp src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp src/plugins/remotelinux/remotelinuxruncontrol.cpp Change-Id: I9c89ba9fa2928e14e148041f9001856dce47a20b
-rw-r--r--bin/bin.pro1
-rw-r--r--dist/changes-2.3.159
-rw-r--r--doc/config/qtcreator-project.qdocconf9
-rw-r--r--doc/doc.pri2
-rw-r--r--doc/images/qtcreator-build-settings-maemo.pngbin0 -> 61258 bytes
-rw-r--r--doc/images/qtcreator-dev-conf-maemo.pngbin0 -> 11682 bytes
-rw-r--r--doc/images/qtcreator-maemo-device-configurations.pngbin25979 -> 25803 bytes
-rw-r--r--doc/images/qtcreator-maemo-emulator-connection.pngbin12610 -> 12096 bytes
-rw-r--r--doc/images/qtcreator-meego-device-configurations.pngbin0 -> 25979 bytes
-rw-r--r--doc/images/qtcreator-meego-emulator-connection.pngbin0 -> 12610 bytes
-rw-r--r--doc/images/qtcreator-run-settings-maemo.pngbin0 -> 97575 bytes
-rw-r--r--doc/images/qtcreator-screenshot-build-settings.pngbin61258 -> 36833 bytes
-rw-r--r--doc/images/qtcreator-screenshot-run-settings.pngbin56845 -> 45445 bytes
-rw-r--r--doc/images/remotecompiler-fn-logon.pngbin49325 -> 70717 bytes
-rw-r--r--doc/linuxdev-keys.qdocinc25
-rw-r--r--doc/linuxdev-processes.qdocinc13
-rw-r--r--doc/linuxdev.qdoc4
-rw-r--r--doc/maemodev.qdoc199
-rw-r--r--doc/meegodev.qdoc462
-rw-r--r--doc/qtcreator.qdoc92
-rw-r--r--doc/symbiandev.qdoc255
-rw-r--r--lib/qtcreator/qtcomponents/qtcomponents.pro2
-rw-r--r--qtcreator.pro1
-rw-r--r--share/qtcreator/templates/qtquickapp/app.pro8
-rw-r--r--share/qtcreator/templates/qtquickapp/main.cpp16
-rw-r--r--share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp75
-rw-r--r--share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.h7
-rw-r--r--share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.pri4
-rw-r--r--share/qtcreator/translations/qtcreator_ja.ts101
-rw-r--r--share/qtcreator/translations/qtcreator_ru.ts151
-rw-r--r--share/qtcreator/translations/qtcreator_zh_CN.ts133
-rw-r--r--src/libs/qtcomponents/styleitem/styleitem.pro2
-rw-r--r--src/plugins/bineditor/bineditor.cpp4
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp3
-rw-r--r--src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri2
-rw-r--r--src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp4
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp39
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h6
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp6
-rw-r--r--src/plugins/qt4projectmanager/qt4buildconfiguration.cpp5
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.pro1
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanagerconstants.h1
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp27
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileapp.h7
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp8
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h3
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui95
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui2
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp150
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h24
-rw-r--r--src/plugins/qt4projectmanager/wizards/qtquickapp.cpp14
-rw-r--r--src/plugins/remotelinux/maemopackagecreationwidget.cpp13
-rw-r--r--src/plugins/remotelinux/qt4maemotarget.cpp91
-rw-r--r--src/plugins/remotelinux/remotelinuxruncontrol.cpp5
56 files changed, 1546 insertions, 589 deletions
diff --git a/bin/bin.pro b/bin/bin.pro
index 14bbb6b36e..523cc50bd1 100644
--- a/bin/bin.pro
+++ b/bin/bin.pro
@@ -5,6 +5,7 @@ OBJECTS_DIR =
PRE_TARGETDEPS = $$PWD/qtcreator.sh
QMAKE_LINK = cp $$PWD/qtcreator.sh $@ && : IGNORE REST OF LINE:
+QMAKE_STRIP =
QMAKE_CLEAN = qtcreator.sh
diff --git a/dist/changes-2.3.1 b/dist/changes-2.3.1
new file mode 100644
index 0000000000..f029e4464b
--- /dev/null
+++ b/dist/changes-2.3.1
@@ -0,0 +1,59 @@
+Qt Creator version 2.3.1 contains bug fixes on top of 2.3.
+
+The most important changes are listed in this document. For a complete
+list of changes, see the Git log for the Qt Creator sources that
+you can check out from the public Git repository. For example:
+
+git clone git://gitorious.org/qt-creator/qt-creator.git
+git log --cherry-pick --pretty=oneline v2.3.0..origin/2.3
+
+General
+
+Editing
+
+Managing Projects
+ * Respect qmake arguments for imported build
+
+Debugging
+
+Debugging QML/JS
+ * Fix debugging of a Qt Quick UI project with C++ language (QTCREATORBUG-5957)
+
+Analyzing Code
+
+C++ Support
+
+QML/JS Support
+
+Qt Quick Designer
+ * Fix problems on 64bit linux
+
+Help
+
+Platform Specific
+
+Mac
+
+Linux (GNOME and KDE)
+
+Windows
+
+Symbian Target
+ * Warn if EPOCROOT is on different drive from the sources
+ * Fix several debugging issues with CODA 4.0.23
+ * Qt Quick Application wizard: Fix qmake dependency to Qt Quick Components for Symbian (QTCREATORBUG-6075)
+
+Remote Linux Support
+ * Harmattan: Include Aegis manifest file in list of files to add to project
+ * Harmattan: Use Meego booster for Qt Quick Applications
+
+Qt Designer
+
+FakeVim
+
+Version control plugins
+
+Additional credits go to:
+ * Axasia for updating the Japanese translations
+ * Beaver Xu for updating the Chinese translations
+ * Sergey Belyashov for updating the Russian translations
diff --git a/doc/config/qtcreator-project.qdocconf b/doc/config/qtcreator-project.qdocconf
index 50a644b160..40d24c6048 100644
--- a/doc/config/qtcreator-project.qdocconf
+++ b/doc/config/qtcreator-project.qdocconf
@@ -13,8 +13,13 @@ include(macros.qdocconf)
include(qt-cpp-ignore.qdocconf)
include(qt-defines.qdocconf)
-sources.fileextensions = "qtcreator.qdoc maemodev.qdoc symbiandev.qdoc addressbook-sdk.qdoc qtcreator-faq.qdoc linuxdev.qdoc"
-
+sources.fileextensions = "qtcreator.qdoc \
+ maemodev.qdoc \
+ symbiandev.qdoc \
+ addressbook-sdk.qdoc \
+ qtcreator-faq.qdoc \
+ linuxdev.qdoc \
+ meegodev.qdoc"
qhp.projects = QtCreator
qhp.QtCreator.file = qtcreator.qhp
diff --git a/doc/doc.pri b/doc/doc.pri
index 4b30dfb146..cb78861191 100644
--- a/doc/doc.pri
+++ b/doc/doc.pri
@@ -83,5 +83,5 @@ OTHER_FILES = $$HELP_DEP_FILES $$DEV_HELP_DEP_FILES
fixnavi.commands = \
cd $$targetPath($$PWD) && \
perl fixnavi.pl -Dqcmanual -Dqtquick \
- qtcreator.qdoc maemodev.qdoc symbiandev.qdoc qtcreator-faq.qdoc linuxdev.qdoc
+ qtcreator.qdoc maemodev.qdoc symbiandev.qdoc qtcreator-faq.qdoc linuxdev.qdoc meegodev.qdoc
QMAKE_EXTRA_TARGETS += fixnavi
diff --git a/doc/images/qtcreator-build-settings-maemo.png b/doc/images/qtcreator-build-settings-maemo.png
new file mode 100644
index 0000000000..4ed46758d9
--- /dev/null
+++ b/doc/images/qtcreator-build-settings-maemo.png
Binary files differ
diff --git a/doc/images/qtcreator-dev-conf-maemo.png b/doc/images/qtcreator-dev-conf-maemo.png
new file mode 100644
index 0000000000..2d8199bcef
--- /dev/null
+++ b/doc/images/qtcreator-dev-conf-maemo.png
Binary files differ
diff --git a/doc/images/qtcreator-maemo-device-configurations.png b/doc/images/qtcreator-maemo-device-configurations.png
index 9c242e7205..7dcc3595fa 100644
--- a/doc/images/qtcreator-maemo-device-configurations.png
+++ b/doc/images/qtcreator-maemo-device-configurations.png
Binary files differ
diff --git a/doc/images/qtcreator-maemo-emulator-connection.png b/doc/images/qtcreator-maemo-emulator-connection.png
index 29c0135ee4..a172357da1 100644
--- a/doc/images/qtcreator-maemo-emulator-connection.png
+++ b/doc/images/qtcreator-maemo-emulator-connection.png
Binary files differ
diff --git a/doc/images/qtcreator-meego-device-configurations.png b/doc/images/qtcreator-meego-device-configurations.png
new file mode 100644
index 0000000000..9c242e7205
--- /dev/null
+++ b/doc/images/qtcreator-meego-device-configurations.png
Binary files differ
diff --git a/doc/images/qtcreator-meego-emulator-connection.png b/doc/images/qtcreator-meego-emulator-connection.png
new file mode 100644
index 0000000000..29c0135ee4
--- /dev/null
+++ b/doc/images/qtcreator-meego-emulator-connection.png
Binary files differ
diff --git a/doc/images/qtcreator-run-settings-maemo.png b/doc/images/qtcreator-run-settings-maemo.png
new file mode 100644
index 0000000000..ba3f10e7f9
--- /dev/null
+++ b/doc/images/qtcreator-run-settings-maemo.png
Binary files differ
diff --git a/doc/images/qtcreator-screenshot-build-settings.png b/doc/images/qtcreator-screenshot-build-settings.png
index 4ed46758d9..4a98140891 100644
--- a/doc/images/qtcreator-screenshot-build-settings.png
+++ b/doc/images/qtcreator-screenshot-build-settings.png
Binary files differ
diff --git a/doc/images/qtcreator-screenshot-run-settings.png b/doc/images/qtcreator-screenshot-run-settings.png
index 9a0837312a..a716a5ffe1 100644
--- a/doc/images/qtcreator-screenshot-run-settings.png
+++ b/doc/images/qtcreator-screenshot-run-settings.png
Binary files differ
diff --git a/doc/images/remotecompiler-fn-logon.png b/doc/images/remotecompiler-fn-logon.png
index fdce99dc3c..ba64662bac 100644
--- a/doc/images/remotecompiler-fn-logon.png
+++ b/doc/images/remotecompiler-fn-logon.png
Binary files differ
diff --git a/doc/linuxdev-keys.qdocinc b/doc/linuxdev-keys.qdocinc
new file mode 100644
index 0000000000..29d9e077ab
--- /dev/null
+++ b/doc/linuxdev-keys.qdocinc
@@ -0,0 +1,25 @@
+ \section2 Generating SSH Keys
+
+ If you do not have an SSH public and private key pair, you can generate it
+ in Qt Creator. You can specify key length and the key algorithm, RSA or DSA.
+ If you only use the keys to protect connections to the emulator or
+ device, you can use the default values.
+
+ \list 1
+
+ \o Select \gui {Tools > Options... > Linux Devices > Device
+ Configurations > Generate SSH Key...}.
+
+ \o Click \gui {Generate SSH Key}.
+
+ \image qtcreator-ssh-key-configuration.png "SSH Key Configuration dialog"
+
+ \o Click \gui {Save Public Key...} to select the location to save the
+ public key.
+
+ \o Click \gui {Save Private Key...} to specify the location to save the
+ private key.
+
+ \o Click \gui Close to close the dialog.
+
+ \endlist
diff --git a/doc/linuxdev-processes.qdocinc b/doc/linuxdev-processes.qdocinc
new file mode 100644
index 0000000000..387dbc308e
--- /dev/null
+++ b/doc/linuxdev-processes.qdocinc
@@ -0,0 +1,13 @@
+ \section2 Managing Device Processes
+
+ You can view processes running on devices and kill them. Select
+ \gui {Tools > Options... > Linux Devices > Device Configurations >
+ Remote Processes...}.
+
+ You can filter the processes by name in the \gui {List of Remote Processes}
+ dialog.
+
+ To update the process list, select \gui {Update List}.
+
+ To kill a process, select it in the list, and then select \gui {Kill
+ Selected Process}.
diff --git a/doc/linuxdev.qdoc b/doc/linuxdev.qdoc
index 7f49605cc7..8a0eea5054 100644
--- a/doc/linuxdev.qdoc
+++ b/doc/linuxdev.qdoc
@@ -22,9 +22,9 @@
/*!
\contentspage index.html
- \previouspage creator-developing-maemo.html
+ \previouspage creator-developing-meego.html
\page creator-developing-generic-linux.html
- \nextpage creator-developing-symbian.html
+ \nextpage creator-developing-maemo.html
\title Connecting Generic Linux Devices
diff --git a/doc/maemodev.qdoc b/doc/maemodev.qdoc
index c20c248dda..4fe2a79c9e 100644
--- a/doc/maemodev.qdoc
+++ b/doc/maemodev.qdoc
@@ -23,35 +23,30 @@
\contentspage index.html
\if defined(qcmanual)
- \previouspage creator-project-qmake-libraries.html
+ \previouspage creator-developing-generic-linux.html
\else
- \previouspage creator-developing-symbian.html
+ \previouspage creator-developing-meego.html
\endif
\page creator-developing-maemo.html
\if defined(qcmanual)
- \nextpage creator-developing-generic-linux.html
+ \nextpage creator-developing-symbian.html
\else
\nextpage smartinstaller.html
\endif
- \title Connecting Maemo and MeeGo Harmattan Devices
+ \title Connecting Maemo Devices
- Maemo 5 (Fremantle) and MeeGo Harmattan are Linux-based software platforms
- developed by Nokia for mobile devices. They allow developers to create
+ Maemo 5 (Fremantle) is a Linux-based software platform developed by Nokia
+ for mobile devices. It allows developers to create
applications using the Qt framework.
- The whole tool chain that you need to create, build, debug, run, and deploy
- Maemo 5 and Harmattan applications is installed and configured when you
- install the
- \QSDK.
+ You can install the whole tool chain that you need to create, build, debug,
+ run, and deploy Maemo 5 applications as a part of the custom installation
+ in the \QSDK online installer.
\if defined(qcmanual)
For more
information about the Maemo 5 platform, see
\l{http://maemo.org/intro/platform/}{Software Platform} on the Maemo web site.
-
- For more information about the Harmattan platform, see
- \l{http://harmattan-dev.nokia.com/}{Harmattan Platform SDK}.
-
\endif
For more information about developing applications for the Maemo 5
@@ -59,32 +54,13 @@
or see
\l{http://doc.qt.nokia.com/qt-maemo/platform-notes-maemo5.html}{Platform Notes - Maemo 5}.
- For more information about developing applications for the Harmattan
- platform, select \gui {Help > Index} and look for \gui {Platform Notes}.
-
- \note \QSDK does not contain the tool chains for building applications for
- other MeeGo devices than MeeGo Harmattan. You can try to run applications
- from Qt Creator on other MeeGo devices, but it has not been extensively
- tested, and the
- instructions might not always apply.
-
- \section1 Hardware and Software Requirements
+ \section1 Hardware and Software Requirements for Maemo Target
- To build and run Qt applications for Maemo 5 or Harmattan, you need the
- following:
+ To build and run Qt applications for Maemo 5, you need the following:
\list
- \o Test device:
-
- \list
-
- \o Maemo 5 device: Nokia N900 with software update release 1.3
+ \o Maemo 5 device: Nokia N900 with software update release 1.3
(V20.2010.36-2) or later installed.
-
- \o Harmattan device: Nokia N950, Nokia N9
-
- \endlist
-
\if defined(qcmanual)
\o MADDE cross-platform Maemo development
tool (installed as part of the \QSDK).
@@ -102,16 +78,15 @@
\endlist
- \note The only supported build system for Maemo 5 and Harmattan in Qt
- Creator is qmake.
+ \note The only supported build system for Maemo 5 in Qt Creator is qmake.
- \section1 Setting Up Connectivity in Devices
+ \section1 Setting Up Connectivity in Maemo Devices
You can connect your device to your development PC using either a USB or
WLAN connection.
- For the device, you need to use a connectivity tool (Mad Developer on
- Maemo 5 and SDK Connectivity on Harmattan) to create the
+ For the device, you need to use a connectivity tool (Mad Developer) to
+ create the
device-side end point for USB and WLAN connections. It provides no
diagnostics functions but is essential for creating connections between the
device and your development PC.
@@ -127,34 +102,7 @@
WLAN, you can
ignore the USB-specific parts in the following sections.
- \section2 Starting SDK Connectivity on Harmattan Devices
-
- SDK Connectivity application is preinstalled in Harmattan devices and
- available in developer mode.
-
- To start SDK Connectivity:
-
- \list
-
- \o On the device, select \gui {Settings > Security > Developer
- mode} to turn on developer mode.
-
- \o Select \gui {Applications > SDK Connectivity} to start the SDK
- Connectivity application.
-
- \o Select \gui {Select Connection} and then select the type of the
- connection to create: \gui WLAN or \gui USB.
-
- \o For a USB connection, select the operating system of the
- development PC in \gui {Select Module}.
-
- \endlist
-
- \gui {Connectivity Details} displays the IP address and developer password.
- The address 192.168.2.15 is used by default. You must enter the password in
- Qt Creator.
-
- \section2 Installing and Configuring Mad Developer on Nokia N900
+ \section2 Installing and Configuring Mad Developer
Install Mad Developer on a Nokia N900 device and configure
a connection between the development PC and a device.
@@ -197,7 +145,7 @@
\image qtcreator-mad-developer-screenshot.png
\endlist
- \section1 Installing Qt Mobility Libraries on Nokia N900
+ \section1 Installing Qt Mobility Libraries
To develop applications for the Nokia N900 devices that use the Qt Mobility
APIs, you must install the
@@ -220,14 +168,11 @@
\endlist
- \note the Qt Mobility Libraries are preinstalled on MeeGo Harmattan
- devices.
+ \section1 Setting Up USB Connections to Maemo Devices
- \section1 Setting Up Network Connectivity on Development PC
-
- Use the network configuration tools on your platform to specify the
- connection to the device on the development PC. You need to do this
- only if you use a USB connection.
+ Use the network configuration tools on your platform to specify the USB
+ connection to the device on the development PC. You do not need to do this
+ if you use a WLAN connection.
\section2 Linux
@@ -274,9 +219,9 @@
your version of Microsoft Windows you may have to unplug and re-plug the
device to reload the driver with its configuration accordingly.
- \section1 Configuring Connections in Qt Creator
+ \section1 Configuring Connections to Maemo Devices
- To be able to run and debug applications on the Maemo or MeeGo Harmattan
+ To be able to run and debug applications on the Maemo
emulator and devices, you must set up connections to the emulator and
devices in the Qt Creator build and run settings. If you install \QSDK, the
connection to the emulator is configured automatically and you
@@ -293,9 +238,10 @@
to test them with real user data. To create a connection as a user, specify
the \gui Username and \gui Password in Qt Creator. For more information, see
\if defined(qcmanual)
- \l{Testing with User Data}.
+ \l{Testing with User Data on Maemo Devices}.
\else
- the Qt Creator Manual.
+ \l{http://doc.qt.nokia.com/qtcreator/creator-developing-maemo.html#testing-with-user-data-on-maemo-devices}
+ {Testing with User Data on Maemo Devices}.
\endif
@@ -310,7 +256,18 @@
\if defined(qcmanual)
\l{Generating SSH Keys}.
\else
- the Qt Creator Manual.
+ \l{http://doc.qt.nokia.com/qtcreator/creator-developing-meego.html#generating-ssh-keys}
+ {Generating SSH Keys}.
+ \endif
+
+
+ You can view processes running on devices and kill them. For more
+ information, see
+ \if defined(qcmanual)
+ \l{Managing Device Processes}.
+ \else
+ \l{http://doc.qt.nokia.com/qtcreator/creator-developing-meego.html#managing-device-processes}
+ {Managing Device Processes}.
\endif
@@ -335,7 +292,7 @@
Configurations > Add}, and add a new configuration for a
hardware device.
- \image qtcreator-screenshot-devconf.png
+ \image qtcreator-dev-conf-maemo.png "Maemo device configuration"
\o In the \gui {The name to identify this configuration} field,
enter a name for the connection.
@@ -371,7 +328,7 @@
Devices > Device Configurations > Add} to add a new
configuration.
- \image qtcreator-maemo-emulator-connection.png
+ \image qtcreator-maemo-emulator-connection.png "Maemo emulator configuration"
\o In the \gui {The name to identify this configuration} field,
enter a name for
@@ -403,7 +360,7 @@
\o In the \gui{Build Settings} section, choose the MADDE Qt version
that was registered by the installation program.
- \image qtcreator-screenshot-build-settings.png
+ \image qtcreator-build-settings-maemo.png "Maemo build settings"
\o In the \gui{Run Settings} section, click \gui Add to add a new
deploy configuration. The configuration is named automatically. To
@@ -411,7 +368,7 @@
\o In the \gui {Device configuration} field, select the device
connection or the emulator connection.
- \image qtcreator-screenshot-run-settings.png
+ \image qtcreator-run-settings-maemo.png "Maemo run settings"
\o Click \gui {<no target path set>} in \gui {Remote Directory}
to specify the folder where the file is installed on the device.
@@ -421,73 +378,29 @@
\endlist
- \if defined(qcmanual)
- \section2 Testing with User Data
+ \section2 Testing with User Data on Maemo Devices
- To run your application as the default user, you must first assign a password
- for the user account and then create the connection to the device as the
- user:
+ To run your application as the default user, you must first assign a
+ password for the user account and then create the connection to the device
+ as the user:
\list 1
- \o On the device, in \gui Programs, select \c {X Terminal} to open a
- terminal window.
+ \o On the device, in \gui Programs, select \c {X Terminal} to open a
+ terminal window.
- \o To specify the password, enter the following command:
- \c{/usr/lib/mad-developer/devrootsh passwd user}
+ \o To specify the password, enter the following command:
+ \c{/usr/lib/mad-developer/devrootsh passwd user}
- \o In Qt Creator, select \gui {Tools > Options... Linux Devices >
- Device Configurations}.
+ \o In Qt Creator, select \gui {Tools > Options... Linux Devices >
+ Device Configurations}.
- \o Specify the username \c user and the password in the device configuration.
+ \o Specify the username \c user and the password in the device
+ configuration.
\endlist
- \section2 Generating SSH Keys
-
- If you do not have an SSH public and private key pair, you can generate it
- in Qt Creator. You can specify key length and the key algorithm, RSA or DSA.
- If you only use the keys to protect connections to the emulator or
- device, you can use the default values.
-
- \list 1
-
- \o Select \gui {Tools > Options... > Linux Devices > Device
- Configurations
- > Generate SSH Key...}.
-
- \o Click \gui {Generate SSH Key}.
-
- \image qtcreator-ssh-key-configuration.png "SSH Key Configuration dialog"
-
- \o Click \gui {Save Public Key...} to select the location to save the
- public key.
-
- \o Click \gui {Save Private Key...} to specify the location to save the
- private key.
-
- \o Click \gui Close to close the dialog.
-
- \endlist
-
- \section2 Managing Device Processes
-
- You can view processes running on the Maemo or MeeGo Harmattan device and
- kill them.
- Select \gui {Tools > Options... > Linux Devices > Device Configurations >
- Remote Processes...}.
-
- You can filter the processes by name in the \gui {List of Remote Processes}
- dialog.
-
- To update the process list, select \gui {Update List}.
-
- To kill a process, select it in the list, and then select \gui {Kill
- Selected Process}.
-
- \endif
-
- \section1 Troubleshooting
+ \section1 Troubleshooting Connections to Maemo Devices
The addresses used in this example might be reserved by some other application
in your network. If you cannot establish a connection, try the following optional
diff --git a/doc/meegodev.qdoc b/doc/meegodev.qdoc
new file mode 100644
index 0000000000..79ee3360bb
--- /dev/null
+++ b/doc/meegodev.qdoc
@@ -0,0 +1,462 @@
+/****************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (info@qt.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 info@qt.nokia.com.
+**
+****************************************************************************/
+
+ /*!
+
+ \contentspage index.html
+ \if defined(qcmanual)
+ \previouspage creator-project-qmake-libraries.html
+ \else
+ \previouspage creator-developing-symbian.html
+ \endif
+ \page creator-developing-meego.html
+ \if defined(qcmanual)
+ \nextpage creator-developing-generic-linux.html
+ \else
+ \nextpage creator-developing-maemo.html
+ \endif
+
+ \title Connecting MeeGo Harmattan Devices
+
+ MeeGo Harmattan is a Linux-based software platform developed by Nokia for
+ mobile devices. It allows developers to create applications using the Qt
+ framework. You can install and configure the whole tool chain that you need
+ to create, build, debug, run, and deploy Harmattan applications as part of
+ the \QSDK.
+
+ \if defined(qcmanual)
+ For more information about the Harmattan platform, see
+ \l{http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/guide/html/Developer_Library_Harmattan_overview_5dcf.html}
+ {Harmattan Overview} in the MeeGo 1.2 Harmattan Developer Library.
+ \endif
+
+
+ \note \QSDK does not contain the tool chains for building applications for
+ other MeeGo devices than MeeGo Harmattan. You can try to run applications
+ from Qt Creator on other MeeGo devices, but it has not been extensively
+ tested, and the instructions might not always apply.
+
+ \note The only supported build system for Harmattan in Qt Creator is qmake.
+
+ \section1 Setting Up Connectivity in Harmattan Devices
+
+ To build and run Qt applications for Harmattan, you need a Harmattan device:
+ Nokia N950 or Nokia N9.
+
+ You can connect your device to your development PC using either a USB or
+ WLAN connection.
+
+ For the device, you need to use the SDK Connectivity tool that is
+ preinstalled on the device to create the device-side end point for USB and
+ WLAN connections. It provides no diagnostics functions but is essential for
+ creating connections between the device and your development PC.
+
+ To use a WLAN connection, you must activate WLAN on the device and connect
+ it to the same WLAN as the development PC. The network address is displayed
+ in the connectivity tool.
+
+ To use a USB connection, you might need to set up the device as a network
+ device on the development PC. However, on Linux, Mac OS X, and Windows 7,
+ the USB interface is usually automatically configured.
+
+ \note If you plan to connect your development PC to the device only over
+ WLAN, you can ignore the USB-specific parts in the following sections.
+
+ \section2 Starting SDK Connectivity
+
+ SDK Connectivity application is preinstalled in Harmattan devices and
+ available in developer mode.
+
+ To start SDK Connectivity:
+
+ \list
+
+ \o On the device, select \gui {Settings > Security > Developer
+ mode} to turn on developer mode.
+
+ \o Select \gui {Applications > SDK Connectivity} to start the SDK
+ Connectivity application.
+
+ \o Select \gui {Select Connection} and then select the type of the
+ connection to create: \gui WLAN or \gui USB.
+
+ \o For a USB connection, select the operating system of the
+ development PC in \gui {Select Module}.
+
+ \endlist
+
+ \gui {Connectivity Details} displays the IP address and developer password.
+ The address 192.168.2.15 is used by default. You must enter the password in
+ Qt Creator. For more information, see
+ \l{Configuring Connections to Harmattan Devices}.
+
+ \section1 Setting Up Network Connectivity on Development PC
+
+ Use the network configuration tools on your platform to specify the
+ connection to the device on the development PC. You need to do this
+ only if you use a USB connection.
+
+ The device uses the IP address 192.168.2.15 with the subnet 255.255.255.0
+ for its USB connection by default, so you can create the network interface
+ with a different address inside the same subnet too.
+
+ \note If you have changed the IP address of the device in the connectivity
+ tool, you need to reflect those changes in your development PC USB
+ network settings.
+
+ \section2 Linux
+
+ The USB interface is automatically configured. If, for some reason, that is
+ not the case, run the following command in a shell as root user to create a
+ new network interface:
+
+ \c{ifconfig usb0 192.168.2.14 up}
+
+ \section2 Mac OS X
+
+ The USB interface is automatically configured. If, for some reason, that is
+ not the case, create a new network interface manually:
+
+ \list
+
+ \o Open the network settings.
+
+ \o Click the + button on the network settings panel.
+
+ \o When the interface is available, select \gui {Configure IPv4 > Using
+ DHCP with manual address}.
+
+ \o Enter the address 192.168.2.14 into the IP address field.
+
+ \o Click \gui Apply.
+
+ The network connection between your device and workstation is now
+ configured.
+
+ \endlist
+
+ \section2 Windows 7
+
+ When you connect your device to your Windows 7 computer, Windows installs a
+ driver for the Linux USB Ethernet connection automatically. If the
+ installation does not start, unplug the USB cable and try another USB port
+ on your computer.
+
+ \note Driver installation takes some time.
+
+ The USB interface is automatically configured. If, for some reason, that is
+ not the case, create a new network interface manually:
+
+ \list 1
+
+ \o Open the \gui {Network and Sharing Center} and select \gui {Change
+ adapter settings}.
+
+ The Linux USB Ethernet connection you just installed is displayed
+ as a new \gui {Local Area Connection Linux USB Ethernet/RNDIS
+ gadget}.
+
+ \note If you cannot see \gui {Linux USB Ethernet/RNDIS gadget}, try
+ to unplug and replug the USB cable.
+
+ \o Right-click \gui {Linux USB Ethernet/RNDIS gadget} and select
+ \gui Properties.
+
+ \o Edit the \gui {Internet Protocol Version 4 (TCP/IPv4)} properties
+ to specify the IP address for the connection. In the \gui {Use the
+ following IP address} field, enter the following values:
+
+ \list
+
+ \o \gui {IP Address}: \bold {192.168.2.14}
+ \o \gui SubnetMask: \bold {255.255.255.0}
+ \o \gui {Default gateway}: leave this field empty
+
+ \endlist
+
+ \endlist
+
+ \section2 Windows XP
+
+ If you develop on Windows XP and use a USB connection to run applications on
+ the device, you need the Nokia USB drivers that are installed as part of the
+ \QSDK.
+
+ When you connect the device to your Windows PC, Windows tries to install a
+ driver for the Linux USB Ethernet connection. In the
+ \gui{Found New Hardware Wizard}, select \gui{No, not this time} in the
+ first dialog and \gui{Install the software automatically} in the second
+ dialog.
+
+ To specify a network connection:
+
+ \list 1
+
+ \o Open the Network Connections window.
+
+ \o Select the Linux USB Ethernet connection that is displayed as a new
+ Local Area Connection.
+
+ \o Edit the \gui {Internet Protocol Version 4 (TCP/IPv4)} properties
+ to specify the IP address for the connection. In the \gui {Use the
+ following IP address} field, enter the following values:
+
+ \list
+
+ \o \gui {IP Address}: \bold {192.168.2.14}
+ \o \gui SubnetMask: \bold {255.255.255.0}
+ \o \gui {Default gateway}: leave this field empty
+
+ \endlist
+
+ \endlist
+
+ Depending on your version of Microsoft Windows you may have to unplug and
+ re-plug the device to reload the driver with its configuration accordingly.
+
+ \section1 Configuring Connections to Harmattan Devices
+
+ To be able to run and debug applications on the emulator and devices, you
+ must set up connections to the emulator and devices in the Qt Creator build
+ and run settings. If you install \QSDK, the connection to the emulator is
+ configured automatically and you only need to configure a connection to the
+ device.
+
+ You use a wizard to create the connections. You can edit the settings later
+ in \gui {Tools > Options... > Linux Devices > Device Configurations}.
+
+ \image qtcreator-meego-device-configurations.png "MeeGo Device Configurations dialog"
+
+ By default, you create the connection as the \e developer user. This
+ protects real user data on the device from getting corrupted during testing.
+ If you write applications that use Qt Mobility APIs, you might want to test
+ them with real user data. To create a connection as a user, specify the
+ \gui Username and \gui Password in Qt Creator. For more information, see
+ \if defined(qcmanual)
+ \l{Testing with User Data on MeeGo Devices}.
+ \else
+ \l{http://doc.qt.nokia.com/qtcreator/creator-developing-meego.html#testing-with-user-data-on-meego-devices}
+ {Testing with User Data on MeeGo Devices}.
+ \endif
+
+
+ You can protect the connections between Qt Creator and a device by using
+ either a password or an SSH key. If you use a password, you must generate it
+ in the connectivity tool and enter it in Qt Creator every time you start the
+ connectivity tool.
+
+ If you do not have an SSH key, you can create it in Qt Creator. Encrypted
+ keys are not supported. For more information, see
+ \if defined(qcmanual)
+ \l{Generating SSH Keys}.
+ \else
+ \l{http://doc.qt.nokia.com/qtcreator/creator-developing-meego.html#generating-ssh-keys}
+ {Generating SSH Keys}.
+ \endif
+
+
+ You can view processes running on devices and kill them. For more
+ information, see
+ \if defined(qcmanual)
+ \l{Managing Device Processes}.
+ \else
+ \l{http://doc.qt.nokia.com/qtcreator/creator-developing-meego.html#managing-device-processes}
+ {Managing Device Processes}.
+ \endif
+
+
+ To configure connections between Qt Creator and a device:
+
+ \list 1
+
+ \o To deploy applications and run them remotely on devices,
+ specify parameters for accessing devices:
+
+ \list a
+
+ \o Connect your device to the development PC via a USB cable or
+ a WLAN. For a USB connection, you are prompted to select the
+ mode to use. Choose \gui{PC suite mode}.
+
+ \note If you experience connection problems due to a USB
+ port issue, switch to a different port or use WLAN to
+ connect to the device.
+
+ \o Select \gui {Tools > Options... > Linux Devices > Device
+ Configurations > Add}, and add a new configuration for a
+ hardware device.
+
+ \image qtcreator-screenshot-devconf.png
+
+ \o In the \gui {The name to identify this configuration} field,
+ enter a name for the connection.
+
+ \o In the \gui {The system running on the device} field, select
+ the software platform of the device.
+
+ \o In the \gui {The kind of device} field, select
+ \gui {Hardware device}.
+
+ \o In the \gui {The device's host name or IP address} field,
+ enter the IP address from the connectivity tool on the
+ device.
+
+ \o In the \gui {The SSH server port} field, enter the port
+ number to use for SSH connections.
+
+ \o Click \gui Next.
+
+ \o Follow the instructions of the wizard to create the
+ connection.
+
+ \endlist
+
+ \if defined(qcmanual)
+
+ \o To test applications on the emulator (QEMU), you must
+ create a connection to it from the development PC. If you installed
+ \QSDK, the connection is created automatically and you can omit this
+ step.
+
+ \list a
+
+ \o In Qt Creator, select \gui {Tools > Options... > Linux
+ Devices > Device Configurations > Add} to add a new
+ configuration.
+
+ \image qtcreator-meego-emulator-connection.png
+
+ \o In the \gui {The name to identify this configuration} field,
+ enter a name for the connection.
+
+ \o In the \gui {The system running on the device} field, select
+ the software platform to emulate.
+
+ \o In the \gui {The kind of device} field, select
+ \gui {Emulator (Qemu)}.
+
+ \o Click \gui Next.
+
+ \o Follow the instructions of the wizard to create the
+ connection.
+
+ SDK Connectivity is not needed for emulator connections, and
+ therefore, you do nt need to authenticate the emulator
+ connection.
+
+ \endlist
+
+ \endif
+
+ \o To specify build and run settings:
+
+ \list a
+
+ \o Open a project for an application you want to develop
+ for your device.
+
+ \o Click \gui Projects to open the projects mode.
+
+ \o In the \gui{Build Settings} section, choose the MADDE Qt
+ version that was registered by the installation program.
+
+ \image qtcreator-screenshot-build-settings.png
+
+ \o In the \gui {Device configuration} field, select the
+ device connection or the emulator connection.
+ \image qtcreator-screenshot-run-settings.png
+
+ \endlist
+
+ \note The new application wizards automatically set the folder
+ where the file is installed on the device in the \gui {Remote
+ Directory} field. For example, \c {/opt/usr/bin}. If the text
+ \gui {<no target path set>} is displayed, click it to specify a
+ folder.
+
+ \endlist
+
+ \if defined(qcmanual)
+
+ \section2 Testing with User Data on MeeGo Devices
+
+ To run your application as the default user, you must first assign a
+ password for the user account and then create the connection to the device
+ as the user:
+
+ \list 1
+
+ \o On the device, select \gui Terminal to open a
+ terminal window.
+
+ \o To specify the password, enter the following command:
+ \c{/usr/lib/mad-developer/devrootsh passwd user}
+
+ \o In Qt Creator, select \gui {Tools > Options... Linux Devices >
+ Device Configurations}.
+
+ \o Specify the username \c user and the password in the device
+ configuration.
+
+ \endlist
+
+ \input linuxdev-keys.qdocinc
+ \input linuxdev-processes.qdocinc
+
+ \endif
+
+ \section1 Troubleshooting Harmattan Connections
+
+ The addresses used in this example might be reserved by some other
+ application in your network. If you cannot establish a connection, try the
+ following optional configurations:
+
+ \table
+
+ \header
+ \o IP Address and Network on Device
+ \o USB Network on Development PC
+ \o Host Name in Qt Creator Build Settings
+
+ \row
+ \o 172.30.7.15 255.255.255.0
+ \o 172.30.7.14 255.255.255.0
+ \o 172.30.7.15
+
+ \row
+ \o 10.133.133.15
+ \o 10.133.133.14
+ \o 10.133.133.15
+
+ \row
+ \o 192.168.133.15
+ \o 192.168.133.14
+ \o 192.168.133.15
+
+ \note You cannot use the value localhost for connections to a
+ device.
+
+ \endtable
+
+ \note VPN connections might block the device connection.
+
+*/
+
diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc
index 7a01670880..76525da967 100644
--- a/doc/qtcreator.qdoc
+++ b/doc/qtcreator.qdoc
@@ -67,8 +67,9 @@
\o \l{Creating a Project}
\o \l{Opening a Project}
\o \l{Adding Libraries to Projects}
- \o \l{Connecting Maemo and MeeGo Harmattan Devices}
+ \o \l{Connecting MeeGo Harmattan Devices}
\o \l{Connecting Generic Linux Devices}
+ \o \l{Connecting Maemo Devices}
\o \l{Connecting Symbian Devices}
\o \l{Managing Sessions}
\endlist
@@ -1749,7 +1750,6 @@
\page creator-editor-using.html
\nextpage creator-highlighting.html
-
\title Using the Editor
Qt Creator's code editor is designed to aid you in creating, editing and
@@ -3309,7 +3309,8 @@
\o \l{Creating a Project}
\o \l{Opening a Project}
\o \l{Adding Libraries to Projects}
- \o \l{Connecting Maemo and MeeGo Harmattan Devices}
+ \o \l{Connecting Maemo Devices}
+ \o \l{Connecting MeeGo Harmattan Devices}
\o \l{Connecting Generic Linux Devices}
\o \l{Connecting Symbian Devices}
\o \l{Managing Sessions}
@@ -4204,7 +4205,8 @@
The other settings to specify depend on the tool chain.
\o For RVCT, select the ARM version to use in the \gui {ARM version}
- field.
+ field. RVCT 2.2 is supported on Symbian^3 and earlier. RVCT 4.0 b902
+ or later is required for Symbian Belle.
\endlist
@@ -4251,7 +4253,7 @@
\contentspage index.html
\previouspage creator-project-opening.html
\page creator-project-qmake-libraries.html
- \nextpage creator-developing-maemo.html
+ \nextpage creator-developing-meego.html
\title Adding Libraries to Projects
@@ -4579,7 +4581,8 @@
\list 1
\o Configure the device and specify a connection to it. For more
- information, see \l{Connecting Maemo and MeeGo Harmattan Devices}.
+ information, see \l{Connecting Maemo Devices} and
+ \l{Connecting MeeGo Harmattan Devices}.
\o Connect the device to the development PC.
@@ -4849,7 +4852,8 @@
\note The build configuration for the \gui{Symbian Device} target
uses the GCCE tool chain by default. If you want to build
for the device using RVCT, install the RVCT tool chain, and then
- select it in the \gui {Tool chain} field.
+ select it in the \gui {Tool chain} field. RVCT 2.2 is supported on Symbian^3
+ and earlier. RVCT 4.0 b902 or later is required for Symbian Belle.
\section1 Starting External Processes
@@ -5055,7 +5059,8 @@
create connections
from the development PC to the devices. Click \gui {Manage device
configurations} to create connections. For more information, see
- \l {Configuring Connections in Qt Creator}.
+ \l{Configuring Connections to Maemo Devices} and
+ \l{Configuring Connections to Harmattan Devices}.
When you run the application on the \gui{Maemo5} or \gui Harmattan target,
Qt Creator generates
@@ -5440,8 +5445,11 @@
\section1 Creating Smart Installer for Symbian Packages
- To deploy Qt applications on Symbian devices, you must install the software that Qt applications
- require, typically Qt, QtWebkit, and Open C. Nokia Smart Installer for Symbian makes it easier
+ You can run Qt applications on Symbian devices if the software that Qt
+ applications require (typically Qt, Qt Mobility, QtWebkit, and Open C) is
+ installed on the device. On Symbian^3 and later devices, some version of Qt
+ is pre-installed. On earlier devices, you must install the modules that Qt
+ applications require. Nokia Smart Installer for Symbian makes it easier
for users to install Qt applications to Symbian phones by checking whether the device contains
the necessary software and by installing the missing pieces.
@@ -5744,71 +5752,7 @@
application access not granted.} For example, if you try to install a
self-signed application that uses a system capability.
- \section2 Supported Configurations
-
- When you select the Qt version to build the application with, consider
- which version provides the application with the widest support on different
- Symbian platforms. The binary compatibility promise of Qt and Symbian means
- that applications that are built against Qt 4.6.3 also run on Qt 4.7.3.
- Similarly, applications that are supported on Symbian^1 are also supported
- on Symbian^3. However, dependencies, such as QML or Qt Mobility API
- versions might restrict the choice of Qt versions that you have.
-
- In general, if you use only Qt widgets and APIs in the application, you
- can use \gui {Qt 4.6.3 for Symbian^1} to build it.
- The application is supported on both Symbian^1 and Symbian^3 devices.
-
- If you use QML in the application, you can use \gui {Qt 4.7.3 for
- Symbian^1} to build it. The application is supported on both Symbian^1 and
- Symbian^3 devices.
- If you use native Symbian APIs, you must check that they are available on
- the target devices. For more information about the API differences between
- Symbian^1 (S60 5th Edition) and Symbian^3, see the \bold {Symbian
- Reference Documentation for Qt}, which is delivered together with \QSDK
- and which you can view in the \gui Help mode.
-
- The following table summarizes the supported configurations for each Qt
- version available in Qt Creator build settings:
-
- \table
- \header
- \i Qt Version
- \i QML
- \i Qt Mobility Version
- \i Native Symbian C++ APIs
- \i Open GL
- \row
- \i Qt 4.6.3 for S60 3rd Edition
- \i No
- \i 1.0.2
- \i No
- \i No
- \row
- \i Qt 4.6.3 for Symbian^1 (S60 5th Edition)
- \i No
- \i 1.0.2
- \i No
- \i No
- \row
- \i Qt 4.6.3 for Symbian^3
- \i No
- \i 1.0.2
- \i Yes
- \i No
- \row
- \i Qt 4.7.3 for Symbian^1
- \i Yes
- \i 1.1.3
- \i No
- \i No
- \row
- \i Qt 4.7.3 for Symbian^3
- \i Yes
- \i 1.1.3
- \i Yes
- \i Yes
- \endtable
\section1 Publishing Qt Content for Maemo Devices
diff --git a/doc/symbiandev.qdoc b/doc/symbiandev.qdoc
index 687f304910..61289c09f6 100644
--- a/doc/symbiandev.qdoc
+++ b/doc/symbiandev.qdoc
@@ -22,7 +22,7 @@
/*!
\contentspage index.html
\if defined(qcmanual)
- \previouspage creator-developing-generic-linux.html
+ \previouspage creator-developing-maemo.html
\else
\previouspage sdk-gs.html
\endif
@@ -30,30 +30,47 @@
\if defined(qcmanual)
\nextpage creator-project-managing-sessions.html
\else
- \nextpage creator-developing-maemo.html
+ \nextpage creator-developing-meego.html
\endif
\title Connecting Symbian Devices
When you install \QSDK, the build and run settings for Symbian devices
- are set up automatically. You only need to connect the devices to the
- development PC.
+ are set up automatically in Qt Creator. You only need to install and launch
+ the CODA on-device debugging agent on the devices and connect the devices
+ to the development PC.
+ Make sure that PC Suite or Ovi Suite are installed on the development PC.
Connect the device to the development PC with an USB cable in
PC Suite Mode. If you have not previously used the device with Ovi Suite
or PC Suite, all the necessary drivers are installed automatically.
This takes approximately one minute.
- To run Qt applications on Symbian devices, you must install the software
- that Qt applications require, typically Qt, Qt Mobility, QtWebkit, and Open C.
- The \QSDK installation program creates shortcuts for installing
- the required applications on Symbian devices. You can also use any of
- the standard methods for installing applications.
-
- To debug applications on Symbian devices by using the Qt Creator \gui Debug
- mode, you must install the CODA on-device debugging agent on the device.
- For more information,
- see
+ As with every supported platform, Qt strives to maintain application
+ behavior and binary compatibility throughout the lifetime of the Qt 4.x
+ major version and on the Symbian devices that support Qt. Symbian
+ support in \QSDK and Ovi Store were introduced with Qt 4.6. Each Qt release
+ contains bug fixes that might change the API behavior and thereby affect
+ application compatibility.
+
+ In addition, Symbian devices have different input methods, such as different
+ keyboard styles or touch input, screen sizes, memory, and CPU and GPU
+ capabilities. Therefore, you must test applications on specific target
+ devices to ensure compatibility. In order to build applications that are
+ supported also on earlier devices, select the target in \QSDK carefully.
+ Generally, an earlier target (such as S60 5th Edition) is supported on a
+ larger number of devices than a later target (such as Symbian Belle).
+
+ You can run Qt applications on Symbian devices if the software that Qt
+ applications require (typically Qt, Qt Mobility, QtWebkit, and Open C) is
+ installed on the device. On Symbian^3 and later devices, some version of Qt
+ is pre-installed. On earlier devices, you must install the modules that Qt
+ applications require. For more information, see
+ \l{Installing Required Applications on Devices}.
+
+ To run and debug applications on Symbian devices from Qt Creator, you must
+ install the CODA on-device debugging agent on the device. For more
+ information, see
\if defined(qcmanual)
\l{Using On-device Debugging Agents}.
\else
@@ -65,35 +82,21 @@
The tool chain for building applications locally on the development PC for
the \gui {Symbian Device} target is only supported on Windows.
If you develop on Linux or Mac OS, you must use the Remote Compiler
- interface to a compilation service at Nokia Developer.
+ interface to a compilation service at Nokia Developer. You can install
+ Remote Compiler as part of the \QSDK. For more information, see
+ \if defined(qcmanual)
+ \l{Building with Remote Compiler}.
+ \else
+ \l{http://doc.qt.nokia.com/qtcreator-snapshot/creator-remote-compiler.html}
+ {Building with Remote Compiler}.
+ \endif
+
For more information about developing applications for the Symbian
platform, select \gui {Help > Index} and look for \gui {Platform Notes},
or see
\l{http://doc.qt.nokia.com/4.7/platform-notes-symbian.html}{Platform Notes - Symbian}.
- \section1 Hardware and Software Requirements
-
- For deploying and running applications on the device, you need the
- following:
- \list
- \o The Nokia USB drivers that come with \e{PC Suite} or \e{Ovi Suite}
- \o The \e CODA on-device debugging agent installed on
- the device
- \o \e {Qt libraries} installed on the device
- \o \e {Qt Mobility libraries} installed on the device, if you use them in
- applications
- \o \e {QtWebKit} installed on the device, if you use web functionality
- in applications
- \endlist
-
- In addition, you can install example applications, demos, and utility
- applications, such as Nokia Energy Profiler and Nokia Performance Manager,
- on devices.
-
- The \QSDK installation program creates shortcuts for installing
- the applications on Symbian devices.
-
\if defined(qcmanual)
To run your applications in the Symbian emulator, you also need
to install Carbide.c++ v2.0.0 or higher.
@@ -102,64 +105,128 @@
\section1 Installing Required Applications on Devices
- Separate installation packages are provided for Symbian^3 and Symbian^1
- devices. To check the Symbian platform version of your device, see
- \l{http://www.developer.nokia.com/Devices/Device_specifications/}
- {Device Specifications}.
-
- \note You can also copy the .sis files from
- \c {<QtSDK_install_path>\Symbian\sis} to the device using USB storage
- mode and install them from the file manager on the device.
-
- \section2 Developing for Symbian^3
-
- \note The command names and paths depend on the \QSDK version that is
- installed.
-
- \list 1
-
- \o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install Qt 4.7.3 for
- Symbian^3 on Device}. Follow the instructions on the screen to install Qt
- libraries to the device.
+ Generally, when developing for Symbian^3 or later devices, you do not need
+ to install Qt on devices. However, you might want to upgrade or downgrade
+ the Qt version on a device to test your application on a particular Qt
+ version. Use the installation packages delivered with \QSDK
+ (\c {<QtSDK_install_path>\Symbian\sis}). Keep in mind that this might
+ replace the pre-installed Qt on the device.
- \o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install QtMobility 1.1.2 for
- Symbian^3 on Device}
- and follow the instructions on the screen to install Qt
- mobility libraries to the device.
+ \note Earlier Qt for Symbian versions, such as Qt 4.6.3 for Symbian, are
+ only available in the \QSDK online installer. For more information, see
+ \if defined(qcmanual)
+ \l{http://doc.qt.nokia.com/sdk-1.1/sdk-installing.html}{Installing Qt SDK}.
+ \else
+ {Installing Qt SDK}.
+ \endif
- \o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install QtWebKit
- for for Qt 4.7.3 on Symbian^3 Device} and follow the
- instructions on the screen to install QtWebKit to the device.
- \endlist
+ Qt is supported on different Symbian platforms as follows:
- \section2 Developing for Symbian^1
+ \list
- Symbian^1 incorporates Symbian OS and S60 5th Edition (S60 5.0), which is
- built on Symbian OS v9.4.
+ \o Symbian Belle devices contain Qt 4.7.4 libraries as part of device
+ firmware (ROM). To upgrade the Qt version, update the device
+ firmware. You cannot downgrade the Qt version on Belle devices.
- \note The command names and paths depend on the \QSDK version that is
- installed.
+ \omit
+ To develop applications using Qt 4.8 or later, you can install Qt
+ 4.8 or later libraries to Belle devices. The Qt in Belle firmware is
+ not overwritten. It is eclipsed by the installed Qt on the C: drive.
+ \endomit
- \list 1
+ \o Symbian Anna devices have Qt 4.7.3 pre-installed.
- \o Choose \gui {Start > Qt SDK > Symbian^1 Qt 4.7.3 > Install Qt 4.7.3
- for Symbian^1 on Device}. Follow the instructions on the screen to install Qt
- libraries to the device.
+ \o Symbian^3 devices have Qt 4.6 pre-installed.
- \o Choose \gui {Start > Qt SDK > Symbian^1 Qt 4.7.3 > Install QtMobility 1.1.2
- for Symbian^1 on Device} and follow the instructions on the screen to install Qt
- mobility libraries to the device.
+ \o S60 5th Edition and later devices support Qt 4.6.3 and 4.7.3.
- \o Choose \gui {Start > Qt SDK > Symbian^1 Qt 4.7.3 > Install QtWebKit
- for for Qt 4.7.3 on Symbian^1 Device} and follow the
- instructions on the screen to install QtWebKit to the device.
+ \o S60 3rd Edition feature pack 1 and later devices support Qt 4.6 for
+ Symbian through Nokia Smart Installer for Symbian.
\endlist
- In addition, you can install an example application and demos to Symbian^1
- devices.
-
+ To check the Symbian platform version of your device, see
+ \l{http://www.developer.nokia.com/Devices/Device_specifications/}
+ {Device Specifications}. The site contains information about the content
+ that can be published for the device to the Ovi Store (\e General section)
+ and the Qt libraries that are pre-installed on the device (\e API section).
+
+ If the device does not have the necessary Qt libraries pre-installed, you
+ can use Nokia Smart Installer for Symbian to deploy them during application
+ installation. Smart Installer ensures that the necessary libraries are
+ available in the target Symbian device before installing the actual
+ application. For more information about which Qt modules are supported
+ on-demand for different Symbian device models and how to enable Smart
+ Installer support in Qt applications, see
+ \l{http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Nokia Smart Installer for Symbian}.
+
+ \section2 Supported Configurations
+
+ When you select the Qt version to build the application with, consider
+ which version provides the application with the widest support on different
+ Symbian platforms. The binary compatibility promise of Qt and Symbian means
+ that applications that are built against Qt 4.6.3 also run on Qt 4.7.3.
+ Similarly, applications that are supported on S60 5th Edition are also
+ supported
+ on Symbian^3. However, dependencies, such as QML or Qt Mobility API
+ versions might restrict the choice of Qt versions that you have.
+
+ In general, if you use only Qt widgets and APIs in the application, you
+ can use \gui {Qt 4.6.3 for Symbian^1} to build it.
+ The application is supported on both Symbian^1 and Symbian^3 devices.
+
+ If you use QML in the application, you can use \gui {Qt 4.7.3 for
+ Symbian^1} to build it. The application is supported on both Symbian^1 and
+ Symbian^3 devices.
+
+ If you use native Symbian APIs, you must check that they are available on
+ the target devices. For more information about the API differences between
+ Symbian^1 (S60 5th Edition) and Symbian^3, see the \bold {Symbian
+ Reference Documentation for Qt}, which is delivered together with \QSDK
+ and which you can view in the \gui Help mode.
+
+ The following table summarizes the supported configurations for each Qt
+ version available in Qt Creator build settings:
+
+ \table
+ \header
+ \i Qt Version
+ \i QML
+ \i Qt Mobility Version
+ \i Native Symbian C++ APIs
+ \i Open GL
+ \row
+ \i Qt 4.6.3 for Symbian^1 (S60 5th Edition)
+ \i No
+ \i 1.0.2
+ \i No
+ \i No
+ \row
+ \i Qt 4.6.3 for Symbian^3
+ \i No
+ \i 1.0.2
+ \i Yes
+ \i No
+ \row
+ \i Qt 4.7.3 for Symbian^1
+ \i Yes
+ \i 1.1.3
+ \i No
+ \i No
+ \row
+ \i Qt 4.7.3 for Symbian^3
+ \i Yes
+ \i 1.1.3
+ \i Yes
+ \i Yes
+ \row
+ \i Qt 4.7.4 for Symbian Belle
+ \i Yes
+ \i 1.2
+ \i Yes
+ \i Yes
+ \endtable
\if defined(qcmanual)
\section1 Using On-device Debugging Agents
@@ -181,26 +248,14 @@
\section2 Installing Debugging Agents
- You can download CODA from the
- \l{http://tools.ext.nokia.com/coda/}{CODA download server}.
-
- \section1 Adding Symbian Platform SDKs
-
- \QSDK contains all the tools you need for developing Qt applications for
- Symbian devices. To use Symbian APIs directly in your applications, you can
- install additional Symbian Platform SDKs:
-
- \list
- \o \l{http://www.forum.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html}
- {S60 Platform SDK 3rd Edition FP1 or higher}.
- \o Either the GCCE ARM Toolchain that is included in the Symbian
- SDKs, or RVCT 2.2 [build 686] or later (which requires a license).
- \o Qt for Symbian 4.6.2 or later, installed into the Symbian SDKs you want
- to use.
+ CODA installation packages are delivered together with the \QSDK. On
+ Windows, you can use \gui Start menu commands to install CODA on Symbian
+ devices.
- \endlist
+ You can also download CODA from the
+ \l{http://tools.ext.nokia.com/coda/}{CODA download server}.
- \section2 Setting Up Qt Creator
+ \section1 Setting Up Qt Creator
When you run Qt Creator after installing the Symbian SDK and Qt for
Symbian, the installed SDKs and their corresponding Qt versions are
diff --git a/lib/qtcreator/qtcomponents/qtcomponents.pro b/lib/qtcreator/qtcomponents/qtcomponents.pro
index 9a3dc0e67f..5cf2d9adb9 100644
--- a/lib/qtcreator/qtcomponents/qtcomponents.pro
+++ b/lib/qtcreator/qtcomponents/qtcomponents.pro
@@ -52,6 +52,6 @@ DATA_FILE_PATTERNS = \
!macx {
qmlfiles.files = $$PWD/*.qml $$PWD/qmldir $$PWD/images $$PWD/custom
- qmlfiles.path = /lib/qtcreator/qtcomponents
+ qmlfiles.path = /$${IDE_LIBRARY_BASENAME}/qtcreator/qtcomponents
INSTALLS += qmlfiles
}
diff --git a/qtcreator.pro b/qtcreator.pro
index 12c8f3fa8b..3e15415c76 100644
--- a/qtcreator.pro
+++ b/qtcreator.pro
@@ -26,4 +26,5 @@ OTHER_FILES += dist/copyright_template.txt \
dist/changes-2.1.0 \
dist/changes-2.2.0 \
dist/changes-2.3.0 \
+ dist/changes-2.3.1 \
dist/changes-2.4.0
diff --git a/share/qtcreator/templates/qtquickapp/app.pro b/share/qtcreator/templates/qtquickapp/app.pro
index e8d197665a..3aebf6ed96 100644
--- a/share/qtcreator/templates/qtquickapp/app.pro
+++ b/share/qtcreator/templates/qtquickapp/app.pro
@@ -28,9 +28,13 @@ symbian:TARGET.CAPABILITY += NetworkServices
# CONFIG += mobility
# MOBILITY +=
-# Add dependency to symbian components
+# Speed up launching on MeeGo/Harmattan when using applauncherd daemon
+# HARMATTAN_BOOSTABLE #
+# CONFIG += qdeclarative-boostable
+
+# Add dependency to Symbian components
# QTQUICKCOMPONENTS #
-# CONFIG += qtquickcomponents
+# CONFIG += qt-components
# The .cpp file which was generated for your project. Feel free to hack it.
SOURCES += main.cpp
diff --git a/share/qtcreator/templates/qtquickapp/main.cpp b/share/qtcreator/templates/qtquickapp/main.cpp
index dfb208a90c..82347f65b2 100644
--- a/share/qtcreator/templates/qtquickapp/main.cpp
+++ b/share/qtcreator/templates/qtquickapp/main.cpp
@@ -1,15 +1,15 @@
#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"
-int main(int argc, char *argv[])
+Q_DECL_EXPORT int main(int argc, char *argv[])
{
- QApplication app(argc, argv);
+ QScopedPointer<QApplication> app(createApplication(argc, argv));
+ QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
- QmlApplicationViewer viewer;
- viewer.addImportPath(QLatin1String("modules")); // ADDIMPORTPATH
- viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION
- viewer.setMainQmlFile(QLatin1String("qml/app/main.qml")); // MAINQML
- viewer.showExpanded();
+ viewer->addImportPath(QLatin1String("modules")); // ADDIMPORTPATH
+ viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION
+ viewer->setMainQmlFile(QLatin1String("qml/app/main.qml")); // MAINQML
+ viewer->showExpanded();
- return app.exec();
+ return app->exec();
}
diff --git a/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp b/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp
index 0f7a2bd874..35599af4b3 100644
--- a/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp
+++ b/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp
@@ -9,15 +9,19 @@
#include "qmlapplicationviewer.h"
-#include <QtCore/QCoreApplication>
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
#include <QtDeclarative/QDeclarativeComponent>
#include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeContext>
+#include <QtGui/QApplication>
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
+#ifdef HARMATTAN_BOOSTER
+#include <MDeclarativeCache>
+#endif
+
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#include <qt_private/qdeclarativedebughelper_p.h>
@@ -45,9 +49,12 @@ static QmlJsDebuggingEnabler enableDebuggingHelper;
class QmlApplicationViewerPrivate
{
+ QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {}
+
QString mainQmlFile;
+ QDeclarativeView *view;
friend class QmlApplicationViewer;
- static QString adjustPath(const QString &path);
+ QString adjustPath(const QString &path);
};
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
@@ -60,47 +67,70 @@ QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
#else
const QString pathInInstallDir =
QString::fromAscii("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
- if (pathInInstallDir.contains(QLatin1String("opt"))
- && pathInInstallDir.contains(QLatin1String("bin"))
- && QFileInfo(pathInInstallDir).exists()) {
+ if (QFileInfo(pathInInstallDir).exists())
return pathInInstallDir;
- }
#endif
#endif
return path;
}
-QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
- QDeclarativeView(parent),
- m_d(new QmlApplicationViewerPrivate)
+QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
+ : QDeclarativeView(parent)
+ , d(new QmlApplicationViewerPrivate(this))
{
connect(engine(), SIGNAL(quit()), SLOT(close()));
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(engine());
+ new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
+#endif
+#if !defined(NO_QMLOBSERVER)
+ new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
+#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(this, this);
+ new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
#endif
#endif
}
QmlApplicationViewer::~QmlApplicationViewer()
{
- delete m_d;
+ delete d;
+}
+
+QmlApplicationViewer *QmlApplicationViewer::create()
+{
+#ifdef HARMATTAN_BOOSTER
+ return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0);
+#else
+ return new QmlApplicationViewer();
+#endif
}
void QmlApplicationViewer::setMainQmlFile(const QString &file)
{
- m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
- setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
+ d->mainQmlFile = d->adjustPath(file);
+ d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
}
void QmlApplicationViewer::addImportPath(const QString &path)
{
- engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
+ d->view->engine()->addImportPath(d->adjustPath(path));
}
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
@@ -149,10 +179,19 @@ void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
void QmlApplicationViewer::showExpanded()
{
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
- showFullScreen();
+ d->view->showFullScreen();
#elif defined(Q_WS_MAEMO_5)
- showMaximized();
+ d->view->showMaximized();
+#else
+ d->view->show();
+#endif
+}
+
+QApplication *createApplication(int &argc, char **argv)
+{
+#ifdef HARMATTAN_BOOSTER
+ return MDeclarativeCache::qApplication(argc, argv);
#else
- show();
+ return new QApplication(argc, argv);
#endif
}
diff --git a/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.h b/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.h
index f4d7f40cd9..d6cb43e10e 100644
--- a/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.h
+++ b/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.h
@@ -26,6 +26,8 @@ public:
explicit QmlApplicationViewer(QWidget *parent = 0);
virtual ~QmlApplicationViewer();
+ static QmlApplicationViewer *create();
+
void setMainQmlFile(const QString &file);
void addImportPath(const QString &path);
@@ -35,7 +37,10 @@ public:
void showExpanded();
private:
- class QmlApplicationViewerPrivate *m_d;
+ explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent);
+ class QmlApplicationViewerPrivate *d;
};
+QApplication *createApplication(int &argc, char **argv);
+
#endif // QMLAPPLICATIONVIEWER_H
diff --git a/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.pri b/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.pri
index 6704a74c1b..a32c88d1ae 100644
--- a/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.pri
+++ b/share/qtcreator/templates/qtquickapp/qmlapplicationviewer/qmlapplicationviewer.pri
@@ -16,3 +16,7 @@ INCLUDEPATH += $$PWD
} else {
DEFINES -= QMLJSDEBUGGER
}
+
+contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
+ DEFINES += HARMATTAN_BOOSTER
+}
diff --git a/share/qtcreator/translations/qtcreator_ja.ts b/share/qtcreator/translations/qtcreator_ja.ts
index 6a45f63f9f..1bdbacd74d 100644
--- a/share/qtcreator/translations/qtcreator_ja.ts
+++ b/share/qtcreator/translations/qtcreator_ja.ts
@@ -1500,6 +1500,10 @@ Local pulls are not applied to the master branch.</source>
<translation>Unix ジェネレータ (%1)</translation>
</message>
<message>
+ <source>No generator selected.</source>
+ <translation>ジェネレータが選択されていません。</translation>
+ </message>
+ <message>
<source>CMake exited with errors. Please check CMake output.</source>
<translation>CMake は異常終了しました。CMake の出力を確認して下さい。</translation>
</message>
@@ -17871,7 +17875,15 @@ Please build the debugging helpers on the Qt version options page.</source>
</message>
<message>
<source>The QML Profiler can be used to find performance bottlenecks in applications using QML.</source>
- <translation>jQML プロファイラは、QML を使っているアプリケーションの性能のボトルネックを探すのに使用する事ができます。</translation>
+ <translation>QML プロファイラは、QML を使っているアプリケーションの性能のボトルネックを探すのに使用する事ができます。</translation>
+ </message>
+ <message>
+ <source>The QML profiler requires Qt 4.7.4 or newer.
+The Qt version configured in your active build configuration is too old.
+Do you want to continue?</source>
+ <translation>QML プロファイラは Qt 4.7.4 以降を要求しますが
+アクティブなビルド構成で構成されている Qt バージョンは古すぎます。
+続行しますか?</translation>
</message>
<message>
<source>Events</source>
@@ -20623,10 +20635,34 @@ Reason: %2</source>
<translation>ビルドを追加</translation>
</message>
<message>
+ <source>Create Build Configurations:</source>
+ <translation>ビルド構成の作成:</translation>
+ </message>
+ <message>
+ <source>For Each Qt Version One Debug And One Release</source>
+ <translation>Qt バージョン毎に Debug と Release を1つずつ</translation>
+ </message>
+ <message>
+ <source>For One Qt Version One Debug And One Release</source>
+ <translation>1つの Qt バージョンで Debug と Release を1つずつ</translation>
+ </message>
+ <message>
+ <source>Manually</source>
+ <translation>手動</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>なし</translation>
+ </message>
+ <message>
<source>Use Shadow Building</source>
<translation>シャドウビルドを使用</translation>
</message>
<message>
+ <source>Qt Version:</source>
+ <translation>Qt バージョン:</translation>
+ </message>
+ <message>
<source>debug</source>
<extracomment>Debug build</extracomment>
<translation>デバッグ</translation>
@@ -27852,4 +27888,67 @@ p, li { white-space: pre-wrap; }
<translation>text</translation>
</message>
</context>
+<context>
+ <name>Core::Internal::ExternalTool</name>
+ <message>
+ <source>Creates qm translation files that can be used by an application from the translator&apos;s ts files</source>
+ <translation>ts ファイルからアプリケーションが利用する事ができる qm ファイルを作成します</translation>
+ </message>
+ <message>
+ <source>Release Translations (lrelease)</source>
+ <translation>翻訳をリリース (lrelease)</translation>
+ </message>
+ <message>
+ <source>Linguist</source>
+ <translation>Linguist</translation>
+ </message>
+ <message>
+ <source>Synchronizes translator&apos;s ts files with the program code</source>
+ <translation>プログラムコードと ts ファイルを同期します</translation>
+ </message>
+ <message>
+ <source>Update Translations (lupdate)</source>
+ <translation>翻訳を更新 (lupdate)</translation>
+ </message>
+ <message>
+ <source>Opens the current file in Notepad</source>
+ <translation>現在のファイルをメモ帳で開きます</translation>
+ </message>
+ <message>
+ <source>Edit with Notepad</source>
+ <translation>メモ帳で編集</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>テキスト</translation>
+ </message>
+ <message>
+ <source>Runs the current QML file with qmlviewer</source>
+ <translation>現在の QML ファイルを qmlviewer で実行します</translation>
+ </message>
+ <message>
+ <source>Preview (qmlviewer)</source>
+ <translation>プレビュー (qmlviewer)</translation>
+ </message>
+ <message>
+ <source>Qt Quick</source>
+ <translation>Qt Quick</translation>
+ </message>
+ <message>
+ <source>Sorts the selected text</source>
+ <translation>選択しているテキストをソートします</translation>
+ </message>
+ <message>
+ <source>Sort Selection</source>
+ <translation>選択をソート</translation>
+ </message>
+ <message>
+ <source>Opens the current file in vi</source>
+ <translation>現在のファイルを vi で開きます</translation>
+ </message>
+ <message>
+ <source>Edit with vi</source>
+ <translation>vi で編集</translation>
+ </message>
+</context>
</TS>
diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts
index 586ebc6071..dab0a20da9 100644
--- a/share/qtcreator/translations/qtcreator_ru.ts
+++ b/share/qtcreator/translations/qtcreator_ru.ts
@@ -1483,6 +1483,10 @@ Local pulls are not applied to the master branch.</source>
<translation>Генератор для Unix (%1)</translation>
</message>
<message>
+ <source>No generator selected.</source>
+ <translation>Генератор не выбран.</translation>
+ </message>
+ <message>
<source>No valid cmake executable specified.</source>
<translation>Не указана корректная программа cmake.</translation>
</message>
@@ -3861,7 +3865,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Shortcut</source>
- <translation>Комбинация клавиш</translation>
+ <translation>Сочетание клавиш</translation>
</message>
<message>
<source>Import Keyboard Mapping Scheme</source>
@@ -6983,16 +6987,6 @@ Setting breakpoints by file name and line number may fail.</source>
<source>%1 debugger activated</source>
<translation>Отладчик %1 активирован</translation>
</message>
- <message>
- <source>QML/C++ Debugging</source>
- <translation type="obsolete">Отладка QML/C++</translation>
- </message>
- <message>
- <source>Cannot stop execution before QML engine is started. Skipping breakpoint.
-Suggestions: Move the breakpoint after QmlApplicationViewer instantiation or switch to C++ only debugging.</source>
- <translation type="obsolete">Невозможно прекратить выполнение пока запущен движок QML. Пропуск точки останова.
-Рекомендуется переустановить точку останова после инициализации QmlApplicationViewer или переключиться в режим отладки только C++.</translation>
- </message>
</context>
<context>
<name>Debugger::Internal::QmlEngine</name>
@@ -9354,7 +9348,7 @@ Add, modify, and remove document filters, which determine the documentation set
<name>FlowSpecifics</name>
<message>
<source>Flow</source>
- <translation type="unfinished">Перетекание</translation>
+ <translation>Перетекание</translation>
</message>
<message>
<source>Spacing</source>
@@ -11152,7 +11146,7 @@ You can choose between stashing the changes or discarding them.</source>
</message>
<message>
<source>Flow</source>
- <translation type="unfinished">Перетекание</translation>
+ <translation>Перетекание</translation>
</message>
<message>
<source>Spacing</source>
@@ -11183,11 +11177,11 @@ You can choose between stashing the changes or discarding them.</source>
</message>
<message>
<source>Resize wraps</source>
- <translation type="unfinished"></translation>
+ <translation>Перенос при изменении размера</translation>
</message>
<message>
<source>Determines whether the grid wraps key navigation.</source>
- <translation type="unfinished"></translation>
+ <translation>Определяет, меняет ли сетка навигацию клавишами.</translation>
</message>
<message>
<source>Snap mode</source>
@@ -11243,7 +11237,7 @@ You can choose between stashing the changes or discarding them.</source>
</message>
<message>
<source>Flow</source>
- <translation type="unfinished">Перетекание</translation>
+ <translation>Перетекание</translation>
</message>
<message>
<source>Grid View Highlight</source>
@@ -11907,11 +11901,11 @@ QML.</translation>
</message>
<message>
<source>Navigation wraps</source>
- <translation type="unfinished"></translation>
+ <translation>Перенос при перемещениях</translation>
</message>
<message>
<source>Determines whether the grid wraps key navigation.</source>
- <translation type="unfinished"></translation>
+ <translation>Определяет, меняет ли сетка навигацию клавишами.</translation>
</message>
<message>
<source>Orientation of the list.</source>
@@ -13650,14 +13644,33 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
</context>
<context>
+ <name>MobileAppWizardHarmattanOptionsPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Application icon (80x80):</source>
+ <translation>Значок приложения (80x80):</translation>
+ </message>
+ <message>
+ <source>Generate code to speed up the launching on the device.</source>
+ <translation>Создать код для ускорения запуска на устройстве.</translation>
+ </message>
+ <message>
+ <source>Make application boostable</source>
+ <translation>Делать приложение быстрее</translation>
+ </message>
+</context>
+<context>
<name>MobileAppWizardMaemoOptionsPage</name>
<message>
<source>WizardPage</source>
<translation></translation>
</message>
<message>
- <source>Application icon (%%w%%x%%h%%):</source>
- <translation>Значок приложения (%%w%%x%%h%%):</translation>
+ <source>Application icon (64x64):</source>
+ <translation>Значок приложения (64x64):</translation>
</message>
</context>
<context>
@@ -13875,7 +13888,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Path View Highlight</source>
- <translation type="unfinished">Подсветка вида кривой</translation>
+ <translation>Подсветка вида кривой</translation>
</message>
<message>
<source>Highlight range</source>
@@ -18033,6 +18046,14 @@ Please build the debugging helpers on the Qt version options page.</source>
<translation>QML Profiler предназначен для поиска узких мест в приложениях использующих QML.</translation>
</message>
<message>
+ <source>The QML profiler requires Qt 4.7.4 or newer.
+The Qt version configured in your active build configuration is too old.
+Do you want to continue?</source>
+ <translation>Профилеру QML требуется Qt версии 4.7.4 или выше.
+Версия Qt настроенная для текущей конфигурации сборки слишком старая.
+Продолжить?</translation>
+ </message>
+ <message>
<source>Events</source>
<translation>События</translation>
</message>
@@ -18252,7 +18273,7 @@ You can review Qt Quick UI projects in the QML Viewer and you need not build the
<message>
<source>QML Viewer</source>
<comment>QMLRunConfiguration display name.</comment>
- <translation>Просмотр QML</translation>
+ <translation></translation>
</message>
</context>
<context>
@@ -18260,7 +18281,7 @@ You can review Qt Quick UI projects in the QML Viewer and you need not build the
<message>
<source>QML Viewer</source>
<comment>QML Viewer target display name</comment>
- <translation>Просмотр QML</translation>
+ <translation></translation>
</message>
</context>
<context>
@@ -19112,22 +19133,32 @@ Adds the library and include paths to the .pro file.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::MobileAppWizardMaemoOptionsPage</name>
+ <name>Qt4ProjectManager::Internal::ModulesPage</name>
<message>
- <source>Invalid Icon</source>
- <translation>Неверный значок</translation>
+ <source>Select Required Modules</source>
+ <translation>Выбор необходимых модулей</translation>
+ </message>
+ <message>
+ <source>Select the modules you want to include in your project. The recommended modules for this project are selected by default.</source>
+ <translation>Выберите модули, которые хотите включить в проект. Рекомендуемые для этого проекта модули уже выбраны по умолчанию.</translation>
</message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Internal::PluginGenerator</name>
<message>
- <source>The file is not a valid image.</source>
- <translation>Файл не является изображением.</translation>
+ <source>Creating multiple widget libraries (%1, %2) in one project (%3) is not supported.</source>
+ <translation>Создание нескольких библиотек виджетов (%1, %2) в одном проекте (%3) не поддерживается.</translation>
</message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Internal::PngIconScaler</name>
<message>
<source>Wrong Icon Size</source>
<translation>Неверный размер значка</translation>
</message>
<message>
- <source>The icon needs to be %1x%2 pixels big, but is not. Do you want Creator to scale it?</source>
- <translation>Значок должен быть размером %1х%2. Желаете, чтобы Qt Creator подогнал размер?</translation>
+ <source>The icon needs to be %1x%2 pixels big, but is not. Do you want Qt Creator to scale it?</source>
+ <translation>Значок должен быть размером в %1x%2 пикселей. Должен ли Qt Creator изменить его масштаб?</translation>
</message>
<message>
<source>File Error</source>
@@ -19139,24 +19170,6 @@ Adds the library and include paths to the .pro file.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::ModulesPage</name>
- <message>
- <source>Select Required Modules</source>
- <translation>Выбор необходимых модулей</translation>
- </message>
- <message>
- <source>Select the modules you want to include in your project. The recommended modules for this project are selected by default.</source>
- <translation>Выберите модули, которые хотите включить в проект. Рекомендуемые для этого проекта модули уже выбраны по умолчанию.</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::PluginGenerator</name>
- <message>
- <source>Creating multiple widget libraries (%1, %2) in one project (%3) is not supported.</source>
- <translation>Создание нескольких библиотек виджетов (%1, %2) в одном проекте (%3) не поддерживается.</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::ProjectLoadWizard</name>
<message>
<source>Project Setup</source>
@@ -19929,6 +19942,10 @@ Use a developer certificate or any other signing option to prevent this patching
<translation>Версия элементов Qt Quick: </translation>
</message>
<message>
+ <source>QML Viewer version: </source>
+ <translation>Версия QML Viewer: </translation>
+ </message>
+ <message>
<source>Screen size:</source>
<translation>Размер экрана:</translation>
</message>
@@ -20785,10 +20802,34 @@ Reason: %2</source>
<translation>Добавить сборку</translation>
</message>
<message>
+ <source>Create Build Configurations:</source>
+ <translation>Создать конфигурации сборки:</translation>
+ </message>
+ <message>
+ <source>For Each Qt Version One Debug And One Release</source>
+ <translation>Одну отладочную и одну релизную для каждого профиля Qt</translation>
+ </message>
+ <message>
+ <source>For One Qt Version One Debug And One Release</source>
+ <translation>Одну отладочную и одну релизную для одного профиля Qt</translation>
+ </message>
+ <message>
+ <source>Manually</source>
+ <translation>Вручную</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Не создавать</translation>
+ </message>
+ <message>
<source>Use Shadow Building</source>
<translation>Использовать теневую сборку</translation>
</message>
<message>
+ <source>Qt Version:</source>
+ <translation>Профиль Qt:</translation>
+ </message>
+ <message>
<source>debug</source>
<extracomment>Debug build</extracomment>
<translation>отладка</translation>
@@ -21670,10 +21711,6 @@ Requires Qt 4.7.4 or newer, and the component set installed for your Qt version.
<translation>Выполнение внешнего процесса завершено. Код завершения %1.
</translation>
</message>
- <message>
- <source>Remote Execution Failure</source>
- <translation>Ошибка внешнего выполнения</translation>
- </message>
</context>
<context>
<name>RemoteLinux::CreateTarStepWidget</name>
@@ -21731,6 +21768,14 @@ In addition, device connectivity will be tested.</source>
<translation>Файл журнала изменений Debian «%1» имеет неожиданный формат.</translation>
</message>
<message>
+ <source>Refusing to update changelog file: Already contains version &apos;%1&apos;.</source>
+ <translation>Не удалось обновить файл changelog: Уже содержит версию «%1».</translation>
+ </message>
+ <message>
+ <source>Cannot update changelog: Invalid format (no maintainer entry found).</source>
+ <translation>Не удалось обновить changelog: Неверный формат (нет записи о разработчике).</translation>
+ </message>
+ <message>
<source>Invalid icon data in Debian control file.</source>
<translation>Неверные данные значка в управляющем файле Debian.</translation>
</message>
@@ -27141,7 +27186,7 @@ Influences the indentation of continuation lines.
<name>Valgrind::Callgrind::ParseData</name>
<message>
<source>Last-level</source>
- <translation type="unfinished">Последний уровень</translation>
+ <translation>Последний уровень</translation>
</message>
<message>
<source>Instruction</source>
diff --git a/share/qtcreator/translations/qtcreator_zh_CN.ts b/share/qtcreator/translations/qtcreator_zh_CN.ts
index 094f3c2512..2e65e25b67 100644
--- a/share/qtcreator/translations/qtcreator_zh_CN.ts
+++ b/share/qtcreator/translations/qtcreator_zh_CN.ts
@@ -102,7 +102,7 @@
<name>BINEditor::Internal::BinEditorPlugin</name>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
@@ -245,7 +245,7 @@
<name>Bookmarks::Internal::BookmarksPlugin</name>
<message>
<source>&amp;Bookmarks</source>
- <translation>书签(&amp;B)</translation>
+ <translation>书签</translation>
</message>
<message>
<source>Toggle Bookmark</source>
@@ -756,7 +756,7 @@
<name>CodePaster::CodepasterPlugin</name>
<message>
<source>&amp;Code Pasting</source>
- <translation>粘贴代码(&amp;C)</translation>
+ <translation>粘贴代码</translation>
</message>
<message>
<source>Paste Snippet...</source>
@@ -1216,7 +1216,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Save %1 &amp;As...</source>
- <translation>%1 另存为(&amp;A)...</translation>
+ <translation>%1 另存为...</translation>
</message>
<message>
<source>Goto Other Split</source>
@@ -1332,7 +1332,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Ad&amp;vanced</source>
- <translation>高级(&amp;v)</translation>
+ <translation>高级</translation>
</message>
<message>
<source>Full path of the current document including file name.</source>
@@ -1757,11 +1757,11 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>&amp;New File or Project...</source>
- <translation>新建文件或工程(&amp;N)...</translation>
+ <translation>新建文件或工程...</translation>
</message>
<message>
<source>&amp;Open File or Project...</source>
- <translation>打开文件或工程(&amp;O)...</translation>
+ <translation>打开文件或工程...</translation>
</message>
<message>
<source>&amp;Open File With...</source>
@@ -1773,19 +1773,20 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Open File &amp;With...</source>
- <translation>用...打开文件(&amp;W)...</translation>
+ <translatorcomment>不需要快捷键</translatorcomment>
+ <translation>用...打开文件</translation>
</message>
<message>
<source>Recent &amp;Files</source>
- <translation>最近访问的文件(&amp;F)</translation>
+ <translation>最近访问的文件</translation>
</message>
<message>
<source>&amp;Save</source>
- <translation>保存(&amp;S)</translation>
+ <translation>保存</translation>
</message>
<message>
<source>Save &amp;As...</source>
- <translation>另存为(&amp;A)...</translation>
+ <translation>另存为...</translation>
</message>
<message>
<source>Ctrl+Shift+S</source>
@@ -1793,15 +1794,15 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Save A&amp;ll</source>
- <translation>保存所有文件(&amp;l)</translation>
+ <translation>保存所有文件</translation>
</message>
<message>
<source>&amp;Print...</source>
- <translation>打印(&amp;P)...</translation>
+ <translation>打印...</translation>
</message>
<message>
<source>E&amp;xit</source>
- <translation>退出(&amp;x)</translation>
+ <translation>退出</translation>
</message>
<message>
<source>Ctrl+Q</source>
@@ -1809,7 +1810,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
@@ -1817,23 +1818,23 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Cu&amp;t</source>
- <translation>剪切(&amp;t)</translation>
+ <translation>剪切</translation>
</message>
<message>
<source>&amp;Copy</source>
- <translation>复制(&amp;C)</translation>
+ <translation>复制</translation>
</message>
<message>
<source>&amp;Paste</source>
- <translation>粘贴(&amp;P)</translation>
+ <translation>粘贴</translation>
</message>
<message>
<source>Select &amp;All</source>
- <translation>全选(&amp;A)</translation>
+ <translation>全选</translation>
</message>
<message>
<source>&amp;Go to Line...</source>
- <translation>转到行(&amp;G)...</translation>
+ <translation>转到行...</translation>
</message>
<message>
<source>&amp;Select All</source>
@@ -1849,7 +1850,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>&amp;Options...</source>
- <translation>选项(&amp;O)...</translation>
+ <translation>选项...</translation>
</message>
<message>
<source>Minimize</source>
@@ -1869,19 +1870,19 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>&amp;Views</source>
- <translation>视图(&amp;V)</translation>
+ <translation>视图</translation>
</message>
<message>
<source>About &amp;Qt Creator</source>
- <translation>关于 Qt Creator(&amp;Q)</translation>
+ <translation>关于 Qt Creator</translation>
</message>
<message>
<source>About &amp;Qt Creator...</source>
- <translation>关于 Qt Creator(&amp;Q)...</translation>
+ <translation>关于 Qt Creator...</translation>
</message>
<message>
<source>About &amp;Plugins...</source>
- <translation>关于插件(&amp;P)...</translation>
+ <translation>关于插件...</translation>
</message>
<message>
<source>New</source>
@@ -2058,7 +2059,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>Output &amp;Panes</source>
- <translation>输出窗口(&amp;P)</translation>
+ <translation>输出窗口</translation>
</message>
</context>
<context>
@@ -2990,7 +2991,7 @@ Would you like to overwrite them?</source>
<name>CppTools::Internal::CppToolsPlugin</name>
<message>
<source>&amp;C++</source>
- <translation>C++(&amp;C)</translation>
+ <translation>C++</translation>
</message>
<message>
<source>Switch Header/Source</source>
@@ -9039,11 +9040,11 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>Could not find working directory</source>
@@ -9453,7 +9454,7 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<source>Technical Support</source>
- <translation>计数支持</translation>
+ <translation>技术支持</translation>
</message>
<message>
<source>Report Bug</source>
@@ -10181,11 +10182,11 @@ SOURCES *= .../ide/main/bin/dumper/dumper.cpp
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>p4 revert</source>
@@ -11757,7 +11758,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>&amp;Start Debugging</source>
- <translation>开始调试(&amp;S)</translation>
+ <translation>开始调试</translation>
</message>
<message>
<source>Open With</source>
@@ -11809,7 +11810,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Recent P&amp;rojects</source>
- <translation>最近使用的项目(&amp;r)</translation>
+ <translation>最近使用的项目</translation>
</message>
<message>
<source>Close Project</source>
@@ -14506,11 +14507,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
</context>
<context>
@@ -15096,11 +15097,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>Closing Subversion Editor</source>
@@ -15595,7 +15596,7 @@ Influences the indentation of continuation lines.
</message>
<message>
<source>&amp;Visualize whitespace</source>
- <translation>标示空白(&amp;V)</translation>
+ <translation>标示空白</translation>
</message>
<message>
<source>Highlight current &amp;line</source>
@@ -15607,7 +15608,7 @@ Influences the indentation of continuation lines.
</message>
<message>
<source>Enable text &amp;wrapping</source>
- <translation>开启文字折行(&amp;w)</translation>
+ <translation>开启文字折行</translation>
</message>
<message>
<source>Display right &amp;margin at column:</source>
@@ -15881,11 +15882,11 @@ The following encodings are likely to fit:</source>
<name>TextEditor::TextEditorActionHandler</name>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>Select Encoding...</source>
@@ -15893,7 +15894,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>Auto-&amp;indent Selection</source>
- <translation>选中的文字自动缩进(&amp;i)</translation>
+ <translation>选中的文字自动缩进</translation>
</message>
<message>
<source>Ctrl+I</source>
@@ -15913,7 +15914,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>&amp;Visualize Whitespace</source>
- <translation>标示空白符(&amp;V)</translation>
+ <translation>标示空白</translation>
</message>
<message>
<source>Clean Whitespace</source>
@@ -15921,7 +15922,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>Enable Text &amp;Wrapping</source>
- <translation>开启文字折行(&amp;W)</translation>
+ <translation>开启文字折行</translation>
</message>
<message>
<source>(Un)Comment &amp;Selection</source>
@@ -15985,7 +15986,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>&amp;Rewrap Paragraph</source>
- <translation>段落重新折行(&amp;R)</translation>
+ <translation>段落重新折行</translation>
</message>
<message>
<source>%1+E, %2+V</source>
@@ -15997,7 +15998,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>Toggle Comment &amp;Selection</source>
- <translation>选中评论选择(&amp;S)</translation>
+ <translation>选中区域注释/反注释</translation>
</message>
<message>
<source>Cut &amp;Line</source>
@@ -16069,7 +16070,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>Toggle &amp;Fold All</source>
- <translation>选择 折叠/展开所有(&amp;F)</translation>
+ <translation>选择 折叠/展开所有</translation>
</message>
<message>
<source>Ctrl+}</source>
@@ -18339,11 +18340,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>Closing CVS Editor</source>
@@ -20817,11 +20818,11 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>There are no changes to commit.</source>
@@ -22150,11 +22151,11 @@ You can choose between stashing the changes or discarding them.</source>
</message>
<message>
<source>Save P&amp;ublic Key...</source>
- <translation>保存公钥文件(&amp;u)...</translation>
+ <translation>保存公钥文件...</translation>
</message>
<message>
<source>Save Pr&amp;ivate Key...</source>
- <translation>保存私钥文件(&amp;i)...</translation>
+ <translation>保存私钥文件...</translation>
</message>
<message>
<source>&amp;Close</source>
@@ -23226,7 +23227,7 @@ Previous decimal signed value (big endian): %4</source>
<name>Find::FindPlugin</name>
<message>
<source>&amp;Find/Replace</source>
- <translation>查找/替换(&amp;F)</translation>
+ <translation>查找/替换</translation>
</message>
<message>
<source>Advanced Find</source>
@@ -24173,11 +24174,11 @@ Ids must begin with a lowercase letter.</source>
<name>QmlDesigner::Internal::DesignModeWidget</name>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>Delete</source>
@@ -24189,7 +24190,7 @@ Ids must begin with a lowercase letter.</source>
</message>
<message>
<source>Cu&amp;t</source>
- <translation>剪切(&amp;t)</translation>
+ <translation>剪切</translation>
</message>
<message>
<source>Cut &quot;%1&quot;</source>
@@ -24197,7 +24198,7 @@ Ids must begin with a lowercase letter.</source>
</message>
<message>
<source>&amp;Copy</source>
- <translation>复制(&amp;C)</translation>
+ <translation>复制</translation>
</message>
<message>
<source>Copy &quot;%1&quot;</source>
@@ -24205,7 +24206,7 @@ Ids must begin with a lowercase letter.</source>
</message>
<message>
<source>&amp;Paste</source>
- <translation>粘贴(&amp;P)</translation>
+ <translation>粘贴</translation>
</message>
<message>
<source>Paste &quot;%1&quot;</source>
@@ -24213,7 +24214,7 @@ Ids must begin with a lowercase letter.</source>
</message>
<message>
<source>Select &amp;All</source>
- <translation>全选(&amp;A)</translation>
+ <translation>全选</translation>
</message>
<message>
<source>Select All &quot;%1&quot;</source>
@@ -24268,7 +24269,7 @@ Ids must begin with a lowercase letter.</source>
</message>
<message>
<source>&amp;Save %1</source>
- <translation>保存%1(&amp;S)</translation>
+ <translation>保存%1</translation>
</message>
<message>
<source>Revert %1 to Saved</source>
@@ -30329,7 +30330,7 @@ instead of its installation directory when run outside git bash.</source>
<message>
<source>&amp;Copy</source>
<comment>Name of the action triggering the copytaskhandler</comment>
- <translation>复制(&amp;C)</translation>
+ <translation>复制</translation>
</message>
<message>
<source>Copy task to clipboard</source>
@@ -34612,11 +34613,11 @@ Influences the indentation of continuation lines.
</message>
<message>
<source>&amp;Undo</source>
- <translation>撤销(&amp;U)</translation>
+ <translation>撤销</translation>
</message>
<message>
<source>&amp;Redo</source>
- <translation>重做(&amp;R)</translation>
+ <translation>重做</translation>
</message>
<message>
<source>There are no changes to commit.</source>
@@ -34894,7 +34895,7 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>&amp;Refactor</source>
- <translation>重构(&amp;R)</translation>
+ <translation>重构</translation>
</message>
<message>
<source>Unused variable</source>
diff --git a/src/libs/qtcomponents/styleitem/styleitem.pro b/src/libs/qtcomponents/styleitem/styleitem.pro
index aa52c88a13..90b8eee8ce 100644
--- a/src/libs/qtcomponents/styleitem/styleitem.pro
+++ b/src/libs/qtcomponents/styleitem/styleitem.pro
@@ -29,6 +29,6 @@ SOURCES += qtmenu.cpp \
qwheelarea.cpp
!macx {
- target.path = /lib/qtcreator/qtcomponents/plugin
+ target.path = /$${IDE_LIBRARY_BASENAME}/qtcreator/qtcomponents/plugin
INSTALLS += target
}
diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp
index a8a04e24a6..e2dd621fc9 100644
--- a/src/plugins/bineditor/bineditor.cpp
+++ b/src/plugins/bineditor/bineditor.cpp
@@ -945,8 +945,8 @@ void BinEditor::setCursorPosition(int pos, MoveMode moveMode)
hasSelection = m_anchorPosition != m_cursorPosition;
updateLines(hasSelection ? oldCursorPosition : m_cursorPosition, m_cursorPosition);
ensureCursorVisible();
- if (hasSelection != (m_anchorPosition != m_anchorPosition))
- emit copyAvailable(m_anchorPosition != m_cursorPosition);
+ if (hasSelection)
+ emit copyAvailable(hasSelection);
emit cursorPositionChanged(m_cursorPosition);
}
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 6ec45a45c8..e2e0886130 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -164,10 +164,9 @@ void QmlEngine::setupInferior()
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
if (startParameters().startMode == AttachToRemote) {
+ emit requestRemoteSetup();
if (startParameters().qmlServerPort != quint16(-1))
notifyInferiorSetupOk();
- else
- emit requestRemoteSetup();
} else {
d->m_applicationLauncher.setEnvironment(startParameters().environment);
d->m_applicationLauncher.setWorkingDirectory(startParameters().workingDirectory);
diff --git a/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri b/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri
index 24f0c19b72..4975d9e153 100644
--- a/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri
+++ b/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri
@@ -1,5 +1,5 @@
macx {
DESTDIR = $$IDE_LIBRARY_PATH/QmlDesigner
} else {
- DESTDIR = $$IDE_BUILD_TREE/lib/qmldesigner
+ DESTDIR = $$IDE_BUILD_TREE/$${IDE_LIBRARY_BASENAME}/qmldesigner
}
diff --git a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
index 0333b5e4fc..3ae4815cc2 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
@@ -71,7 +71,7 @@ static inline bool checkIfNodeIsAView(const ModelNode &node)
static inline bool isItem(const ModelNode &node)
{
- return node.metaInfo().isValid() && node.metaInfo().isSubclassOf("QtQuick.Item", -1, -1);
+ return node.isValid() && node.metaInfo().isValid() && node.metaInfo().isSubclassOf("QtQuick.Item", -1, -1);
}
static inline QList<QmlItemNode> siblingsForNode(const QmlItemNode &itemNode)
@@ -251,7 +251,7 @@ void ModelNodeContextMenu::execute(const QPoint &pos, bool selectionMenuBool)
editMenu->addAction(action);
action = createModelNodeAction(tr("Visibility"), editMenu, QList<ModelNode>() << currentSingleNode, ModelNodeAction::ModelNodeVisibility, singleSelected);
editMenu->addAction(action);
- if (!isItem(currentSingleNode))
+ if (singleSelected && !isItem(currentSingleNode))
action->setDisabled(true);
} else {
diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
index 01aadc0671..8a0f8ce8e7 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
@@ -216,6 +216,8 @@ RunControl *QmlProjectRunControlFactory::createDebugRunControl(QmlProjectRunConf
params.displayName = runConfig->displayName();
params.projectSourceDirectory = runConfig->target()->project()->projectDirectory();
params.projectSourceFiles = runConfig->target()->project()->files(Project::ExcludeGeneratedFiles);
+ if (!runConfig->qtVersion()->qtAbis().isEmpty())
+ params.toolChainAbi = runConfig->qtVersion()->qtAbis().first();
// Makes sure that all bindings go through the JavaScript engine, so that
// breakpoints are actually hit!
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 02dca1d90c..abecb0d5cb 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -180,7 +180,7 @@ QStringList QMakeStep::moreArguments()
if (!bc->qtVersion()->needsQmlDebuggingLibrary()) {
// This Qt version has the QML debugging services built in, however
// they still need to be enabled at compile time
- arguments << QLatin1String("CONFIG+=declarative_debug");
+ arguments << QLatin1String(Constants::QMAKEVAR_DECLARATIVE_DEBUG);
} else {
QString qmlDebuggingHelperLibrary = bc->qtVersion()->qmlDebuggingHelperLibrary(true);
if (!qmlDebuggingHelperLibrary.isEmpty()) {
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
index 39f7ee0a85..11ac93ecde 100644
--- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
@@ -70,7 +70,6 @@ CodaRunControl::CodaRunControl(RunConfiguration *runConfiguration, const QString
S60RunControlBase(runConfiguration, mode),
m_port(0),
m_state(StateUninit),
- m_codaFlags(0),
m_stopAfterConnect(false)
{
const S60DeviceRunConfiguration *s60runConfig = qobject_cast<S60DeviceRunConfiguration *>(runConfiguration);
@@ -167,7 +166,7 @@ void CodaRunControl::doStop()
case StateProcessRunning:
QTC_ASSERT(!m_runningProcessId.isEmpty(), return);
m_codaDevice->sendRunControlTerminateCommand(CodaCallback(),
- m_runningProcessId.toAscii());
+ m_runningProcessId.toAscii());
break;
default:
if (debug)
@@ -226,10 +225,7 @@ void CodaRunControl::slotCodaEvent(const CodaEvent &event)
void CodaRunControl::initCommunication()
{
- if (m_codaFlags & OptionsUseDebugSession)
- m_codaDevice->sendDebugSessionControlSessionStartCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionStarted));
- else
- m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
+ m_codaDevice->sendDebugSessionControlSessionStartCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionStarted));
}
void CodaRunControl::handleConnected(const CodaEvent &event)
@@ -241,8 +237,6 @@ void CodaRunControl::handleConnected(const CodaEvent &event)
setProgress(maxProgress()*0.80);
m_codaServices = static_cast<const CodaLocatorHelloEvent &>(event).services();
- if (m_codaServices.contains(QLatin1String("DebugSessionControl")))
- m_codaFlags |= OptionsUseDebugSession;
emit connected();
if (!m_stopAfterConnect)
@@ -255,11 +249,7 @@ void CodaRunControl::handleContextRemoved(const CodaEvent &event)
= static_cast<const CodaRunControlContextRemovedEvent &>(event).ids();
if (!m_runningProcessId.isEmpty()
&& removedItems.contains(m_runningProcessId.toAscii())) {
- appendMessage(tr("Process has finished.\n"), Utils::NormalMessageFormat);
- if (m_codaFlags & OptionsUseDebugSession)
- m_codaDevice->sendDebugSessionControlSessionEndCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionEnded));
- else
- finishRunControl();
+ m_codaDevice->sendDebugSessionControlSessionEndCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionEnded));
}
}
@@ -331,6 +321,10 @@ void CodaRunControl::handleAddListener(const CodaCommandResult &result)
void CodaRunControl::handleDebugSessionStarted(const CodaCommandResult &result)
{
Q_UNUSED(result)
+ if (m_codaDevice.isNull()) {
+ finishRunControl();
+ return;
+ }
m_state = StateDebugSessionStarted;
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
}
@@ -355,7 +349,7 @@ void CodaRunControl::handleFindProcesses(const CodaCommandResult &result)
executableUid(),
commandLineArguments().split(' '),
QString(),
- !(m_codaFlags & OptionsUseDebugSession));
+ true);
appendMessage(tr("Launching: %1\n").arg(executableName()), Utils::NormalMessageFormat);
}
}
@@ -365,17 +359,14 @@ void CodaRunControl::handleCreateProcess(const CodaCommandResult &result)
const bool ok = result.type == CodaCommandResult::SuccessReply;
bool processCreated = false;
if (ok) {
- if (m_codaFlags & OptionsUseDebugSession) {
- if (result.values.size()) {
- Json::JsonValue id = result.values.at(0).findChild("ID");
- if (id.isValid()) {
- m_state = StateProcessRunning;
- m_runningProcessId = id.data();
- processCreated = true;
- }
+ if (result.values.size()) {
+ Json::JsonValue id = result.values.at(0).findChild("ID");
+ if (id.isValid()) {
+ m_state = StateProcessRunning;
+ m_runningProcessId = id.data();
+ processCreated = true;
}
- } else // If no DebugSession is present the process will already be created by now
- processCreated = true;
+ }
}
if (processCreated) {
setProgress(maxProgress());
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
index ccbb7701e2..584897c6e6 100644
--- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
+++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
@@ -116,11 +116,6 @@ private:
StateDebugSessionEnded
};
- enum Options {
- OptionsNone = 0,
- OptionsUseDebugSession = 1
- };
-
QSharedPointer<Coda::CodaDevice> m_codaDevice;
QString m_address;
@@ -130,7 +125,6 @@ private:
QStringList m_codaServices;
State m_state;
- quint32 m_codaFlags;
bool m_stopAfterConnect;
};
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
index 25e94091b0..363357d6a7 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
@@ -77,6 +77,7 @@ const char LAST_DRIVE_LETTER = 'Z';
static const quint32 CODA_UID = 0x20021F96;
static const quint32 QTMOBILITY_UID = 0x2002AC89;
static const quint32 QTCOMPONENTS_UID = 0x200346DE;
+static const quint32 QMLVIEWER_UID = 0x20021317;
QString formatDriveText(const S60DeployConfiguration::DeviceDrive &drive)
{
@@ -597,6 +598,7 @@ void S60DeployConfigurationWidget::getRomInfoResult(const Coda::CodaCommandResul
packagesOfInterest.append(CODA_UID);
packagesOfInterest.append(QTMOBILITY_UID);
packagesOfInterest.append(QTCOMPONENTS_UID);
+ packagesOfInterest.append(QMLVIEWER_UID);
if (m_codaInfoDevice)
m_codaInfoDevice->sendSymbianInstallGetPackageInfoCommand(Coda::CodaCallback(this, &S60DeployConfigurationWidget::getInstalledPackagesResult), packagesOfInterest);
}
@@ -642,6 +644,10 @@ void S60DeployConfigurationWidget::getInstalledPackagesResult(const Coda::CodaCo
addToTable(str, tr("Qt Quick components version: "), error ? tr("Not installed") : versionString);
}
break;
+ case QMLVIEWER_UID: {
+ addToTable(str, tr("QML Viewer version: "), error ? tr("Not installed") : versionString);
+ }
+ break;
default: break;
}
}
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index 39833e6ee4..96dc194795 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -535,8 +535,9 @@ bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
{
bool removedArgument = false;
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
- if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) {
- ait.deleteArg();
+ const QString arg = ait.value();
+ if (arg.contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))
+ || arg.contains(Constants::QMAKEVAR_DECLARATIVE_DEBUG)) {
removedArgument = true;
}
}
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro
index 5452bf28be..81410e78fb 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.pro
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro
@@ -137,6 +137,7 @@ FORMS += makestep.ui \
wizards/mobileappwizardgenericoptionspage.ui \
wizards/mobileappwizardsymbianoptionspage.ui \
wizards/mobileappwizardmaemooptionspage.ui \
+ wizards/mobileappwizardharmattanoptionspage.ui \
wizards/qtquickcomponentsetoptionspage.ui
RESOURCES += qt4projectmanager.qrc \
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index f3a21193b1..35c8ca0ced 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -115,6 +115,7 @@ const char * const ICON_HTML5_APP = ":/wizards/images/html5app.png";
// Env variables
const char * const QMAKEVAR_QMLJSDEBUGGER_PATH = "QMLJSDEBUGGER_PATH";
+const char * const QMAKEVAR_DECLARATIVE_DEBUG = "CONFIG+=declarative_debug";
} // namespace Constants
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
index d56a1275fa..8b24bae49d 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
@@ -42,6 +42,7 @@
#endif // CREATORLESSTEST
#include <utils/fileutils.h>
+#include <utils/qtcassert.h>
namespace Qt4ProjectManager {
@@ -62,8 +63,11 @@ const QString AbstractMobileApp::FileStubVersion(QLatin1String("version"));
const int AbstractMobileApp::StubVersion = 6;
AbstractMobileApp::AbstractMobileApp()
- : m_orientation(ScreenOrientationAuto)
+ : QObject()
+ , m_canSupportMeegoBooster(false)
+ , m_orientation(ScreenOrientationAuto)
, m_networkEnabled(true)
+ , m_supportsMeegoBooster(false)
{
}
@@ -209,7 +213,10 @@ QByteArray AbstractMobileApp::generateDesktopFile(QString *errorMessage, int fil
} else if (fileType == AbstractGeneratedFileInfo::DesktopFileHarmattan) {
desktopFileContent.replace("Icon=thisApp",
"Icon=/usr/share/icons/hicolor/80x80/apps/" + projectName().toUtf8() + "80.png");
- desktopFileContent.replace("Exec=", "Exec=/usr/bin/single-instance ");
+ if (m_supportsMeegoBooster)
+ desktopFileContent.replace("Exec=", "Exec=/usr/bin/invoker --type=d -s ");
+ else
+ desktopFileContent.replace("Exec=", "Exec=/usr/bin/single-instance ");
}
return desktopFileContent.replace("thisApp", projectName().toUtf8());
}
@@ -416,6 +423,22 @@ QString AbstractMobileApp::error() const
return m_error;
}
+bool AbstractMobileApp::canSupportMeegoBooster() const
+{
+ return m_canSupportMeegoBooster;
+}
+
+bool AbstractMobileApp::supportsMeegoBooster() const
+{
+ return m_supportsMeegoBooster;
+}
+
+void AbstractMobileApp::setSupportsMeegoBooster(bool supportMeegoBooster)
+{
+ QTC_ASSERT(canSupportMeegoBooster(), return);
+ m_supportsMeegoBooster = supportMeegoBooster;
+}
+
QByteArray AbstractMobileApp::readBlob(const QString &filePath,
QString *errorMsg) const
{
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
index c1d5ff80de..caabba1aab 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
@@ -133,6 +133,10 @@ public:
QString path(int fileType) const;
QString error() const;
+ bool canSupportMeegoBooster() const;
+ bool supportsMeegoBooster() const;
+ void setSupportsMeegoBooster(bool supportBooster);
+
#ifndef CREATORLESSTEST
virtual Core::GeneratedFiles generateFiles(QString *errorMessage) const;
#else
@@ -168,6 +172,8 @@ protected:
static const int StubVersion;
QString m_error;
+ bool m_canSupportMeegoBooster;
+
private:
QByteArray generateDesktopFile(QString *errorMessage, int fileType) const;
QByteArray generateMainCpp(QString *errorMessage) const;
@@ -194,6 +200,7 @@ private:
QString m_symbianTargetUid;
ScreenOrientation m_orientation;
bool m_networkEnabled;
+ bool m_supportsMeegoBooster;
};
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
index 650f6b92ba..b1c6f12187 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
@@ -70,8 +70,8 @@ AbstractMobileAppWizardDialog::AbstractMobileAppWizardDialog(QWidget *parent, co
m_genericOptionsPage = new Internal::MobileAppWizardGenericOptionsPage;
m_symbianOptionsPage = new Internal::MobileAppWizardSymbianOptionsPage;
- m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(64);
- m_harmattanOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(80);
+ m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage;
+ m_harmattanOptionsPage = new Internal::MobileAppWizardHarmattanOptionsPage;
}
void AbstractMobileAppWizardDialog::addMobilePages()
@@ -235,6 +235,7 @@ QWizard *AbstractMobileAppWizard::createWizardDialog(QWidget *parent,
wdlg->m_symbianOptionsPage->setNetworkEnabled(app()->networkEnabled());
wdlg->m_maemoOptionsPage->setPngIcon(app()->pngIcon64());
wdlg->m_harmattanOptionsPage->setPngIcon(app()->pngIcon80());
+ wdlg->m_harmattanOptionsPage->setBoosterOptionEnabled(app()->canSupportMeegoBooster());
connect(wdlg, SIGNAL(projectParametersChanged(QString, QString)),
SLOT(useProjectPath(QString, QString)));
foreach (QWizardPage *p, extensionPages)
@@ -253,6 +254,9 @@ Core::GeneratedFiles AbstractMobileAppWizard::generateFiles(const QWizard *wizar
app()->setNetworkEnabled(wdlg->m_symbianOptionsPage->networkEnabled());
app()->setPngIcon64(wdlg->m_maemoOptionsPage->pngIcon());
app()->setPngIcon80(wdlg->m_harmattanOptionsPage->pngIcon());
+ if (wdlg->isHarmattanTargetSelected())
+ app()->setSupportsMeegoBooster(wdlg->isHarmattanTargetSelected()
+ && wdlg->m_harmattanOptionsPage->supportsBooster());
prepareGenerateFiles(wizard, errorMessage);
return app()->generateFiles(errorMessage);
}
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
index 3efbf1737f..f4aff8058d 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
@@ -48,6 +48,7 @@ namespace Internal {
class MobileAppWizardGenericOptionsPage;
class MobileAppWizardSymbianOptionsPage;
class MobileAppWizardMaemoOptionsPage;
+class MobileAppWizardHarmattanOptionsPage;
}
/// \internal
@@ -81,7 +82,7 @@ private:
Internal::MobileAppWizardGenericOptionsPage *m_genericOptionsPage;
Internal::MobileAppWizardSymbianOptionsPage *m_symbianOptionsPage;
Internal::MobileAppWizardMaemoOptionsPage *m_maemoOptionsPage;
- Internal::MobileAppWizardMaemoOptionsPage *m_harmattanOptionsPage;
+ Internal::MobileAppWizardHarmattanOptionsPage *m_harmattanOptionsPage;
TargetSetupPage *m_targetsPage;
int m_genericOptionsPageId;
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui b/src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui
new file mode 100644
index 0000000000..7354c26ecc
--- /dev/null
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MobileAppWizardHarmattanOptionsPage</class>
+ <widget class="QWizardPage" name="MobileAppWizardHarmattanOptionsPage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>WizardPage</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="appIconLabel">
+ <property name="text">
+ <string>Application icon (80x80):</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QToolButton" name="pngIconButton">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>64</width>
+ <height>64</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QCheckBox" name="makeBoostableCheckBox">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip">
+ <string>Generate code to speed up the launching on the device.</string>
+ </property>
+ <property name="text">
+ <string>Make application boostable</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="1">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui b/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
index c21869d7cc..20f1f979d2 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
@@ -17,7 +17,7 @@
<item row="0" column="0">
<widget class="QLabel" name="appIconLabel">
<property name="text">
- <string>Application icon (%%w%%x%%h%%):</string>
+ <string>Application icon (64x64):</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
index 3e400c03d9..ec2721413d 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
@@ -33,6 +33,7 @@
#include "mobileappwizardpages.h"
#include "ui_mobileappwizardgenericoptionspage.h"
#include "ui_mobileappwizardmaemooptionspage.h"
+#include "ui_mobileappwizardharmattanoptionspage.h"
#include "ui_mobileappwizardsymbianoptionspage.h"
#include <coreplugin/coreconstants.h>
#include <utils/fileutils.h>
@@ -67,6 +68,14 @@ class MobileAppWizardMaemoOptionsPagePrivate
friend class MobileAppWizardMaemoOptionsPage;
};
+class MobileAppWizardHarmattanOptionsPagePrivate
+{
+ Ui::MobileAppWizardHarmattanOptionsPage ui;
+ QSize iconSize;
+ QString pngIcon;
+ friend class MobileAppWizardHarmattanOptionsPage;
+};
+
MobileAppWizardGenericOptionsPage::MobileAppWizardGenericOptionsPage(QWidget *parent)
: QWizardPage(parent)
, m_d(new MobileAppWizardGenericOptionsPagePrivate)
@@ -167,18 +176,12 @@ void MobileAppWizardSymbianOptionsPage::openSvgIcon()
setSvgIcon(svgIcon);
}
-
-MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(int appIconSize,
- QWidget *parent)
+MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(QWidget *parent)
: QWizardPage(parent)
, m_d(new MobileAppWizardMaemoOptionsPagePrivate)
{
m_d->ui.setupUi(this);
- QString iconLabelText = m_d->ui.appIconLabel->text();
- iconLabelText.replace(QLatin1String("%%w%%"), QString::number(appIconSize));
- iconLabelText.replace(QLatin1String("%%h%%"), QString::number(appIconSize));
- m_d->ui.appIconLabel->setText(iconLabelText);
- m_d->iconSize = QSize(appIconSize, appIconSize);
+ m_d->iconSize = QSize(64, 64);
m_d->ui.pngIconButton->setIconSize(m_d->iconSize);
connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
}
@@ -193,42 +196,66 @@ QString MobileAppWizardMaemoOptionsPage::pngIcon() const
return m_d->pngIcon;
}
-void MobileAppWizardMaemoOptionsPage::setPngIcon(const QString &icon)
+
+class PngIconScaler : public QObject
{
- QString error;
- QPixmap iconPixmap(icon);
- if (iconPixmap.isNull()) {
- QMessageBox::critical(this, tr("Invalid Icon"),
- tr("The file is not a valid image."));
- return;
+ Q_OBJECT
+public:
+ PngIconScaler(const QSize &expectedSize, const QString &iconPath)
+ : m_expectedSize(expectedSize)
+ , m_iconPath(iconPath)
+ , m_pixmap(iconPath)
+ {
}
- QString actualIconPath;
- if (iconPixmap.size() == m_d->iconSize) {
- actualIconPath = icon;
- } else {
- const QMessageBox::StandardButton button = QMessageBox::warning(this,
- tr("Wrong Icon Size"), tr("The icon needs to be %1x%2 pixels big, "
- "but is not. Do you want Creator to scale it?")
- .arg(m_d->iconSize.width()).arg(m_d->iconSize.height()),
- QMessageBox::Ok | QMessageBox::Cancel);
+ bool hasRightSize() const { return m_expectedSize == m_pixmap.size(); }
+ QPixmap pixmap() const { return m_pixmap; }
+
+ bool scale(QString *newPath) {
+ const QMessageBox::StandardButton button
+ = QMessageBox::warning(QApplication::activeWindow(),
+ tr("Wrong Icon Size"),
+ tr("The icon needs to be %1x%2 pixels big, "
+ "but is not. Do you want Qt Creator to scale it?")
+ .arg(m_expectedSize.width()).arg(m_expectedSize.height()),
+ QMessageBox::Ok | QMessageBox::Cancel);
if (button != QMessageBox::Ok)
- return;
- iconPixmap = iconPixmap.scaled(m_d->iconSize);
+ return false;
+
+ m_pixmap = m_pixmap.scaled(m_expectedSize);
Utils::TempFileSaver saver;
saver.setAutoRemove(false);
if (!saver.hasError())
- saver.setResult(iconPixmap.save(
- saver.file(), QFileInfo(icon).suffix().toAscii().constData()));
+ saver.setResult(m_pixmap.save(
+ saver.file(), QFileInfo(m_iconPath).suffix().toAscii().constData()));
if (!saver.finalize()) {
- QMessageBox::critical(this, tr("File Error"),
- tr("Could not copy icon file: %1").arg(saver.errorString()));
- return;
+ QMessageBox::critical(QApplication::activeWindow(),
+ tr("File Error"),
+ tr("Could not copy icon file: %1").arg(saver.errorString()));
+ return false;
}
- actualIconPath = saver.fileName();
+ *newPath = saver.fileName();
+ return true;
}
+private:
+ QSize m_expectedSize;
+ QString m_iconPath;
+ QPixmap m_pixmap;
+};
- m_d->ui.pngIconButton->setIcon(iconPixmap);
+
+void MobileAppWizardMaemoOptionsPage::setPngIcon(const QString &icon)
+{
+ QString actualIconPath;
+ PngIconScaler scaler(m_d->iconSize, icon);
+ if (scaler.hasRightSize()) {
+ actualIconPath = icon;
+ } else {
+ if (!scaler.scale(&actualIconPath))
+ return;
+ }
+
+ m_d->ui.pngIconButton->setIcon(scaler.pixmap());
m_d->pngIcon = actualIconPath;
}
@@ -241,5 +268,62 @@ void MobileAppWizardMaemoOptionsPage::openPngIcon()
setPngIcon(iconPath);
}
+MobileAppWizardHarmattanOptionsPage::MobileAppWizardHarmattanOptionsPage(QWidget *parent)
+ : QWizardPage(parent)
+ , m_d(new MobileAppWizardHarmattanOptionsPagePrivate)
+{
+ m_d->ui.setupUi(this);
+ m_d->iconSize = QSize(80, 80);
+ m_d->ui.pngIconButton->setIconSize(m_d->iconSize);
+ connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
+}
+
+MobileAppWizardHarmattanOptionsPage::~MobileAppWizardHarmattanOptionsPage()
+{
+ delete m_d;
+}
+
+QString MobileAppWizardHarmattanOptionsPage::pngIcon() const
+{
+ return m_d->pngIcon;
+}
+
+void MobileAppWizardHarmattanOptionsPage::setPngIcon(const QString &icon)
+{
+ QString actualIconPath;
+ PngIconScaler scaler(m_d->iconSize, icon);
+ if (scaler.hasRightSize()) {
+ actualIconPath = icon;
+ } else {
+ if (!scaler.scale(&actualIconPath))
+ return;
+ }
+
+ m_d->ui.pngIconButton->setIcon(scaler.pixmap());
+ m_d->pngIcon = actualIconPath;
+}
+
+void MobileAppWizardHarmattanOptionsPage::openPngIcon()
+{
+ const QString iconPath = QFileDialog::getOpenFileName(this,
+ m_d->ui.appIconLabel->text(), m_d->pngIcon,
+ QLatin1String("*.png"));
+ if (!iconPath.isEmpty())
+ setPngIcon(iconPath);
+}
+
+void MobileAppWizardHarmattanOptionsPage::setBoosterOptionEnabled(bool enable)
+{
+ m_d->ui.makeBoostableCheckBox->setEnabled(enable);
+ m_d->ui.makeBoostableCheckBox->setChecked(enable);
+}
+
+bool MobileAppWizardHarmattanOptionsPage::supportsBooster() const
+{
+ return m_d->ui.makeBoostableCheckBox->isChecked();
+}
+
} // namespace Internal
} // namespace Qt4ProjectManager
+
+#include "mobileappwizardpages.moc"
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
index 87dc8e1fd2..029108c3fc 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
@@ -82,8 +82,7 @@ class MobileAppWizardMaemoOptionsPage : public QWizardPage
Q_OBJECT
public:
- explicit MobileAppWizardMaemoOptionsPage(int appIconSize,
- QWidget *parent = 0);
+ explicit MobileAppWizardMaemoOptionsPage(QWidget *parent = 0);
virtual ~MobileAppWizardMaemoOptionsPage();
QString pngIcon() const;
@@ -96,6 +95,27 @@ private:
class MobileAppWizardMaemoOptionsPagePrivate *m_d;
};
+class MobileAppWizardHarmattanOptionsPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ explicit MobileAppWizardHarmattanOptionsPage(QWidget *parent = 0);
+ virtual ~MobileAppWizardHarmattanOptionsPage();
+
+ QString pngIcon() const;
+ void setPngIcon(const QString &icon);
+
+ void setBoosterOptionEnabled(bool enable);
+ bool supportsBooster() const;
+
+private slots:
+ void openPngIcon();
+
+private:
+ class MobileAppWizardHarmattanOptionsPagePrivate *m_d;
+};
+
} // namespace Internal
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp b/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp
index 859d2da090..7756233066 100644
--- a/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp
+++ b/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp
@@ -102,6 +102,7 @@ QtQuickApp::QtQuickApp()
, m_mainQmlMode(ModeGenerate)
, m_componentSet(QtQuick10Components)
{
+ m_canSupportMeegoBooster = true;
}
QtQuickApp::~QtQuickApp()
@@ -226,16 +227,16 @@ QString QtQuickApp::mainWindowClassName() const
bool QtQuickApp::adaptCurrentMainCppTemplateLine(QString &line) const
{
const QLatin1Char quote('"');
- bool adaptLine = true;
+
if (line.contains(QLatin1String("// MAINQML"))) {
insertParameter(line, quote + path(MainQmlDeployed) + quote);
} else if (line.contains(QLatin1String("// ADDIMPORTPATH"))) {
if (m_modules.isEmpty())
- adaptLine = false;
+ return false;
else
insertParameter(line, quote + path(ModulesDir) + quote);
}
- return adaptLine;
+ return true;
}
void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
@@ -263,6 +264,11 @@ void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
if (componentSet() == Symbian10Components)
nextLine.remove(0, 2); // remove comment
proFile << nextLine << endl;
+ } else if (line.contains(QLatin1String("# HARMATTAN_BOOSTABLE"))) {
+ QString nextLine = proFileTemplate.readLine(); // eats '# CONFIG += qdeclarative-boostable'
+ if (supportsMeegoBooster())
+ nextLine.remove(0, 2); // remove comment
+ proFile << nextLine << endl;
}
}
@@ -460,7 +466,7 @@ QString QtQuickApp::componentSetDir(ComponentSet componentSet) const
}
}
-const int QtQuickApp::StubVersion = 15;
+const int QtQuickApp::StubVersion = 16;
} // namespace Internal
} // namespace Qt4ProjectManager
diff --git a/src/plugins/remotelinux/maemopackagecreationwidget.cpp b/src/plugins/remotelinux/maemopackagecreationwidget.cpp
index bf37c99b3e..121a5514f9 100644
--- a/src/plugins/remotelinux/maemopackagecreationwidget.cpp
+++ b/src/plugins/remotelinux/maemopackagecreationwidget.cpp
@@ -72,7 +72,6 @@ void MaemoPackageCreationWidget::initGui()
{
m_ui->shortDescriptionLineEdit->setMaxLength(60);
updateVersionInfo();
- versionInfoChanged();
const AbstractDebBasedQt4MaemoTarget * const debBasedMaemoTarget
= m_step->debBasedMaemoTarget();
if (debBasedMaemoTarget) {
@@ -142,9 +141,17 @@ void MaemoPackageCreationWidget::updateVersionInfo()
}
const QStringList list = versionString.split(QLatin1Char('.'),
QString::SkipEmptyParts);
+ const bool blocked = m_ui->major->signalsBlocked();
+ m_ui->major->blockSignals(true);
+ m_ui->minor->blockSignals(true);
+ m_ui->patch->blockSignals(true);
m_ui->major->setValue(list.value(0, QLatin1String("0")).toInt());
m_ui->minor->setValue(list.value(1, QLatin1String("0")).toInt());
m_ui->patch->setValue(list.value(2, QLatin1String("0")).toInt());
+ m_ui->major->blockSignals(blocked);
+ m_ui->minor->blockSignals(blocked);
+ m_ui->patch->blockSignals(blocked);
+ updateSummary();
}
void MaemoPackageCreationWidget::handleControlFileUpdate()
@@ -249,8 +256,10 @@ void MaemoPackageCreationWidget::versionInfoChanged()
const bool success = m_step->setVersionString(m_ui->major->text()
+ QLatin1Char('.') + m_ui->minor->text() + QLatin1Char('.')
+ m_ui->patch->text(), &error);
- if (!success)
+ if (!success) {
QMessageBox::critical(this, tr("Could Not Set Version Number"), error);
+ updateVersionInfo();
+ }
}
void MaemoPackageCreationWidget::editDebianFile()
diff --git a/src/plugins/remotelinux/qt4maemotarget.cpp b/src/plugins/remotelinux/qt4maemotarget.cpp
index b48bd71dc7..f43934473f 100644
--- a/src/plugins/remotelinux/qt4maemotarget.cpp
+++ b/src/plugins/remotelinux/qt4maemotarget.cpp
@@ -57,6 +57,8 @@
#include <QtGui/QApplication>
#include <QtGui/QMainWindow>
#include <QtCore/QBuffer>
+#include <QtCore/QDateTime>
+#include <QtCore/QLocale>
#include <QtCore/QRegExp>
#include <QtCore/QDir>
#include <QtCore/QFile>
@@ -276,6 +278,23 @@ void AbstractQt4MaemoTarget::handleTargetAdded(ProjectExplorer::Target *target)
if (status == ActionSuccessful) // Don't do this when the packaging data already exists.
initPackagingSettingsFromOtherTarget();
handleTargetAddedSpecial();
+ if (status == ActionSuccessful) {
+ const QStringList &files = packagingFilePaths();
+ if (!files.isEmpty()) {
+ const QString list = QLatin1String("<ul><li>") + files.join(QLatin1String("</li><li>"))
+ + QLatin1String("</li></ul>");
+ QMessageBox::StandardButton button = QMessageBox::question(Core::ICore::instance()->mainWindow(),
+ tr("Add Packaging Files to Project"),
+ tr("<html>Qt Creator has set up the following files to enable "
+ "packaging:\n %1\nDo you want to add them to the project?</html>")
+ .arg(list), QMessageBox::Yes | QMessageBox::No);
+ if (button == QMessageBox::Yes) {
+ ProjectExplorer::ProjectExplorerPlugin::instance()
+ ->addExistingFiles(project()->rootProjectNode(), files);
+ }
+ }
+ }
+
m_isInitialized = true;
}
@@ -327,27 +346,7 @@ AbstractQt4MaemoTarget::ActionStatus AbstractQt4MaemoTarget::createTemplates()
return ActionFailed;
}
- const ActionStatus actionStatus = createSpecialTemplates();
- if (actionStatus == ActionFailed)
- return ActionFailed;
- if (actionStatus == ActionSuccessful) {
- const QStringList &files = packagingFilePaths();
- if (!files.isEmpty()) {
- const QString list = QLatin1String("<ul><li>")
- + files.join(QLatin1String("</li><li>")) + QLatin1String("</li></ul>");
- QMessageBox::StandardButton button
- = QMessageBox::question(Core::ICore::instance()->mainWindow(),
- tr("Add Packaging Files to Project"),
- tr("<html>Qt Creator has set up the following files to enable "
- "packaging:\n %1\nDo you want to add them to the project?</html>")
- .arg(list), QMessageBox::Yes | QMessageBox::No);
- if (button == QMessageBox::Yes) {
- ProjectExplorer::ProjectExplorerPlugin::instance()
- ->addExistingFiles(project()->rootProjectNode(), files);
- }
- }
- }
- return actionStatus;
+ return createSpecialTemplates();
}
bool AbstractQt4MaemoTarget::initPackagingSettingsFromOtherTarget()
@@ -416,8 +415,50 @@ bool AbstractDebBasedQt4MaemoTarget::setProjectVersionInternal(const QString &ve
if (!reader.fetch(filePath, error))
return false;
QString content = QString::fromUtf8(reader.data());
- content.replace(QRegExp(QLatin1String("\\([a-zA-Z0-9_\\.]+\\)")),
- QLatin1Char('(') + version + QLatin1Char(')'));
+ if (content.contains(QLatin1Char('(') + version + QLatin1Char(')'))) {
+ if (error) {
+ *error = tr("Refusing to update changelog file: Already contains version '%1'.")
+ .arg(version);
+ }
+ return false;
+ }
+
+ int maintainerOffset = content.indexOf(QLatin1String("\n -- "));
+ const int eolOffset = content.indexOf(QLatin1Char('\n'), maintainerOffset+1);
+ if (maintainerOffset == -1 || eolOffset == -1) {
+ if (error) {
+ *error = tr("Cannot update changelog: Invalid format (no maintainer entry found).");
+ }
+ return false;
+ }
+
+ ++maintainerOffset;
+ const QDateTime currentDateTime = QDateTime::currentDateTime();
+ QDateTime utcDateTime = QDateTime(currentDateTime);
+ utcDateTime.setTimeSpec(Qt::UTC);
+ int utcOffsetSeconds = currentDateTime.secsTo(utcDateTime);
+ QChar sign;
+ if (utcOffsetSeconds < 0) {
+ utcOffsetSeconds = -utcOffsetSeconds;
+ sign = QLatin1Char('-');
+ } else {
+ sign = QLatin1Char('+');
+ }
+ const int utcOffsetMinutes = (utcOffsetSeconds / 60) % 60;
+ const int utcOffsetHours = utcOffsetSeconds / 3600;
+ const QString dateString = QString::fromLatin1("%1 %2%3%4")
+ .arg(currentDateTime.toString(QLatin1String("ddd, dd MMM yyyy hh:mm:ss"))).arg(sign)
+ .arg(utcOffsetHours, 2, 10, QLatin1Char('0'))
+ .arg(utcOffsetMinutes, 2, 10, QLatin1Char('0'));
+ const QString maintainerLine = content.mid(maintainerOffset, eolOffset - maintainerOffset + 1)
+ .replace(QRegExp(QLatin1String("> [^\\n]*\n")),
+ QString::fromLocal8Bit("> %1").arg(dateString));
+ QString versionLine = content.left(content.indexOf(QLatin1Char('\n')))
+ .replace(QRegExp(QLatin1String("\\([a-zA-Z0-9_\\.]+\\)")),
+ QLatin1Char('(') + version + QLatin1Char(')'));
+ const QString newEntry = versionLine + QLatin1String("\n * <Add change description here>\n\n")
+ + maintainerLine + QLatin1String("\n\n");
+ content.prepend(newEntry);
Core::FileChangeBlocker update(filePath);
Utils::FileSaver saver(filePath);
saver.write(content.toUtf8());
@@ -664,10 +705,11 @@ void AbstractDebBasedQt4MaemoTarget::handleTargetAddedSpecial()
// Such a file is created by the mobile wizards.
const QString iconPath = project()->projectDirectory()
+ QLatin1Char('/') + project()->displayName()
- + QLatin1String(".png");
+ + QLatin1String("64.png");
if (QFileInfo(iconPath).exists())
setPackageManagerIcon(iconPath);
}
+
m_filesWatcher->addDirectory(debianDirPath(), Utils::FileSystemWatcher::WatchAllChanges);
m_controlFile = new WatchableFile(controlFilePath(), this);
connect(m_controlFile, SIGNAL(modified()), SIGNAL(controlChanged()));
@@ -875,7 +917,6 @@ bool AbstractDebBasedQt4MaemoTarget::setPackageManagerIcon(const QString &iconFi
return success;
}
-
AbstractRpmBasedQt4MaemoTarget::AbstractRpmBasedQt4MaemoTarget(Qt4Project *parent,
const QString &id) : AbstractQt4MaemoTarget(parent, id)
{
diff --git a/src/plugins/remotelinux/remotelinuxruncontrol.cpp b/src/plugins/remotelinux/remotelinuxruncontrol.cpp
index f0e441178c..29c5f43df2 100644
--- a/src/plugins/remotelinux/remotelinuxruncontrol.cpp
+++ b/src/plugins/remotelinux/remotelinuxruncontrol.cpp
@@ -37,10 +37,8 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/qtcassert.h>
-#include <QtGui/QIcon>
-#include <QtGui/QMessageBox>
-
#include <QtCore/QString>
+#include <QtGui/QIcon>
using namespace ProjectExplorer;
@@ -137,7 +135,6 @@ void AbstractRemoteLinuxRunControl::handleError(const QString &errString)
{
stop();
appendMessage(errString, Utils::ErrorMessageFormat);
- QMessageBox::critical(0, tr("Remote Execution Failure"), errString);
}
void AbstractRemoteLinuxRunControl::setFinished()