summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-05-20 04:51:29 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-05-20 04:51:29 (GMT)
commite484ee27f929aca738a269947237d834dab89b39 (patch)
tree216f95598411eb4c72141308973695d5e0d8b372 /tools
parentded29009f766a8373193d94bcb8309270f66a266 (diff)
parentd1f1f2c91f63609ca1ffad32efdd6590f9f0ce6a (diff)
downloadQt-e484ee27f929aca738a269947237d834dab89b39.zip
Qt-e484ee27f929aca738a269947237d834dab89b39.tar.gz
Qt-e484ee27f929aca738a269947237d834dab89b39.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'tools')
-rw-r--r--tools/assistant/tools/assistant/assistant.qchbin368640 -> 368640 bytes
-rw-r--r--tools/configure/configureapp.cpp13
-rw-r--r--tools/designer/src/lib/sdk/abstractformeditor.cpp1
-rw-r--r--tools/designer/src/lib/shared/formwindowbase.cpp10
-rw-r--r--tools/designer/src/lib/shared/formwindowbase_p.h3
-rw-r--r--tools/designer/src/lib/shared/shared.pri15
-rw-r--r--tools/designer/src/uitools/quiloader.cpp194
-rw-r--r--tools/linguist/lupdate/lupdate.h1
-rw-r--r--tools/linguist/lupdate/lupdate.pro4
-rw-r--r--tools/linguist/lupdate/main.cpp5
-rw-r--r--tools/linguist/lupdate/qml.cpp240
-rw-r--r--tools/macdeployqt/shared/shared.cpp4
-rw-r--r--tools/porting/src/portingrules.cpp2
-rw-r--r--tools/qmlviewer/main.cpp17
-rw-r--r--tools/qmlviewer/qmlviewer.cpp306
-rw-r--r--tools/qmlviewer/qmlviewer.h8
-rw-r--r--tools/qtestlib/chart/chart.pro2
-rw-r--r--tools/qvfb/PDAPhone.skin/pda_up.pngbin100615 -> 0 bytes
-rw-r--r--tools/qvfb/pda.qrc5
-rw-r--r--tools/qvfb/pda.skin14
-rw-r--r--tools/qvfb/pda_down.pngbin102655 -> 0 bytes
-rw-r--r--tools/qvfb/qvfb.pro13
-rw-r--r--tools/shared/deviceskin/deviceskin.pri12
-rw-r--r--tools/shared/deviceskin/skins/ClamshellPhone.qrc (renamed from tools/qvfb/ClamshellPhone.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone.skin (renamed from tools/qvfb/ClamshellPhone.skin/ClamshellPhone.skin)0
-rw-r--r--tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-closed.png (renamed from tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-closed.png)bin68200 -> 68200 bytes
-rw-r--r--tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png (renamed from tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png)bin113907 -> 113907 bytes
-rw-r--r--tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5.png (renamed from tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5.png)bin113450 -> 113450 bytes
-rw-r--r--tools/shared/deviceskin/skins/ClamshellPhone.skin/defaultbuttons.conf (renamed from tools/qvfb/S60-QVGA-Candybar.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreen-pressed.png (renamed from tools/qvfb/DualScreenPhone.skin/DualScreen-pressed.png)bin115575 -> 115575 bytes
-rw-r--r--tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreen.png (renamed from tools/qvfb/DualScreenPhone.skin/DualScreen.png)bin104711 -> 104711 bytes
-rw-r--r--tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreenPhone.skin (renamed from tools/qvfb/DualScreenPhone.skin/DualScreenPhone.skin)0
-rw-r--r--tools/shared/deviceskin/skins/DualScreenPhone.skin/defaultbuttons.conf (renamed from tools/qvfb/SmartPhone.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/PDAPhone.qrc (renamed from tools/qvfb/PDAPhone.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/PDAPhone.skin/PDAPhone.skin (renamed from tools/qvfb/PDAPhone.skin/PDAPhone.skin)0
-rw-r--r--tools/shared/deviceskin/skins/PDAPhone.skin/defaultbuttons.conf (renamed from tools/qvfb/PDAPhone.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/PDAPhone.skin/finger.png (renamed from tools/qvfb/PDAPhone.skin/finger.png)bin40343 -> 40343 bytes
-rw-r--r--tools/shared/deviceskin/skins/PDAPhone.skin/pda_down.png (renamed from tools/qvfb/PDAPhone.skin/pda_down.png)bin52037 -> 52037 bytes
-rw-r--r--tools/shared/deviceskin/skins/PDAPhone.skin/pda_up.png (renamed from tools/qvfb/pda_up.png)bin100615 -> 100615 bytes
-rw-r--r--tools/shared/deviceskin/skins/PortableMedia.qrc (renamed from tools/qvfb/PortableMedia.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/PortableMedia.skin/PortableMedia.skin (renamed from tools/qvfb/PortableMedia.skin/PortableMedia.skin)0
-rw-r--r--tools/shared/deviceskin/skins/PortableMedia.skin/defaultbuttons.conf (renamed from tools/qvfb/PortableMedia.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia-pressed.png (renamed from tools/qvfb/PortableMedia.skin/portablemedia-pressed.png)bin6183 -> 6183 bytes
-rw-r--r--tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia.png (renamed from tools/qvfb/PortableMedia.skin/portablemedia.png)bin6182 -> 6182 bytes
-rw-r--r--tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia.xcf (renamed from tools/qvfb/PortableMedia.skin/portablemedia.xcf)bin41592 -> 41592 bytes
-rw-r--r--tools/shared/deviceskin/skins/S60-QVGA-Candybar.qrc (renamed from tools/qvfb/S60-QVGA-Candybar.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png (renamed from tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png)bin161184 -> 161184 bytes
-rw-r--r--tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png (renamed from tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png)bin156789 -> 156789 bytes
-rw-r--r--tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin (renamed from tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin)0
-rw-r--r--tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/defaultbuttons.conf (renamed from tools/qvfb/ClamshellPhone.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/S60-nHD-Touchscreen.qrc (renamed from tools/qvfb/S60-nHD-Touchscreen.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png (renamed from tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png)bin241501 -> 241501 bytes
-rw-r--r--tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png (renamed from tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png)bin240615 -> 240615 bytes
-rw-r--r--tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin (renamed from tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin)0
-rw-r--r--tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/defaultbuttons.conf (renamed from tools/qvfb/Trolltech-Touchscreen.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone.qrc (renamed from tools/qvfb/SmartPhone.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone-pressed.png (renamed from tools/qvfb/SmartPhone.skin/SmartPhone-pressed.png)bin111515 -> 111515 bytes
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.png (renamed from tools/qvfb/SmartPhone.skin/SmartPhone.png)bin101750 -> 101750 bytes
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.skin (renamed from tools/qvfb/SmartPhone.skin/SmartPhone.skin)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone.skin/defaultbuttons.conf (renamed from tools/qvfb/DualScreenPhone.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone2.qrc (renamed from tools/qvfb/SmartPhone2.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2-pressed.png (renamed from tools/qvfb/SmartPhone2.skin/SmartPhone2-pressed.png)bin134749 -> 134749 bytes
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.png (renamed from tools/qvfb/SmartPhone2.skin/SmartPhone2.png)bin121915 -> 121915 bytes
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin (renamed from tools/qvfb/SmartPhone2.skin/SmartPhone2.skin)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf (renamed from tools/qvfb/SmartPhone2.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhoneWithButtons.qrc (renamed from tools/qvfb/SmartPhoneWithButtons.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png (renamed from tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png)bin103838 -> 103838 bytes
-rw-r--r--tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png (renamed from tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png)bin88470 -> 88470 bytes
-rw-r--r--tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin (renamed from tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin)0
-rw-r--r--tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf (renamed from tools/qvfb/SmartPhoneWithButtons.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/TouchscreenPhone.qrc (renamed from tools/qvfb/TouchscreenPhone.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone-pressed.png (renamed from tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone-pressed.png)bin88599 -> 88599 bytes
-rw-r--r--tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.png (renamed from tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.png)bin61809 -> 61809 bytes
-rw-r--r--tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin (renamed from tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.skin)0
-rw-r--r--tools/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf (renamed from tools/qvfb/TouchscreenPhone.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Keypad.qrc (renamed from tools/qvfb/Trolltech-Keypad.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad-closed.png (renamed from tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-closed.png)bin69447 -> 69447 bytes
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad-down.png (renamed from tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-down.png)bin242107 -> 242107 bytes
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad.png (renamed from tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.png)bin230638 -> 230638 bytes
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad.skin (renamed from tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.skin)0
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Keypad.skin/defaultbuttons.conf (renamed from tools/qvfb/Trolltech-Keypad.skin/defaultbuttons.conf)0
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Touchscreen.qrc (renamed from tools/qvfb/Trolltech-Touchscreen.qrc)0
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.png (renamed from tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.png)bin133117 -> 133117 bytes
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.png (renamed from tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.png)bin133180 -> 133180 bytes
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin (renamed from tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin)0
-rw-r--r--tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/defaultbuttons.conf (renamed from tools/qvfb/S60-nHD-Touchscreen.skin/defaultbuttons.conf)0
-rw-r--r--tools/tools.pro2
87 files changed, 644 insertions, 227 deletions
diff --git a/tools/assistant/tools/assistant/assistant.qch b/tools/assistant/tools/assistant/assistant.qch
index 64763f7..99687ed 100644
--- a/tools/assistant/tools/assistant/assistant.qch
+++ b/tools/assistant/tools/assistant/assistant.qch
Binary files differ
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 40bf59f..02bb744 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -351,6 +351,7 @@ Configure::Configure( int& argc, char** argv )
dictionary[ "QMAKESPEC" ] = tmp;
dictionary[ "INCREDIBUILD_XGE" ] = "auto";
+ dictionary[ "LTCG" ] = "no";
}
Configure::~Configure()
@@ -487,6 +488,12 @@ void Configure::parseCmdLine()
else if( configCmdLine.at(i) == "-commercial" ) {
dictionary[ "BUILDTYPE" ] = "commercial";
}
+ else if( configCmdLine.at(i) == "-ltcg" ) {
+ dictionary[ "LTCG" ] = "yes";
+ }
+ else if( configCmdLine.at(i) == "-no-ltcg" ) {
+ dictionary[ "LTCG" ] = "no";
+ }
#endif
else if( configCmdLine.at(i) == "-platform" ) {
@@ -1464,6 +1471,9 @@ bool Configure::displayHelp()
desc("SHARED", "yes", "-shared", "Create and use shared Qt libraries.");
desc("SHARED", "no", "-static", "Create and use static Qt libraries.\n");
+ desc("LTCG", "yes", "-ltcg", "Use Link Time Code Generation. (Release builds only)");
+ desc("LTCG", "no", "-no-ltcg", "Do not use Link Time Code Generation.\n");
+
desc("FAST", "no", "-no-fast", "Configure Qt normally by generating Makefiles for all project files.");
desc("FAST", "yes", "-fast", "Configure Qt quickly by generating Makefiles only for library and "
"subdirectory targets. All other Makefiles are created as wrappers "
@@ -2451,6 +2461,8 @@ void Configure::generateCachefile()
else
configStream << " static";
+ if( dictionary[ "LTCG" ] == "yes" )
+ configStream << " ltcg";
if( dictionary[ "STL" ] == "yes" )
configStream << " stl";
if ( dictionary[ "EXCEPTIONS" ] == "yes" )
@@ -2873,6 +2885,7 @@ void Configure::displayConfig()
cout << "Architecture................" << dictionary[ "ARCHITECTURE" ] << endl;
cout << "Maketool...................." << dictionary[ "MAKE" ] << endl;
cout << "Debug symbols..............." << (dictionary[ "BUILD" ] == "debug" ? "yes" : "no") << endl;
+ cout << "Link Time Code Generation..." << dictionary[ "LTCG" ] << endl;
cout << "Accessibility support......." << dictionary[ "ACCESSIBILITY" ] << endl;
cout << "STL support................." << dictionary[ "STL" ] << endl;
cout << "Exception support..........." << dictionary[ "EXCEPTIONS" ] << endl;
diff --git a/tools/designer/src/lib/sdk/abstractformeditor.cpp b/tools/designer/src/lib/sdk/abstractformeditor.cpp
index e6debd5..09d6976 100644
--- a/tools/designer/src/lib/sdk/abstractformeditor.cpp
+++ b/tools/designer/src/lib/sdk/abstractformeditor.cpp
@@ -72,7 +72,6 @@ static void initResources()
Q_INIT_RESOURCE(shared);
Q_INIT_RESOURCE(ClamshellPhone);
Q_INIT_RESOURCE(PDAPhone);
- Q_INIT_RESOURCE(pda);
Q_INIT_RESOURCE(PortableMedia);
Q_INIT_RESOURCE(S60_nHD_Touchscreen);
Q_INIT_RESOURCE(S60_QVGA_Candybar);
diff --git a/tools/designer/src/lib/shared/formwindowbase.cpp b/tools/designer/src/lib/shared/formwindowbase.cpp
index 5be907b..377ae43 100644
--- a/tools/designer/src/lib/shared/formwindowbase.cpp
+++ b/tools/designer/src/lib/shared/formwindowbase.cpp
@@ -51,7 +51,7 @@
#include "deviceprofile_p.h"
#include "qdesigner_utils_p.h"
-#include <abstractformbuilder.h>
+#include "qsimpleresource_p.h"
#include <QtDesigner/QDesignerFormEditorInterface>
#include <QtDesigner/QDesignerContainerExtension>
@@ -478,6 +478,14 @@ void FormWindowBase::setupDefaultAction(QDesignerFormWindowInterface *fw)
QObject::connect(fw, SIGNAL(activated(QWidget*)), fw, SLOT(triggerDefaultAction(QWidget*)));
}
+QString FormWindowBase::fileContents() const
+{
+ const bool oldValue = QSimpleResource::setWarningsEnabled(false);
+ const QString rc = contents();
+ QSimpleResource::setWarningsEnabled(oldValue);
+ return rc;
+}
+
} // namespace qdesigner_internal
QT_END_NAMESPACE
diff --git a/tools/designer/src/lib/shared/formwindowbase_p.h b/tools/designer/src/lib/shared/formwindowbase_p.h
index 68e977e..0891f6e 100644
--- a/tools/designer/src/lib/shared/formwindowbase_p.h
+++ b/tools/designer/src/lib/shared/formwindowbase_p.h
@@ -90,6 +90,9 @@ public:
QVariantMap formData();
void setFormData(const QVariantMap &vm);
+ // Return contents without warnings. Should be 'contents(bool quiet)'
+ QString fileContents() const;
+
// Return the widget containing the form. This is used to
// apply embedded design settings to that are inherited (for example font).
// These are meant to be applied to the form only and not to the other editors
diff --git a/tools/designer/src/lib/shared/shared.pri b/tools/designer/src/lib/shared/shared.pri
index 0424a41..8ed051a 100644
--- a/tools/designer/src/lib/shared/shared.pri
+++ b/tools/designer/src/lib/shared/shared.pri
@@ -186,17 +186,4 @@ SOURCES += \
$$PWD/filterwidget.cpp \
$$PWD/plugindialog.cpp
-RESOURCES += $$PWD/shared.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/ClamshellPhone.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/PDAPhone.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/pda.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/PortableMedia.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/qvfb.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/S60-nHD-Touchscreen.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/S60-QVGA-Candybar.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/SmartPhone2.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/SmartPhone.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/SmartPhoneWithButtons.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/TouchscreenPhone.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/Trolltech-Keypad.qrc \
-$$QT_SOURCE_TREE/tools/qvfb/Trolltech-Touchscreen.qrc
+RESOURCES += $$PWD/shared.qrc
diff --git a/tools/designer/src/uitools/quiloader.cpp b/tools/designer/src/uitools/quiloader.cpp
index 67bd29c..2a66095 100644
--- a/tools/designer/src/uitools/quiloader.cpp
+++ b/tools/designer/src/uitools/quiloader.cpp
@@ -572,53 +572,52 @@ void QUiLoaderPrivate::setupWidgetMap() const
\class QUiLoader
\inmodule QtUiTools
- \brief The QUiLoader class allows standalone applications dynamically
- create user interfaces at run-time using the information stored in
- .ui files or specified plugin paths.
+ \brief The QUiLoader class enables standalone applications to
+ dynamically create user interfaces at run-time using the
+ information stored in .ui files or specified in plugin paths.
- In addition, you can customize of creating an user interface by
+ In addition, you can customize or create your own user interface by
deriving your own loader class.
- If you have a custom component or an application that embeds Qt
- Designer, you can also use the QFormBuilder class provided by the
- QtDesigner module to create user interfaces from .ui files.
+ If you have a custom component or an application that embeds \QD, you can
+ also use the QFormBuilder class provided by the QtDesigner module to create
+ user interfaces from \c{.ui} files.
- The QUiLoader class provides a collection of functions that allows
- you to create widgets based on the information stored in \c .ui
- files (created with Qt Designer) or available in the specified
- plugin paths. The specified plugin paths can be retrieved using
- the pluginPaths() function. You can retrieve the contents of an \c
- .ui file using the load() function. For example:
+ The QUiLoader class provides a collection of functions allowing you to
+ create widgets based on the information stored in \c .ui files (created
+ with \QD) or available in the specified plugin paths. The specified plugin
+ paths can be retrieved using the pluginPaths() function. Similarly, the
+ contents of a \c{.ui} file can be retrieved using the load() function. For
+ example:
\snippet doc/src/snippets/quiloader/mywidget.cpp 0
- By including the user interface in the form's resources (\c myform.qrc),
- we ensure that it will be present at run-time:
+ By including the user interface in the form's resources (\c myform.qrc), we
+ ensure that it will be present at run-time:
\quotefile doc/src/snippets/quiloader/mywidget.qrc
- The availableWidgets() function returns a QStringList with the
- class names of the widgets available in the specified plugin
- paths. You can create any of these widgets using the
- createWidget() function. For example:
+ The availableWidgets() function returns a QStringList with the class names
+ of the widgets available in the specified plugin paths. To create these
+ widgets, simply use the createWidget() function. For example:
\snippet doc/src/snippets/quiloader/main.cpp 0
- You can make a custom widget available to the loader using the
- addPluginPath() function, and you can remove all the available widgets
- by calling the clearPluginPaths() function.
+ To make a custom widget available to the loader, you can use the
+ addPluginPath() function; to remove all available widgets, you can call
+ the clearPluginPaths() function.
- The createAction(), createActionGroup(), createLayout() and
- createWidget() functions are used internally by the QUiLoader class
- whenever it has to create an action, action group, layout or
- widget respectively. For that reason, you can subclass the QUiLoader
- class and reimplement these functions to intervene the process of
- constructing an user interface. For example, you might want to
- create a list of the actions created when loading a form or
- creating a custom widget.
+ The createAction(), createActionGroup(), createLayout(), and createWidget()
+ functions are used internally by the QUiLoader class whenever it has to
+ create an action, action group, layout, or widget respectively. For that
+ reason, you can subclass the QUiLoader class and reimplement these
+ functions to intervene the process of constructing a user interface. For
+ example, you might want to have a list of the actions created when loading
+ a form or creating a custom widget. However, in your reimplementation, you
+ must call QUiLoader's original implementation of these functions first.
- For a complete example using the QUiLoader class, see the \l
- {designer/calculatorbuilder}{Calculator Builder} example.
+ For a complete example using the QUiLoader class, see the
+ \l{Calculator Builder Example}.
\sa QtUiTools, QFormBuilder
*/
@@ -653,8 +652,8 @@ QUiLoader::~QUiLoader()
}
/*!
- Loads a form from the given \a device and creates a new widget with the given
- \a parentWidget to hold its contents.
+ Loads a form from the given \a device and creates a new widget with the
+ given \a parentWidget to hold its contents.
\sa createWidget()
*/
@@ -668,8 +667,8 @@ QWidget *QUiLoader::load(QIODevice *device, QWidget *parentWidget)
}
/*!
- Returns a list naming the paths the loader searches when locating
- custom widget plugins.
+ Returns a list naming the paths in which the loader will search when
+ locating custom widget plugins.
\sa addPluginPath(), clearPluginPaths()
*/
@@ -680,7 +679,7 @@ QStringList QUiLoader::pluginPaths() const
}
/*!
- Clears the list of paths the loader searches when locating
+ Clears the list of paths in which the loader will search when locating
plugins.
\sa addPluginPath(), pluginPaths()
@@ -692,7 +691,7 @@ void QUiLoader::clearPluginPaths()
}
/*!
- Adds the given \a path to the list of paths the loader searches
+ Adds the given \a path to the list of paths in which the loader will search
when locating plugins.
\sa pluginPaths(), clearPluginPaths()
@@ -704,17 +703,17 @@ void QUiLoader::addPluginPath(const QString &path)
}
/*!
- Creates a new widget with the given \a parent and \a name
- using the class specified by \a className. You can use this
- function to create any of the widgets returned by the
- availableWidgets() function.
+ Creates a new widget with the given \a parent and \a name using the class
+ specified by \a className. You can use this function to create any of the
+ widgets returned by the availableWidgets() function.
- The function is also used internally by the QUiLoader class whenever
- it has to create a widget. For that reason, you can subclass the
- QUiLoader class and reimplement this function to intervene in the
- process of constructing a user interface or widget.
+ The function is also used internally by the QUiLoader class whenever it
+ creates a widget. Hence, you can subclass QUiLoader and reimplement this
+ function to intervene process of constructing a user interface or widget.
+ However, in your implementation, ensure that you call QUiLoader's version
+ first.
- \sa availableWidgets(), load()
+ \sa availableWidgets(), load()
*/
QWidget *QUiLoader::createWidget(const QString &className, QWidget *parent, const QString &name)
{
@@ -723,13 +722,14 @@ QWidget *QUiLoader::createWidget(const QString &className, QWidget *parent, cons
}
/*!
- Creates a new layout with the given \a parent and \a name
- using the class specified by \a className.
+ Creates a new layout with the given \a parent and \a name using the class
+ specified by \a className.
- The function is used internally by the QUiLoader class whenever it
- has to create a layout. For that reason, you can subclass the
- QUiLoader class and reimplement this function to intervene the
- process of constructing an user interface or widget.
+ The function is also used internally by the QUiLoader class whenever it
+ creates a widget. Hence, you can subclass QUiLoader and reimplement this
+ function to intervene process of constructing a user interface or widget.
+ However, in your implementation, ensure that you call QUiLoader's version
+ first.
\sa createWidget(), load()
*/
@@ -742,10 +742,11 @@ QLayout *QUiLoader::createLayout(const QString &className, QObject *parent, cons
/*!
Creates a new action group with the given \a parent and \a name.
- The function is used internally by the QUiLoader class whenever it
- has to create an action group. For that reason, you can subclass
- the QUiLoader class and reimplement this function to intervene the
- process of constructing an user interface or widget.
+ The function is also used internally by the QUiLoader class whenever it
+ creates a widget. Hence, you can subclass QUiLoader and reimplement this
+ function to intervene process of constructing a user interface or widget.
+ However, in your implementation, ensure that you call QUiLoader's version
+ first.
\sa createAction(), createWidget(), load()
*/
@@ -758,10 +759,11 @@ QActionGroup *QUiLoader::createActionGroup(QObject *parent, const QString &name)
/*!
Creates a new action with the given \a parent and \a name.
- The function is used internally by the QUiLoader class whenever it
- has to create an action. For that reason, you can subclass the
- QUiLoader class and reimplement this function to intervene the
- process of constructing an user interface or widget.
+ The function is also used internally by the QUiLoader class whenever it
+ creates a widget. Hence, you can subclass QUiLoader and reimplement this
+ function to intervene process of constructing a user interface or widget.
+ However, in your implementation, ensure that you call QUiLoader's version
+ first.
\sa createActionGroup(), createWidget(), load()
*/
@@ -772,9 +774,9 @@ QAction *QUiLoader::createAction(QObject *parent, const QString &name)
}
/*!
- Returns a list naming the available widgets that can be built
- using the createWidget() function, i.e all the widgets specified
- within the given plugin paths.
+ Returns a list naming all available widgets that can be built using the
+ createWidget() function, i.e all the widgets specified within the given
+ plugin paths.
\sa pluginPaths(), createWidget()
@@ -795,11 +797,11 @@ QStringList QUiLoader::availableWidgets() const
/*!
- Returns a list naming the available layouts that can be built
- using the createLayout() function
+ \since 4.5
+ Returns a list naming all available layouts that can be built using the
+ createLayout() function
\sa createLayout()
- \since 4.5
*/
QStringList QUiLoader::availableLayouts() const
@@ -816,9 +818,9 @@ QStringList QUiLoader::availableLayouts() const
}
/*!
- Sets the working directory of the loader to \a dir. The loader
- looks for other resources, such as icons and resource files,
- in paths relative to this directory.
+ Sets the working directory of the loader to \a dir. The loader will look
+ for other resources, such as icons and resource files, in paths relative to
+ this directory.
\sa workingDirectory()
*/
@@ -842,9 +844,13 @@ QDir QUiLoader::workingDirectory() const
}
/*!
- Sets whether the execution of scripts is enabled to \a enabled.
- \since 4.3
\internal
+ \since 4.3
+
+ If \a enabled is true, the loader will be able to execute scripts.
+ Otherwise, execution of scripts will be disabled.
+
+ \sa isScriptingEnabled()
*/
void QUiLoader::setScriptingEnabled(bool enabled)
@@ -854,10 +860,12 @@ void QUiLoader::setScriptingEnabled(bool enabled)
}
/*!
- Returns whether the execution of scripts is enabled.
- \sa setScriptingEnabled()
- \since 4.3
- \internal
+ \internal
+ \since 4.3
+
+ Returns true if execution of scripts is enabled; returns false otherwise.
+
+ \sa setScriptingEnabled()
*/
bool QUiLoader::isScriptingEnabled() const
@@ -867,11 +875,13 @@ bool QUiLoader::isScriptingEnabled() const
}
/*!
- Sets whether user interfaces loaded by this loader automatically
- retranslate themselves upon receiving a language change event or not,
- depending on \a enabled.
-
\since 4.5
+
+ If \a enabled is true, user interfaces loaded by this loader will
+ automatically retranslate themselves upon receiving a language change
+ event. Otherwise, the user interfaces will not be retranslated.
+
+ \sa isLanguageChangeEnabled()
*/
void QUiLoader::setLanguageChangeEnabled(bool enabled)
@@ -881,9 +891,12 @@ void QUiLoader::setLanguageChangeEnabled(bool enabled)
}
/*!
- Returns whether dynamic retranslation on language change is enabled.
- \sa setLanguageChangeEnabled()
- \since 4.5
+ \since 4.5
+
+ Returns true if dynamic retranslation on language change is enabled;
+ returns false otherwise.
+
+ \sa setLanguageChangeEnabled()
*/
bool QUiLoader::isLanguageChangeEnabled() const
@@ -894,11 +907,14 @@ bool QUiLoader::isLanguageChangeEnabled() const
/*!
\internal
+ \since 4.5
- Sets whether user interfaces loaded by this loader are translated
- at all. Note that this is orthogonal to languageChangeEnabled.
+ If \a enabled is true, user interfaces loaded by this loader will be
+ translated. Otherwise, the user interfaces will not be translated.
- \since 4.5
+ \note This is orthogonal to languageChangeEnabled.
+
+ \sa isLanguageChangeEnabled(), setLanguageChangeEnabled()
*/
void QUiLoader::setTranslationEnabled(bool enabled)
@@ -909,11 +925,11 @@ void QUiLoader::setTranslationEnabled(bool enabled)
/*!
\internal
+ \since 4.5
- Returns whether translation is enabled.
- \sa setTranslationEnabled()
+ Returns true if translation is enabled; returns false otherwise.
- \since 4.5
+ \sa setTranslationEnabled()
*/
bool QUiLoader::isTranslationEnabled() const
diff --git a/tools/linguist/lupdate/lupdate.h b/tools/linguist/lupdate/lupdate.h
index 2f98643..6db544f 100644
--- a/tools/linguist/lupdate/lupdate.h
+++ b/tools/linguist/lupdate/lupdate.h
@@ -79,6 +79,7 @@ void loadCPP(Translator &translator, const QStringList &filenames, ConversionDat
bool loadJava(Translator &translator, const QString &filename, ConversionData &cd);
bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd);
bool loadUI(Translator &translator, const QString &filename, ConversionData &cd);
+bool loadQml(Translator &translator, const QString &filename, ConversionData &cd);
QT_END_NAMESPACE
diff --git a/tools/linguist/lupdate/lupdate.pro b/tools/linguist/lupdate/lupdate.pro
index ccc2d47..283d69f 100644
--- a/tools/linguist/lupdate/lupdate.pro
+++ b/tools/linguist/lupdate/lupdate.pro
@@ -15,6 +15,9 @@ build_all:!build_pass {
include(../shared/formats.pri)
include(../shared/proparser.pri)
+include($$QT_SOURCE_TREE/src/declarative/qml/parser/parser.pri)
+INCLUDEPATH += $$QT_SOURCE_TREE/src/declarative/qml
+
SOURCES += \
main.cpp \
merge.cpp \
@@ -23,6 +26,7 @@ SOURCES += \
cpp.cpp \
java.cpp \
qscript.cpp \
+ qml.cpp \
ui.cpp
HEADERS += \
diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp
index 8a70b55..f47844f 100644
--- a/tools/linguist/lupdate/main.cpp
+++ b/tools/linguist/lupdate/main.cpp
@@ -428,7 +428,8 @@ int main(int argc, char **argv)
if (!fn.endsWith(QLatin1String(".java"))
&& !fn.endsWith(QLatin1String(".ui"))
&& !fn.endsWith(QLatin1String(".js"))
- && !fn.endsWith(QLatin1String(".qs"))) {
+ && !fn.endsWith(QLatin1String(".qs"))
+ && !fn.endsWith(QLatin1String(".qml"))) {
int offset = 0;
int depth = 0;
do {
@@ -518,6 +519,8 @@ int main(int argc, char **argv)
else if (it->endsWith(QLatin1String(".js"), Qt::CaseInsensitive)
|| it->endsWith(QLatin1String(".qs"), Qt::CaseInsensitive))
loadQScript(fetchedTor, *it, cd);
+ else if (it->endsWith(QLatin1String(".qml"), Qt::CaseInsensitive))
+ loadQml(fetchedTor, *it, cd);
else
sourceFilesCpp << *it;
}
diff --git a/tools/linguist/lupdate/qml.cpp b/tools/linguist/lupdate/qml.cpp
new file mode 100644
index 0000000..78a9afd
--- /dev/null
+++ b/tools/linguist/lupdate/qml.cpp
@@ -0,0 +1,240 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt Linguist of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "lupdate.h"
+
+#include <translator.h>
+
+#include <QtCore/QDebug>
+#include <QtCore/QFile>
+#include <QtCore/QString>
+
+QT_BEGIN_NAMESPACE
+
+#include "parser/javascriptengine_p.h"
+#include "parser/javascriptparser_p.h"
+#include "parser/javascriptlexer_p.h"
+#include "parser/javascriptnodepool_p.h"
+#include "parser/javascriptastvisitor_p.h"
+#include "parser/javascriptast_p.h"
+
+#include <QCoreApplication>
+#include <QFile>
+#include <QFileInfo>
+#include <QtDebug>
+#include <QStringList>
+
+#include <iostream>
+#include <cstdlib>
+
+using namespace JavaScript;
+
+class FindTrCalls: protected AST::Visitor
+{
+public:
+ void operator()(Translator *translator, const QString &fileName, AST::Node *node)
+ {
+ m_translator = translator;
+ m_fileName = fileName;
+ m_component = QFileInfo(fileName).baseName(); //matches qsTr usage in QScriptEngine
+ accept(node);
+ }
+
+protected:
+ using AST::Visitor::visit;
+ using AST::Visitor::endVisit;
+
+ void accept(AST::Node *node)
+ { AST::Node::acceptChild(node, this); }
+
+ virtual void endVisit(AST::CallExpression *node)
+ {
+ if (AST::IdentifierExpression *idExpr = AST::cast<AST::IdentifierExpression *>(node->base)) {
+ if (idExpr->name->asString() == QLatin1String("qsTr") ||
+ idExpr->name->asString() == QLatin1String("QT_TR_NOOP")) {
+ if (node->arguments && AST::cast<AST::StringLiteral *>(node->arguments->expression)) {
+ AST::StringLiteral *literal = AST::cast<AST::StringLiteral *>(node->arguments->expression);
+ const QString source = literal->value->asString();
+
+ QString comment;
+ bool plural = false;
+ AST::ArgumentList *commentNode = node->arguments->next;
+ if (commentNode) {
+ literal = AST::cast<AST::StringLiteral *>(commentNode->expression);
+ comment = literal->value->asString();
+
+ AST::ArgumentList *nNode = commentNode->next;
+ if (nNode) {
+ AST::NumericLiteral *numLiteral = AST::cast<AST::NumericLiteral *>(nNode->expression);
+ if (numLiteral) {
+ plural = true;
+ }
+ }
+ }
+
+ TranslatorMessage msg(m_component, source,
+ comment, QString(), m_fileName,
+ node->firstSourceLocation().startLine, QStringList(),
+ TranslatorMessage::Unfinished, plural);
+ m_translator->extend(msg);
+ }
+ } else if (idExpr->name->asString() == QLatin1String("qsTranslate") ||
+ idExpr->name->asString() == QLatin1String("QT_TRANSLATE_NOOP")) {
+ if (node->arguments && AST::cast<AST::StringLiteral *>(node->arguments->expression)) {
+ AST::StringLiteral *literal = AST::cast<AST::StringLiteral *>(node->arguments->expression);
+ const QString context = literal->value->asString();
+
+ QString source;
+ QString comment;
+ bool plural = false;
+ AST::ArgumentList *sourceNode = node->arguments->next;
+ if (sourceNode) {
+ literal = AST::cast<AST::StringLiteral *>(sourceNode->expression);
+ source = literal->value->asString();
+ AST::ArgumentList *commentNode = sourceNode->next;
+ if (commentNode) {
+ literal = AST::cast<AST::StringLiteral *>(commentNode->expression);
+ comment = literal->value->asString();
+
+ AST::ArgumentList *nNode = commentNode->next;
+ if (nNode) {
+ AST::NumericLiteral *numLiteral = AST::cast<AST::NumericLiteral *>(nNode->expression);
+ if (numLiteral) {
+ plural = true;
+ }
+ }
+ }
+ }
+
+ TranslatorMessage msg(context, source,
+ comment, QString(), m_fileName,
+ node->firstSourceLocation().startLine, QStringList(),
+ TranslatorMessage::Unfinished, plural);
+ m_translator->extend(msg);
+ }
+
+ }
+ }
+ }
+
+private:
+ Translator *m_translator;
+ QString m_fileName;
+ QString m_component;
+};
+
+QString createErrorString(const QString &filename, const QString &code, Parser &parser)
+{
+ // print out error
+ QStringList lines = code.split(QLatin1Char('\n'));
+ lines.append(QLatin1String("\n")); // sentinel.
+ QString errorString;
+
+ foreach (const DiagnosticMessage &m, parser.diagnosticMessages()) {
+
+ if (m.isWarning())
+ continue;
+
+ QString error = filename + QLatin1Char(':') + QString::number(m.loc.startLine)
+ + QLatin1Char(':') + QString::number(m.loc.startColumn) + QLatin1String(": error: ")
+ + m.message + QLatin1Char('\n');
+
+ int line = 0;
+ if (m.loc.startLine > 0)
+ line = m.loc.startLine - 1;
+
+ const QString textLine = lines.at(line);
+
+ error += textLine + QLatin1Char('\n');
+
+ int column = m.loc.startColumn - 1;
+ if (column < 0)
+ column = 0;
+
+ column = qMin(column, textLine.length());
+
+ for (int i = 0; i < column; ++i) {
+ const QChar ch = textLine.at(i);
+ if (ch.isSpace())
+ error += ch.unicode();
+ else
+ error += QLatin1Char(' ');
+ }
+ error += QLatin1String("^\n");
+ errorString += error;
+ }
+ return errorString;
+}
+
+bool loadQml(Translator &translator, const QString &filename, ConversionData &cd)
+{
+ cd.m_sourceFileName = filename;
+ QFile file(filename);
+ if (!file.open(QIODevice::ReadOnly)) {
+ cd.appendError(QString::fromLatin1("Cannot open %1: %2")
+ .arg(filename, file.errorString()));
+ return false;
+ }
+
+ const QString code = QTextStream(&file).readAll();
+
+ Engine driver;
+ Parser parser(&driver);
+
+ NodePool nodePool(filename, &driver);
+ driver.setNodePool(&nodePool);
+
+ Lexer lexer(&driver);
+ lexer.setCode(code, /*line = */ 1);
+ driver.setLexer(&lexer);
+
+ if (parser.parse()) {
+ FindTrCalls trCalls;
+ trCalls(&translator, filename, parser.ast());
+ } else {
+ QString error = createErrorString(filename, code, parser);
+ cd.appendError(error);
+ return false;
+ }
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/tools/macdeployqt/shared/shared.cpp b/tools/macdeployqt/shared/shared.cpp
index a10e668..3b9ba73 100644
--- a/tools/macdeployqt/shared/shared.cpp
+++ b/tools/macdeployqt/shared/shared.cpp
@@ -357,7 +357,7 @@ DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks,
copiedFrameworks.append(framework.frameworkName);
// Get the qt path from one of the Qt frameworks;
- if (deploymenInfo.qtPath == QString() && framework.frameworkName.contains("Qt")
+ if (deploymenInfo.qtPath.isNull() && framework.frameworkName.contains("Qt")
&& framework.frameworkDirectory.contains("/lib"))
{
deploymenInfo.qtPath = framework.frameworkDirectory;
@@ -375,7 +375,7 @@ DeploymentInfo deployQtFrameworks(QList<FrameworkInfo> frameworks,
// Copy farmework to app bundle.
const QString deployedBinaryPath = copyFramework(framework, bundlePath);
// Skip the rest if already was deployed.
- if (deployedBinaryPath == QString())
+ if (deployedBinaryPath.isNull())
continue;
runStrip(deployedBinaryPath);
diff --git a/tools/porting/src/portingrules.cpp b/tools/porting/src/portingrules.cpp
index 4931064..cd29403 100644
--- a/tools/porting/src/portingrules.cpp
+++ b/tools/porting/src/portingrules.cpp
@@ -189,7 +189,7 @@ void PortingRules::parseXml(QString fileName)
QString includeFile = xml[QLatin1String("Rules")][QLatin1String("Include")].text();
- if(includeFile != QString()) {
+ if(!includeFile.isNull()) {
QString resolvedIncludeFile = resolveFileName(fileName, includeFile);
if (!resolvedIncludeFile.isEmpty())
parseXml(resolvedIncludeFile);
diff --git a/tools/qmlviewer/main.cpp b/tools/qmlviewer/main.cpp
index f27606e..f59918f 100644
--- a/tools/qmlviewer/main.cpp
+++ b/tools/qmlviewer/main.cpp
@@ -17,6 +17,8 @@
#include <QDir>
#include "qfxtestengine.h"
#include <QApplication>
+#include <QTranslator>
+#include <QDebug>
void usage()
{
@@ -38,6 +40,7 @@ void usage()
qWarning(" -cache ................................... disk cache remote content");
qWarning(" -recordtest <directory> .................. record an autotest");
qWarning(" -runtest <directory> ..................... run a previously recorded test");
+ qWarning(" -translation <translationfile> ........... set the language to run in");
qWarning(" ");
qWarning(" Press F1 for interactive help");
exit(1);
@@ -83,6 +86,7 @@ int main(int argc, char ** argv)
bool cache = false;
QFxTestEngine::TestMode testMode = QFxTestEngine::NoTest;
QString testDir;
+ QString translationFile;
for (int i = 1; i < newargc; ++i) {
QString arg = newargv[i];
@@ -123,6 +127,11 @@ int main(int argc, char ** argv)
} else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) {
fprintf(stderr, "Qt Declarative UI Viewer version %s\n", QT_VERSION_STR);
return 0;
+ } else if (arg == "-translation") {
+ if(i + 1 >= newargc)
+ usage();
+ translationFile = newargv[i + 1];
+ ++i;
} else if (arg[0] != '-') {
fileName = arg;
} else if (1 || arg == "-help") {
@@ -130,6 +139,12 @@ int main(int argc, char ** argv)
}
}
+ QTranslator qmlTranslator;
+ if (!translationFile.isEmpty()) {
+ qmlTranslator.load(translationFile);
+ app.installTranslator(&qmlTranslator);
+ }
+
QmlViewer viewer(testMode, testDir, 0, frameless ? Qt::FramelessWindowHint : Qt::Widget);
viewer.setCacheEnabled(cache);
viewer.setRecordFile(recordfile);
@@ -137,7 +152,7 @@ int main(int argc, char ** argv)
viewer.setRecordPeriod(period);
if (autorecord_to)
viewer.setAutoRecord(autorecord_from,autorecord_to);
- if (QDir(skin).exists())
+ if (!skin.isEmpty() && QDir(skin).exists())
viewer.setSkin(skin);
if (devkeys)
viewer.setDeviceKeys(true);
diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp
index 2eddb6a..97db22e 100644
--- a/tools/qmlviewer/qmlviewer.cpp
+++ b/tools/qmlviewer/qmlviewer.cpp
@@ -24,6 +24,7 @@
#include <QNetworkDiskCache>
#include <QNetworkAccessManager>
+#include <QSignalMapper>
#include <QmlComponent>
#include <QWidget>
#include <QApplication>
@@ -39,8 +40,91 @@
#include <QFileDialog>
#include <QTimer>
+class PreviewDeviceSkin : public DeviceSkin
+{
+ Q_OBJECT
+public:
+ explicit PreviewDeviceSkin(const DeviceSkinParameters &parameters, QWidget *parent);
+
+ void setPreview(QWidget *formWidget);
+ void setPreviewAndScale(QWidget *formWidget);
+
+ void setScreenSize(const QSize& size)
+ {
+ QMatrix fit;
+ fit = fit.scale(qreal(size.width())/m_screenSize.width(),
+ qreal(size.height())/m_screenSize.height());
+ setTransform(fit);
+ QApplication::syncX();
+ }
+
+ QSize standardScreenSize() const { return m_screenSize; }
+
+ QMenu* menu;
+
+private slots:
+ void slotSkinKeyPressEvent(int code, const QString& text, bool autorep);
+ void slotSkinKeyReleaseEvent(int code, const QString& text, bool autorep);
+ void slotPopupMenu();
+
+private:
+ const QSize m_screenSize;
+};
+
+
+PreviewDeviceSkin::PreviewDeviceSkin(const DeviceSkinParameters &parameters, QWidget *parent) :
+ DeviceSkin(parameters, parent),
+ m_screenSize(parameters.screenSize())
+{
+ menu = new QMenu(this);
+ connect(this, SIGNAL(skinKeyPressEvent(int,QString,bool)),
+ this, SLOT(slotSkinKeyPressEvent(int,QString,bool)));
+ connect(this, SIGNAL(skinKeyReleaseEvent(int,QString,bool)),
+ this, SLOT(slotSkinKeyReleaseEvent(int,QString,bool)));
+ connect(this, SIGNAL(popupMenu()), this, SLOT(slotPopupMenu()));
+}
+
+void PreviewDeviceSkin::setPreview(QWidget *formWidget)
+{
+ formWidget->setFixedSize(m_screenSize);
+ formWidget->setParent(this, Qt::SubWindow);
+ formWidget->setAutoFillBackground(true);
+ setView(formWidget);
+}
+
+void PreviewDeviceSkin::setPreviewAndScale(QWidget *formWidget)
+{
+ setScreenSize(formWidget->sizeHint());
+ formWidget->setParent(this, Qt::SubWindow);
+ formWidget->setAutoFillBackground(true);
+ setView(formWidget);
+}
+
+void PreviewDeviceSkin::slotSkinKeyPressEvent(int code, const QString& text, bool autorep)
+{
+ if (QWidget *focusWidget = QApplication::focusWidget()) {
+ QKeyEvent e(QEvent::KeyPress,code,0,text,autorep);
+ QApplication::sendEvent(focusWidget, &e);
+ }
+
+}
+
+void PreviewDeviceSkin::slotSkinKeyReleaseEvent(int code, const QString& text, bool autorep)
+{
+ if (QWidget *focusWidget = QApplication::focusWidget()) {
+ QKeyEvent e(QEvent::KeyRelease,code,0,text,autorep);
+ QApplication::sendEvent(focusWidget, &e);
+ }
+}
+
+void PreviewDeviceSkin::slotPopupMenu()
+{
+ menu->exec(QCursor::pos());
+}
+
+
QmlViewer::QmlViewer(QFxTestEngine::TestMode testMode, const QString &testDir, QWidget *parent, Qt::WindowFlags flags)
- : QMainWindow(parent, flags), frame_stream(0)
+ : QMainWindow(parent, flags), frame_stream(0), scaleSkin(true)
{
testEngine = 0;
devicemode = false;
@@ -55,6 +139,8 @@ QmlViewer::QmlViewer(QFxTestEngine::TestMode testMode, const QString &testDir, Q
createMenu(menuBar(),0);
canvas = new QFxView(this);
+ canvas->setContentResizable(!skin || !scaleSkin);
+
if(testMode != QFxTestEngine::NoTest)
testEngine = new QFxTestEngine(testMode, testDir, canvas, this);
@@ -77,14 +163,16 @@ QSize QmlViewer::sizeHint() const
void QmlViewer::createMenu(QMenuBar *menu, QMenu *flatmenu)
{
+ QObject *parent = flatmenu ? (QObject*)flatmenu : (QObject*)menu;
+
QMenu *fileMenu = flatmenu ? flatmenu : menu->addMenu(tr("&File"));
- QAction *openAction = new QAction(tr("&Open..."), this);
+ QAction *openAction = new QAction(tr("&Open..."), parent);
openAction->setShortcut(QKeySequence("Ctrl+O"));
connect(openAction, SIGNAL(triggered()), this, SLOT(open()));
fileMenu->addAction(openAction);
- QAction *reloadAction = new QAction(tr("&Reload"), this);
+ QAction *reloadAction = new QAction(tr("&Reload"), parent);
reloadAction->setShortcut(QKeySequence("Ctrl+R"));
connect(reloadAction, SIGNAL(triggered()), this, SLOT(reload()));
fileMenu->addAction(reloadAction);
@@ -93,29 +181,106 @@ void QmlViewer::createMenu(QMenuBar *menu, QMenu *flatmenu)
QMenu *recordMenu = flatmenu ? flatmenu : menu->addMenu(tr("&Recording"));
- QAction *snapshotAction = new QAction(tr("&Take Snapsot\tF3"), this);
+ QAction *snapshotAction = new QAction(tr("&Take Snapsot\tF3"), parent);
connect(snapshotAction, SIGNAL(triggered()), this, SLOT(takeSnapShot()));
recordMenu->addAction(snapshotAction);
- recordAction = new QAction(tr("Start Recording &Video\tF2"), this);
+ recordAction = new QAction(tr("Start Recording &Video\tF2"), parent);
connect(recordAction, SIGNAL(triggered()), this, SLOT(toggleRecordingWithSelection()));
recordMenu->addAction(recordAction);
if (flatmenu) flatmenu->addSeparator();
+ QMenu *skinMenu = flatmenu ? flatmenu->addMenu(tr("&Skin")) : menu->addMenu(tr("&Skin"));
+
+ QActionGroup *skinActions;
+ QAction *skinAction;
+
+ skinActions = new QActionGroup(parent);
+ skinAction = new QAction(tr("Scale skin"), parent);
+ skinAction->setCheckable(true);
+ skinAction->setChecked(scaleSkin);
+ skinActions->addAction(skinAction);
+ skinMenu->addAction(skinAction);
+ connect(skinAction, SIGNAL(triggered()), this, SLOT(setScaleSkin()));
+ skinAction = new QAction(tr("Scale view"), parent);
+ skinAction->setCheckable(true);
+ skinAction->setChecked(!scaleSkin);
+ skinActions->addAction(skinAction);
+ skinMenu->addAction(skinAction);
+ connect(skinAction, SIGNAL(triggered()), this, SLOT(setScaleView()));
+ skinMenu->addSeparator();
+
+ skinActions = new QActionGroup(parent);
+ QSignalMapper *mapper = new QSignalMapper(parent);
+ skinAction = new QAction(tr("None"), parent);
+ skinAction->setCheckable(true);
+ if (currentSkin.isEmpty())
+ skinAction->setChecked(true);
+ skinActions->addAction(skinAction);
+ skinMenu->addAction(skinAction);
+ mapper->setMapping(skinAction, "");
+ connect(skinAction, SIGNAL(triggered()), mapper, SLOT(map()));
+ skinMenu->addSeparator();
+
+ QDir dir(":/skins/","*.skin");
+ const QFileInfoList l = dir.entryInfoList();
+ for (QFileInfoList::const_iterator it = l.begin(); it != l.end(); ++it) {
+ QString name = (*it).baseName(); // should perhaps be in file
+ QString file = (*it).filePath();
+ skinAction = new QAction(name, parent);
+ skinActions->addAction(skinAction);
+ skinMenu->addAction(skinAction);
+ skinAction->setCheckable(true);
+ if (file == currentSkin)
+ skinAction->setChecked(true);
+ mapper->setMapping(skinAction, file);
+ connect(skinAction, SIGNAL(triggered()), mapper, SLOT(map()));
+ }
+ //connect(skinActions, SIGNAL(triggered(QAction*)), mapper, SLOT(map(QObject*))); // "incompatible"
+ connect(mapper, SIGNAL(mapped(QString)), this, SLOT(setSkin(QString)));
+
+ if (flatmenu) flatmenu->addSeparator();
+
QMenu *helpMenu = flatmenu ? flatmenu : menu->addMenu(tr("&Help"));
- QAction *aboutAction = new QAction(tr("&About Qt..."), this);
+ QAction *aboutAction = new QAction(tr("&About Qt..."), parent);
connect(aboutAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
helpMenu->addAction(aboutAction);
- QAction *quitAction = new QAction(tr("&Quit"), this);
+ QAction *quitAction = new QAction(tr("&Quit"), parent);
quitAction->setShortcut(QKeySequence("Ctrl+Q"));
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
fileMenu->addSeparator();
fileMenu->addAction(quitAction);
+}
+void QmlViewer::setScaleSkin()
+{
+ if (scaleSkin)
+ return;
+ scaleSkin = true;
+ canvas->setContentResizable(!skin || !scaleSkin);
+ if (skin) {
+ canvas->setFixedSize(canvas->sizeHint());
+ skin->setScreenSize(canvas->sizeHint());
+ }
}
+void QmlViewer::setScaleView()
+{
+ if (!scaleSkin)
+ return;
+ scaleSkin = false;
+ if (skin) {
+ canvas->setContentResizable(!skin || !scaleSkin);
+ canvas->setMinimumSize(QSize(0,0));
+ canvas->setMaximumSize(QSize(16777215,16777215));
+ canvas->resize(skin->standardScreenSize());
+ skin->setScreenSize(skin->standardScreenSize());
+ }
+}
+
+
void QmlViewer::takeSnapShot()
{
static int snapshotcount = 1;
@@ -210,100 +375,76 @@ void QmlViewer::openQml(const QString& fileName)
canvas->execute();
qWarning() << "Wall startup time:" << t.elapsed();
- resize(sizeHint());
+ if (!skin) {
+ canvas->resize(canvas->sizeHint());
+ resize(sizeHint());
+ } else {
+ if (scaleSkin)
+ canvas->resize(canvas->sizeHint());
+ else {
+ canvas->setFixedSize(skin->standardScreenSize());
+ canvas->resize(skin->standardScreenSize());
+ }
+ }
#ifdef QTOPIA
show();
#endif
}
-class PreviewDeviceSkin : public DeviceSkin
-{
- Q_OBJECT
-public:
- explicit PreviewDeviceSkin(const DeviceSkinParameters &parameters, QWidget *parent);
-
- void setPreview(QWidget *formWidget);
- void setScreenSize(const QSize& size)
- {
- QMatrix fit;
- fit = fit.scale(qreal(size.width())/m_screenSize.width(),
- qreal(size.height())/m_screenSize.height());
- setTransform(fit);
- }
-
- QMenu* menu;
-private slots:
- void slotSkinKeyPressEvent(int code, const QString& text, bool autorep);
- void slotSkinKeyReleaseEvent(int code, const QString& text, bool autorep);
- void slotPopupMenu();
-
-private:
- const QSize m_screenSize;
-};
-
-
-PreviewDeviceSkin::PreviewDeviceSkin(const DeviceSkinParameters &parameters, QWidget *parent) :
- DeviceSkin(parameters, parent),
- m_screenSize(parameters.screenSize())
-{
- menu = new QMenu(this);
- connect(this, SIGNAL(skinKeyPressEvent(int,QString,bool)),
- this, SLOT(slotSkinKeyPressEvent(int,QString,bool)));
- connect(this, SIGNAL(skinKeyReleaseEvent(int,QString,bool)),
- this, SLOT(slotSkinKeyReleaseEvent(int,QString,bool)));
- connect(this, SIGNAL(popupMenu()), this, SLOT(slotPopupMenu()));
-}
-
-void PreviewDeviceSkin::setPreview(QWidget *formWidget)
+void QmlViewer::setSkin(const QString& skinDirectory)
{
- formWidget->setFixedSize(m_screenSize);
- formWidget->setParent(this, Qt::SubWindow);
- formWidget->setAutoFillBackground(true);
- setView(formWidget);
-}
+ // XXX QWidget::setMask does not handle changes well, and we may
+ // XXX have been signalled from an item in a menu we're replacing,
+ // XXX hence some rather convoluted resetting here...
-void PreviewDeviceSkin::slotSkinKeyPressEvent(int code, const QString& text, bool autorep)
-{
- if (QWidget *focusWidget = QApplication::focusWidget()) {
- QKeyEvent e(QEvent::KeyPress,code,0,text,autorep);
- QApplication::sendEvent(focusWidget, &e);
- }
+ if (currentSkin == skinDirectory)
+ return;
-}
+ currentSkin = skinDirectory;
-void PreviewDeviceSkin::slotSkinKeyReleaseEvent(int code, const QString& text, bool autorep)
-{
- if (QWidget *focusWidget = QApplication::focusWidget()) {
- QKeyEvent e(QEvent::KeyRelease,code,0,text,autorep);
- QApplication::sendEvent(focusWidget, &e);
+ QString err;
+ if (skin) {
+ skin->hide();
+ skin->deleteLater();
}
-}
-void PreviewDeviceSkin::slotPopupMenu()
-{
- menu->exec(QCursor::pos());
-}
+ canvas->setContentResizable(!skin || !scaleSkin);
-void QmlViewer::setSkin(const QString& skinDirectory)
-{
DeviceSkinParameters parameters;
- QString err;
- if (parameters.read(skinDirectory,DeviceSkinParameters::ReadAll,&err)) {
- delete skin;
+ if (!skinDirectory.isEmpty() && parameters.read(skinDirectory,DeviceSkinParameters::ReadAll,&err)) {
+ layout()->setEnabled(false);
+ setMenuBar(0);
if (!err.isEmpty())
qWarning() << err;
- delete menuBar();
skin = new PreviewDeviceSkin(parameters,this);
- skin->setScreenSize(canvas->sizeHint());
- canvas->setParent(skin, Qt::SubWindow);
- canvas->setAutoFillBackground(true);
- skin->setView(canvas);
+ canvas->resize(canvas->sizeHint());
+ if (scaleSkin)
+ skin->setPreviewAndScale(canvas);
+ else
+ skin->setPreview(canvas);
createMenu(0,skin->menu);
-
- canvas->show();
+ skin->show();
+ } else {
+ skin = 0;
+ clearMask();
+ menuBar()->clear();
+ canvas->setParent(this, Qt::SubWindow);
+ createMenu(menuBar(),0);
+ setMinimumSize(QSize(0,0));
+ setMaximumSize(QSize(16777215,16777215));
+ canvas->setMinimumSize(QSize(0,0));
+ canvas->setMaximumSize(QSize(16777215,16777215));
+ QRect g = geometry();
+ g.setSize(sizeHint());
+ setParent(0,windowFlags()); // recreate
+ canvas->move(0,menuBar()->sizeHint().height()+1);
+ setGeometry(g);
+ layout()->setEnabled(true);
+ show();
}
+ canvas->show();
}
void QmlViewer::setAutoRecord(int from, int to)
@@ -335,7 +476,7 @@ void QmlViewer::setRecordPeriod(int ms)
void QmlViewer::sceneResized(QSize size)
{
if (size.width() > 0 && size.height() > 0) {
- if (skin)
+ if (skin && scaleSkin)
skin->setScreenSize(size);
}
}
@@ -395,7 +536,6 @@ void QmlViewer::setRecording(bool on)
connect(proc, SIGNAL(finished(int)), this, SLOT(ffmpegFinished(int)));
frame_stream = proc;
-qDebug() << canvas->width() << canvas->height();
QStringList args;
args << "-sameq"; // ie. high
args << "-y";
diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h
index 0748de4..09b2b5b 100644
--- a/tools/qmlviewer/qmlviewer.h
+++ b/tools/qmlviewer/qmlviewer.h
@@ -40,7 +40,6 @@ public:
void setRecording(bool on);
bool isRecording() const { return recordTimer.isActive(); }
void setAutoRecord(int from, int to);
- void setSkin(const QString& skinDirectory);
void setDeviceKeys(bool);
void setCacheEnabled(bool);
@@ -55,6 +54,7 @@ public slots:
void toggleRecording();
void toggleRecordingWithSelection();
void ffmpegFinished(int code);
+ void setSkin(const QString& skinDirectory);
protected:
virtual void keyPressEvent(QKeyEvent *);
@@ -62,6 +62,10 @@ protected:
void createMenu(QMenuBar *menu, QMenu *flatmenu);
+private slots:
+ void setScaleSkin();
+ void setScaleView();
+
private:
QString currentFileName;
PreviewDeviceSkin *skin;
@@ -80,6 +84,8 @@ private:
int record_autotime;
bool devicemode;
QAction *recordAction;
+ QString currentSkin;
+ bool scaleSkin;
QFxTestEngine *testEngine;
};
diff --git a/tools/qtestlib/chart/chart.pro b/tools/qtestlib/chart/chart.pro
index 6f6e6d5..7328e5d 100644
--- a/tools/qtestlib/chart/chart.pro
+++ b/tools/qtestlib/chart/chart.pro
@@ -4,7 +4,7 @@ SOURCES += main.cpp
RESOURCES = $$PWD/chart.qrc
QT += sql xml
-CONFIG += console release
+CONFIG += console
CONFIG -= app_bundle
diff --git a/tools/qvfb/PDAPhone.skin/pda_up.png b/tools/qvfb/PDAPhone.skin/pda_up.png
deleted file mode 100644
index 541e3c4..0000000
--- a/tools/qvfb/PDAPhone.skin/pda_up.png
+++ /dev/null
Binary files differ
diff --git a/tools/qvfb/pda.qrc b/tools/qvfb/pda.qrc
deleted file mode 100644
index b14e7b3..0000000
--- a/tools/qvfb/pda.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/skins">
- <file>pda.skin</file>
-</qresource>
-</RCC>
diff --git a/tools/qvfb/pda.skin b/tools/qvfb/pda.skin
deleted file mode 100644
index 037f750..0000000
--- a/tools/qvfb/pda.skin
+++ /dev/null
@@ -1,14 +0,0 @@
-pda_up.png pda_down.png
-57 81
-240 320
-11
-"Power" 0x0100000a 277 36 302 57
-"F1" 0x01000030 52 439 81 470
-"F2" 0x01000031 101 422 130 451
-"F3" 0x01000032 232 423 260 452
-"F4" 0x01000033 279 445 309 473
-"Left" 0x01000012 155 438 176 472
-"Down" 0x01000015 169 471 203 486
-"Right" 0x01000014 193 448 215 472
-"Up" 0x01000013 166 427 199 451
-"Enter" 0x01000005 177 448 193 468
diff --git a/tools/qvfb/pda_down.png b/tools/qvfb/pda_down.png
deleted file mode 100644
index 0ea157d..0000000
--- a/tools/qvfb/pda_down.png
+++ /dev/null
Binary files differ
diff --git a/tools/qvfb/qvfb.pro b/tools/qvfb/qvfb.pro
index 85c4d96..247337a 100644
--- a/tools/qvfb/qvfb.pro
+++ b/tools/qvfb/qvfb.pro
@@ -60,15 +60,4 @@ unix:x11 {
LIBS += -lXtst
}
-RESOURCES += qvfb.qrc \
- ClamshellPhone.qrc \
- PDAPhone.qrc \
- SmartPhone2.qrc \
- SmartPhone.qrc \
- SmartPhoneWithButtons.qrc \
- TouchscreenPhone.qrc \
- Trolltech-Keypad.qrc \
- Trolltech-Touchscreen.qrc \
- PortableMedia.qrc \
- S60-QVGA-Candybar.qrc \
- S60-nHD-Touchscreen.qrc
+RESOURCES += qvfb.qrc
diff --git a/tools/shared/deviceskin/deviceskin.pri b/tools/shared/deviceskin/deviceskin.pri
index e4c9ef7..2552c92 100644
--- a/tools/shared/deviceskin/deviceskin.pri
+++ b/tools/shared/deviceskin/deviceskin.pri
@@ -1,3 +1,15 @@
INCLUDEPATH += $$PWD
HEADERS += $$PWD/deviceskin.h
SOURCES += $$PWD/deviceskin.cpp
+RESOURCES += $$PWD/skins/ClamshellPhone.qrc \
+ $$PWD/skins/PDAPhone.qrc \
+ $$PWD/skins/SmartPhone2.qrc \
+ $$PWD/skins/SmartPhone.qrc \
+ $$PWD/skins/SmartPhoneWithButtons.qrc \
+ $$PWD/skins/TouchscreenPhone.qrc \
+ $$PWD/skins/Trolltech-Keypad.qrc \
+ $$PWD/skins/Trolltech-Touchscreen.qrc \
+ $$PWD/skins/PortableMedia.qrc \
+ $$PWD/skins/S60-QVGA-Candybar.qrc \
+ $$PWD/skins/S60-nHD-Touchscreen.qrc
+
diff --git a/tools/qvfb/ClamshellPhone.qrc b/tools/shared/deviceskin/skins/ClamshellPhone.qrc
index 39cd422..39cd422 100644
--- a/tools/qvfb/ClamshellPhone.qrc
+++ b/tools/shared/deviceskin/skins/ClamshellPhone.qrc
diff --git a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone.skin b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone.skin
index cb24a8e..cb24a8e 100644
--- a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone.skin
+++ b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone.skin
diff --git a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-closed.png b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-closed.png
index 88ba3a1..88ba3a1 100644
--- a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-closed.png
+++ b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-closed.png
Binary files differ
diff --git a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png
index 971cdef..971cdef 100644
--- a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png
+++ b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5-pressed.png
Binary files differ
diff --git a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5.png b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5.png
index f3550ee..f3550ee 100644
--- a/tools/qvfb/ClamshellPhone.skin/ClamshellPhone1-5.png
+++ b/tools/shared/deviceskin/skins/ClamshellPhone.skin/ClamshellPhone1-5.png
Binary files differ
diff --git a/tools/qvfb/S60-QVGA-Candybar.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/ClamshellPhone.skin/defaultbuttons.conf
index e349dbc..e349dbc 100644
--- a/tools/qvfb/S60-QVGA-Candybar.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/ClamshellPhone.skin/defaultbuttons.conf
diff --git a/tools/qvfb/DualScreenPhone.skin/DualScreen-pressed.png b/tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreen-pressed.png
index d62ef4a..d62ef4a 100644
--- a/tools/qvfb/DualScreenPhone.skin/DualScreen-pressed.png
+++ b/tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreen-pressed.png
Binary files differ
diff --git a/tools/qvfb/DualScreenPhone.skin/DualScreen.png b/tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreen.png
index cb3d1a7..cb3d1a7 100644
--- a/tools/qvfb/DualScreenPhone.skin/DualScreen.png
+++ b/tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreen.png
Binary files differ
diff --git a/tools/qvfb/DualScreenPhone.skin/DualScreenPhone.skin b/tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreenPhone.skin
index a82ef23..a82ef23 100644
--- a/tools/qvfb/DualScreenPhone.skin/DualScreenPhone.skin
+++ b/tools/shared/deviceskin/skins/DualScreenPhone.skin/DualScreenPhone.skin
diff --git a/tools/qvfb/SmartPhone.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/DualScreenPhone.skin/defaultbuttons.conf
index 1103350..1103350 100644
--- a/tools/qvfb/SmartPhone.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/DualScreenPhone.skin/defaultbuttons.conf
diff --git a/tools/qvfb/PDAPhone.qrc b/tools/shared/deviceskin/skins/PDAPhone.qrc
index 1a1c35a..1a1c35a 100644
--- a/tools/qvfb/PDAPhone.qrc
+++ b/tools/shared/deviceskin/skins/PDAPhone.qrc
diff --git a/tools/qvfb/PDAPhone.skin/PDAPhone.skin b/tools/shared/deviceskin/skins/PDAPhone.skin/PDAPhone.skin
index d6a1966..d6a1966 100644
--- a/tools/qvfb/PDAPhone.skin/PDAPhone.skin
+++ b/tools/shared/deviceskin/skins/PDAPhone.skin/PDAPhone.skin
diff --git a/tools/qvfb/PDAPhone.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/PDAPhone.skin/defaultbuttons.conf
index e3ae813..e3ae813 100644
--- a/tools/qvfb/PDAPhone.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/PDAPhone.skin/defaultbuttons.conf
diff --git a/tools/qvfb/PDAPhone.skin/finger.png b/tools/shared/deviceskin/skins/PDAPhone.skin/finger.png
index 24cf0cb..24cf0cb 100644
--- a/tools/qvfb/PDAPhone.skin/finger.png
+++ b/tools/shared/deviceskin/skins/PDAPhone.skin/finger.png
Binary files differ
diff --git a/tools/qvfb/PDAPhone.skin/pda_down.png b/tools/shared/deviceskin/skins/PDAPhone.skin/pda_down.png
index f65c059..f65c059 100644
--- a/tools/qvfb/PDAPhone.skin/pda_down.png
+++ b/tools/shared/deviceskin/skins/PDAPhone.skin/pda_down.png
Binary files differ
diff --git a/tools/qvfb/pda_up.png b/tools/shared/deviceskin/skins/PDAPhone.skin/pda_up.png
index 541e3c4..541e3c4 100644
--- a/tools/qvfb/pda_up.png
+++ b/tools/shared/deviceskin/skins/PDAPhone.skin/pda_up.png
Binary files differ
diff --git a/tools/qvfb/PortableMedia.qrc b/tools/shared/deviceskin/skins/PortableMedia.qrc
index a902f1a..a902f1a 100644
--- a/tools/qvfb/PortableMedia.qrc
+++ b/tools/shared/deviceskin/skins/PortableMedia.qrc
diff --git a/tools/qvfb/PortableMedia.skin/PortableMedia.skin b/tools/shared/deviceskin/skins/PortableMedia.skin/PortableMedia.skin
index b76e5cf..b76e5cf 100644
--- a/tools/qvfb/PortableMedia.skin/PortableMedia.skin
+++ b/tools/shared/deviceskin/skins/PortableMedia.skin/PortableMedia.skin
diff --git a/tools/qvfb/PortableMedia.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/PortableMedia.skin/defaultbuttons.conf
index 514e881..514e881 100644
--- a/tools/qvfb/PortableMedia.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/PortableMedia.skin/defaultbuttons.conf
diff --git a/tools/qvfb/PortableMedia.skin/portablemedia-pressed.png b/tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia-pressed.png
index 730e762..730e762 100644
--- a/tools/qvfb/PortableMedia.skin/portablemedia-pressed.png
+++ b/tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia-pressed.png
Binary files differ
diff --git a/tools/qvfb/PortableMedia.skin/portablemedia.png b/tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia.png
index e44cbe1..e44cbe1 100644
--- a/tools/qvfb/PortableMedia.skin/portablemedia.png
+++ b/tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia.png
Binary files differ
diff --git a/tools/qvfb/PortableMedia.skin/portablemedia.xcf b/tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia.xcf
index 127e07c..127e07c 100644
--- a/tools/qvfb/PortableMedia.skin/portablemedia.xcf
+++ b/tools/shared/deviceskin/skins/PortableMedia.skin/portablemedia.xcf
Binary files differ
diff --git a/tools/qvfb/S60-QVGA-Candybar.qrc b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.qrc
index 8138484..8138484 100644
--- a/tools/qvfb/S60-QVGA-Candybar.qrc
+++ b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.qrc
diff --git a/tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png
index 89d40cb..89d40cb 100644
--- a/tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png
+++ b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar-down.png
Binary files differ
diff --git a/tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png
index 0d0e598..0d0e598 100644
--- a/tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png
+++ b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.png
Binary files differ
diff --git a/tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin
index 4f8fe5d..4f8fe5d 100644
--- a/tools/qvfb/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin
+++ b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/S60-QVGA-Candybar.skin
diff --git a/tools/qvfb/ClamshellPhone.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/defaultbuttons.conf
index e349dbc..e349dbc 100644
--- a/tools/qvfb/ClamshellPhone.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/S60-QVGA-Candybar.skin/defaultbuttons.conf
diff --git a/tools/qvfb/S60-nHD-Touchscreen.qrc b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.qrc
index daf0cc3..daf0cc3 100644
--- a/tools/qvfb/S60-nHD-Touchscreen.qrc
+++ b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.qrc
diff --git a/tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png
index 7253e38..7253e38 100644
--- a/tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png
+++ b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen-down.png
Binary files differ
diff --git a/tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png
index 675563e..675563e 100644
--- a/tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png
+++ b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.png
Binary files differ
diff --git a/tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin
index ed25d0e..ed25d0e 100644
--- a/tools/qvfb/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin
+++ b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/S60-nHD-Touchscreen.skin
diff --git a/tools/qvfb/Trolltech-Touchscreen.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/defaultbuttons.conf
index 6665125..6665125 100644
--- a/tools/qvfb/Trolltech-Touchscreen.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/S60-nHD-Touchscreen.skin/defaultbuttons.conf
diff --git a/tools/qvfb/SmartPhone.qrc b/tools/shared/deviceskin/skins/SmartPhone.qrc
index 8bb5325..8bb5325 100644
--- a/tools/qvfb/SmartPhone.qrc
+++ b/tools/shared/deviceskin/skins/SmartPhone.qrc
diff --git a/tools/qvfb/SmartPhone.skin/SmartPhone-pressed.png b/tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone-pressed.png
index d0db2ed..d0db2ed 100644
--- a/tools/qvfb/SmartPhone.skin/SmartPhone-pressed.png
+++ b/tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone-pressed.png
Binary files differ
diff --git a/tools/qvfb/SmartPhone.skin/SmartPhone.png b/tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.png
index e6ac5a0..e6ac5a0 100644
--- a/tools/qvfb/SmartPhone.skin/SmartPhone.png
+++ b/tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.png
Binary files differ
diff --git a/tools/qvfb/SmartPhone.skin/SmartPhone.skin b/tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.skin
index 2f44c5a..2f44c5a 100644
--- a/tools/qvfb/SmartPhone.skin/SmartPhone.skin
+++ b/tools/shared/deviceskin/skins/SmartPhone.skin/SmartPhone.skin
diff --git a/tools/qvfb/DualScreenPhone.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/SmartPhone.skin/defaultbuttons.conf
index 1103350..1103350 100644
--- a/tools/qvfb/DualScreenPhone.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/SmartPhone.skin/defaultbuttons.conf
diff --git a/tools/qvfb/SmartPhone2.qrc b/tools/shared/deviceskin/skins/SmartPhone2.qrc
index 751e985..751e985 100644
--- a/tools/qvfb/SmartPhone2.qrc
+++ b/tools/shared/deviceskin/skins/SmartPhone2.qrc
diff --git a/tools/qvfb/SmartPhone2.skin/SmartPhone2-pressed.png b/tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2-pressed.png
index d4eb5b0..d4eb5b0 100644
--- a/tools/qvfb/SmartPhone2.skin/SmartPhone2-pressed.png
+++ b/tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2-pressed.png
Binary files differ
diff --git a/tools/qvfb/SmartPhone2.skin/SmartPhone2.png b/tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.png
index 48ccc1c..48ccc1c 100644
--- a/tools/qvfb/SmartPhone2.skin/SmartPhone2.png
+++ b/tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.png
Binary files differ
diff --git a/tools/qvfb/SmartPhone2.skin/SmartPhone2.skin b/tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin
index 16884bf..16884bf 100644
--- a/tools/qvfb/SmartPhone2.skin/SmartPhone2.skin
+++ b/tools/shared/deviceskin/skins/SmartPhone2.skin/SmartPhone2.skin
diff --git a/tools/qvfb/SmartPhone2.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf
index b083203..b083203 100644
--- a/tools/qvfb/SmartPhone2.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/SmartPhone2.skin/defaultbuttons.conf
diff --git a/tools/qvfb/SmartPhoneWithButtons.qrc b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.qrc
index f3393ba..f3393ba 100644
--- a/tools/qvfb/SmartPhoneWithButtons.qrc
+++ b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.qrc
diff --git a/tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png
index 456a068..456a068 100644
--- a/tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png
+++ b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons-pressed.png
Binary files differ
diff --git a/tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png
index 5ffbd6e..5ffbd6e 100644
--- a/tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png
+++ b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.png
Binary files differ
diff --git a/tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin
index 9afa67f..9afa67f 100644
--- a/tools/qvfb/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin
+++ b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/SmartPhoneWithButtons.skin
diff --git a/tools/qvfb/SmartPhoneWithButtons.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf
index ebd6926..ebd6926 100644
--- a/tools/qvfb/SmartPhoneWithButtons.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/SmartPhoneWithButtons.skin/defaultbuttons.conf
diff --git a/tools/qvfb/TouchscreenPhone.qrc b/tools/shared/deviceskin/skins/TouchscreenPhone.qrc
index 023144d..023144d 100644
--- a/tools/qvfb/TouchscreenPhone.qrc
+++ b/tools/shared/deviceskin/skins/TouchscreenPhone.qrc
diff --git a/tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone-pressed.png b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone-pressed.png
index 01acb86..01acb86 100644
--- a/tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone-pressed.png
+++ b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone-pressed.png
Binary files differ
diff --git a/tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.png b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.png
index e90de0d..e90de0d 100644
--- a/tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.png
+++ b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.png
Binary files differ
diff --git a/tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.skin b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin
index 24316a1..24316a1 100644
--- a/tools/qvfb/TouchscreenPhone.skin/TouchscreenPhone.skin
+++ b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/TouchscreenPhone.skin
diff --git a/tools/qvfb/TouchscreenPhone.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf
index a13dfdc..a13dfdc 100644
--- a/tools/qvfb/TouchscreenPhone.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/TouchscreenPhone.skin/defaultbuttons.conf
diff --git a/tools/qvfb/Trolltech-Keypad.qrc b/tools/shared/deviceskin/skins/Trolltech-Keypad.qrc
index 4775068..4775068 100644
--- a/tools/qvfb/Trolltech-Keypad.qrc
+++ b/tools/shared/deviceskin/skins/Trolltech-Keypad.qrc
diff --git a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-closed.png b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad-closed.png
index 8dd5719..8dd5719 100644
--- a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-closed.png
+++ b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad-closed.png
Binary files differ
diff --git a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-down.png b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad-down.png
index 5e1e6be..5e1e6be 100644
--- a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad-down.png
+++ b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad-down.png
Binary files differ
diff --git a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.png b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad.png
index fb3d549..fb3d549 100644
--- a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.png
+++ b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad.png
Binary files differ
diff --git a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.skin b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad.skin
index 4d90321..4d90321 100644
--- a/tools/qvfb/Trolltech-Keypad.skin/Trolltech-Keypad.skin
+++ b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/Trolltech-Keypad.skin
diff --git a/tools/qvfb/Trolltech-Keypad.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/defaultbuttons.conf
index 6a78e67..6a78e67 100644
--- a/tools/qvfb/Trolltech-Keypad.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/Trolltech-Keypad.skin/defaultbuttons.conf
diff --git a/tools/qvfb/Trolltech-Touchscreen.qrc b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.qrc
index 40fafeb..40fafeb 100644
--- a/tools/qvfb/Trolltech-Touchscreen.qrc
+++ b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.qrc
diff --git a/tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.png b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.png
index c1a422f..c1a422f 100644
--- a/tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.png
+++ b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen-down.png
Binary files differ
diff --git a/tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.png b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.png
index 544a425..544a425 100644
--- a/tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.png
+++ b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.png
Binary files differ
diff --git a/tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin
index 5de882e..5de882e 100644
--- a/tools/qvfb/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin
+++ b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/Trolltech-Touchscreen.skin
diff --git a/tools/qvfb/S60-nHD-Touchscreen.skin/defaultbuttons.conf b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/defaultbuttons.conf
index 6665125..6665125 100644
--- a/tools/qvfb/S60-nHD-Touchscreen.skin/defaultbuttons.conf
+++ b/tools/shared/deviceskin/skins/Trolltech-Touchscreen.skin/defaultbuttons.conf
diff --git a/tools/tools.pro b/tools/tools.pro
index 2ff0214..7493aec 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -22,7 +22,7 @@ mac {
SUBDIRS += macdeployqt
}
-SUBDIRS += kmap2qmap
+embedded:SUBDIRS += kmap2qmap
contains(QT_CONFIG, declarative):SUBDIRS += qmlviewer
contains(QT_CONFIG, dbus):SUBDIRS += qdbus