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
@@ -5,6 +5,7 @@ OBJECTS_DIR =
|
|||||||
PRE_TARGETDEPS = $$PWD/qtcreator.sh
|
PRE_TARGETDEPS = $$PWD/qtcreator.sh
|
||||||
|
|
||||||
QMAKE_LINK = cp $$PWD/qtcreator.sh $@ && : IGNORE REST OF LINE:
|
QMAKE_LINK = cp $$PWD/qtcreator.sh $@ && : IGNORE REST OF LINE:
|
||||||
|
QMAKE_STRIP =
|
||||||
|
|
||||||
QMAKE_CLEAN = qtcreator.sh
|
QMAKE_CLEAN = qtcreator.sh
|
||||||
|
|
||||||
|
|||||||
59
dist/changes-2.3.1
vendored
Normal file
@@ -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
|
||||||
@@ -13,8 +13,13 @@ include(macros.qdocconf)
|
|||||||
include(qt-cpp-ignore.qdocconf)
|
include(qt-cpp-ignore.qdocconf)
|
||||||
include(qt-defines.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.projects = QtCreator
|
||||||
qhp.QtCreator.file = qtcreator.qhp
|
qhp.QtCreator.file = qtcreator.qhp
|
||||||
|
|||||||
@@ -83,5 +83,5 @@ OTHER_FILES = $$HELP_DEP_FILES $$DEV_HELP_DEP_FILES
|
|||||||
fixnavi.commands = \
|
fixnavi.commands = \
|
||||||
cd $$targetPath($$PWD) && \
|
cd $$targetPath($$PWD) && \
|
||||||
perl fixnavi.pl -Dqcmanual -Dqtquick \
|
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
|
QMAKE_EXTRA_TARGETS += fixnavi
|
||||||
|
|||||||
BIN
doc/images/qtcreator-build-settings-maemo.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
doc/images/qtcreator-dev-conf-maemo.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
BIN
doc/images/qtcreator-meego-device-configurations.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
doc/images/qtcreator-meego-emulator-connection.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
doc/images/qtcreator-run-settings-maemo.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 69 KiB |
25
doc/linuxdev-keys.qdocinc
Normal file
@@ -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
|
||||||
13
doc/linuxdev-processes.qdocinc
Normal file
@@ -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}.
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
/*!
|
/*!
|
||||||
|
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\previouspage creator-developing-maemo.html
|
\previouspage creator-developing-meego.html
|
||||||
\page creator-developing-generic-linux.html
|
\page creator-developing-generic-linux.html
|
||||||
\nextpage creator-developing-symbian.html
|
\nextpage creator-developing-maemo.html
|
||||||
|
|
||||||
\title Connecting Generic Linux Devices
|
\title Connecting Generic Linux Devices
|
||||||
|
|
||||||
|
|||||||
@@ -23,35 +23,30 @@
|
|||||||
|
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\previouspage creator-project-qmake-libraries.html
|
\previouspage creator-developing-generic-linux.html
|
||||||
\else
|
\else
|
||||||
\previouspage creator-developing-symbian.html
|
\previouspage creator-developing-meego.html
|
||||||
\endif
|
\endif
|
||||||
\page creator-developing-maemo.html
|
\page creator-developing-maemo.html
|
||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\nextpage creator-developing-generic-linux.html
|
\nextpage creator-developing-symbian.html
|
||||||
\else
|
\else
|
||||||
\nextpage smartinstaller.html
|
\nextpage smartinstaller.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title Connecting Maemo and MeeGo Harmattan Devices
|
\title Connecting Maemo Devices
|
||||||
|
|
||||||
Maemo 5 (Fremantle) and MeeGo Harmattan are Linux-based software platforms
|
Maemo 5 (Fremantle) is a Linux-based software platform developed by Nokia
|
||||||
developed by Nokia for mobile devices. They allow developers to create
|
for mobile devices. It allows developers to create
|
||||||
applications using the Qt framework.
|
applications using the Qt framework.
|
||||||
The whole tool chain that you need to create, build, debug, run, and deploy
|
You can install the whole tool chain that you need to create, build, debug,
|
||||||
Maemo 5 and Harmattan applications is installed and configured when you
|
run, and deploy Maemo 5 applications as a part of the custom installation
|
||||||
install the
|
in the \QSDK online installer.
|
||||||
\QSDK.
|
|
||||||
|
|
||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
For more
|
For more
|
||||||
information about the Maemo 5 platform, see
|
information about the Maemo 5 platform, see
|
||||||
\l{http://maemo.org/intro/platform/}{Software Platform} on the Maemo web site.
|
\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
|
\endif
|
||||||
|
|
||||||
For more information about developing applications for the Maemo 5
|
For more information about developing applications for the Maemo 5
|
||||||
@@ -59,32 +54,13 @@
|
|||||||
or see
|
or see
|
||||||
\l{http://doc.qt.nokia.com/qt-maemo/platform-notes-maemo5.html}{Platform Notes - Maemo 5}.
|
\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
|
\section1 Hardware and Software Requirements for Maemo Target
|
||||||
platform, select \gui {Help > Index} and look for \gui {Platform Notes}.
|
|
||||||
|
|
||||||
\note \QSDK does not contain the tool chains for building applications for
|
To build and run Qt applications for Maemo 5, you need the following:
|
||||||
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
|
|
||||||
|
|
||||||
To build and run Qt applications for Maemo 5 or Harmattan, you need the
|
|
||||||
following:
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
\o Test device:
|
\o Maemo 5 device: Nokia N900 with software update release 1.3
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\o Maemo 5 device: Nokia N900 with software update release 1.3
|
|
||||||
(V20.2010.36-2) or later installed.
|
(V20.2010.36-2) or later installed.
|
||||||
|
|
||||||
\o Harmattan device: Nokia N950, Nokia N9
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\o MADDE cross-platform Maemo development
|
\o MADDE cross-platform Maemo development
|
||||||
tool (installed as part of the \QSDK).
|
tool (installed as part of the \QSDK).
|
||||||
@@ -102,16 +78,15 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\note The only supported build system for Maemo 5 and Harmattan in Qt
|
\note The only supported build system for Maemo 5 in Qt Creator is qmake.
|
||||||
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
|
You can connect your device to your development PC using either a USB or
|
||||||
WLAN connection.
|
WLAN connection.
|
||||||
|
|
||||||
For the device, you need to use a connectivity tool (Mad Developer on
|
For the device, you need to use a connectivity tool (Mad Developer) to
|
||||||
Maemo 5 and SDK Connectivity on Harmattan) to create the
|
create the
|
||||||
device-side end point for USB and WLAN connections. It provides no
|
device-side end point for USB and WLAN connections. It provides no
|
||||||
diagnostics functions but is essential for creating connections between the
|
diagnostics functions but is essential for creating connections between the
|
||||||
device and your development PC.
|
device and your development PC.
|
||||||
@@ -127,34 +102,7 @@
|
|||||||
WLAN, you can
|
WLAN, you can
|
||||||
ignore the USB-specific parts in the following sections.
|
ignore the USB-specific parts in the following sections.
|
||||||
|
|
||||||
\section2 Starting SDK Connectivity on Harmattan Devices
|
\section2 Installing and Configuring Mad Developer
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Install Mad Developer on a Nokia N900 device and configure
|
Install Mad Developer on a Nokia N900 device and configure
|
||||||
a connection between the development PC and a device.
|
a connection between the development PC and a device.
|
||||||
@@ -197,7 +145,7 @@
|
|||||||
\image qtcreator-mad-developer-screenshot.png
|
\image qtcreator-mad-developer-screenshot.png
|
||||||
\endlist
|
\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
|
To develop applications for the Nokia N900 devices that use the Qt Mobility
|
||||||
APIs, you must install the
|
APIs, you must install the
|
||||||
@@ -220,14 +168,11 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\note the Qt Mobility Libraries are preinstalled on MeeGo Harmattan
|
\section1 Setting Up USB Connections to Maemo Devices
|
||||||
devices.
|
|
||||||
|
|
||||||
\section1 Setting Up Network Connectivity on Development PC
|
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
|
||||||
Use the network configuration tools on your platform to specify the
|
if you use a WLAN connection.
|
||||||
connection to the device on the development PC. You need to do this
|
|
||||||
only if you use a USB connection.
|
|
||||||
|
|
||||||
\section2 Linux
|
\section2 Linux
|
||||||
|
|
||||||
@@ -274,9 +219,9 @@
|
|||||||
your version of Microsoft Windows you may have to unplug and re-plug the
|
your version of Microsoft Windows you may have to unplug and re-plug the
|
||||||
device to reload the driver with its configuration accordingly.
|
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
|
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
|
devices in the Qt Creator build and run settings. If you install \QSDK, the
|
||||||
connection to the emulator is configured automatically and you
|
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
|
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
|
the \gui Username and \gui Password in Qt Creator. For more information, see
|
||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\l{Testing with User Data}.
|
\l{Testing with User Data on Maemo Devices}.
|
||||||
\else
|
\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
|
\endif
|
||||||
|
|
||||||
|
|
||||||
@@ -310,7 +256,18 @@
|
|||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\l{Generating SSH Keys}.
|
\l{Generating SSH Keys}.
|
||||||
\else
|
\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
|
\endif
|
||||||
|
|
||||||
|
|
||||||
@@ -335,7 +292,7 @@
|
|||||||
Configurations > Add}, and add a new configuration for a
|
Configurations > Add}, and add a new configuration for a
|
||||||
hardware device.
|
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,
|
\o In the \gui {The name to identify this configuration} field,
|
||||||
enter a name for the connection.
|
enter a name for the connection.
|
||||||
@@ -371,7 +328,7 @@
|
|||||||
Devices > Device Configurations > Add} to add a new
|
Devices > Device Configurations > Add} to add a new
|
||||||
configuration.
|
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,
|
\o In the \gui {The name to identify this configuration} field,
|
||||||
enter a name for
|
enter a name for
|
||||||
@@ -403,7 +360,7 @@
|
|||||||
\o In the \gui{Build Settings} section, choose the MADDE Qt version
|
\o In the \gui{Build Settings} section, choose the MADDE Qt version
|
||||||
that was registered by the installation program.
|
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
|
\o In the \gui{Run Settings} section, click \gui Add to add a new
|
||||||
deploy configuration. The configuration is named automatically. To
|
deploy configuration. The configuration is named automatically. To
|
||||||
@@ -411,7 +368,7 @@
|
|||||||
|
|
||||||
\o In the \gui {Device configuration} field, select the device
|
\o In the \gui {Device configuration} field, select the device
|
||||||
connection or the emulator connection.
|
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}
|
\o Click \gui {<no target path set>} in \gui {Remote Directory}
|
||||||
to specify the folder where the file is installed on the device.
|
to specify the folder where the file is installed on the device.
|
||||||
@@ -421,73 +378,29 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\if defined(qcmanual)
|
\section2 Testing with User Data on Maemo Devices
|
||||||
\section2 Testing with User Data
|
|
||||||
|
|
||||||
To run your application as the default user, you must first assign a password
|
To run your application as the default user, you must first assign a
|
||||||
for the user account and then create the connection to the device as the
|
password for the user account and then create the connection to the device
|
||||||
user:
|
as the user:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\o On the device, in \gui Programs, select \c {X Terminal} to open a
|
\o On the device, in \gui Programs, select \c {X Terminal} to open a
|
||||||
terminal window.
|
terminal window.
|
||||||
|
|
||||||
\o To specify the password, enter the following command:
|
\o To specify the password, enter the following command:
|
||||||
\c{/usr/lib/mad-developer/devrootsh passwd user}
|
\c{/usr/lib/mad-developer/devrootsh passwd user}
|
||||||
|
|
||||||
\o In Qt Creator, select \gui {Tools > Options... Linux Devices >
|
\o In Qt Creator, select \gui {Tools > Options... Linux Devices >
|
||||||
Device Configurations}.
|
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
|
\endlist
|
||||||
|
|
||||||
\section2 Generating SSH Keys
|
\section1 Troubleshooting Connections to Maemo Devices
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
The addresses used in this example might be reserved by some other application
|
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
|
in your network. If you cannot establish a connection, try the following optional
|
||||||
|
|||||||
462
doc/meegodev.qdoc
Normal file
@@ -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.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
@@ -67,8 +67,9 @@
|
|||||||
\o \l{Creating a Project}
|
\o \l{Creating a Project}
|
||||||
\o \l{Opening a Project}
|
\o \l{Opening a Project}
|
||||||
\o \l{Adding Libraries to Projects}
|
\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 Generic Linux Devices}
|
||||||
|
\o \l{Connecting Maemo Devices}
|
||||||
\o \l{Connecting Symbian Devices}
|
\o \l{Connecting Symbian Devices}
|
||||||
\o \l{Managing Sessions}
|
\o \l{Managing Sessions}
|
||||||
\endlist
|
\endlist
|
||||||
@@ -1749,7 +1750,6 @@
|
|||||||
\page creator-editor-using.html
|
\page creator-editor-using.html
|
||||||
\nextpage creator-highlighting.html
|
\nextpage creator-highlighting.html
|
||||||
|
|
||||||
|
|
||||||
\title Using the Editor
|
\title Using the Editor
|
||||||
|
|
||||||
Qt Creator's code editor is designed to aid you in creating, editing and
|
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{Creating a Project}
|
||||||
\o \l{Opening a Project}
|
\o \l{Opening a Project}
|
||||||
\o \l{Adding Libraries to Projects}
|
\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 Generic Linux Devices}
|
||||||
\o \l{Connecting Symbian Devices}
|
\o \l{Connecting Symbian Devices}
|
||||||
\o \l{Managing Sessions}
|
\o \l{Managing Sessions}
|
||||||
@@ -4204,7 +4205,8 @@
|
|||||||
The other settings to specify depend on the tool chain.
|
The other settings to specify depend on the tool chain.
|
||||||
|
|
||||||
\o For RVCT, select the ARM version to use in the \gui {ARM version}
|
\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
|
\endlist
|
||||||
|
|
||||||
@@ -4251,7 +4253,7 @@
|
|||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\previouspage creator-project-opening.html
|
\previouspage creator-project-opening.html
|
||||||
\page creator-project-qmake-libraries.html
|
\page creator-project-qmake-libraries.html
|
||||||
\nextpage creator-developing-maemo.html
|
\nextpage creator-developing-meego.html
|
||||||
|
|
||||||
\title Adding Libraries to Projects
|
\title Adding Libraries to Projects
|
||||||
|
|
||||||
@@ -4579,7 +4581,8 @@
|
|||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\o Configure the device and specify a connection to it. For more
|
\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.
|
\o Connect the device to the development PC.
|
||||||
|
|
||||||
@@ -4849,7 +4852,8 @@
|
|||||||
\note The build configuration for the \gui{Symbian Device} target
|
\note The build configuration for the \gui{Symbian Device} target
|
||||||
uses the GCCE tool chain by default. If you want to build
|
uses the GCCE tool chain by default. If you want to build
|
||||||
for the device using RVCT, install the RVCT tool chain, and then
|
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
|
\section1 Starting External Processes
|
||||||
|
|
||||||
@@ -5055,7 +5059,8 @@
|
|||||||
create connections
|
create connections
|
||||||
from the development PC to the devices. Click \gui {Manage device
|
from the development PC to the devices. Click \gui {Manage device
|
||||||
configurations} to create connections. For more information, see
|
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,
|
When you run the application on the \gui{Maemo5} or \gui Harmattan target,
|
||||||
Qt Creator generates
|
Qt Creator generates
|
||||||
@@ -5440,8 +5445,11 @@
|
|||||||
|
|
||||||
\section1 Creating Smart Installer for Symbian Packages
|
\section1 Creating Smart Installer for Symbian Packages
|
||||||
|
|
||||||
To deploy Qt applications on Symbian devices, you must install the software that Qt applications
|
You can run Qt applications on Symbian devices if the software that Qt
|
||||||
require, typically Qt, QtWebkit, and Open C. Nokia Smart Installer for Symbian makes it easier
|
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
|
for users to install Qt applications to Symbian phones by checking whether the device contains
|
||||||
the necessary software and by installing the missing pieces.
|
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
|
application access not granted.} For example, if you try to install a
|
||||||
self-signed application that uses a system capability.
|
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
|
\section1 Publishing Qt Content for Maemo Devices
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\previouspage creator-developing-generic-linux.html
|
\previouspage creator-developing-maemo.html
|
||||||
\else
|
\else
|
||||||
\previouspage sdk-gs.html
|
\previouspage sdk-gs.html
|
||||||
\endif
|
\endif
|
||||||
@@ -30,30 +30,47 @@
|
|||||||
\if defined(qcmanual)
|
\if defined(qcmanual)
|
||||||
\nextpage creator-project-managing-sessions.html
|
\nextpage creator-project-managing-sessions.html
|
||||||
\else
|
\else
|
||||||
\nextpage creator-developing-maemo.html
|
\nextpage creator-developing-meego.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title Connecting Symbian Devices
|
\title Connecting Symbian Devices
|
||||||
|
|
||||||
When you install \QSDK, the build and run settings for 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
|
are set up automatically in Qt Creator. You only need to install and launch
|
||||||
development PC.
|
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
|
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
|
PC Suite Mode. If you have not previously used the device with Ovi Suite
|
||||||
or PC Suite, all the necessary drivers are installed automatically.
|
or PC Suite, all the necessary drivers are installed automatically.
|
||||||
This takes approximately one minute.
|
This takes approximately one minute.
|
||||||
|
|
||||||
To run Qt applications on Symbian devices, you must install the software
|
As with every supported platform, Qt strives to maintain application
|
||||||
that Qt applications require, typically Qt, Qt Mobility, QtWebkit, and Open C.
|
behavior and binary compatibility throughout the lifetime of the Qt 4.x
|
||||||
The \QSDK installation program creates shortcuts for installing
|
major version and on the Symbian devices that support Qt. Symbian
|
||||||
the required applications on Symbian devices. You can also use any of
|
support in \QSDK and Ovi Store were introduced with Qt 4.6. Each Qt release
|
||||||
the standard methods for installing applications.
|
contains bug fixes that might change the API behavior and thereby affect
|
||||||
|
application compatibility.
|
||||||
|
|
||||||
To debug applications on Symbian devices by using the Qt Creator \gui Debug
|
In addition, Symbian devices have different input methods, such as different
|
||||||
mode, you must install the CODA on-device debugging agent on the device.
|
keyboard styles or touch input, screen sizes, memory, and CPU and GPU
|
||||||
For more information,
|
capabilities. Therefore, you must test applications on specific target
|
||||||
see
|
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)
|
\if defined(qcmanual)
|
||||||
\l{Using On-device Debugging Agents}.
|
\l{Using On-device Debugging Agents}.
|
||||||
\else
|
\else
|
||||||
@@ -65,35 +82,21 @@
|
|||||||
The tool chain for building applications locally on the development PC for
|
The tool chain for building applications locally on the development PC for
|
||||||
the \gui {Symbian Device} target is only supported on Windows.
|
the \gui {Symbian Device} target is only supported on Windows.
|
||||||
If you develop on Linux or Mac OS, you must use the Remote Compiler
|
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
|
For more information about developing applications for the Symbian
|
||||||
platform, select \gui {Help > Index} and look for \gui {Platform Notes},
|
platform, select \gui {Help > Index} and look for \gui {Platform Notes},
|
||||||
or see
|
or see
|
||||||
\l{http://doc.qt.nokia.com/4.7/platform-notes-symbian.html}{Platform Notes - Symbian}.
|
\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)
|
\if defined(qcmanual)
|
||||||
To run your applications in the Symbian emulator, you also need
|
To run your applications in the Symbian emulator, you also need
|
||||||
to install Carbide.c++ v2.0.0 or higher.
|
to install Carbide.c++ v2.0.0 or higher.
|
||||||
@@ -102,64 +105,128 @@
|
|||||||
|
|
||||||
\section1 Installing Required Applications on Devices
|
\section1 Installing Required Applications on Devices
|
||||||
|
|
||||||
Separate installation packages are provided for Symbian^3 and Symbian^1
|
Generally, when developing for Symbian^3 or later devices, you do not need
|
||||||
devices. To check the Symbian platform version of your device, see
|
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.
|
||||||
|
|
||||||
|
\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
|
||||||
|
|
||||||
|
|
||||||
|
Qt is supported on different Symbian platforms as follows:
|
||||||
|
|
||||||
|
\list
|
||||||
|
|
||||||
|
\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.
|
||||||
|
|
||||||
|
\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
|
||||||
|
|
||||||
|
\o Symbian Anna devices have Qt 4.7.3 pre-installed.
|
||||||
|
|
||||||
|
\o Symbian^3 devices have Qt 4.6 pre-installed.
|
||||||
|
|
||||||
|
\o S60 5th Edition and later devices support Qt 4.6.3 and 4.7.3.
|
||||||
|
|
||||||
|
\o S60 3rd Edition feature pack 1 and later devices support Qt 4.6 for
|
||||||
|
Symbian through Nokia Smart Installer for Symbian.
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
To check the Symbian platform version of your device, see
|
||||||
\l{http://www.developer.nokia.com/Devices/Device_specifications/}
|
\l{http://www.developer.nokia.com/Devices/Device_specifications/}
|
||||||
{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).
|
||||||
|
|
||||||
\note You can also copy the .sis files from
|
If the device does not have the necessary Qt libraries pre-installed, you
|
||||||
\c {<QtSDK_install_path>\Symbian\sis} to the device using USB storage
|
can use Nokia Smart Installer for Symbian to deploy them during application
|
||||||
mode and install them from the file manager on the device.
|
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 Developing for Symbian^3
|
\section2 Supported Configurations
|
||||||
|
|
||||||
\note The command names and paths depend on the \QSDK version that is
|
When you select the Qt version to build the application with, consider
|
||||||
installed.
|
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.
|
||||||
|
|
||||||
\list 1
|
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.
|
||||||
|
|
||||||
\o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install Qt 4.7.3 for
|
If you use QML in the application, you can use \gui {Qt 4.7.3 for
|
||||||
Symbian^3 on Device}. Follow the instructions on the screen to install Qt
|
Symbian^1} to build it. The application is supported on both Symbian^1 and
|
||||||
libraries to the device.
|
Symbian^3 devices.
|
||||||
|
|
||||||
\o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install QtMobility 1.1.2 for
|
If you use native Symbian APIs, you must check that they are available on
|
||||||
Symbian^3 on Device}
|
the target devices. For more information about the API differences between
|
||||||
and follow the instructions on the screen to install Qt
|
Symbian^1 (S60 5th Edition) and Symbian^3, see the \bold {Symbian
|
||||||
mobility libraries to the device.
|
Reference Documentation for Qt}, which is delivered together with \QSDK
|
||||||
|
and which you can view in the \gui Help mode.
|
||||||
|
|
||||||
\o Choose \gui {Start > Qt SDK > Symbian^3 Qt 4.7.3 > Install QtWebKit
|
The following table summarizes the supported configurations for each Qt
|
||||||
for for Qt 4.7.3 on Symbian^3 Device} and follow the
|
version available in Qt Creator build settings:
|
||||||
instructions on the screen to install QtWebKit to the device.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section2 Developing for Symbian^1
|
|
||||||
|
|
||||||
Symbian^1 incorporates Symbian OS and S60 5th Edition (S60 5.0), which is
|
|
||||||
built on Symbian OS v9.4.
|
|
||||||
|
|
||||||
\note The command names and paths depend on the \QSDK version that is
|
|
||||||
installed.
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\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 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 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.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
In addition, you can install an example application and demos to Symbian^1
|
|
||||||
devices.
|
|
||||||
|
|
||||||
|
\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)
|
\if defined(qcmanual)
|
||||||
\section1 Using On-device Debugging Agents
|
\section1 Using On-device Debugging Agents
|
||||||
@@ -181,26 +248,14 @@
|
|||||||
|
|
||||||
\section2 Installing Debugging Agents
|
\section2 Installing Debugging Agents
|
||||||
|
|
||||||
You can download CODA from the
|
CODA installation packages are delivered together with the \QSDK. On
|
||||||
|
Windows, you can use \gui Start menu commands to install CODA on Symbian
|
||||||
|
devices.
|
||||||
|
|
||||||
|
You can also download CODA from the
|
||||||
\l{http://tools.ext.nokia.com/coda/}{CODA download server}.
|
\l{http://tools.ext.nokia.com/coda/}{CODA download server}.
|
||||||
|
|
||||||
\section1 Adding Symbian Platform SDKs
|
\section1 Setting Up Qt Creator
|
||||||
|
|
||||||
\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.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section2 Setting Up Qt Creator
|
|
||||||
|
|
||||||
When you run Qt Creator after installing the Symbian SDK and Qt for
|
When you run Qt Creator after installing the Symbian SDK and Qt for
|
||||||
Symbian, the installed SDKs and their corresponding Qt versions are
|
Symbian, the installed SDKs and their corresponding Qt versions are
|
||||||
|
|||||||
@@ -52,6 +52,6 @@ DATA_FILE_PATTERNS = \
|
|||||||
|
|
||||||
!macx {
|
!macx {
|
||||||
qmlfiles.files = $$PWD/*.qml $$PWD/qmldir $$PWD/images $$PWD/custom
|
qmlfiles.files = $$PWD/*.qml $$PWD/qmldir $$PWD/images $$PWD/custom
|
||||||
qmlfiles.path = /lib/qtcreator/qtcomponents
|
qmlfiles.path = /$${IDE_LIBRARY_BASENAME}/qtcreator/qtcomponents
|
||||||
INSTALLS += qmlfiles
|
INSTALLS += qmlfiles
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ OTHER_FILES += dist/copyright_template.txt \
|
|||||||
dist/changes-2.1.0 \
|
dist/changes-2.1.0 \
|
||||||
dist/changes-2.2.0 \
|
dist/changes-2.2.0 \
|
||||||
dist/changes-2.3.0 \
|
dist/changes-2.3.0 \
|
||||||
|
dist/changes-2.3.1 \
|
||||||
dist/changes-2.4.0
|
dist/changes-2.4.0
|
||||||
|
|||||||
@@ -28,9 +28,13 @@ symbian:TARGET.CAPABILITY += NetworkServices
|
|||||||
# CONFIG += mobility
|
# CONFIG += mobility
|
||||||
# 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 #
|
# QTQUICKCOMPONENTS #
|
||||||
# CONFIG += qtquickcomponents
|
# CONFIG += qt-components
|
||||||
|
|
||||||
# The .cpp file which was generated for your project. Feel free to hack it.
|
# The .cpp file which was generated for your project. Feel free to hack it.
|
||||||
SOURCES += main.cpp
|
SOURCES += main.cpp
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
#include <QtGui/QApplication>
|
#include <QtGui/QApplication>
|
||||||
#include "qmlapplicationviewer.h"
|
#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.addImportPath(QLatin1String("modules")); // ADDIMPORTPATH
|
viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION
|
||||||
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION
|
viewer->setMainQmlFile(QLatin1String("qml/app/main.qml")); // MAINQML
|
||||||
viewer.setMainQmlFile(QLatin1String("qml/app/main.qml")); // MAINQML
|
viewer->showExpanded();
|
||||||
viewer.showExpanded();
|
|
||||||
|
|
||||||
return app.exec();
|
return app->exec();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,15 +9,19 @@
|
|||||||
|
|
||||||
#include "qmlapplicationviewer.h"
|
#include "qmlapplicationviewer.h"
|
||||||
|
|
||||||
#include <QtCore/QCoreApplication>
|
|
||||||
#include <QtCore/QDir>
|
#include <QtCore/QDir>
|
||||||
#include <QtCore/QFileInfo>
|
#include <QtCore/QFileInfo>
|
||||||
#include <QtDeclarative/QDeclarativeComponent>
|
#include <QtDeclarative/QDeclarativeComponent>
|
||||||
#include <QtDeclarative/QDeclarativeEngine>
|
#include <QtDeclarative/QDeclarativeEngine>
|
||||||
#include <QtDeclarative/QDeclarativeContext>
|
#include <QtDeclarative/QDeclarativeContext>
|
||||||
|
#include <QtGui/QApplication>
|
||||||
|
|
||||||
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
|
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
|
||||||
|
|
||||||
|
#ifdef HARMATTAN_BOOSTER
|
||||||
|
#include <MDeclarativeCache>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
||||||
|
|
||||||
#include <qt_private/qdeclarativedebughelper_p.h>
|
#include <qt_private/qdeclarativedebughelper_p.h>
|
||||||
@@ -45,9 +49,12 @@ static QmlJsDebuggingEnabler enableDebuggingHelper;
|
|||||||
|
|
||||||
class QmlApplicationViewerPrivate
|
class QmlApplicationViewerPrivate
|
||||||
{
|
{
|
||||||
|
QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {}
|
||||||
|
|
||||||
QString mainQmlFile;
|
QString mainQmlFile;
|
||||||
|
QDeclarativeView *view;
|
||||||
friend class QmlApplicationViewer;
|
friend class QmlApplicationViewer;
|
||||||
static QString adjustPath(const QString &path);
|
QString adjustPath(const QString &path);
|
||||||
};
|
};
|
||||||
|
|
||||||
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
|
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
|
||||||
@@ -60,47 +67,70 @@ QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
|
|||||||
#else
|
#else
|
||||||
const QString pathInInstallDir =
|
const QString pathInInstallDir =
|
||||||
QString::fromAscii("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
|
QString::fromAscii("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
|
||||||
if (pathInInstallDir.contains(QLatin1String("opt"))
|
if (QFileInfo(pathInInstallDir).exists())
|
||||||
&& pathInInstallDir.contains(QLatin1String("bin"))
|
|
||||||
&& QFileInfo(pathInInstallDir).exists()) {
|
|
||||||
return pathInInstallDir;
|
return pathInInstallDir;
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
|
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
|
||||||
QDeclarativeView(parent),
|
: QDeclarativeView(parent)
|
||||||
m_d(new QmlApplicationViewerPrivate)
|
, d(new QmlApplicationViewerPrivate(this))
|
||||||
{
|
{
|
||||||
connect(engine(), SIGNAL(quit()), SLOT(close()));
|
connect(engine(), SIGNAL(quit()), SLOT(close()));
|
||||||
setResizeMode(QDeclarativeView::SizeRootObjectToView);
|
setResizeMode(QDeclarativeView::SizeRootObjectToView);
|
||||||
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
|
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
|
||||||
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
|
||||||
#if !defined(NO_JSDEBUGGER)
|
#if !defined(NO_JSDEBUGGER)
|
||||||
new QmlJSDebugger::JSDebuggerAgent(engine());
|
new QmlJSDebugger::JSDebuggerAgent(d->view->engine());
|
||||||
#endif
|
#endif
|
||||||
#if !defined(NO_QMLOBSERVER)
|
#if !defined(NO_QMLOBSERVER)
|
||||||
new QmlJSDebugger::QDeclarativeViewObserver(this, this);
|
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(d->view, d->view);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlApplicationViewer::~QmlApplicationViewer()
|
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)
|
void QmlApplicationViewer::setMainQmlFile(const QString &file)
|
||||||
{
|
{
|
||||||
m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
|
d->mainQmlFile = d->adjustPath(file);
|
||||||
setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
|
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlApplicationViewer::addImportPath(const QString &path)
|
void QmlApplicationViewer::addImportPath(const QString &path)
|
||||||
{
|
{
|
||||||
engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
|
d->view->engine()->addImportPath(d->adjustPath(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
|
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
|
||||||
@@ -149,10 +179,19 @@ void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
|
|||||||
void QmlApplicationViewer::showExpanded()
|
void QmlApplicationViewer::showExpanded()
|
||||||
{
|
{
|
||||||
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
|
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
|
||||||
showFullScreen();
|
d->view->showFullScreen();
|
||||||
#elif defined(Q_WS_MAEMO_5)
|
#elif defined(Q_WS_MAEMO_5)
|
||||||
showMaximized();
|
d->view->showMaximized();
|
||||||
#else
|
#else
|
||||||
show();
|
d->view->show();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
QApplication *createApplication(int &argc, char **argv)
|
||||||
|
{
|
||||||
|
#ifdef HARMATTAN_BOOSTER
|
||||||
|
return MDeclarativeCache::qApplication(argc, argv);
|
||||||
|
#else
|
||||||
|
return new QApplication(argc, argv);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ public:
|
|||||||
explicit QmlApplicationViewer(QWidget *parent = 0);
|
explicit QmlApplicationViewer(QWidget *parent = 0);
|
||||||
virtual ~QmlApplicationViewer();
|
virtual ~QmlApplicationViewer();
|
||||||
|
|
||||||
|
static QmlApplicationViewer *create();
|
||||||
|
|
||||||
void setMainQmlFile(const QString &file);
|
void setMainQmlFile(const QString &file);
|
||||||
void addImportPath(const QString &path);
|
void addImportPath(const QString &path);
|
||||||
|
|
||||||
@@ -35,7 +37,10 @@ public:
|
|||||||
void showExpanded();
|
void showExpanded();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class QmlApplicationViewerPrivate *m_d;
|
explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent);
|
||||||
|
class QmlApplicationViewerPrivate *d;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QApplication *createApplication(int &argc, char **argv);
|
||||||
|
|
||||||
#endif // QMLAPPLICATIONVIEWER_H
|
#endif // QMLAPPLICATIONVIEWER_H
|
||||||
|
|||||||
@@ -16,3 +16,7 @@ INCLUDEPATH += $$PWD
|
|||||||
} else {
|
} else {
|
||||||
DEFINES -= QMLJSDEBUGGER
|
DEFINES -= QMLJSDEBUGGER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
|
||||||
|
DEFINES += HARMATTAN_BOOSTER
|
||||||
|
}
|
||||||
|
|||||||
@@ -1499,6 +1499,10 @@ Local pulls are not applied to the master branch.</source>
|
|||||||
<source>Unix Generator (%1)</source>
|
<source>Unix Generator (%1)</source>
|
||||||
<translation>Unix ジェネレータ (%1)</translation>
|
<translation>Unix ジェネレータ (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No generator selected.</source>
|
||||||
|
<translation>ジェネレータが選択されていません。</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake exited with errors. Please check CMake output.</source>
|
<source>CMake exited with errors. Please check CMake output.</source>
|
||||||
<translation>CMake は異常終了しました。CMake の出力を確認して下さい。</translation>
|
<translation>CMake は異常終了しました。CMake の出力を確認して下さい。</translation>
|
||||||
@@ -17871,7 +17875,15 @@ Please build the debugging helpers on the Qt version options page.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The QML Profiler can be used to find performance bottlenecks in applications using QML.</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>Events</source>
|
<source>Events</source>
|
||||||
@@ -20622,10 +20634,34 @@ Reason: %2</source>
|
|||||||
<source>Add Build</source>
|
<source>Add Build</source>
|
||||||
<translation>ビルドを追加</translation>
|
<translation>ビルドを追加</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Use Shadow Building</source>
|
<source>Use Shadow Building</source>
|
||||||
<translation>シャドウビルドを使用</translation>
|
<translation>シャドウビルドを使用</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Qt Version:</source>
|
||||||
|
<translation>Qt バージョン:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>debug</source>
|
<source>debug</source>
|
||||||
<extracomment>Debug build</extracomment>
|
<extracomment>Debug build</extracomment>
|
||||||
@@ -27852,4 +27888,67 @@ p, li { white-space: pre-wrap; }
|
|||||||
<translation>text</translation>
|
<translation>text</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>Core::Internal::ExternalTool</name>
|
||||||
|
<message>
|
||||||
|
<source>Creates qm translation files that can be used by an application from the translator'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'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>
|
</TS>
|
||||||
|
|||||||
@@ -1482,6 +1482,10 @@ Local pulls are not applied to the master branch.</source>
|
|||||||
<source>Unix Generator (%1)</source>
|
<source>Unix Generator (%1)</source>
|
||||||
<translation>Генератор для Unix (%1)</translation>
|
<translation>Генератор для Unix (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No generator selected.</source>
|
||||||
|
<translation>Генератор не выбран.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No valid cmake executable specified.</source>
|
<source>No valid cmake executable specified.</source>
|
||||||
<translation>Не указана корректная программа cmake.</translation>
|
<translation>Не указана корректная программа cmake.</translation>
|
||||||
@@ -3861,7 +3865,7 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Shortcut</source>
|
<source>Shortcut</source>
|
||||||
<translation>Комбинация клавиш</translation>
|
<translation>Сочетание клавиш</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Import Keyboard Mapping Scheme</source>
|
<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>
|
<source>%1 debugger activated</source>
|
||||||
<translation>Отладчик %1 активирован</translation>
|
<translation>Отладчик %1 активирован</translation>
|
||||||
</message>
|
</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>
|
||||||
<context>
|
<context>
|
||||||
<name>Debugger::Internal::QmlEngine</name>
|
<name>Debugger::Internal::QmlEngine</name>
|
||||||
@@ -9354,7 +9348,7 @@ Add, modify, and remove document filters, which determine the documentation set
|
|||||||
<name>FlowSpecifics</name>
|
<name>FlowSpecifics</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Flow</source>
|
<source>Flow</source>
|
||||||
<translation type="unfinished">Перетекание</translation>
|
<translation>Перетекание</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Spacing</source>
|
<source>Spacing</source>
|
||||||
@@ -11152,7 +11146,7 @@ You can choose between stashing the changes or discarding them.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Flow</source>
|
<source>Flow</source>
|
||||||
<translation type="unfinished">Перетекание</translation>
|
<translation>Перетекание</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Spacing</source>
|
<source>Spacing</source>
|
||||||
@@ -11183,11 +11177,11 @@ You can choose between stashing the changes or discarding them.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Resize wraps</source>
|
<source>Resize wraps</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Перенос при изменении размера</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Determines whether the grid wraps key navigation.</source>
|
<source>Determines whether the grid wraps key navigation.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Определяет, меняет ли сетка навигацию клавишами.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Snap mode</source>
|
<source>Snap mode</source>
|
||||||
@@ -11243,7 +11237,7 @@ You can choose between stashing the changes or discarding them.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Flow</source>
|
<source>Flow</source>
|
||||||
<translation type="unfinished">Перетекание</translation>
|
<translation>Перетекание</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Grid View Highlight</source>
|
<source>Grid View Highlight</source>
|
||||||
@@ -11907,11 +11901,11 @@ QML.</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Navigation wraps</source>
|
<source>Navigation wraps</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Перенос при перемещениях</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Determines whether the grid wraps key navigation.</source>
|
<source>Determines whether the grid wraps key navigation.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Определяет, меняет ли сетка навигацию клавишами.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Orientation of the list.</source>
|
<source>Orientation of the list.</source>
|
||||||
@@ -13649,6 +13643,25 @@ Preselects Qt for Simulator and mobile targets if available.</source>
|
|||||||
<translation>Поведение ориентации:</translation>
|
<translation>Поведение ориентации:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</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>
|
<context>
|
||||||
<name>MobileAppWizardMaemoOptionsPage</name>
|
<name>MobileAppWizardMaemoOptionsPage</name>
|
||||||
<message>
|
<message>
|
||||||
@@ -13656,8 +13669,8 @@ Preselects Qt for Simulator and mobile targets if available.</source>
|
|||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Application icon (%%w%%x%%h%%):</source>
|
<source>Application icon (64x64):</source>
|
||||||
<translation>Значок приложения (%%w%%x%%h%%):</translation>
|
<translation>Значок приложения (64x64):</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -13875,7 +13888,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path View Highlight</source>
|
<source>Path View Highlight</source>
|
||||||
<translation type="unfinished">Подсветка вида кривой</translation>
|
<translation>Подсветка вида кривой</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Highlight range</source>
|
<source>Highlight range</source>
|
||||||
@@ -18032,6 +18045,14 @@ Please build the debugging helpers on the Qt version options page.</source>
|
|||||||
<source>The QML Profiler can be used to find performance bottlenecks in applications using QML.</source>
|
<source>The QML Profiler can be used to find performance bottlenecks in applications using QML.</source>
|
||||||
<translation>QML Profiler предназначен для поиска узких мест в приложениях использующих QML.</translation>
|
<translation>QML Profiler предназначен для поиска узких мест в приложениях использующих QML.</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Events</source>
|
<source>Events</source>
|
||||||
<translation>События</translation>
|
<translation>События</translation>
|
||||||
@@ -18252,7 +18273,7 @@ You can review Qt Quick UI projects in the QML Viewer and you need not build the
|
|||||||
<message>
|
<message>
|
||||||
<source>QML Viewer</source>
|
<source>QML Viewer</source>
|
||||||
<comment>QMLRunConfiguration display name.</comment>
|
<comment>QMLRunConfiguration display name.</comment>
|
||||||
<translation>Просмотр QML</translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -18260,7 +18281,7 @@ You can review Qt Quick UI projects in the QML Viewer and you need not build the
|
|||||||
<message>
|
<message>
|
||||||
<source>QML Viewer</source>
|
<source>QML Viewer</source>
|
||||||
<comment>QML Viewer target display name</comment>
|
<comment>QML Viewer target display name</comment>
|
||||||
<translation>Просмотр QML</translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -19111,33 +19132,6 @@ Adds the library and include paths to the .pro file.</source>
|
|||||||
<translation>Зафиксировать портретную</translation>
|
<translation>Зафиксировать портретную</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
|
||||||
<name>Qt4ProjectManager::Internal::MobileAppWizardMaemoOptionsPage</name>
|
|
||||||
<message>
|
|
||||||
<source>Invalid Icon</source>
|
|
||||||
<translation>Неверный значок</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>The file is not a valid image.</source>
|
|
||||||
<translation>Файл не является изображением.</translation>
|
|
||||||
</message>
|
|
||||||
<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>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>File Error</source>
|
|
||||||
<translation>Ошибка файла</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Could not copy icon file: %1</source>
|
|
||||||
<translation>Не удалось скопировать файл значка: %1</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
<context>
|
||||||
<name>Qt4ProjectManager::Internal::ModulesPage</name>
|
<name>Qt4ProjectManager::Internal::ModulesPage</name>
|
||||||
<message>
|
<message>
|
||||||
@@ -19156,6 +19150,25 @@ Adds the library and include paths to the .pro file.</source>
|
|||||||
<translation>Создание нескольких библиотек виджетов (%1, %2) в одном проекте (%3) не поддерживается.</translation>
|
<translation>Создание нескольких библиотек виджетов (%1, %2) в одном проекте (%3) не поддерживается.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</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 Qt Creator to scale it?</source>
|
||||||
|
<translation>Значок должен быть размером в %1x%2 пикселей. Должен ли Qt Creator изменить его масштаб?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>File Error</source>
|
||||||
|
<translation>Ошибка файла</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Could not copy icon file: %1</source>
|
||||||
|
<translation>Не удалось скопировать файл значка: %1</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Qt4ProjectManager::Internal::ProjectLoadWizard</name>
|
<name>Qt4ProjectManager::Internal::ProjectLoadWizard</name>
|
||||||
<message>
|
<message>
|
||||||
@@ -19928,6 +19941,10 @@ Use a developer certificate or any other signing option to prevent this patching
|
|||||||
<source>Qt Quick components version: </source>
|
<source>Qt Quick components version: </source>
|
||||||
<translation>Версия элементов Qt Quick: </translation>
|
<translation>Версия элементов Qt Quick: </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>QML Viewer version: </source>
|
||||||
|
<translation>Версия QML Viewer: </translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Screen size:</source>
|
<source>Screen size:</source>
|
||||||
<translation>Размер экрана:</translation>
|
<translation>Размер экрана:</translation>
|
||||||
@@ -20784,10 +20801,34 @@ Reason: %2</source>
|
|||||||
<source>Add Build</source>
|
<source>Add Build</source>
|
||||||
<translation>Добавить сборку</translation>
|
<translation>Добавить сборку</translation>
|
||||||
</message>
|
</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>
|
<message>
|
||||||
<source>Use Shadow Building</source>
|
<source>Use Shadow Building</source>
|
||||||
<translation>Использовать теневую сборку</translation>
|
<translation>Использовать теневую сборку</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Qt Version:</source>
|
||||||
|
<translation>Профиль Qt:</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>debug</source>
|
<source>debug</source>
|
||||||
<extracomment>Debug build</extracomment>
|
<extracomment>Debug build</extracomment>
|
||||||
@@ -21670,10 +21711,6 @@ Requires Qt 4.7.4 or newer, and the component set installed for your Qt version.
|
|||||||
<translation>Выполнение внешнего процесса завершено. Код завершения %1.
|
<translation>Выполнение внешнего процесса завершено. Код завершения %1.
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Remote Execution Failure</source>
|
|
||||||
<translation>Ошибка внешнего выполнения</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RemoteLinux::CreateTarStepWidget</name>
|
<name>RemoteLinux::CreateTarStepWidget</name>
|
||||||
@@ -21730,6 +21767,14 @@ In addition, device connectivity will be tested.</source>
|
|||||||
<source>Debian changelog file '%1' has unexpected format.</source>
|
<source>Debian changelog file '%1' has unexpected format.</source>
|
||||||
<translation>Файл журнала изменений Debian «%1» имеет неожиданный формат.</translation>
|
<translation>Файл журнала изменений Debian «%1» имеет неожиданный формат.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Refusing to update changelog file: Already contains version '%1'.</source>
|
||||||
|
<translation>Не удалось обновить файл changelog: Уже содержит версию «%1».</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Cannot update changelog: Invalid format (no maintainer entry found).</source>
|
||||||
|
<translation>Не удалось обновить changelog: Неверный формат (нет записи о разработчике).</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid icon data in Debian control file.</source>
|
<source>Invalid icon data in Debian control file.</source>
|
||||||
<translation>Неверные данные значка в управляющем файле Debian.</translation>
|
<translation>Неверные данные значка в управляющем файле Debian.</translation>
|
||||||
@@ -27141,7 +27186,7 @@ Influences the indentation of continuation lines.
|
|||||||
<name>Valgrind::Callgrind::ParseData</name>
|
<name>Valgrind::Callgrind::ParseData</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Last-level</source>
|
<source>Last-level</source>
|
||||||
<translation type="unfinished">Последний уровень</translation>
|
<translation>Последний уровень</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Instruction</source>
|
<source>Instruction</source>
|
||||||
|
|||||||
@@ -102,7 +102,7 @@
|
|||||||
<name>BINEditor::Internal::BinEditorPlugin</name>
|
<name>BINEditor::Internal::BinEditorPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
@@ -245,7 +245,7 @@
|
|||||||
<name>Bookmarks::Internal::BookmarksPlugin</name>
|
<name>Bookmarks::Internal::BookmarksPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Bookmarks</source>
|
<source>&Bookmarks</source>
|
||||||
<translation>书签(&B)</translation>
|
<translation>书签</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toggle Bookmark</source>
|
<source>Toggle Bookmark</source>
|
||||||
@@ -756,7 +756,7 @@
|
|||||||
<name>CodePaster::CodepasterPlugin</name>
|
<name>CodePaster::CodepasterPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Code Pasting</source>
|
<source>&Code Pasting</source>
|
||||||
<translation>粘贴代码(&C)</translation>
|
<translation>粘贴代码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Paste Snippet...</source>
|
<source>Paste Snippet...</source>
|
||||||
@@ -1216,7 +1216,7 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Save %1 &As...</source>
|
<source>Save %1 &As...</source>
|
||||||
<translation>%1 另存为(&A)...</translation>
|
<translation>%1 另存为...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Goto Other Split</source>
|
<source>Goto Other Split</source>
|
||||||
@@ -1332,7 +1332,7 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ad&vanced</source>
|
<source>Ad&vanced</source>
|
||||||
<translation>高级(&v)</translation>
|
<translation>高级</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Full path of the current document including file name.</source>
|
<source>Full path of the current document including file name.</source>
|
||||||
@@ -1757,11 +1757,11 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&New File or Project...</source>
|
<source>&New File or Project...</source>
|
||||||
<translation>新建文件或工程(&N)...</translation>
|
<translation>新建文件或工程...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Open File or Project...</source>
|
<source>&Open File or Project...</source>
|
||||||
<translation>打开文件或工程(&O)...</translation>
|
<translation>打开文件或工程...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Open File With...</source>
|
<source>&Open File With...</source>
|
||||||
@@ -1773,19 +1773,20 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open File &With...</source>
|
<source>Open File &With...</source>
|
||||||
<translation>用...打开文件(&W)...</translation>
|
<translatorcomment>不需要快捷键</translatorcomment>
|
||||||
|
<translation>用...打开文件</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Recent &Files</source>
|
<source>Recent &Files</source>
|
||||||
<translation>最近访问的文件(&F)</translation>
|
<translation>最近访问的文件</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Save</source>
|
<source>&Save</source>
|
||||||
<translation>保存(&S)</translation>
|
<translation>保存</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Save &As...</source>
|
<source>Save &As...</source>
|
||||||
<translation>另存为(&A)...</translation>
|
<translation>另存为...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Shift+S</source>
|
<source>Ctrl+Shift+S</source>
|
||||||
@@ -1793,15 +1794,15 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Save A&ll</source>
|
<source>Save A&ll</source>
|
||||||
<translation>保存所有文件(&l)</translation>
|
<translation>保存所有文件</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Print...</source>
|
<source>&Print...</source>
|
||||||
<translation>打印(&P)...</translation>
|
<translation>打印...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>E&xit</source>
|
<source>E&xit</source>
|
||||||
<translation>退出(&x)</translation>
|
<translation>退出</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+Q</source>
|
<source>Ctrl+Q</source>
|
||||||
@@ -1809,7 +1810,7 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
@@ -1817,23 +1818,23 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cu&t</source>
|
<source>Cu&t</source>
|
||||||
<translation>剪切(&t)</translation>
|
<translation>剪切</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>复制(&C)</translation>
|
<translation>复制</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Paste</source>
|
<source>&Paste</source>
|
||||||
<translation>粘贴(&P)</translation>
|
<translation>粘贴</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select &All</source>
|
<source>Select &All</source>
|
||||||
<translation>全选(&A)</translation>
|
<translation>全选</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Go to Line...</source>
|
<source>&Go to Line...</source>
|
||||||
<translation>转到行(&G)...</translation>
|
<translation>转到行...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Select All</source>
|
<source>&Select All</source>
|
||||||
@@ -1849,7 +1850,7 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Options...</source>
|
<source>&Options...</source>
|
||||||
<translation>选项(&O)...</translation>
|
<translation>选项...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Minimize</source>
|
<source>Minimize</source>
|
||||||
@@ -1869,19 +1870,19 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Views</source>
|
<source>&Views</source>
|
||||||
<translation>视图(&V)</translation>
|
<translation>视图</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>About &Qt Creator</source>
|
<source>About &Qt Creator</source>
|
||||||
<translation>关于 Qt Creator(&Q)</translation>
|
<translation>关于 Qt Creator</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>About &Qt Creator...</source>
|
<source>About &Qt Creator...</source>
|
||||||
<translation>关于 Qt Creator(&Q)...</translation>
|
<translation>关于 Qt Creator...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>About &Plugins...</source>
|
<source>About &Plugins...</source>
|
||||||
<translation>关于插件(&P)...</translation>
|
<translation>关于插件...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>New</source>
|
<source>New</source>
|
||||||
@@ -2058,7 +2059,7 @@ Would you like to overwrite them?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Output &Panes</source>
|
<source>Output &Panes</source>
|
||||||
<translation>输出窗口(&P)</translation>
|
<translation>输出窗口</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -2990,7 +2991,7 @@ Would you like to overwrite them?</source>
|
|||||||
<name>CppTools::Internal::CppToolsPlugin</name>
|
<name>CppTools::Internal::CppToolsPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&C++</source>
|
<source>&C++</source>
|
||||||
<translation>C++(&C)</translation>
|
<translation>C++</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Switch Header/Source</source>
|
<source>Switch Header/Source</source>
|
||||||
@@ -9039,11 +9040,11 @@ on slow machines. In this case, the value should be increased.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not find working directory</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>Technical Support</source>
|
<source>Technical Support</source>
|
||||||
<translation>计数支持</translation>
|
<translation>技术支持</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Report Bug</source>
|
<source>Report Bug</source>
|
||||||
@@ -10181,11 +10182,11 @@ SOURCES *= .../ide/main/bin/dumper/dumper.cpp
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>p4 revert</source>
|
<source>p4 revert</source>
|
||||||
@@ -11757,7 +11758,7 @@ to project '%2'.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Start Debugging</source>
|
<source>&Start Debugging</source>
|
||||||
<translation>开始调试(&S)</translation>
|
<translation>开始调试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open With</source>
|
<source>Open With</source>
|
||||||
@@ -11809,7 +11810,7 @@ to project '%2'.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Recent P&rojects</source>
|
<source>Recent P&rojects</source>
|
||||||
<translation>最近使用的项目(&r)</translation>
|
<translation>最近使用的项目</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Close Project</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Closing Subversion Editor</source>
|
<source>Closing Subversion Editor</source>
|
||||||
@@ -15595,7 +15596,7 @@ Influences the indentation of continuation lines.
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Visualize whitespace</source>
|
<source>&Visualize whitespace</source>
|
||||||
<translation>标示空白(&V)</translation>
|
<translation>标示空白</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Highlight current &line</source>
|
<source>Highlight current &line</source>
|
||||||
@@ -15607,7 +15608,7 @@ Influences the indentation of continuation lines.
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable text &wrapping</source>
|
<source>Enable text &wrapping</source>
|
||||||
<translation>开启文字折行(&w)</translation>
|
<translation>开启文字折行</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Display right &margin at column:</source>
|
<source>Display right &margin at column:</source>
|
||||||
@@ -15881,11 +15882,11 @@ The following encodings are likely to fit:</source>
|
|||||||
<name>TextEditor::TextEditorActionHandler</name>
|
<name>TextEditor::TextEditorActionHandler</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select Encoding...</source>
|
<source>Select Encoding...</source>
|
||||||
@@ -15893,7 +15894,7 @@ The following encodings are likely to fit:</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Auto-&indent Selection</source>
|
<source>Auto-&indent Selection</source>
|
||||||
<translation>选中的文字自动缩进(&i)</translation>
|
<translation>选中的文字自动缩进</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+I</source>
|
<source>Ctrl+I</source>
|
||||||
@@ -15913,7 +15914,7 @@ The following encodings are likely to fit:</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Visualize Whitespace</source>
|
<source>&Visualize Whitespace</source>
|
||||||
<translation>标示空白符(&V)</translation>
|
<translation>标示空白</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clean Whitespace</source>
|
<source>Clean Whitespace</source>
|
||||||
@@ -15921,7 +15922,7 @@ The following encodings are likely to fit:</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable Text &Wrapping</source>
|
<source>Enable Text &Wrapping</source>
|
||||||
<translation>开启文字折行(&W)</translation>
|
<translation>开启文字折行</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>(Un)Comment &Selection</source>
|
<source>(Un)Comment &Selection</source>
|
||||||
@@ -15985,7 +15986,7 @@ The following encodings are likely to fit:</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Rewrap Paragraph</source>
|
<source>&Rewrap Paragraph</source>
|
||||||
<translation>段落重新折行(&R)</translation>
|
<translation>段落重新折行</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1+E, %2+V</source>
|
<source>%1+E, %2+V</source>
|
||||||
@@ -15997,7 +15998,7 @@ The following encodings are likely to fit:</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toggle Comment &Selection</source>
|
<source>Toggle Comment &Selection</source>
|
||||||
<translation>选中评论选择(&S)</translation>
|
<translation>选中区域注释/反注释</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cut &Line</source>
|
<source>Cut &Line</source>
|
||||||
@@ -16069,7 +16070,7 @@ The following encodings are likely to fit:</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toggle &Fold All</source>
|
<source>Toggle &Fold All</source>
|
||||||
<translation>选择 折叠/展开所有(&F)</translation>
|
<translation>选择 折叠/展开所有</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ctrl+}</source>
|
<source>Ctrl+}</source>
|
||||||
@@ -18339,11 +18340,11 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Closing CVS Editor</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There are no changes to commit.</source>
|
<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>
|
||||||
<message>
|
<message>
|
||||||
<source>Save P&ublic Key...</source>
|
<source>Save P&ublic Key...</source>
|
||||||
<translation>保存公钥文件(&u)...</translation>
|
<translation>保存公钥文件...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Save Pr&ivate Key...</source>
|
<source>Save Pr&ivate Key...</source>
|
||||||
<translation>保存私钥文件(&i)...</translation>
|
<translation>保存私钥文件...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Close</source>
|
<source>&Close</source>
|
||||||
@@ -23226,7 +23227,7 @@ Previous decimal signed value (big endian): %4</source>
|
|||||||
<name>Find::FindPlugin</name>
|
<name>Find::FindPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Find/Replace</source>
|
<source>&Find/Replace</source>
|
||||||
<translation>查找/替换(&F)</translation>
|
<translation>查找/替换</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Advanced Find</source>
|
<source>Advanced Find</source>
|
||||||
@@ -24173,11 +24174,11 @@ Ids must begin with a lowercase letter.</source>
|
|||||||
<name>QmlDesigner::Internal::DesignModeWidget</name>
|
<name>QmlDesigner::Internal::DesignModeWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete</source>
|
<source>Delete</source>
|
||||||
@@ -24189,7 +24190,7 @@ Ids must begin with a lowercase letter.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cu&t</source>
|
<source>Cu&t</source>
|
||||||
<translation>剪切(&t)</translation>
|
<translation>剪切</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cut "%1"</source>
|
<source>Cut "%1"</source>
|
||||||
@@ -24197,7 +24198,7 @@ Ids must begin with a lowercase letter.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<translation>复制(&C)</translation>
|
<translation>复制</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy "%1"</source>
|
<source>Copy "%1"</source>
|
||||||
@@ -24205,7 +24206,7 @@ Ids must begin with a lowercase letter.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Paste</source>
|
<source>&Paste</source>
|
||||||
<translation>粘贴(&P)</translation>
|
<translation>粘贴</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Paste "%1"</source>
|
<source>Paste "%1"</source>
|
||||||
@@ -24213,7 +24214,7 @@ Ids must begin with a lowercase letter.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select &All</source>
|
<source>Select &All</source>
|
||||||
<translation>全选(&A)</translation>
|
<translation>全选</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select All "%1"</source>
|
<source>Select All "%1"</source>
|
||||||
@@ -24268,7 +24269,7 @@ Ids must begin with a lowercase letter.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Save %1</source>
|
<source>&Save %1</source>
|
||||||
<translation>保存%1(&S)</translation>
|
<translation>保存%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Revert %1 to Saved</source>
|
<source>Revert %1 to Saved</source>
|
||||||
@@ -30329,7 +30330,7 @@ instead of its installation directory when run outside git bash.</source>
|
|||||||
<message>
|
<message>
|
||||||
<source>&Copy</source>
|
<source>&Copy</source>
|
||||||
<comment>Name of the action triggering the copytaskhandler</comment>
|
<comment>Name of the action triggering the copytaskhandler</comment>
|
||||||
<translation>复制(&C)</translation>
|
<translation>复制</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy task to clipboard</source>
|
<source>Copy task to clipboard</source>
|
||||||
@@ -34612,11 +34613,11 @@ Influences the indentation of continuation lines.
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Undo</source>
|
<source>&Undo</source>
|
||||||
<translation>撤销(&U)</translation>
|
<translation>撤销</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Redo</source>
|
<source>&Redo</source>
|
||||||
<translation>重做(&R)</translation>
|
<translation>重做</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There are no changes to commit.</source>
|
<source>There are no changes to commit.</source>
|
||||||
@@ -34894,7 +34895,7 @@ Note: This might remove the local file.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Refactor</source>
|
<source>&Refactor</source>
|
||||||
<translation>重构(&R)</translation>
|
<translation>重构</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unused variable</source>
|
<source>Unused variable</source>
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ SOURCES += qtmenu.cpp \
|
|||||||
qwheelarea.cpp
|
qwheelarea.cpp
|
||||||
|
|
||||||
!macx {
|
!macx {
|
||||||
target.path = /lib/qtcreator/qtcomponents/plugin
|
target.path = /$${IDE_LIBRARY_BASENAME}/qtcreator/qtcomponents/plugin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -945,8 +945,8 @@ void BinEditor::setCursorPosition(int pos, MoveMode moveMode)
|
|||||||
hasSelection = m_anchorPosition != m_cursorPosition;
|
hasSelection = m_anchorPosition != m_cursorPosition;
|
||||||
updateLines(hasSelection ? oldCursorPosition : m_cursorPosition, m_cursorPosition);
|
updateLines(hasSelection ? oldCursorPosition : m_cursorPosition, m_cursorPosition);
|
||||||
ensureCursorVisible();
|
ensureCursorVisible();
|
||||||
if (hasSelection != (m_anchorPosition != m_anchorPosition))
|
if (hasSelection)
|
||||||
emit copyAvailable(m_anchorPosition != m_cursorPosition);
|
emit copyAvailable(hasSelection);
|
||||||
emit cursorPositionChanged(m_cursorPosition);
|
emit cursorPositionChanged(m_cursorPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -164,10 +164,9 @@ void QmlEngine::setupInferior()
|
|||||||
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
|
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
|
||||||
|
|
||||||
if (startParameters().startMode == AttachToRemote) {
|
if (startParameters().startMode == AttachToRemote) {
|
||||||
|
emit requestRemoteSetup();
|
||||||
if (startParameters().qmlServerPort != quint16(-1))
|
if (startParameters().qmlServerPort != quint16(-1))
|
||||||
notifyInferiorSetupOk();
|
notifyInferiorSetupOk();
|
||||||
else
|
|
||||||
emit requestRemoteSetup();
|
|
||||||
} else {
|
} else {
|
||||||
d->m_applicationLauncher.setEnvironment(startParameters().environment);
|
d->m_applicationLauncher.setEnvironment(startParameters().environment);
|
||||||
d->m_applicationLauncher.setWorkingDirectory(startParameters().workingDirectory);
|
d->m_applicationLauncher.setWorkingDirectory(startParameters().workingDirectory);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
macx {
|
macx {
|
||||||
DESTDIR = $$IDE_LIBRARY_PATH/QmlDesigner
|
DESTDIR = $$IDE_LIBRARY_PATH/QmlDesigner
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = $$IDE_BUILD_TREE/lib/qmldesigner
|
DESTDIR = $$IDE_BUILD_TREE/$${IDE_LIBRARY_BASENAME}/qmldesigner
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ static inline bool checkIfNodeIsAView(const ModelNode &node)
|
|||||||
|
|
||||||
static inline bool isItem(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)
|
static inline QList<QmlItemNode> siblingsForNode(const QmlItemNode &itemNode)
|
||||||
@@ -251,7 +251,7 @@ void ModelNodeContextMenu::execute(const QPoint &pos, bool selectionMenuBool)
|
|||||||
editMenu->addAction(action);
|
editMenu->addAction(action);
|
||||||
action = createModelNodeAction(tr("Visibility"), editMenu, QList<ModelNode>() << currentSingleNode, ModelNodeAction::ModelNodeVisibility, singleSelected);
|
action = createModelNodeAction(tr("Visibility"), editMenu, QList<ModelNode>() << currentSingleNode, ModelNodeAction::ModelNodeVisibility, singleSelected);
|
||||||
editMenu->addAction(action);
|
editMenu->addAction(action);
|
||||||
if (!isItem(currentSingleNode))
|
if (singleSelected && !isItem(currentSingleNode))
|
||||||
action->setDisabled(true);
|
action->setDisabled(true);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -216,6 +216,8 @@ RunControl *QmlProjectRunControlFactory::createDebugRunControl(QmlProjectRunConf
|
|||||||
params.displayName = runConfig->displayName();
|
params.displayName = runConfig->displayName();
|
||||||
params.projectSourceDirectory = runConfig->target()->project()->projectDirectory();
|
params.projectSourceDirectory = runConfig->target()->project()->projectDirectory();
|
||||||
params.projectSourceFiles = runConfig->target()->project()->files(Project::ExcludeGeneratedFiles);
|
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
|
// Makes sure that all bindings go through the JavaScript engine, so that
|
||||||
// breakpoints are actually hit!
|
// breakpoints are actually hit!
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ QStringList QMakeStep::moreArguments()
|
|||||||
if (!bc->qtVersion()->needsQmlDebuggingLibrary()) {
|
if (!bc->qtVersion()->needsQmlDebuggingLibrary()) {
|
||||||
// This Qt version has the QML debugging services built in, however
|
// This Qt version has the QML debugging services built in, however
|
||||||
// they still need to be enabled at compile time
|
// they still need to be enabled at compile time
|
||||||
arguments << QLatin1String("CONFIG+=declarative_debug");
|
arguments << QLatin1String(Constants::QMAKEVAR_DECLARATIVE_DEBUG);
|
||||||
} else {
|
} else {
|
||||||
QString qmlDebuggingHelperLibrary = bc->qtVersion()->qmlDebuggingHelperLibrary(true);
|
QString qmlDebuggingHelperLibrary = bc->qtVersion()->qmlDebuggingHelperLibrary(true);
|
||||||
if (!qmlDebuggingHelperLibrary.isEmpty()) {
|
if (!qmlDebuggingHelperLibrary.isEmpty()) {
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ CodaRunControl::CodaRunControl(RunConfiguration *runConfiguration, const QString
|
|||||||
S60RunControlBase(runConfiguration, mode),
|
S60RunControlBase(runConfiguration, mode),
|
||||||
m_port(0),
|
m_port(0),
|
||||||
m_state(StateUninit),
|
m_state(StateUninit),
|
||||||
m_codaFlags(0),
|
|
||||||
m_stopAfterConnect(false)
|
m_stopAfterConnect(false)
|
||||||
{
|
{
|
||||||
const S60DeviceRunConfiguration *s60runConfig = qobject_cast<S60DeviceRunConfiguration *>(runConfiguration);
|
const S60DeviceRunConfiguration *s60runConfig = qobject_cast<S60DeviceRunConfiguration *>(runConfiguration);
|
||||||
@@ -167,7 +166,7 @@ void CodaRunControl::doStop()
|
|||||||
case StateProcessRunning:
|
case StateProcessRunning:
|
||||||
QTC_ASSERT(!m_runningProcessId.isEmpty(), return);
|
QTC_ASSERT(!m_runningProcessId.isEmpty(), return);
|
||||||
m_codaDevice->sendRunControlTerminateCommand(CodaCallback(),
|
m_codaDevice->sendRunControlTerminateCommand(CodaCallback(),
|
||||||
m_runningProcessId.toAscii());
|
m_runningProcessId.toAscii());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (debug)
|
if (debug)
|
||||||
@@ -226,10 +225,7 @@ void CodaRunControl::slotCodaEvent(const CodaEvent &event)
|
|||||||
|
|
||||||
void CodaRunControl::initCommunication()
|
void CodaRunControl::initCommunication()
|
||||||
{
|
{
|
||||||
if (m_codaFlags & OptionsUseDebugSession)
|
m_codaDevice->sendDebugSessionControlSessionStartCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionStarted));
|
||||||
m_codaDevice->sendDebugSessionControlSessionStartCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionStarted));
|
|
||||||
else
|
|
||||||
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CodaRunControl::handleConnected(const CodaEvent &event)
|
void CodaRunControl::handleConnected(const CodaEvent &event)
|
||||||
@@ -241,8 +237,6 @@ void CodaRunControl::handleConnected(const CodaEvent &event)
|
|||||||
setProgress(maxProgress()*0.80);
|
setProgress(maxProgress()*0.80);
|
||||||
|
|
||||||
m_codaServices = static_cast<const CodaLocatorHelloEvent &>(event).services();
|
m_codaServices = static_cast<const CodaLocatorHelloEvent &>(event).services();
|
||||||
if (m_codaServices.contains(QLatin1String("DebugSessionControl")))
|
|
||||||
m_codaFlags |= OptionsUseDebugSession;
|
|
||||||
|
|
||||||
emit connected();
|
emit connected();
|
||||||
if (!m_stopAfterConnect)
|
if (!m_stopAfterConnect)
|
||||||
@@ -255,11 +249,7 @@ void CodaRunControl::handleContextRemoved(const CodaEvent &event)
|
|||||||
= static_cast<const CodaRunControlContextRemovedEvent &>(event).ids();
|
= static_cast<const CodaRunControlContextRemovedEvent &>(event).ids();
|
||||||
if (!m_runningProcessId.isEmpty()
|
if (!m_runningProcessId.isEmpty()
|
||||||
&& removedItems.contains(m_runningProcessId.toAscii())) {
|
&& removedItems.contains(m_runningProcessId.toAscii())) {
|
||||||
appendMessage(tr("Process has finished.\n"), Utils::NormalMessageFormat);
|
m_codaDevice->sendDebugSessionControlSessionEndCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionEnded));
|
||||||
if (m_codaFlags & OptionsUseDebugSession)
|
|
||||||
m_codaDevice->sendDebugSessionControlSessionEndCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionEnded));
|
|
||||||
else
|
|
||||||
finishRunControl();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -331,6 +321,10 @@ void CodaRunControl::handleAddListener(const CodaCommandResult &result)
|
|||||||
void CodaRunControl::handleDebugSessionStarted(const CodaCommandResult &result)
|
void CodaRunControl::handleDebugSessionStarted(const CodaCommandResult &result)
|
||||||
{
|
{
|
||||||
Q_UNUSED(result)
|
Q_UNUSED(result)
|
||||||
|
if (m_codaDevice.isNull()) {
|
||||||
|
finishRunControl();
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_state = StateDebugSessionStarted;
|
m_state = StateDebugSessionStarted;
|
||||||
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
|
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
|
||||||
}
|
}
|
||||||
@@ -355,7 +349,7 @@ void CodaRunControl::handleFindProcesses(const CodaCommandResult &result)
|
|||||||
executableUid(),
|
executableUid(),
|
||||||
commandLineArguments().split(' '),
|
commandLineArguments().split(' '),
|
||||||
QString(),
|
QString(),
|
||||||
!(m_codaFlags & OptionsUseDebugSession));
|
true);
|
||||||
appendMessage(tr("Launching: %1\n").arg(executableName()), Utils::NormalMessageFormat);
|
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;
|
const bool ok = result.type == CodaCommandResult::SuccessReply;
|
||||||
bool processCreated = false;
|
bool processCreated = false;
|
||||||
if (ok) {
|
if (ok) {
|
||||||
if (m_codaFlags & OptionsUseDebugSession) {
|
if (result.values.size()) {
|
||||||
if (result.values.size()) {
|
Json::JsonValue id = result.values.at(0).findChild("ID");
|
||||||
Json::JsonValue id = result.values.at(0).findChild("ID");
|
if (id.isValid()) {
|
||||||
if (id.isValid()) {
|
m_state = StateProcessRunning;
|
||||||
m_state = StateProcessRunning;
|
m_runningProcessId = id.data();
|
||||||
m_runningProcessId = id.data();
|
processCreated = true;
|
||||||
processCreated = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else // If no DebugSession is present the process will already be created by now
|
}
|
||||||
processCreated = true;
|
|
||||||
}
|
}
|
||||||
if (processCreated) {
|
if (processCreated) {
|
||||||
setProgress(maxProgress());
|
setProgress(maxProgress());
|
||||||
|
|||||||
@@ -116,11 +116,6 @@ private:
|
|||||||
StateDebugSessionEnded
|
StateDebugSessionEnded
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Options {
|
|
||||||
OptionsNone = 0,
|
|
||||||
OptionsUseDebugSession = 1
|
|
||||||
};
|
|
||||||
|
|
||||||
QSharedPointer<Coda::CodaDevice> m_codaDevice;
|
QSharedPointer<Coda::CodaDevice> m_codaDevice;
|
||||||
|
|
||||||
QString m_address;
|
QString m_address;
|
||||||
@@ -130,7 +125,6 @@ private:
|
|||||||
QStringList m_codaServices;
|
QStringList m_codaServices;
|
||||||
|
|
||||||
State m_state;
|
State m_state;
|
||||||
quint32 m_codaFlags;
|
|
||||||
bool m_stopAfterConnect;
|
bool m_stopAfterConnect;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ const char LAST_DRIVE_LETTER = 'Z';
|
|||||||
static const quint32 CODA_UID = 0x20021F96;
|
static const quint32 CODA_UID = 0x20021F96;
|
||||||
static const quint32 QTMOBILITY_UID = 0x2002AC89;
|
static const quint32 QTMOBILITY_UID = 0x2002AC89;
|
||||||
static const quint32 QTCOMPONENTS_UID = 0x200346DE;
|
static const quint32 QTCOMPONENTS_UID = 0x200346DE;
|
||||||
|
static const quint32 QMLVIEWER_UID = 0x20021317;
|
||||||
|
|
||||||
QString formatDriveText(const S60DeployConfiguration::DeviceDrive &drive)
|
QString formatDriveText(const S60DeployConfiguration::DeviceDrive &drive)
|
||||||
{
|
{
|
||||||
@@ -597,6 +598,7 @@ void S60DeployConfigurationWidget::getRomInfoResult(const Coda::CodaCommandResul
|
|||||||
packagesOfInterest.append(CODA_UID);
|
packagesOfInterest.append(CODA_UID);
|
||||||
packagesOfInterest.append(QTMOBILITY_UID);
|
packagesOfInterest.append(QTMOBILITY_UID);
|
||||||
packagesOfInterest.append(QTCOMPONENTS_UID);
|
packagesOfInterest.append(QTCOMPONENTS_UID);
|
||||||
|
packagesOfInterest.append(QMLVIEWER_UID);
|
||||||
if (m_codaInfoDevice)
|
if (m_codaInfoDevice)
|
||||||
m_codaInfoDevice->sendSymbianInstallGetPackageInfoCommand(Coda::CodaCallback(this, &S60DeployConfigurationWidget::getInstalledPackagesResult), packagesOfInterest);
|
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);
|
addToTable(str, tr("Qt Quick components version: "), error ? tr("Not installed") : versionString);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case QMLVIEWER_UID: {
|
||||||
|
addToTable(str, tr("QML Viewer version: "), error ? tr("Not installed") : versionString);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -535,8 +535,9 @@ bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
|
|||||||
{
|
{
|
||||||
bool removedArgument = false;
|
bool removedArgument = false;
|
||||||
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
|
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
|
||||||
if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) {
|
const QString arg = ait.value();
|
||||||
ait.deleteArg();
|
if (arg.contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))
|
||||||
|
|| arg.contains(Constants::QMAKEVAR_DECLARATIVE_DEBUG)) {
|
||||||
removedArgument = true;
|
removedArgument = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ FORMS += makestep.ui \
|
|||||||
wizards/mobileappwizardgenericoptionspage.ui \
|
wizards/mobileappwizardgenericoptionspage.ui \
|
||||||
wizards/mobileappwizardsymbianoptionspage.ui \
|
wizards/mobileappwizardsymbianoptionspage.ui \
|
||||||
wizards/mobileappwizardmaemooptionspage.ui \
|
wizards/mobileappwizardmaemooptionspage.ui \
|
||||||
|
wizards/mobileappwizardharmattanoptionspage.ui \
|
||||||
wizards/qtquickcomponentsetoptionspage.ui
|
wizards/qtquickcomponentsetoptionspage.ui
|
||||||
|
|
||||||
RESOURCES += qt4projectmanager.qrc \
|
RESOURCES += qt4projectmanager.qrc \
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ const char * const ICON_HTML5_APP = ":/wizards/images/html5app.png";
|
|||||||
|
|
||||||
// Env variables
|
// Env variables
|
||||||
const char * const QMAKEVAR_QMLJSDEBUGGER_PATH = "QMLJSDEBUGGER_PATH";
|
const char * const QMAKEVAR_QMLJSDEBUGGER_PATH = "QMLJSDEBUGGER_PATH";
|
||||||
|
const char * const QMAKEVAR_DECLARATIVE_DEBUG = "CONFIG+=declarative_debug";
|
||||||
|
|
||||||
} // namespace Constants
|
} // namespace Constants
|
||||||
} // namespace Qt4ProjectManager
|
} // namespace Qt4ProjectManager
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
#endif // CREATORLESSTEST
|
#endif // CREATORLESSTEST
|
||||||
|
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
namespace Qt4ProjectManager {
|
||||||
|
|
||||||
@@ -62,8 +63,11 @@ const QString AbstractMobileApp::FileStubVersion(QLatin1String("version"));
|
|||||||
const int AbstractMobileApp::StubVersion = 6;
|
const int AbstractMobileApp::StubVersion = 6;
|
||||||
|
|
||||||
AbstractMobileApp::AbstractMobileApp()
|
AbstractMobileApp::AbstractMobileApp()
|
||||||
: m_orientation(ScreenOrientationAuto)
|
: QObject()
|
||||||
|
, m_canSupportMeegoBooster(false)
|
||||||
|
, m_orientation(ScreenOrientationAuto)
|
||||||
, m_networkEnabled(true)
|
, m_networkEnabled(true)
|
||||||
|
, m_supportsMeegoBooster(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,7 +213,10 @@ QByteArray AbstractMobileApp::generateDesktopFile(QString *errorMessage, int fil
|
|||||||
} else if (fileType == AbstractGeneratedFileInfo::DesktopFileHarmattan) {
|
} else if (fileType == AbstractGeneratedFileInfo::DesktopFileHarmattan) {
|
||||||
desktopFileContent.replace("Icon=thisApp",
|
desktopFileContent.replace("Icon=thisApp",
|
||||||
"Icon=/usr/share/icons/hicolor/80x80/apps/" + projectName().toUtf8() + "80.png");
|
"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());
|
return desktopFileContent.replace("thisApp", projectName().toUtf8());
|
||||||
}
|
}
|
||||||
@@ -416,6 +423,22 @@ QString AbstractMobileApp::error() const
|
|||||||
return m_error;
|
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,
|
QByteArray AbstractMobileApp::readBlob(const QString &filePath,
|
||||||
QString *errorMsg) const
|
QString *errorMsg) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -133,6 +133,10 @@ public:
|
|||||||
QString path(int fileType) const;
|
QString path(int fileType) const;
|
||||||
QString error() const;
|
QString error() const;
|
||||||
|
|
||||||
|
bool canSupportMeegoBooster() const;
|
||||||
|
bool supportsMeegoBooster() const;
|
||||||
|
void setSupportsMeegoBooster(bool supportBooster);
|
||||||
|
|
||||||
#ifndef CREATORLESSTEST
|
#ifndef CREATORLESSTEST
|
||||||
virtual Core::GeneratedFiles generateFiles(QString *errorMessage) const;
|
virtual Core::GeneratedFiles generateFiles(QString *errorMessage) const;
|
||||||
#else
|
#else
|
||||||
@@ -168,6 +172,8 @@ protected:
|
|||||||
static const int StubVersion;
|
static const int StubVersion;
|
||||||
|
|
||||||
QString m_error;
|
QString m_error;
|
||||||
|
bool m_canSupportMeegoBooster;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QByteArray generateDesktopFile(QString *errorMessage, int fileType) const;
|
QByteArray generateDesktopFile(QString *errorMessage, int fileType) const;
|
||||||
QByteArray generateMainCpp(QString *errorMessage) const;
|
QByteArray generateMainCpp(QString *errorMessage) const;
|
||||||
@@ -194,6 +200,7 @@ private:
|
|||||||
QString m_symbianTargetUid;
|
QString m_symbianTargetUid;
|
||||||
ScreenOrientation m_orientation;
|
ScreenOrientation m_orientation;
|
||||||
bool m_networkEnabled;
|
bool m_networkEnabled;
|
||||||
|
bool m_supportsMeegoBooster;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Qt4ProjectManager
|
} // namespace Qt4ProjectManager
|
||||||
|
|||||||
@@ -70,8 +70,8 @@ AbstractMobileAppWizardDialog::AbstractMobileAppWizardDialog(QWidget *parent, co
|
|||||||
|
|
||||||
m_genericOptionsPage = new Internal::MobileAppWizardGenericOptionsPage;
|
m_genericOptionsPage = new Internal::MobileAppWizardGenericOptionsPage;
|
||||||
m_symbianOptionsPage = new Internal::MobileAppWizardSymbianOptionsPage;
|
m_symbianOptionsPage = new Internal::MobileAppWizardSymbianOptionsPage;
|
||||||
m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(64);
|
m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage;
|
||||||
m_harmattanOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(80);
|
m_harmattanOptionsPage = new Internal::MobileAppWizardHarmattanOptionsPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AbstractMobileAppWizardDialog::addMobilePages()
|
void AbstractMobileAppWizardDialog::addMobilePages()
|
||||||
@@ -235,6 +235,7 @@ QWizard *AbstractMobileAppWizard::createWizardDialog(QWidget *parent,
|
|||||||
wdlg->m_symbianOptionsPage->setNetworkEnabled(app()->networkEnabled());
|
wdlg->m_symbianOptionsPage->setNetworkEnabled(app()->networkEnabled());
|
||||||
wdlg->m_maemoOptionsPage->setPngIcon(app()->pngIcon64());
|
wdlg->m_maemoOptionsPage->setPngIcon(app()->pngIcon64());
|
||||||
wdlg->m_harmattanOptionsPage->setPngIcon(app()->pngIcon80());
|
wdlg->m_harmattanOptionsPage->setPngIcon(app()->pngIcon80());
|
||||||
|
wdlg->m_harmattanOptionsPage->setBoosterOptionEnabled(app()->canSupportMeegoBooster());
|
||||||
connect(wdlg, SIGNAL(projectParametersChanged(QString, QString)),
|
connect(wdlg, SIGNAL(projectParametersChanged(QString, QString)),
|
||||||
SLOT(useProjectPath(QString, QString)));
|
SLOT(useProjectPath(QString, QString)));
|
||||||
foreach (QWizardPage *p, extensionPages)
|
foreach (QWizardPage *p, extensionPages)
|
||||||
@@ -253,6 +254,9 @@ Core::GeneratedFiles AbstractMobileAppWizard::generateFiles(const QWizard *wizar
|
|||||||
app()->setNetworkEnabled(wdlg->m_symbianOptionsPage->networkEnabled());
|
app()->setNetworkEnabled(wdlg->m_symbianOptionsPage->networkEnabled());
|
||||||
app()->setPngIcon64(wdlg->m_maemoOptionsPage->pngIcon());
|
app()->setPngIcon64(wdlg->m_maemoOptionsPage->pngIcon());
|
||||||
app()->setPngIcon80(wdlg->m_harmattanOptionsPage->pngIcon());
|
app()->setPngIcon80(wdlg->m_harmattanOptionsPage->pngIcon());
|
||||||
|
if (wdlg->isHarmattanTargetSelected())
|
||||||
|
app()->setSupportsMeegoBooster(wdlg->isHarmattanTargetSelected()
|
||||||
|
&& wdlg->m_harmattanOptionsPage->supportsBooster());
|
||||||
prepareGenerateFiles(wizard, errorMessage);
|
prepareGenerateFiles(wizard, errorMessage);
|
||||||
return app()->generateFiles(errorMessage);
|
return app()->generateFiles(errorMessage);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ namespace Internal {
|
|||||||
class MobileAppWizardGenericOptionsPage;
|
class MobileAppWizardGenericOptionsPage;
|
||||||
class MobileAppWizardSymbianOptionsPage;
|
class MobileAppWizardSymbianOptionsPage;
|
||||||
class MobileAppWizardMaemoOptionsPage;
|
class MobileAppWizardMaemoOptionsPage;
|
||||||
|
class MobileAppWizardHarmattanOptionsPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \internal
|
/// \internal
|
||||||
@@ -81,7 +82,7 @@ private:
|
|||||||
Internal::MobileAppWizardGenericOptionsPage *m_genericOptionsPage;
|
Internal::MobileAppWizardGenericOptionsPage *m_genericOptionsPage;
|
||||||
Internal::MobileAppWizardSymbianOptionsPage *m_symbianOptionsPage;
|
Internal::MobileAppWizardSymbianOptionsPage *m_symbianOptionsPage;
|
||||||
Internal::MobileAppWizardMaemoOptionsPage *m_maemoOptionsPage;
|
Internal::MobileAppWizardMaemoOptionsPage *m_maemoOptionsPage;
|
||||||
Internal::MobileAppWizardMaemoOptionsPage *m_harmattanOptionsPage;
|
Internal::MobileAppWizardHarmattanOptionsPage *m_harmattanOptionsPage;
|
||||||
TargetSetupPage *m_targetsPage;
|
TargetSetupPage *m_targetsPage;
|
||||||
|
|
||||||
int m_genericOptionsPageId;
|
int m_genericOptionsPageId;
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="appIconLabel">
|
<widget class="QLabel" name="appIconLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Application icon (%%w%%x%%h%%):</string>
|
<string>Application icon (64x64):</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
#include "mobileappwizardpages.h"
|
#include "mobileappwizardpages.h"
|
||||||
#include "ui_mobileappwizardgenericoptionspage.h"
|
#include "ui_mobileappwizardgenericoptionspage.h"
|
||||||
#include "ui_mobileappwizardmaemooptionspage.h"
|
#include "ui_mobileappwizardmaemooptionspage.h"
|
||||||
|
#include "ui_mobileappwizardharmattanoptionspage.h"
|
||||||
#include "ui_mobileappwizardsymbianoptionspage.h"
|
#include "ui_mobileappwizardsymbianoptionspage.h"
|
||||||
#include <coreplugin/coreconstants.h>
|
#include <coreplugin/coreconstants.h>
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
@@ -67,6 +68,14 @@ class MobileAppWizardMaemoOptionsPagePrivate
|
|||||||
friend class MobileAppWizardMaemoOptionsPage;
|
friend class MobileAppWizardMaemoOptionsPage;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MobileAppWizardHarmattanOptionsPagePrivate
|
||||||
|
{
|
||||||
|
Ui::MobileAppWizardHarmattanOptionsPage ui;
|
||||||
|
QSize iconSize;
|
||||||
|
QString pngIcon;
|
||||||
|
friend class MobileAppWizardHarmattanOptionsPage;
|
||||||
|
};
|
||||||
|
|
||||||
MobileAppWizardGenericOptionsPage::MobileAppWizardGenericOptionsPage(QWidget *parent)
|
MobileAppWizardGenericOptionsPage::MobileAppWizardGenericOptionsPage(QWidget *parent)
|
||||||
: QWizardPage(parent)
|
: QWizardPage(parent)
|
||||||
, m_d(new MobileAppWizardGenericOptionsPagePrivate)
|
, m_d(new MobileAppWizardGenericOptionsPagePrivate)
|
||||||
@@ -167,18 +176,12 @@ void MobileAppWizardSymbianOptionsPage::openSvgIcon()
|
|||||||
setSvgIcon(svgIcon);
|
setSvgIcon(svgIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(QWidget *parent)
|
||||||
MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(int appIconSize,
|
|
||||||
QWidget *parent)
|
|
||||||
: QWizardPage(parent)
|
: QWizardPage(parent)
|
||||||
, m_d(new MobileAppWizardMaemoOptionsPagePrivate)
|
, m_d(new MobileAppWizardMaemoOptionsPagePrivate)
|
||||||
{
|
{
|
||||||
m_d->ui.setupUi(this);
|
m_d->ui.setupUi(this);
|
||||||
QString iconLabelText = m_d->ui.appIconLabel->text();
|
m_d->iconSize = QSize(64, 64);
|
||||||
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->ui.pngIconButton->setIconSize(m_d->iconSize);
|
m_d->ui.pngIconButton->setIconSize(m_d->iconSize);
|
||||||
connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
|
connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
|
||||||
}
|
}
|
||||||
@@ -193,42 +196,66 @@ QString MobileAppWizardMaemoOptionsPage::pngIcon() const
|
|||||||
return m_d->pngIcon;
|
return m_d->pngIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MobileAppWizardMaemoOptionsPage::setPngIcon(const QString &icon)
|
|
||||||
|
class PngIconScaler : public QObject
|
||||||
{
|
{
|
||||||
QString error;
|
Q_OBJECT
|
||||||
QPixmap iconPixmap(icon);
|
public:
|
||||||
if (iconPixmap.isNull()) {
|
PngIconScaler(const QSize &expectedSize, const QString &iconPath)
|
||||||
QMessageBox::critical(this, tr("Invalid Icon"),
|
: m_expectedSize(expectedSize)
|
||||||
tr("The file is not a valid image."));
|
, m_iconPath(iconPath)
|
||||||
return;
|
, m_pixmap(iconPath)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString actualIconPath;
|
bool hasRightSize() const { return m_expectedSize == m_pixmap.size(); }
|
||||||
if (iconPixmap.size() == m_d->iconSize) {
|
QPixmap pixmap() const { return m_pixmap; }
|
||||||
actualIconPath = icon;
|
|
||||||
} else {
|
bool scale(QString *newPath) {
|
||||||
const QMessageBox::StandardButton button = QMessageBox::warning(this,
|
const QMessageBox::StandardButton button
|
||||||
tr("Wrong Icon Size"), tr("The icon needs to be %1x%2 pixels big, "
|
= QMessageBox::warning(QApplication::activeWindow(),
|
||||||
"but is not. Do you want Creator to scale it?")
|
tr("Wrong Icon Size"),
|
||||||
.arg(m_d->iconSize.width()).arg(m_d->iconSize.height()),
|
tr("The icon needs to be %1x%2 pixels big, "
|
||||||
QMessageBox::Ok | QMessageBox::Cancel);
|
"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)
|
if (button != QMessageBox::Ok)
|
||||||
return;
|
return false;
|
||||||
iconPixmap = iconPixmap.scaled(m_d->iconSize);
|
|
||||||
|
m_pixmap = m_pixmap.scaled(m_expectedSize);
|
||||||
Utils::TempFileSaver saver;
|
Utils::TempFileSaver saver;
|
||||||
saver.setAutoRemove(false);
|
saver.setAutoRemove(false);
|
||||||
if (!saver.hasError())
|
if (!saver.hasError())
|
||||||
saver.setResult(iconPixmap.save(
|
saver.setResult(m_pixmap.save(
|
||||||
saver.file(), QFileInfo(icon).suffix().toAscii().constData()));
|
saver.file(), QFileInfo(m_iconPath).suffix().toAscii().constData()));
|
||||||
if (!saver.finalize()) {
|
if (!saver.finalize()) {
|
||||||
QMessageBox::critical(this, tr("File Error"),
|
QMessageBox::critical(QApplication::activeWindow(),
|
||||||
tr("Could not copy icon file: %1").arg(saver.errorString()));
|
tr("File Error"),
|
||||||
return;
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
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(iconPixmap);
|
m_d->ui.pngIconButton->setIcon(scaler.pixmap());
|
||||||
m_d->pngIcon = actualIconPath;
|
m_d->pngIcon = actualIconPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,5 +268,62 @@ void MobileAppWizardMaemoOptionsPage::openPngIcon()
|
|||||||
setPngIcon(iconPath);
|
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 Internal
|
||||||
} // namespace Qt4ProjectManager
|
} // namespace Qt4ProjectManager
|
||||||
|
|
||||||
|
#include "mobileappwizardpages.moc"
|
||||||
|
|||||||
@@ -82,8 +82,7 @@ class MobileAppWizardMaemoOptionsPage : public QWizardPage
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MobileAppWizardMaemoOptionsPage(int appIconSize,
|
explicit MobileAppWizardMaemoOptionsPage(QWidget *parent = 0);
|
||||||
QWidget *parent = 0);
|
|
||||||
virtual ~MobileAppWizardMaemoOptionsPage();
|
virtual ~MobileAppWizardMaemoOptionsPage();
|
||||||
|
|
||||||
QString pngIcon() const;
|
QString pngIcon() const;
|
||||||
@@ -96,6 +95,27 @@ private:
|
|||||||
class MobileAppWizardMaemoOptionsPagePrivate *m_d;
|
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 Internal
|
||||||
} // namespace Qt4ProjectManager
|
} // namespace Qt4ProjectManager
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ QtQuickApp::QtQuickApp()
|
|||||||
, m_mainQmlMode(ModeGenerate)
|
, m_mainQmlMode(ModeGenerate)
|
||||||
, m_componentSet(QtQuick10Components)
|
, m_componentSet(QtQuick10Components)
|
||||||
{
|
{
|
||||||
|
m_canSupportMeegoBooster = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QtQuickApp::~QtQuickApp()
|
QtQuickApp::~QtQuickApp()
|
||||||
@@ -226,16 +227,16 @@ QString QtQuickApp::mainWindowClassName() const
|
|||||||
bool QtQuickApp::adaptCurrentMainCppTemplateLine(QString &line) const
|
bool QtQuickApp::adaptCurrentMainCppTemplateLine(QString &line) const
|
||||||
{
|
{
|
||||||
const QLatin1Char quote('"');
|
const QLatin1Char quote('"');
|
||||||
bool adaptLine = true;
|
|
||||||
if (line.contains(QLatin1String("// MAINQML"))) {
|
if (line.contains(QLatin1String("// MAINQML"))) {
|
||||||
insertParameter(line, quote + path(MainQmlDeployed) + quote);
|
insertParameter(line, quote + path(MainQmlDeployed) + quote);
|
||||||
} else if (line.contains(QLatin1String("// ADDIMPORTPATH"))) {
|
} else if (line.contains(QLatin1String("// ADDIMPORTPATH"))) {
|
||||||
if (m_modules.isEmpty())
|
if (m_modules.isEmpty())
|
||||||
adaptLine = false;
|
return false;
|
||||||
else
|
else
|
||||||
insertParameter(line, quote + path(ModulesDir) + quote);
|
insertParameter(line, quote + path(ModulesDir) + quote);
|
||||||
}
|
}
|
||||||
return adaptLine;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
|
void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
|
||||||
@@ -263,6 +264,11 @@ void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
|
|||||||
if (componentSet() == Symbian10Components)
|
if (componentSet() == Symbian10Components)
|
||||||
nextLine.remove(0, 2); // remove comment
|
nextLine.remove(0, 2); // remove comment
|
||||||
proFile << nextLine << endl;
|
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 Internal
|
||||||
} // namespace Qt4ProjectManager
|
} // namespace Qt4ProjectManager
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ void MaemoPackageCreationWidget::initGui()
|
|||||||
{
|
{
|
||||||
m_ui->shortDescriptionLineEdit->setMaxLength(60);
|
m_ui->shortDescriptionLineEdit->setMaxLength(60);
|
||||||
updateVersionInfo();
|
updateVersionInfo();
|
||||||
versionInfoChanged();
|
|
||||||
const AbstractDebBasedQt4MaemoTarget * const debBasedMaemoTarget
|
const AbstractDebBasedQt4MaemoTarget * const debBasedMaemoTarget
|
||||||
= m_step->debBasedMaemoTarget();
|
= m_step->debBasedMaemoTarget();
|
||||||
if (debBasedMaemoTarget) {
|
if (debBasedMaemoTarget) {
|
||||||
@@ -142,9 +141,17 @@ void MaemoPackageCreationWidget::updateVersionInfo()
|
|||||||
}
|
}
|
||||||
const QStringList list = versionString.split(QLatin1Char('.'),
|
const QStringList list = versionString.split(QLatin1Char('.'),
|
||||||
QString::SkipEmptyParts);
|
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->major->setValue(list.value(0, QLatin1String("0")).toInt());
|
||||||
m_ui->minor->setValue(list.value(1, 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->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()
|
void MaemoPackageCreationWidget::handleControlFileUpdate()
|
||||||
@@ -249,8 +256,10 @@ void MaemoPackageCreationWidget::versionInfoChanged()
|
|||||||
const bool success = m_step->setVersionString(m_ui->major->text()
|
const bool success = m_step->setVersionString(m_ui->major->text()
|
||||||
+ QLatin1Char('.') + m_ui->minor->text() + QLatin1Char('.')
|
+ QLatin1Char('.') + m_ui->minor->text() + QLatin1Char('.')
|
||||||
+ m_ui->patch->text(), &error);
|
+ m_ui->patch->text(), &error);
|
||||||
if (!success)
|
if (!success) {
|
||||||
QMessageBox::critical(this, tr("Could Not Set Version Number"), error);
|
QMessageBox::critical(this, tr("Could Not Set Version Number"), error);
|
||||||
|
updateVersionInfo();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaemoPackageCreationWidget::editDebianFile()
|
void MaemoPackageCreationWidget::editDebianFile()
|
||||||
|
|||||||
@@ -57,6 +57,8 @@
|
|||||||
#include <QtGui/QApplication>
|
#include <QtGui/QApplication>
|
||||||
#include <QtGui/QMainWindow>
|
#include <QtGui/QMainWindow>
|
||||||
#include <QtCore/QBuffer>
|
#include <QtCore/QBuffer>
|
||||||
|
#include <QtCore/QDateTime>
|
||||||
|
#include <QtCore/QLocale>
|
||||||
#include <QtCore/QRegExp>
|
#include <QtCore/QRegExp>
|
||||||
#include <QtCore/QDir>
|
#include <QtCore/QDir>
|
||||||
#include <QtCore/QFile>
|
#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.
|
if (status == ActionSuccessful) // Don't do this when the packaging data already exists.
|
||||||
initPackagingSettingsFromOtherTarget();
|
initPackagingSettingsFromOtherTarget();
|
||||||
handleTargetAddedSpecial();
|
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;
|
m_isInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,27 +346,7 @@ AbstractQt4MaemoTarget::ActionStatus AbstractQt4MaemoTarget::createTemplates()
|
|||||||
return ActionFailed;
|
return ActionFailed;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ActionStatus actionStatus = createSpecialTemplates();
|
return 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AbstractQt4MaemoTarget::initPackagingSettingsFromOtherTarget()
|
bool AbstractQt4MaemoTarget::initPackagingSettingsFromOtherTarget()
|
||||||
@@ -416,8 +415,50 @@ bool AbstractDebBasedQt4MaemoTarget::setProjectVersionInternal(const QString &ve
|
|||||||
if (!reader.fetch(filePath, error))
|
if (!reader.fetch(filePath, error))
|
||||||
return false;
|
return false;
|
||||||
QString content = QString::fromUtf8(reader.data());
|
QString content = QString::fromUtf8(reader.data());
|
||||||
content.replace(QRegExp(QLatin1String("\\([a-zA-Z0-9_\\.]+\\)")),
|
if (content.contains(QLatin1Char('(') + version + QLatin1Char(')'))) {
|
||||||
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);
|
Core::FileChangeBlocker update(filePath);
|
||||||
Utils::FileSaver saver(filePath);
|
Utils::FileSaver saver(filePath);
|
||||||
saver.write(content.toUtf8());
|
saver.write(content.toUtf8());
|
||||||
@@ -664,10 +705,11 @@ void AbstractDebBasedQt4MaemoTarget::handleTargetAddedSpecial()
|
|||||||
// Such a file is created by the mobile wizards.
|
// Such a file is created by the mobile wizards.
|
||||||
const QString iconPath = project()->projectDirectory()
|
const QString iconPath = project()->projectDirectory()
|
||||||
+ QLatin1Char('/') + project()->displayName()
|
+ QLatin1Char('/') + project()->displayName()
|
||||||
+ QLatin1String(".png");
|
+ QLatin1String("64.png");
|
||||||
if (QFileInfo(iconPath).exists())
|
if (QFileInfo(iconPath).exists())
|
||||||
setPackageManagerIcon(iconPath);
|
setPackageManagerIcon(iconPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_filesWatcher->addDirectory(debianDirPath(), Utils::FileSystemWatcher::WatchAllChanges);
|
m_filesWatcher->addDirectory(debianDirPath(), Utils::FileSystemWatcher::WatchAllChanges);
|
||||||
m_controlFile = new WatchableFile(controlFilePath(), this);
|
m_controlFile = new WatchableFile(controlFilePath(), this);
|
||||||
connect(m_controlFile, SIGNAL(modified()), SIGNAL(controlChanged()));
|
connect(m_controlFile, SIGNAL(modified()), SIGNAL(controlChanged()));
|
||||||
@@ -875,7 +917,6 @@ bool AbstractDebBasedQt4MaemoTarget::setPackageManagerIcon(const QString &iconFi
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AbstractRpmBasedQt4MaemoTarget::AbstractRpmBasedQt4MaemoTarget(Qt4Project *parent,
|
AbstractRpmBasedQt4MaemoTarget::AbstractRpmBasedQt4MaemoTarget(Qt4Project *parent,
|
||||||
const QString &id) : AbstractQt4MaemoTarget(parent, id)
|
const QString &id) : AbstractQt4MaemoTarget(parent, id)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -37,10 +37,8 @@
|
|||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
#include <QtGui/QIcon>
|
|
||||||
#include <QtGui/QMessageBox>
|
|
||||||
|
|
||||||
#include <QtCore/QString>
|
#include <QtCore/QString>
|
||||||
|
#include <QtGui/QIcon>
|
||||||
|
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
@@ -137,7 +135,6 @@ void AbstractRemoteLinuxRunControl::handleError(const QString &errString)
|
|||||||
{
|
{
|
||||||
stop();
|
stop();
|
||||||
appendMessage(errString, Utils::ErrorMessageFormat);
|
appendMessage(errString, Utils::ErrorMessageFormat);
|
||||||
QMessageBox::critical(0, tr("Remote Execution Failure"), errString);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AbstractRemoteLinuxRunControl::setFinished()
|
void AbstractRemoteLinuxRunControl::setFinished()
|
||||||
|
|||||||