# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284701530 -10800 # Node ID b7da29130b0e65b596bf93fd7c09f3ee9c6e1f0f # Parent e6ad4ef83b23092ef3a8ec12ad9690074308485f Revision: 201035 Kit: 201037 diff -r e6ad4ef83b23 -r b7da29130b0e config.tests/all/mobility/mobility.pro --- a/config.tests/all/mobility/mobility.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/config.tests/all/mobility/mobility.pro Fri Sep 17 08:32:10 2010 +0300 @@ -30,6 +30,7 @@ DEPENDPATH += . INCLUDEPATH += . CONFIG += mobility +CONFIG -= app_bundle MOBILITY += publishsubscribe systeminfo # Input diff -r e6ad4ef83b23 -r b7da29130b0e config.tests/all/openvg/openvg.pro --- a/config.tests/all/openvg/openvg.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/config.tests/all/openvg/openvg.pro Fri Sep 17 08:32:10 2010 +0300 @@ -30,6 +30,7 @@ DEPENDPATH += . INCLUDEPATH += . CONFIG += openvg +CONFIG -= app_bundle # Input SOURCES += main.cpp diff -r e6ad4ef83b23 -r b7da29130b0e config.tests/all/simpleapp/simpleapp.pro --- a/config.tests/all/simpleapp/simpleapp.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/config.tests/all/simpleapp/simpleapp.pro Fri Sep 17 08:32:10 2010 +0300 @@ -28,6 +28,8 @@ TEMPLATE = app TARGET = hbconftest_simpleapp CONFIG -= qt +CONFIG -= app_bundle +CONFIG += console DEPENDPATH += . INCLUDEPATH += . diff -r e6ad4ef83b23 -r b7da29130b0e configure.py --- a/configure.py Thu Sep 02 20:44:51 2010 +0300 +++ b/configure.py Fri Sep 17 08:32:10 2010 +0300 @@ -216,12 +216,14 @@ if QMAKE.platform() == "win32" and MAKE.bin() == "nmake": group.add_option("--msvc", action="store_true", dest="msvc", help="Generate a MSVC solution.") - group.add_option("--release", action="store_const", dest="config", const="release", + group.add_option("--release", action="store_const", dest="release", const="release", help="Build in release mode.") - group.add_option("--debug", action="store_const", dest="config", const="debug", + group.add_option("--debug", action="store_const", dest="debug", const="debug", help="Build in debug mode.") - group.add_option("--debug_and_release", action="store_const", dest="config", const="debug_and_release", + group.add_option("--debug_and_release", action="store_const", dest="debug_and_release", const="debug_and_release", help="Build in both debug and release modes.") + group.add_option("--config", action="append", dest="config", metavar="config", + help="Add qmake configurations.") group.add_option("--debug-output", action="store_true", dest="debug_output", help="Do not suppress debug and warning output (suppressed by default in release-armv5 builds on Symbian).") group.add_option("--no-debug-output", action="store_true", dest="no_debug_output", @@ -236,9 +238,10 @@ "The build tree should be clean ie. no existing " "makefiles in subdirs, because those won't be " "regenerated if this option is enabled.") + group.add_option("--define", action="append", dest="define", metavar="define", + help="Add compiler macros eg. --define HB_FOO_DEBUG --define HB_BAR_ENABLED.") group.add_option("--defines", dest="defines", metavar="defines", - help="Define compiler macros for selecting features " - "and debugging purposes eg. --defines HB_FOO_DEBUG,HB_BAR_ENABLED") + help=optparse.SUPPRESS_HELP) if QMAKE.platform() == "unix": group.add_option("--rpath", action="store_true", dest="rpath", help="Link Hb libraries and executables using the library install " @@ -249,9 +252,13 @@ self.set_defaults(platform=None) self.set_defaults(makebin=None) self.set_defaults(msvc=None) + self.set_defaults(release=None) + self.set_defaults(debug=None) + self.set_defaults(debug_and_release=None) self.set_defaults(config=None) self.set_defaults(silent=False) self.set_defaults(fast=False) + self.set_defaults(define=None) self.set_defaults(defines=None) self.set_defaults(rpath=None) @@ -272,7 +279,7 @@ help="The operating system and compiler you are building on.") group.add_option("--qmake-options", dest="qmakeopt", metavar="options", help="Additional qmake options " - "eg. --qmake-options \"CONFIG+=foo DEFINES+=BAR\".") + "eg. --qmake-options \"QMAKE_CC=gcc-4.1 QMAKE_CXX=g++-4.1\".") self.add_option_group(group) self.set_defaults(qmakeopt=None) @@ -510,6 +517,8 @@ # symbian specific adjustments if QMAKE.platform() == "symbian": + self._bindir = self._dir_option(options.bindir, "$${EPOCROOT}epoc32/tools") + # TODO: fix to "$${EPOCROOT}resource/hb/plugins" self._pluginsdir = "$${EPOCROOT}resource/qt/plugins/hb" @@ -771,6 +780,9 @@ config.add_value("DEFINES", "HB_TEXT_MEASUREMENT_UTILITY") if QMAKE.platform() != "symbian" and options.developer: config.add_value("DEFINES", "HB_CSS_INSPECTOR") + if options.define: + for optdef in options.define: + config.add_value("DEFINES", optdef) if options.defines: config.add_value("DEFINES", " ".join(options.defines.split(","))) if options.developerexport: @@ -819,8 +831,16 @@ config.add_value("CONFIG", "developer") if options.coverage: config.add_value("CONFIG", "coverage") + if options.release: + config.add_value("CONFIG", "release") + if options.debug: + config.add_value("CONFIG", "debug") + if options.debug_and_release: + config.add_value("CONFIG", "debug_and_release") if options.config: - config.add_value("CONFIG", options.config) + for optconf in options.config: + config.add_value("CONFIG", optconf) + if options.debug_output: config.add_value("DEFINES", "HB_DEBUG_OUTPUT") config.add_value("DEFINES", "HB_WARNING_OUTPUT") @@ -831,6 +851,10 @@ # ensure that no QString(0) -like constructs slip in config.add_value("DEFINES", "QT_QCHAR_CONSTRUCTOR") + # expose a flag indicating that tools were built with a host toolchain + if options.hostqmakebin != None and options.hostmakebin != None: + config.add_value("CONFIG", "host_tools") + # TODO: is there any better way to expose functions to the whole source tree? config._lines.append("include(%s)\n" % ConfigFile.format_dir((os.path.splitdrive(BUILDENV.sourcedir())[1]) + "/mkspecs/hb_functions.prf")) diff -r e6ad4ef83b23 -r b7da29130b0e hb.pro --- a/hb.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/hb.pro Fri Sep 17 08:32:10 2010 +0300 @@ -44,12 +44,20 @@ INSTALLS += feature } else { - tmp = $$split(HB_FEATURES_DIR, :) - HB_SYMBIAN_PRF_EXPORT_DIR = $$last(tmp) + HB_SYMBIAN_PRF_EXPORT_DIR = $$hbStripDriveLetter($$HB_FEATURES_DIR) BLD_INF_RULES.prj_exports += "hb.prf $$HB_SYMBIAN_PRF_EXPORT_DIR/hb.prf" BLD_INF_RULES.prj_exports += "hb_install.prf $$HB_SYMBIAN_PRF_EXPORT_DIR/hb_install.prf" BLD_INF_RULES.prj_exports += "mkspecs/hb_functions.prf $$HB_SYMBIAN_PRF_EXPORT_DIR/hb_functions.prf" BLD_INF_RULES.prj_exports += "mkspecs/docml2bin.prf $$HB_SYMBIAN_PRF_EXPORT_DIR/docml2bin.prf" + + host_tools { + exists($${HB_BUILD_DIR}/bin/docml2bin) { + hbPrjExport("$${HB_BUILD_DIR}/bin/docml2bin", "$${HB_BIN_DIR}/docml2bin") + } + exists($${HB_BUILD_DIR}/bin/docml2bin.exe) { + hbPrjExport("$${HB_BUILD_DIR}/bin/docml2bin.exe", "$${HB_BIN_DIR}/docml2bin.exe") + } + } } QMAKE_DISTCLEAN += $$hbNativePath($$HB_BUILD_DIR/.qmake.cache) @@ -88,15 +96,16 @@ !symbian { LRELEASE = $$hbNativePath($$[QT_INSTALL_BINS]/lrelease) - # comments to be removed once localisation is ready - #COMMON_EXTENSIONS = ar eu bg ca hr cs da nl en_US et fi fr fr_CA gl de el he hi zh_HK hu is id it ja ko lv lt ms no pl pt pt_BR zh ro ru sr sk sl es es_419 sv tl zh_TW th tr uk ur vi - translations.input = $$HB_SOURCE_DIR/src/hbcore/i18n/translations/common + COMMON_EXTENSIONS = ar eu bg ca hr cs da nl en_US et fi fr fr_CA gl de el he hi zh_HK hu is id it ja ko lv lt ms nb pl pt pt_BR zh ro ru sr sk sl es es_419 sv tl zh_TW th tr uk ur vi + translations.input = $$HB_SOURCE_DIR/src/hbcore/i18n/translations/commonstrings translations.path = $${HB_TRANSLATIONS_DIR} + translations.commands = $$LRELEASE -silent -idbased $$translations.input/commonstrings_en.ts -qm $$translations.path/commonstrings_en.qm - # for(ext, COMMON_EXTENSIONS) { # file = commonstrings_$$ext -# translations.commands += && $$LRELEASE -silent -idbased $$translations.input/$${file}.ts -qm $$translations.path/$${file}.qm +# eval(trans_$${ext}.commands += $$LRELEASE -silent -idbased $$translations.input/$${file}.ts -qm $$translations.path/$${file}.qm) +# QMAKE_EXTRA_TARGETS += trans_$${ext} +# eval(translations.depends += trans_$${ext}) # } QMAKE_EXTRA_TARGETS += translations diff -r e6ad4ef83b23 -r b7da29130b0e package_definition.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_definition.xml Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e package_map.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_map.xml Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,1 @@ + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/core.pri --- a/src/hbcore/core/core.pri Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/core.pri Fri Sep 17 08:32:10 2010 +0300 @@ -37,6 +37,7 @@ PUBLIC_HEADERS += $$PWD/hbs60events.h PUBLIC_HEADERS += $$PWD/hbcommoncrkeys.h +PRIVATE_HEADERS += $$PWD/hbhash_p.h PRIVATE_HEADERS += $$PWD/hbmemorymanager_p.h PRIVATE_HEADERS += $$PWD/hbheapmemorymanager_p.h PRIVATE_HEADERS += $$PWD/hbsharedmemoryallocators_p.h @@ -81,6 +82,7 @@ SOURCES += $$PWD/hbgraphicsscene.cpp SOURCES += $$PWD/hbinstance.cpp SOURCES += $$PWD/hbnamespace.cpp +SOURCES += $$PWD/hbhash_p.cpp SOURCES += $$PWD/hbmemorymanager_p.cpp SOURCES += $$PWD/hbsharedmemorymanager_p.cpp SOURCES += $$PWD/hbsharedmemorymanagerut_p.cpp diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbaction.cpp --- a/src/hbcore/core/hbaction.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbaction.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -286,7 +286,7 @@ d->icon = HbIcon("qtg_mono_back"); break; default: - qWarning("HbAction: unknown action: %i", action); + hbWarning("HbAction: unknown action: %i", action); break; } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbapplication.cpp --- a/src/hbcore/core/hbapplication.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbapplication.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -28,6 +28,7 @@ #include "hbsplashscreen.h" #include "hbsplashscreen_generic_p.h" #include "hbactivitymanager.h" +#include "hbinputcontextproxy_p.h" #if defined(Q_OS_SYMBIAN) #include @@ -205,6 +206,15 @@ QGestureRecognizer::registerRecognizer(new HbPanGestureRecognizer); QGestureRecognizer::registerRecognizer(new HbSwipeGestureRecognizer); #endif + + // Installs empty input context proxy. It sits there + // and monitors if someone wants to focus an editor + // before the main window delayed construction is over. + // If such a condition is detected, it sets a flag so + // that HbInputMethod::initializeFramework knows + // to resend the requestSoftwareInputPanel event once + // the actual construction is over. + qApp->setInputContext(new HbInputContextProxy(0)); } /*! @@ -331,7 +341,7 @@ HbApplication::setLayoutDirection(Qt::RightToLeft); break; default: - qWarning("HbApplication::s60EventFilter: Unknown layout direction received"); + hbWarning("HbApplication::s60EventFilter: Unknown layout direction received"); break; } } @@ -340,7 +350,7 @@ TUint8 *dataptr = aEvent->EventData(); QStringList names = HbDeviceProfile::profileNames(); if (*dataptr > names.count() - 1) { - qWarning("HbApplication::s60EventFilter: Unknown device profile received"); + hbWarning("HbApplication::s60EventFilter: Unknown device profile received"); } else { HbDeviceProfile profile(names.value(*dataptr)); HbDeviceProfileManager::select(profile); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbglobal.h --- a/src/hbcore/core/hbglobal.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbglobal.h Fri Sep 17 08:32:10 2010 +0300 @@ -31,7 +31,7 @@ //#pragma hb_header(HbGlobal) // HB_VERSION_STR="M.N.P-B" (M=major, N=minor, P=patch, B=build=[dev|tag]) -#define HB_VERSION_STR "0.5.0-2010wk33" +#define HB_VERSION_STR "0.5.0-2010wk35" // HB_VERSION=0xMMNNPP (MM=major, NN=minor, PP=patch) #define HB_VERSION 0x000500 diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbgraphicsscene.cpp --- a/src/hbcore/core/hbgraphicsscene.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbgraphicsscene.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -482,9 +482,9 @@ if (d->mToolTip) { d->mToolTip->eventHook(event); } - if (d->mPopupManager) { + /*if (d->mPopupManager) { d->mPopupManager->eventHook(event); - } + }*/ bool result = QGraphicsScene::event(event); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbgraphicsscene_p.h --- a/src/hbcore/core/hbgraphicsscene_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbgraphicsscene_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -97,6 +97,9 @@ return scene->d_func(); } friend class HbWidget; +#ifdef HB_CSS_INSPECTOR + friend class CssInspectorModelItem; +#endif }; #endif // HBGRAPHICSSCENE_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbhash_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/core/hbhash_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#include "hbhash_p.h" + +quint32 hash(const QChar *data, int size) +{ + quint32 hashValue = 0; + while (size--) { + hashValue = data->unicode() + (hashValue << 6) + (hashValue << 16) - hashValue; + ++data; + } + return hashValue; +} + +/*! + return hash value for \a key. +*/ +quint32 hbHash(const QStringRef &key) +{ + return hash(key.unicode(), key.size()); +} + +quint32 hbHash(const QString &key) +{ + return hash(key.unicode(), key.size()); +} + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbhash_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/core/hbhash_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,35 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#ifndef HBHASH_P_H +#define HBHASH_P_H + +#include +#include + +HB_CORE_PRIVATE_EXPORT quint32 hbHash(const QString &key); +HB_CORE_PRIVATE_EXPORT quint32 hbHash(const QStringRef &key); + +#endif // HBHASH_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbinstance.cpp --- a/src/hbcore/core/hbinstance.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbinstance.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -265,11 +265,15 @@ #ifdef HB_SETTINGS_WINDOW QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+Alt+Shift+S"), window); connect(shortcut, SIGNAL(activated()), this, SLOT(showHideSettingsWindow())); - HbSettingsWindow::instance()->refresh(); + if (HbSettingsWindow::exists()) { + HbSettingsWindow::instance()->refresh(); + } #ifdef HB_CSS_INSPECTOR QShortcut *cssShortcut = new QShortcut(QKeySequence("Ctrl+Alt+Shift+C"), window); connect(cssShortcut, SIGNAL(activated()), this, SLOT(showHideCssWindow())); - HbCssInspectorWindow::instance()->refresh(); + if (HbCssInspectorWindow::exists()) { + HbCssInspectorWindow::instance()->refresh(); + } #endif #endif emit windowAdded(window); @@ -302,11 +306,15 @@ bool result = mWindows.removeOne(window); #ifdef HB_SETTINGS_WINDOW if (result && mWindows.isEmpty()) { - HbSettingsWindow::instance()->close(); + if (HbSettingsWindow::exists()) { + HbSettingsWindow::instance()->close(); + } #ifdef HB_CSS_INSPECTOR - HbCssInspectorWindow::instance()->close(); + if (HbCssInspectorWindow::exists()) { + HbCssInspectorWindow::instance()->close(); + } #endif - } else { + } else if (HbSettingsWindow::exists()) { HbSettingsWindow::instance()->refresh(); } #endif diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hblayoutparameters.cpp --- a/src/hbcore/core/hblayoutparameters.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hblayoutparameters.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -28,6 +28,7 @@ #include "hbmemoryutils_p.h" #include "hbdeviceprofile.h" #include "hbmemorymanager_p.h" +#include "hbhash_p.h" #include static const QString GLOBAL_PARAMETERS_LOCATION = @@ -140,7 +141,7 @@ for (int j = 0; j < declsCount; ++j) { const HbCss::Declaration &decl = decls.at(j); QString parameterName(decl.property); - quint32 hash = HbSharedCache::hash(QStringRef(¶meterName)); + quint32 hash = hbHash(QStringRef(¶meterName)); qptrdiff valueOffset = manager->alloc(sizeof(HbCss::Value)); new ((char*)manager->base() + valueOffset) HbCss::Value(decl.values.at(0)); mItems.append(HbParameterItem(hash, valueOffset, mNames.size(), false)); @@ -150,7 +151,7 @@ } //add special variables for(int i = 0; i < specialVariables.count(); ++i) { - quint32 hash = HbSharedCache::hash(QStringRef(&specialVariables.at(i))); + quint32 hash = hbHash(QStringRef(&specialVariables.at(i))); mItems.append(HbParameterItem(hash, i, mNames.size(), true)); QByteArray latinName(specialVariables.at(0).toLatin1()); mNames.append(latinName.constData(), latinName.length() + 1); @@ -186,8 +187,12 @@ HbLayoutParameters::const_iterator HbLayoutParameters::find(const QString ¶meter) const { - quint32 parameterHash = HbSharedCache::hash(QStringRef(¶meter)); - return qBinaryFind(begin(), end(), HbParameterItem(parameterHash, 0, 0, 0)); + return find(hbHash(parameter)); +} + +HbLayoutParameters::const_iterator HbLayoutParameters::find(quint32 hashValue) const +{ + return qBinaryFind(begin(), end(), HbParameterItem(hashValue, 0, 0, 0)); } #endif //#ifndef HB_BIN_CSS diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hblayoutparameters_p.h --- a/src/hbcore/core/hblayoutparameters_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hblayoutparameters_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -121,6 +121,8 @@ const_iterator constBegin() const { return begin(); } const_iterator constEnd() const { return end(); } const_iterator find(const QString ¶meter) const; + const_iterator find(quint32 hashValue) const; + private: QSharedDataPointer d; }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbmultisegmentallocator_p.cpp --- a/src/hbcore/core/hbmultisegmentallocator_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbmultisegmentallocator_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,7 +31,7 @@ // this identifier is used to check, if the multisegment allocator is already // initialized in given shared chunk -static const unsigned int INITIALIZED_MULTISEGMENTALLOCATOR_IDENTIFIER = 0x4D554C54; //'MULT' +static const quint32 INITIALIZED_MULTISEGMENTALLOCATOR_IDENTIFIER = 0x4D554C54; //'MULT' // chunk sizes // every size is aligned to 8 @@ -94,7 +94,7 @@ ChunkListHeader *listHeader; for (int i = 0; i < AMOUNT_OF_DIFFERENT_CHUNK_SIZES; i++) { header->offsetsToChunkLists[i] = mainAllocator->alloc(sizeof(ChunkListHeader) - + (sizeof(int) + ChunkSizes[i]) + + (sizeof(qptrdiff) + ChunkSizes[i]) * CHUNKS_IN_ONE_LIST); header->offsetsToFreeChunkLists[i] = header->offsetsToChunkLists[i]; listHeader = address(header->offsetsToChunkLists[i]); @@ -138,31 +138,30 @@ // first find out correct list of chunks int i = indexTable[size]; qptrdiff dataOffset = -1; - int *metaData = 0; + qptrdiff *metaData = 0; // this should always point to list with free chunks ChunkListHeader *listHeader = address(header->offsetsToFreeChunkLists[i]); if (listHeader->freedChunkCursor >= 0) { // freedChunkCursor points to freed chunk - dataOffset = listHeader->freedChunkCursor + sizeof(int); - metaData = address(listHeader->freedChunkCursor); - listHeader->freedChunkCursor = *metaData; // point to next freed chunk + dataOffset = listHeader->freedChunkCursor + sizeof(qptrdiff); + metaData = address(listHeader->freedChunkCursor); + listHeader->freedChunkCursor = *metaData; // points to next freed chunk } else { // no chunks freed -> allocate in order - dataOffset = listHeader->allocCursor + sizeof(int); - metaData = address(listHeader->allocCursor); + dataOffset = listHeader->allocCursor + sizeof(qptrdiff); + metaData = address(listHeader->allocCursor); // we will never allocate from full list, so allocCursor is always valid - listHeader->allocCursor += ChunkSizes[listHeader->chunkListIndex] + sizeof(int); + listHeader->allocCursor += ChunkSizes[listHeader->chunkListIndex] + sizeof(qptrdiff); } - // for allocated chunks metadata is: - // 00xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx, - // where xx... = offset to this list's header (max. 1 GB) - *metaData = header->offsetsToFreeChunkLists[i] /* & 0x3FFFFFFF */; + // for allocated chunks metadata is the offset to this list's header + // for freed chunks, metadata points to next free chunk (or -1 if no more freed chunks) + *metaData = header->offsetsToFreeChunkLists[i]; listHeader->allocatedChunks++; if (listHeader->allocatedChunks == CHUNKS_IN_ONE_LIST) { // list full if (!setFreeList(listHeader->chunkListIndex)) { // there is no list(s) with free chunks, so add new list addList(listHeader->chunkListIndex, - mainAllocator->alloc((sizeof(ChunkListHeader) + sizeof(int) + mainAllocator->alloc(sizeof(ChunkListHeader) + (sizeof(qptrdiff) + ChunkSizes[listHeader->chunkListIndex]) * CHUNKS_IN_ONE_LIST)); } @@ -177,8 +176,8 @@ void HbMultiSegmentAllocator::free(qptrdiff offset) { // metadata has offset to list's header - int *metaData = address(offset - sizeof(int)); - int listHeaderOffset = *metaData; + qptrdiff *metaData = address(offset - sizeof(qptrdiff)); + qptrdiff listHeaderOffset = *metaData; ChunkListHeader *listHeader = address(listHeaderOffset); listHeader->allocatedChunks--; if (listHeader->allocatedChunks == 0) { @@ -213,12 +212,12 @@ } else { // only list can't be freed *metaData = listHeader->freedChunkCursor; - listHeader->freedChunkCursor = offset - sizeof(int); + listHeader->freedChunkCursor = offset - sizeof(qptrdiff); } } else { // this list is not yet empty *metaData = listHeader->freedChunkCursor; - listHeader->freedChunkCursor = offset - sizeof(int); + listHeader->freedChunkCursor = offset - sizeof(qptrdiff); } } @@ -230,7 +229,7 @@ */ int HbMultiSegmentAllocator::allocatedSize(qptrdiff offset) { - int *metaData = address(offset - sizeof(int)); + qptrdiff *metaData = address(offset - sizeof(qptrdiff)); ChunkListHeader *listHeader = address(*metaData); // not actual size in alloc(), but the size of chunk, where this data is stored return ChunkSizes[listHeader->chunkListIndex]; @@ -264,12 +263,11 @@ bool HbMultiSegmentAllocator::setFreeList(int index) { ChunkListHeader *listHeader; - listHeader = address(header->offsetsToChunkLists[index]); + qptrdiff offset = header->offsetsToChunkLists[index]; + listHeader = address(offset); bool retVal = false; for (;;) { if (listHeader->allocatedChunks < CHUNKS_IN_ONE_LIST) { - qptrdiff offset = static_cast(reinterpret_cast(listHeader) - - reinterpret_cast(chunk->data())); header->offsetsToFreeChunkLists[index] = offset; retVal = true; break; @@ -277,7 +275,8 @@ if (listHeader->nextListOffset == -1) { break; } - listHeader = address(listHeader->nextListOffset); + offset = listHeader->nextListOffset; + listHeader = address(offset); } return retVal; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbnamespace.cpp --- a/src/hbcore/core/hbnamespace.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbnamespace.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -161,12 +161,6 @@ Indicates whether widget and its children (classes derived from HbWidgetBase) are inside popup. */ -/*! \deprecated - - \var Hb::WidgetAttribute Hb::InputMethodNeutral - Indicates that the widget does not want to change the state of the input method. - In practice this means that virtual keyboard is not closed if focus is changed from editor to this widget. -*/ /*! \var Hb::WidgetAttribute Hb::Widget @@ -522,10 +516,6 @@ Sent went a selectable widget (like a check box) changes its selection state. */ -/*! \deprecated Hb::InstantMultitouchActivated - is deprecated. Use Hb::InstantAdvancedGestureActivated instead. -*/ - /*! \var Hb::InstantAdvancedGestureActivated Sent when a touch gesture involving more then one finger can be performed. For example a second touch point is detected and a pinch gesture can be performed. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbnamespace.h --- a/src/hbcore/core/hbnamespace.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbnamespace.h Fri Sep 17 08:32:10 2010 +0300 @@ -188,8 +188,7 @@ enum WidgetAttribute { InteractionDisabled = 0x00000001, InsidePopup = 0x00000002, - InputMethodNeutral = 0x00000004, - Widget = 0x00000008 + Widget = 0x00000004 }; Q_DECLARE_FLAGS(WidgetAttributes, WidgetAttribute) @@ -303,7 +302,6 @@ InstantBoundaryReached, InstantRotated90Degrees, InstantSelectionChanged, - InstantMultitouchActivated, // deprecated InstantAdvancedGestureActivated, /* add new standard instant interactions here */ NumberOfInstantInteractions, diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsensorlistener.cpp --- a/src/hbcore/core/hbsensorlistener.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsensorlistener.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -95,25 +95,25 @@ CRepository *repository = 0; TRAPD(err, repository = CRepository::NewL(KHbSensorCenrepUid)); if (err) { - qWarning("HbSensorListener::checkCenrepValue; repository->NewL fails, error code = %d", err); + hbWarning("HbSensorListener::checkCenrepValue; repository->NewL fails, error code = %d", err); } else { TInt value = 0; TInt err = repository->Get(KHbSensorCenrepKey, value); if (err == KErrNone) { cenrepValueChanged(value, false); } else { - qWarning("HbSensorListener::checkCenrepValue: repository->Get fails, error code = %d", err); + hbWarning("HbSensorListener::checkCenrepValue: repository->Get fails, error code = %d", err); } delete repository; } if (!mNotifyHandler) { TRAPD(err, mNotifyHandler = HbSensorNotifyHandler::NewL(*this)); if (err) { - qWarning("HbSensorListener::HbSensorListener: HbSensorNotifyHandler::NewL failed = %d", err); + hbWarning("HbSensorListener::HbSensorListener: HbSensorNotifyHandler::NewL failed = %d", err); } else { TRAPD(err, mNotifyHandler->startObservingL()); if (err) { - qWarning("HbSensorListener::HbSensorListener: mNotifyHandler->startObservingL failed = %d", err); + hbWarning("HbSensorListener::HbSensorListener: mNotifyHandler->startObservingL failed = %d", err); } } } @@ -191,7 +191,7 @@ if (!err) { TRAP_IGNORE(mSensrvChannel->StartDataListeningL(this, 1, 1, 0)); } else { - qWarning("HbSensorListener::startSensorChannel fails, error code = %d", err); + hbWarning("HbSensorListener::startSensorChannel fails, error code = %d", err); } } } @@ -200,7 +200,7 @@ CleanupStack::Pop(&channelInfoList); CleanupStack::PopAndDestroy(sensrvChannelFinder); } else { - qWarning("HbSensorListener::startSensorChannel fails, error code = %d", err); + hbWarning("HbSensorListener::startSensorChannel fails, error code = %d", err); } #endif } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsensornotifyhandler_p.cpp --- a/src/hbcore/core/hbsensornotifyhandler_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsensornotifyhandler_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -49,7 +49,7 @@ { TRAPD(err, mRepository = CRepository::NewL(KHbSensorCenrepUid)); if (err) { - qWarning("mRepository::NewL fails, error code = %d", err); + hbWarning("mRepository::NewL fails, error code = %d", err); } CActiveScheduler::Add(this); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsharedcache.cpp --- a/src/hbcore/core/hbsharedcache.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsharedcache.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -25,6 +25,7 @@ #include "hbsharedcache_p.h" #include "hbsharedmemorymanager_p.h" +#include "hbhash_p.h" #ifdef HB_BIN_CSS #include "hbcssconverterutils_p.h" #endif @@ -70,21 +71,6 @@ } /*! - return hash value for \a string. -*/ -quint32 HbSharedCache::hash(const QStringRef &string) -{ - quint32 hashValue = 0; - const QChar *data = string.unicode(); - int size = string.size(); - while (size--) { - hashValue = data->unicode() + (hashValue << 6) + (hashValue << 16) - hashValue; - ++data; - } - return hashValue; -} - -/*! adds \a offset using key \a key. \a itemType is the type of the structure, where offset points to. Only acceptable separator for key is '/'. @@ -154,24 +140,20 @@ //try first in prebuilt offset map. length -= WidgetMLFileExtension.length(); QStringRef widgetname(&filePath, position, length); - HbOffsetItem find(hash(widgetname)); + HbOffsetItem find(hbHash(widgetname)); const HbOffsetItem *end = mOffsetItems + mOffsetItemCount; const HbOffsetItem *offsetItem = qBinaryFind(mOffsetItems, end, find); if (offsetItem != end) { -#ifdef CSSBIN_TRACES - qDebug() << "Offset item found from static cache map for widget: " << widgetname; -#endif + THEME_CSSBIN_DEBUG() << "Offset item found from static cache map for widget: " << widgetname; qint32 tableSize = 0; const HbLayoutIndexItem *begin = layoutIndexItemBegin( offsetItem->offsetLayoutIndexTable, &tableSize); if (begin) { const HbLayoutIndexItem *end = begin + tableSize; - HbLayoutIndexItem find(hash(QStringRef(&layout)), hash(QStringRef(§ion))); + HbLayoutIndexItem find(hbHash(QStringRef(&layout)), hbHash(QStringRef(§ion))); const HbLayoutIndexItem *item = qBinaryFind(begin, end, find); if (item != end) { -#ifdef CSSBIN_TRACES - qDebug() << "Layout definition offset found for layout: " << layout; -#endif + THEME_CSSBIN_DEBUG() << "Layout definition offset found for layout: " << layout; offset = item->offset; } } @@ -221,13 +203,11 @@ length -= CSSFileExtension.length(); } QStringRef widgetname(&key, position, length); - HbOffsetItem find(hash(widgetname)); + HbOffsetItem find(hbHash(widgetname)); const HbOffsetItem *end = mOffsetItems + mOffsetItemCount; const HbOffsetItem *offsetItem = qBinaryFind(mOffsetItems, end, find); if (offsetItem != end) { -#ifdef CSSBIN_TRACES - qDebug() << "Offset item found from static cache map for widget: " << widgetname; -#endif + THEME_CSSBIN_DEBUG() << "Offset item found from static cache map for widget: " << widgetname; offset = (isColorCSS) ? offsetItem->offsetColorCSS : offsetItem->offsetCSS; } } @@ -405,9 +385,7 @@ //server creates the semaphore. Semaphore = new QSystemSemaphore(SemaphoreName, 1, QSystemSemaphore::Create); -#ifdef CSSBIN_TRACES - qDebug() << "css offset items total: " << mOffsetItemCount; -#endif + THEME_CSSBIN_DEBUG() << "css offset items total: " << mOffsetItemCount; } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsharedcache_p.h --- a/src/hbcore/core/hbsharedcache_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsharedcache_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -98,7 +98,6 @@ Effect }; static HbSharedCache *instance(); - static quint32 hash(const QStringRef &string); bool add(ItemType itemType, const QString &key, qptrdiff offset); bool addLayoutDefinition(const QString &filePath, const QString &layout, diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsharedmemoryallocators_p.h --- a/src/hbcore/core/hbsharedmemoryallocators_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsharedmemoryallocators_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -39,10 +39,11 @@ static const int MAXIMUM_ALLOC_SIZE_FOR_SUBALLOCATOR = 224; // used to identify memory allocated by main or sub allocator -// if metadata (integer just before allocated data) & MAIN_ALLOCATOR_IDENTIFIER +// if metadata (qptrdiff just before allocated data) & MAIN_ALLOCATOR_IDENTIFIER // == true, data was allocated using main allocator, otherwise suballocator -// was used -static const int MAIN_ALLOCATOR_IDENTIFIER = 0x80000000; +// was used. This works because suballocator saves aligned offsets to metadata and +// they can't be odd. +static const qptrdiff MAIN_ALLOCATOR_IDENTIFIER = 1; // max. amount of different chunk sizes in multisegment allocator static const int AMOUNT_OF_DIFFERENT_CHUNK_SIZES = 8; @@ -128,12 +129,12 @@ TreeNode pointerNode; quintptr next; quintptr prev; - int allocatorIdentifier; + qptrdiff allocatorIdentifier; }; struct HeapHeader { - quintptr identifier; + quint32 identifier; quintptr lengthNode; quintptr pointerNode; int freeBytes; @@ -184,7 +185,7 @@ private: struct MultiAllocatorHeader { - quintptr identifier; + quint32 identifier; // always points to the first list qptrdiff offsetsToChunkLists[AMOUNT_OF_DIFFERENT_CHUNK_SIZES]; // always points to the list with free chunks diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsharedmemorymanager_p.cpp --- a/src/hbcore/core/hbsharedmemorymanager_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsharedmemorymanager_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -253,9 +253,7 @@ writable = false; } if ( !success ) { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbSharedMemoryManager:: Could not initialize shared memory chunk"; -#endif //THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << "HbSharedMemoryManager:: Could not initialize shared memory chunk"; delete chunk; chunk = 0; } @@ -287,11 +285,11 @@ chunkHeader->mainAllocatorOffset = memoryFileSize ? ALIGN(memoryFileSize) : sizeof(HbSharedChunkHeader); // Clear also allocator identifier so that they will not try to re-connect - int *mainAllocatorIdentifier = address(chunkHeader->mainAllocatorOffset); + quint32 *mainAllocatorIdentifier = address(chunkHeader->mainAllocatorOffset); *mainAllocatorIdentifier = 0; mainAllocator->initialize(chunk, chunkHeader->mainAllocatorOffset); chunkHeader->subAllocatorOffset = alloc(SPACE_NEEDED_FOR_MULTISEGMENT_ALLOCATOR); - int *subAllocatorIdentifier = address(chunkHeader->subAllocatorOffset); + quint32 *subAllocatorIdentifier = address(chunkHeader->subAllocatorOffset); *subAllocatorIdentifier = 0; subAllocator->initialize(chunk, chunkHeader->subAllocatorOffset, mainAllocator); chunkHeader->identifier = INITIALIZED_CHUNK_IDENTIFIER; @@ -413,7 +411,7 @@ { // don't do anything when freeing NULL (pointer)offset if (isWritable() && (offset > 0)) { - int metaData = *address(offset - sizeof(int)); + qptrdiff metaData = *address(offset - sizeof(qptrdiff)); #ifdef HB_THEME_SERVER_MEMORY_REPORT int size = 0; if (metaData & MAIN_ALLOCATOR_IDENTIFIER) { @@ -462,7 +460,7 @@ HbCssConverterUtils::cellMoved(offset, newOffset); #endif unsigned char *scrPtr = address(offset); - int metaData = *address(offset - sizeof(int)); + qptrdiff metaData = *address(offset - sizeof(qptrdiff)); if (metaData & MAIN_ALLOCATOR_IDENTIFIER) { int oldSize = mainAllocator->allocatedSize(offset); memcpy(address(newOffset), scrPtr, qMin(oldSize, allocatedSize)); @@ -593,9 +591,7 @@ if (!memManager) { memManager = new HbSharedMemoryManager(); if (!memManager->initialize()) { -#ifdef THEME_SERVER_TRACES - qWarning( "HbSharedMemoryManager:Could not initialize shared memory" ); -#endif + THEME_GENERIC_DEBUG() << "HbSharedMemoryManager:Could not initialize shared memory"; delete memManager; memManager = 0; } @@ -633,10 +629,8 @@ int HbSharedMemoryManager::loadMemoryFile(const QString &filePath) { int loadedSize = 0; - -#ifdef CSSBIN_TRACES - qDebug() << "loading: " << filePath; -#endif + THEME_CSSBIN_DEBUG() << "loading: " << filePath; + QFile file(filePath); if(file.open(QFile::ReadOnly)) { qint64 fileSize = file.size(); @@ -644,9 +638,7 @@ file.close(); loadedSize = (int)fileSize; } -#ifdef CSSBIN_TRACES - qDebug() << "Loading memory file status: " << (loadedSize > 0 ? "no error" : file.errorString()); -#endif + THEME_CSSBIN_DEBUG() << "Loading memory file status: " << (loadedSize > 0 ? "no error" : file.errorString()); return loadedSize; } @@ -685,7 +677,7 @@ QFile file(filePath); if (!file.open(QFile::WriteOnly | QFile::Append | QFile::Text)) { - qWarning() << "Create shared memory report error - can't write to file " << filePath; + hbWarning() << "Create shared memory report error - can't write to file " << filePath; return; } @@ -791,7 +783,7 @@ #endif file.close(); if (file.error()) { - qWarning() << "Create shared memory report error - error with file " << filePath; + hbWarning() << "Create shared memory report error - error with file " << filePath; } } #endif diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsharedmemorymanagerut_p.cpp --- a/src/hbcore/core/hbsharedmemorymanagerut_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsharedmemorymanagerut_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -52,9 +52,7 @@ } writable = true; if ( !success ) { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbSharedMemoryManager:: Could not initialize shared memory chunk"; -#endif //THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << "HbSharedMemoryManager:: Could not initialize shared memory chunk"; delete chunk; chunk = 0; } @@ -70,13 +68,14 @@ mainAllocator->initialize(chunk, chunkHeader->mainAllocatorOffset); subAllocator->initialize(chunk, chunkHeader->subAllocatorOffset, mainAllocator); } else { + memset(chunkHeader, 0, sizeof(HbSharedChunkHeader)); chunkHeader->mainAllocatorOffset = sizeof(HbSharedChunkHeader); // Clear also allocator identifier so that they will not try to re-connect - qptrdiff *mainAllocatorIdentifier = reinterpret_cast(static_cast(base()) + chunkHeader->mainAllocatorOffset); + quint32 *mainAllocatorIdentifier = reinterpret_cast(static_cast(base()) + chunkHeader->mainAllocatorOffset); *mainAllocatorIdentifier = 0; mainAllocator->initialize(chunk, chunkHeader->mainAllocatorOffset); chunkHeader->subAllocatorOffset = alloc(SPACE_NEEDED_FOR_MULTISEGMENT_ALLOCATOR); - qptrdiff *subAllocatorIdentifier = reinterpret_cast(static_cast(base()) + chunkHeader->subAllocatorOffset); + quint32 *subAllocatorIdentifier = reinterpret_cast(static_cast(base()) + chunkHeader->subAllocatorOffset); *subAllocatorIdentifier = 0; subAllocator->initialize(chunk, chunkHeader->subAllocatorOffset, mainAllocator); chunkHeader->identifier = INITIALIZED_CHUNK_IDENTIFIER; @@ -128,7 +127,7 @@ if( !memManager ){ memManager = new HbSharedMemoryManagerUt(); if( !memManager->initialize() ) { - qWarning( "HbSharedMemoryManager:Could not initialize shared memory" ); + hbWarning( "HbSharedMemoryManager:Could not initialize shared memory" ); delete memManager; memManager = 0; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsmartoffset_p.h --- a/src/hbcore/core/hbsmartoffset_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsmartoffset_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -50,7 +50,6 @@ if (mOffset != -1) { HbMemoryManager * manager = HbMemoryManager::instance(mType); manager->free(mOffset); - qDebug() << "HbSmartOffset::~HbSmartOffset() offset = " << mOffset; } } private: diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbsplaytreeallocator_p.cpp --- a/src/hbcore/core/hbsplaytreeallocator_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbsplaytreeallocator_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,7 +36,7 @@ // this identifier is used to check, if the splay tree is already // initialized in given shared chunk -const quintptr INITIALIZED_ALLOCATOR_IDENTIFIER = 0x53504C59; //'SPLY' +const quint32 INITIALIZED_ALLOCATOR_IDENTIFIER = 0x53504C59; //'SPLY' /** * HbSplayTreeAllocator::initialize diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbthemeindex.cpp --- a/src/hbcore/core/hbthemeindex.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbthemeindex.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -24,6 +24,7 @@ ****************************************************************************/ #include "hbthemeindex_p.h" +#include "hbhash_p.h" #include #ifndef HB_BOOTSTRAPPED #include "hbthemeclient_p.h" @@ -32,7 +33,18 @@ HbThemeIndexResource::HbThemeIndexResource(const QString &resourceName) : - resourceName(resourceName), + resourceName(&resourceName), + hashValue(0), + data(0) +{ +#ifndef HB_BOOTSTRAPPED + getResourceData(); +#endif // HB_BOOTSTRAPPED +} + +HbThemeIndexResource::HbThemeIndexResource(quint32 hashValue) : + resourceName(0), + hashValue(hashValue), data(0) { #ifndef HB_BOOTSTRAPPED @@ -44,7 +56,11 @@ { #ifndef HB_BOOTSTRAPPED #ifdef THEME_INDEX_TRACES - qDebug() << "HbThemeIndexResource::getResourceData(), resourceName: " << resourceName; + if ( resourceName ) { + qDebug() << "HbThemeIndexResource::getResourceData(), resourceName: " << *resourceName; + } else { + qDebug() << "HbThemeIndexResource::getResourceData(), hashValue: " << hashValue; + } #endif // Theme index tables are always valid in shared memory @@ -65,18 +81,22 @@ // First check base theme, which should be always valid HbThemeIndexInfo info = HbThemeUtils::getThemeIndexInfo(BaseTheme); if (!info.address) { // This shouldn't happen, as there must be valid base theme -#ifdef THEME_INDEX_TRACES - qDebug("HbThemeUtils::getThemeIndexInfo(BaseTheme) returned null address"); -#endif + THEME_INDEX_DEBUG() << "HbThemeUtils::getThemeIndexInfo(BaseTheme) returned null address"; return; // Data will be 0 } HbThemeIndex baseIndex(info.address); - const HbThemeIndexItemData *baseItemData = baseIndex.getItemData(resourceName); + const HbThemeIndexItemData *baseItemData = resourceName + ? baseIndex.getItemData(*resourceName) + : baseIndex.getItemData(hashValue); if (!baseItemData) { // If the item is not found from base theme, it can't be found elsewhere #ifdef THEME_INDEX_TRACES - qDebug("HbThemeIndex::getItemData(%s) returned null data", qPrintable(resourceName)); + if ( resourceName ) { + qDebug("HbThemeIndex::getItemData(%s) returned null data", qPrintable(*resourceName)); + } else { + qDebug("HbThemeIndex::getItemData(%u) returned null data", hashValue); + } #endif return; // Data will be 0 } @@ -92,7 +112,9 @@ info = HbThemeUtils::getThemeIndexInfo(OperatorC); if (info.address) { HbThemeIndex operatorCIndex(info.address); - const HbThemeIndexItemData *operatorCItemData = operatorCIndex.getItemData(resourceName); + const HbThemeIndexItemData *operatorCItemData = resourceName + ? operatorCIndex.getItemData(*resourceName) + : operatorCIndex.getItemData(hashValue); if (operatorCItemData) { // Found, use it type = OperatorC; @@ -107,7 +129,9 @@ info = HbThemeUtils::getThemeIndexInfo(OperatorROM); if (info.address) { HbThemeIndex operatorZIndex(info.address); - const HbThemeIndexItemData *operatorZItemData = operatorZIndex.getItemData(resourceName); + const HbThemeIndexItemData *operatorZItemData = resourceName + ? operatorZIndex.getItemData(*resourceName) + : operatorZIndex.getItemData(hashValue); if (operatorZItemData) { // Found, use it type = OperatorROM; @@ -122,8 +146,9 @@ info = HbThemeUtils::getThemeIndexInfo(ActiveTheme); if (info.address) { HbThemeIndex activeThemeIndex(info.address); - const HbThemeIndexItemData *activeThemeItemData = - activeThemeIndex.getItemData(resourceName); + const HbThemeIndexItemData *activeThemeItemData = resourceName + ? activeThemeIndex.getItemData(*resourceName) + : activeThemeIndex.getItemData(hashValue); if (activeThemeItemData) { // Found, use it type = ActiveTheme; @@ -196,7 +221,7 @@ QString HbThemeIndexResource::fullFileName() { - if (!data) { + if (!data || !resourceName) { return QString(); } @@ -204,57 +229,57 @@ switch (data->itemType) { case HbThemeIndexItemData::SvgItem: { - fullName = fullName + "/icons/" + themeName + "/scalable/" + resourceName + ".svg"; + fullName = fullName + "/icons/" + themeName + "/scalable/" + *resourceName + ".svg"; break; } case HbThemeIndexItemData::PngItem: { - fullName = fullName + "/icons/" + themeName + "/pixmap/" + resourceName + ".png"; + fullName = fullName + "/icons/" + themeName + "/pixmap/" + *resourceName + ".png"; break; } case HbThemeIndexItemData::MngItem: { - fullName = fullName + "/icons/" + themeName + "/pixmap/" + resourceName + ".mng"; + fullName = fullName + "/icons/" + themeName + "/pixmap/" + *resourceName + ".mng"; break; } case HbThemeIndexItemData::GifItem: { - fullName = fullName + "/icons/" + themeName + "/pixmap/" + resourceName + ".gif"; + fullName = fullName + "/icons/" + themeName + "/pixmap/" + *resourceName + ".gif"; break; } case HbThemeIndexItemData::XpmItem: { - fullName = fullName + "/icons/" + themeName + "/pixmap/" + resourceName + ".xpm"; + fullName = fullName + "/icons/" + themeName + "/pixmap/" + *resourceName + ".xpm"; break; } case HbThemeIndexItemData::JpgItem: { - fullName = fullName + "/icons/" + themeName + "/pixmap/" + resourceName + ".jpg"; + fullName = fullName + "/icons/" + themeName + "/pixmap/" + *resourceName + ".jpg"; break; } case HbThemeIndexItemData::NvgItem: { - fullName = fullName + "/icons/" + themeName + "/scalable/" + resourceName + ".nvg"; + fullName = fullName + "/icons/" + themeName + "/scalable/" + *resourceName + ".nvg"; break; } case HbThemeIndexItemData::SvgzItem: { - fullName = fullName + "/icons/" + themeName + "/scalable/" + resourceName + ".svgz"; + fullName = fullName + "/icons/" + themeName + "/scalable/" + *resourceName + ".svgz"; break; } case HbThemeIndexItemData::QpicItem: { - fullName = fullName + "/icons/" + themeName + "/pixmap/" + resourceName + ".qpic"; + fullName = fullName + "/icons/" + themeName + "/pixmap/" + *resourceName + ".qpic"; break; } case HbThemeIndexItemData::AxmlItem: { - fullName = fullName + "/animations/" + themeName + '/' + resourceName; + fullName = fullName + "/animations/" + themeName + '/' + *resourceName; break; } case HbThemeIndexItemData::FxmlItem: { - fullName = fullName + "/effects/" + themeName + '/' + resourceName; + fullName = fullName + "/effects/" + themeName + '/' + *resourceName; break; } default: @@ -268,7 +293,7 @@ QString HbThemeIndexResource::fullMirroredFileName() { - if (!data) { + if (!data || !resourceName) { return QString(); } @@ -277,55 +302,55 @@ case HbThemeIndexItemData::SvgItem: { fullName = fullName + "/icons/" + themeName + "/scalable/mirrored/" - + resourceName + ".svg"; + + *resourceName + ".svg"; break; } case HbThemeIndexItemData::PngItem: { fullName = fullName + "/icons/" + themeName + "/pixmap/mirrored/" - + resourceName + ".png"; + + *resourceName + ".png"; break; } case HbThemeIndexItemData::MngItem: { fullName = fullName + "/icons/" + themeName + "/pixmap/mirrored/" - + resourceName + ".mng"; + + *resourceName + ".mng"; break; } case HbThemeIndexItemData::GifItem: { fullName = fullName + "/icons/" + themeName + "/pixmap/mirrored/" - + resourceName + ".gif"; + + *resourceName + ".gif"; break; } case HbThemeIndexItemData::XpmItem: { fullName = fullName + "/icons/" + themeName + "/pixmap/mirrored/" - + resourceName + ".xpm"; + + *resourceName + ".xpm"; break; } case HbThemeIndexItemData::JpgItem: { fullName = fullName + "/icons/" + themeName + "/pixmap/mirrored/" - + resourceName + ".jpg"; + + *resourceName + ".jpg"; break; } case HbThemeIndexItemData::NvgItem: { fullName = fullName + "/icons/" + themeName + "/scalable/mirrored/" - + resourceName + ".nvg"; + + *resourceName + ".nvg"; break; } case HbThemeIndexItemData::SvgzItem: { fullName = fullName + "/icons/" + themeName + "/scalable/mirrored/" - + resourceName + ".svgz"; + + *resourceName + ".svgz"; break; } case HbThemeIndexItemData::QpicItem: { fullName = fullName + "/icons/" + themeName + "/pixmap/mirrored/" - + resourceName + ".qpic"; + + *resourceName + ".qpic"; break; } default: @@ -340,13 +365,11 @@ QColor HbThemeIndexResource::colorValue() { if (!data || data->itemType != HbThemeIndexItemData::ColorItem) { - qWarning("HbThemeIndexResource::colorValue(): cannot fetch color for 0x%p::%i", + THEME_INDEX_DEBUG("HbThemeIndexResource::colorValue(): cannot fetch color for 0x%p::%i", data, data ? data->itemType : (uint) -1); return QColor(); } -#ifdef THEME_INDEX_TRACES - qDebug("HbThemeIndexResource::colorValue(): constructing QColor(%x)", data->colorValue); -#endif // THEME_INDEX_TRACES + THEME_INDEX_DEBUG() << "HbThemeIndexResource::colorValue(): constructing QColor with value:" << data->colorValue; return QColor(data->colorValue); } @@ -379,29 +402,17 @@ initialized = true; } -quint32 HbThemeIndex::hash(const QString &string) +const HbThemeIndexItemData *HbThemeIndex::getItemData(const QString &itemName) { - quint32 hashValue = 0; - quint32 c; - QByteArray array = string.toLatin1(); - char *data = array.data(); - c = *data++; - - while (c) { - hashValue = c + (hashValue << 6) + (hashValue << 16) - hashValue; - c = *data++; - } - - return hashValue; + return getItemData(hbHash(itemName)); } -const HbThemeIndexItemData *HbThemeIndex::getItemData(const QString &itemName) +const HbThemeIndexItemData *HbThemeIndex::getItemData(quint32 hashValue) { if (!initialized) { init(); } - quint32 hashValue = hash(itemName); int begin = 0; int end = mItemCount - 1; @@ -449,11 +460,9 @@ indexOK = true; } - #ifdef THEME_INDEX_TRACES if (!indexOK) { - qDebug() << "ThemeIndex: Index file corrupted (index size is wrong)!"; + THEME_INDEX_DEBUG() << "ThemeIndex: Index file corrupted (index size is wrong)!"; } - #endif return indexOK; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/core/hbthemeindex_p.h --- a/src/hbcore/core/hbthemeindex_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/core/hbthemeindex_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -51,8 +51,8 @@ int itemCount(); bool validateItems(qint64 byteSize); - static quint32 hash(const QString &string); const HbThemeIndexItemData *getItemData(const QString &itemName); + const HbThemeIndexItemData *getItemData(quint32 hashValue); private: void init(); @@ -120,6 +120,7 @@ { public: HbThemeIndexResource(const QString &resourceName); + HbThemeIndexResource(quint32 hashValue); ~HbThemeIndexResource(); bool isValid(); @@ -133,7 +134,8 @@ private: void getResourceData(); - const QString &resourceName; + const QString *resourceName; + quint32 hashValue; const HbThemeIndexItemData *data; // not owned QString basePath; QString themeName; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/cssparser/hbcssparser_p.cpp --- a/src/hbcore/cssparser/hbcssparser_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/cssparser/hbcssparser_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -44,6 +44,7 @@ #include "hblayeredstyleloader_p.h" #include "hbthemeindex_p.h" #include "hblayoutparameters_p.h" +#include "hbhash_p.h" using namespace HbCss; @@ -181,38 +182,16 @@ #ifndef HB_BIN_CSS /////////////////////////////////////////////////////////////////////////////// // Value Extractor -ValueExtractor::ValueExtractor(const HbVector &decls, const HbDeviceProfile &profile) -: declarations(decls), layoutParameters(0), currentProfile(profile) -{ -} ValueExtractor::ValueExtractor( - const HbVector &decls, - const HbLayoutParameters &layoutParameters, + const HbVector &decls, const HbDeviceProfile &profile) -: declarations(decls), layoutParameters(&layoutParameters), currentProfile(profile) +: declarations(decls), layoutParameters(0), variables(0), currentProfile(profile) { } -ValueExtractor::ValueExtractor( - const HbVector &varDecls, - bool isVariable, - const HbDeviceProfile &profile) -: variableDeclarations(varDecls), layoutParameters(0), currentProfile(profile) +ValueExtractor::ValueExtractor( const HbDeviceProfile &profile) +: layoutParameters(0), variables(0), currentProfile(profile) { - Q_UNUSED(isVariable) - // Initialize to some profile. - if ( currentProfile.isNull() ) { - currentProfile = HbDeviceProfile::current(); - } -} - -ValueExtractor::ValueExtractor( - const HbLayoutParameters &layoutParameters, - bool isVariable, - const HbDeviceProfile &profile) -: layoutParameters(&layoutParameters), currentProfile(profile) -{ - Q_UNUSED(isVariable) // Initialize to some profile. if ( currentProfile.isNull() ) { currentProfile = HbDeviceProfile::current(); @@ -235,6 +214,14 @@ return v.variant.toDouble() / 100.0; } else if (v.type == Value::Number) { return v.variant.toDouble(); + } else if (v.type == Value::Variable || v.type == Value::VariableNegative) { + qreal factor = (v.type == Value::Variable) ? 1.0 : -1.0; + qreal variableValue(0.0); + bool tempOk = extractVariableValue((quint32)v.variant.toInt(), variableValue); + if (ok) { + *ok = tempOk; + } + return factor * variableValue; } QString s = v.variant.toString(); @@ -797,50 +784,45 @@ : QColor::fromHsv(v1, v2, v3, alpha); } -bool ValueExtractor::extractVariableValue(const QString& variableName, qreal& realValue) +bool ValueExtractor::extractVariableValue(quint32 hashValue, HbCss::Value &value) const { bool variableFound = false; - HbCss::Value value; - if (extractVariableValue(variableName, value)) { - realValue = asReal(value); + if (layoutParameters && !layoutParameters->isEmpty()) { + HbLayoutParameters::const_iterator i = layoutParameters->find(hashValue); + if (i != layoutParameters->end()) { + value = layoutParameters->value(i); + variableFound = true; + } + } else if (variables && !variables->isEmpty()) { + QHash::const_iterator f = variables->find(hashValue); + if (f != variables->end() && !f.value().values.isEmpty()) { + value = f.value().values.first(); + variableFound = true; + } + } + return variableFound; +} + + +bool ValueExtractor::extractVariableValue(quint32 hashValue, qreal& value) +{ + bool variableFound = false; + HbCss::Value v; + if (extractVariableValue(hashValue, v)) { + value = asReal(v); variableFound = true; } return variableFound; } -bool ValueExtractor::extractVariableValue( const QString& variableName, HbCss::Value &val ) const +bool ValueExtractor::extractVariableValue(const QString& variableName, HbCss::Value &value) const { - bool variableFound = false; - if (layoutParameters && !layoutParameters->isEmpty()) { - HbLayoutParameters::const_iterator i = layoutParameters->find(variableName); - if (i != layoutParameters->end()) { - val = layoutParameters->value(i); - variableFound = true; - } - } else if (!variableDeclarationsHash.isEmpty()) { - QHash::const_iterator f = variableDeclarationsHash.find(variableName); - if (f != variableDeclarationsHash.end() && !f.value().values.isEmpty()) { - val = f.value().values.first(); - variableFound = true; - } - } else { - const int variableCount = variableDeclarations.count(); - for (int i=variableCount-1; i>=0; i--) { - if (variableDeclarations.at(i).property == variableName ) { - val = variableDeclarations.at(i).values.first(); - variableFound = true; - break; - } - } - } + return extractVariableValue(hbHash(variableName), value); +} - //for variable cascading support - if ( variableFound ) { - if ( val.type == Value::Variable ){ - variableFound = extractVariableValue(val.variant.toString(), val); - } - } - return variableFound; +bool ValueExtractor::extractVariableValue(const QString& variableName, qreal& value) +{ + return extractVariableValue(hbHash(variableName), value); } bool ValueExtractor::extractExpressionValue(QString &expression, qreal &value) @@ -1136,14 +1118,14 @@ { HbCss::Value value; if ( decl.values.at(0).type == Value::Variable ) { - const QString variableName = decl.values.at(0).variant.toString(); - HbThemeIndexResource resource(variableName); + quint32 hashValue = (quint32)decl.values.at(0).variant.toInt(); + HbThemeIndexResource resource(hashValue); if (resource.isValid()) { // Color value coming from index color = resource.colorValue(); } else { // Color value coming from custom css - extractVariableValue( variableName, value ); + extractVariableValue( hashValue, value ); color = parseColorValue(value); } } else { @@ -1561,7 +1543,7 @@ return decls; } -void StyleSelector::variableRuleSets(QHash *variables) const +void StyleSelector::variableRuleSets(QHash *variables) const { HbVector decls; const int styleSheetsCount = styleSheets.count(); @@ -1572,7 +1554,7 @@ decls = styleSheet->variableRules.at(j).declarations; const int declsCount = decls.count(); for (int k=0; kinsert(decls.at(k).property, decls.at(k)); + variables->insert(hbHash(decls.at(k).property), decls.at(k)); } } } @@ -2404,10 +2386,10 @@ //changes for variable support else if (name == QLatin1String("var")) { value->type = Value::Variable; - value->variant = args; + value->variant = (int)hbHash( args ); } else if (name == QLatin1String("-var")) { value->type = Value::VariableNegative; - value->variant = args; + value->variant = (int)hbHash( args ); } //change end //changes for expression support else if (name == QLatin1String("expr")) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/cssparser/hbcssparser_p.h --- a/src/hbcore/cssparser/hbcssparser_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/cssparser/hbcssparser_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -457,14 +457,15 @@ struct HB_CORE_PRIVATE_EXPORT ValueExtractor //krazy:exclude=multiclasses { ValueExtractor(const HbVector &declarations, const HbDeviceProfile &profile); - ValueExtractor(const HbVector &declarations, const HbLayoutParameters &layoutParameters, - const HbDeviceProfile &profile); - ValueExtractor(const HbVector &varDeclarations, bool isVariable, const HbDeviceProfile &profile = HbDeviceProfile()); - ValueExtractor(const HbLayoutParameters &layoutParameters, bool isVariable, const HbDeviceProfile &profile = HbDeviceProfile()); - void setVariableDeclarationHash(const QHash &varDeclarations) { variableDeclarationsHash = varDeclarations; } + ValueExtractor(const HbDeviceProfile &profile = HbDeviceProfile()); + + void setLayoutParameters(const HbLayoutParameters &layoutParams) { layoutParameters = &layoutParams; } + void setVariables(const QHash &vars) { variables = &vars; } - bool extractVariableValue(const QString &variableName, qreal& value); + bool extractVariableValue(quint32 hashValue, HbCss::Value &value) const; + bool extractVariableValue(quint32 hashValue, qreal &value); bool extractVariableValue(const QString &variableName, HbCss::Value &value) const; + bool extractVariableValue(const QString &variableName, qreal &value); bool extractExpressionValue(QString &expression, qreal &value); bool extractKnownProperties(KnownProperties &prop); @@ -498,9 +499,10 @@ }; HbVector declarations; - HbVector variableDeclarations; //for variables + const HbLayoutParameters *layoutParameters; - QHash variableDeclarationsHash; + const QHash *variables; + HbDeviceProfile currentProfile; QList expressionValues; // for parsed expression string }; @@ -723,7 +725,7 @@ QVector weightedDeclarationsForNode(NodePtr node, const Qt::Orientation orientation, const char *extraPseudo = 0) const; HbVector styleRulesForNode(NodePtr node, const Qt::Orientation orientation) const; HbVector declarationsForNode(NodePtr node, const Qt::Orientation orientation, const char *extraPseudo = 0) const; - void variableRuleSets(QHash *variables) const; + void variableRuleSets(QHash *variables) const; virtual int nodeNameEquals(NodePtr node, const HbString& nodeName) const = 0; virtual bool attributeMatches(NodePtr node, const AttributeSelector &attr) const = 0; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/cssparser/hblayeredstyleloader_p.cpp --- a/src/hbcore/cssparser/hblayeredstyleloader_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/cssparser/hblayeredstyleloader_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -570,7 +570,7 @@ /*! Provides the variable rule sets for the loaded CSS files. */ -void HbLayeredStyleLoader::variableRuleSets(QHash *variables) const +void HbLayeredStyleLoader::variableRuleSets(QHash *variables) const { HbLayeredStyleLoader *allStack = mConcern == Concern_All ? 0 : getStack(Concern_All); @@ -604,24 +604,6 @@ } /*! - Finds the variable from core layer. The found varibale is returned in val - - \return True if it finds in default colorgroup.css, false otherwise -*/ -bool HbLayeredStyleLoader::findInDefaultVariables( - const QString& variableName, - HbCss::Value &val) const -{ - bool found = false; - if (mDefaultVariables.contains(variableName)) { - val = mDefaultVariables.value(variableName).values.first(); - found = true; - } - return found; -} - - -/*! Updates the cached list of used layers to include the specified layer. If this is the All stack, all other stacks' used lists are also updated to include this layer. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/cssparser/hblayeredstyleloader_p.h --- a/src/hbcore/cssparser/hblayeredstyleloader_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/cssparser/hblayeredstyleloader_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -75,7 +75,6 @@ void clear(); void clear(LayerPriority priority); - bool findInDefaultVariables( const QString& variableName, HbCss::Value &val ) const; public: bool hasOrientationSpecificStyleRules(HbStyleSelector::NodePtr node) const; @@ -83,7 +82,7 @@ const Qt::Orientation orientation, const char *extraPseudo = 0) const; HbVector styleRulesForNode(HbStyleSelector::NodePtr node, const Qt::Orientation orientation) const; - void variableRuleSets(QHash *variables) const; + void variableRuleSets(QHash *variables) const; protected: void updateLayersListIfRequired(LayerPriority priority); @@ -93,7 +92,7 @@ private: PriorityLayerMap mStyleLayers; Concern mConcern; - mutable QHash mDefaultVariables; + mutable QHash mDefaultVariables; #ifdef HB_CSS_INSPECTOR HbCss::StyleSheet *mCurrentSheet; #endif diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbbatteryindicator.cpp --- a/src/hbcore/decorators/hbbatteryindicator.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbbatteryindicator.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -204,16 +204,20 @@ HbWidget::initStyleOption(option); //battery level setting - if (d->mLevelPercent >= 0 && d->mLevelPercent <= batteryThreshold[lowLevel]) { - option->batteryLevel = HbStyleOptionBatteryIndicator::Low; - } else if (d->mLevelPercent >= batteryThreshold[lowLevel] && - d->mLevelPercent <= batteryThreshold[mediumLevel]) { - option->batteryLevel = HbStyleOptionBatteryIndicator::Medium; - } else if (d->mLevelPercent >= batteryThreshold[mediumLevel] && - d->mLevelPercent <= batteryThreshold[highLevel]) { // high + if (isCharging()) { option->batteryLevel = HbStyleOptionBatteryIndicator::Full; } else { - option->batteryLevel = HbStyleOptionBatteryIndicator::Zero; + if (d->mLevelPercent >= 0 && d->mLevelPercent <= batteryThreshold[lowLevel]) { + option->batteryLevel = HbStyleOptionBatteryIndicator::Low; + } else if (d->mLevelPercent >= batteryThreshold[lowLevel] && + d->mLevelPercent <= batteryThreshold[mediumLevel]) { + option->batteryLevel = HbStyleOptionBatteryIndicator::Medium; + } else if (d->mLevelPercent >= batteryThreshold[mediumLevel] && + d->mLevelPercent <= batteryThreshold[highLevel]) { // high + option->batteryLevel = HbStyleOptionBatteryIndicator::Full; + } else { + option->batteryLevel = HbStyleOptionBatteryIndicator::Zero; + } } option->batteryValue = d->mLevelPercent; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbindicatorbutton.cpp --- a/src/hbcore/decorators/hbindicatorbutton.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbindicatorbutton.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -37,13 +37,68 @@ #include "hbstyleoptionindicatorbutton_p.h" #if defined(Q_OS_SYMBIAN) +#include #include "hbindicatorsym_p.h" +#include "hbdevicedialogsym_p.h" +const TUid PropertyCategoryUid = {0x20022FC5}; +const TUint EventKey = 'nEvt'; #else #include "hbindicatorwin32_p.h" #endif // defined(Q_OS_SYMBIAN) static const char noteIndicatorType[] = {"com.nokia.hb.indicatormenu/1.0"}; +#if defined(Q_OS_SYMBIAN) + +class HbIndicatorButtonStatusPrivate : public CActive +{ +public: + HbIndicatorButtonStatusPrivate(HbIndicatorButtonPrivate* indicatorButtonPrivate); + ~HbIndicatorButtonStatusPrivate(); + +public: // from CActive + void RunL(); + void DoCancel(); + +private: + HbIndicatorButtonPrivate* mIndicatorButtonPrivate; + RProperty mProperty; +}; + +HbIndicatorButtonStatusPrivate::HbIndicatorButtonStatusPrivate( + HbIndicatorButtonPrivate* indicatorButtonPrivate) : CActive(CActive::EPriorityStandard), + mIndicatorButtonPrivate(indicatorButtonPrivate) +{ + CActiveScheduler::Add(this); + iStatus = KRequestPending; + mProperty.Attach(PropertyCategoryUid, EventKey); + mProperty.Subscribe(iStatus); + SetActive(); +} + +HbIndicatorButtonStatusPrivate::~HbIndicatorButtonStatusPrivate() +{ + Cancel(); + mProperty.Close(); +} + +void HbIndicatorButtonStatusPrivate::RunL() +{ + int newValue(0); + if (mProperty.Get(newValue) == KErrNone) { + mIndicatorButtonPrivate->setNewEvent(newValue == 0 ? false : true); + } + mProperty.Subscribe(iStatus); + SetActive(); +} + +void HbIndicatorButtonStatusPrivate::DoCancel() +{ + mProperty.Cancel(); +} + +#endif // defined(Q_OS_SYMBIAN) + HbIndicatorButtonPrivate::HbIndicatorButtonPrivate() : mHandleIcon(0), mDefaultAction(0), mNewEventAction(0), mProgressAction(0), mDeviceDialog(0), mProgressAnimationFound(false), mNewEventIcon(0), mNewEvent(false), mStyle(0), mIndicatorMenuOpen(false), @@ -55,6 +110,10 @@ HbIndicatorButtonPrivate::~HbIndicatorButtonPrivate() { delete mDeviceDialog; + +#if defined(Q_OS_SYMBIAN) + delete mIndicatorButtonStatusPrivate; +#endif // defined(Q_OS_SYMBIAN) } void HbIndicatorButtonPrivate::init() @@ -65,8 +124,8 @@ "qtg_anim_mono_loading.axml"); // add default actions - mDefaultAction = new HbAction(HbIcon("qtg_mono_options_menu"), "IndicatorMenu", q); - mNewEventAction = new HbAction(HbIcon("qtg_mono_new_event"), "IndicatorMenu", q); + mDefaultAction = new HbAction(HbIcon("qtg_mono_options_menu"), "", q); + mNewEventAction = new HbAction(HbIcon("qtg_mono_new_event"), "", q); QString iconName("qtg_anim_mono_loading_1"); if (mProgressAnimationFound) { @@ -74,7 +133,7 @@ } HbIcon icon(iconName); icon.setFlags(HbIcon::Colorized); - mProgressAction = new HbAction(icon, "IndicatorMenu", q); + mProgressAction = new HbAction(icon, "", q); } void HbIndicatorButtonPrivate::showIndicatorMenu() @@ -88,6 +147,10 @@ mIndicatorMenuOpen = true; updateIcon(); + +#if defined(Q_OS_SYMBIAN) + RProperty::Set(PropertyCategoryUid, EventKey, 0); +#endif // defined(Q_OS_SYMBIAN) } void HbIndicatorButtonPrivate::addIndicators(const QList &clientInfo) @@ -183,6 +246,12 @@ } } +void HbIndicatorButtonPrivate::setNewEvent(bool newEvent) +{ + mNewEvent = newEvent; + updateIcon(); +} + HbIndicatorButton::HbIndicatorButton(QGraphicsItem *parent) : HbToolButton(*new HbIndicatorButtonPrivate, parent) { @@ -206,13 +275,21 @@ connect(this, SIGNAL(pressed()), this, SLOT(handlePress())); connect(this, SIGNAL(released()), this, SLOT(handleRelease())); - - d->mDeviceDialog = new HbDeviceDialog(HbDeviceDialog::ImmediateResourceReservationFlag); + + + d->mDeviceDialog = new HbDeviceDialog(); +#if defined(Q_OS_SYMBIAN) + ((HbDeviceDialogPrivate*)HbDeviceDialogPrivate::d_ptr(d->mDeviceDialog))->connect(); +#endif connect(d->mDeviceDialog, SIGNAL(deviceDialogClosed()), this, SLOT(resetBackground())); connect(d->mDefaultAction, SIGNAL(triggered()), this, SLOT(showIndicatorMenu())); connect(d->mNewEventAction, SIGNAL(triggered()), this, SLOT(showIndicatorMenu())); connect(d->mProgressAction, SIGNAL(triggered()), this, SLOT(showIndicatorMenu())); + +#if defined(Q_OS_SYMBIAN) + d->mIndicatorButtonStatusPrivate = new HbIndicatorButtonStatusPrivate(d); +#endif // defined(Q_OS_SYMBIAN) } void HbIndicatorButton::showHandleIndication(bool show) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbindicatorbutton_p_p.h --- a/src/hbcore/decorators/hbindicatorbutton_p_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbindicatorbutton_p_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -29,6 +29,10 @@ #include #include "hbindicatorbutton_p.h" +#if defined(Q_OS_SYMBIAN) +class HbIndicatorButtonStatusPrivate; +#endif // defined(Q_OS_SYMBIAN) + class HbIndicatorButtonPrivate : public HbToolButtonPrivate { Q_DECLARE_PUBLIC(HbIndicatorButton) @@ -45,6 +49,7 @@ int findIndicator(const IndicatorClientInfo &indicator) const; void updateIcon(); void setStyle(); + void setNewEvent(bool newEvent); private: @@ -63,6 +68,10 @@ int mStyle; bool mIndicatorMenuOpen; QGraphicsItem *mTouchArea; + +#if defined(Q_OS_SYMBIAN) + HbIndicatorButtonStatusPrivate *mIndicatorButtonStatusPrivate; +#endif // defined(Q_OS_SYMBIAN) }; #endif // HBINDICATORBUTTON_P_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbstatusbar.cpp --- a/src/hbcore/decorators/hbstatusbar.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbstatusbar.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -57,6 +57,7 @@ */ HbStatusBarPrivate::HbStatusBarPrivate() : + mClockTimerId(0), mTimeTextItem(0), mSignalIndicator(0), mBatteryIndicator(0), @@ -281,6 +282,7 @@ d->q_ptr = this; d->mMainWindow = mainWindow; d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, true); createPrimitives(); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbtitlebar.cpp --- a/src/hbcore/decorators/hbtitlebar.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbtitlebar.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -98,8 +98,6 @@ // the default action's icon should mirror in case of a layout direction change icon.setMirroringMode(HbIcon::LayoutDirection); mDefaultNavigationAction->setIcon(icon); - - mDefaultNavigationAction->setText("Quit"); mNavigationButton->setAction(mDefaultNavigationAction); HbStyle::setItemName(q, "titlebar"); @@ -171,6 +169,7 @@ d->mMainWindow = mainWindow; d->init(); setFlag(QGraphicsItem::ItemIsPanel, true); + setFlag(QGraphicsItem::ItemHasNoContents, true); } HbTitleBar::HbTitleBar(HbTitleBarPrivate &dd, HbMainWindow *mainWindow, @@ -181,6 +180,8 @@ d->q_ptr = this; d->mMainWindow = mainWindow; d->init(); + setFlag(QGraphicsItem::ItemIsPanel, true); + setFlag(QGraphicsItem::ItemHasNoContents, true); } /* @@ -464,7 +465,7 @@ case QEvent::Gesture: { QGestureEvent *gestureEvent = static_cast(event); HbSwipeGesture *swipe = qobject_cast(gestureEvent->gesture(Qt::SwipeGesture)); - if(swipe) { + if (swipe) { switch (swipe->state()) { case (Qt::GestureFinished): { if(swipe->sceneHorizontalDirection() == QSwipeGesture::Right) { @@ -474,7 +475,7 @@ } gestureEvent->accept(); break; - } + } default: break; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbtitlepane.cpp --- a/src/hbcore/decorators/hbtitlepane.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbtitlepane.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -54,8 +54,8 @@ */ HbTitlePanePrivate::HbTitlePanePrivate() : - mText(), mTextItem(0), mToggled(false), mIcon(0), mMode(QIcon::Normal), mTouchArea(0), - mMargueeAnimation(false) + mText(), mTextItem(0), mIcon(0), mMode(QIcon::Normal), mTouchArea(0), mMargueeAnimation(false), + mTapStarted(false), mSwipeStarted(false) { } @@ -73,11 +73,6 @@ q->setText(HbApplication::applicationName()); } -void HbTitlePanePrivate::toggle(bool on) -{ - mToggled = on; -} - void HbTitlePanePrivate::createPrimitives() { Q_Q(HbTitlePane); @@ -102,6 +97,96 @@ HbStylePrivate::updatePrimitive(mTouchArea, HbStylePrivate::P_TitlePane_toucharea, &option); } +void HbTitlePanePrivate::handleTap(HbTapGesture *tap) +{ + Q_Q(HbTitlePane); + switch (tap->state()) { + case Qt::GestureStarted: + if (q->scene()) { + q->scene()->setProperty(HbPrivate::OverridingGesture.latin1(), Qt::TapGesture); + tap->setProperty(HbPrivate::ThresholdRect.latin1(), q->mapRectToScene(q->boundingRect()).toRect()); + } + mMode = QIcon::Active; + updatePrimitives(); +#ifdef HB_EFFECTS + HbEffect::start(q, "decorator", "pressed"); +#endif + HbWidgetFeedback::triggered(q, Hb::InstantPressed); + mTapStarted = true; + break; + + case Qt::GestureCanceled: + cancelTap(); + break; + + case Qt::GestureFinished: { + if (q->scene()) { + q->scene()->setProperty(HbPrivate::OverridingGesture.latin1(), QVariant()); + } + mMode = QIcon::Selected; + updatePrimitives(); +#ifdef HB_EFFECTS + HbEffect::start(q, "decorator", "latched"); +#endif + HbWidgetFeedback::triggered(q, Hb::InstantReleased); + QPointF launchPos(q->scenePos().x() + q->boundingRect().width() / 2 + 3, + q->scenePos().y() + q->boundingRect().height()); + emit q->launchPopup(launchPos); + mTapStarted = false; + break; + } + default: + mTapStarted = false; + break; + } +} + +void HbTitlePanePrivate::handleSwipe(HbSwipeGesture *swipe) +{ + Q_Q(HbTitlePane); + HbWidgetFeedback::triggered(q, Hb::InstantFlicked); + + switch (swipe->state()) { + case Qt::GestureStarted: + mSwipeStarted = true; + break; + + case (Qt::GestureFinished): + if (swipe->sceneHorizontalDirection() == QSwipeGesture::Right) { + emit q->swipeRight(); + } else if (swipe->sceneHorizontalDirection() == QSwipeGesture::Left) { + emit q->swipeLeft(); + } + + if (mMode != QIcon::Normal) { + mMode = QIcon::Normal; + updatePrimitives(); + } + mSwipeStarted = false; + break; + + default: + mSwipeStarted = false; + break; + } +} + +void HbTitlePanePrivate::cancelTap() +{ + Q_Q(HbTitlePane); + + if (q->scene()) { + q->scene()->setProperty(HbPrivate::OverridingGesture.latin1(),QVariant()); + } + HbWidgetFeedback::triggered(q, Hb::InstantReleased); + + if (mMode != QIcon::Normal) { + mMode = QIcon::Normal; + updatePrimitives(); + } + mTapStarted = false; +} + // ======== MEMBER FUNCTIONS ======== /* @@ -113,6 +198,7 @@ { Q_D(HbTitlePane); d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, true); } HbTitlePane::HbTitlePane(HbTitlePanePrivate &dd, QGraphicsItem *parent) @@ -120,6 +206,7 @@ { Q_D(HbTitlePane); d->init(); + setFlag(QGraphicsItem::ItemHasNoContents, true); } /* @@ -217,7 +304,6 @@ void HbTitlePane::gestureEvent(QGestureEvent *event) { Q_D(HbTitlePane); - if (mainWindow() && mainWindow()->currentView()) { if (mainWindow()->currentView()->menu()->isEmpty()) { return; @@ -228,76 +314,15 @@ HbSwipeGesture *swipe = qobject_cast(event->gesture(Qt::SwipeGesture)); if (tap) { - switch(tap->state()) { - case Qt::GestureStarted: { - if (scene()) { - scene()->setProperty(HbPrivate::OverridingGesture.latin1(),Qt::TapGesture); - tap->setProperty(HbPrivate::ThresholdRect.latin1(), mapRectToScene(boundingRect()).toRect()); - } - d->mMode = QIcon::Active; - updatePrimitives(); -#ifdef HB_EFFECTS - HbEffect::start(this, "decorator", "pressed"); -#endif - HbWidgetFeedback::triggered(this, Hb::InstantPressed); - d->toggle(true); - break; - } - case Qt::GestureCanceled: { - if (scene()) { - scene()->setProperty(HbPrivate::OverridingGesture.latin1(),QVariant()); - } - HbWidgetFeedback::triggered(this, Hb::InstantReleased); - - if (d->mMode != QIcon::Normal) { - d->mMode = QIcon::Normal; - updatePrimitives(); - } - d->toggle(false); - - break; - } - case Qt::GestureFinished: { - if (scene()) { - scene()->setProperty(HbPrivate::OverridingGesture.latin1(),QVariant()); - } - d->mMode = QIcon::Selected; - updatePrimitives(); -#ifdef HB_EFFECTS - HbEffect::start(this, "decorator", "latched"); -#endif - if (d->mToggled) { - HbWidgetFeedback::triggered(this, Hb::InstantReleased); - } - HbWidgetFeedback::triggered(this, Hb::InstantClicked); - QPointF launchPos(scenePos().x() + boundingRect().width() / 2 + 3, scenePos().y() + boundingRect().height()); - emit launchPopup(launchPos); - break; - } - default: - break; + if (!(d->mSwipeStarted && tap->state() == Qt::GestureFinished)) { + d->handleTap(tap); } - } else if(swipe) { - HbWidgetFeedback::triggered(this, Hb::InstantFlicked); - - switch (swipe->state()) { - case (Qt::GestureFinished): { - if(swipe->sceneHorizontalDirection() == QSwipeGesture::Right) { - emit swipeRight(); - } else if(swipe->sceneHorizontalDirection() == QSwipeGesture::Left) { - emit swipeLeft(); - } - - if(d->mMode != QIcon::Normal) { - d->toggle(false); - d->mMode = QIcon::Normal; - updatePrimitives(); - } - break; - } - default: - break; + } + if (swipe) { + if (swipe->state() == Qt::GestureStarted && d->mTapStarted) { + d->cancelTap(); } + d->handleSwipe(swipe); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/decorators/hbtitlepane_p_p.h --- a/src/hbcore/decorators/hbtitlepane_p_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/decorators/hbtitlepane_p_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -28,6 +28,9 @@ #include +class HbTapGesture; +class HbSwipeGesture; + class HbTitlePanePrivate : public HbWidgetPrivate { Q_DECLARE_PUBLIC(HbTitlePane) @@ -36,20 +39,25 @@ HbTitlePanePrivate(); void delayedConstruction(); + void init(); + void createPrimitives(); void updatePrimitives(); - void init(); - void toggle(bool on); + void handleTap(HbTapGesture *tap); + void handleSwipe(HbSwipeGesture *swipe); + void cancelTap(); QString mText; QGraphicsItem *mTextItem; - bool mToggled; QGraphicsItem *mIcon; QIcon::Mode mMode; QGraphicsItem *mTouchArea; bool mMargueeAnimation; + + bool mTapStarted; + bool mSwipeStarted; }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/defs/bwins/HbCoreu.def --- a/src/hbcore/defs/bwins/HbCoreu.def Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/defs/bwins/HbCoreu.def Fri Sep 17 08:32:10 2010 +0300 @@ -2370,6 +2370,7 @@ ?predictiveInputStatus@HbInputSettingProxy@@QBEHXZ @ 2369 NONAME ABSENT ; int HbInputSettingProxy::predictiveInputStatus(void) const ?tr@HbListModel@@SA?AVQString@@PBD0H@Z @ 2370 NONAME ABSENT ; class QString HbListModel::tr(char const *, char const *, int) + ?q_func@HbPopupPrivate@@ABEPBVHbPopup@@XZ @ 2371 NONAME ; class HbPopup const * HbPopupPrivate::q_func(void) const ?setIndentation@HbTreeLayout@@QAEXM@Z @ 2372 NONAME ABSENT ; void HbTreeLayout::setIndentation(float) ?tr@HbInputContextProxy@@SA?AVQString@@PBD0@Z @ 2373 NONAME ; class QString HbInputContextProxy::tr(char const *, char const *) @@ -4159,7 +4160,7 @@ ??1HbWidgetLoaderActions@@UAE@XZ @ 4157 NONAME ABSENT ; HbWidgetLoaderActions::~HbWidgetLoaderActions(void) ?continuousTriggered@HbFeedbackEngine@@MAEXPBVHbWidget@@W4ContinuousInteraction@Hb@@VQPointF@@@Z @ 4158 NONAME ; void HbFeedbackEngine::continuousTriggered(class HbWidget const *, enum Hb::ContinuousInteraction, class QPointF) ?isFeatureEnabled@HbFeedbackPluginGroup@@QAE_NVQString@@@Z @ 4159 NONAME ; bool HbFeedbackPluginGroup::isFeatureEnabled(class QString) - ?handleBackgroundMouseReleaseEvent@HbPopupPrivate@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4160 NONAME ; void HbPopupPrivate::handleBackgroundMouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?handleBackgroundMouseReleaseEvent@HbPopupPrivate@@QAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4160 NONAME ABSENT ; void HbPopupPrivate::handleBackgroundMouseReleaseEvent(class QGraphicsSceneMouseEvent *) ?popupClosed@HbFeedbackEngine@@MAEXPBVHbWidget@@@Z @ 4161 NONAME ; void HbFeedbackEngine::popupClosed(class HbWidget const *) ?showEvent@HbPopup@@MAEXPAVQShowEvent@@@Z @ 4162 NONAME ; void HbPopup::showEvent(class QShowEvent *) ?minimizable@HbTitleBar@@QBE_NXZ @ 4163 NONAME ; bool HbTitleBar::minimizable(void) const @@ -4573,7 +4574,7 @@ ?setSmileyTheme@HbEditorInterface@@QAEXABVHbSmileyTheme@@@Z @ 4571 NONAME ; void HbEditorInterface::setSmileyTheme(class HbSmileyTheme const &) ?qt_metacall@HbForegroundWatcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4572 NONAME ; int HbForegroundWatcher::qt_metacall(enum QMetaObject::Call, int, void * *) ?editorRootState@HbInputMethodPrivate@@QBEXAAVHbInputState@@@Z @ 4573 NONAME ; void HbInputMethodPrivate::editorRootState(class HbInputState &) const - ?defaultInputMode@HbInputMethodPrivate@@QBE?AV?$QFlags@W4HbInputModeTypeFlag@@@@ABVHbInputLanguage@@@Z @ 4574 NONAME ABSENT ; class QFlags HbInputMethodPrivate::defaultInputMode(class HbInputLanguage const &) const + ?defaultInputMode@HbInputMethodPrivate@@QBE?AV?$QFlags@W4HbInputModeTypeFlag@@@@ABVHbInputLanguage@@@Z @ 4574 NONAME ABSENT ; class QFlags HbInputMethodPrivate::defaultInputMode(class HbInputLanguage const &) const ?stateFromMode@HbInputMethodPrivate@@QAEXABVHbInputModeProperties@@AAVHbInputState@@@Z @ 4575 NONAME ABSENT ; void HbInputMethodPrivate::stateFromMode(class HbInputModeProperties const &, class HbInputState &) ??0HbSmileyTheme@@QAE@ABVQString@@@Z @ 4576 NONAME ; HbSmileyTheme::HbSmileyTheme(class QString const &) ?addDefinitionFile@HbIconAnimationManagerPrivate@@QAE_NABVQString@@@Z @ 4577 NONAME ; bool HbIconAnimationManagerPrivate::addDefinitionFile(class QString const &) @@ -4590,6 +4591,7 @@ ?handleThemeChangeFinished@HbIconAnimationManagerPrivate@@QAEXXZ @ 4588 NONAME ; void HbIconAnimationManagerPrivate::handleThemeChangeFinished(void) ?initialTextCase@HbInputMethodPrivate@@QBE?AW4HbTextCase@@V?$QFlags@W4HbInputModeTypeFlag@@@@@Z @ 4589 NONAME ; enum HbTextCase HbInputMethodPrivate::initialTextCase(class QFlags) const ?metaObject@HbForegroundWatcher@@UBEPBUQMetaObject@@XZ @ 4590 NONAME ; struct QMetaObject const * HbForegroundWatcher::metaObject(void) const + ??0HbIconAnimationManagerPrivate@@QAE@XZ @ 4591 NONAME ; HbIconAnimationManagerPrivate::HbIconAnimationManagerPrivate(void) ?loadIcon@HbIconLoader@@QAE?AVQPixmap@@ABVQString@@W4Purpose@1@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@V?$QFlags@W4IconLoaderOption@HbIconLoader@@@@PAVHbIconAnimator@@ABVQColor@@@Z @ 4592 NONAME ; class QPixmap HbIconLoader::loadIcon(class QString const &, enum HbIconLoader::Purpose, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, class QFlags, class HbIconAnimator *, class QColor const &) ??4HbInputMethodDescriptor@@QAEXABV0@@Z @ 4593 NONAME ; void HbInputMethodDescriptor::operator=(class HbInputMethodDescriptor const &) @@ -5805,7 +5807,7 @@ ?trUtf8@HbStatusBar@@SA?AVQString@@PBD0@Z @ 5803 NONAME ; class QString HbStatusBar::trUtf8(char const *, char const *) ?isEditor@HbInputFocusObject@@SA_NPAVQObject@@@Z @ 5804 NONAME ; bool HbInputFocusObject::isEditor(class QObject *) ?color@HbIconImpl@@QAE?AVQColor@@XZ @ 5805 NONAME ABSENT ; class QColor HbIconImpl::color(void) - ??0ValueExtractor@HbCss@@QAE@ABV?$HbVector@UDeclaration@HbCss@@@@_NABVHbDeviceProfile@@@Z @ 5806 NONAME ; HbCss::ValueExtractor::ValueExtractor(class HbVector const &, bool, class HbDeviceProfile const &) + ??0ValueExtractor@HbCss@@QAE@ABV?$HbVector@UDeclaration@HbCss@@@@_NABVHbDeviceProfile@@@Z @ 5806 NONAME ABSENT ; HbCss::ValueExtractor::ValueExtractor(class HbVector const &, bool, class HbDeviceProfile const &) ?_q_launchMenu@HbMainWindowPrivate@@QAEXABVQPointF@@@Z @ 5807 NONAME ; void HbMainWindowPrivate::_q_launchMenu(class QPointF const &) ?byteArray@HbIconSource@@QAEPAVQByteArray@@XZ @ 5808 NONAME ; class QByteArray * HbIconSource::byteArray(void) ??CHbPooledNVGEngine@@QAEPAVHbNvgEngine@@XZ @ 5809 NONAME ; class HbNvgEngine * HbPooledNVGEngine::operator->(void) @@ -6090,7 +6092,7 @@ ?boundingRect@HbBackgroundItem@@UBE?AVQRectF@@XZ @ 6088 NONAME ; class QRectF HbBackgroundItem::boundingRect(void) const ?arg@HbParameterLengthLimiter@@QAEAAV1@GHHABVQChar@@@Z @ 6089 NONAME ; class HbParameterLengthLimiter & HbParameterLengthLimiter::arg(unsigned short, int, int, class QChar const &) ??_EHbInputSettingProxyPrivate@@QAE@I@Z @ 6090 NONAME ABSENT ; HbInputSettingProxyPrivate::~HbInputSettingProxyPrivate(unsigned int) - ?multitouchActivated@HbFeedbackEngine@@MAEXPBVHbWidget@@@Z @ 6091 NONAME ; void HbFeedbackEngine::multitouchActivated(class HbWidget const *) + ?multitouchActivated@HbFeedbackEngine@@MAEXPBVHbWidget@@@Z @ 6091 NONAME ABSENT ; void HbFeedbackEngine::multitouchActivated(class HbWidget const *) ??4MediaRule@HbCss@@QAEAAU01@ABU01@@Z @ 6092 NONAME ABSENT ; struct HbCss::MediaRule & HbCss::MediaRule::operator=(struct HbCss::MediaRule const &) ?removeAction@HbViewActionManager@@AAEXPAVQAction@@_N@Z @ 6093 NONAME ; void HbViewActionManager::removeAction(class QAction *, bool) ??1HbTheme@@EAE@XZ @ 6094 NONAME ; HbTheme::~HbTheme(void) @@ -6799,7 +6801,7 @@ ?trUtf8@HbTimerSignalEntry@@SA?AVQString@@PBD0H@Z @ 6797 NONAME ; class QString HbTimerSignalEntry::trUtf8(char const *, char const *, int) ?clearItemIds@HbMeshLayout@@QAEXXZ @ 6798 NONAME ABSENT ; void HbMeshLayout::clearItemIds(void) ?q_func@HbIndicatorPrivate@@QAEPAVHbIndicator@@XZ @ 6799 NONAME ; class HbIndicator * HbIndicatorPrivate::q_func(void) - ?variableRuleSets@HbLayeredStyleLoader@@QBEXPAV?$QHash@VQString@@UDeclaration@HbCss@@@@@Z @ 6800 NONAME ; void HbLayeredStyleLoader::variableRuleSets(class QHash *) const + ?variableRuleSets@HbLayeredStyleLoader@@QBEXPAV?$QHash@VQString@@UDeclaration@HbCss@@@@@Z @ 6800 NONAME ABSENT ; void HbLayeredStyleLoader::variableRuleSets(class QHash *) const ?readTemplate@HbActionManagerXmlParser@@AAEXXZ @ 6801 NONAME ; void HbActionManagerXmlParser::readTemplate(void) ?resume@HbEffectOpacity@@UAEXXZ @ 6802 NONAME ; void HbEffectOpacity::resume(void) ?trUtf8@HbOogmWatcherPrivate@@SA?AVQString@@PBD0@Z @ 6803 NONAME ; class QString HbOogmWatcherPrivate::trUtf8(char const *, char const *) @@ -6994,7 +6996,7 @@ ?groups@HbIniParser@@QBE?AVQStringList@@XZ @ 6992 NONAME ABSENT ; class QStringList HbIniParser::groups(void) const ?indicatorDataChanged@HbIndicatorPluginManager@@QAEXXZ @ 6993 NONAME ; void HbIndicatorPluginManager::indicatorDataChanged(void) ?getSharedStyleSheet@HbThemeClient@@QAEPAUStyleSheet@HbCss@@ABVQString@@W4LayerPriority@HbLayeredStyleLoader@@@Z @ 6994 NONAME ABSENT ; struct HbCss::StyleSheet * HbThemeClient::getSharedStyleSheet(class QString const &, enum HbLayeredStyleLoader::LayerPriority) - ?variableRuleSets@StyleSelector@HbCss@@QBEXPAV?$QHash@VQString@@UDeclaration@HbCss@@@@@Z @ 6995 NONAME ; void HbCss::StyleSelector::variableRuleSets(class QHash *) const + ?variableRuleSets@StyleSelector@HbCss@@QBEXPAV?$QHash@VQString@@UDeclaration@HbCss@@@@@Z @ 6995 NONAME ABSENT ; void HbCss::StyleSelector::variableRuleSets(class QHash *) const ?tr@HbEffectGroup@@SA?AVQString@@PBD0H@Z @ 6996 NONAME ; class QString HbEffectGroup::tr(char const *, char const *, int) ?setName@HbExtendedDeviceProfile@@QAEXABVQString@@@Z @ 6997 NONAME ABSENT ; void HbExtendedDeviceProfile::setName(class QString const &) ?setPpiValue@HbExtendedDeviceProfile@@QAEXM@Z @ 6998 NONAME ABSENT ; void HbExtendedDeviceProfile::setPpiValue(float) @@ -7437,7 +7439,7 @@ ?dirty@HbEffectGroup@@QBE_NXZ @ 7435 NONAME ; bool HbEffectGroup::dirty(void) const ?staticMetaObject@HbDeviceDialogManager@@2UQMetaObject@@B @ 7436 NONAME ; struct QMetaObject const HbDeviceDialogManager::staticMetaObject ??_EHbActionManager@@UAE@I@Z @ 7437 NONAME ; HbActionManager::~HbActionManager(unsigned int) - ?findInDefaultVariables@HbLayeredStyleLoader@@QBE_NABVQString@@AAUValue@HbCss@@@Z @ 7438 NONAME ; bool HbLayeredStyleLoader::findInDefaultVariables(class QString const &, struct HbCss::Value &) const + ?findInDefaultVariables@HbLayeredStyleLoader@@QBE_NABVQString@@AAUValue@HbCss@@@Z @ 7438 NONAME ABSENT ; bool HbLayeredStyleLoader::findInDefaultVariables(class QString const &, struct HbCss::Value &) const ?removeAnchors@HbMeshLayout@@QAE_NABVQString@@@Z @ 7439 NONAME ABSENT ; bool HbMeshLayout::removeAnchors(class QString const &) ?tr@HbIconTheme@@SA?AVQString@@PBD0H@Z @ 7440 NONAME ; class QString HbIconTheme::tr(char const *, char const *, int) ?paint@HbNvgIconImpl@@UAEXPAVQPainter@@ABVQRectF@@V?$QFlags@W4AlignmentFlag@Qt@@@@ABVQPainterPath@@PAVHbMaskableIconImpl@@@Z @ 7441 NONAME ; void HbNvgIconImpl::paint(class QPainter *, class QRectF const &, class QFlags, class QPainterPath const &, class HbMaskableIconImpl *) @@ -7623,7 +7625,7 @@ ?recognize@HbPanGestureLogic@@QAE?AV?$QFlags@W4ResultFlag@QGestureRecognizer@@@@W4GestureState@Qt@@PAVHbPanGesture@@PAVQObject@@PAVQEvent@@VQTime@@@Z @ 7621 NONAME ; class QFlags HbPanGestureLogic::recognize(enum Qt::GestureState, class HbPanGesture *, class QObject *, class QEvent *, class QTime) ?switchRenderingMode@HbThemeClientPrivate@@QAE_NW4HbRenderingMode@@@Z @ 7622 NONAME ; bool HbThemeClientPrivate::switchRenderingMode(enum HbRenderingMode) ?getMultiPartIconInfo@HbThemeClientPrivate@@QAE?AUHbSharedIconInfo@@ABVQStringList@@ABUHbMultiPartSizeData@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NV?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@W4HbRenderingMode@@@Z @ 7623 NONAME ; struct HbSharedIconInfo HbThemeClientPrivate::getMultiPartIconInfo(class QStringList const &, struct HbMultiPartSizeData const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QFlags, class QColor const &, enum HbRenderingMode) - ?getMultiIconImplFromServer@HbIconLoader@@AAEXAAVQStringList@@AAV?$QVector@VQSizeF@@@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_N4V?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@W4IconDataType@1@W4Purpose@1@AAV?$QVector@PAVHbIconImpl@@@@W4HbRenderingMode@@@Z @ 7624 NONAME ; void HbIconLoader::getMultiIconImplFromServer(class QStringList &, class QVector &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, bool, class QFlags, class QColor const &, enum HbIconLoader::IconDataType, enum HbIconLoader::Purpose, class QVector &, enum HbRenderingMode) + ?getMultiIconImplFromServer@HbIconLoader@@AAEXAAVQStringList@@AAV?$QVector@VQSizeF@@@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_N4V?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@W4IconDataType@1@W4Purpose@1@AAV?$QVector@PAVHbIconImpl@@@@W4HbRenderingMode@@@Z @ 7624 NONAME ABSENT ; void HbIconLoader::getMultiIconImplFromServer(class QStringList &, class QVector &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, bool, class QFlags, class QColor const &, enum HbIconLoader::IconDataType, enum HbIconLoader::Purpose, class QVector &, enum HbRenderingMode) ?unLoadMultiIcon@HbThemeClient@@QAEXABVQStringList@@ABV?$QVector@VQSizeF@@@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NABVQColor@@W4HbRenderingMode@@@Z @ 7625 NONAME ; void HbThemeClient::unLoadMultiIcon(class QStringList const &, class QVector const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QColor const &, enum HbRenderingMode) ??0HbNvgIconImpl@@QAE@ABUHbSharedIconInfo@@ABVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NW4HbRenderingMode@@@Z @ 7626 NONAME ; HbNvgIconImpl::HbNvgIconImpl(struct HbSharedIconInfo const &, class QString const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, enum HbRenderingMode) ?getMultiPartIconInfo@HbThemeClient@@QAE?AUHbSharedIconInfo@@ABVQStringList@@ABUHbMultiPartSizeData@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NV?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@W4HbRenderingMode@@@Z @ 7627 NONAME ; struct HbSharedIconInfo HbThemeClient::getMultiPartIconInfo(class QStringList const &, struct HbMultiPartSizeData const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QFlags, class QColor const &, enum HbRenderingMode) @@ -7633,12 +7635,12 @@ ?unLoadMultiIcon@HbThemeClientPrivate@@QAEXABVQStringList@@ABV?$QVector@VQSizeF@@@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NABVQColor@@W4HbRenderingMode@@@Z @ 7631 NONAME ; void HbThemeClientPrivate::unLoadMultiIcon(class QStringList const &, class QVector const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QColor const &, enum HbRenderingMode) ?getMultiIconInfo@HbThemeClient@@QAE?AUHbSharedIconInfoList@@ABVQStringList@@ABV?$QVector@VQSizeF@@@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NV?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@W4HbRenderingMode@@@Z @ 7632 NONAME ; struct HbSharedIconInfoList HbThemeClient::getMultiIconInfo(class QStringList const &, class QVector const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QFlags, class QColor const &, enum HbRenderingMode) ?getSharedIconInfo@HbThemeClient@@QAE?AUHbSharedIconInfo@@ABVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NV?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@W4HbRenderingMode@@@Z @ 7633 NONAME ABSENT ; struct HbSharedIconInfo HbThemeClient::getSharedIconInfo(class QString const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QFlags, class QColor const &, enum HbRenderingMode) - ??0HbPixmapIconImpl@@QAE@UHbSharedIconInfo@@AAVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NW4HbRenderingMode@@@Z @ 7634 NONAME ; HbPixmapIconImpl::HbPixmapIconImpl(struct HbSharedIconInfo, class QString &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, enum HbRenderingMode) + ??0HbPixmapIconImpl@@QAE@UHbSharedIconInfo@@AAVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NW4HbRenderingMode@@@Z @ 7634 NONAME ABSENT ; HbPixmapIconImpl::HbPixmapIconImpl(struct HbSharedIconInfo, class QString &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, enum HbRenderingMode) ?switchRenderingMode@HbThemeClient@@QAE_NW4HbRenderingMode@@@Z @ 7635 NONAME ; bool HbThemeClient::switchRenderingMode(enum HbRenderingMode) ?updateRenderingMode@HbIconLoader@@QAEXW4Type@QPaintEngine@@@Z @ 7636 NONAME ; void HbIconLoader::updateRenderingMode(enum QPaintEngine::Type) ?unloadIcon@HbThemeClient@@QAEXABVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NABVQColor@@W4HbRenderingMode@@@Z @ 7637 NONAME ABSENT ; void HbThemeClient::unloadIcon(class QString const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, class QColor const &, enum HbRenderingMode) ?switchRenderingMode@HbIconLoader@@QAEXW4HbRenderingMode@@@Z @ 7638 NONAME ; void HbIconLoader::switchRenderingMode(enum HbRenderingMode) - ?hash@HbThemeIndex@@SAIABVQString@@@Z @ 7639 NONAME ; unsigned int HbThemeIndex::hash(class QString const &) + ?hash@HbThemeIndex@@SAIABVQString@@@Z @ 7639 NONAME ABSENT ; unsigned int HbThemeIndex::hash(class QString const &) ?getItemData@HbThemeIndex@@QAEPBUHbThemeIndexItemData@@ABVQString@@@Z @ 7640 NONAME ; struct HbThemeIndexItemData const * HbThemeIndex::getItemData(class QString const &) ?getThemeIndexInfo@HbThemeUtils@@SA?BUHbThemeIndexInfo@@ABW4HbThemeType@@@Z @ 7641 NONAME ABSENT ; struct HbThemeIndexInfo const HbThemeUtils::getThemeIndexInfo(enum HbThemeType const &) ?themeChange@HbIconLoader@@AAEXABVQStringList@@@Z @ 7642 NONAME ; void HbIconLoader::themeChange(class QStringList const &) @@ -7777,7 +7779,7 @@ ?removeLayoutDefinition@HbSharedCache@@QAE_NABVQString@@00@Z @ 7775 NONAME ; bool HbSharedCache::removeLayoutDefinition(class QString const &, class QString const &, class QString const &) ?layoutDefinitionOffset@HbSharedCache@@QBEHABVQString@@00@Z @ 7776 NONAME ; int HbSharedCache::layoutDefinitionOffset(class QString const &, class QString const &, class QString const &) const ?addLayoutDefinition@HbSharedCache@@QAE_NABVQString@@00H@Z @ 7777 NONAME ; bool HbSharedCache::addLayoutDefinition(class QString const &, class QString const &, class QString const &, int) - ?hash@HbSharedCache@@SAIABVQStringRef@@@Z @ 7778 NONAME ; unsigned int HbSharedCache::hash(class QStringRef const &) + ?hash@HbSharedCache@@SAIABVQStringRef@@@Z @ 7778 NONAME ABSENT ; unsigned int HbSharedCache::hash(class QStringRef const &) ??8HbString@@QBE_NABVQStringRef@@@Z @ 7779 NONAME ; bool HbString::operator==(class QStringRef const &) const ?layoutIndexItemBegin@HbSharedCache@@AAEPAUHbLayoutIndexItem@@HPAH@Z @ 7780 NONAME ; struct HbLayoutIndexItem * HbSharedCache::layoutIndexItemBegin(int, int *) ?layoutDefinitionKey@HbSharedCache@@CA?AVQString@@ABV2@00@Z @ 7781 NONAME ; class QString HbSharedCache::layoutDefinitionKey(class QString const &, class QString const &, class QString const &) @@ -8086,14 +8088,14 @@ ?setContent@HbSharedCache@@AAEXPBDHHH@Z @ 8084 NONAME ; void HbSharedCache::setContent(char const *, int, int, int) ??1HbLayoutParameters@@QAE@XZ @ 8085 NONAME ; HbLayoutParameters::~HbLayoutParameters(void) ??0HbLayoutParameters@@QAE@XZ @ 8086 NONAME ; HbLayoutParameters::HbLayoutParameters(void) - ?setVariableDeclarationHash@ValueExtractor@HbCss@@QAEXABV?$QHash@VQString@@UDeclaration@HbCss@@@@@Z @ 8087 NONAME ; void HbCss::ValueExtractor::setVariableDeclarationHash(class QHash const &) + ?setVariableDeclarationHash@ValueExtractor@HbCss@@QAEXABV?$QHash@VQString@@UDeclaration@HbCss@@@@@Z @ 8087 NONAME ABSENT ; void HbCss::ValueExtractor::setVariableDeclarationHash(class QHash const &) ?name@HbLayoutParameters@@QBE?AVQString@@ABQBUHbParameterItem@@@Z @ 8088 NONAME ; class QString HbLayoutParameters::name(struct HbParameterItem const * const const &) const ?specialVariableNames@HbLayoutParameters@@SA?AVQStringList@@XZ @ 8089 NONAME ; class QStringList HbLayoutParameters::specialVariableNames(void) ?parameterItemBegin@HbSharedCache@@AAEPAUHbParameterItem@@PAH@Z @ 8090 NONAME ; struct HbParameterItem * HbSharedCache::parameterItemBegin(int *) - ??0ValueExtractor@HbCss@@QAE@ABV?$HbVector@UDeclaration@HbCss@@@@ABVHbLayoutParameters@@ABVHbDeviceProfile@@@Z @ 8091 NONAME ; HbCss::ValueExtractor::ValueExtractor(class HbVector const &, class HbLayoutParameters const &, class HbDeviceProfile const &) + ??0ValueExtractor@HbCss@@QAE@ABV?$HbVector@UDeclaration@HbCss@@@@ABVHbLayoutParameters@@ABVHbDeviceProfile@@@Z @ 8091 NONAME ABSENT ; HbCss::ValueExtractor::ValueExtractor(class HbVector const &, class HbLayoutParameters const &, class HbDeviceProfile const &) ?parameterItemBegin@HbSharedCache@@ABEPBUHbParameterItem@@PAH@Z @ 8092 NONAME ; struct HbParameterItem const * HbSharedCache::parameterItemBegin(int *) const ?isEmpty@HbLayoutParameters@@QBE_NXZ @ 8093 NONAME ; bool HbLayoutParameters::isEmpty(void) const - ??0ValueExtractor@HbCss@@QAE@ABVHbLayoutParameters@@_NABVHbDeviceProfile@@@Z @ 8094 NONAME ; HbCss::ValueExtractor::ValueExtractor(class HbLayoutParameters const &, bool, class HbDeviceProfile const &) + ??0ValueExtractor@HbCss@@QAE@ABVHbLayoutParameters@@_NABVHbDeviceProfile@@@Z @ 8094 NONAME ABSENT ; HbCss::ValueExtractor::ValueExtractor(class HbLayoutParameters const &, bool, class HbDeviceProfile const &) ?end@HbLayoutParameters@@QBEPBUHbParameterItem@@XZ @ 8095 NONAME ; struct HbParameterItem const * HbLayoutParameters::end(void) const ?updateIndicators@HbScrollAreaPrivate@@QAEXABVQPointF@@@Z @ 8096 NONAME ; void HbScrollAreaPrivate::updateIndicators(class QPointF const &) ?setGeometry@HbScrollArea@@UAEXABVQRectF@@@Z @ 8097 NONAME ; void HbScrollArea::setGeometry(class QRectF const &) @@ -8249,4 +8251,48 @@ ??0HbEditorInterfacePrivate@@QAE@XZ @ 8247 NONAME ; HbEditorInterfacePrivate::HbEditorInterfacePrivate(void) ?trUtf8@HbEditorInterfacePrivate@@SA?AVQString@@PBD0@Z @ 8248 NONAME ; class QString HbEditorInterfacePrivate::trUtf8(char const *, char const *) ?attachEditor@HbEditorInterfacePrivateCache@@QAEPAVHbEditorInterfacePrivate@@PAVQObject@@PAVHbEditorInterface@@@Z @ 8249 NONAME ; class HbEditorInterfacePrivate * HbEditorInterfacePrivateCache::attachEditor(class QObject *, class HbEditorInterface *) + ?setDelayedPanelRequest@HbInputMethodNull@@QAEX_N@Z @ 8250 NONAME ; void HbInputMethodNull::setDelayedPanelRequest(bool) + ?delayedPanelRequest@HbInputMethodNull@@QBE_NXZ @ 8251 NONAME ; bool HbInputMethodNull::delayedPanelRequest(void) const + ?handleBackgroundMouseReleaseEvent@HbPopupPrivate@@UAEXPAVQGraphicsSceneMouseEvent@@@Z @ 8252 NONAME ; void HbPopupPrivate::handleBackgroundMouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?checkStateSet@HbToolButton@@MAEXXZ @ 8253 NONAME ; void HbToolButton::checkStateSet(void) + ?setHeadingText@HbDialog@@QAEXABVQString@@@Z @ 8254 NONAME ; void HbDialog::setHeadingText(class QString const &) + ?headingText@HbDialog@@QBE?AVQString@@XZ @ 8255 NONAME ; class QString HbDialog::headingText(void) const + ?itemChange@HbMenuItem@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 8256 NONAME ; class QVariant HbMenuItem::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) + ?createHeadingBackground@HbDialogPrivate@@QAEXXZ @ 8257 NONAME ; void HbDialogPrivate::createHeadingBackground(void) + ??1HbInputFocusObjectPrivate@@QAE@XZ @ 8258 NONAME ; HbInputFocusObjectPrivate::~HbInputFocusObjectPrivate(void) + ?ensureCursorVisible@HbInputFocusObjectPrivate@@QAEXPAVQObject@@@Z @ 8259 NONAME ; void HbInputFocusObjectPrivate::ensureCursorVisible(class QObject *) + ??0HbInputFocusObjectPrivate@@QAE@PAVQObject@@@Z @ 8260 NONAME ; HbInputFocusObjectPrivate::HbInputFocusObjectPrivate(class QObject *) + ?d_ptr@HbInputFocusObjectPrivate@@CAPAV1@PAVHbInputFocusObject@@@Z @ 8261 NONAME ; class HbInputFocusObjectPrivate * HbInputFocusObjectPrivate::d_ptr(class HbInputFocusObject *) + ?q_func@HbInputFocusObjectPrivate@@AAEPAVHbInputFocusObject@@XZ @ 8262 NONAME ; class HbInputFocusObject * HbInputFocusObjectPrivate::q_func(void) + ?mainWindow@HbInputFocusObjectPrivate@@QBEPAVHbMainWindow@@XZ @ 8263 NONAME ; class HbMainWindow * HbInputFocusObjectPrivate::mainWindow(void) const + ?q_func@HbInputFocusObjectPrivate@@ABEPBVHbInputFocusObject@@XZ @ 8264 NONAME ; class HbInputFocusObject const * HbInputFocusObjectPrivate::q_func(void) const + ?isFocusLocked@HbInputMethod@@QAE_NXZ @ 8265 NONAME ; bool HbInputMethod::isFocusLocked(void) + ?aboutToChangeView@HbAbstractVkbHost@@AAEXPAVHbView@@0@Z @ 8266 NONAME ; void HbAbstractVkbHost::aboutToChangeView(class HbView *, class HbView *) + ?initialize@HbNvgRasterizer@@QAE_NHH@Z @ 8267 NONAME ; bool HbNvgRasterizer::initialize(int, int) + ?rasterize@HbNvgRasterizer@@QAE_NABVQByteArray@@ABVQSizeF@@W4AspectRatioMode@Qt@@AAVQImage@@W4Format@6@@Z @ 8268 NONAME ; bool HbNvgRasterizer::rasterize(class QByteArray const &, class QSizeF const &, enum Qt::AspectRatioMode, class QImage &, enum QImage::Format) + ?global@HbNvgRasterizer@@SAPAV1@XZ @ 8269 NONAME ; class HbNvgRasterizer * HbNvgRasterizer::global(void) + ?createLocalConsolidatedIcon@HbIconLoader@@AAEPAVHbIconImpl@@ABUHbMultiPartSizeData@@ABVQStringList@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@ABV?$QFlags@W4IconLoaderOption@HbIconLoader@@@@ABVQColor@@@Z @ 8270 NONAME ; class HbIconImpl * HbIconLoader::createLocalConsolidatedIcon(struct HbMultiPartSizeData const &, class QStringList const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, class QFlags const &, class QColor const &) + ?freeIconData@HbIconLoader@@QAEXXZ @ 8271 NONAME ; void HbIconLoader::freeIconData(void) + ?terminate@HbNvgRasterizer@@QAE_NXZ @ 8272 NONAME ; bool HbNvgRasterizer::terminate(void) + ??0HbNvgRasterizer@@AAE@XZ @ 8273 NONAME ; HbNvgRasterizer::HbNvgRasterizer(void) + ??1HbNvgRasterizer@@QAE@XZ @ 8274 NONAME ; HbNvgRasterizer::~HbNvgRasterizer(void) + ?rasterize@HbNvgRasterizer@@QAE_NABVQByteArray@@ABVQSizeF@@W4AspectRatioMode@Qt@@PAXHW4Format@QImage@@@Z @ 8275 NONAME ; bool HbNvgRasterizer::rasterize(class QByteArray const &, class QSizeF const &, enum Qt::AspectRatioMode, void *, int, enum QImage::Format) + ?loadNvgIcon@HbIconLoader@@AAEXAAUHbIconLoadingParams@@@Z @ 8276 NONAME ; void HbIconLoader::loadNvgIcon(struct HbIconLoadingParams &) + ??0HbThemeIndexResource@@QAE@I@Z @ 8277 NONAME ; HbThemeIndexResource::HbThemeIndexResource(unsigned int) + ?variableRuleSets@HbLayeredStyleLoader@@QBEXPAV?$QHash@IUDeclaration@HbCss@@@@@Z @ 8278 NONAME ; void HbLayeredStyleLoader::variableRuleSets(class QHash *) const + ?setVariables@ValueExtractor@HbCss@@QAEXABV?$QHash@IUDeclaration@HbCss@@@@@Z @ 8279 NONAME ; void HbCss::ValueExtractor::setVariables(class QHash const &) + ?parameterFromHashValue@HbStylePrivate@@QBE_NIAAMABVHbDeviceProfile@@@Z @ 8280 NONAME ; bool HbStylePrivate::parameterFromHashValue(unsigned int, float &, class HbDeviceProfile const &) const + ?extractVariableValue@ValueExtractor@HbCss@@QBE_NIAAUValue@2@@Z @ 8281 NONAME ; bool HbCss::ValueExtractor::extractVariableValue(unsigned int, struct HbCss::Value &) const + ?getItemData@HbThemeIndex@@QAEPBUHbThemeIndexItemData@@I@Z @ 8282 NONAME ; struct HbThemeIndexItemData const * HbThemeIndex::getItemData(unsigned int) + ?hbHash@@YAIABVQString@@@Z @ 8283 NONAME ; unsigned int hbHash(class QString const &) + ?setLayoutParameters@ValueExtractor@HbCss@@QAEXABVHbLayoutParameters@@@Z @ 8284 NONAME ; void HbCss::ValueExtractor::setLayoutParameters(class HbLayoutParameters const &) + ?extractVariableValue@ValueExtractor@HbCss@@QAE_NIAAM@Z @ 8285 NONAME ; bool HbCss::ValueExtractor::extractVariableValue(unsigned int, float &) + ?hbHash@@YAIABVQStringRef@@@Z @ 8286 NONAME ; unsigned int hbHash(class QStringRef const &) + ?find@HbLayoutParameters@@QBEPBUHbParameterItem@@I@Z @ 8287 NONAME ; struct HbParameterItem const * HbLayoutParameters::find(unsigned int) const + ?variableRuleSets@StyleSelector@HbCss@@QBEXPAV?$QHash@IUDeclaration@HbCss@@@@@Z @ 8288 NONAME ; void HbCss::StyleSelector::variableRuleSets(class QHash *) const + ??0ValueExtractor@HbCss@@QAE@ABVHbDeviceProfile@@@Z @ 8289 NONAME ; HbCss::ValueExtractor::ValueExtractor(class HbDeviceProfile const &) + ?combineAlignment@HbWidgetBasePrivate@@SA?AV?$QFlags@W4AlignmentFlag@Qt@@@@V2@0@Z @ 8290 NONAME ; class QFlags HbWidgetBasePrivate::combineAlignment(class QFlags, class QFlags) + ?createIconImpl@HbIconImplCreator@@SAPAVHbIconImpl@@ABVQPixmap@@AAUHbIconLoadingParams@@@Z @ 8291 NONAME ; class HbIconImpl * HbIconImplCreator::createIconImpl(class QPixmap const &, struct HbIconLoadingParams &) + ??0HbPixmapIconImpl@@QAE@UHbSharedIconInfo@@ABVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_NW4HbRenderingMode@@@Z @ 8292 NONAME ; HbPixmapIconImpl::HbPixmapIconImpl(struct HbSharedIconInfo, class QString const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool, enum HbRenderingMode) + ??0HbPixmapIconImpl@@QAE@ABVQPixmap@@ABVQString@@ABVQSizeF@@W4AspectRatioMode@Qt@@W4Mode@QIcon@@_N@Z @ 8293 NONAME ; HbPixmapIconImpl::HbPixmapIconImpl(class QPixmap const &, class QString const &, class QSizeF const &, enum Qt::AspectRatioMode, enum QIcon::Mode, bool) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/defs/eabi/HbCoreu.def --- a/src/hbcore/defs/eabi/HbCoreu.def Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/defs/eabi/HbCoreu.def Fri Sep 17 08:32:10 2010 +0300 @@ -2440,6 +2440,7 @@ _ZN7HbPopup4execEv @ 2439 NONAME ABSENT _ZN7HbPopup5eventEP6QEvent @ 2440 NONAME + _ZN7HbPopupC1EP13QGraphicsItem @ 2441 NONAME _ZN7HbPopupC1ER14HbPopupPrivateP13QGraphicsItem @ 2442 NONAME _ZN7HbPopupC2EP13QGraphicsItem @ 2443 NONAME @@ -3874,6 +3875,7 @@ _ZN12HbDockWidget19getStaticMetaObjectEv @ 3872 NONAME _ZN12HbDockWidget9setWidgetEP15QGraphicsWidget @ 3873 NONAME _ZN12HbDockWidgetC1EP13QGraphicsItem @ 3874 NONAME + _ZN12HbDockWidgetC1ER19HbDockWidgetPrivateP13QGraphicsItem @ 3875 NONAME _ZN12HbDockWidgetC2EP13QGraphicsItem @ 3876 NONAME _ZN12HbDockWidgetC2ER19HbDockWidgetPrivateP13QGraphicsItem @ 3877 NONAME @@ -4966,7 +4968,7 @@ _ZNK20HbInputMethodPrivate15editorRootStateER12HbInputState @ 4964 NONAME _ZNK20HbInputMethodPrivate15initialTextCaseE6QFlagsI19HbInputModeTypeFlagE @ 4965 NONAME _ZNK20HbInputMethodPrivate15textCaseAppliesEv @ 4966 NONAME - _ZNK20HbInputMethodPrivate16defaultInputModeERK15HbInputLanguage @ 4967 NONAME ABSENT + _ZNK20HbInputMethodPrivate16defaultInputModeERK15HbInputLanguage @ 4967 NONAME ABSENT _ZNK20HbInputMethodPrivate16initialInputModeERK15HbInputLanguage @ 4968 NONAME _ZNK20HbInputMethodPrivate17editorConstraintsEv @ 4969 NONAME _ZNK20HbInputMethodPrivate17findStateLanguageEv @ 4970 NONAME @@ -5977,6 +5979,7 @@ _ZN20HbSplayTreeAllocatorD1Ev @ 5975 NONAME ABSENT _ZN20HbSplayTreeAllocatorD2Ev @ 5976 NONAME ABSENT _ZN21HbFeedbackPluginGroup11loadPluginsE11QStringList @ 5977 NONAME + _ZN21HbTextResolverSymbian4InitERK7TDesC16S2_ @ 5978 NONAME _ZN21HbTextResolverSymbian5LoadLERK7TDesC16RK12MDesC16Arrayi @ 5979 NONAME _ZN21HbTextResolverSymbian5LoadLERK7TDesC16RK6RArrayIiEi @ 5980 NONAME @@ -6066,10 +6069,10 @@ _ZN5HbCss14ValueExtractor17extractTextValuesERNS_10TextValuesE @ 6064 NONAME ABSENT _ZN5HbCss14ValueExtractorC1ERK8HbVectorINS_11DeclarationEERK15HbDeviceProfileRK8QPalette @ 6065 NONAME ABSENT _ZN5HbCss14ValueExtractorC1ERK8HbVectorINS_11DeclarationEES5_RK15HbDeviceProfileRK8QPalette @ 6066 NONAME ABSENT - _ZN5HbCss14ValueExtractorC1ERK8HbVectorINS_11DeclarationEEbRK15HbDeviceProfile @ 6067 NONAME + _ZN5HbCss14ValueExtractorC1ERK8HbVectorINS_11DeclarationEEbRK15HbDeviceProfile @ 6067 NONAME ABSENT _ZN5HbCss14ValueExtractorC2ERK8HbVectorINS_11DeclarationEERK15HbDeviceProfileRK8QPalette @ 6068 NONAME ABSENT _ZN5HbCss14ValueExtractorC2ERK8HbVectorINS_11DeclarationEES5_RK15HbDeviceProfileRK8QPalette @ 6069 NONAME ABSENT - _ZN5HbCss14ValueExtractorC2ERK8HbVectorINS_11DeclarationEEbRK15HbDeviceProfile @ 6070 NONAME + _ZN5HbCss14ValueExtractorC2ERK8HbVectorINS_11DeclarationEEbRK15HbDeviceProfile @ 6070 NONAME ABSENT _ZN6HbMenu10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 6071 NONAME _ZN6HbMenu4openEP7QObjectPKc @ 6072 NONAME _ZN6HbMenu9showEventEP10QShowEvent @ 6073 NONAME @@ -6254,7 +6257,7 @@ _ZN16HbBackgroundItemD1Ev @ 6252 NONAME ABSENT _ZN16HbBackgroundItemD2Ev @ 6253 NONAME ABSENT _ZN16HbExtendedLocale14setStartOfWeekENS_7WeekDayE @ 6254 NONAME - _ZN16HbFeedbackEngine19multitouchActivatedEPK8HbWidget @ 6255 NONAME + _ZN16HbFeedbackEngine19multitouchActivatedEPK8HbWidget @ 6255 NONAME ABSENT _ZN16ThemeIndexTables7getItemERK7QStringRi @ 6256 NONAME ABSENT _ZN16ThemeIndexTables7isValidEv @ 6257 NONAME ABSENT _ZN17HbAbstractVkbHost16animValueChangedEf @ 6258 NONAME @@ -7710,10 +7713,10 @@ _ZNK19HbCssThemeInterface12findVariableERK7QString @ 7708 NONAME ABSENT _ZNK19HbCssThemeInterface13findAttributeEPK15QGraphicsWidgetRK7QString @ 7709 NONAME ABSENT _ZNK19HbTypefaceXmlParser21metricsTypefaceFamilyEv @ 7710 NONAME - _ZNK20HbLayeredStyleLoader16variableRuleSetsEP5QHashI7QStringN5HbCss11DeclarationEE @ 7711 NONAME + _ZNK20HbLayeredStyleLoader16variableRuleSetsEP5QHashI7QStringN5HbCss11DeclarationEE @ 7711 NONAME ABSENT _ZNK20HbLayeredStyleLoader17styleRulesForNodeEN5HbCss13StyleSelector7NodePtrEN2Qt11OrientationE @ 7712 NONAME _ZNK20HbLayeredStyleLoader19declarationsForNodeEN5HbCss13StyleSelector7NodePtrEN2Qt11OrientationEPKc @ 7713 NONAME - _ZNK20HbLayeredStyleLoader22findInDefaultVariablesERK7QStringRN5HbCss5ValueE @ 7714 NONAME + _ZNK20HbLayeredStyleLoader22findInDefaultVariablesERK7QStringRN5HbCss5ValueE @ 7714 NONAME ABSENT _ZNK20HbLayeredStyleLoader32hasOrientationSpecificStyleRulesEN5HbCss13StyleSelector7NodePtrE @ 7715 NONAME _ZNK20HbLayeredStyleLoader9LayerListEv @ 7716 NONAME ABSENT _ZNK20HbOogmWatcherPrivate10metaObjectEv @ 7717 NONAME @@ -7734,13 +7737,14 @@ _ZNK5HbCss13StyleSelector10matchRulesENS0_7NodePtrERK8HbVectorINS_9StyleRuleEENS_16StyleSheetOriginEiP7QVectorI5QPairIiS3_EEb @ 7732 NONAME _ZNK5HbCss13StyleSelector15selectorMatchesERKNS_8SelectorENS0_7NodePtrEb @ 7733 NONAME _ZNK5HbCss13StyleSelector16inheritanceDepthENS0_7NodePtrER8HbString @ 7734 NONAME - _ZNK5HbCss13StyleSelector16variableRuleSetsEP5QHashI7QStringNS_11DeclarationEE @ 7735 NONAME + _ZNK5HbCss13StyleSelector16variableRuleSetsEP5QHashI7QStringNS_11DeclarationEE @ 7735 NONAME ABSENT _ZNK5HbCss13StyleSelector17styleRulesForNodeENS0_7NodePtrEN2Qt11OrientationE @ 7736 NONAME _ZNK5HbCss13StyleSelector19declarationsForNodeENS0_7NodePtrEN2Qt11OrientationEPKc @ 7737 NONAME _ZNK5HbCss13StyleSelector20basicSelectorMatchesERKNS_13BasicSelectorENS0_7NodePtrEb @ 7738 NONAME _ZNK5HbCss13StyleSelector25weightedStyleRulesForNodeENS0_7NodePtrEN2Qt11OrientationE @ 7739 NONAME _ZNK5HbCss13StyleSelector27weightedDeclarationsForNodeENS0_7NodePtrEN2Qt11OrientationEPKc @ 7740 NONAME _ZNK5HbCss13StyleSelector32hasOrientationSpecificStyleRulesENS0_7NodePtrE @ 7741 NONAME + _ZTI10HbMenuItem @ 7742 NONAME _ZTI11HbIconTheme @ 7743 NONAME _ZTI11HbTitlePane @ 7744 NONAME @@ -8013,7 +8017,7 @@ _ZNK15HbPointRecorderixEi @ 8011 NONAME _ZN12HbIconLoader19switchRenderingModeE15HbRenderingMode @ 8012 NONAME _ZN12HbIconLoader19updateRenderingModeEN12QPaintEngine4TypeE @ 8013 NONAME - _ZN12HbIconLoader26getMultiIconImplFromServerER11QStringListR7QVectorI6QSizeFEN2Qt15AspectRatioModeEN5QIcon4ModeEbb6QFlagsINS_16IconLoaderOptionEERK6QColorNS_12IconDataTypeENS_7PurposeERS2_IP10HbIconImplE15HbRenderingMode @ 8014 NONAME + _ZN12HbIconLoader26getMultiIconImplFromServerER11QStringListR7QVectorI6QSizeFEN2Qt15AspectRatioModeEN5QIcon4ModeEbb6QFlagsINS_16IconLoaderOptionEERK6QColorNS_12IconDataTypeENS_7PurposeERS2_IP10HbIconImplE15HbRenderingMode @ 8014 NONAME ABSENT _ZN13HbNvgIconImplC1ERK16HbSharedIconInfoRK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8015 NONAME _ZN13HbNvgIconImplC2ERK16HbSharedIconInfoRK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8016 NONAME _ZN13HbThemeClient10unloadIconERK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEbRK6QColor15HbRenderingMode @ 8017 NONAME ABSENT @@ -8022,8 +8026,8 @@ _ZN13HbThemeClient17getSharedIconInfoERK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb6QFlagsIN12HbIconLoader16IconLoaderOptionEERK6QColor15HbRenderingMode @ 8020 NONAME ABSENT _ZN13HbThemeClient19switchRenderingModeE15HbRenderingMode @ 8021 NONAME _ZN13HbThemeClient20getMultiPartIconInfoERK11QStringListRK19HbMultiPartSizeDataRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb6QFlagsIN12HbIconLoader16IconLoaderOptionEERK6QColor15HbRenderingMode @ 8022 NONAME - _ZN16HbPixmapIconImplC1E16HbSharedIconInfoR7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8023 NONAME - _ZN16HbPixmapIconImplC2E16HbSharedIconInfoR7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8024 NONAME + _ZN16HbPixmapIconImplC1E16HbSharedIconInfoR7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8023 NONAME ABSENT + _ZN16HbPixmapIconImplC2E16HbSharedIconInfoR7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8024 NONAME ABSENT _ZN20HbThemeClientPrivate10unloadIconERK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEbRK6QColor15HbRenderingMode @ 8025 NONAME ABSENT _ZN20HbThemeClientPrivate15unLoadMultiIconERK11QStringListRK7QVectorI6QSizeFEN2Qt15AspectRatioModeEN5QIcon4ModeEbRK6QColor15HbRenderingMode @ 8026 NONAME _ZN20HbThemeClientPrivate16getMultiIconInfoERK11QStringListRK7QVectorI6QSizeFEN2Qt15AspectRatioModeEN5QIcon4ModeEb6QFlagsIN12HbIconLoader16IconLoaderOptionEERK6QColor15HbRenderingMode @ 8027 NONAME @@ -8031,7 +8035,7 @@ _ZN20HbThemeClientPrivate19switchRenderingModeE15HbRenderingMode @ 8029 NONAME _ZN20HbThemeClientPrivate20getMultiPartIconInfoERK11QStringListRK19HbMultiPartSizeDataRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb6QFlagsIN12HbIconLoader16IconLoaderOptionEERK6QColor15HbRenderingMode @ 8030 NONAME _ZN12HbThemeIndex11getItemDataERK7QString @ 8031 NONAME - _ZN12HbThemeIndex4hashERK7QString @ 8032 NONAME + _ZN12HbThemeIndex4hashERK7QString @ 8032 NONAME ABSENT _ZN12HbThemeUtils17getThemeIndexInfoERK11HbThemeType @ 8033 NONAME _ZN12HbIconLoader11themeChangeERK11QStringList @ 8034 NONAME _ZN12HbStringDataD1Ev @ 8035 NONAME @@ -8176,7 +8180,7 @@ _ZN13HbSharedCache19layoutDefinitionKeyERK7QStringS2_S2_ @ 8174 NONAME _ZN13HbSharedCache20layoutIndexItemBeginEiPi @ 8175 NONAME _ZN13HbSharedCache22removeLayoutDefinitionERK7QStringS2_S2_ @ 8176 NONAME - _ZN13HbSharedCache4hashERK10QStringRef @ 8177 NONAME + _ZN13HbSharedCache4hashERK10QStringRef @ 8177 NONAME ABSENT _ZN13HbThemeClient33sharedCacheLayoutDefinitionOffsetERK7QStringS2_S2_ @ 8178 NONAME _ZNK13HbSharedCache22layoutDefinitionOffsetERK7QStringS2_S2_ @ 8179 NONAME _ZNK13HbSharedCache24findOffsetFromDynamicMapENS_8ItemTypeERK10QStringRef @ 8180 NONAME @@ -8481,10 +8485,10 @@ _ZN18HbLayoutParametersC1Ev @ 8479 NONAME _ZN18HbLayoutParametersC2Ev @ 8480 NONAME _ZN21HbSharedMemoryManager17createSharedCacheEPKciiii @ 8481 NONAME - _ZN5HbCss14ValueExtractorC1ERK18HbLayoutParametersbRK15HbDeviceProfile @ 8482 NONAME - _ZN5HbCss14ValueExtractorC1ERK8HbVectorINS_11DeclarationEERK18HbLayoutParametersRK15HbDeviceProfile @ 8483 NONAME - _ZN5HbCss14ValueExtractorC2ERK18HbLayoutParametersbRK15HbDeviceProfile @ 8484 NONAME - _ZN5HbCss14ValueExtractorC2ERK8HbVectorINS_11DeclarationEERK18HbLayoutParametersRK15HbDeviceProfile @ 8485 NONAME + _ZN5HbCss14ValueExtractorC1ERK18HbLayoutParametersbRK15HbDeviceProfile @ 8482 NONAME ABSENT + _ZN5HbCss14ValueExtractorC1ERK8HbVectorINS_11DeclarationEERK18HbLayoutParametersRK15HbDeviceProfile @ 8483 NONAME ABSENT + _ZN5HbCss14ValueExtractorC2ERK18HbLayoutParametersbRK15HbDeviceProfile @ 8484 NONAME ABSENT + _ZN5HbCss14ValueExtractorC2ERK8HbVectorINS_11DeclarationEERK18HbLayoutParametersRK15HbDeviceProfile @ 8485 NONAME ABSENT _ZNK13HbSharedCache16layoutParametersEv @ 8486 NONAME _ZNK18HbLayoutParameters4findERK7QString @ 8487 NONAME _ZN12HbScrollArea11setGeometryERK6QRectF @ 8488 NONAME @@ -8646,4 +8650,46 @@ _ZTI29HbEditorInterfacePrivateCache @ 8644 NONAME _ZTV24HbEditorInterfacePrivate @ 8645 NONAME _ZTV29HbEditorInterfacePrivateCache @ 8646 NONAME + _ZN17HbInputMethodNull22setDelayedPanelRequestEb @ 8647 NONAME + _ZNK17HbInputMethodNull19delayedPanelRequestEv @ 8648 NONAME + _ZN12HbToolButton13checkStateSetEv @ 8649 NONAME + _ZN10HbMenuItem10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 8650 NONAME + _ZN15HbDialogPrivate23createHeadingBackgroundEv @ 8651 NONAME + _ZN8HbDialog14setHeadingTextERK7QString @ 8652 NONAME + _ZNK8HbDialog11headingTextEv @ 8653 NONAME + _ZThn8_N10HbMenuItem10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 8654 NONAME + _ZN25HbInputFocusObjectPrivate19ensureCursorVisibleEP7QObject @ 8655 NONAME + _ZNK25HbInputFocusObjectPrivate10mainWindowEv @ 8656 NONAME + _ZN13HbInputMethod13isFocusLockedEv @ 8657 NONAME + _ZN17HbAbstractVkbHost17aboutToChangeViewEP6HbViewS1_ @ 8658 NONAME + _ZN12HbIconLoader11loadNvgIconER19HbIconLoadingParams @ 8659 NONAME + _ZN12HbIconLoader12freeIconDataEv @ 8660 NONAME + _ZN12HbIconLoader27createLocalConsolidatedIconERK19HbMultiPartSizeDataRK11QStringListRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeERK6QFlagsINS_16IconLoaderOptionEERK6QColor @ 8661 NONAME + _ZN15HbNvgRasterizer10initializeEii @ 8662 NONAME + _ZN15HbNvgRasterizer6globalEv @ 8663 NONAME + _ZN15HbNvgRasterizer9rasterizeERK10QByteArrayRK6QSizeFN2Qt15AspectRatioModeEPviN6QImage6FormatE @ 8664 NONAME + _ZN15HbNvgRasterizer9rasterizeERK10QByteArrayRK6QSizeFN2Qt15AspectRatioModeER6QImageNS8_6FormatE @ 8665 NONAME + _ZN15HbNvgRasterizer9terminateEv @ 8666 NONAME + _ZN15HbNvgRasterizerC1Ev @ 8667 NONAME + _ZN15HbNvgRasterizerC2Ev @ 8668 NONAME + _ZN15HbNvgRasterizerD1Ev @ 8669 NONAME + _ZN15HbNvgRasterizerD2Ev @ 8670 NONAME + _Z6hbHashRK10QStringRef @ 8671 NONAME + _Z6hbHashRK7QString @ 8672 NONAME + _ZN12HbThemeIndex11getItemDataEj @ 8673 NONAME + _ZN20HbThemeIndexResourceC1Ej @ 8674 NONAME + _ZN20HbThemeIndexResourceC2Ej @ 8675 NONAME + _ZN5HbCss14ValueExtractor20extractVariableValueEjRf @ 8676 NONAME + _ZN5HbCss14ValueExtractorC1ERK15HbDeviceProfile @ 8677 NONAME + _ZN5HbCss14ValueExtractorC2ERK15HbDeviceProfile @ 8678 NONAME + _ZNK14HbStylePrivate22parameterFromHashValueEjRfRK15HbDeviceProfile @ 8679 NONAME + _ZNK18HbLayoutParameters4findEj @ 8680 NONAME + _ZNK20HbLayeredStyleLoader16variableRuleSetsEP5QHashIjN5HbCss11DeclarationEE @ 8681 NONAME + _ZNK5HbCss13StyleSelector16variableRuleSetsEP5QHashIjNS_11DeclarationEE @ 8682 NONAME + _ZNK5HbCss14ValueExtractor20extractVariableValueEjRNS_5ValueE @ 8683 NONAME + _ZN16HbPixmapIconImplC1E16HbSharedIconInfoRK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8684 NONAME + _ZN16HbPixmapIconImplC1ERK7QPixmapRK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb @ 8685 NONAME + _ZN16HbPixmapIconImplC2E16HbSharedIconInfoRK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb15HbRenderingMode @ 8686 NONAME + _ZN16HbPixmapIconImplC2ERK7QPixmapRK7QStringRK6QSizeFN2Qt15AspectRatioModeEN5QIcon4ModeEb @ 8687 NONAME + _ZN17HbIconImplCreator14createIconImplERK7QPixmapR19HbIconLoadingParams @ 8688 NONAME diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogmanager_p.cpp --- a/src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogmanager_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogmanager_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -165,13 +165,11 @@ _LIT_SECURITY_POLICY_PASS(KRdPolicy); // all pass _LIT_SECURITY_POLICY_S0(KWrPolicy, KHbPsForegroundAppOrientationCategoryUid.iUid); // pass device dialog server - int error = mHbOriProperty.Define(KHbPsForegroundAppOrientationCategoryUid, - KHbPsForegroundAppOrientationKey, - RProperty::EInt, KRdPolicy, KWrPolicy); - if (error == KErrNone) { - mHbOriProperty.Attach(KHbPsForegroundAppOrientationCategoryUid, - KHbPsForegroundAppOrientationKey); - } + mHbOriProperty.Define(KHbPsForegroundAppOrientationCategoryUid, + KHbPsForegroundAppOrientationKey, + RProperty::EInt, KRdPolicy, KWrPolicy); + mHbOriProperty.Attach(KHbPsForegroundAppOrientationCategoryUid, + KHbPsForegroundAppOrientationKey); #endif TRACE_EXIT } @@ -183,7 +181,9 @@ HbDeviceDialogManagerPrivate::~HbDeviceDialogManagerPrivate() { TRACE_ENTRY - killTimer(mHousekeeperTimerId); + if (mHousekeeperTimerId) { + killTimer(mHousekeeperTimerId); + } #if defined(Q_OS_SYMBIAN) mScene->removeItem(&mMousePressCatcher); mWindowRegion.Close(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogpluginmanager.cpp --- a/src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogpluginmanager.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogpluginmanager.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -55,7 +55,9 @@ */ // Created widget gets a property added containing the device dialog type. -static const char deviceDialogTypePropertyName[] = "HbDevDlgPlugManXX"; + +// declared but never referenced: +//static const char deviceDialogTypePropertyName[] = "HbDevDlgPlugManXX"; // Constructor HbDeviceDialogPluginManager::HbDeviceDialogPluginManager(Flags flags, QObject *parent) : diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogserverstatussym.cpp --- a/src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogserverstatussym.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/devicedialogserver/hbdevicedialogserverstatussym.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,8 +36,9 @@ // Device dialog is the setter. const TUid PropertyCategoryUid = {0x20022FC5}; const TUint StatusKey = 'Stat'; +const TUint EventKey = 'nEvt'; // For HbIndicatorButton, to be removed when HbIndicatorButton is removed -class HbDeviceDialogServerStatusPrivate : public CActive +NONSHARABLE_CLASS(HbDeviceDialogServerStatusPrivate) : public CActive { public: HbDeviceDialogServerStatusPrivate(bool isServer, HbDeviceDialogServerStatus *parent); @@ -73,6 +74,9 @@ _LIT_SECURITY_POLICY_PASS(KRdPolicy); // all pass _LIT_SECURITY_POLICY_S0(KWrPolicy, PropertyCategoryUid.iUid); // pass device dialog server mProperty.Define(PropertyCategoryUid, StatusKey, RProperty::EInt, KRdPolicy, KWrPolicy); + + // For HbIndicatorButton + RProperty::Define(PropertyCategoryUid, EventKey, RProperty::EInt, KRdPolicy, KRdPolicy); } mProperty.Attach(PropertyCategoryUid, StatusKey); if (!mIsSetter) { @@ -80,6 +84,7 @@ } else { mProperty.Set(PropertyCategoryUid, StatusKey, mSetValue); + RProperty::Set(PropertyCategoryUid, EventKey, 0); // For HbIndicatorButton } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialog.cpp --- a/src/hbcore/devicedialogbase/hbdevicedialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -45,10 +45,10 @@ \section _framework Device Dialog Framework Any application is able to generate device dialogs. However, in - order to display the dialogs on top of all applications, the device dialog framework - uses a server. To display a dialog an application uses the HbDeviceDialog client interface to send requests for - dialogs to the server. The HbDeviceDialog class can also be used or extended as part of a set of specialization classes - to create different device dialog types. + order to display the dialogs on top of all applications, the device dialog framework + uses a server. To display a dialog an application uses the HbDeviceDialog client interface + to send requests for dialogs to the server. The HbDeviceDialog class can also be used or + extended as part of a set of specialization classes to create different device dialog types. Device dialog widgets are implemented in plugins loaded by the server. @@ -125,67 +125,77 @@ } \enddot - Platform dependent. Currently server is implemented only for Symbian platform. On other platforms, - device dialog are displayed on client's mainwindow. - - HbDeviceDialog has no dependencies to other parts of the framework. Only to Qt. Thus it can be used - also from engine components that have no user interface. + HbDeviceDialog has no dependencies to other parts of the framework. Only to Qt. + Thus it can be used also from engine components that have no user interface. \section _types Types of device dialogs - There are three classes of device dialogs: + There are two classes of device dialogs intended for application use: -# Generic device dialogs are displayed on top of all applications, except in the case of an incoming call. Examples of these are a "Low memory" message box and a "Receive message via bluetooth?" query. -# Device notification dialogs are notifications displayed in the top left corner of the display. Examples are "New message" and - "Low battery" notifications. - -# The Universal indicator menu shows enhanced status indicator - information. + "Low battery" notifications. - Generic device dialogs and the indicator menu interrupt the current foreground application. + Generic device dialogs interrupt the current foreground application. The user cannot interact with the application with a touch or keyboard until the dialog is dismissed. Device notification dialogs behave differently allowing interaction with the - current foreground application. + current foreground application. Another difference is that notification dialogs are shown + serially instead of on top of each other. + + In addition, there are two device dialogs classes intended for platform use: Indicator menu and security. + + \section _operation Operation of device dialogs + + \subsection _construction Construction and identification Device dialog widgets are constructed dynamically by the device dialog service. Construction takes two parameters: a type and a set of parameters appropriate to the dialog type. - The device dialog type is a unique string identifying the - dialog. A search is made to find a plugin that can instantiate the requested - dialog. The service loads the plugin and creates an instance of the widget. + The device dialog type is a unique string identifying the dialog. A search is made to find a + plugin that can instantiate the requested dialog. The service loads the plugin and creates an + instance of the widget. - The parameter set is encapsulated in QMap. Each device dialog implementation has - a default value for all parameters. Only parameters that differ from the default need to be + The parameter set is encapsulated in QMap. Each device dialog implementation + has a default value for all parameters. Only parameters that differ from the default need to be given. Parameters are pairs. How the parameters are used depends on the plugin implementing the dialog. Suggested usage is used as property name and value pairs of the dialog implementation. This makes it easy to set properties using QObject::setProperty(const char*, const QVariant&). If data types supported by QVariant are not suitable for a specific device dialog, Q_DECLARE_METATYPE can be used to add data types. - %Data can be sent to a device dialog after it has been launched using the update() function. %Data - sent by the dialog is received by the dataReceived signal. A copy of the last data received - is held by the class and can be fetched by a call to the receivedData() function. This allows data to be received - without having to connect to a signal by waiting for a dialog to close and then - getting the received data. + \subsection _updating Updating and receiving data + + %Data can be sent to a device dialog after it has been launched using the update() function. + %Data sent by the dialog is received by the dataReceived signal. A copy of the last data + received is held by the class and can be fetched by a call to the receivedData() function. + This allows data to be received without having to connect to a signal by waiting for a dialog + to close and then getting the received data. + + \subsection _showing Showing device dialogs It is possible to launch multiple device dialogs from a single HbDeviceDialog object. However if there is a need to update a dialog or receive data from it, only the last dialog - launched supports this. In this case instantiate the HbDeviceDialog class for each device dialog - that needs communication (update or data receive) after a launch. + launched supports this. In this case instantiate the HbDeviceDialog class for each device + dialog that needs communication (update or data receive) after a launch. HbDeviceDialog::show() method returns after the device dialog service has accepted the dialog. - The service decides when the dialog is actually displayed. If there is no need to receive - data from the dialog widget, the HbDeviceDialog object can be destroyed after the show() method returns - (can be allocated in a stack). A function is provided to wait for the device dialog to be dismissed, - making the dialog display synchronous. + The service decides when the dialog is actually displayed. No assumption should be made + about the timing when the dialog will display. It may get delayed depending on system state. + If there is no need to receive data from the dialog widget, the HbDeviceDialog object can be + destroyed after the show() method returns (can be allocated in a stack). In this case, + it is assumed that the dialog widget closes itself by a timeout. System will close dialog + widgets left running this way without a corresponding HbDialog instance, after 10 seconds. If any signals of HbDeviceDialog are connected, then the instance needs to exist until the - dialog is dismissed. In this case the device dialog service will close all dialogs - launched by the instance when it is deleted making it inappropriate to allocate HbDeviceDialog - into a stack. + dialog widget is dismissed. In this case the device dialog service will close all dialogs + launched by the HbDeviceDialog instance when it is deleted making it inappropriate to allocate + it into a stack. - Several clients can share the same device dialog widget by agreeing on an unique tag. See - HbDeviceDialogWidgetPlugin for more information. + A function is provided to wait for the device dialog to be dismissed, making the dialog + display synchronous. + + \subsection _misc Miscellaneous notes When the HbDeviceDialog object is created, it can reserve a communication channel to the device dialog service or the channel creation may be delayed until show(). This is controlled by a constructor @@ -193,12 +203,19 @@ The HbDeviceDialog class is not thread safe. If cancel() needs to called across threads, a queued signal slot connection can be used. - + + \section _platform_hbdevicedialog Platform-specific implementation notes for HbDeviceDialog + + \subsection _nonsymbian_hbdevicedialog Non-Symbian + The server is implemented only for the Symbian platform. On other platforms device dialogs are + displayed on client's main window. + \section _usecases Using the HbDeviceDialog class The code below launches a device dialog and continues execution \code - // Launch a device dialog and continue execution. + // Launch a device dialog and continue execution. Assumes that the dialog widget closes + // itself by a timeout. HbDeviceDialog deviceDialog; QVariantMap parameters; @@ -274,15 +291,13 @@ */ /*! - \var HbDeviceDialog::DeviceDialogFlags HbDeviceDialog::NoFlags - No flags specified. + \enum HbDeviceDialog::DeviceDialogFlag + Defines construct flags. */ /*! - \enum HbDeviceDialog::DeviceDialogFlag - Defines construct flags. - - The DeviceDialogFlags type is a typedef for QFlags. It stores an OR combination of the DeviceDialogFlag values. + \var HbDeviceDialog::DeviceDialogFlags HbDeviceDialog::NoFlags + No flags specified. */ /*! @@ -372,9 +387,10 @@ /*! Shows a device dialog using the device dialog service. - The function returns immediately after the - service has accepted the dialog. Returns \c true if the dialog was accepted, \c false if an error occurred. - The service decides when the dialog is actually displayed. + The function returns immediately after the service has accepted the dialog. + Returns \c true if the dialog was accepted, \c false if an error occurred. + The service decides when the dialog is actually displayed. Displaying may be delayed + depending on system state. \param deviceDialogType Identifies a device dialog to be displayed by a name. \param parameters Defines properties of the dialog. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialoglaunchhelper.cpp --- a/src/hbcore/devicedialogbase/hbdevicedialoglaunchhelper.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialoglaunchhelper.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -29,11 +29,7 @@ #include #include -/*! - HbDeviceDialogLaunchHelper - \internal -*/ -class HbDeviceDialogLaunchHelperPrivate : public CActive +NONSHARABLE_CLASS(HbDeviceDialogLaunchHelperPrivate) : public CActive { public: HbDeviceDialogLaunchHelperPrivate(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialogplugin.cpp --- a/src/hbcore/devicedialogbase/hbdevicedialogplugin.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialogplugin.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,15 +31,19 @@ service. The service queues and displays device dialogs according to client requests and system state. The service displays widgets in it's window (HbApplication window). - Platform dependent. Currently server is implemented only for Symbian platform. On other platforms, - device dialog are displayed on client's mainwindow. + \section _creation Creation of device dialogs Device dialog widgets are created by plugins. The service loads a plugin to create and display a device dialog. A single plugin may implement several different dialogs or just one. + + \subsection _identification Identification + Dialogs are identified by a string. By convention the string should follow inverted domain name format. For example com.nokia.hb.devicedialog.note/1.0. Function deviceDialogTypes() returns a list of dialog types the plugin implements. + \subsection _versioning Versioning + Appending version number into device dialog type string enables versioning of device dialogs. A plugin should handle versioning by returning device dialog type string for all versions it implements in deviceDialogTypes() and then in createDeviceDialog() create a device dialog @@ -48,18 +52,7 @@ numbers in type strings. It performs string comparison of the whole string when searching for a plugin. - Device dialogs are divided into four groups: generic, notification, indicator-menu and security - groups. The group dictates how and when a dialog is shown. Generic and - notification dialogs are intended for application use. Indicator and security dialogs are - for platform. Each dialog indicates which group it belongs to. The group need not be fixed. - It may change depending on create parameters. - - Device dialog groups may prioritize (queueing) device dialogs in respect to other groups. - In addition each device dialog has an individual queueing priority that may affect how it is - shown inside a group. Currently there is no queueing implemented for device dialogs. All - dialogs are displayed in order requests are received. Z-order of dialogs on display is - determined by popup framework. Last dialog created is on top. Device dialog framework - manipulates Z-order of dialogs. Device dialogs themselves should not change the popup Z-order. + \subsection _widgets Dialog widgets Device dialog widgets have to be derived from HbPopup either directly or by ancestry. @@ -69,19 +62,28 @@ and HbDeviceDialogInterface. In this case a container can be used to to create and manage the widget. See code example at the end. -
- For future needs. Not implemented. - Device dialog may be shared by several device dialog clients. Each client can update the - device dialog and receive signals from it equally. Clients attach to a shared device dialog - instance by agreeing on an unique tag. The tag is appended into device dialog type with a % - separator. For example here the tag "#1" is appended into device dialog type - "hb.devicedialog.note/1.0%#1". If a device dialog instance exists, a client is attached into it - instead of creating a new one. To allow sharing, plugin must set - HbDeviceDialogPlugin::SharedDeviceDialog. -
+ \section _types Types of device dialogs + + Device dialogs are divided into four groups: + + - Generic + - Notification + - Indicator-menu + - Security - Symbian.Plugins are run by a server with platform security capabilities ProtServ, SwEvent, - TrustedUI and ReadDeviceData. + The group dictates how and when a dialog is shown. Generic and notification dialogs are + intended for application use. Indicator-menu and security dialogs are for platform. + Each dialog indicates which group it belongs to. The group need not be fixed. + It may change depending on create parameters. + + \subsection _priority Priority + + Device dialog groups prioritize device dialogs (z-order) in respect to other groups. + Dialogs belonging to the same group are displayed in order requests are received. + Popup framework is utilized to manage z-order of dialogs. Z-order is set by devicedialog + framework and device dialogs themselves should not change the popup z-order. + + \section _security Security Plugins are responsible for maintaining system security for their own part. If plugin performs operations that may compromise security or want's to limit access to specific @@ -91,16 +93,7 @@ function returns false. In addition, HbDeviceDialogPlugin constructor has a check which allows only device dialog service to load plugins derived from it. - Symbian.Device dialog plugins can be installed into a device. If a plugin doesn't have - required platform security capabilities it will not load. Plugins are searched from device's - local drives. The search order is rom-drives, non-removable drives and removable drives. Once - a pluging is found the search stops. This implies that plugins on rom drives cannot be - overridden by plugins on other drives. - - Platform dependent.Plugin location differs depending on platform. On Symbian, device dialog - plugin stubs (.qtplugin) are located in /resource/plugins/devicedialogs directory and executables - in /sys/bin directory. On other platforms plugin executables are searched from application's - current directory and HB_PLUGINS_DIR/devicedialogs directory. + \section _checklist Checklist for well behaving device dialogs Well behaving dialog widget should observe following rules: - Should not create and show other dialogs @@ -108,6 +101,34 @@ - Not setting popup Z-order - No time consuming operations performed + \section _platform_hbdevicedialogplugin Platform-specific implementation notes for HbDeviceDialogPlugin + + \subsection _nonsymbian Non-Symbian + + The server is implemented only for the Symbian platform. On other platforms, plugins are loaded into client + process and dialogs shown on client's main window. + + Plugin executables are searched from application's current directory and HB_PLUGINS_DIR/devicedialogs + directory. + + \subsection _symbian Symbian + + Plugins are run by a server with platform security capabilities ProtServ, SwEvent, + TrustedUI and ReadDeviceData. If a plugin doesn't have required platform security + capabilities it will not load. + + Device dialog plugins can be installed into a device. Plugins are searched from device's + local drives. The search order is rom-drives, non-removable drives and removable drives. + Search order inside each group is alphabethical. Eclipsing is allowed only if plugin file + names are the same. This means that in order to replace a device dialog in a plugin earlier + in search order, the file name of the replacement plugin has to be the same as the the one + it replaces. + + Device dialog plugin stubs (.qtplugin) are searched from /resource/plugins/devicedialogs directory + and executables in /sys/bin directory in each drive. + + \section _creation Creating a plugin + Creating a device dialog plugin and widget involves following steps. - Set in .pro file TEMPLATE = lib and CONFIG += hb plugin - Derive a class from HbPopup or derivatives and HbDeviceDialogInterface @@ -459,24 +480,10 @@ Currently only Symbian is defined. - - - - - - - - - - - - - - - - - - + + + +
Symbian security information
KeyValue typeDescription
"sym-secureId"quint32Client's secure ID
"sym-vendorId"quint32Client's vendor ID
"sym-caps"quint32
KeyValue typeDescription
"sym-secureId"quint32Client's secure ID
"sym-vendorId"quint32Client's vendor ID
"sym-caps"quint32 Client's capability set as a bitmap. Bit positions correspond to Symbian enum TCapability
@@ -536,7 +543,7 @@ HbDeviceDialogPlugin. Following popup convention, the widget is not visible immediately after is created. - Device dialog framework calls HbPopup::show() to display the widget. The service may change + Device dialog framework calls HbPopup::show() to display the widget. The service may change visibility of the widget by HbPopup::setVisible function. The widget should close itself by either a timeout or user interaction. It may also be closed @@ -637,8 +644,9 @@ \fn virtual HbDeviceDialogPluginInterface *HbDeviceDialogPluginInterface::createDeviceDialog( const QString &deviceDialogType, const QVariantMap ¶meters) = 0 - Creates a device dialog widget. The widget becomes visible immediately. Returns a pointer to - the device dialog widget interface or null if widget cannot be created. + Called by device dialog framework to create a device dialog widget. The widget should be + left unvisible. The framework calls show() at a suitable time to make it visible. + Returns a pointer to the device dialog widget interface or null if widget cannot be created. \param deviceDialogType Device dialog type to create. \param parameters Device dialog parameters. The structure and meaning of parameters is a diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialogsym_p.cpp --- a/src/hbcore/devicedialogbase/hbdevicedialogsym_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialogsym_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -108,7 +108,53 @@ return KErrNoMemory; } } + int error = mHbSession.Connect(); + + TRACE_EXIT_ARGS("error" << error) + return error; +} + +/*! + \internal + + Connects to server asynchronously. +*/ + +int HbDeviceDialogPrivate::connect() +{ + if (!iBuffer) { + TRAP_IGNORE(iBuffer = HBufC8::NewL(64)); + if (iBuffer) { + iDataPtr.Set(iBuffer->Des()); + } else { + TRACE_EXIT_ARGS("error " << KErrNoMemory) + return KErrNoMemory; + } + } + + int error(HbDeviceDialogNoError); + + if (!IsActive() && !iConnecting) { + bool connected = mHbSession.Handle() != 0; + error = mHbSession.Connect(&iStatus); + + // If not connected yet, connect and wait for eventloop to stop. Eventloop is + // stopped in the RunL funtion. + if (error == KErrNone && !connected && !mEventLoop) { + iConnecting = ETrue; + SetActive(); + QPointer guard = q_ptr; + QEventLoop eventLoop; + mEventLoop = &eventLoop; + error = eventLoop.exec(QEventLoop::AllEvents); + error = symToDeviceDialogError(error); + if (guard.isNull()) { + return false; + } + mEventLoop = 0; + } + } TRACE_EXIT_ARGS("error" << error) return error; } @@ -299,6 +345,13 @@ TRACE_ENTRY TInt completionCode = iStatus.Int(); int errorCode = symToDeviceDialogError(completionCode); + if (iConnecting) { + iConnecting = EFalse; + if (mEventLoop && mEventLoop->isRunning()) { + mEventLoop->exit(errorCode); + } + return; + } if (completionCode < KErrNone) { // Any Symbian error, stop requesting diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialogsym_p.h --- a/src/hbcore/devicedialogbase/hbdevicedialogsym_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialogsym_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -32,7 +32,7 @@ #include #include -const TInt KHbMessageBufferSize = 255; + // // W A R N I N G // ------------- @@ -55,6 +55,7 @@ virtual ~HbDeviceDialogPrivate(); void init(HbDeviceDialog::DeviceDialogFlags f); + int connect(); int initialize(); bool show(const QString &deviceDialogType, const QVariantMap ¶meters); bool update(const QVariantMap ¶meters); @@ -89,9 +90,14 @@ int mLastError; CActiveSchedulerWait iWait; TBool iRequesting; - + TBool iConnecting; HbDeviceDialog::DeviceDialogFlags mDeviceDialogFlags; QEventLoop* mEventLoop; + + static HbDeviceDialogPrivate *d_ptr(HbDeviceDialog *dialog) { + Q_ASSERT(dialog); + return dialog->d_func(); + } }; #endif // HBDEVICEDIALOGSYM_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialogsymbian.cpp --- a/src/hbcore/devicedialogbase/hbdevicedialogsymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialogsymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,22 +36,62 @@ #include "hbdeleteguardsymbian_p.h" /*! - \class CHbDeviceDialogSymbian - \brief CHbDeviceDialog displays dialogs on top of applications. It is a client interface for Symbian applications to Hb - device dialogs. - \sa HbDeviceDialog + \stable + \hbcore + + \class CHbDeviceDialogSymbian + \brief CHbDeviceDialogSymbian is a Symbian implementation of HbDeviceDialog. + + This class is Symbian only. Not available on other platforms. + + See HbDeviceDialog documentation to find out more about device dialogs. + + CHbDeviceDialogSymbian is intended for use by Symbian servers that don't run Qt event loop + and cannot use HbDeviceDialog. + + The class is accompanied by classes CHbSymbianVariant and CHbSymbianVariantMap which + are used to encapsulate device dialog parameters. Device dialog framework takes care of + translating Symbian data types to/from format understood by device dialog plugins. + + CHbDeviceDialogSymbian provides an asynchronous interface to show dialogs. Dialog closing + and data events are indicated by MHbDeviceDialogObserver callback interface. + + The code below launches a device dialog. Observer is not set and the dialog + closes itself by timeout. + \code - Data given to this API in symbian format is packed to QVariantMap. See - CHbSymbianVariant to see which Qt datatypes are supported. - \sa CHbSymbianVariant - \sa CHbSymbianVariantMap + CHbDeviceDialogSymbian* dialog = CHbDeviceDialogSymbian::NewL(); + CleanupStack::PushL(dialog); + CHbSymbianVariantMap* map = CHbSymbianVariantMap::NewL(); + CleanupStack::PushL(map); + + _LIT(KTimeoutKey, "timeout"); + const TInt timeoutValue = 10000; + CHbSymbianVariant* timeout = CHbSymbianVariant::NewL(&timeoutValue, CHbSymbianVariant::EInt); + CleanupStack::PushL(timeout); + User::LeaveIfError(map->Add(KTimeoutKey, timeout)); + CleanupStack::Pop(); // timeout - When plugin returns data in Qt format, the data is converted, if possible, - to CHbSymbianVariantMap. + _LIT(KTitleValue, "Sample title"); + _LIT(KTitleKey, "title"); + CHbSymbianVariant* title = CHbSymbianVariant::NewL(&KTitleValue(), CHbSymbianVariant::EDes); + CleanupStack::PushL(title); + User::LeaveIfError(map->Add(KTitleKey, title)); + CleanupStack::Pop(); // title - \stable + _LIT(KTextValue, "Sample text"); + _LIT(KTextKey, "text"); + CHbSymbianVariant* text = CHbSymbianVariant::NewL(&KTextValue(), CHbSymbianVariant::EDes); + CleanupStack::PushL(text); + User::LeaveIfError(map->Add(KTextKey, text)); + CleanupStack::Pop(); // text - \hbcore + _LIT(KDeviceDialogType, "com.nokia.hb.devicenotificationdialog/1.0"); + dialog->Show(KDeviceDialogType, *map); + CleanupStack::PopAndDestroy(2); // dialog, map + \endcode + + \sa HbDeviceDialog, CHbSymbianVariant, CHbSymbianVariantMap, MHbDeviceDialogObserver */ /*! @@ -59,61 +99,75 @@ Defines device dialog error codes and ranges. */ /*! - \var TDeviceDialogError::DeviceDialogError HbDeviceDialog::EFrameworkErrors + \var CHbDeviceDialogSymbian::TDeviceDialogError CHbDeviceDialogSymbian::EFrameworkErrors Start of an error range for errors originating from device dialog framework (client or server). */ /*! - \var TDeviceDialogError::DeviceDialogError HbDeviceDialog::EPluginErrors + \var CHbDeviceDialogSymbian::TDeviceDialogError CHbDeviceDialogSymbian::EPluginErrors Start of an error range for errors originating from device dialog plugins. The framework passes these from the plugin unmodified. */ /*! - \var TDeviceDialogError::DeviceDialogError HbDeviceDialog::EErrorTypeMask + \var CHbDeviceDialogSymbian::TDeviceDialogError CHbDeviceDialogSymbian::EErrorTypeMask Mask for error type part of the error code. */ /*! - \var TDeviceDialogError::DeviceDialogError HbDeviceDialog::ECancelledError + \var CHbDeviceDialogSymbian::TDeviceDialogError CHbDeviceDialogSymbian::ECancelledError Operation was cancelled by Cancel(). */ /*! - \var TDeviceDialogError::DeviceDialogError HbDeviceDialog::ESystemCancelledError + \var CHbDeviceDialogSymbian::TDeviceDialogError CHbDeviceDialogSymbian::ESystemCancelledError Operation was cancelled by device dialog framework. */ /*! - \var TDeviceDialogError::DeviceDialogError HbDeviceDialog::EInstanceExistsError + \var CHbDeviceDialogSymbian::TDeviceDialogError CHbDeviceDialogSymbian::EInstanceExistsError A single instance device dialog widget exists already (has been launched). See HbDeviceDialogPlugin::SingleInstance. */ /*! + \enum CHbDeviceDialogSymbian::TDeviceDialogFlag + Defines construct flags. +*/ +/*! + \var CHbDeviceDialogSymbian::TDeviceDialogFlag CHbDeviceDialogSymbian::ENoDeviceDialogFlags + No flags specified. +*/ +/*! + \var CHbDeviceDialogSymbian::TDeviceDialogFlag CHbDeviceDialogSymbian::EImmediateResourceReservation + Reserves resources immediately instead of delaying until Show() is called. +*/ +/*! + \var CHbDeviceDialogSymbian::TDeviceDialogFlag CHbDeviceDialogSymbian::EASyncServerStartup + Starts device dialog service asynchronously. +*/ + +/*! \fn void MHbDeviceDialogObserver::DataReceived(CHbSymbianVariantMap& aData) This callback is called when data is received from a device dialog. - \a aData contains data from the dialog plugin. - The structure and meaning of the data is a contract between the dialog and - a client. Structure should be aligned with the data types supported by - CHbSymbianVariantMap. + \a aData contains data from the dialog plugin. The structure and meaning + of the data is a contract between the dialog and a client. - \sa CHbSymbianVariantMap. + If no observer is set in CHbDeviceDialogSymbian::Show() the latest data + can be retrieved with CHbDeviceDialogSymbian::receivedData(). + + \sa CHbSymbianVariantMap */ /*! \fn void MHbDeviceDialogObserver::DeviceDialogClosed(TInt aCompletionCode) This callback is called when a device dialog is closed. Any data sent by - the dialog is indicated by the dataReceived() callback. If no observer is - set in CHbDeviceDialogSymbian::Show the latest data can be retrieved with - CHbDeviceDialogSymbian::receivedData() + the dialog is indicated by the dataReceived() callback. \a aCompletionCode gives the result of the dialog completion. Code can be either Symbian error code or device dialog error code. - \sa DataReceived() ReceivedData() + \sa DataReceived(), ReceivedData() */ -// Device dialogs are implemented only for Symbian/S60 OS. - -class CHbDeviceDialogSymbianPrivate : public CActive +NONSHARABLE_CLASS(CHbDeviceDialogSymbianPrivate) : public CActive { public: CHbDeviceDialogSymbianPrivate(TInt aFlags); @@ -238,11 +292,7 @@ return error; } -/*! - \internal - - Send device dialog update. -*/ +// Send device dialog update. TInt CHbDeviceDialogSymbianPrivate::Update( const QByteArray& aArray ) { TInt error = iLastError = KErrNone; @@ -263,12 +313,7 @@ return error; } -/*! - \internal - - Cancel a scheduled popup on HbDeviceDialogManager. Event buffer is cleared - at server. -*/ +// Cancel a scheduled popup on HbDeviceDialogManager. Event buffer is cleared at server. void CHbDeviceDialogSymbianPrivate::CancelDialog() { iLastError = KErrNone; @@ -284,11 +329,7 @@ } } -/*! - \internal - - Return last error. -*/ +// Return last error. TInt CHbDeviceDialogSymbianPrivate::Error() const { return iLastError; @@ -298,10 +339,8 @@ { iObserver = aObserver; } -/*! - \internal - RunL from CActive. -*/ + +// RunL from CActive. void CHbDeviceDialogSymbianPrivate::RunL() { TInt completionCode = iStatus.Int(); @@ -390,10 +429,7 @@ } } -/*! - \internal - DoCancel from CActive. -*/ +// DoCancel from CActive. void CHbDeviceDialogSymbianPrivate::DoCancel() { SetError(KErrCancel); @@ -401,20 +437,14 @@ iHbSession.SendSyncRequest(EHbSrvCancelUpdateChannel); } -/*! - \internal - RunError from CActive. -*/ +// RunError from CActive. TInt CHbDeviceDialogSymbianPrivate::RunError(TInt /*aError*/) { SetError(SymToDeviceDialogError(KErrGeneral)); return KErrNone; } -/*! - \internal - Starts asynchronous message to receive update and close events from session. -*/ +// Starts asynchronous message to receive update and close events from session. void CHbDeviceDialogSymbianPrivate::Start() { iDataPtr.Zero(); @@ -495,22 +525,20 @@ } /*! - Show of device dialog. Each time a Show() is called a new dialog is launched. - aParameter data is sent to device dialog in Qt's QVariantMap object. - The function is asynchronous and returns immediately. Closing and data events from the - dialog can be received by observer interface. Deleting CHbDeviceDialogSymbian object - closes and deletes the device dialog at server if observer is set. If observer is null - the dialog is left executing at the server and it's assumed it closes itself by a timeout. - Cancel() to closes the device dialog. + Shows a device dialog. Each time a Show() is called, a new dialog is launched. + The function is asynchronous and returns after the service has accepted the dialog. + Closing and data events from the dialog are indicated by observer interface. + Deleting CHbDeviceDialogSymbian object closes and deletes the device dialog at server + if observer is set. If no observer is set, the dialog is left executing at the server + and it's assumed it closes itself by a timeout. Cancel() closes the device dialog. - \a aDeviceDialogType is name of the device dialog. Identifies the device - dialog plugin. \a aParameters is a buffer containing data for the device dialog. + \param aDeviceDialogType Identifies a device dialog. + \param aParameters Contains parameters for the device dialog. + \param aObserver Contains observer for the dialog or 0 for no observer. - \a aObserver is used to observe the session. + \return returns 0 on success or error code. - Return value informs if the call was successful. - - \sa Update() Cancel() + \sa Update(), Cancel() */ EXPORT_C TInt CHbDeviceDialogSymbian::Show(const TDesC& aDeviceDialogType, const CHbSymbianVariantMap& aParameters, MHbDeviceDialogObserver* aObserver) { @@ -533,8 +561,11 @@ /*! Updates device dialog parameters by a set of new values. Show() must be called before an - Update() can be called. Returns true on success and false - if error occurred. + Update() can be called. + + \param aParameters Contains parameters for the device dialog. + + \return returns 0 on success or error code. \sa Show() */ @@ -557,8 +588,10 @@ } /*! - Get the data received from device dialog if using synchronous Show - in s60 data types. Caller gets the ownership. + Gets the latest data received from a device dialog. If observer is set, data received from + device dialog is not saved and an empty container is returned. + + \return returns data received from device dialog. Ownership is transferred to caller. */ EXPORT_C CHbSymbianVariantMap* CHbDeviceDialogSymbian::ReceivedDataL() const { @@ -567,8 +600,8 @@ } /*! - Cancel device dialog session. Visible dialog is removed from the screen. - Waiting dialogs are canceled and no effect if dialog already dismissed + Cancels a device dialog. Visible dialog is closed and a queued one is deleted. + No effect if dialog has already closed. */ EXPORT_C void CHbDeviceDialogSymbian::Cancel() { @@ -576,8 +609,9 @@ } /*! - Set observer for device dialog events. \aObserver is pointer to the - observer. Null disables observing. + Sets observer for device dialog events. + + \param aObserver Contains observer for the device dialog. 0 disables observing. */ EXPORT_C void CHbDeviceDialogSymbian::SetObserver(MHbDeviceDialogObserver* aObserver) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbdevicedialogsymbian.h --- a/src/hbcore/devicedialogbase/hbdevicedialogsymbian.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbdevicedialogsymbian.h Fri Sep 17 08:32:10 2010 +0300 @@ -42,10 +42,12 @@ virtual void DeviceDialogClosed(TInt aCompletionCode) = 0; }; -class CHbDeviceDialogSymbian : public CBase +class CHbDeviceDialogSymbian +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: - enum TDeviceDialogError{ EFrameworkErrors = 0x00000000, EPluginErrors = 0x10000000, @@ -62,22 +64,16 @@ }; IMPORT_C static CHbDeviceDialogSymbian* NewL(TInt aFlags = ENoDeviceDialogFlags); - IMPORT_C ~CHbDeviceDialogSymbian(); IMPORT_C TInt Show(const TDesC& aDeviceDialogType, const CHbSymbianVariantMap& aParameters, MHbDeviceDialogObserver* aObserver = NULL); - IMPORT_C CHbSymbianVariantMap* ReceivedDataL() const; - IMPORT_C TInt Update(const CHbSymbianVariantMap& aParameters); - IMPORT_C void Cancel(); - IMPORT_C void SetObserver(MHbDeviceDialogObserver* aObserver); private: CHbDeviceDialogSymbian(); - CHbDeviceDialogSymbianPrivate* d; }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbindicator.cpp --- a/src/hbcore/devicedialogbase/hbindicator.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbindicator.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -25,25 +25,36 @@ /*! \class HbIndicator - \brief HbIndicator can be used to activate and deactivate indicators. + \brief HbIndicator can be used to activate, update and deactivate indicators. + + Indicators are used to indicate events to user. For example unread mail, missed calls, etc. + They appear as icon in status bar and/or indicator menu. In addition of an icon, indicator menu + may also contains text for an indicator. From the menu, user can interact with an indicator + by tapping it. - HbIndicator sends a request for indicator activation and deactivation to - server side. Indicators are identified by their type-string and there must be a - server side indicator implementation for that type. + Indicators are implemented by plugins loaded by indicator service. Indicator implementations + in plugins are identified by unique strings. + + Activating indicator adds it into status bar and/or menu. Deactivating removes it. + + Activating an already active indicator updates it with a new data set. The plugin implementation + is called the same way as first time activate is called. - Active indicators may appear in the status indicator area as an icon, - and/or inside universal indicator popup showing icon and text. - Depending on the indicator implementation, activated indicator may also show up with - a discreet popup and some indicators can be interacted by the user in universal indicator popup. + HbIndicator indicates data from the plugin implementation by HbIndicator::userActivated() signal. + The pugin may trigger this signal for example when user interacts with the indicator from + indicator menu. Data accompanying the signal originates from indicator plugin and is + passed by indicator framework unmodified. All instances of HbIndicator that have activated + the indicator, receive the signal. - When deactivated, icons are removed from the status - indicator area and in universal indicator popup. + The code below activates and deactivates an indicator. + \code + static const char indicatorType[] = "com.nokia.hb.unittestfirstindicator0/1.0"; + // Activate with an integer parameter value 0 + mIndicator.activate(indicatorType, QVariant(0)); + mIndicator.deactivate(indicatorType); + \endcode - User can interact with indicator from the indicator menu. Client is notified about - the user interaction via userActivated signal. Interaction notification and data - sent by the indicator is a contract between HbIndicator class and indicator. - - \sa HbIndicatorPluginInterface + \sa HbIndicatorPluginInterface, HbIndicatorInterface \stable \hbcore @@ -55,8 +66,7 @@ */ /*! \var HbIndicator::ErrorRange HbIndicator::FrameworkErrors - Start of an error range for errors originating from device dialog framework (client or server). - Error codes are defined in hbdevicedialogerrors.h + Start of an error range for errors originating from indicator framework (client or server). */ /*! \var HbIndicator::ErrorRange HbIndicator::PluginErrors @@ -70,9 +80,10 @@ /*! \fn void HbIndicator::userActivated(const QString &type, const QVariantMap &data) - The class should emit this signal, when client needs to be notified of the - user interaction. - @param type Type of the indicator that user interacted with. + Signal indicates data from indicator plugin implentation. Indicator plugin may originate the signal + for example when user interacts with the indicator from indicator menu. + + @param type Indicator type (identification). @param data Data sent by indicator. */ @@ -114,11 +125,14 @@ } /*! - Activates an indicator of type \a indicatorType. - An extra parameter can be passed along to the indicator plugin. - Returns true, if the indicator is activated, false, if an error occurred. + Activates an indicator. If indicator was already active, updates it. - \sa deactivate + \param indicatorType Indicator to activate. + \param parameter Parameter to pass into indicator plugin implementation. + + \return Returns true if the indicator was activated, false if an error occurred. + + \sa deactivate() */ bool HbIndicator::activate(const QString &indicatorType, const QVariant ¶meter) { @@ -126,12 +140,15 @@ } /*! - Deactivates an indicator of type \a indicatorType. - An extra parameter can be passed along to the indicator plugin. - If indicator is not currently active, does nothing and returns true. - Returns false, if error occurred. + Deactivates an indicator. + + \param indicatorType Indicator to deactivate. + \param parameter Parameter to pass into indicator plugin implementation. - \sa activate + \return Returns true if the indicator was deactivated or wasn't active, + false if an error occurred. + + \sa activate() */ bool HbIndicator::deactivate(const QString &indicatorType, const QVariant ¶meter) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbindicatorsym_p.h --- a/src/hbcore/devicedialogbase/hbindicatorsym_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbindicatorsym_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -32,8 +32,6 @@ #include "hbindicatorclientinfo_p.h" -const TInt KHbMessageBufferSize = 255; - class CAsyncListener; // // W A R N I N G diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbindicatorsymbian.cpp --- a/src/hbcore/devicedialogbase/hbindicatorsymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbindicatorsymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,36 +31,49 @@ /*! \fn void MHbIndicatorSymbianObserver::IndicatorUserActivated(const TDesC& aType, CHbSymbianVariantMap& aData) - This callback is called when user has interacted with an indicator on the indicator - menu. - - \a aType - Type of the indicator that user interacted with. + Callback indicates data from indicator plugin implentation. Indicator plugin may originate the callback + for example when user interacts with the indicator from indicator menu. + + \a aType - Indicator type (identification). \a aData - Data sent by the indicator. */ /*! \class CHbIndicatorSymbian - \brief CHbIndicatorSymbian can be used to activate and deactivate indicators. It is a client - interface for Symbian applications to Hb indicators. + \brief CHbIndicatorSymbian is a Symbian implementation of HbIndicator. + + This class is Symbian only. Not available on other platforms. + + See HbIndicator documentation to find out more about indicators. - CHbIndicatorSymbian sends a request for indicator activation and deactivation to - server side. Indicators are identified by their type-string and there must be a - server side indicator implementation for that type. + CHbIndicatorSymbian is intended for use by Symbian servers that don't run Qt event loop + and cannot use HbIndicator. + + The class is accompanied by a class CHbSymbianVariant which + is used to encapsulate indicator parameter. Indicator framework takes care of + translating Symbian data types to/from format understood by indicator plugins. + + Events from an indicator are indicated by MHbIndicatorSymbianObserver callback interface. - Active indicators may appear in the status indicator area as an icon, - and/or inside universal indicator menu showing icon and text. - Depending on the indicator implementation, activated indicator may also show up with - a notification dialog and some indicators can be interacted by the user in universal indicator menu. + The code below activates and deactivates an indicator. + \code + CHbIndicatorSymbian* indicator = CHbIndicatorSymbian::NewL(); + CleanupStack::PushL(indicator); + + _LIT(KOptionKey, "option"); + const TInt optionValue = 0; + CHbSymbianVariant* option = CHbSymbianVariant::NewL(&optionValue, CHbSymbianVariant::EInt); + CleanupStack::PushL(option); - User can interact with an indicator from the indicator menu. Client is notified about - the user interaction via MHbIndicatorSymbianObserver observer interface. Interaction - notification and data sent by the indicator is a contract between HbIndicator class - and indicator. - - When deactivated, icons are removed from the status - indicator area and in universal indicator menu. + _LIT(KIndicatorType, "com.nokia.hb.unittestfirstindicator0/1.0"); + indicator->Activate(KIndicatorType, option); + User::LeaveIfError(indicator->Error()); + indicator->Deactivate(KIndicatorType); + User::LeaveIfError(indicator->Error()); + CleanupStack::PopAndDestroy(2); // indicator, option + \endcode - \sa HbIndicator + \sa HbIndicator, CHbSymbianVariant \stable \hbcore @@ -68,12 +81,11 @@ /*! \enum CHbIndicatorSymbian::TIndicatorError - Defines the indicator errors. + Defines the indicator error ranges. */ /*! \var CHbIndicatorSymbian::TIndicatorError CHbIndicatorSymbian::EFrameworkErrors - Start of an error range for errors originating from device dialog framework. - Error codes are defined in hbdevicedialogerrors.h + Start of an error range for errors originating from indicator framework. */ /*! \var CHbIndicatorSymbian::TIndicatorError CHbIndicatorSymbian::EPluginErrors @@ -94,7 +106,7 @@ #include "hbdevicedialogerrors_p.h" #include "hbdevicedialogserverdefs_p.h" -class CHbIndicatorSymbianPrivate : public CActive { +NONSHARABLE_CLASS(CHbIndicatorSymbianPrivate) : public CActive { public: CHbIndicatorSymbianPrivate() : CActive(EPriorityStandard), iInitialized(EFalse), iLastError(HbDeviceDialogNoError), iMsgTypePtr(NULL,0,0), iBuffer(NULL), @@ -280,11 +292,15 @@ } /*! - Activates an indicator of type \a aIndicatorType. - An extra parameter can be passed along to the indicator plugin. - Returns true, if the indicator is activated, false, if an error occurred. + Activates an indicator. If indicator was already active, updates it. - \sa Deactivate + \param aIndicatorType Indicator to activate. + \param aParameter Optional parameter to pass into indicator plugin implementation. Ownership + doesn't transfer. + + \return Returns true if the indicator was activated, false if an error occurred. + + \sa Deactivate() */ EXPORT_C TBool CHbIndicatorSymbian::Activate(const TDesC& aIndicatorType, const CHbSymbianVariant* aParameter) { @@ -292,12 +308,16 @@ } /*! - Deactivates an indicator of type \a indicatorType. - An extra parameter can be passed along to the indicator plugin. - If indicator is not currently active, does nothing and returns true. - Returns false, if error occurred. + Deactivates an indicator. - \sa Activate + \param aIndicatorType Indicator to deactivate. + \param aParameter Optional parameter to pass into indicator plugin implementation. Ownership + doesn't transfer. + + \return Returns true if the indicator was deactivated or wasn't active, + false if an error occurred. + + \sa Activate() */ EXPORT_C TBool CHbIndicatorSymbian::Deactivate(const TDesC& aIndicatorType, const CHbSymbianVariant* aParameter) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbindicatorsymbian.h --- a/src/hbcore/devicedialogbase/hbindicatorsymbian.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbindicatorsymbian.h Fri Sep 17 08:32:10 2010 +0300 @@ -39,7 +39,10 @@ virtual void IndicatorUserActivated(const TDesC& aType, CHbSymbianVariantMap& aData) = 0; }; -class CHbIndicatorSymbian : public CBase +class CHbIndicatorSymbian +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: enum TIndicatorError { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbsymbianvariant.cpp --- a/src/hbcore/devicedialogbase/hbsymbianvariant.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbsymbianvariant.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -27,7 +27,7 @@ _LIT(KPanicSymbianVariantNotSupportedType, "CHbSymbianVariant: Not supported type"); -class CHbSymbianVariantPrivate : public CBase +NONSHARABLE_CLASS(CHbSymbianVariantPrivate) : public CBase { public: CHbSymbianVariantPrivate(); @@ -247,94 +247,107 @@ }; /*! - \class CHbSymbianVariant - \brief CHbSymbianVariant implements QVariant for Symbian. + \class CHbSymbianVariant + \brief CHbSymbianVariant is a QVariant like union for Symbian data types. + + This class is Symbian only. Not available on other platforms. + + CHbSymbianVariant holds a single value of a single type at a time. CHbSymbianVariant::TType + specifies supported data types. + + The class is used to pass parameters to device dialog and indicator plugins. Device dialog + and indicator frameworks perform conversion between Qt and Symbian data types. Below list + contains a partial list of Symbian data types and corresponding Qt types supported by + the class. - It supports part of the data types supported in QVariant: - QString (TDesC) - QChar (TChar) - QPoint(TPoint) - QRect(TRect) - QSize(TSize) - QByteArray(TDesC8) - QStringList (MDesCArray) + + + + + + + + + + + +
Symbian/Qt data type analogy
Symbian typeQt type
TDesCQString
TCharQChar
TPointQPoint
TRectQRect
TSizeQSize
TDesC8QByteArray
MDesCArrayQStringList
CHbSymbianVariantMapQVariantMap
- The data passed to the constructor is copied to the CHbSymbianVariant. - - \sa CHbSymbianVariantMap, CHbDeviceDialog - \stable - - \hbcore - + \sa CHbSymbianVariantMap, CHbDeviceDialogSymbian, CHbIndicatorSymbian + + \stable + \hbcore */ /*! \enum CHbSymbianVariant::TType - Data types the CHbSymbianVariant can contain + Data types CHbSymbianVariant supports. */ /*! - \var CHbSymbianVariant::EInt - a TInt + \var CHbSymbianVariant::TType CHbSymbianVariant::EInt + Data type TInt. */ /*! - \var CHbSymbianVariant::EBool - a TBool + \var CHbSymbianVariant::TType CHbSymbianVariant::EBool + Data type TBool. */ /*! - \var CHbSymbianVariant::EUint - a TUint + \var CHbSymbianVariant::TType CHbSymbianVariant::EUint + Data type TUint. */ /*! - \var CHbSymbianVariant::EReal - a TReal + \var CHbSymbianVariant::TType CHbSymbianVariant::EReal + Data type TReal. */ /*! - \var CHbSymbianVariant::ERect - a TRect + \var CHbSymbianVariant::TType CHbSymbianVariant::ERect + Data type TRect. */ /*! - \var CHbSymbianVariant::EPoint - a TPoint + \var CHbSymbianVariant::TType CHbSymbianVariant::EPoint + Data type TPoint. */ /*! - \var CHbSymbianVariant::ESize - a TSize + \var CHbSymbianVariant::TType CHbSymbianVariant::ESize + Data type TSize. */ /*! - \var CHbSymbianVariant::EChar - a TChar + \var CHbSymbianVariant::TType CHbSymbianVariant::EChar + Data type TChar. */ /*! - \var CHbSymbianVariant::EDes - a TDesC + \var CHbSymbianVariant::TType CHbSymbianVariant::EDes + Data type TDesC. */ /*! - \var CHbSymbianVariant::EBinary - a TDesC8 + \var CHbSymbianVariant::TType CHbSymbianVariant::EBinary + Data type TDesC8. */ /*! - \var CHbSymbianVariant::EDesArray - a MDesCArray + \var CHbSymbianVariant::TType CHbSymbianVariant::EDesArray + Data type MDesCArray. */ /*! - \var CHbSymbianVariant::EVariantMap - a symbian variant map + \var CHbSymbianVariant::TType CHbSymbianVariant::EVariantMap + Data type CHbSymbianVariantMap. */ /*! - \fn T * CHbSymbianVariant::Value() + \fn T* CHbSymbianVariant::Value() const - Template class to get variants value casted to the correct pointer type. See the - CHbSymbianVariant::TType for the supported classes. + Template fuction to get variant's value casted to a correct pointer type. See + TType for the supported types. - \sa CHbSymbianVariant::TType + \sa TType */ /*! - Creates a new CHbSymbianVariant. Note that if CHbSymbianVariant::EDesArray - is used the \aData must be casted to MDesCArray pointer when passed to the method. + Creates a new CHbSymbianVariant. Data passed to the constructor is copied to the + CHbSymbianVariant. + + \param aData Data to copy into the variant. Note: If EDesArray is used, data pointer must be casted to MDesCArray. + \param aDataType Type of data. */ - EXPORT_C CHbSymbianVariant* CHbSymbianVariant::NewL(const TAny* aData, TType aDataType) { CHbSymbianVariant* variant = new (ELeave) CHbSymbianVariant(aData, aDataType); @@ -344,11 +357,10 @@ return variant; } +/*! + Returns type of data stored in CHbSymbianVariant. -/*! - Returns the data type stored in CHbSymbianVariant - - \sa CHbSymbianVariant::TType + \sa TType */ EXPORT_C CHbSymbianVariant::TType CHbSymbianVariant::Type() const { @@ -356,10 +368,8 @@ } /*! - Get TAny pointer to the CHbSymbianVariant data. - The CHbSymbianVariant::Value() should be used instead of this method. - - Ownership is not changed. + Returns pointer to data stored by CHbSymbianVariant. Ownership does not changed. + Value() should be used instead of this method. */ EXPORT_C TAny* CHbSymbianVariant::Data() const { @@ -367,9 +377,11 @@ } /*! - Set new data to CHbSymbianVariant. Old data is deleted. + Copies new data to CHbSymbianVariant. Old data is deleted. + Ownership does not changed. - Ownership is not changed. + \param aData Data to copy into the variant. Note: If EDesArray is used, data pointer must be casted to MDesCArray. + \param aDataType Type of data. */ EXPORT_C void CHbSymbianVariant::SetData(TAny* aData, TType aDataType) { @@ -379,8 +391,7 @@ } } /*! - Is the the data in CHbSymbianVariant valid. data is valid if the variant - is created with valid data and data type + Returns true if CHbSymbianVariant holds valid data. */ EXPORT_C TBool CHbSymbianVariant::IsValid() const { @@ -406,7 +417,7 @@ d->InitializeDataL(aData, aDataType); } -class CHbSymbianVariantMapPrivate : public CBase +NONSHARABLE_CLASS(CHbSymbianVariantMapPrivate) : public CBase { public: CHbSymbianVariantMapPrivate():iKeyArray(NULL),iVariantArray() { @@ -425,18 +436,19 @@ }; /*! - \class CHbSymbianVariantMap - \brief CHbSymbianVariantMap is a container for CHbSymbianVariant objects. + \class CHbSymbianVariantMap + \brief CHbSymbianVariantMap is QVariantMap style container for CHbSymbianVariant objects. + + This class is Symbian only. Not available on other platforms. - It replicates QVariantMap functionality to Symbian native programming side. + This class is used to pass parameters to/from device dialogs. - \sa CHbSymbianVariant, CHbDeviceDialog - \stable + \sa CHbSymbianVariant, CHbDeviceDialogSymbian + \stable */ /*! - Create a new CHbSymbianVariantMap. Map is empty after creation and - ready for use. + Creates an empty CHbSymbianVariantMap. */ EXPORT_C CHbSymbianVariantMap* CHbSymbianVariantMap::NewL() { @@ -454,17 +466,22 @@ } /*! - Adds a key-value pairing to the map. Takes ownership of the variant, - key is copied. If key is already in the map, the value connected to the key - is replaced with the new value. the old value is deleted. + Adds a key-value pair into the container. Takes ownership of the variant, + key is copied. If key is already in the map, the value connected to the key + is replaced with the new value and the old value is deleted. + + \param aKey Key for the value. + \param aVariant Value to add. + + \return Returns Symbian error code. On error ownership of \p aKey is returned to caller. */ EXPORT_C TInt CHbSymbianVariantMap::Add(const TDesC& aKey, CHbSymbianVariant* aVariant) { TInt pos = KErrNotFound; - TInt result = d->iKeyArray->Find(aKey, pos,ECmpNormal); + TInt result = d->iKeyArray->Find(aKey, pos, ECmpNormal); - // there is already a key-value pairing in the map - if((result == KErrNone) && (pos >= 0)) { + // There is already a key-value pairing in the map + if ((result == KErrNone) && (pos >= 0)) { // for some reason directly deleting the pointer and // assigning a new one to position does not work @@ -480,19 +497,22 @@ else { result = KErrNone; TRAP(result, d->iKeyArray->AppendL(aKey)); - if(result == KErrNone){ + if (result == KErrNone){ result = d->iVariantArray.Append(aVariant); - if(result) { + if (result) { d->iKeyArray->Delete(d->iKeyArray->MdcaCount()-1); } } } return result; } + /*! - Deletes value mapped to the key given as parameter \a aKey + Deletes value from the container. - On error returns possible Symbian error code. + \param aKey Key for the value. + + \return Returns Symbian error code. */ EXPORT_C TInt CHbSymbianVariantMap::Delete(const TDesC& aKey) { @@ -509,8 +529,11 @@ } /*! - Gets value mapped to the key. CHbSymbianVariantMap keeps the ownership of the object. - Returns NULL if not found. + Gets a value from the container. + + \param aKey Key for the value. + + \return Returns pointer to the value or 0 if not found. Value ownership does not transfer. */ EXPORT_C const CHbSymbianVariant* CHbSymbianVariantMap::Get(const TDesC& aKey) const { @@ -524,7 +547,7 @@ } /*! - Get all keys in the map. CHbSymbianVariantMap keeps the ownership of the object. + Returns all keys in the map. CHbSymbianVariantMap keeps ownership of the returned value. */ EXPORT_C MDesCArray& CHbSymbianVariantMap::Keys() const { @@ -540,4 +563,3 @@ { d = new (ELeave) CHbSymbianVariantMapPrivate(); } - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbsymbianvariant.h --- a/src/hbcore/devicedialogbase/hbsymbianvariant.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbsymbianvariant.h Fri Sep 17 08:32:10 2010 +0300 @@ -34,27 +34,20 @@ class CHbSymbianVariantPrivate; class CHbSymbianVariantMapPrivate; -class CHbSymbianVariant : public CBase +class CHbSymbianVariant +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: enum TType{ - EInt, - EBool, - EUint, - EReal, - ERect, - EPoint, - ESize, - EChar, - EDes, - EBinary, - EDesArray, - EVariantMap + EInt, EBool, EUint, EReal, ERect, EPoint, ESize, EChar, + EDes, EBinary, EDesArray, EVariantMap }; IMPORT_C static CHbSymbianVariant* NewL(const TAny* aData, TType aDataType); - + IMPORT_C ~CHbSymbianVariant(); IMPORT_C CHbSymbianVariant::TType Type() const; @@ -68,42 +61,34 @@ } IMPORT_C TAny* Data() const; - IMPORT_C void SetData(TAny* aData, TType aDataType); - IMPORT_C TBool IsValid() const; - IMPORT_C ~CHbSymbianVariant(); - private: CHbSymbianVariant(const TAny* aData, TType aDataType); - void ConstructL(const TAny* aData, TType aDataType); - CHbSymbianVariant(const CHbSymbianVariant& aNativeVariant); private: CHbSymbianVariantPrivate* d; }; -class CHbSymbianVariantMap : public CBase +class CHbSymbianVariantMap +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: IMPORT_C static CHbSymbianVariantMap* NewL(); IMPORT_C ~CHbSymbianVariantMap(); IMPORT_C TInt Add(const TDesC& aKey, CHbSymbianVariant* aVariant); - IMPORT_C TInt Delete(const TDesC& aKey); - IMPORT_C const CHbSymbianVariant* Get(const TDesC& aKey) const; - IMPORT_C MDesCArray& Keys() const; private: - CHbSymbianVariantMap(); - void ConstructL(); CHbSymbianVariantMapPrivate* d; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbtextresolversymbian.cpp --- a/src/hbcore/devicedialogbase/hbtextresolversymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbtextresolversymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -33,7 +33,7 @@ #include #include -class HbTextResolverSymbianPrivate: public CBase +NONSHARABLE_CLASS(HbTextResolverSymbianPrivate) : public CBase { public: HbTextResolverSymbianPrivate(); @@ -45,14 +45,14 @@ HBufC* LoadLC(const TDesC& aMessageId, const TDesC& aString, TInt aPlural); // One and %1. %n and %1. Plural and replaces all occurrences of %n in the string. HBufC* LoadLC(const TDesC& aMessageId, const MDesCArray& aStrings, TInt aPlural); HBufC* LoadLC(const TDesC& aMessageId, TInt aInt, TInt aPlural); - HBufC* LoadLC(const TDesC& aMessageId, const RArray& aInts, TInt aPlural); - + HBufC* LoadLC(const TDesC& aMessageId, const RArray& aInts, TInt aPlural); + QString ConvertToQString(const TDesC& aMessageId, TInt aPlural = -1); QTranslator iTranslator; QByteArray iByteArray; TBool iLoaded; QString fileName; - QString path; + QString path; }; Q_GLOBAL_STATIC(HbTextResolverSymbianPrivate, hbTextResolverSymbianPrivate) @@ -60,9 +60,9 @@ HbTextResolverSymbianPrivate* HbTextResolverSymbianPrivate::Instance() { HbTextResolverSymbianPrivate* resolver = hbTextResolverSymbianPrivate(); - return resolver; + return resolver; } - + static void replacePercentN(QString *result, int n) { if (n >= 0) { @@ -88,112 +88,112 @@ } HbTextResolverSymbianPrivate::HbTextResolverSymbianPrivate() - { + { } - + HbTextResolverSymbianPrivate::~HbTextResolverSymbianPrivate() { } TBool HbTextResolverSymbianPrivate::LoadTranslationFile() { - QString locale = QLocale::system().name(); - return iTranslator.load(fileName + locale, path); - } + QString locale = QLocale::system().name(); + return iTranslator.load(fileName + locale, path); + } TBool HbTextResolverSymbianPrivate::Initialize(const TDesC& aFilename, const TDesC& aPath) { fileName = QString::fromUtf16(aFilename.Ptr(), aFilename.Length()); path = QString::fromUtf16(aPath.Ptr(), aPath.Length()); - return LoadTranslationFile(); + return LoadTranslationFile(); } - + HBufC* HbTextResolverSymbianPrivate::LoadLC(const TDesC& aMessageId, TInt aPlural) { QString string = ConvertToQString(aMessageId, aPlural); - + TPtrC descriptor(static_cast(string.utf16()), string.length()); return descriptor.AllocLC(); } - + HBufC* HbTextResolverSymbianPrivate::LoadLC(const TDesC& aMessageId, const TDesC& aString, TInt aPlural) { QString string = ConvertToQString(aMessageId, aPlural); QString result = ConvertToQString(aString); - + if (result.isEmpty()) { result = QString::fromUtf16(aString.Ptr(), aString.Length()); } - string = string.arg(result); + string = string.arg(result); TPtrC descriptor(static_cast(string.utf16()), string.length()); - return descriptor.AllocLC(); + return descriptor.AllocLC(); } HBufC* HbTextResolverSymbianPrivate::LoadLC(const TDesC& aMessageId, const MDesCArray& aStrings, TInt aPlural) { QString string = ConvertToQString(aMessageId, aPlural); - + QString tmp; for (int i(0); i < aStrings.MdcaCount(); i++) { TPtrC ptr = aStrings.MdcaPoint(i); tmp = ConvertToQString(ptr); - + if (tmp.isEmpty() == 0) { tmp = QString::fromUtf16(ptr.Ptr(), ptr.Length()); - } + } string = string.arg(tmp); - } + } TPtrC descriptor(static_cast(string.utf16()), string.length()); return descriptor.AllocLC(); } - + HBufC* HbTextResolverSymbianPrivate::LoadLC(const TDesC& aMessageId, TInt aInt, TInt aPlural) { - QString string = ConvertToQString(aMessageId, aPlural); + QString string = ConvertToQString(aMessageId, aPlural); string = string.arg(aInt); - + TPtrC descriptor(static_cast(string.utf16()), string.length()); return descriptor.AllocLC(); - } - + } + HBufC* HbTextResolverSymbianPrivate::LoadLC(const TDesC& aMessageId, const RArray& aInts, TInt aPlural) { QString string = ConvertToQString(aMessageId, aPlural); - + for (int i(0); i < aInts.Count(); i++) - { + { string = string.arg(aInts[i]); - } - + } + TPtrC descriptor(static_cast(string.utf16()), string.length()); return descriptor.AllocLC(); } - + QString HbTextResolverSymbianPrivate::ConvertToQString(const TDesC& aMessageId, TInt aPlural) - { + { QString result = QString::fromUtf16(aMessageId.Ptr(), aMessageId.Length()); iByteArray = result.toLatin1(); - const char* tmp = iByteArray.data(); + const char* tmp = iByteArray.data(); QString string; if (aPlural == -1) - { - string = iTranslator.translate(0, tmp, 0); + { + string = iTranslator.translate(0, tmp, 0); } else { string = iTranslator.translate(0, tmp, 0, aPlural); } - if (string.isEmpty()) + if (string.isEmpty()) { string = result; } @@ -204,65 +204,66 @@ /*! \class HbTextResolverSymbian \brief HbTextResolverSymbian implements translation support for Symbian OS applications. - - HbTextResolverSymbian is class that provides convenience API for translation support and + + HbTextResolverSymbian is a class that provides convenience API for translation support and is meant to be used only by pure Symbian OS applications. Dynamic strings and plurals are also supported. - - Before using the translation support HbTextResolverSymbian must be initialized. Note that - the filename must not have language specific suffix, because that is handled internally by - HbTextResolverSymbian. - + + Before using the translation support HbTextResolverSymbian must be initialized. In the following + example HbTextResolverSymbian is initialized using somefile_en.qm Qt translation binary file + from c:\\resource directory. Note that the filename must not have language specific suffix, + because that is handled internally by HbTextResolverSymbian using QLocale. + \code - _LIT(KSomeFile, "somefile_"); + // Using somefile_en.qm translation file, when language is english. Language spesific suffix is + // omitted in the file name. + _LIT(KFileName, "somefile_"); _LIT(KPath, "c:\\resource"); - - TBool result = HbTextResolverSymbian::Init(KSomeFile, KPath); + + TBool result = HbTextResolverSymbian::Init(KFileName, KPath); \endcode - + Translating a string given the snippet from a translation file (.ts) below: - ... + \code Test Text test - + _LIT(KTextTest, "text_test"); // returns the string "Text test" HBufC* tmp = HbTextResolverSymbian::LoadL(KTextTest); \endcode - + Translating a string with replacement string given the snippet from a translation file below: - + \code Test2 Test2 %1 - - + _LIT(KTextTest2, "text_test2"); _LIT(KTextTestReplace,"passed."); // returns the string "Test2 passed." HBufC* tmp = HbTextResolverSymbian::LoadL(KTextTest2, KTextTestReplace); \endcode - + Translating a string with replacement strings given the snippet from a translation file below: - + \code Test3 Test3 %1 %2 - - + _LIT(KTextTest3, "text_test3"); _LIT(KTextTest3Replace1,"is"); _LIT(KTextTest3Replace2,"passed."); - + CDesC16ArrayFlat* array = new CDesC16ArrayFlat(8); TBufC<20> buffer; buffer = KTextTest3Replace1; @@ -271,13 +272,8 @@ array->AppendL(buffer); // returns the string "Test3 is passed." HBufC* tmp = HbTextResolverSymbian::LoadL(KTextTest3, *array); - \endcode - - Note: String e.g. "Moving %1 files of %2 from %3" where place markers %1 and %2 are - for integer values and the %3 is for a string, requires that the integers are converted - to descriptors and appended to MDesArray. Those are converted back to integers during - replacement. - + \endcode + Translating a string with replacement integer given the snippet from a translation file below: \code @@ -289,15 +285,14 @@ %n messages of %1 - - + _LIT(KTextTest4, "text_test4"); // returns the string "1 message of 5" HBufC* tmp = HbTextResolverSymbian::LoadL(KTextTest4, 5, 1); - // // returns the string "2 messages of 5" + // returns the string "2 messages of 5" tmp = HbTextResolverSymbian::LoadL(KTextTest4, 5, 2); \endcode - + Translating a string with replacement integers given the snippet from a translation file below: \code @@ -305,12 +300,11 @@ Test3 Test3 %1 %2 - - + RArray intarray; intarray.Append(20); intarray.Append(30); - + // returns the string "Test3 20 30" HBufC* tmp = HbTextResolverSymbian::LoadL(KTextTest3, intarray, 1); \endcode @@ -319,68 +313,77 @@ */ /*! - Initializes the translator. - - \param aFilename specifies the used translation file. + Initializes the translator. + + \param aFilename specifies the used translation file. Note that file name is ended + with underscore e.g. somefile_. \param aPath specifies path to translation file. - - Returns ETrue if initialization was successful. + + \return Returns ETrue if initialization was successful. */ EXPORT_C TBool HbTextResolverSymbian::Init(const TDesC& aFilename, const TDesC& aPath) { HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); return resolver->Initialize(aFilename, aPath); - } + } /*! - Translates the string. - If aPlural is equal to zero or greater, then the translation depending on the - value is returned. Returns a pointer to a heap descriptor containing the translated - string. - If the string for passed \a aMessageId is not found from the translation file then - the source string is returned. - + Translates the string. + If aPlural is equal to zero or greater, then the translation depending on the + plural value is returned. Returns a pointer to a heap descriptor containing the translated + string. + \param aMessageId Identifier of the string to be translated. - \param aPlural Specifies the plural format of the translation. + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. + */ EXPORT_C HBufC* HbTextResolverSymbian::LoadL(const TDesC& aMessageId, TInt aPlural) { - HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); + HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); HBufC* buf = resolver->LoadLC(aMessageId, aPlural); - CleanupStack::Pop(buf); + CleanupStack::Pop(buf); return buf; } /*! - Translates the string and replaces the lowest place marker with the replacement string. + Translates the string and replaces the lowest place marker with the replacement string. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. If the string for passed \a aMessageId or \a aString is not found from the translation - file then the source string is used. - + file then the source string is used. + \param aMessageId Identifier of the string to be translated. \param aString Replacement string for the lowest %N. - \param aPlural Specifies the plural format of the translation. -*/ + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. +*/ EXPORT_C HBufC* HbTextResolverSymbian::LoadL(const TDesC& aMessageId, const TDesC& aString, TInt aPlural) { HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); HBufC* buf = resolver->LoadLC(aMessageId, aString, aPlural); - CleanupStack::Pop(buf); - return buf; - } + CleanupStack::Pop(buf); + return buf; + } /*! - Translates the string and replaces place markers from the lowest place marker with the - replacement strings provided in the array. + Translates the string and replaces place markers from the lowest place marker with the + replacement strings provided in the array. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. If the string for passed \a aMessageId or \a aStrings are not found from the translation - file then the source string is used. - + file then the source string is used. + \param aMessageId Identifier of the string to be translated. \param aStrings Replacement strings for the place markers. - \param aPlural Specifies the plural format of the translation. + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. */ EXPORT_C HBufC* HbTextResolverSymbian::LoadL(const TDesC& aMessageId, const MDesCArray& aStrings, TInt aPlural) { @@ -391,54 +394,63 @@ } /*! - Translates the string and replaces the lowest place marker with the replacement integer. + Translates the string and replaces the lowest place marker with the replacement integer. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. If the string for passed \a aMessageId is not found from the translation - file then the source string is used. - + file then the source string is used. + \param aMessageId Identifier of the string to be translated. \param aInt Replacement integer for the lowest place marker %(index). - \param aPlural Specifies the plural format of the translation. -*/ + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. +*/ EXPORT_C HBufC* HbTextResolverSymbian::LoadL(const TDesC& aMessageId, TInt aInt, TInt aPlural) { HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); - HBufC* buf = resolver->LoadLC(aMessageId, aInt, aPlural); + HBufC* buf = resolver->LoadLC(aMessageId, aInt, aPlural); CleanupStack::Pop(buf); - return buf; - } + return buf; + } /*! - Translates the string and replaces place markers from the lowest place marker with the - replacement integers provided in the array. + Translates the string and replaces place markers from the lowest place marker with the + replacement integers provided in the array. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. If the string for passed \a aMessageId is not found from the translation file then the source string is used. - + \param aMessageId Identifier of the string to be translated. \param aInts Replacement integers for the place markers. - \param aPlural Specifies the plural format of the translation. -*/ + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. +*/ EXPORT_C HBufC* HbTextResolverSymbian::LoadL(const TDesC& aMessageId, const RArray& aInts, TInt aPlural) { HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); HBufC* buf = resolver->LoadLC(aMessageId, aInts, aPlural); - CleanupStack::Pop(buf); + CleanupStack::Pop(buf); return buf; } /*! - Translates the string. - If aPlural is equal to zero or greater, then the translation depending on the + Translates the string. + If aPlural is equal to zero or greater, then the translation depending on the value is returned. Returns a pointer to a heap descriptor containing the translated - string. Pointer is pushed to cleanup stack. - If the string for passed \a aMessageId is not found from the translation file then - the source string is returned. - + string. Pointer is pushed to cleanup stack. + If the string for passed \a aMessageId is not found from the translation file then + the source string is returned. + \param aMessageId Identifier of the string to be translated. - \param aPlural Specifies the plural format of the translation. + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. */ EXPORT_C HBufC* HbTextResolverSymbian::LoadLC(const TDesC& aMessageId, TInt aPlural) { @@ -447,17 +459,20 @@ } /*! - Translates the string and replaces the lowest place marker with the replacement string. + Translates the string and replaces the lowest place marker with the replacement string. If \a aPlural is equal to zero or greater, then translation depending on the value - is returned. Returns a pointer to a heap descriptor containing the formatted string. + is returned. Returns a pointer to a heap descriptor containing the formatted string. Pointer is pushed to cleanup stack. If the string for passed \a aMessageId or \a aString is not found from the translation - file then the source string is used. - + file then the source string is used. + \param aMessageId Identifier of the string to be translated. \param aString Replacement string for the lowest %N. - \param aPlural Specifies the plural format of the translation. -*/ + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. +*/ EXPORT_C HBufC* HbTextResolverSymbian::LoadLC(const TDesC& aMessageId, const TDesC& aString, TInt aPlural) { HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); @@ -465,17 +480,20 @@ } /*! - Translates the string and replaces place markers from the lowest place marker with the - replacement strings provided in the array. + Translates the string and replaces place markers from the lowest place marker with the + replacement strings provided in the array. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. Pointer is pushed to cleanup stack. If the string for passed \a aMessageId or \a aStrings are not found from the translation file then the source string is used. - + \param aMessageId Identifier of the string to be translated. \param aStrings Replacement strings for the place markers. - \param aPlural Specifies the plural format of the translation. + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. */ EXPORT_C HBufC* HbTextResolverSymbian::LoadLC(const TDesC& aMessageId, const MDesCArray& aStrings, TInt aPlural) { @@ -484,37 +502,41 @@ } /*! - Translates the string and replaces the lowest place marker with the replacement integer. + Translates the string and replaces the lowest place marker with the replacement integer. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. If the string for passed \a aMessageId is not found from the translation - file then the source string is used. - + file then the source string is used. + \param aMessageId Identifier of the string to be translated. \param aInt Replacement integer for the lowest place marker %(index). - \param aPlural Specifies the plural format of the translation. -*/ + \param aPlural Specifies the plural format of the translation. + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. +*/ EXPORT_C HBufC* HbTextResolverSymbian::LoadLC(const TDesC& aMessageId, TInt aInt, TInt aPlural) { - HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); + HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); return resolver->LoadLC(aMessageId, aInt, aPlural); } /*! - Translates the string and replaces place markers from the lowest place marker with the - replacement integers provided in the array. + Translates the string and replaces place markers from the lowest place marker with the + replacement integers provided in the array. If \a aPlural is equal to zero or greater, then translation depending on the value is returned. Returns a pointer to a heap descriptor containing the formatted string. If the string for passed \a aMessageId is not found from the translation file then the source string is used. - + \param aMessageId Identifier of the string to be translated. \param aInts Replacement integers for the place markers. - \param aPlural Specifies the plural format of the translation. -*/ + \param aPlural Specifies the plural format of the translation. + + \return Returns translated string on success or if the translation file does not contain a + translation for \a aMessageId in context, this function returns a string equivalent of \a aMessageId. +*/ EXPORT_C HBufC* HbTextResolverSymbian::LoadLC(const TDesC& aMessageId, const RArray& aInts, TInt aPlural) { HbTextResolverSymbianPrivate* resolver = HbTextResolverSymbianPrivate::Instance(); return resolver->LoadLC(aMessageId, aInts, aPlural); } - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/devicedialogbase/hbtextresolversymbian.h --- a/src/hbcore/devicedialogbase/hbtextresolversymbian.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/devicedialogbase/hbtextresolversymbian.h Fri Sep 17 08:32:10 2010 +0300 @@ -31,7 +31,7 @@ #include #include -NONSHARABLE_CLASS(HbTextResolverSymbian) +class HbTextResolverSymbian { public: IMPORT_C static TBool Init(const TDesC& aFilename, const TDesC& aPath); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/feedback/hbfeedbackengine.cpp --- a/src/hbcore/feedback/hbfeedbackengine.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/feedback/hbfeedbackengine.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -285,11 +285,6 @@ } break; - case Hb::InstantMultitouchActivated: { - HB_DEPRECATED("Hb::InstantMultitouchActivated is deprecated."); - multitouchActivated(widget); - } - break; case Hb::InstantAdvancedGestureActivated: { advancedGestureActivated(widget); } @@ -426,19 +421,6 @@ } /*! - \deprecated HbFeedbackEngine::multitouchActivated(const HbWidget*) - is deprecated. Use HbFeedbackEngine::advancedGestureActivated(const HbWidget*) instead. - - Called when the engine receives a touch gesture event with more than one finger from the feedback manager. - - \param widget the widget being interacted with -*/ -void HbFeedbackEngine::multitouchActivated(const HbWidget *widget) -{ - Q_UNUSED(widget); -} - -/*! Called when the engine receives a touch gesture event with more than one finger from the feedback manager. \param widget the widget being interacted with diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/feedback/hbfeedbackengine.h --- a/src/hbcore/feedback/hbfeedbackengine.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/feedback/hbfeedbackengine.h Fri Sep 17 08:32:10 2010 +0300 @@ -72,7 +72,6 @@ virtual void boundaryReached(const HbWidget *widget); virtual void rotated90Degrees(const HbWidget *widget); virtual void selectionChanged(const HbWidget *widget); - virtual void multitouchActivated(const HbWidget *widget); // deprecated virtual void advancedGestureActivated(const HbWidget *widget); virtual void continuousTriggered(const HbWidget *widget, Hb::ContinuousInteraction interaction, QPointF delta); virtual void continuousStopped(const HbWidget *widget, Hb::ContinuousInteraction interaction); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/feedback/hbfeedbacknamespace.cpp --- a/src/hbcore/feedback/hbfeedbacknamespace.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/feedback/hbfeedbacknamespace.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -221,11 +221,6 @@ */ /*! - \deprecated HbFeedback::MultitouchActivate - is deprecated. Use HbFeedback::AdvancedGestureActivate instead. -*/ - -/*! \var HbFeedback::InstantEffect HbFeedback::AdvancedGestureActivate Instant feedback when a touch gesture with more than one finger is activated: a second touch point is detected and a pinch gesture (for example zooming) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/feedback/hbfeedbacknamespace.h --- a/src/hbcore/feedback/hbfeedbacknamespace.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/feedback/hbfeedbacknamespace.h Fri Sep 17 08:32:10 2010 +0300 @@ -79,7 +79,6 @@ PopupClose, Flick, StopFlick, - MultitouchActivate, // deprecated AdvancedGestureActivate, RotateStep, LongPress, diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gestures/hbgesturerecognizers_p.cpp --- a/src/hbcore/gestures/hbgesturerecognizers_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gestures/hbgesturerecognizers_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -74,8 +74,14 @@ \return */ -QGesture* HbPanGestureRecognizer::create(QObject *) +QGesture* HbPanGestureRecognizer::create(QObject *target) { + if (target && target->isWidgetType()) { + static_cast(target)->setAttribute(Qt::WA_AcceptTouchEvents); + } + if (QGraphicsObject *o = qobject_cast(target)){ + o->setAcceptTouchEvents(true); + } return new HbPanGesture; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gestures/hbpangesture.cpp --- a/src/hbcore/gestures/hbpangesture.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gestures/hbpangesture.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -128,6 +128,7 @@ HbPanGesture::HbPanGesture(QObject *parent) : QPanGesture(parent), d_ptr(new HbPanGesturePrivate) { d_ptr->q_ptr = this; + d_ptr->mIgnoreMouseEvents = false; } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gestures/hbpangesture_p.h --- a/src/hbcore/gestures/hbpangesture_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gestures/hbpangesture_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -61,6 +61,9 @@ HbPointRecorder mSceneAxisY; qreal mThresholdSquare; + + bool mIgnoreMouseEvents; + int mFollowedTouchPointId; }; #endif // HBPANGESTURE_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gestures/hbpangesturelogic_p.cpp --- a/src/hbcore/gestures/hbpangesturelogic_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gestures/hbpangesturelogic_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,6 +36,8 @@ #include "hbpangesturelogic_p.h" #include "hbnamespace_p.h" +#define followedTouchPoint(te, gesture) te->touchPoints().at(followedTouchPointIndex(te, gesture)) + /*! @hbcore \internal @@ -68,9 +70,22 @@ bool HbPanGestureLogic::isMouseEvent(QEvent::Type eventType) { return eventType == QEvent::MouseButtonPress || - eventType == QEvent::MouseMove || - eventType == QEvent::MouseButtonDblClick || - eventType == QEvent::MouseButtonRelease; + eventType == QEvent::MouseMove || + eventType == QEvent::MouseButtonDblClick || + eventType == QEvent::MouseButtonRelease; +} + +/*! + \internal + \brief + \return + +*/ +bool HbPanGestureLogic::isTouchEvent(QEvent::Type eventType) +{ + return eventType == QEvent::TouchBegin || + eventType == QEvent::TouchEnd || + eventType == QEvent::TouchUpdate; } /*! @@ -96,6 +111,9 @@ gesture->setOffset(QPointF(0,0)); gesture->setAcceleration(0); gesture->setStartPos(QPointF()); + + gesture->d_ptr->mIgnoreMouseEvents = false; + gesture->d_ptr->mFollowedTouchPointId = 0; } /*! @@ -115,7 +133,7 @@ { return QGestureRecognizer::Ignore; } - + gesture->setHotSpot( me->globalPos() ); gesture->setStartPos( me->globalPos() ); gesture->setOffset( QPointF( 0,0 ) ); @@ -125,7 +143,7 @@ gesture->d_ptr->mSceneOffset = HbGestureUtils::mapToScene(watched, QPointF(0,0)); gesture->d_ptr->mSceneLastOffset = HbGestureUtils::mapToScene(watched, QPointF(0,0)); gesture->d_ptr->mLastTimeStamp = mCurrentTime; - + gesture->d_ptr->mThresholdSquare = HbDefaultPanThreshold * HbDeviceProfile::current().ppmValue(); gesture->d_ptr->mThresholdSquare = gesture->d_ptr->mThresholdSquare * gesture->d_ptr->mThresholdSquare; @@ -156,7 +174,7 @@ QObject *watched, QMouseEvent *me ) { - if ( !me->buttons().testFlag(Qt::LeftButton) ) + if ( !me->buttons().testFlag(Qt::LeftButton)) { return QGestureRecognizer::Ignore; } @@ -210,13 +228,13 @@ HbPanGesture *gesture, QObject *watched, QMouseEvent *me ) -{ - Q_UNUSED(me->globalPos()); +{ + Q_UNUSED(me); Q_UNUSED(gesture); Q_UNUSED(watched); - + gesture->d_ptr->mLastTimeStamp = mCurrentTime; - + if ( gestureState == Qt::GestureStarted || gestureState == Qt::GestureUpdated ) { return QGestureRecognizer::FinishGesture; @@ -247,6 +265,141 @@ \return */ +QGestureRecognizer::Result HbPanGestureLogic::handleTouchBegin( + Qt::GestureState gestureState, + HbPanGesture *gesture, + QObject *watched, + QTouchEvent *te ) +{ + gesture->d_ptr->mFollowedTouchPointId = getNextId(te); + + if(gesture->d_ptr->mFollowedTouchPointId == -1 && gestureState != Qt::NoGesture) { + return QGestureRecognizer::FinishGesture; // if all touchpoints are released + } + + QTouchEvent::TouchPoint tp = followedTouchPoint(te, gesture); + QPointF scenePos = HbGestureUtils::mapToScene(watched, tp.screenPos()); + + gesture->setHotSpot(tp.screenPos()) ; + gesture->setStartPos(tp.screenPos()); + gesture->setOffset( QPointF( 0,0 ) ); + gesture->setLastOffset( QPointF( 0,0 ) ); + + gesture->d_ptr->mSceneStartPos = scenePos; + gesture->d_ptr->mSceneOffset = QPointF(0,0); + gesture->d_ptr->mSceneLastOffset = QPointF(0,0); + gesture->d_ptr->mLastTimeStamp = mCurrentTime; + + qreal defaultThreshold = HbDefaultPanThreshold * HbDeviceProfile::current().ppmValue(); + gesture->d_ptr->mThresholdSquare = defaultThreshold * defaultThreshold; + + gesture->d_ptr->mAxisX.resetRecorder(defaultThreshold); + gesture->d_ptr->mAxisY.resetRecorder(defaultThreshold); + gesture->d_ptr->mSceneAxisX.resetRecorder(defaultThreshold); + gesture->d_ptr->mSceneAxisY.resetRecorder(defaultThreshold); + gesture->d_ptr->mAxisY.record( tp.screenPos().y(), mCurrentTime ); + gesture->d_ptr->mAxisX.record( tp.screenPos().x(), mCurrentTime ); + gesture->d_ptr->mSceneAxisX.record( scenePos.x(), mCurrentTime ); + gesture->d_ptr->mSceneAxisY.record( scenePos.y(), mCurrentTime ); + + if (gestureState != Qt::NoGesture) { + return QGestureRecognizer::Ignore; + } else { + return QGestureRecognizer::MayBeGesture; + } +} + +/*! + \internal + \brief + \return + +*/ +QGestureRecognizer::Result HbPanGestureLogic::handleTouchMove( + Qt::GestureState gestureState, + HbPanGesture *gesture, + QObject *watched, + QTouchEvent *te) +{ + QTouchEvent::TouchPoint tp = followedTouchPoint(te, gesture); + + // touch event handling has already started + // need to update position and offset + QPointF offset = tp.screenPos() - gesture->startPos(); + if (tp.lastScreenPos() == tp.screenPos()) { + return QGestureRecognizer::Ignore; + } + if (gestureState == Qt::NoGesture && (offset.x() * offset.x() + offset.y() * offset.y()) <= gesture->d_ptr->mThresholdSquare) { + + return QGestureRecognizer::MayBeGesture; + } + + // Hotspot is updated on the press and on events after the gesture started. + // Here we are checking the previously set gestureState. + if (gestureState == Qt::GestureStarted || gestureState == Qt::GestureUpdated) { + gesture->setHotSpot( tp.screenPos() ); + } + + gesture->setLastOffset( gesture->offset().toPoint() ); + gesture->setOffset( offset ); + gesture->d_ptr->mSceneLastOffset = gesture->d_ptr->mSceneOffset; + gesture->d_ptr->mSceneOffset = + HbGestureUtils::mapToScene(watched, tp.screenPos()) - gesture->d_ptr->mSceneStartPos; + gesture->d_ptr->mLastTimeStamp = mCurrentTime; + + gesture->d_ptr->mAxisX.record( tp.screenPos().x(), mCurrentTime ); + gesture->d_ptr->mAxisY.record( tp.screenPos().y(), mCurrentTime ); + QPointF scenePos = HbGestureUtils::mapToScene(watched, tp.screenPos()); + gesture->d_ptr->mSceneAxisX.record( scenePos.x(), mCurrentTime ); + gesture->d_ptr->mSceneAxisY.record( scenePos.y(), mCurrentTime ); + + QGraphicsView* view = qobject_cast(watched->parent()); + if (view) { + QGraphicsScene* scene = view->scene(); + if (scene && scene->property(HbPrivate::OverridingGesture.latin1()).isValid() && + scene->property(HbPrivate::OverridingGesture.latin1()).toInt() != Qt::PanGesture) { + return QGestureRecognizer::MayBeGesture; + } + } + + return QGestureRecognizer::TriggerGesture; +} + +/*! + \internal + \brief + \return + +*/ +QGestureRecognizer::Result HbPanGestureLogic::handleTouchEnd( + Qt::GestureState gestureState, + HbPanGesture *gesture, + QObject *watched, + QTouchEvent *te ) +{ + Q_UNUSED(te); + Q_UNUSED(gesture); + Q_UNUSED(watched); + + gesture->d_ptr->mLastTimeStamp = mCurrentTime; + + if ( gestureState == Qt::GestureStarted || gestureState == Qt::GestureUpdated ) + { + return QGestureRecognizer::FinishGesture; + } + else + { + return QGestureRecognizer::CancelGesture; + } +} + + +/*! + \internal + \brief + \return + +*/ QGestureRecognizer::Result HbPanGestureLogic::recognize( Qt::GestureState gestureState, HbPanGesture *gesture, @@ -256,24 +409,86 @@ { // Record the time right away. mCurrentTime = currentTime; - + if ( isMouseEvent(event->type()) ) { + if (gesture->d_ptr->mIgnoreMouseEvents) { + return QGestureRecognizer::Ignore; + } QMouseEvent* me = static_cast(event); switch(event->type()) { case QEvent::MouseButtonDblClick: case QEvent::MouseButtonPress: return handleMousePress(gestureState, gesture, watched, me); - case QEvent::MouseMove: return handleMouseMove(gestureState, gesture, watched, me); - case QEvent::MouseButtonRelease: return handleMouseRelease(gestureState, gesture, watched, me); + default: break; + } + } + if (isTouchEvent(event->type()) && watched->isWidgetType() ) { - default: break; + QTouchEvent *te = static_cast(event); + + switch(event->type()) + { + case QEvent::TouchBegin: + return handleTouchBegin(gestureState, gesture, watched, te); + break; + case QEvent::TouchUpdate: { + gesture->d_ptr->mIgnoreMouseEvents = true; + + if (followedTouchPoint(te, gesture).state() == Qt::TouchPointReleased) { + //qDebug() << "---- Finger changed ----"; + return handleTouchBegin(gestureState, gesture, watched, te); + } + if (followedTouchPoint(te, gesture).state() == Qt::TouchPointMoved) { + return handleTouchMove(gestureState, gesture, watched, te); + } + break; + } + case QEvent::TouchEnd: + //qDebug() << "===== TOUCHEND ======" ; + gesture->d_ptr->mIgnoreMouseEvents = false; + return handleTouchEnd(gestureState, gesture, watched, te); + default: + break; } } return QGestureRecognizer::Ignore; } + +/*! + \internal + \brief + \return + +*/ +int HbPanGestureLogic::followedTouchPointIndex(QTouchEvent *te, HbPanGesture *gesture) +{ + for(int index(0); index < te->touchPoints().count(); index++) { + if (te->touchPoints().at(index).id() == gesture->d_ptr->mFollowedTouchPointId) { + return index; + } + } + Q_ASSERT(false); + return -1; +} + +/*! + \internal + \brief + \return + +*/ +int HbPanGestureLogic::getNextId(QTouchEvent *te) +{ + for (int i(0); i < te->touchPoints().count(); i++) { + if (te->touchPoints().at(i).state() != Qt::TouchPointReleased) { + return te->touchPoints().at(i).id(); + } + } + return -1; +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gestures/hbpangesturelogic_p.h --- a/src/hbcore/gestures/hbpangesturelogic_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gestures/hbpangesturelogic_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -38,6 +38,7 @@ class QPoint; class HbPanGesture; class QMouseEvent; +class QTouchEvent; class HB_CORE_PRIVATE_EXPORT HbPanGestureLogic { @@ -46,7 +47,10 @@ ~HbPanGestureLogic(); bool isMouseEvent(QEvent::Type eventType); + bool isTouchEvent(QEvent::Type eventType); void resetGesture(HbPanGesture *gesture); + int followedTouchPointIndex(QTouchEvent *te, HbPanGesture *gesture); + int getNextId(QTouchEvent *te); QGestureRecognizer::Result handleMousePress( Qt::GestureState gestureState, HbPanGesture *gesture, @@ -61,7 +65,22 @@ Qt::GestureState gestureState, HbPanGesture *gesture, QObject *watched, - QMouseEvent *me ); + QMouseEvent *me ); + QGestureRecognizer::Result handleTouchBegin( + Qt::GestureState gestureState, + HbPanGesture *gesture, + QObject *watched, + QTouchEvent *te ); + QGestureRecognizer::Result handleTouchMove( + Qt::GestureState gestureState, + HbPanGesture *gesture, + QObject *watched, + QTouchEvent *te ); + QGestureRecognizer::Result handleTouchEnd( + Qt::GestureState gestureState, + HbPanGesture *gesture, + QObject *watched, + QTouchEvent *te ); QGestureRecognizer::Result recognize( Qt::GestureState gestureState, HbPanGesture *gesture, diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gestures/hbpinchgesturelogic_p.cpp --- a/src/hbcore/gestures/hbpinchgesturelogic_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gestures/hbpinchgesturelogic_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -156,10 +156,22 @@ tmp.setLength(line.length() / 2.); QPointF centerPoint = tmp.p2(); - if (d->mIsNewSequence) { + if (p1.state() == Qt::TouchPointPressed || + p2.state() == Qt::TouchPointPressed) { gesture->setStartCenterPoint(centerPoint); d->mSceneStartCenterPoint = mapToScene(watched, centerPoint); + + result = QGestureRecognizer::MayBeGesture; + + // start recording + break; } + + QLineF currentPinchPos = QLineF(p1.screenPos(), p2.screenPos()); + //qDebug() << "distance" << currentPinchPos.length(); + //qDebug() << "angle" << currentPinchPos.angle(); + //qDebug() << "center point" << centerPoint; + gesture->setLastCenterPoint(gesture->centerPoint()); d->mSceneLastCenterPoint = mapToScene(watched, gesture->centerPoint()); gesture->setCenterPoint(centerPoint); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbabstractbutton.cpp --- a/src/hbcore/gui/hbabstractbutton.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbabstractbutton.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -299,6 +299,7 @@ #ifdef HB_GESTURE_FW q->grabGesture(Qt::TapGesture); #endif + q->setFlag(QGraphicsItem::ItemHasNoContents, true); // FIXME: size policy is commented out b/c of a bug in Qt #236689, also in our bugtracker. //q->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum, controlType)); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbcontentwidget.cpp --- a/src/hbcore/gui/hbcontentwidget.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbcontentwidget.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -56,6 +56,8 @@ { // Do not defer this, it causes invalidation and updating. setFocusPolicy(Qt::StrongFocus); + + setAcceptTouchEvents(true); } QSizeF HbContentWidget::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const @@ -284,6 +286,11 @@ // No need for any real polishing. static_cast(d_ptr)->polished = true; return true; + } else if (event->type() == QEvent::TouchBegin) { + // Accept all touch begin events to get the full Begin..End sequence + event->accept(); + return true; } + return HbWidget::event(event); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbcssinspector_p.cpp --- a/src/hbcore/gui/hbcssinspector_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbcssinspector_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -33,12 +33,15 @@ #include #include #include +#include #include #include #include #include #include #include +#include +#include #include #include #include @@ -104,6 +107,7 @@ const qreal SIZE_PREF_LINE_WIDTH = 1.0; const qreal SIZE_PREF_ALLOWED_OVERLAP = 2.0; const qreal SIZE_PREF_BOX_SIZE = 0.4 * SIZE_PREF_DRAW_SIZE; +const QString ROOT_TREE_ELEMENT("HbScreen"); static QString itemClass(const QGraphicsItem *item) { @@ -781,9 +785,45 @@ } +/******************************************************************************************/ +ModelItemWrapper::ModelItemWrapper(QGraphicsItem *item) + : mGraphicsItem(item), mWindow(0), mPopupMgr(0) +{ +} + +ModelItemWrapper::ModelItemWrapper(HbMainWindow *win) + : mGraphicsItem(0), mWindow(win), mPopupMgr(0) +{ +} + +ModelItemWrapper::ModelItemWrapper(HbPopupManager *mgr) + : mGraphicsItem(0), mWindow(0), mPopupMgr(mgr) +{ +} + +ModelItemWrapper::ModelItemWrapper() + : mGraphicsItem(0), mWindow(0), mPopupMgr(0) +{ +} + +QGraphicsItem* ModelItemWrapper::graphicsItem() const +{ + return mGraphicsItem; +} + +HbMainWindow* ModelItemWrapper::window() const +{ + return mWindow; +} + +HbPopupManager* ModelItemWrapper::popupManager() const +{ + return mPopupMgr; +} + /******************************************************************************************/ -CssInspectorModelItem::CssInspectorModelItem(QGraphicsItem *item, int row, CssInspectorModelItem *parent) +CssInspectorModelItem::CssInspectorModelItem(ModelItemWrapper *item, int row, CssInspectorModelItem *parent) : mItem(item), mParent(parent), mRow(row) { } @@ -793,6 +833,7 @@ QHash::iterator it; for (it = mChildren.begin(); it!= mChildren.end(); ++it) delete it.value(); + delete mItem; } CssInspectorModelItem* CssInspectorModelItem::child(int i) @@ -800,12 +841,41 @@ if (mChildren.contains(i)) return mChildren[i]; - if (i>=0 && i < mItem->childItems().count()) { - QGraphicsItem *child = mItem->childItems().at(i); - CssInspectorModelItem *childItem = new CssInspectorModelItem(child, i, this); + if (i < 0) + return 0; + + ModelItemWrapper *wrapper = 0; + if (mItem->graphicsItem() && i < mItem->graphicsItem()->childItems().count()) { + QGraphicsItem *child = mItem->graphicsItem()->childItems().at(i); + wrapper = new ModelItemWrapper(child); + } else if (mItem->popupManager() && i < mItem->popupManager()->d->popupList.count()) { + HbPopup *popup = mItem->popupManager()->d->popupList.at(i); + wrapper = new ModelItemWrapper(popup); + } else if (mItem->window()) { + HbMainWindowPrivate *winPriv = HbMainWindowPrivate::d_ptr(mItem->window()); + QGraphicsItem *screen = winPriv->element(HbMainWindowPrivate::ViewportItem); + if (i < screen->childItems().count()) { + wrapper = new ModelItemWrapper(screen->childItems().at(i)); + } else if (i == screen->childItems().count()) { + // Out of bounds due to zero index, return popup manager (this is a special case) + HbGraphicsScenePrivate *scenePriv = HbGraphicsScenePrivate::d_ptr(winPriv->mScene); + HbPopupManager *mgr = scenePriv->popupManager(); + wrapper = new ModelItemWrapper(mgr); + } + } else { + // Root node, return from all main windows + if (i < hbInstance->allMainWindows().count()) { + HbMainWindow *win = hbInstance->allMainWindows().at(i); + wrapper = new ModelItemWrapper(win); + } + } + + if (wrapper) { + CssInspectorModelItem *childItem = new CssInspectorModelItem(wrapper, i, this); mChildren[i] = childItem; return childItem; } + return 0; } @@ -814,7 +884,7 @@ return mParent; } -QGraphicsItem* CssInspectorModelItem::data() +ModelItemWrapper* CssInspectorModelItem::data() { return mItem; } @@ -825,11 +895,10 @@ } /******************************************************************************************/ -CssInspectorModel::CssInspectorModel(HbMainWindow *win, QObject *parent) - : QAbstractItemModel(parent), mWin(win), mRootItem(0) +CssInspectorModel::CssInspectorModel(QObject *parent) + : QAbstractItemModel(parent), mRootItem(0) { - QGraphicsItem *screen = HbMainWindowPrivate::d_ptr(win)->mClippingItem; - mRootItem = new CssInspectorModelItem(screen, 0); + mRootItem = new CssInspectorModelItem(new ModelItemWrapper, 0); } CssInspectorModel::~CssInspectorModel() @@ -843,14 +912,26 @@ return QVariant(); CssInspectorModelItem *item = static_cast(index.internalPointer()); - QGraphicsItem *graphicsItem = item->data(); + QGraphicsItem *graphicsItem = item->data()->graphicsItem(); - switch (index.column()) { - case 0: return itemClass(graphicsItem); - case 1: return objName(graphicsItem); - case 2: return HbStyle::itemName(graphicsItem); - case 3: return itemValue(graphicsItem); - case 4: return itemInParentLayout(graphicsItem); + if (graphicsItem) { + switch (index.column()) { + case 0: return itemClass(graphicsItem); + case 1: return objName(graphicsItem); + case 2: return HbStyle::itemName(graphicsItem); + case 3: return itemValue(graphicsItem); + case 4: return itemInParentLayout(graphicsItem); + default: return QVariant(); + } + } else { + if (index.column() == 0) { + // Return correct item name + if (item->data()->popupManager()) { + return "HbPopupManager"; + } else if (item->data()->window()) { + return "HbScreen"; + } + } } return QVariant(); } @@ -913,7 +994,18 @@ else parentItem = static_cast(parent.internalPointer()); - return parentItem->data()->childItems().count(); + ModelItemWrapper *wrapper = parentItem->data(); + if (wrapper->graphicsItem()) { + return wrapper->graphicsItem()->childItems().count(); + } else if (wrapper->popupManager()) { + return wrapper->popupManager()->d->popupList.count(); + } else if (wrapper->window()) { + HbMainWindowPrivate *winPriv = HbMainWindowPrivate::d_ptr(wrapper->window()); + QGraphicsItem *screen = winPriv->element(HbMainWindowPrivate::ViewportItem); + return screen->childItems().count() + 1; // Special case to add PopupManager + } else { + return hbInstance->allMainWindows().count(); + } } int CssInspectorModel::columnCount(const QModelIndex &parent) const @@ -941,7 +1033,7 @@ if (index.column() == ITEMNAME_COLUMN) { if (index.data().toString() == "") { CssInspectorModelItem *modelItem = static_cast(index.internalPointer()); - QGraphicsItem *item = modelItem->data(); + QGraphicsItem *item = modelItem->data()->graphicsItem(); if (parentHasAnchorLayout(item)) { painter->fillRect(option.rect, Qt::red); } @@ -955,15 +1047,20 @@ } /******************************************************************************************/ +static QPointer cssWindow = 0; + HbCssInspectorWindow *HbCssInspectorWindow::instance() { - static QPointer window = 0; - if (!window) { - window = new HbCssInspectorWindow; + if (!cssWindow) { + cssWindow = new HbCssInspectorWindow; } - return window; + return cssWindow; } +bool HbCssInspectorWindow::exists() +{ + return !cssWindow.isNull(); +} void HbCssInspectorWindow::refresh() { @@ -984,7 +1081,7 @@ void HbCssInspectorWindow::updateFromTreeView(const QModelIndex &index) { CssInspectorModelItem *modelItem = static_cast(index.internalPointer()); - QGraphicsItem *item = modelItem->data(); + QGraphicsItem *item = modelItem->data()->graphicsItem(); updateFocusItem(item); foreach (HoveredWidgetFilter *filter, mInstalledFilters) { filter->mCssInfoDrawer->updateFocusItem(item); @@ -1000,9 +1097,9 @@ void HbCssInspectorWindow::addFilters() { - foreach (HbMainWindow *window, hbInstance->allMainWindows()) { - mTreeView->setModel(new CssInspectorModel(window)); + mTreeView->setModel(new CssInspectorModel); + foreach (const HbMainWindow *window, hbInstance->allMainWindows()) { HoveredWidgetFilter *filter = new HoveredWidgetFilter(window->scene()); window->scene()->installEventFilter(filter); mInstalledFilters.append(filter); @@ -1127,6 +1224,7 @@ treeContainer->setLayout(treeLayout); mTreeView = new QTreeView(this); mTreeView->setItemDelegate(new ItemColorDelegate); + mTreeView->setAttribute(Qt::WA_InputMethodEnabled, false); QLabel *treeLabel = new QLabel(tr("Item tree")); treeLayout->addWidget(treeLabel); treeLayout->addWidget(mTreeView); @@ -1252,38 +1350,63 @@ ancestorItems << ancestor; ancestor = ancestor->parentItem(); } - bool foundRoot = false; - QModelIndex index; - for (int i=ancestorItems.count() -1; i>=0; i--) { - const QGraphicsItem *thisItem = ancestorItems.at(i); - if (!foundRoot) { - const QGraphicsWidget *wid = static_cast(thisItem); - if (wid) { - QString name = wid->metaObject()->className(); - if (name == "HbScreen") { - foundRoot = true; - } + + CssInspectorModel *model = static_cast(mTreeView->model()); + // Find root element + int rootItemIndex = 0; // This is used later (outside for loop) + bool rootIsInScreen = false; + + // Iterating forwards in a reverse containment-order list + for (; rootItemIndex < ancestorItems.count(); ++rootItemIndex) { + const QGraphicsItem *thisItem = ancestorItems.at(rootItemIndex); + const QGraphicsWidget *widget = static_cast(thisItem); + if (widget) { + if (widget->metaObject()->className() == ROOT_TREE_ELEMENT) { + rootIsInScreen = true; + break; } - } else { - // Find and open tree node for item - CssInspectorModel *model = static_cast(mTreeView->model()); - if (model) { - int rowCount = model->rowCount(index); - for (int row=0; rowindex(row, 0, index); - CssInspectorModelItem *modelItem = static_cast(idx.internalPointer()); - QGraphicsItem *graphicsItem = modelItem->data(); - if (graphicsItem == thisItem) { - index = idx; - break; - } + } + } + // Get the correct window + QModelIndex parentIndex; + bool foundWindow = false; + int winCount = model->rowCount(QModelIndex()); + const HbWidget *hbWidget = static_cast(item); + if (hbWidget) { + for (int idx=0; idxindex(idx, 0, QModelIndex()); + CssInspectorModelItem *modelItem = static_cast(parentIndex.internalPointer()); + if (modelItem->data()->window() == hbWidget->mainWindow()) { + foundWindow = true; + break; + } + } + } + + if (foundWindow) { + if (!rootIsInScreen) { + // Need to set parentIndex to popupmgr + parentIndex = model->index(model->rowCount(parentIndex)-1, 0, parentIndex); + rootItemIndex--; + } + // Now descend containment heirarchy getting index + for (int itemIdx=rootItemIndex; itemIdx>=0; itemIdx--) { + const QGraphicsItem *thisItem = ancestorItems.at(itemIdx); + int rowCount = model->rowCount(parentIndex); + for (int row=0; rowindex(row, 0, parentIndex); + CssInspectorModelItem *modelItem = static_cast(thisIndex.internalPointer()); + QGraphicsItem *gItem = modelItem->data()->graphicsItem(); + if (gItem == thisItem) { + parentIndex = thisIndex; + break; } } } } mTreeView->collapseAll(); - mTreeView->scrollTo(index, QAbstractItemView::EnsureVisible); - mTreeView->expand(index); + mTreeView->scrollTo(parentIndex, QAbstractItemView::EnsureVisible); + mTreeView->expand(parentIndex); } else { mWidgetMLBox->setText(""); @@ -1293,6 +1416,7 @@ mSizeHintLabel->setText(""); mSizePolicyHoriz->setText(""); mSizePolicyVert->setText(""); + mTreeView->collapseAll(); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbcssinspector_p.h --- a/src/hbcore/gui/hbcssinspector_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbcssinspector_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -41,6 +41,7 @@ QT_FORWARD_DECLARE_CLASS(QTextEdit) QT_FORWARD_DECLARE_CLASS(HbAnchorArrowDrawer) QT_FORWARD_DECLARE_CLASS(HbMainWindow) +QT_FORWARD_DECLARE_CLASS(HbPopupManager) class HbCssInfoDrawer : public HbWidgetBase @@ -54,15 +55,15 @@ public slots: void updateFocusItem(const QGraphicsItem* item); - void setBoxVisible(bool visible) { mShowBox = visible; }; - void setItemTextVisible(bool visible) { mShowItemText = visible; }; - void setGuideLinesVisible(bool visible) { mDrawGuideLines = visible; }; + void setBoxVisible(bool visible) { mShowBox = visible; } + void setItemTextVisible(bool visible) { mShowItemText = visible; } + void setGuideLinesVisible(bool visible) { mDrawGuideLines = visible; } - void setHintTextVisible(bool visible) { mShowHintText = visible; }; - void setMinHintBoxVisible(bool visible) { mShowMinHintBox = visible; }; - void setPrefHintBoxVisible(bool visible) { mShowPrefHintBox = visible; }; - void setMaxHintBoxVisible(bool visible) { mShowMaxHintBox = visible; }; - void setSizePrefsVisible(bool visible) { mShowSizePrefs = visible; }; + void setHintTextVisible(bool visible) { mShowHintText = visible; } + void setMinHintBoxVisible(bool visible) { mShowMinHintBox = visible; } + void setPrefHintBoxVisible(bool visible) { mShowPrefHintBox = visible; } + void setMaxHintBoxVisible(bool visible) { mShowMaxHintBox = visible; } + void setSizePrefsVisible(bool visible) { mShowSizePrefs = visible; } protected: void changeEvent(QEvent *event); @@ -105,8 +106,8 @@ void newItemHovered(const QGraphicsItem* item); public slots: - void setHoverMode(bool enabled) { mHoverMode = enabled; }; - void setBlockingMode(bool enabled) { mBlockingMode = enabled; }; + void setHoverMode(bool enabled) { mHoverMode = enabled; } + void setBlockingMode(bool enabled) { mBlockingMode = enabled; } protected: bool eventFilter(QObject *obj, QEvent *event); @@ -140,18 +141,36 @@ }; +class ModelItemWrapper { +public: + ModelItemWrapper(QGraphicsItem *item); + ModelItemWrapper(HbMainWindow *window); + ModelItemWrapper(HbPopupManager *mPopupMgr); + ModelItemWrapper(); + + QGraphicsItem *graphicsItem() const; + HbMainWindow *window() const; + HbPopupManager *popupManager() const; + +private: + QGraphicsItem *mGraphicsItem; + HbMainWindow *mWindow; + HbPopupManager *mPopupMgr; +}; + + class CssInspectorModelItem { public: - CssInspectorModelItem(QGraphicsItem *item, int row, + CssInspectorModelItem(ModelItemWrapper *item, int row, CssInspectorModelItem *parent=0); ~CssInspectorModelItem(); CssInspectorModelItem *child(int i); CssInspectorModelItem *parent(); - QGraphicsItem *data(); + ModelItemWrapper *data(); int row(); private: - QGraphicsItem *mItem; + ModelItemWrapper *mItem; QHash mChildren; CssInspectorModelItem *mParent; int mRow; @@ -162,7 +181,7 @@ { Q_OBJECT public: - CssInspectorModel(HbMainWindow *win=0, QObject *parent=0); + CssInspectorModel(QObject *parent=0); ~CssInspectorModel(); QVariant data(const QModelIndex &index, int role) const; @@ -175,7 +194,6 @@ int columnCount(const QModelIndex &parent = QModelIndex()) const; private: - HbMainWindow *mWin; CssInspectorModelItem *mRootItem; }; @@ -197,6 +215,7 @@ public: static HbCssInspectorWindow *instance(); + static bool exists(); virtual ~HbCssInspectorWindow(); public slots: diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbdevicefadecontrolsym.cpp --- a/src/hbcore/gui/hbdevicefadecontrolsym.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbdevicefadecontrolsym.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -37,7 +37,7 @@ const TUid PropertyCategoryUid = {0x20022FC5}; const TUint FadeKey = 'fade'; -class HbDeviceFadeControlPrivate : public CActive +NONSHARABLE_CLASS(HbDeviceFadeControlPrivate) : public CActive { public: struct FadeControl { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbdialog.cpp --- a/src/hbcore/gui/hbdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -32,6 +32,8 @@ #include "hbevent.h" #include "hbtoolbar_p.h" #include "hbglobal_p.h" +#include "hbstyletextprimitivedata.h" +#include "hbstyleframeprimitivedata.h" #include #include @@ -47,7 +49,6 @@ #ifdef HB_EFFECTS #include "hbeffectinternal_p.h" -#define HB_POPUP_ITEM_TYPE "HB_POPUP" #endif /*! @@ -212,7 +213,8 @@ secondaryAction(0), closingAction(0), toolBar(0), - dismissOnAction(true) + dismissOnAction(true), + headingFrameItem(0) { } @@ -243,6 +245,21 @@ q->updateGeometry(); } +void HbDialogPrivate::createHeadingBackground() +{ + Q_Q(HbDialog); + if (!headingFrameItem) { + headingFrameItem = q->style()->createPrimitive(HbStyle::PT_FrameItem, "background", q); + HbStyleFramePrimitiveData data; + q->initPrimitiveData(&data, headingFrameItem); + data.fillWholeRect = true; + data.frameType = HbFrameDrawer::ThreePiecesHorizontal; + data.frameGraphicsName = QLatin1String("qtg_fr_popup_heading"); + q->style()->updatePrimitive(headingFrameItem, &data, q); + headingFrameItem->update(); + } +} + void HbDialogPrivate::_q_actionTriggered() { Q_Q(HbDialog); if (dismissOnAction) { @@ -327,13 +344,73 @@ if (d->headingWidget) delete d->headingWidget; d->headingWidget = headingWidget; + d->headingText = QString(); if (headingWidget) { setProperty("heading_layout", true); - headingWidget->setParentItem(this); + d->headingWidget->setParentItem(this); + d->headingWidget->setZValue(zValue()+1); HbStyle::setItemName(headingWidget,"heading"); } else { setProperty("heading_layout", false); } + + if (headingWidget) { + d->createHeadingBackground(); + } else { + if (d->headingFrameItem) { + delete d->headingFrameItem; + d->headingFrameItem = 0; + } + } + repolish(); +} + +/*! + Returns the heading text, if one has been added to the dialog; otherwise this + function returns empty string. + \sa setHeadingText() +*/ +QString HbDialog::headingText() const +{ + Q_D(const HbDialog); + return d->headingText; +} + +/*! + Sets \a heading as the title of the dialog. + + To remove the title from the dialog, set an empty string as \a heading. + \sa headingText() +*/ +void HbDialog::setHeadingText(const QString &heading) +{ + Q_D(HbDialog); + if (d->headingWidget) { + delete d->headingWidget; + d->headingWidget = 0; + } + + d->headingText = heading; + + if (!heading.isEmpty()) { + d->headingWidget = qobject_cast(style()->createPrimitive(HbStyle::PT_TextItem, "heading", this)); + d->headingWidget->setZValue(zValue()+1); + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->headingWidget); + data.text = heading; + style()->updatePrimitive(d->headingWidget, &data, this); + d->headingWidget->update(); + + d->createHeadingBackground(); + + setProperty("heading_layout", true); + } else { + setProperty("heading_layout", false); + if (d->headingFrameItem) { + delete d->headingFrameItem; + d->headingFrameItem = 0; + } + } repolish(); } @@ -372,6 +449,11 @@ d->contentWidget = contentWidget; if (contentWidget) { contentWidget->setParentItem(this); + if (contentWidget->inherits("HbAbstractItemView")) { + setProperty("list_content", true); + } else { + setProperty("list_content", false); + } HbStyle::setItemName(contentWidget,"content"); } repolish(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbdialog.h --- a/src/hbcore/gui/hbdialog.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbdialog.h Fri Sep 17 08:32:10 2010 +0300 @@ -36,6 +36,7 @@ { Q_OBJECT Q_PROPERTY( bool dismissOnAction READ dismissOnAction WRITE setDismissOnAction ) + Q_PROPERTY( QString headingText READ headingText WRITE setHeadingText ) public: enum DialogCode { Rejected, Accepted }; @@ -46,6 +47,9 @@ QGraphicsWidget *headingWidget() const; void setHeadingWidget( QGraphicsWidget *headingWidget ); + QString headingText() const; + void setHeadingText(const QString &heading); + QGraphicsWidget *contentWidget() const; void setContentWidget( QGraphicsWidget *contentWidget ); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbdialog_p.h --- a/src/hbcore/gui/hbdialog_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbdialog_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -48,6 +48,7 @@ virtual ~HbDialogPrivate(); void doLayout(); + void createHeadingBackground(); void removeSpaces(QString& string); void _q_actionTriggered(); @@ -59,6 +60,9 @@ HbAction *closingAction; HbToolBar *toolBar; bool dismissOnAction; + QString headingText; + QGraphicsObject *headingFrameItem; + private: static HbDialogPrivate *d_ptr( HbDialog *popup ) { Q_ASSERT(popup); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmainwindow_p.cpp --- a/src/hbcore/gui/hbmainwindow_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmainwindow_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -204,6 +204,8 @@ if (mViewStackWidget->isSwitchingViews() || !mToolbarWasAdded) { toolBarD->suppressNextAppearEffect(); mToolbarWasAdded = true; + } else if (mOrientationChangeOngoing && !mAnimateOrientationSwitch) { + toolBarD->suppressNextAppearEffect(); } mScene->addItem(toolBar); // top level } @@ -470,7 +472,7 @@ // do some sanity checking for the size got from device profile if (newSize.isNull() || ((newSize.width()*newSize.height()) < QVga_res)) { // the resolution must be at least QVGA.. - qWarning("Orient. change error: size from device profile is faulty!"); + hbWarning("Orient. change error: size from device profile is faulty!"); } q->setSceneRect(0, 0, newSize.width(), newSize.height()); @@ -572,7 +574,7 @@ QStringList() << "view_show_normal" << "view_hide_normal" << "view_show_back" << "view_hide_back", QStringList() << "show" << "hide" << "show_back" << "hide_back"); if (!ok) { - qWarning("HbMainWindow: addViewEffects: atomic registration for show/hide effects failed"); + hbWarning("HbMainWindow: addViewEffects: atomic registration for show/hide effects failed"); } // Register the alternative default. @@ -581,7 +583,7 @@ QStringList() << "view_show_normal_alt" << "view_hide_normal_alt" << "view_show_back_alt" << "view_hide_back_alt", QStringList() << "show_alt" << "hide_alt" << "show_alt_back" << "hide_alt_back"); if (!ok) { - qWarning("HbMainWindow: addViewEffects: atomic registration for alternative show/hide effects failed"); + hbWarning("HbMainWindow: addViewEffects: atomic registration for alternative show/hide effects failed"); } // Register titlebar effects. @@ -591,7 +593,7 @@ QStringList() << "titlebar_disappear" << "titlebar_appear" << "titlebar_orient_disappear" << "titlebar_orient_appear", QStringList() << "disappear" << "appear" << "disappear_orient" << "appear_orient"); if (!ok) { - qWarning("HbMainWindow: addViewEffects: atomic registration for titlebar effects failed"); + hbWarning("HbMainWindow: addViewEffects: atomic registration for titlebar effects failed"); } // Register statusbar effects. @@ -600,7 +602,7 @@ QStringList() << "statusbar_disappear" << "statusbar_appear" << "statusbar_orient_disappear" << "statusbar_orient_appear", QStringList() << "disappear" << "appear" << "disappear_orient" << "appear_orient"); if (!ok) { - qWarning("HbMainWindow: addViewEffects: atomic registration for statusbar effects failed"); + hbWarning("HbMainWindow: addViewEffects: atomic registration for statusbar effects failed"); } } @@ -812,8 +814,16 @@ HbView *view = q->currentView(); if (view) { const Hb::SceneItems visibleItems(view->visibleItems()); - view->setTitleBarVisible(visibleItems & Hb::TitleBarItem); // also handles updating of the navigation button - view->setStatusBarVisible(visibleItems & Hb::StatusBarItem); + + // set statusbar and titlebar flag + HbView::HbViewFlags flags = view->viewFlags(); + flags = (visibleItems & Hb::StatusBarItem) ? + flags &~ HbView::ViewStatusBarHidden : + flags | HbView::ViewStatusBarHidden; + flags = (visibleItems & Hb::TitleBarItem) ? + flags &~ HbView::ViewTitleBarHidden : + flags | HbView::ViewTitleBarHidden; + view->setViewFlags( flags ); // also handles updating of the navigation button // ToolBar is a special case, since it depens on the current view's toolbar if (visibleItems & Hb::ToolBarItem) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmenu.cpp --- a/src/hbcore/gui/hbmenu.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmenu.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,7 +36,7 @@ bool HbMenuPrivate::menuEffectsLoaded = false; #endif #include "hbglobal_p.h" - +#include #include Q_DECLARE_METATYPE (QAction*)// krazy:exclude=qclasses @@ -53,7 +53,8 @@ mDownMargin(0.0), delayMenuConstruction(true), receiverToDisconnectOnClose(0), - mNumberOfColumns(1) + mNumberOfColumns(1), + mCloseAllMenus(false) { } @@ -175,6 +176,7 @@ // do not close the menu tree if the triggered action is // submenu item if (!action->menu()) { + mCloseAllMenus = true; q->close(); } else { stopTimeout(); @@ -271,6 +273,51 @@ } } +/* + reimp +*/ +void HbMenuPrivate::handleBackgroundMouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_Q(HbMenu); + + // Handle cases only for Background or Popup originated mouse presses and when + // any dismiss policy defined + if (mousePressLocation != None && dismissPolicy != HbPopup::NoDismiss) { + + MouseEventLocationType mouseReleaseLocation = Background; + HbMenu* tempMenu = 0; + QList itemList = q->scene()->items(event->pos()); + foreach (QGraphicsItem* sceneItem, itemList ){ + QGraphicsWidget *focusWidget = 0; + HbMenu *focusMenu = 0; + if (sceneItem && sceneItem->isWidget()) { + focusWidget = static_cast(sceneItem); + focusMenu = qobject_cast(focusWidget); + } + if( focusMenu ) { + mouseReleaseLocation = Popup; + tempMenu = focusMenu; + break; + } + } + // Mouse is released within menu + if (mouseReleaseLocation == Popup) { + HbAction* menuAction = tempMenu->activeAction(); + if(menuAction){ + mCloseAllMenus = false; + closeMenuRecursively(menuAction); + } + mousePressLocation = None; + } + else { + // trigger the menu to close whole menu + mCloseAllMenus = true; + q->close(); + mousePressLocation = None; + } + } +} + void HbMenuPrivate::_q_subMenuTimedOut() { Q_Q(HbMenu); @@ -282,7 +329,12 @@ q->close(); } else { startTimeout(); + mCloseAllMenus = false; } + if (activeSubMenu && HbMenuPrivate::d_ptr(activeSubMenu)->mCloseAllMenus) { + mCloseAllMenus = true; + q->close(); + } } void HbMenuPrivate::_q_handleMenuClose() diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmenu_p.h --- a/src/hbcore/gui/hbmenu_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmenu_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -65,6 +65,7 @@ void actionAdded(QActionEvent *actionEvent); void actionRemoved(QActionEvent *actionEvent); void actionChanged(QActionEvent *actionEvent); + void handleBackgroundMouseReleaseEvent(QGraphicsSceneMouseEvent *event); HbAction *activeAction(HbMenuItem *&activeItem) const; HbAction *activeAction() const; HbMenuItem *menuItem(QAction *action); // krazy:exclude=qclasses @@ -85,6 +86,7 @@ QPointer receiverToDisconnectOnClose; QByteArray memberToDisconnectOnClose; int mNumberOfColumns; + bool mCloseAllMenus; private: static bool menuEffectsLoaded; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmenucontainer_p.cpp --- a/src/hbcore/gui/hbmenucontainer_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmenucontainer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -227,7 +227,6 @@ HbMenuListViewPrivate::HbMenuListViewPrivate() : HbScrollAreaPrivate(), - mHitItem(0), mCurrentItem(0), mCurrentIndex(-1), mWasScrolling(false) @@ -324,23 +323,6 @@ updateGeometry(); } -/*! - \reimp - */ -QVariant HbMenuListView::itemChange(GraphicsItemChange change, const QVariant &value) -{ - Q_D(HbMenuListView); - - // Remove highlighting on a menuitem when the menu disappears. - if (change == QGraphicsItem::ItemVisibleHasChanged && !value.toBool()) { - if (d->mHitItem) { - d->mHitItem->pressStateChanged(false); - } - } - - return HbScrollArea::itemChange(change, value); -} - void HbMenuListView::gestureEvent(QGestureEvent *event) { HbScrollArea::gestureEvent(event); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmenucontainer_p.h --- a/src/hbcore/gui/hbmenucontainer_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmenucontainer_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -61,7 +61,6 @@ protected: virtual void gestureEvent(QGestureEvent *event); - QVariant itemChange(GraphicsItemChange change, const QVariant &value); private: void updateCurrentItem(); bool isFocusable(QAction *action); @@ -79,7 +78,6 @@ HbMenuListViewPrivate(); virtual ~HbMenuListViewPrivate() { } HbMenuContainer *mContainer; - HbMenuItem *mHitItem; HbMenuItem *mCurrentItem; int mCurrentIndex; bool mWasScrolling; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmenuitem_p.cpp --- a/src/hbcore/gui/hbmenuitem_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmenuitem_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -394,4 +394,17 @@ } } +/*! + \reimp + */ +QVariant HbMenuItem::itemChange(GraphicsItemChange change, const QVariant &value) +{ + // Remove highlighting on a menuitem when the menu disappears. + if (change == QGraphicsItem::ItemVisibleHasChanged && !value.toBool()) { + pressStateChanged(false); + } + + return HbWidget::itemChange(change, value); +} + #include "moc_hbmenuitem_p.cpp" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbmenuitem_p.h --- a/src/hbcore/gui/hbmenuitem_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbmenuitem_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -64,9 +64,10 @@ bool separatorExists(); protected: + void initStyleOption(HbStyleOptionMenuItem *option) const; + void changeEvent(QEvent *event); + QVariant itemChange(GraphicsItemChange change, const QVariant &value); - void initStyleOption(HbStyleOptionMenuItem *option) const; - void changeEvent(QEvent *event); #ifdef HB_GESTURE_FW void gestureEvent(QGestureEvent *event); #endif diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbpopup.cpp --- a/src/hbcore/gui/hbpopup.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbpopup.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -360,7 +359,6 @@ } HbPopupPrivate::HbPopupPrivate( ) : - eventLoop(0), hasEffects(false), closed(false), hidingInProgress(true), @@ -415,7 +413,6 @@ if (!q->parentItem()) { backgroundItem = new HbPopupBackGround(q); backgroundItem->setVisible(false); - // Popup is invisible by default (explicit show or open call is required) q->setVisible(false); } @@ -424,9 +421,9 @@ itemFlags |= QGraphicsItem::ItemClipsToShape; itemFlags |= QGraphicsItem::ItemClipsChildrenToShape; itemFlags |= QGraphicsItem::ItemSendsGeometryChanges; - //itemFlags |= QGraphicsItem::ItemIsPanel; + itemFlags |= QGraphicsItem::ItemIsPanel; q->setFlags(itemFlags); - //q->setActive(false); + q->setActive(false); } void HbPopupPrivate::_q_appearEffectEnded(HbEffect::EffectStatus status) @@ -492,6 +489,8 @@ QEvent userEvent(QEvent::ContextMenu); QCoreApplication::sendEvent(q, &userEvent); } + + q->repolish(); #ifdef HB_EFFECTS if (mOrientationEffectHide) { HbEffect::cancel(q); @@ -779,9 +778,6 @@ hbScene->d_ptr->hidePopup(this); } - if (d->eventLoop) { - d->eventLoop->exit(); - } if (d->backgroundItem) { // Set backgroundItem->popup to 0 to avoid double deletion // e.g. when popup is deleted by scene before its backgroundItem @@ -1011,6 +1007,9 @@ // Note: when visibility changes to "visible" base class implementation needs // to be called otherwise showEvent() is not called. } else { + if(isPanel() && isActive() && d->mActivePopup) { + setActive(false); + } d->aboutToShowSignalGuard = false; if (!d->hidingInProgress) { emit aboutToHide(); @@ -1087,9 +1086,11 @@ */ void HbPopup::mouseReleaseEvent(QGraphicsSceneMouseEvent *event ) { - QGraphicsItem::mouseReleaseEvent(event); + Q_D(HbPopup); + d->handleBackgroundMouseReleaseEvent(event); + + QGraphicsItem::mouseReleaseEvent(event); event->accept(); - // Note: Mouse release event is always handled in handleBackgroundMouseReleaseEvent } /*! @@ -1113,7 +1114,11 @@ // - and registered to HbPopupManager // otherwise popup is treated as normal widget if(d->duplicateShowEvent){ - d->duplicateShowEvent = false; + d->duplicateShowEvent = false; + //setting popup as active panel failed in previous showEvent + if (d->mActivePopup) { + setActive(true); + } return; } if (!parentItem()) { @@ -1122,9 +1127,9 @@ if(d->addPopupToScene()) { d->duplicateShowEvent = true; } - /*if (d->mActivePopup) { + if (d->mActivePopup) { setActive(true); - }*/ + } // Popup clears closed state d->closed = false; if (d->backgroundItem) { @@ -1172,14 +1177,8 @@ } HbWidgetFeedback::triggered(this, Hb::InstantPopupClosed); - if (d->eventLoop) { - d->eventLoop->exit(); - } d->doSetModal( d->modal ); - /*if (d->mActivePopup) { - setActive(false); - }*/ } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbpopup_p.h --- a/src/hbcore/gui/hbpopup_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbpopup_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -127,7 +127,7 @@ bool addPopupToScene(); void handleBackgroundMousePressEvent(); - void handleBackgroundMouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void handleBackgroundMouseReleaseEvent(QGraphicsSceneMouseEvent *event); void calculateShape(); static int timeoutValue(HbPopup::DefaultTimeout timeout); @@ -154,6 +154,7 @@ friend class HbPopupManagerPrivate; friend class HbPopupLayoutProxy; friend class HbDeviceDialogManagerPrivate; + friend class HbInputCommonDialogs; // To be able to unit test private features friend class TestHbPopup; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbpopupmanager.cpp --- a/src/hbcore/gui/hbpopupmanager.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbpopupmanager.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -276,7 +276,9 @@ */ void HbPopupManagerPrivate::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) { - foreach (QGraphicsItem *item, scene->items(mouseEvent->scenePos())) { + //This function can be removed since popup background is handling the events + Q_UNUSED(mouseEvent); + /*foreach (QGraphicsItem *item, scene->items(mouseEvent->scenePos())) { if (eventBlockItem(item)) { break; } @@ -287,7 +289,7 @@ break; } } - } + }*/ } /* @@ -344,9 +346,11 @@ void HbPopupManagerPrivate::eventHook(QEvent *event) { - if (event && event->type() == QEvent::GraphicsSceneMouseRelease && popupList.count() && scene) { + Q_UNUSED(event); + //This function can be removed since popup background is handling the events + /* if (event && event->type() == QEvent::GraphicsSceneMouseRelease && popupList.count() && scene) { mouseReleaseEvent(static_cast(event)); - } + }*/ } void HbPopupManagerPrivate::showPopup(HbPopup *popup) @@ -418,9 +422,9 @@ //only if its in its destruction bool popupInDestruction = (HbPopupPrivate::d_ptr(popup))->inDestruction; if ( parentItems.contains( popup ) && (popupInDestruction)) { - //HbPopupLayoutManager *parentItem = parentItems[popup]; + HbPopupLayoutManager *parentItem = parentItems[popup]; parentItems.remove( popup ); - //delete parentItem; + delete parentItem; } // Only execute if close if popup was in popupList before @@ -445,11 +449,13 @@ bool wasActivePopup = true; // If the previous popup was an inactive panel, then it would not have // gained focused. So no need to set the focus to the next topmost popup. - if (popup->isPanel() && !popup->isActive()) { + if (popup->isPanel() && !HbPopupPrivate::d_ptr(popup)->mActivePopup) { wasActivePopup = false; } if (topLevelFocusablePopup && wasActivePopup ) { topLevelFocusablePopup->setFocus(); + if (HbPopupPrivate::d_ptr(topLevelFocusablePopup)->mActivePopup) + topLevelFocusablePopup->setActive(true); } //TODO: this is not very efficient way of deciding if has already been deleted or not else if (initialFocusedItem && scene && @@ -558,7 +564,9 @@ void HbPopupManager::eventHook(QEvent *event) { - d->eventHook(event); + //This function can be removed + Q_UNUSED(event); + //d->eventHook(event); } void HbPopupManager::showPopup(HbPopup *popup) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbpopupmanager_p.h --- a/src/hbcore/gui/hbpopupmanager_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbpopupmanager_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -47,6 +47,11 @@ private: HbPopupManagerPrivate *d; + +#ifdef HB_CSS_INSPECTOR + friend class CssInspectorModel; + friend class CssInspectorModelItem; +#endif }; #endif // HBPOPUPMANAGER_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbpopupmanager_p_p.h --- a/src/hbcore/gui/hbpopupmanager_p_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbpopupmanager_p_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -89,6 +89,11 @@ HbDeviceFadeControl deviceFadeControl; HbGraphicsScene *scene; QMap parentItems; + +#ifdef HB_CSS_INSPECTOR + friend class CssInspectorModel; + friend class CssInspectorModelItem; +#endif }; class HbPopupLayoutSpacer: public HbWidgetBase diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbscrollarea.cpp --- a/src/hbcore/gui/hbscrollarea.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbscrollarea.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -39,195 +39,226 @@ #include /*! - @beta - @hbcore - \class HbScrollArea - \brief HbScrollArea provides a finger-touch enabled scrollable container class. - - HbScrollArea handles the events need to scroll the contents placed inside it. It also - handles the display of scrollbar while scrolling is occurring. + @beta + @hbcore + \class HbScrollArea + \brief The HbScrollArea class provides a touch-enabled scrolling view onto another + widget. - HbScrollArea is used by constructing a QGraphicsWidget widget that contains the content to be - displayed by calling the HbScrollArea::setContentWidget() method. Scrollarea resizes the content - widget by using QGraphicsWidget::sizeHint() function. This function returns the sizehint i.e. - height and width of the content widget which is constrained by scrollarea based on the scrollarea - direction. + A scroll area displays the contents of another widget within a frame. If the size of + this widget exceeds the size of the frame, the user can scroll so that the entire + contents can be viewed. The user scrolls through the contents by using a dragging + gesture. If scroll bars are enabled and the scroll bar is interactive, the user can + also scroll through the contents using the scroll bar (HbScrollBar class). - If the scrollarea direction is Vertical, scrollarea resizes the width of the content widget - else if it is horizontal, it resizes the height of contect widget. + %HbScrollArea is a concrete class that you can use directly in your applications to + provide default scrolling behavior. %HbScrollArea is also a base class for + HbAbstractItemView and the item view classes that derive from it. If necessary, you + can subclass %HbScrollArea to add additional features, such as touch and selection + feedback. - The class can be used by itself to provide default scrolling behavior or can be - subclassed to add touch feedback, selection feedback, etc. + \image html hbscrollarea.png A scroll area containing a large image and showing scrollbars + + %HbScrollArea provides properties that you can use to customize the following aspects + of the scroll area: - By default, the class provides dragging, flicking with animated follow-on, a - simple inertia algorithm for slowing the animated follow-on scrolling and - a bounce-back algorithm for animating the content back to its bounding - limits at the end of a drag or flick action. - */ + - Scrolling style. The user scrolls through the contents by using a dragging + movement. This property controls what happens when the user releases the pressure. + The default is that a follow-on animation continues the scrolling if the dragging + was fast. Alternatively, the scrolling can stop as soon as the user releases the + pressure, regardless of the dragging speed. Call setScrollingStyle() to set this + property. -/*! - Here are the main properties of the class: + - Friction effect. This property controls the speed of the follow-on scrolling + animation. When the friction effect is enabled, it slows the animation and causes + it to stop more quickly than when the effect is not enabled. Call setFrictionEnabled() + to set this property. - \li HbScrollArea::scrollDirections : - \li HbScrollArea::clampingStyle : - \li HbScrollArea::scrollingStyle : - \li HbScrollArea::showScrollBars : - \li HbScrollArea::scrollBarWidth : - \li HbScrollArea::scrollBarMargin : - \li HbScrollArea::frictionEnabled : - \li HbScrollArea::handleLongPress : - */ + - Clamping style. This property controls how scrolling is constrained relative + to the contents of the scrolling area. Scrolling can be limited to the bounding + rectangle of the contents or it can go beyond the bounding rectangle and bounce + back to its limits (this is the default). Call setClampingStyle() to set this + property. -/*! - \property HbScrollArea::showScrollBars - \brief -*/ + - Scroll direction. This property controls the scrolling direction. The default is + vertical scrolling, but this can be changed to horizontal or bi-directional scrolling. + Call setScrollDirections() to set this property. + + - Scrollbar policy. There is a separate scrollbar policy property for both scrollbars. + You can set these so that the scrollbar is always shown, never shown, only shown when + needed or for short periods (autohide), which is the default behavior. Call + setVerticalScrollBarPolicy() and setHorizontalScrollBarPolicy() to set these properties. -/*! - \property HbScrollArea::scrollBarWidth - \brief -*/ + - Continuation indicators. This property controls whether visual feedback is provided + to indicate when scrolling is possible. The default value is false. Call + setContinuationIndicators() to set this property. -/*! - \property HbScrollArea::scrollBarMargin - \brief -*/ + The contents widget must be an object of a class derived from QGraphicsWidget. After + constructing this widget, you set it into the scroll area by calling setContentWidget(). + The scroll area uses QGraphicsWidget::sizeHint() to resize the content widget to fit, + taking into account the scroll direction. For example, when the scrolling direction is + vertical, the scroll area resizes the contents widget to fit the width of the scroll area. + + \section _usecases_hbscrollarea Using the HbScrollArea class -/*! - \property HbScrollArea::scrollDirections - \brief -*/ + This example creates an HbScrollArea widget and sets a large photo as its contents. -/*! - \property HbScrollArea::clampingStyle - \brief -*/ + \code +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + app.setApplicationName( "Scroll Area" ); + + HbMainWindow window; + HbView* view = new HbView(); + + // Create the scroll area object. + HbScrollArea* scrollArea = new HbScrollArea(); -/*! - \property HbScrollArea::scrollingStyle - \brief -*/ + // Create the content widget. + QGraphicsWidget* content = new QGraphicsWidget(); -/*! - \property HbScrollArea::frictionEnabled - \brief -*/ + // Create a pixmap as a child of the content widget. + QString string(":/gfx/beach.jpg"); + QGraphicsPixmapItem* pixmapItem = new QGraphicsPixmapItem(string, content); + + // Set the preferred size of the content widget to match the full size of the photo. + content->setPreferredSize(pixmapItem->boundingRect().size()); + + // Load the content widget into the scrolling area. + scrollArea->setContentWidget(content); -/*! - \property HbScrollArea::handleLongPress - \brief -*/ + // Set the scroll area to scroll in both directions. + scrollArea->setScrollDirections(Qt::Vertical | Qt::Horizontal); -/*! - \property HbScrollArea::verticalScrollBarPolicy - \brief -*/ + view->setWidget(scrollArea); + window.addView(view); + window.show(); + return app.exec(); +} + \endcode -/*! - \property HbScrollArea::horizontalScrollBarPolicy - \brief -*/ + \sa HbScrollBar + */ /*! \fn void HbScrollArea::scrollDirectionsChanged(Qt::Orientations newValue) - This signal is emitted when scrolling direction is changed. + This signal is emitted when the scrolling direction changes. */ /*! \fn void HbScrollArea::scrollingStarted() - This signal is emitted whenever a scrolling action begins. + This signal is emitted when a scrolling action begins. */ /*! \fn void HbScrollArea::scrollingEnded() - This signal is emitted whenever a scrolling action ends. + This signal is emitted when a scrolling action ends. */ /*! - \fn void HbScrollArea::scrollPositionChanged(QPointF newposition) - This signal is emitted when scroll position is changed and someone is connected to the signal. + \fn void HbScrollArea::scrollPositionChanged(const QPointF &newPosition) + + This signal is emitted when the scroll position is changed, but only if this signal + is connected to a slot. */ /*! \enum HbScrollArea::ClampingStyle - Clamping styles supported by HbScrollArea. + Defines the clamping styles supported by HbScrollArea. The clamping style + controls the behavior when scrolling to the edge of the contents of the scrolling + area. - This enum describes how scrolling is behaving when reaching boundaries of the content item. + \sa setClampingStyle(), clampingStyle() */ + /*! \var HbScrollArea::StrictClamping + Scrolling is limited to the bounding rectangle of the contents. +*/ - Scrolling is limited to the bounding rectangle of the content item. -*/ /*! \var HbScrollArea::BounceBackClamping + Scrolling can go beyond the bounding rectangle of the contents, but bounces + back to the limits of the bounding rectangle when released or when the follow-on + scrolling animation stops. This is the default clamping style. +*/ - Scrolling can go beyond the bounding rectangle of the content item, but bounces back to the - limits of the bounding rectangle when released or when inertia scrolling stops. -*/ /*! \var HbScrollArea::NoClamping + Scrolling is unclamped. Typically you use this only in a subclass that implements + its own custom clamping behavior. +*/ - Scrolling is completely unclamped (this is usually used when the subclass implements its own). -*/ /*! \enum HbScrollArea::ScrollingStyle - Different scrolling styles supported by HbScrollArea. + Defines the scrolling styles supported by HbScrollArea. The scrolling style + controls which gestures the user can use to scroll the contents and how the scrolling + responds to those gestures. - This enum describes how scroll area can be scrolled. + \sa setScrollingStyle(), scrollingStyle() */ + /*! \var HbScrollArea::Pan - Dragging motion pans the view with no follow-on scrolling animation. + The user can scroll through the contents by using a dragging motion. The scrolling + stops as soon as the user stops the dragging motion. */ + /*! \var HbScrollArea::PanOrFlick - Dragging motion pans the view with no follow-on scrolling animation, - quick flicking motion triggers scrolling animation. + \deprecated + The user can scroll through the contents by using a dragging motion and a quick + flicking motion triggers a follow-on scrolling animation. */ + /*! \var HbScrollArea::PanWithFollowOn - Dragging motion pans the view, velocity at end of drag motion triggers follow-on animated scrolling. + The user can scroll through the contents by using a dragging motion. In addition + a fast dragging motion triggers a follow-on scrolling animation when the user + stops dragging and releases the pressure. This is the default scrolling style. */ /*! \enum HbScrollArea::ScrollBarPolicy - This enum type describes the various visibility modes of HbScrollArea's scroll bars. + Defines the scroll bar visibility modes supported by HbScrollArea. + + \sa setVerticalScrollBarPolicy(), verticalScrollBarPolicy(), + setHorizontalScrollBarPolicy(), horizontalScrollBarPolicy() */ /*! \var HbScrollArea::ScrollBarAsNeeded - HbScrollArea shows a scroll bar when the content is too large to fit and not otherwise. + Show the scroll bar only when the contents are too large to fit. */ /*! \var HbScrollArea::ScrollBarAlwaysOff - HbScrollArea never shows a scroll bar. + Never show the scroll bar. */ /*! \var HbScrollArea::ScrollBarAlwaysOn - HbScrollArea always shows a scroll bar. + Always show the scroll bar. */ /*! \var HbScrollArea::ScrollBarAutoHide - HbScrollArea shows scroll bar for short period of time when the content is displayed or scrolled. Scroll bar is not shown if not needed. - - This is the default behavior. + Show the scroll bar for a short period when the contents are first displayed or + when the user scrolls the contents. This is the default behavior. */ -/*! +/* \primitives \primitives{continuation-indicator-bottom} HbFrameItem representing the scrollarea continuation indicator on the bottom of the scrollarea. \primitives{continuation-indicator-top} HbFrameItem representing the scrollarea continuation indicator on the top of the scrollarea. @@ -236,11 +267,9 @@ */ /*! - Constructor - - \sa HbScrollArea::HbScrollArea + Constructs an HbScrollArea object with the given \a parent. */ -HbScrollArea::HbScrollArea(QGraphicsItem* parent) : +HbScrollArea::HbScrollArea(QGraphicsItem* parent) : HbWidget( *new HbScrollAreaPrivate, parent ) { Q_D( HbScrollArea ); @@ -249,7 +278,7 @@ } /*! - Protected constructor. + Protected constructor. */ HbScrollArea::HbScrollArea(HbScrollAreaPrivate &dd, QGraphicsItem *parent): HbWidget( dd, parent ) @@ -260,9 +289,7 @@ } /*! - Destructor - - \sa HbScrollArea::~HbScrollArea + Destructor */ HbScrollArea::~HbScrollArea() { @@ -273,9 +300,10 @@ } /*! - Returns a pointer to the QGraphicsWidget,which is the content of scrollable area. - - \sa HbScrollArea::setContentWidget() + Returns a pointer to the widget that is contained within the scroll area + and that defines the contents to be scrolled. + + \sa setContentWidget() */ QGraphicsWidget* HbScrollArea::contentWidget() const { @@ -285,10 +313,11 @@ } /*! - Assigns the QGraphicsWidget that is to be scrolled. The HbScrollArea widget takes ownership of - the QGraphicsWidget. - - \sa HbScrollArea::contentWidget() + Assigns a widget (QGraphicsWidget object) to the scroll area. This widget defines + the contents of the scroll area. The HbScrollArea object takes ownership of the + contents widget. + + \sa contentWidget() */ void HbScrollArea::setContentWidget(QGraphicsWidget* contents) { @@ -320,14 +349,12 @@ } /*! -Removes the content widget, which is set to the scrollarea and returns it. -The ownership of the \a QGraphicsWidget is transferred to the caller. - -\note This function is particularly useful if one wants to switch between -different contents without deleting previous content. + Removes the scroll area's content widget from the scroll area, returns it, and + transfers ownership of the content widget to the caller. This is useful when you + need to switch the contents without deleting previous contents. \sa setContentWidget() -*/ + */ QGraphicsWidget *HbScrollArea::takeContentWidget() { Q_D(HbScrollArea); @@ -346,9 +373,9 @@ } /*! - Returns the value of the clampingStyle property - - \sa HbScrollArea::setClampingStyle() + Returns the value of the \c clampingStyle property. + + \sa setClampingStyle(), HbScrollArea::ClampingStyle */ HbScrollArea::ClampingStyle HbScrollArea::clampingStyle() const { @@ -358,20 +385,12 @@ } /*! - Sets the clampingStyle property that controls how the scrolling is constrained - relative to the contents of the scrolling area. - - Possible values for the clamping style include: - - StrictClamping - scrolling is limited to the bounding rectangle of the content item - BounceBackClamping - scrolling can go beyond the bounding rectangle of the content item, but bounces back to the - limits of the bounding rectangle when released or when inertia scrolling stops - NoClamping - scrolling is completely unclamped (this is usually used when the subclass implements its own - custom clamping behavior) - - The default value is BounceBackClamping. - - \sa HbScrollArea::clampingStyle() + Sets the \c clampingStyle property, which controls how scrolling is constrained + relative to the contents of the scrolling area. The possible values are defined + by the HbScrollArea::ClampingStyle enum. The default is + HbScrollArea::BounceBackClamping. + + \sa clampingStyle() */ void HbScrollArea::setClampingStyle(ClampingStyle value) { @@ -381,9 +400,9 @@ } /*! - Returns the value of the scrollingStyle property - - \sa HbScrollArea::setScrollingStyle() + Returns the value of the \c scrollingStyle property. + + \sa setScrollingStyle() */ HbScrollArea::ScrollingStyle HbScrollArea::scrollingStyle() const { @@ -393,19 +412,12 @@ } /*! - Sets the scrollingStyle property that controls how the style of scrolling interaction - provided by the widget - - Possible values for the clamping style include: - - Pan - dragging motion pans the view with no follow-on scrolling animation - \deprecated PanOrFlick - is deprecated. - PanWithFollowOn - dragging motion pans the view, velocity at end of drag motion triggers follow-on animated scrolling - - The default value is PanWithFollowOn. - - \sa HbScrollArea::scrollingStyle() + Sets the \c scrollingStyle property, which controls which gestures the user can + use to scroll the contents and how the scrolling responds to those gestures. The + possible values are defined by the HbScrollArea::ScrollingStyle enum. The default + value is HbScrollArea::PanWithFollowOn. + + \sa scrollingStyle() */ void HbScrollArea::setScrollingStyle(ScrollingStyle value) { @@ -420,9 +432,9 @@ } /*! - Returns the value of the scrollDirections property. + Returns the value of the \c scrollDirections property. - \sa HbScrollArea::setScrollDirections() + \sa setScrollDirections() */ Qt::Orientations HbScrollArea::scrollDirections() const { @@ -432,14 +444,18 @@ } /*! - Sets the value of the scrollDirections property. This value is of - type Qt::Orientations and can set to either Qt::Horizontal to enable horizontal scrolling, - Qt::Vertical to enable vertical scrolling or (Qt::Horizontal | Qt::Vertical) to enable - scrolling in both directions. - - The default value is Qt::Vertical. - - \sa HbScrollArea::scrollDirections() + Sets the \c scrollDirections property, which controls the scrolling direction. The + possible values are defined by the Qt::Orientations enum, as shown in the following + table. The default value is Qt::Vertical. + + + + + + +
To enable:Set to:
Horizontal scrollingQt::Horizontal
Vertical scrollingQt::Vertical
Scrolling in both directionsQt::Horizontal | Qt::Vertical
+ + \sa scrollDirections() */ void HbScrollArea::setScrollDirections(Qt::Orientations value) { @@ -461,9 +477,9 @@ } /*! - Returns true if the inertia scrolling effect is enabled, false otherwise. + Returns true if the friction effect is enabled, false otherwise. - \sa HbScrollArea::setFrictionEnabled() + \sa setFrictionEnabled() */ bool HbScrollArea::frictionEnabled() const { @@ -473,10 +489,16 @@ } /*! - Enables/disables the inertia scrolling effect. - By default, the inertia effect is enabled. - - \sa HbScrollArea::frictionEnabled() + Sets the \c frictionEnabled property. The default value is true, which + indicates that the friction effect is enabled. + + When the HbScrollArea::PanWithFollowOn scrolling style is in use, the + \c frictionEnabled property controls the speed of the follow-on scrolling + animation. When the friction effect is enabled (the default), it slows the + animation and causes it to stop earlier than when the friction effect is not + in use. + + \sa frictionEnabled() */ void HbScrollArea::setFrictionEnabled(bool value) { @@ -486,13 +508,9 @@ } /*! - Returns true if the scroll area handles - long press gestures, false otherwise - - \deprecated HbScrollArea::longPressEnabled() - is deprecated. - - \sa HbScrollArea::setHandleLongPress() + Returns true if the scroll area handles long press gestures, false otherwise. + + \deprecated This function is deprecated. */ bool HbScrollArea::longPressEnabled() const { @@ -501,15 +519,11 @@ } /*! - Sets the value of the handleLongPress property. This value is set - to true if the widget is to respond to long press gestures, false otherwise. - - The default value is false. - - \deprecated HbScrollArea::setLongPressEnabled(bool) - is deprecated. - - \sa HbScrollArea::handleLongPress() + Sets the value of the \c handleLongPress property. Set \a value to true if + the widget responds to long press gestures. Otherwise set it to false. + The default value is false. + + \deprecated This function is deprecated. */ void HbScrollArea::setLongPressEnabled (bool value) { @@ -517,8 +531,8 @@ Q_UNUSED(value); } -/* - \reimp +/*! + \reimp */ QVariant HbScrollArea::itemChange(GraphicsItemChange change, const QVariant &value) { @@ -534,17 +548,11 @@ return HbWidget::itemChange(change, value); } -/*! @beta - upGesture() is a virtual slot function that is called whenever an - up flick gesture is detected, if the scrollDirection is set to - enable vertical scrolling. - - Derived classes can override this method to add custom handling of - the gesture. In most cases, derived classes should call up to the - HbScrollArea parent method. - - \deprecated HbScrollArea::upGesture(int) - is deprecated. +/*! + A virtual slot function that is called when an upwards flick gesture is detected + while vertical scrolling is enabled. + + \deprecated This function is deprecated. */ void HbScrollArea::upGesture(int speedPixelsPerSecond) { @@ -553,17 +561,11 @@ Q_UNUSED(speedPixelsPerSecond); } -/*! @beta - downGesture() is a virtual slot function that is called whenever an - down flick gesture is detected, if the scrollDirection is set to - enable vertical scrolling. - - Derived classes can override this method to add custom handling of - the gesture. In most cases, derived classes should call up to the - HbScrollArea parent method. - - \deprecated HbScrollArea::downGesture(int) - is deprecated. +/*! + A virtual slot function that is called when a downwards flick gesture is + detected while vertical scrolling is enabled. + + \deprecated This function is deprecated. */ void HbScrollArea::downGesture(int speedPixelsPerSecond) { @@ -571,17 +573,11 @@ Q_UNUSED(speedPixelsPerSecond); } -/*! @beta - leftGesture() is a virtual slot function that is called whenever an - left flick gesture is detected, if the scrollDirection is set to - enable horizontal scrolling. - - Derived classes can override this method to add custom handling of - the gesture. In most cases, derived classes should call up to the - HbScrollArea parent method. - - \deprecated HbScrollArea::leftGesture(int) - is deprecated. +/*! + A virtual slot function that is called when a left flick gesture + is detected while horizontal scrolling is enabled. + + \deprecated This function is deprecated. */ void HbScrollArea::leftGesture(int speedPixelsPerSecond) { @@ -589,17 +585,11 @@ Q_UNUSED(speedPixelsPerSecond); } -/*! @beta - rightGesture() is a virtual slot function that is called whenever an - right flick gesture is detected, if the scrollDirection is set to - enable horizontal scrolling. - - Derived classes can override this method to add custom handling of - the gesture. In most cases, derived classes should call up to the - HbScrollArea parent method. - - \deprecated HbScrollArea::rightGesture(int) - is deprecated. +/*! + A virtual slot function that is called when a right flick gesture is detected + while horizontal scrolling is enabled. + + \deprecated This function is deprecated. */ void HbScrollArea::rightGesture(int speedPixelsPerSecond) { @@ -609,15 +599,9 @@ /*! - panGesture() is a virtual slot function that is called whenever an - pan gesture is detected. - - Derived classes can override this method to add custom handling of - the gesture. In most cases, derived classes should call up to the - HbScrollArea parent method. - - \deprecated HbScrollArea::panGesture(const QPointF&) - is deprecated. + A virtual slot function that is called when a pan gesture is detected. + + \deprecated This function is deprecated. */ void HbScrollArea::panGesture(const QPointF &delta) { @@ -625,17 +609,11 @@ Q_UNUSED(delta); } -/*! @beta - longPressGesture() is a virtual slot function that is called whenever an - long press gesture is detected, if the handleLongPress property is set to true. - - Derived classes can override this method to add custom handling of - the gesture. By default, HbScrollArea does not respond to a long press. - - \deprecated HbScrollArea::longPressGesture(const QPointF&) - is deprecated. - - \sa setHandleLongPress(), handleLongPress() +/*! + A virtual slot function that is called when a long press gesture is + detected while the \c handleLongPress property is set to true. + + \deprecated This function is deprecated. */ void HbScrollArea::longPressGesture(const QPointF &) { @@ -643,7 +621,7 @@ } /*! - \reimp + Reimplemented from QObject. */ void HbScrollArea::mousePressEvent(QGraphicsSceneMouseEvent *event) { @@ -651,7 +629,7 @@ } /*! - Returns true if a scrolling action is in progress, false otherwise. + Returns true if a scrolling action is in progress, false otherwise. */ bool HbScrollArea::isScrolling() const { @@ -661,7 +639,8 @@ } /*! - Returns true if the scrolling is due to dragging as opposed to follow-on scrolling + Returns true if the scrolling is in a response to the user dragging, false if it + is the follow-on scrolling animation. */ bool HbScrollArea::isDragging() const { @@ -671,12 +650,12 @@ } /*! - Scrolls the view by the amount indicated by "delta". - - The function returns TRUE if the view was able to scroll, FALSE otherwise. - - The function is virtual so subclasses can override it to customize the behavior by, for example, - clamping the position so that at least one item in the view remains visible. + Scrolls the view by the amount indicated by \a delta and returns true if + the scroll was successful and false otherwise. + + This is a virtual function, which subclasses can override to customize the + behavior; for example, to clamp the position so that at least one item in + the view remains visible. */ bool HbScrollArea::scrollByAmount(const QPointF& delta) { @@ -686,7 +665,7 @@ } /*! - \reimp + \reimp */ bool HbScrollArea::event(QEvent *event) { @@ -768,10 +747,8 @@ } if (sizeChanged) { d->mContents->resize(newSize); - d->updateScrollMetrics(); - } else { - d->adjustContent(); } + d->adjustContent(); } } } @@ -779,7 +756,7 @@ } /*! - \reimp + Reimplemented from QObject. */ bool HbScrollArea::eventFilter(QObject *obj, QEvent *event) { @@ -803,8 +780,8 @@ } /*! - \reimp -*/ + Reimplemented from QGraphicsWidget. + */ QSizeF HbScrollArea::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const { Q_D ( const HbScrollArea ); @@ -816,7 +793,7 @@ break; case Qt::PreferredSize: if (d->mContents) { - sh = d->mContents->effectiveSizeHint( which, constraint ); + sh = d->mContents->effectiveSizeHint( which ); } else { sh = HbWidget::sizeHint( which, constraint ); } @@ -833,7 +810,7 @@ } /*! - \reimp + \reimp */ void HbScrollArea::focusOutEvent( QFocusEvent *event ) { @@ -875,10 +852,10 @@ #endif /*! - Returns the scrollbar policy for vertical scrollbar + Returns the display policy for the vertical scrollbar. \sa horizontalScrollBarPolicy(), setVerticalScrollBarPolicy() -*/ + */ HbScrollArea::ScrollBarPolicy HbScrollArea::verticalScrollBarPolicy() const { Q_D(const HbScrollArea); @@ -886,11 +863,11 @@ } /*! - Sets the policy for vertical scrollbar + Sets the display policy for the vertical scrollbar. The possible values are + defined by the HbScrollArea::ScrollBarPolicy enum. The default value is + HbScrollArea::ScrollBarAutoHide. - The default policy is HbScrollArea::ScrollBarAutoHide. - - \sa setHorizontalScrollBarPolicy(), verticalScrollBarPolicy() + \sa setHorizontalScrollBarPolicy(), verticalScrollBarPolicy(), setVerticalScrollBar() */ void HbScrollArea::setVerticalScrollBarPolicy(ScrollBarPolicy policy) { @@ -899,9 +876,9 @@ } /*! - Returns the vertical scroll bar. + Returns the vertical scroll bar. - \sa verticalScrollBarPolicy(), horizontalScrollBar() + \sa verticalScrollBarPolicy(), horizontalScrollBar() */ HbScrollBar *HbScrollArea::verticalScrollBar() const { @@ -910,15 +887,15 @@ } /*! - Replaces the existing vertical scroll bar with \a scrollBar. The former - scroll bar is deleted. + Replaces the existing vertical scroll bar with \a scrollBar. The former + scroll bar is deleted. - HbScrollArea already provides vertical and horizontal scroll bars by - default. You can call this function to replace the default vertical - scroll bar with your own custom scroll bar. + %HbScrollArea provides provides vertical and horizontal scroll bars by default. + Call this function to replace the default vertical scroll bar with your own + custom scroll bar, if required. - \sa verticalScrollBar(), setHorizontalScrollBar() -*/ + \sa verticalScrollBar(), setHorizontalScrollBar() + */ void HbScrollArea::setVerticalScrollBar(HbScrollBar *scrollBar) { Q_D(HbScrollArea); @@ -931,10 +908,10 @@ } /*! - \brief Returns the policy for horizontal scrollbar + Returns the display policy for the horizontal scrollbar. \sa verticalScrollBarPolicy(), setHorizontalScrollBarPolicy() -*/ + */ HbScrollArea::ScrollBarPolicy HbScrollArea::horizontalScrollBarPolicy() const { Q_D(const HbScrollArea); @@ -942,11 +919,11 @@ } /*! - \brief Sets the policy for horizontal scrollbar + Sets the display policy for the horizontal scrollbar. The possible values are + defined by the HbScrollArea::ScrollBarPolicy enum. The default value is + HbScrollArea::ScrollBarAutoHide. - The default policy is HbScrollArea::ScrollBarAutoHide. - - \sa setVerticalScrollBarPolicy(), horizontalScrollBarPolicy() + \sa setVerticalScrollBarPolicy(), horizontalScrollBarPolicy(), setHorizontalScrollBar() */ void HbScrollArea::setHorizontalScrollBarPolicy(ScrollBarPolicy policy) { @@ -955,9 +932,9 @@ } /*! - Returns the horizontal scroll bar. + Returns the horizontal scroll bar. - \sa horizontalScrollBarPolicy(), verticalScrollBar() + \sa horizontalScrollBarPolicy(), verticalScrollBar() */ HbScrollBar *HbScrollArea::horizontalScrollBar() const { @@ -969,9 +946,9 @@ Replaces the existing horizontal scroll bar with \a scrollBar. The former scroll bar is deleted. - HbScrollArea already provides vertical and horizontal scroll bars by - default. You can call this function to replace the default horizontal - scroll bar with your own custom scroll bar. + %HbScrollArea provides vertical and horizontal scroll bars by default. + Call this function to replace the default horizontal scroll bar with your + own custom scroll bar, if required. \sa horizontalScrollBar(), setVerticalScrollBar() */ @@ -987,11 +964,13 @@ } /*! - \brief the alignment of the scroll area's widget + Sets the alignment of the scroll area's content widget. The possible values are + defined by the Qt::Alignment enum. - By default, the widget stays rooted to the top-left corner of the - scroll area. - \sa alignment + The default value is \c Qt::AlignLeft | \c Qt::AlignTop, which roots the content + widget in the top-left corner of the scroll area. + + \sa alignment() */ void HbScrollArea::setAlignment(Qt::Alignment alignment) @@ -1003,12 +982,10 @@ d->adjustContent(); } /*! - \brief the alignment of the scroll area's widget + Returns the alignment of the scroll area's content widget. - By default, the widget stays rooted to the top-left corner of the - scroll area. - \sa setAlignment -*/ + \sa setAlignment() + */ Qt::Alignment HbScrollArea::alignment() const { Q_D(const HbScrollArea); @@ -1017,15 +994,12 @@ /*! - \brief Contination indicators for scroll area + Sets the \c contuationIndicators property for the scroll area. Set + \a indication to true if you want the scroll area to provide visual + feedback when scrolling is possible. The default value is false. - By default continuation graphics are disabled. When continuation - graphics are enabled, scroll area shows indications where it is - possible to scroll. - - \sa continuationIndicators -*/ - + \sa continuationIndicators() + */ void HbScrollArea::setContinuationIndicators(bool indication) { Q_D(HbScrollArea); @@ -1041,13 +1015,10 @@ } /*! - \brief Contination indicators for scroll area + Returns the value of the \c continuationIndicators property for the + scroll area. - By default continuation graphics are disabled. When continuation - graphics are enabled, scroll area shows indications where it is - possible to scroll. - - \sa setContinuationIndicators + \sa setContinuationIndicators() */ bool HbScrollArea::continuationIndicators() const { @@ -1056,17 +1027,22 @@ } + /*! - Scrolls the contents of the scroll area so that the point \a position is visible - inside the region of the scrollArea with margins specified in pixels by \a xMargin and - \a yMargin. If the specified point cannot be reached, the contents are scrolled to - the nearest valid position. The default and minimum valid value for both margins is 0 pixels. - Valid range for \a xMargin is between 0 and width of scrollArea, valid range for \a yMargin is - between 0 and height of scrollArea.\a xMargin, \a yMargin, x and y values of \a position will be - ignored depending on scrollingDirection. + Scrolls the contents of the scroll area so that \a position is visible within + the scroll area with the given margins. If the specified point cannot be shown, + the contents are scrolled to the nearest valid position. + + \param position Defines the position within the content widget that is to be shown within + the scroll area. + \param xMargin The width of the vertical margins in pixels. This can be between 0 and the + width of the scroll area. The default value is 0. + + \param yMargin The height of the horizontal margins in pixels. This can be between 0 + and the height of the scroll area. The default value is 0. \sa setScrollDirections() -*/ + */ void HbScrollArea::ensureVisible(const QPointF& position, qreal xMargin, qreal yMargin) { Q_D(HbScrollArea); @@ -1074,15 +1050,18 @@ } /*! - Scrolls the contents of the scroll area to the \a newPosition in a given \a time. - If the time is 0, contents is scrolled to the position instantly. -*/ + Scrolls the contents of the scroll area to \a newPosition in the given \a time. + If \a time is 0, the contents are scrolled to the position immediately. + */ void HbScrollArea::scrollContentsTo (const QPointF& newPosition, int time) { Q_D(HbScrollArea); if (!contentWidget()) return; + d->stopAnimating(); + d->stopScrolling(); + if (time > 0){ d->startTargetAnimation (newPosition, qMax (0, time)); } else { @@ -1092,7 +1071,7 @@ } /*! - \reimp + \reimp */ void HbScrollArea::polish(HbStyleParameters& params) { @@ -1143,8 +1122,7 @@ } /*! - \reimp - + Reimplemented from QObject. */ void HbScrollArea::timerEvent(QTimerEvent *event) { @@ -1157,7 +1135,7 @@ } /*! - \reimp + Reimplemented from QGraphicsWidget. */ QPainterPath HbScrollArea::shape() const { @@ -1169,7 +1147,7 @@ } /*! - \reimp + Reimplemented from QGraphicsWidget. */ QRectF HbScrollArea::boundingRect() const @@ -1182,7 +1160,7 @@ } /*! - \reimp + Reimplemented from QGraphicsWidget. */ void HbScrollArea::setGeometry(const QRectF& rect) { @@ -1192,8 +1170,8 @@ } /*! - \reimp -*/ + Reimplemented from QObject. + */ void HbScrollArea::disconnectNotify (const char *signal) { Q_D(HbScrollArea); @@ -1207,8 +1185,8 @@ } /*! - \reimp -*/ + Reimplemented from QObject. + */ void HbScrollArea::connectNotify(const char * signal) { Q_D(HbScrollArea); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbscrollarea_p.cpp --- a/src/hbcore/gui/hbscrollarea_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbscrollarea_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -269,10 +269,26 @@ HbWidgetFeedback::triggered(q, Hb::InstantBoundaryReached); } } - stopScrolling(); + bool scrolled = currentPosition != newPosition; + if (scrolled) { + setContentPosition(-newPosition); + + if (mAbleToScrollX && mHorizontalScrollBar->isVisible()) { + updateScrollBar(Qt::Horizontal); + } + if (mAbleToScrollY && mVerticalScrollBar->isVisible()) { + updateScrollBar(Qt::Vertical); + } + } + + // if animating stopScrolling will be called from _q_animateScrollTimeout + if (!mIsAnimating) { + stopScrolling(); + } + // must return here, otherwise mIsScrolling will be false // below and scrollingStarted will be emitted - return currentPosition != newPosition; + return scrolled; } else { mBoundaryReached = false; } @@ -294,17 +310,16 @@ } stopScrollbarHideTimer(); - } else { - - if (mAbleToScrollX && mHorizontalScrollBar->isVisible()) { - updateScrollBar(Qt::Horizontal); - } + } - if (mAbleToScrollY && mVerticalScrollBar->isVisible()) { - updateScrollBar(Qt::Vertical); - } + if (mAbleToScrollX && mHorizontalScrollBar->isVisible()) { + updateScrollBar(Qt::Horizontal); } - //if we are here than content position has changed.i.e delta is not zero or + if (mAbleToScrollY && mVerticalScrollBar->isVisible()) { + updateScrollBar(Qt::Vertical); + } + + //if we are here than content position has changed.i.e delta is not zero or //we havent reached the boundaries. return true; } @@ -900,21 +915,17 @@ void HbScrollAreaPrivate::displayScrollBar(Qt::Orientation orientation) { Q_Q(HbScrollArea); - if (orientation == Qt::Horizontal) { - // Layout the scrollbar - setScrollBarMetrics(orientation); + // Layout the scrollbar + setScrollBarMetrics(orientation); + if (orientation == Qt::Horizontal) { // Activate the scrollbar if ( !mHorizontalScrollBar->isVisible() && q->isVisible()) { mHorizontalScrollBar->setVisible(true); } } else if (orientation == Qt::Vertical) { - - // Layout the scrollbar - setScrollBarMetrics(orientation); - // Activate the scrollbar if ( !mVerticalScrollBar->isVisible() && q->isVisible()) { mVerticalScrollBar->setVisible(true); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbscrollbar.cpp --- a/src/hbcore/gui/hbscrollbar.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbscrollbar.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -46,45 +46,98 @@ @stable @hbcore \class HbScrollBar - \brief HbScrollBar represents a scrollbar that can be used in different kinds of lists, options - menus and editors. + \brief The HbScrollBar class provides a vertical or horizontal scroll bar. + + Scroll bars indicate that more content is available than can fit within a container and + that the contents can be scrolled. A scroll bar consists of a groove and a handle (which + is sometimes called a thumb). The position of the handle on the groove indicates the + position of the visible content within the available contents. The size of the handle + indicates the amount of content that is visible relative to the total. For example, a + small handle indicates that there is a lot more content that is out of view. + + Scroll bars float above the content and do not need reserved space. There are two types of + scroll bar: + + - Indicative. These scroll bars simply give an indication that the content can be + scrolled and they do not provide features that enable scrolling (the ability to scroll + is provided by the widget to which the scroll bar is attached). Indicative scroll bars are + suitable for shorter lists and content that you expect the user to browse rather than to + search for specific items. This is the default type of scroll bar. + + - Interactive. With this type of scroll bar, the user can drag the handle or press the + groove to change the scroll position. When used in an item model view (classes derived + from HbAbstractItemView), these scroll bars can provide index feedback (HbIndexFeedback + class) when the user drags the scroll bar or taps on the groove. The feedback is a popup + that shows, for example, the initial letter in an alphabetical list. Interactive scroll bars + are particularly suitable for long lists. - A vertical scrollbar is created in this example to listview-parent and also shown: + Call \link HbScrollBar::setInteractive() setInteractive(true)\endlink to make a scroll bar + interactive. Call isInteractive() to discover whether a scroll bar is interactive. + + \image html hbscrollbar.png A list view with a vertical interactive scroll bar + + %HbScrollBar provides other properties that control the following aspects of a scroll bar: + + - Value. This is a real value in the range 0.0 to 1.0 that indicates how far the handle + is from the start of the groove. For example, 0.5 means the handle is half way along the + groove. Call setValue() to set this property. + + - Page size. This is a real value in the range 0.0 to 1.0 that indicates how much of the + total contents are currently visible. This property also controls the size of the handle. + For example, a page size of 0.1 indicates that one out of ten pages are visible. Call + setPageSize() to set this property. + + - Orientation. This controls whether the scroll bar is horizontal or vertical. Call + setOrientation() to set this property. + + \section _usecases_hbscrollbar Using the HbScrollBar class + + Although it is possible to create an HbScrollBar object directly, scroll bars are created + automatically when you create an HbScrollArea object or one of the item view classes that + are derived from it. This example demonstrates changing the default scroll bars + created for an HbScrollArea object from indicative to interactive: \code - //HbListView *listView is defined already - HbScrollBar *scrollbar = new HbScrollBar(Qt::Vertical, listView); - scrollbar->show(); + scrollArea->verticalScrollBar()->setInteractive(true); + scrollArea->horizontalScrollBar()->setInteractive(true); \endcode - By default scrollbar is hidden. -*/ + You can replace the existing scroll bars by calling HbScrollArea::setHorizontalScrollBar() + and HbScrollArea::setVerticalScrollBar(). + + \sa HbScrollArea, HbAbstractItemView, HbIndexFeedback + */ /*! - \reimp \fn int HbScrollBar::type() const */ /*! - \fn void HbScrollBar::valueChanged( qreal value, Qt::Orientation orientation ) + \fn void HbScrollBar::valueChanged( qreal value, Qt::Orientation orientation ); - This signal is emitted when thumb position is changed by the user. -*/ + This signal is emitted when the user changes the position of the handle in an interactive + scroll bar. + */ /*! - \fn void valueChangeRequested( qreal value, Qt::Orientation orientation ); + \fn void HbScrollBar::valueChangeRequested( qreal value, Qt::Orientation orientation ); + + This signal is emitted when the user presses an interactive scroll bar's groove. The widget + using the scroll bar must handle this signal (for example, by providing an animation that + scrolls to the target position). - This signal is emitted when the user presses scrollbar groove. + \param value The value to which the user wants to scroll. + \param orientation The scroll bar's orientation. - \param value, the new value of scrollbar after the change - */ + \sa HbScrollBar::setInteractive() + */ /*! \primitives - \primitive{groove} HbFrameItem representing the groove of a scrollbar. - \primitive{handle} HbFrameItem representing the handle of a scrollbar. - \primitive{toucharea} HbTouchArea representing the scrollbar toucharea. - */ + \primitive{groove} HbFrameItem representing the groove of a scroll bar. + \primitive{handle} HbFrameItem representing the handle of a scroll bar. + \primitive{toucharea} HbTouchArea representing the scroll bar toucharea. + */ HbScrollBarPrivate::HbScrollBarPrivate(): mOrientation(Qt::Vertical), @@ -222,8 +275,8 @@ } /*! - Constructs a scrollbar with \a parent. -*/ + Constructs a scroll bar with the given \a parent. + */ HbScrollBar::HbScrollBar( QGraphicsItem *parent ) : HbWidget(*new HbScrollBarPrivate, parent) { @@ -233,8 +286,8 @@ } /*! - Constructs a scrollbar with \a orientation and \a parent. -*/ + Constructs a scroll bar with the given \a orientation and \a parent. + */ HbScrollBar::HbScrollBar( Qt::Orientation orientation, QGraphicsItem *parent ) : HbWidget( *new HbScrollBarPrivate, parent ) { @@ -245,15 +298,15 @@ } /*! - Destructor + Destructor. */ HbScrollBar::~HbScrollBar() { } /*! - Returns the value of the scrollbar. The value is in range of 0.0 to 1.0. - The value corresponds to the position of the thumb. + Returns the scroll bar's \c value property. This indicates how far the handle is + from the start of the groove and can be in range of 0.0 to 1.0. \sa HbScrollBar::setValue() */ @@ -264,12 +317,12 @@ } /*! - Returns relative size of the visible area the scrollbar is attached to. - For example if the pageSize is 0.2 it means that the overall size of the content - is five times larger than what is shown currently. + Returns scroll bar's \c pageSize property. This is a real value in the range of 0.0 to + 1.0, which indicates the size of the visible content relative to the whole content. + For example, a page size of 0.2 indicates that the overall size of the content is five + times larger than what is currently visible. - The size is in range of 0.0 to 1.0. - \sa HbScrollBar::setPageSize() + \sa HbScrollBar::setPageSize() */ qreal HbScrollBar::pageSize() const { @@ -278,7 +331,7 @@ } /*! - Returns the orientation of scrollbar. + Returns the orientation of scroll bar. \sa HbScrollBar::setOrientation() */ @@ -289,7 +342,7 @@ } /*! - Returns whether scrollbar is in interactive mode. + Returns true if the scroll bar is interactive and false if it is indicative. \sa HbScrollBar::setInteractive() */ @@ -300,15 +353,23 @@ } /*! - Sets the value of interactive property. If this value is set - to true scrollbar is interactive, the user can change the scroll position by - dragging the thumb or pressing the groove. Dragging the thumb emits valueChanged - signal and pressing the groove emits valueChangeRequested which means - that the widget using scrollbars should handle the value change (for example - by animating to the given target value). + Sets the value of the scroll bar's \c interactive property, which controls whether the + scroll bar is interactive or indicative (the default). + + When the scroll bar is interactive, the user can drag the handle or press the groove to + change the scroll position. The following table lists the signals that an interactive + scroll bar emits when the user drags the handle or presses the groove. - The default behavior is non interactive, - which means that the scrollbar is just indicative. + + + + +
SignalDescription
valueChanged()This signal is emitted when the user drags the handle.
valueChangeRequested()This signal is emitted when the user presses the scroll + bar's groove. The widget using the scroll bar must handle this signal (for example, by + providing an animation that moves to the target position).
+ + \param enabled A Boolean value; true for an interactive scroll bar, false for an indicative + scroll bar. \sa HbScrollBar::isInteractive() */ @@ -332,11 +393,15 @@ } /*! - Sets the value of the scrollbar. The given \avalue should be from 0.0 to 1.0. - The value is used to position the thumb. + Sets the scroll bar's \c value property, which controls how far the handle is from + the start of the groove. + + \param value A real value in the range 0.0 to 1.0. A value of 0.0 indicates that the + handle is at the start of the groove and a value of 1.0 indicates that it is at the + end. \sa HbScrollBar::value() -*/ + */ void HbScrollBar::setValue( qreal value ) { Q_D(HbScrollBar); @@ -349,13 +414,13 @@ } /*! - Sets the page size for the scrollbar. The page size is relative size of the visible area - the scrollbar is attached to. For example if the pageSize is 0.2 it means that the - overall size of the content is five times larger than what is shown currently. + Sets the scroll bar's \c pageSize property, which indicates the size of the visible content + relative to the whole content. For example, a page size of 0.2 indicates that the + overall size of the content is five times larger than what is currently visible. - \asize should be in the range of 0.0 to 1.0. + \param size A real value in the range of 0.0 to 1.0. \sa HbScrollBar::pageSize() -*/ + */ void HbScrollBar::setPageSize( qreal size ) { Q_D(HbScrollBar); @@ -368,7 +433,10 @@ } /*! - Sets the orientation of scrollbar. + Sets the scroll bar's \c orientation property. + + \param orientation Set this to \c Qt::Horizontal for a horizontal scroll bar and + \c Qt::Vertical for a vertical scroll bar. \sa HbScrollBar::orientation() */ @@ -402,7 +470,7 @@ } /*! - \reimp + Reimplemented from QGraphicsWidget. */ void HbScrollBar::initStyleOption( HbStyleOptionScrollBar *option ) const { @@ -417,7 +485,7 @@ } /*! - \reimp + Reimplemented from QGraphicsItem. */ void HbScrollBar::mousePressEvent( QGraphicsSceneMouseEvent *event ) { @@ -491,7 +559,7 @@ } /*! - \reimp + Reimplemented from QGraphicsItem. */ void HbScrollBar::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) { @@ -521,7 +589,7 @@ } /*! - \reimp + Reimplemented from QGraphicsItem. */ void HbScrollBar::mouseMoveEvent( QGraphicsSceneMouseEvent *event ) { @@ -561,7 +629,7 @@ } /*! - \reimp + Reimplemented from QGraphicsWidget. */ QRectF HbScrollBar::boundingRect() const { @@ -586,7 +654,7 @@ } /*! - \reimp + Reimplemented from QObject. */ void HbScrollBar::timerEvent( QTimerEvent *event ) { @@ -682,7 +750,7 @@ } /*! - \reimp + \reimp */ void HbScrollBar::gestureEvent(QGestureEvent* event) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbsettingswindow_p.cpp --- a/src/hbcore/gui/hbsettingswindow_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbsettingswindow_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -72,14 +72,20 @@ return window; } +static QPointer settingsWindowGlobal = 0; + HbSettingsWindow *HbSettingsWindow::instance() { - static QPointer window = 0; - if (!window) { - window = new HbSettingsWindow; - window->setAttribute(Qt::WA_DeleteOnClose); + if (!settingsWindowGlobal) { + settingsWindowGlobal = new HbSettingsWindow; + settingsWindowGlobal->setAttribute(Qt::WA_DeleteOnClose); } - return window; + return settingsWindowGlobal; +} + +bool HbSettingsWindow::exists() +{ + return !settingsWindowGlobal.isNull(); } HbSettingsWindow::HbSettingsWindow(QWidget *parent) : QWidget(parent) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbsettingswindow_p.h --- a/src/hbcore/gui/hbsettingswindow_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbsettingswindow_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -38,6 +38,7 @@ public: static HbSettingsWindow *instance(); + static bool exists(); ~HbSettingsWindow(); public slots: diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbsplashscreen.cpp --- a/src/hbcore/gui/hbsplashscreen.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbsplashscreen.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -131,11 +131,13 @@ #endif } -// Called when QApplication is constructed and the splash was launched -// before that. This gives a chance for the splash screen to do +// Called (by HbApplication) when QApplication is constructed and the splash was +// launched before that. This gives a chance for the splash screen to do // activies that need an active scheduler or a QApplication instance. void HbSplashScreenExt::doQtPhase() { + // Can also be called when the splash screen was not started or is already + // destroyed, do nothing in such cases. if (splashScreen) { #ifdef HB_SPLASH_DIRECT_WS static_cast(splashScreen)->doQtPhase(); @@ -581,6 +583,21 @@ RDebug::Printf("[hbsplash] drawing took %d ms", (int) t.elapsed()); #endif + bool isQtAvailable = QCoreApplication::instance() != 0; +#ifdef HB_SPLASH_VERBOSE_LOGGING + RDebug::Printf("[hbsplash] qapplication present: %d", isQtAvailable); +#endif + if (isQtAvailable) { + doQtPhase(); + } + // If there is no QApplication then there is no active scheduler, + // cone, etc. either so defer the creation of the timer and the + // visibility listener. doQtPhase() will be called later by + // HbApplication when QApplication is constructed. If HbApplication + // is not used at all and start() is called before instantiating + // QApplication then doQtPhase() is never called but there is not + // much we can do and it is not mandatory anyway. + } else { HbSplashScreen::destroy(); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbtoolbar.cpp --- a/src/hbcore/gui/hbtoolbar.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbtoolbar.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -213,7 +213,7 @@ d->q_ptr = this; d->init(); setFlag(QGraphicsItem::ItemIsPanel); - + setFlag(QGraphicsItem::ItemHasNoContents, true); } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbtoolbarextension.cpp --- a/src/hbcore/gui/hbtoolbarextension.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbtoolbarextension.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -153,14 +153,12 @@ mAlignment(Qt::AlignTop), mDefaultContentWidget(false), // default values, in case CSS parsing fails - mMargins(0), mRowsPortrait(4), mRowsLandscape(3), mColsPortrait(3), mColsLandscape(4), lazyInitDone(false), orientationConnectDone(false), - // mExtendedButton(0), mToolBar(0) { @@ -231,7 +229,7 @@ } mLayout = new QGraphicsGridLayout(); - mLayout->setContentsMargins( mMargins, mMargins, mMargins, mMargins ); + mLayout->setContentsMargins(0, 0, 0, 0); mLayout->setSpacing(0.0); // if non zero spacing needed, add to css for ( int i(0), j(0), ie(mToolButtons.count()); i < ie; ++i ) { HbToolButton *button = mToolButtons.at(i); @@ -376,9 +374,9 @@ } else { HbToolBarExtensionPrivate::d_ptr(q)->setAlignment(Qt::AlignRight); } + q->close(); } q->repolish(); - doLayout(); } void HbToolBarExtensionPrivate::_q_animateButtonClicked() @@ -538,7 +536,7 @@ d->actionAdded( static_cast(event) ); return true; } else if ( event->type() == QEvent::ActionRemoved ) { - d->actionRemoved( static_cast(event) ); + d->actionRemoved( static_cast(event) ); return true; } else if (event->type() == QEvent::ActionChanged ) { d->actionChanged(); @@ -558,13 +556,11 @@ if (isVisible()) { Q_D(HbToolBarExtension); d->doLazyInit(); - const QLatin1String Margins("content-margins"); const QLatin1String RowsPortrait("max-rows-portrait"); const QLatin1String RowsLandscape("max-rows-landscape"); const QLatin1String ColsPortrait("max-columns-portrait"); const QLatin1String ColsLandscape("max-columns-landscape"); - params.addParameter( Margins ); params.addParameter( RowsPortrait ); params.addParameter( RowsLandscape ); params.addParameter( ColsPortrait ); @@ -572,12 +568,10 @@ d->initialiseContent(); if (d->mDefaultContentWidget) { HbDialog::polish(params); - if ( params.value( Margins ).isValid() - && params.value( RowsPortrait ).isValid() + if ( params.value( RowsPortrait ).isValid() && params.value( RowsLandscape ).isValid() && params.value( ColsPortrait ).isValid() && params.value( ColsLandscape ).isValid() ) { - d->mMargins = params.value( Margins ).toReal(); d->mRowsPortrait = params.value( RowsPortrait ).toInt(); d->mRowsLandscape = params.value( RowsLandscape ).toInt(); d->mColsPortrait = params.value( ColsPortrait ).toInt(); @@ -598,8 +592,8 @@ if (value.toBool()) { HbMainWindow* w(mainWindow()); if(w && !d->orientationConnectDone) { - QObject::connect(w,SIGNAL(orientationChanged(Qt::Orientation)), - this, SLOT(_q_orientationChanged())); + QObject::disconnect( w , SIGNAL(aboutToChangeOrientation()), this, SLOT(_q_orientationChanged())); + QObject::connect( w , SIGNAL(aboutToChangeOrientation()), this, SLOT(_q_orientationChanged())); d->orientationConnectDone = true; } d->placeToolBarExtension(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbtoolbarextension_p.h --- a/src/hbcore/gui/hbtoolbarextension_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbtoolbarextension_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -60,7 +60,6 @@ HbAction *extensionAction; Qt::Alignment mAlignment; bool mDefaultContentWidget; - qreal mMargins; int mRowsPortrait; int mRowsLandscape; int mColsPortrait; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbtoolbutton.cpp --- a/src/hbcore/gui/hbtoolbutton.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbtoolbutton.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -248,6 +248,8 @@ } else { data->frameGraphicsName = QLatin1String("qtg_fr_tb_ext"); } + } else { + data->frameGraphicsName = QLatin1String(""); } data->frameType = HbFrameDrawer::NinePieces; return; @@ -347,19 +349,20 @@ void HbToolButtonPrivate::iconPrimitiveData(HbStyleIconPrimitiveData *data) { Q_Q(HbToolButton); - if (q->action()) + if (q->action()) { data->icon = q->action()->icon(); - + } else if(action){ + data->icon = action->icon(); + } data->iconMode = HbStylePrivate::iconMode(data->state); data->iconState = HbStylePrivate::iconState(data->state); return; } void HbToolButtonPrivate::textPrimitiveData(HbStyleTextPrimitiveData *data) { - Q_Q(HbToolButton); - if (q->action()) - data->text = q->action()->text(); - return; + if(action) { + data->text = action->text(); + } } QSizeF HbToolButtonPrivate::getMinimumSize() @@ -633,6 +636,21 @@ /*! \reimp */ +void HbToolButton::checkStateSet() +{ + Q_D(HbToolButton); + if (d->checked || (d->checkable && d->down)) { + setProperty( "state", "latched" ); + } else if (d->down) { + setProperty( "state", "pressed" ); + } else { + setProperty( "state", "normal" ); + } +} + +/*! + \reimp + */ bool HbToolButton::sceneEvent(QEvent *event) { if (event->type() == QEvent::GraphicsSceneHelp) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbtoolbutton.h --- a/src/hbcore/gui/hbtoolbutton.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbtoolbutton.h Fri Sep 17 08:32:10 2010 +0300 @@ -65,6 +65,7 @@ HbToolButton( HbToolButtonPrivate &dd, QGraphicsItem *parent ); void resizeEvent( QGraphicsSceneResizeEvent *event ); void nextCheckState(); + void checkStateSet(); bool event( QEvent *event ); void polish(HbStyleParameters ¶ms); bool sceneEvent(QEvent *event); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbview.cpp --- a/src/hbcore/gui/hbview.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbview.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -1049,6 +1049,9 @@ Ownership of \a action is not taken. + \note The navigation button will not display text that is assigned to the + action. + \sa navigationAction() */ void HbView::setNavigationAction(HbAction *action) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/gui/hbwidgetbase_p.h --- a/src/hbcore/gui/hbwidgetbase_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/gui/hbwidgetbase_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -90,13 +90,28 @@ // Does not overlap with values set in attributeToBitIndex(Qt::WidgetAttribute) case Hb::InteractionDisabled: bit = 1; break; case Hb::InsidePopup: bit = 2; break; - case Hb::InputMethodNeutral: bit = 3; break; - case Hb::Widget: bit = 4; break; + case Hb::Widget: bit = 3; break; default: break; } return bit; } + /* + In case when \a newAlign has no set vertical or horizontal part, + missing part is replaced with respective part of \a oldAlign. + */ + static inline Qt::Alignment combineAlignment (Qt::Alignment newAlign, Qt::Alignment oldAlign) + { + newAlign &= Qt::AlignVertical_Mask | Qt::AlignHorizontal_Mask; + if ((newAlign & Qt::AlignHorizontal_Mask) == 0) { + newAlign |= oldAlign & Qt::AlignHorizontal_Mask; + } + if ((newAlign & Qt::AlignVertical_Mask) == 0) { + newAlign |= oldAlign & Qt::AlignVertical_Mask; + } + return newAlign; + } + quint32 mApiProtectionFlags; quint32 attributes : 5; HbFontSpec fontSpec; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/hbcore.pro --- a/src/hbcore/hbcore.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/hbcore.pro Fri Sep 17 08:32:10 2010 +0300 @@ -133,6 +133,8 @@ LIBS += -llibOpenVGU LIBS += -lsvgengine LIBS += -llibegl + LIBS += -lNVGDecoder_SW + LIBS += -llibvgi } sgimage { INCLUDEPATH += $${EPOCROOT}epoc32/include/platform #For SGImage Support diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/common/commonstrings_en.ts --- a/src/hbcore/i18n/translations/common/commonstrings_en.ts Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ - - - - Common - - OK - - OK - - - - Cancel - - Cancel - - - - Save - - Save - - - - Open - - Open - - - - Yes - - Yes - - - - No - - No - - - - Retry - - Retry - - - - Continue - - Continue - - - - Close - - Close - - - - Help - - User guide - - - - Reset - - Reset - - - - Delete - - Delete - - - - Cut - Cut - - - Copy - Copy - - - Select - Select - - - Select all contents - Select all contents - - - Paste - Paste - - - Deselect - Deselect - - - Format - Format - - - \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ar.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ar.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ar #Open + + + + Unmute + + ar #Unmute + + + + Settings + + ar #Settings + + + + Add to folder + + ar #Add to folder + + + + Password: + + ar #Password: + + + + OK + + ar #OK + + + + User name: + + ar #User name: + + + + Cancel download + + ar #Cancel download + + + + Cut + + ar #Cut + + + + Closing + + ar #Closing + + + + Finish + + ar #Finish + + + + Registering + + ar #Registering + + + + Removing + + ar #Removing + + + + Requesting + + ar #Requesting + + + + Remove + + ar #Remove + + + + Moving + + ar #Moving + + + + Add detail + + ar #Add detail + + + + File name: + + ar #File name: + + + + Send + + ar #Send + + + + Advanced settings + + ar #Advanced settings + + + + Format + + ar #Format + + + + Add recipient + + ar #Add recipient + + + + Edit + + ar #Edit + + + + Menu + + القائمة + + + + Unmark + + إلغاء التحديد + + + + Bookmark name: + + اسم العلامة: + + + + Loudsp. on + + السماعة الخارجية تعمل + ar #Loudsp. on + + + + Move + + نقل + + + + Select all items + + تحديد كل العناصر + + + + Copy + + نسخ + + + + Disable + + تعطيل + + + + Select memory: + + اختيار ذاكرة: + + + + Retry + + إعادة المحاولة + + + + Copy to folder + + نسخ إلى حافظة + + + + Enable + + تمكين + + + + Send message + + إرسال رسالة + ar #Send msg. + + + + Add bookmark + + إضافة علامة + + + + Mute + + كتم الصوت + + + + Duration: + + المدة: + + + + Select file: + + اختيار ملف: + + + + Reset + + إعادة الضبط + + + + Done + + ar #Done + + + + Move to folder + + نقل إلى حافظة + + + + Zoom in + + ar #Zoom in + + + + Connect + + ar #Connect + + + + Call + + اتصال + + + + Clear + + مسح + + + + Current password: + + كلمة السر الحالية: + ar #Current passw.: + + + + Deselect all items + + إلغاء تحديد كل العناصر + + + + Select + + ar #Select + + + + Close + + ar #Close + + + + Saving + + جار الحفظ + + + + Loading + + جار التحميل + + + + Replace + + استبدال + + + + Start + + بدء + + + + Searching + + جار البحث + + + + Select address: + + اختيار عنوان: + ar #Select addr.: + + + + Details: + + التفاصيل: + + + + New password: + + كلمة السر الجديدة: + ar #New passw.: + + + + Select folder: + + اختيار حافظة: + + + + Reply + + رد + + + + Read + + قراءة + + + + Go to web address + + ذهاب إلى عنوان الويب + ar #Go to address + + + + Join + + انضمام + + + + Processing + + جار المعالجة + + + + Date: + + التاريخ: + + + + Help + + تعليمات + + + + Cancelling + + جار الإلغاء + + + + Deactivate loudspeaker + + إلغاء تنشيط السماعة الخارجية + ar #Deactivate loudsp. + + + + To: + + إلى: + + + + Uninstalling + + جار إلغاء التثبيت + + + + Exit + + إنهاء + + + + User ID: + + هوية المستخدم: + + + + Help + + تعليمات + + + + Uninstall + + إلغاء التثبيت + + + + Define + + تحديد + + + + Expand + + توسيع + + + + Back + + رجوع + + + + Change + + تغيير + + + + Collapse + + طي + + + + Additional details + + تفاصيل إضافية + ar #Add. details + + + + Delete + + مسح + + + + Address: + + العنوان: + + + + Forward + + إعادة إرسال + + + + Quit + + خروج + + + + Verify new password: + + تأكيد كلمة السر الجديدة: + ar #Verify new passw.: + + + + Pause + + ar #Pause + + + + Undo + + ar #Undo + + + + Video call + + ar #Video call + + + + Paste + + ar #Paste + + + + Zoom out + + تصغير + + + + Last name: + + الاسم الأخير: + + + + Reject + + رفض + + + + Fit to screen + + ملاءمة مع الشاشة + ar #Fit to scrn + + + + Answer + + رد + + + + Resume + + ar #Resume + + + + Loudsp. off + + ar #Loudsp. off + + + + Save + + ar #Save + + + + Deselect + + ar #Deselect + + + + Disconnecting + + ar #Disconnecting + + + + Select language: + + اختيار لغة: + ar #Select language: + + + + Add member + + إضافة عضو + + + + Add + + إضافة + + + + Yes + + نعم + + + + Chat + + دردشة + + + + Cancel + + إلغاء + + + + Deleting + + جار المسح + + + + Handset + + الهاتف + + + + Hide + + إخفاء + + + + Connecting + + جار الاتصال + + + + Insert + + إدراج + + + + No + + لا + + + + Inserting + + جار الإدراج + + + + Opening + + جار الفتح + + + + Phone number: + + ar #Phone number: + + + + Initialising + + جار البدء + + + + Web address: + + ar #Web address: + + + + Print + + ar #Print + + + + Deactivate + + إلغاء التنشيط + + + + Stop + + إيقاف + + + + Details + + التفاصيل + + + + Continue + + استمرار + + + + Listen + + استماع + + + + First name: + + الاسم الأول: + + + + Expires: + + ينتهي في: + + + + Adding + + جار الإضافة + + + + Verify password: + + تأكيد كلمة السر: + ar #Verify passw.: + + + + Voice call + + مكالمة صوتية + + + + Install + + تثبيت + + + + Select tone: + + اختيار نغمة: + + + + Show + + إظهار + + + + Writing language: + + لغة الكتابة: + ar #Writing language: + + + + Add thumbnail + + إضافة صورة مصغرة + + + + Disconnect + + قطع الاتصال + ar #Disconn. + + + + Title: + + ar #Title: + + + + Installing + + ar #Installing + + + + End date: + + ar #End date: + + + + Folder name: + + ar #Folder name: + + + + Activate loudspeaker + + ar #Activate loudspeaker + + + + Select all contents + + ar #Select all contents + + + + Attachments + + ar #Attachments + + + + Buffering + + جار التخزين المؤقت + + + + Time: + + الوقت: + + + + Find + + بحث + + + + Organise + + تنظيم + + + + Copying + + جار النسخ + + + + Create message + + إنشاء رسالة + ar #Create msg. + + + + Mark + + تحديد + + + + From: + + من: + + + + Add image + + ar #Add image + + + + Activate handset + + ar #Activate handset + + + + Retrieving + + ar #Retrieving + + + + Internet call + + ar #Internet call + + + + Options + + ar #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_bg.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_bg.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + bg #Open + + + + Unmute + + bg #Unmute + + + + Settings + + bg #Settings + + + + Add to folder + + bg #Add to folder + + + + Password: + + bg #Password: + + + + OK + + bg #OK + + + + User name: + + bg #User name: + + + + Cancel download + + bg #Cancel download + + + + Cut + + bg #Cut + + + + Closing + + bg #Closing + + + + Finish + + bg #Finish + + + + Registering + + bg #Registering + + + + Removing + + bg #Removing + + + + Requesting + + bg #Requesting + + + + Remove + + bg #Remove + + + + Moving + + bg #Moving + + + + Add detail + + bg #Add detail + + + + File name: + + bg #File name: + + + + Send + + bg #Send + + + + Advanced settings + + bg #Advanced settings + + + + Format + + bg #Format + + + + Add recipient + + bg #Add recipient + + + + Edit + + bg #Edit + + + + Menu + + Меню + + + + Unmark + + Демаркиране + + + + Bookmark name: + + Име на маркера: + + + + Loudsp. on + + Високоговорител включен + bg #Loudsp. on + + + + Move + + Преместване + + + + Select all items + + Избор всички елементи + + + + Copy + + Копиране + + + + Disable + + Изключване + + + + Select memory: + + Избор на памет: + + + + Retry + + Повтаряне + + + + Copy to folder + + Копиране в папка + + + + Enable + + Активиране + + + + Send message + + Изпращане на съобщение + bg #Send msg. + + + + Add bookmark + + Добавяне на маркер + + + + Mute + + Без звук + + + + Duration: + + Времетраене: + + + + Select file: + + Избор на файл: + + + + Reset + + Нулиране + + + + Done + + bg #Done + + + + Move to folder + + Преместване в папка + + + + Zoom in + + bg #Zoom in + + + + Connect + + bg #Connect + + + + Call + + Повикай + + + + Clear + + Изтриване + + + + Current password: + + Настояща парола: + bg #Current passw.: + + + + Deselect all items + + Край избор вс.елементи + + + + Select + + bg #Select + + + + Close + + bg #Close + + + + Saving + + Запаметяване + + + + Loading + + Зареждане + + + + Replace + + Замяна + + + + Start + + Старт + + + + Searching + + Търсене + + + + Select address: + + Избор на адрес: + bg #Select addr.: + + + + Details: + + Детайли: + + + + New password: + + Нова парола: + bg #New passw.: + + + + Select folder: + + Избор на папка: + + + + Reply + + Отговор + + + + Read + + Четене + + + + Go to web address + + Отидете на уеб адрес + bg #Go to address + + + + Join + + Влизане + + + + Processing + + Обработване + + + + Date: + + Дата: + + + + Help + + Помощ + + + + Cancelling + + Отменяне + + + + Deactivate loudspeaker + + Деактивиране на високоговорител + bg #Deactivate loudsp. + + + + To: + + До: + + + + Uninstalling + + Деинсталиране + + + + Exit + + Изход + + + + User ID: + + Потребителски ИД: + + + + Help + + Помощ + + + + Uninstall + + Деинсталиране + + + + Define + + Определяне + + + + Expand + + Разширяване + + + + Back + + Назад + + + + Change + + Промяна + + + + Collapse + + Свиване + + + + Additional details + + Допълнителни детайли + bg #Add. details + + + + Delete + + Изтриване + + + + Address: + + Адрес: + + + + Forward + + Напред + + + + Quit + + Прекратяване + + + + Verify new password: + + Потвърждаване на нова парола: + bg #Verify new passw.: + + + + Pause + + bg #Pause + + + + Undo + + bg #Undo + + + + Video call + + bg #Video call + + + + Paste + + bg #Paste + + + + Zoom out + + Намаляване + + + + Last name: + + Фамилия: + + + + Reject + + Отхвърляне + + + + Fit to screen + + Размер като на екрана + bg #Fit to scrn + + + + Answer + + Отговаряне + + + + Resume + + bg #Resume + + + + Loudsp. off + + bg #Loudsp. off + + + + Save + + bg #Save + + + + Deselect + + bg #Deselect + + + + Disconnecting + + bg #Disconnecting + + + + Select language: + + Избор на език: + bg #Select language: + + + + Add member + + Добавяне на член + + + + Add + + Добавяне + + + + Yes + + Да + + + + Chat + + Лафче + + + + Cancel + + Отмяна + + + + Deleting + + Изтриване + + + + Handset + + Апарат + + + + Hide + + Скриване + + + + Connecting + + Свързване + + + + Insert + + Вмъкване + + + + No + + Не + + + + Inserting + + Вмъкване + + + + Opening + + Отваряне + + + + Phone number: + + bg #Phone number: + + + + Initialising + + Инициализиране + + + + Web address: + + bg #Web address: + + + + Print + + bg #Print + + + + Deactivate + + Деактивиране + + + + Stop + + Стоп + + + + Details + + Детайли + + + + Continue + + Продължаване + + + + Listen + + Слушане + + + + First name: + + Име: + + + + Expires: + + Изтича на: + + + + Adding + + Добавяне + + + + Verify password: + + Потвърждаване на парола: + bg #Verify passw.: + + + + Voice call + + Гласово повикване + + + + Install + + Инсталиране + + + + Select tone: + + Избор на тон: + + + + Show + + Показване + + + + Writing language: + + Език на писане: + bg #Writing language: + + + + Add thumbnail + + Добавяне на иконка + + + + Disconnect + + Прекъсване на връзка + bg #Disconn. + + + + Title: + + bg #Title: + + + + Installing + + bg #Installing + + + + End date: + + bg #End date: + + + + Folder name: + + bg #Folder name: + + + + Activate loudspeaker + + bg #Activate loudspeaker + + + + Select all contents + + bg #Select all contents + + + + Attachments + + bg #Attachments + + + + Buffering + + Буфериране + + + + Time: + + Час: + + + + Find + + Намиране + + + + Organise + + Подреждане + + + + Copying + + Копиране + + + + Create message + + Създаване на съобщение + bg #Create msg. + + + + Mark + + Маркиране + + + + From: + + От: + + + + Add image + + bg #Add image + + + + Activate handset + + bg #Activate handset + + + + Retrieving + + bg #Retrieving + + + + Internet call + + bg #Internet call + + + + Options + + bg #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ca.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ca.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ca #Open + + + + Unmute + + ca #Unmute + + + + Settings + + ca #Settings + + + + Add to folder + + ca #Add to folder + + + + Password: + + ca #Password: + + + + OK + + ca #OK + + + + User name: + + ca #User name: + + + + Cancel download + + ca #Cancel download + + + + Cut + + ca #Cut + + + + Closing + + ca #Closing + + + + Finish + + ca #Finish + + + + Registering + + ca #Registering + + + + Removing + + ca #Removing + + + + Requesting + + ca #Requesting + + + + Remove + + ca #Remove + + + + Moving + + ca #Moving + + + + Add detail + + ca #Add detail + + + + File name: + + ca #File name: + + + + Send + + ca #Send + + + + Advanced settings + + ca #Advanced settings + + + + Format + + ca #Format + + + + Add recipient + + ca #Add recipient + + + + Edit + + ca #Edit + + + + Menu + + Menú + + + + Unmark + + Desmarca + + + + Bookmark name: + + Nom de l'adreça d'interès: + + + + Loudsp. on + + Altaveu actiu + ca #Loudsp. on + + + + Move + + Desplaça + + + + Select all items + + Selecciona tots els elements + + + + Copy + + Copia + + + + Disable + + Desactiva + + + + Select memory: + + Selecciona memòria: + + + + Retry + + Torna-ho a intentar + + + + Copy to folder + + Copia a la carpeta + + + + Enable + + Activa + + + + Send message + + Envia missatge + ca #Send msg. + + + + Add bookmark + + Afegeix l'adreça d'interès + + + + Mute + + Silencia + + + + Duration: + + Duració: + + + + Select file: + + Selecciona fitxer: + + + + Reset + + Restableix + + + + Done + + ca #Done + + + + Move to folder + + Desplaça a la carpeta + + + + Zoom in + + ca #Zoom in + + + + Connect + + ca #Connect + + + + Call + + Truca + + + + Clear + + Esborra + + + + Current password: + + Contrasenya actual: + ca #Current passw.: + + + + Deselect all items + + Cancel·la selecció de tots els elements + + + + Select + + ca #Select + + + + Close + + ca #Close + + + + Saving + + S'està desant + + + + Loading + + S'està carregant + + + + Replace + + Substitueix + + + + Start + + Inicia + + + + Searching + + S'està cercant + + + + Select address: + + Selecciona adreça: + ca #Select addr.: + + + + Details: + + Detalls: + + + + New password: + + Contrasenya nova: + ca #New passw.: + + + + Select folder: + + Selecciona carpeta: + + + + Reply + + Respon + + + + Read + + Llegeix + + + + Go to web address + + Vés a l'adreça web + ca #Go to address + + + + Join + + Uneix-t'hi + + + + Processing + + S'està processant + + + + Date: + + Data: + + + + Help + + Ajuda + + + + Cancelling + + S'està cancel·lant + + + + Deactivate loudspeaker + + Desactiva l'altaveu + ca #Deactivate loudsp. + + + + To: + + A: + + + + Uninstalling + + S'està desinstal·lant + + + + Exit + + Surt + + + + User ID: + + Identificació d'usuari: + + + + Help + + Ajuda + + + + Uninstall + + Desinstal·la + + + + Define + + Defineix + + + + Expand + + Expandeix + + + + Back + + Enrere + + + + Change + + Canvia + + + + Collapse + + Redueix + + + + Additional details + + Detalls addicionals + ca #Add. details + + + + Delete + + Suprimeix + + + + Address: + + Adreça: + + + + Forward + + Reenvia + + + + Quit + + Surt + + + + Verify new password: + + Confirma la contrasenya nova: + ca #Verify new passw.: + + + + Pause + + ca #Pause + + + + Undo + + ca #Undo + + + + Video call + + ca #Video call + + + + Paste + + ca #Paste + + + + Zoom out + + Allunya't + + + + Last name: + + Cognom: + + + + Reject + + Rebutja + + + + Fit to screen + + Ajusta a la pantalla + ca #Fit to scrn + + + + Answer + + Respon + + + + Resume + + ca #Resume + + + + Loudsp. off + + ca #Loudsp. off + + + + Save + + ca #Save + + + + Deselect + + ca #Deselect + + + + Disconnecting + + ca #Disconnecting + + + + Select language: + + Selecciona idioma: + ca #Select language: + + + + Add member + + Afegeix un membre + + + + Add + + Afegeix + + + + Yes + + + + + + Chat + + Conversa + + + + Cancel + + Cancel·la + + + + Deleting + + S'està suprimint + + + + Handset + + Telèfon + + + + Hide + + Amaga + + + + Connecting + + S'està connectant + + + + Insert + + Insereix + + + + No + + No + + + + Inserting + + S'està inserint + + + + Opening + + S'està obrint + + + + Phone number: + + ca #Phone number: + + + + Initialising + + S'està inicialitzant + + + + Web address: + + ca #Web address: + + + + Print + + ca #Print + + + + Deactivate + + Desactiva + + + + Stop + + Atura + + + + Details + + Detalls + + + + Continue + + Continua + + + + Listen + + Escolta + + + + First name: + + Nom: + + + + Expires: + + Caduca: + + + + Adding + + S'està afegint + + + + Verify password: + + Confirma la contrasenya: + ca #Verify passw.: + + + + Voice call + + Trucada de veu + + + + Install + + Instal·la-ho + + + + Select tone: + + Selecciona so: + + + + Show + + Mostra + + + + Writing language: + + Idioma d'escriptura: + ca #Writing language: + + + + Add thumbnail + + Afegeix una miniatura + + + + Disconnect + + Desconnecta't + ca #Disconn. + + + + Title: + + ca #Title: + + + + Installing + + ca #Installing + + + + End date: + + ca #End date: + + + + Folder name: + + ca #Folder name: + + + + Activate loudspeaker + + ca #Activate loudspeaker + + + + Select all contents + + ca #Select all contents + + + + Attachments + + ca #Attachments + + + + Buffering + + S'està copiant a la memòria intermèdia + + + + Time: + + Hora: + + + + Find + + Cerca + + + + Organise + + Organitza + + + + Copying + + S'està copiant + + + + Create message + + Crea missatge + ca #Create msg. + + + + Mark + + Marca-ho + + + + From: + + Des de: + + + + Add image + + ca #Add image + + + + Activate handset + + ca #Activate handset + + + + Retrieving + + ca #Retrieving + + + + Internet call + + ca #Internet call + + + + Options + + ca #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_cs.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_cs.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + cs #Open + + + + Unmute + + cs #Unmute + + + + Settings + + cs #Settings + + + + Add to folder + + cs #Add to folder + + + + Password: + + cs #Password: + + + + OK + + cs #OK + + + + User name: + + cs #User name: + + + + Cancel download + + cs #Cancel download + + + + Cut + + cs #Cut + + + + Closing + + cs #Closing + + + + Finish + + cs #Finish + + + + Registering + + cs #Registering + + + + Removing + + cs #Removing + + + + Requesting + + cs #Requesting + + + + Remove + + cs #Remove + + + + Moving + + cs #Moving + + + + Add detail + + cs #Add detail + + + + File name: + + cs #File name: + + + + Send + + cs #Send + + + + Advanced settings + + cs #Advanced settings + + + + Format + + cs #Format + + + + Add recipient + + cs #Add recipient + + + + Edit + + cs #Edit + + + + Menu + + Menu + + + + Unmark + + Zrušit označení + + + + Bookmark name: + + Název záložky: + + + + Loudsp. on + + Zapnout reproduktor + cs #Loudsp. on + + + + Move + + Přesunout + + + + Select all items + + Zvolit všechny položky + + + + Copy + + Kopírovat + + + + Disable + + Zakázat + + + + Select memory: + + Zvolte paměť: + + + + Retry + + Opakovat + + + + Copy to folder + + Kopírovat do složky + + + + Enable + + Povolit + + + + Send message + + Odeslat zprávu + cs #Send msg. + + + + Add bookmark + + Přidat záložku + + + + Mute + + Vypnout mikrofon + + + + Duration: + + Délka: + + + + Select file: + + Zvolte soubor: + + + + Reset + + Vynulovat + + + + Done + + cs #Done + + + + Move to folder + + Přesunout do složky + + + + Zoom in + + cs #Zoom in + + + + Connect + + cs #Connect + + + + Call + + Volat + + + + Clear + + Vymazat + + + + Current password: + + Stávající heslo: + cs #Current passw.: + + + + Deselect all items + + Zrušit výběr všech položek + + + + Select + + cs #Select + + + + Close + + cs #Close + + + + Saving + + Ukládá se + + + + Loading + + Načítá se + + + + Replace + + Nahradit + + + + Start + + Spustit + + + + Searching + + Hledá se + + + + Select address: + + Zvolte adresu: + cs #Select addr.: + + + + Details: + + Detaily: + + + + New password: + + Nové heslo: + cs #New passw.: + + + + Select folder: + + Zvolte složku: + + + + Reply + + Odpovědět + + + + Read + + Číst + + + + Go to web address + + Jít na webovou adresu + cs #Go to address + + + + Join + + Připojit se + + + + Processing + + Zpracovává se + + + + Date: + + Datum: + + + + Help + + Nápověda + + + + Cancelling + + Ruší se + + + + Deactivate loudspeaker + + Deaktivovat reproduktor + cs #Deactivate loudsp. + + + + To: + + Do: + + + + Uninstalling + + Odinstaluje se + + + + Exit + + Konec + + + + User ID: + + ID uživatele: + + + + Help + + Nápověda + + + + Uninstall + + Odinstalovat + + + + Define + + Definovat + + + + Expand + + Rozbalit + + + + Back + + Zpět + + + + Change + + Změnit + + + + Collapse + + Sbalit + + + + Additional details + + Další detaily + cs #Add. details + + + + Delete + + Odstranit + + + + Address: + + Adresa: + + + + Forward + + Poslat dál + + + + Quit + + Ukončit + + + + Verify new password: + + Ověřte nové heslo: + cs #Verify new passw.: + + + + Pause + + cs #Pause + + + + Undo + + cs #Undo + + + + Video call + + cs #Video call + + + + Paste + + cs #Paste + + + + Zoom out + + Zmenšit + + + + Last name: + + Příjmení: + + + + Reject + + Odmítnout + + + + Fit to screen + + Přizpůsobit obrazovce + cs #Fit to scrn + + + + Answer + + Přijmout + + + + Resume + + cs #Resume + + + + Loudsp. off + + cs #Loudsp. off + + + + Save + + cs #Save + + + + Deselect + + cs #Deselect + + + + Disconnecting + + cs #Disconnecting + + + + Select language: + + Zvolte jazyk: + cs #Select language: + + + + Add member + + Přidat člena + + + + Add + + Přidat + + + + Yes + + Ano + + + + Chat + + Chat + + + + Cancel + + Zrušit + + + + Deleting + + Odstraňuje se + + + + Handset + + Telefon + + + + Hide + + Skrýt + + + + Connecting + + Připojuje se + + + + Insert + + Vložit + + + + No + + Ne + + + + Inserting + + Vkládá se + + + + Opening + + Otevírá se + + + + Phone number: + + cs #Phone number: + + + + Initialising + + Inicializuje se + + + + Web address: + + cs #Web address: + + + + Print + + cs #Print + + + + Deactivate + + Deaktivovat + + + + Stop + + Stop + + + + Details + + Detaily + + + + Continue + + Pokračovat + + + + Listen + + Poslechnout + + + + First name: + + Jméno: + + + + Expires: + + Platnost do: + + + + Adding + + Přidává se + + + + Verify password: + + Ověřte heslo: + cs #Verify passw.: + + + + Voice call + + Hlasový hovor + + + + Install + + Instalovat + + + + Select tone: + + Zvolte tón: + + + + Show + + Zobrazit + + + + Writing language: + + Jazyk psaní: + cs #Writing language: + + + + Add thumbnail + + Přidat náhled + + + + Disconnect + + Odpojit + cs #Disconn. + + + + Title: + + cs #Title: + + + + Installing + + cs #Installing + + + + End date: + + cs #End date: + + + + Folder name: + + cs #Folder name: + + + + Activate loudspeaker + + cs #Activate loudspeaker + + + + Select all contents + + cs #Select all contents + + + + Attachments + + cs #Attachments + + + + Buffering + + Ukládají se data do vyrovnávací paměti + + + + Time: + + Čas: + + + + Find + + Najít + + + + Organise + + Uspořádat + + + + Copying + + Kopíruje se + + + + Create message + + Vytvořit zprávu + cs #Create msg. + + + + Mark + + Označit + + + + From: + + Od: + + + + Add image + + cs #Add image + + + + Activate handset + + cs #Activate handset + + + + Retrieving + + cs #Retrieving + + + + Internet call + + cs #Internet call + + + + Options + + cs #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_da.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_da.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + da #Open + + + + Unmute + + da #Unmute + + + + Settings + + da #Settings + + + + Add to folder + + da #Add to folder + + + + Password: + + da #Password: + + + + OK + + da #OK + + + + User name: + + da #User name: + + + + Cancel download + + da #Cancel download + + + + Cut + + da #Cut + + + + Closing + + da #Closing + + + + Finish + + da #Finish + + + + Registering + + da #Registering + + + + Removing + + da #Removing + + + + Requesting + + da #Requesting + + + + Remove + + da #Remove + + + + Moving + + da #Moving + + + + Add detail + + da #Add detail + + + + File name: + + da #File name: + + + + Send + + da #Send + + + + Advanced settings + + da #Advanced settings + + + + Format + + da #Format + + + + Add recipient + + da #Add recipient + + + + Edit + + da #Edit + + + + Menu + + Menu + + + + Unmark + + Fjern markering + + + + Bookmark name: + + Navn på bogmærke: + + + + Loudsp. on + + Højttaler til + da #Loudsp. on + + + + Move + + Flyt + + + + Select all items + + Vælg alle elementer + + + + Copy + + Kopiér + + + + Disable + + Deaktiver + + + + Select memory: + + Vælg hukommelse: + + + + Retry + + Prøv igen + + + + Copy to folder + + Kopiér til mappe + + + + Enable + + Aktivér + + + + Send message + + Send besked + da #Send msg. + + + + Add bookmark + + Tilføj bogmærke + + + + Mute + + Lyd fra + + + + Duration: + + Varighed: + + + + Select file: + + Vælg fil: + + + + Reset + + Nulstil + + + + Done + + da #Done + + + + Move to folder + + Flyt til mappe + + + + Zoom in + + da #Zoom in + + + + Connect + + da #Connect + + + + Call + + Ring op + + + + Clear + + Ryd + + + + Current password: + + Nuværende adgangskode: + da #Current passw.: + + + + Deselect all items + + Fravælg alle elementer + + + + Select + + da #Select + + + + Close + + da #Close + + + + Saving + + Gemmer + + + + Loading + + Indlæser + + + + Replace + + Erstat + + + + Start + + Start + + + + Searching + + Søger + + + + Select address: + + Vælg adresse: + da #Select addr.: + + + + Details: + + Detaljer: + + + + New password: + + Ny adgangskode: + da #New passw.: + + + + Select folder: + + Vælg mappe: + + + + Reply + + Besvar + + + + Read + + Læs + + + + Go to web address + + Gå til webadresse + da #Go to address + + + + Join + + Slut til + + + + Processing + + Behandler + + + + Date: + + Dato: + + + + Help + + Hjælp + + + + Cancelling + + Annullerer + + + + Deactivate loudspeaker + + Deaktiver højttaler + da #Deactivate loudsp. + + + + To: + + Til: + + + + Uninstalling + + Fjerner + + + + Exit + + Afslut + + + + User ID: + + Bruger-id: + + + + Help + + Hjælp + + + + Uninstall + + Fjern + + + + Define + + Angiv + + + + Expand + + Udvid + + + + Back + + Tilbage + + + + Change + + Skift + + + + Collapse + + Skjul + + + + Additional details + + Flere detaljer + da #Add. details + + + + Delete + + Slet + + + + Address: + + Adresse: + + + + Forward + + Videresend + + + + Quit + + Afslut + + + + Verify new password: + + Bekræft ny adgangskode: + da #Verify new passw.: + + + + Pause + + da #Pause + + + + Undo + + da #Undo + + + + Video call + + da #Video call + + + + Paste + + da #Paste + + + + Zoom out + + Zoom ud + + + + Last name: + + Efternavn: + + + + Reject + + Afvis + + + + Fit to screen + + Tilpas til skærm + da #Fit to scrn + + + + Answer + + Besvar + + + + Resume + + da #Resume + + + + Loudsp. off + + da #Loudsp. off + + + + Save + + da #Save + + + + Deselect + + da #Deselect + + + + Disconnecting + + da #Disconnecting + + + + Select language: + + Vælg sprog: + da #Select language: + + + + Add member + + Tilføj medlem + + + + Add + + Tilføj + + + + Yes + + Ja + + + + Chat + + Chat + + + + Cancel + + Annuller + + + + Deleting + + Sletter + + + + Handset + + Håndsæt + + + + Hide + + Skjul + + + + Connecting + + Opretter forbindelse + + + + Insert + + Indsæt + + + + No + + Nej + + + + Inserting + + Indsætter + + + + Opening + + Åbner + + + + Phone number: + + da #Phone number: + + + + Initialising + + Initialiserer + + + + Web address: + + da #Web address: + + + + Print + + da #Print + + + + Deactivate + + Deaktiver + + + + Stop + + Stop + + + + Details + + Detaljer + + + + Continue + + Fortsæt + + + + Listen + + Aflyt + + + + First name: + + Fornavn: + + + + Expires: + + Udløber: + + + + Adding + + Tilføjer + + + + Verify password: + + Bekræft adgangskode: + da #Verify passw.: + + + + Voice call + + Taleopkald + + + + Install + + Installer + + + + Select tone: + + Vælg tone: + + + + Show + + Vis + + + + Writing language: + + Skriftsprog: + da #Writing language: + + + + Add thumbnail + + Tilføj miniaturebillede + + + + Disconnect + + Afbryd forbindelsen + da #Disconn. + + + + Title: + + da #Title: + + + + Installing + + da #Installing + + + + End date: + + da #End date: + + + + Folder name: + + da #Folder name: + + + + Activate loudspeaker + + da #Activate loudspeaker + + + + Select all contents + + da #Select all contents + + + + Attachments + + da #Attachments + + + + Buffering + + Gemmer i buffer + + + + Time: + + Tid: + + + + Find + + Søg + + + + Organise + + Organiser + + + + Copying + + Kopierer + + + + Create message + + Opret besked + da #Create msg. + + + + Mark + + Markér + + + + From: + + Fra: + + + + Add image + + da #Add image + + + + Activate handset + + da #Activate handset + + + + Retrieving + + da #Retrieving + + + + Internet call + + da #Internet call + + + + Options + + da #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_de.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_de.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + de #Open + + + + Unmute + + de #Unmute + + + + Settings + + de #Settings + + + + Add to folder + + de #Add to folder + + + + Password: + + de #Password: + + + + OK + + de #OK + + + + User name: + + de #User name: + + + + Cancel download + + de #Cancel download + + + + Cut + + de #Cut + + + + Closing + + de #Closing + + + + Finish + + de #Finish + + + + Registering + + de #Registering + + + + Removing + + de #Removing + + + + Requesting + + de #Requesting + + + + Remove + + de #Remove + + + + Moving + + de #Moving + + + + Add detail + + de #Add detail + + + + File name: + + de #File name: + + + + Send + + de #Send + + + + Advanced settings + + de #Advanced settings + + + + Format + + de #Format + + + + Add recipient + + de #Add recipient + + + + Edit + + de #Edit + + + + Menu + + Menü + + + + Unmark + + Markierung aufheben + + + + Bookmark name: + + Name des Lesezeichens: + + + + Loudsp. on + + Lautsprecher ein + de #Loudsp. on + + + + Move + + Verschieben + + + + Select all items + + Alle Objekte auswählen + + + + Copy + + Kopieren + + + + Disable + + Deaktivieren + + + + Select memory: + + Speicher auswählen: + + + + Retry + + Wiederholen + + + + Copy to folder + + In Ordner kopieren + + + + Enable + + Aktivieren + + + + Send message + + Mitteilung senden + de #Send msg. + + + + Add bookmark + + Lesezeichen hinzufügen + + + + Mute + + Ton aus + + + + Duration: + + Dauer: + + + + Select file: + + Datei auswählen: + + + + Reset + + Zurücksetzen + + + + Done + + de #Done + + + + Move to folder + + In Ordner verschieben + + + + Zoom in + + de #Zoom in + + + + Connect + + de #Connect + + + + Call + + Anrufen + + + + Clear + + Zurücksetzen + + + + Current password: + + Derzeitiges Passwort: + de #Current passw.: + + + + Deselect all items + + Gesamte Auswahl aufheben + + + + Select + + de #Select + + + + Close + + de #Close + + + + Saving + + Objekt wird gespeichert + + + + Loading + + Objekt wird geladen + + + + Replace + + Ersetzen + + + + Start + + Start + + + + Searching + + Suche läuft + + + + Select address: + + Adresse auswählen: + de #Select addr.: + + + + Details: + + Details: + + + + New password: + + Neues Passwort: + de #New passw.: + + + + Select folder: + + Ordner auswählen: + + + + Reply + + Antworten + + + + Read + + Lesen + + + + Go to web address + + Web-Adresse öffnen + de #Go to address + + + + Join + + Teilnehmen + + + + Processing + + Vorgang läuft + + + + Date: + + Datum: + + + + Help + + Hilfe + + + + Cancelling + + Abbruch läuft + + + + Deactivate loudspeaker + + Lautsprecher deaktivieren + de #Deactivate loudsp. + + + + To: + + Bis: + + + + Uninstalling + + Deinstallation läuft + + + + Exit + + Schließen + + + + User ID: + + Benutzerkennung: + + + + Help + + Hilfe + + + + Uninstall + + Deinstallieren + + + + Define + + Definieren + + + + Expand + + Maximieren + + + + Back + + Zurück + + + + Change + + Ändern + + + + Collapse + + Minimieren + + + + Additional details + + Mehr Details + de #Add. details + + + + Delete + + Löschen + + + + Address: + + Adresse: + + + + Forward + + Weiterleiten + + + + Quit + + Beenden + + + + Verify new password: + + Neues Passwort bestätigen: + de #Verify new passw.: + + + + Pause + + de #Pause + + + + Undo + + de #Undo + + + + Video call + + de #Video call + + + + Paste + + de #Paste + + + + Zoom out + + Verkleinern + + + + Last name: + + Nachname: + + + + Reject + + Ablehnen + + + + Fit to screen + + An Bildschirm anpassen + de #Fit to scrn + + + + Answer + + Antworten + + + + Resume + + de #Resume + + + + Loudsp. off + + de #Loudsp. off + + + + Save + + de #Save + + + + Deselect + + de #Deselect + + + + Disconnecting + + de #Disconnecting + + + + Select language: + + Sprache auswählen: + de #Select language: + + + + Add member + + Teilnehmer hinzufügen + + + + Add + + Hinzufügen + + + + Yes + + Ja + + + + Chat + + Chat + + + + Cancel + + Abbruch + + + + Deleting + + Objekt wird gelöscht + + + + Handset + + Telefon + + + + Hide + + Verbergen + + + + Connecting + + Verbindung wird aufgebaut + + + + Insert + + Einfügen + + + + No + + Nein + + + + Inserting + + Objekt wird eingefügt + + + + Opening + + Objekt wird geöffnet + + + + Phone number: + + de #Phone number: + + + + Initialising + + Initialisierung läuft + + + + Web address: + + de #Web address: + + + + Print + + de #Print + + + + Deactivate + + Deaktivieren + + + + Stop + + Stopp + + + + Details + + Details + + + + Continue + + Fortfahren + + + + Listen + + Anhören + + + + First name: + + Vorname: + + + + Expires: + + Gültig bis: + + + + Adding + + Objekt wird hinzugefügt + + + + Verify password: + + Passwort bestätigen: + de #Verify passw.: + + + + Voice call + + Sprachanruf + + + + Install + + Installieren + + + + Select tone: + + Ton auswählen: + + + + Show + + Zeigen + + + + Writing language: + + Eingabesprache: + de #Writing language: + + + + Add thumbnail + + Mini-Foto hinzufügen + + + + Disconnect + + Verbindung trennen + de #Disconn. + + + + Title: + + de #Title: + + + + Installing + + de #Installing + + + + End date: + + de #End date: + + + + Folder name: + + de #Folder name: + + + + Activate loudspeaker + + de #Activate loudspeaker + + + + Select all contents + + de #Select all contents + + + + Attachments + + de #Attachments + + + + Buffering + + Pufferung + + + + Time: + + Uhrzeit: + + + + Find + + Suchen + + + + Organise + + Ordnen + + + + Copying + + Objekt wird kopiert + + + + Create message + + Mitteilung verfassen + de #Create msg. + + + + Mark + + Markieren + + + + From: + + Von: + + + + Add image + + de #Add image + + + + Activate handset + + de #Activate handset + + + + Retrieving + + de #Retrieving + + + + Internet call + + de #Internet call + + + + Options + + de #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_el.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_el.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + el #Open + + + + Unmute + + el #Unmute + + + + Settings + + el #Settings + + + + Add to folder + + el #Add to folder + + + + Password: + + el #Password: + + + + OK + + el #OK + + + + User name: + + el #User name: + + + + Cancel download + + el #Cancel download + + + + Cut + + el #Cut + + + + Closing + + el #Closing + + + + Finish + + el #Finish + + + + Registering + + el #Registering + + + + Removing + + el #Removing + + + + Requesting + + el #Requesting + + + + Remove + + el #Remove + + + + Moving + + el #Moving + + + + Add detail + + el #Add detail + + + + File name: + + el #File name: + + + + Send + + el #Send + + + + Advanced settings + + el #Advanced settings + + + + Format + + el #Format + + + + Add recipient + + el #Add recipient + + + + Edit + + el #Edit + + + + Menu + + Μενού + + + + Unmark + + Εξαίρεση + + + + Bookmark name: + + Όνομα σελιδοδείκτη: + + + + Loudsp. on + + Ενεργοποίηση μεγαφώνου + el #Loudsp. on + + + + Move + + Μετακίνηση + + + + Select all items + + Επιλογή όλων των στοιχείων + + + + Copy + + Αντιγραφή + + + + Disable + + Απενεργοποίηση + + + + Select memory: + + Επιλογή μνήμης: + + + + Retry + + Επανάληψη + + + + Copy to folder + + Αντιγραφή σε φάκελο + + + + Enable + + Ενεργοποίηση + + + + Send message + + Αποστολή μηνύματος + el #Send msg. + + + + Add bookmark + + Προσθήκη σελιδοδείκτη + + + + Mute + + Σίγαση + + + + Duration: + + Διάρκεια: + + + + Select file: + + Επιλογή αρχείου: + + + + Reset + + Μηδενισμός + + + + Done + + el #Done + + + + Move to folder + + Μετακίνηση σε φάκελο + + + + Zoom in + + el #Zoom in + + + + Connect + + el #Connect + + + + Call + + Κλήση + + + + Clear + + Σβήσιμο + + + + Current password: + + Ισχύων κωδικός πρόσβασης: + el #Current passw.: + + + + Deselect all items + + Αποεπιλογή όλων των στοιχείων + + + + Select + + el #Select + + + + Close + + el #Close + + + + Saving + + Αποθήκευση… + + + + Loading + + Φόρτωση… + + + + Replace + + Αντικατάσταση + + + + Start + + Έναρξη + + + + Searching + + Αναζήτηση… + + + + Select address: + + Επιλογή διεύθυνσης: + el #Select addr.: + + + + Details: + + Στοιχεία: + + + + New password: + + Νέος κωδικός πρόσβασης: + el #New passw.: + + + + Select folder: + + Επιλογή φακέλου: + + + + Reply + + Απάντηση + + + + Read + + Ανάγνωση + + + + Go to web address + + Μετάβαση στη δ/νση Ιστού + el #Go to address + + + + Join + + Συμμετοχή + + + + Processing + + Επεξεργασία… + + + + Date: + + Ημερομηνία: + + + + Help + + Βοήθεια + + + + Cancelling + + Ακύρωση… + + + + Deactivate loudspeaker + + Απενεργοποίηση μεγαφώνου + el #Deactivate loudsp. + + + + To: + + Έως: + + + + Uninstalling + + Κατάργηση εγκατάστασης… + + + + Exit + + Έξοδος + + + + User ID: + + Αναγνωριστικό χρήστη: + + + + Help + + Βοήθεια + + + + Uninstall + + Απεγκατάσταση + + + + Define + + Ορισμός + + + + Expand + + Ανάπτυξη + + + + Back + + Πϊσω + + + + Change + + Αλλαγή + + + + Collapse + + Σύμπτυξη + + + + Additional details + + Επιπλέον στοιχεία + el #Add. details + + + + Delete + + Διαγραφή + + + + Address: + + Διεύθυνση: + + + + Forward + + Προώθηση + + + + Quit + + Έξοδος + + + + Verify new password: + + Επαλήθευση νέου κωδικού πρόσβασης: + el #Verify new passw.: + + + + Pause + + el #Pause + + + + Undo + + el #Undo + + + + Video call + + el #Video call + + + + Paste + + el #Paste + + + + Zoom out + + Σμίκρυνση + + + + Last name: + + Επώνυμο: + + + + Reject + + Απόρριψη + + + + Fit to screen + + Προσαρμογή στην οθόνη + el #Fit to scrn + + + + Answer + + Απάντηση + + + + Resume + + el #Resume + + + + Loudsp. off + + el #Loudsp. off + + + + Save + + el #Save + + + + Deselect + + el #Deselect + + + + Disconnecting + + el #Disconnecting + + + + Select language: + + Επιλογή γλώσσας: + el #Select language: + + + + Add member + + Προσθήκη μέλους + + + + Add + + Προσθήκη + + + + Yes + + Ναι + + + + Chat + + Συνομιλία + + + + Cancel + + Ακύρωση + + + + Deleting + + Διαγραφή… + + + + Handset + + Συσκευή + + + + Hide + + Απόκρυψη + + + + Connecting + + Σύνδεση… + + + + Insert + + Εισαγωγή + + + + No + + Όχι + + + + Inserting + + Εισαγωγή… + + + + Opening + + Άνοιγμα… + + + + Phone number: + + el #Phone number: + + + + Initialising + + Εκκίνηση… + + + + Web address: + + el #Web address: + + + + Print + + el #Print + + + + Deactivate + + Απενεργοποίηση + + + + Stop + + Διακοπή + + + + Details + + Στοιχεία + + + + Continue + + Συνέχεια + + + + Listen + + Ακρόαση + + + + First name: + + Όνομα: + + + + Expires: + + Λήξη: + + + + Adding + + Προθήκη… + + + + Verify password: + + Επαλήθευση κωδικού πρόσβασης: + el #Verify passw.: + + + + Voice call + + Κλήση ομιλίας + + + + Install + + Εγκατάσταση + + + + Select tone: + + Επιλογή ήχου: + + + + Show + + Εμφάνιση + + + + Writing language: + + Γλώσσα γραφής: + el #Writing language: + + + + Add thumbnail + + Προσθήκη μικρογραφίας + + + + Disconnect + + Αποσύνδεση + el #Disconn. + + + + Title: + + el #Title: + + + + Installing + + el #Installing + + + + End date: + + el #End date: + + + + Folder name: + + el #Folder name: + + + + Activate loudspeaker + + el #Activate loudspeaker + + + + Select all contents + + el #Select all contents + + + + Attachments + + el #Attachments + + + + Buffering + + Προσωρινή αποθήκευση… + + + + Time: + + Ώρα: + + + + Find + + Εύρεση + + + + Organise + + Οργάνωση + + + + Copying + + Αντιγραφή… + + + + Create message + + Δημιουργία μηνύματος + el #Create msg. + + + + Mark + + Επιλογή + + + + From: + + Από: + + + + Add image + + el #Add image + + + + Activate handset + + el #Activate handset + + + + Retrieving + + el #Retrieving + + + + Internet call + + el #Internet call + + + + Options + + el #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_en.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_en.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,949 @@ + + + + nString + + Open + + en #Open + + + + Unmute + + en #Unmute + + + + Settings + + en #Settings + + + + Add to folder + + en #Add to folder + + + + Password: + + en #Password: + + + + OK + + OK + + + + User name: + + en #User name: + + + + Cancel download + + en #Cancel download + + + + Cut + + en #Cut + + + + Closing + + en #Closing + + + + Finish + + en #Finish + + + + Registering + + en #Registering + + + + Removing + + en #Removing + + + + Requesting + + en #Requesting + + + + Remove + + en #Remove + + + + Moving + + en #Moving + + + + Add detail + + en #Add detail + + + + File name: + + en #File name: + + + + Send + + en #Send + + + + Advanced settings + + en #Advanced settings + + + + Format + + en #Format + + + + Add recipient + + en #Add recipient + + + + Edit + + en #Edit + + + + Menu + + Menu + + + + Unmark + + Unmark + + + + Bookmark name: + + Bookmark name: + + + + Loudsp. on + + Loudspeaker on + Loudsp. on + + + + Move + + Move + + + + Select all items + + Select all items + + + + Copy + + Copy + + + + Disable + + Disable + + + + Select memory: + + Select memory: + + + + Retry + + Retry + + + + Copy to folder + + Copy to folder + + + + Enable + + Enable + + + + Send message + + Send message + Send msg. + + + + Add bookmark + + Add bookmark + + + + Mute + + Mute + + + + Duration: + + Duration: + + + + Select file: + + Select file: + + + + Reset + + Reset + + + + Done + + en #Done + + + + Move to folder + + Move to folder + + + + Zoom in + + en #Zoom in + + + + Connect + + en #Connect + + + + Call + + Call + + + + Clear + + Clear + + + + Current password: + + Current password: + Current passw.: + + + + Deselect all items + + Deselect all items + + + + Select + + en #Select + + + + Close + + en #Close + + + + Saving + + Saving + + + + Loading + + Loading + + + + Replace + + Replace + + + + Start + + Start + + + + Searching + + Searching + + + + Select address: + + Select address: + Select addr.: + + + + Details: + + Details: + + + + New password: + + New password: + New passw.: + + + + Select folder: + + Select folder: + + + + Reply + + Reply + + + + Read + + Read + + + + Go to web address + + Go to web address + Go to address + + + + Join + + Join + + + + Processing + + Processing + + + + Date: + + Date: + + + + Help + + Help + + + + Cancelling + + Cancelling + + + + Deactivate loudspeaker + + Deactivate loudspeaker + Deactivate loudsp. + + + + To: + + To: + + + + Uninstalling + + Uninstalling + + + + Exit + + Exit + + + + User ID: + + User ID: + + + + Help + + Help + + + + Uninstall + + Uninstall + + + + Define + + Define + + + + Expand + + Expand + + + + Back + + Back + + + + Change + + Change + + + + Collapse + + Collapse + + + + Additional details + + Additional details + Add. details + + + + Delete + + Delete + + + + Address: + + Address: + + + + Forward + + Forward + + + + Quit + + Quit + + + + Verify new password: + + Verify new password: + Verify new passw.: + + + + Pause + + en #Pause + + + + Undo + + en #Undo + + + + Video call + + en #Video call + + + + Paste + + en #Paste + + + + Zoom out + + Zoom out + + + + Last name: + + Last name: + + + + Reject + + Reject + + + + Fit to screen + + Fit to screen + Fit to scrn + + + + Answer + + Answer + + + + Resume + + en #Resume + + + + Loudsp. off + + en #Loudsp. off + + + + Save + + en #Save + + + + Deselect + + en #Deselect + + + + Disconnecting + + en #Disconnecting + + + + Select language: + + Select language: + Select language: + + + + Add member + + Add member + + + + Add + + Add + + + + Yes + + Yes + + + + Chat + + Chat + + + + Cancel + + Cancel + + + + Deleting + + Deleting + + + + Handset + + Handset + + + + Hide + + Hide + + + + Connecting + + Connecting + + + + Insert + + Insert + + + + No + + No + + + + Inserting + + Inserting + + + + Opening + + Opening + + + + Phone number: + + en #Phone number: + + + + Initialising + + Initialising + + + + Web address: + + en #Web address: + + + + Print + + en #Print + + + + Deactivate + + Deactivate + + + + Stop + + Stop + + + + Details + + Details + + + + Continue + + Continue + + + + Listen + + Listen + + + + First name: + + First name: + + + + Expires: + + Expires: + + + + Adding + + Adding + + + + Verify password: + + Verify password: + Verify passw.: + + + + Voice call + + Voice call + + + + Install + + Install + + + + Select tone: + + Select tone: + + + + Show + + Show + + + + Writing language: + + Writing language: + Writing language: + + + + Add thumbnail + + Add thumbnail + + + + Disconnect + + Disconnect + Disconn. + + + + Title: + + en #Title: + + + + Installing + + en #Installing + + + + End date: + + en #End date: + + + + Folder name: + + en #Folder name: + + + + Activate loudspeaker + + en #Activate loudspeaker + + + + Select all contents + + en #Select all contents + + + + Attachments + + en #Attachments + + + + Buffering + + Buffering + + + + Time: + + Time: + + + + Find + + Find + + + + Organise + + Organise + + + + Copying + + Copying + + + + Create message + + Create message + Create msg. + + + + Mark + + Mark + + + + From: + + From: + + + + Add image + + en #Add image + + + + Activate handset + + en #Activate handset + + + + Retrieving + + en #Retrieving + + + + Internet call + + en #Internet call + + + + Options + + en #Options + + + + Format + Format + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_en_US.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_en_US.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + en_us #Open + + + + Unmute + + en_us #Unmute + + + + Settings + + en_us #Settings + + + + Add to folder + + en_us #Add to folder + + + + Password: + + en_us #Password: + + + + OK + + OK + + + + User name: + + en_us #User name: + + + + Cancel download + + en_us #Cancel download + + + + Cut + + en_us #Cut + + + + Closing + + en_us #Closing + + + + Finish + + en_us #Finish + + + + Registering + + en_us #Registering + + + + Removing + + en_us #Removing + + + + Requesting + + en_us #Requesting + + + + Remove + + en_us #Remove + + + + Moving + + en_us #Moving + + + + Add detail + + en_us #Add detail + + + + File name: + + en_us #File name: + + + + Send + + en_us #Send + + + + Advanced settings + + en_us #Advanced settings + + + + Format + + en_us #Format + + + + Add recipient + + en_us #Add recipient + + + + Edit + + en_us #Edit + + + + Menu + + Menu + + + + Unmark + + Unmark + + + + Bookmark name: + + Bookmark name: + + + + Loudsp. on + + Loudspeaker on + Loudsp. on + + + + Move + + Move + + + + Select all items + + Select all items + + + + Copy + + Copy + + + + Disable + + Disable + + + + Select memory: + + Select memory: + + + + Retry + + Retry + + + + Copy to folder + + Copy to folder + + + + Enable + + Enable + + + + Send message + + Send message + Send msg. + + + + Add bookmark + + Add bookmark + + + + Mute + + Mute + + + + Duration: + + Duration: + + + + Select file: + + Select file: + + + + Reset + + Reset + + + + Done + + en_us #Done + + + + Move to folder + + Move to folder + + + + Zoom in + + en_us #Zoom in + + + + Connect + + en_us #Connect + + + + Call + + Call + + + + Clear + + Clear + + + + Current password: + + Current password: + Current passw.: + + + + Deselect all items + + Deselect all items + + + + Select + + en_us #Select + + + + Close + + en_us #Close + + + + Saving + + Saving + + + + Loading + + Loading + + + + Replace + + Replace + + + + Start + + Start + + + + Searching + + Searching + + + + Select address: + + Select address: + Select addr.: + + + + Details: + + Details: + + + + New password: + + New password: + New passw.: + + + + Select folder: + + Select folder: + + + + Reply + + Reply + + + + Read + + Read + + + + Go to web address + + Go to web address + Go to address + + + + Join + + Join + + + + Processing + + Processing + + + + Date: + + Date: + + + + Help + + Help + + + + Cancelling + + Cancelling + + + + Deactivate loudspeaker + + Deactivate loudspeaker + Deactivate loudsp. + + + + To: + + To: + + + + Uninstalling + + Uninstalling + + + + Exit + + Exit + + + + User ID: + + User ID: + + + + Help + + Help + + + + Uninstall + + Uninstall + + + + Define + + Define + + + + Expand + + Expand + + + + Back + + Back + + + + Change + + Change + + + + Collapse + + Collapse + + + + Additional details + + Additional details + Add. details + + + + Delete + + Delete + + + + Address: + + Address: + + + + Forward + + Forward + + + + Quit + + Quit + + + + Verify new password: + + Verify new password: + Verify new passw.: + + + + Pause + + en_us #Pause + + + + Undo + + en_us #Undo + + + + Video call + + en_us #Video call + + + + Paste + + en_us #Paste + + + + Zoom out + + Zoom out + + + + Last name: + + Last name: + + + + Reject + + Reject + + + + Fit to screen + + Fit to screen + Fit to scrn + + + + Answer + + Answer + + + + Resume + + en_us #Resume + + + + Loudsp. off + + en_us #Loudsp. off + + + + Save + + en_us #Save + + + + Deselect + + en_us #Deselect + + + + Disconnecting + + en_us #Disconnecting + + + + Select language: + + Select language: + Select language: + + + + Add member + + Add member + + + + Add + + Add + + + + Yes + + Yes + + + + Chat + + Chat + + + + Cancel + + Cancel + + + + Deleting + + Deleting + + + + Handset + + Handset + + + + Hide + + Hide + + + + Connecting + + Connecting + + + + Insert + + Insert + + + + No + + No + + + + Inserting + + Inserting + + + + Opening + + Opening + + + + Phone number: + + en_us #Phone number: + + + + Initialising + + Initialising + + + + Web address: + + en_us #Web address: + + + + Print + + en_us #Print + + + + Deactivate + + Deactivate + + + + Stop + + Stop + + + + Details + + Details + + + + Continue + + Continue + + + + Listen + + Listen + + + + First name: + + First name: + + + + Expires: + + Expires: + + + + Adding + + Adding + + + + Verify password: + + Verify password: + Verify passw.: + + + + Voice call + + Voice call + + + + Install + + Install + + + + Select tone: + + Select tone: + + + + Show + + Show + + + + Writing language: + + Writing language: + Writing language: + + + + Add thumbnail + + Add thumbnail + + + + Disconnect + + Disconnect + Disconn. + + + + Title: + + en_us #Title: + + + + Installing + + en_us #Installing + + + + End date: + + en_us #End date: + + + + Folder name: + + en_us #Folder name: + + + + Activate loudspeaker + + en_us #Activate loudspeaker + + + + Select all contents + + en_us #Select all contents + + + + Attachments + + en_us #Attachments + + + + Buffering + + Buffering + + + + Time: + + Time: + + + + Find + + Find + + + + Organise + + Organize + + + + Copying + + Copying + + + + Create message + + Create message + Create msg. + + + + Mark + + Mark + + + + From: + + From: + + + + Add image + + en_us #Add image + + + + Activate handset + + en_us #Activate handset + + + + Retrieving + + en_us #Retrieving + + + + Internet call + + en_us #Internet call + + + + Options + + en_us #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_es.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_es.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + es #Open + + + + Unmute + + es #Unmute + + + + Settings + + es #Settings + + + + Add to folder + + es #Add to folder + + + + Password: + + es #Password: + + + + OK + + es #OK + + + + User name: + + es #User name: + + + + Cancel download + + es #Cancel download + + + + Cut + + es #Cut + + + + Closing + + es #Closing + + + + Finish + + es #Finish + + + + Registering + + es #Registering + + + + Removing + + es #Removing + + + + Requesting + + es #Requesting + + + + Remove + + es #Remove + + + + Moving + + es #Moving + + + + Add detail + + es #Add detail + + + + File name: + + es #File name: + + + + Send + + es #Send + + + + Advanced settings + + es #Advanced settings + + + + Format + + es #Format + + + + Add recipient + + es #Add recipient + + + + Edit + + es #Edit + + + + Menu + + Menú + + + + Unmark + + Anular marcar + + + + Bookmark name: + + Nombre de favorito: + + + + Loudsp. on + + Altavoz activado + es #Loudsp. on + + + + Move + + Mover + + + + Select all items + + Seleccionar todo + + + + Copy + + Copiar + + + + Disable + + Desactivar + + + + Select memory: + + Seleccionar memoria: + + + + Retry + + Reintentar + + + + Copy to folder + + Copiar a carpeta + + + + Enable + + Activar + + + + Send message + + Enviar mensaje + es #Send msg. + + + + Add bookmark + + Añadir favorito + + + + Mute + + Silenciar + + + + Duration: + + Duración: + + + + Select file: + + Seleccionar archivo: + + + + Reset + + Poner a cero + + + + Done + + es #Done + + + + Move to folder + + Mover a carpeta + + + + Zoom in + + es #Zoom in + + + + Connect + + es #Connect + + + + Call + + Llamar + + + + Clear + + Borrar + + + + Current password: + + Contraseña actual: + es #Current passw.: + + + + Deselect all items + + Deseleccionar todo + + + + Select + + es #Select + + + + Close + + es #Close + + + + Saving + + Guardando + + + + Loading + + Cargando + + + + Replace + + Reemplazar + + + + Start + + Iniciar + + + + Searching + + Buscando + + + + Select address: + + Seleccionar dirección: + es #Select addr.: + + + + Details: + + Detalles: + + + + New password: + + Contraseña nueva: + es #New passw.: + + + + Select folder: + + Seleccionar carpeta: + + + + Reply + + Responder + + + + Read + + Leer + + + + Go to web address + + Ir a dirección web + es #Go to address + + + + Join + + Unirse + + + + Processing + + Procesando + + + + Date: + + Fecha: + + + + Help + + Ayuda + + + + Cancelling + + Cancelando + + + + Deactivate loudspeaker + + Desactivar altavoz + es #Deactivate loudsp. + + + + To: + + Hasta: + + + + Uninstalling + + Desinstalando + + + + Exit + + Salir + + + + User ID: + + ID de usuario: + + + + Help + + Ayuda + + + + Uninstall + + Desinstalar + + + + Define + + Definir + + + + Expand + + Expandir + + + + Back + + Atrás + + + + Change + + Cambiar + + + + Collapse + + Contraer + + + + Additional details + + Detalles adicionales + es #Add. details + + + + Delete + + Borrar + + + + Address: + + Dirección: + + + + Forward + + Reenviar + + + + Quit + + Abandonar + + + + Verify new password: + + Confirmar contraseña nueva: + es #Verify new passw.: + + + + Pause + + es #Pause + + + + Undo + + es #Undo + + + + Video call + + es #Video call + + + + Paste + + es #Paste + + + + Zoom out + + Reducir + + + + Last name: + + Apellidos: + + + + Reject + + Rechazar + + + + Fit to screen + + Ajustar a pantalla + es #Fit to scrn + + + + Answer + + Responder + + + + Resume + + es #Resume + + + + Loudsp. off + + es #Loudsp. off + + + + Save + + es #Save + + + + Deselect + + es #Deselect + + + + Disconnecting + + es #Disconnecting + + + + Select language: + + Seleccionar idioma: + es #Select language: + + + + Add member + + Añadir miembro + + + + Add + + Añadir + + + + Yes + + + + + + Chat + + Chat + + + + Cancel + + Cancelar + + + + Deleting + + Borrando + + + + Handset + + Teléfono + + + + Hide + + Ocultar + + + + Connecting + + Conectando + + + + Insert + + Insertar + + + + No + + No + + + + Inserting + + Insertando + + + + Opening + + Abriendo + + + + Phone number: + + es #Phone number: + + + + Initialising + + Inicializando + + + + Web address: + + es #Web address: + + + + Print + + es #Print + + + + Deactivate + + Desactivar + + + + Stop + + Parar + + + + Details + + Detalles + + + + Continue + + Continuar + + + + Listen + + Escuchar + + + + First name: + + Nombre: + + + + Expires: + + Caduca: + + + + Adding + + Añadiendo + + + + Verify password: + + Confirmar contraseña: + es #Verify passw.: + + + + Voice call + + Llamada de voz + + + + Install + + Instalar + + + + Select tone: + + Seleccionar tono: + + + + Show + + Mostrar + + + + Writing language: + + Idioma de escritura: + es #Writing language: + + + + Add thumbnail + + Añadir miniatura + + + + Disconnect + + Desconectar + es #Disconn. + + + + Title: + + es #Title: + + + + Installing + + es #Installing + + + + End date: + + es #End date: + + + + Folder name: + + es #Folder name: + + + + Activate loudspeaker + + es #Activate loudspeaker + + + + Select all contents + + es #Select all contents + + + + Attachments + + es #Attachments + + + + Buffering + + Procesando búfer + + + + Time: + + Tiempo: + + + + Find + + Buscar + + + + Organise + + Organizar + + + + Copying + + Copiando + + + + Create message + + Crear mensaje + es #Create msg. + + + + Mark + + Marcar + + + + From: + + Desde: + + + + Add image + + es #Add image + + + + Activate handset + + es #Activate handset + + + + Retrieving + + es #Retrieving + + + + Internet call + + es #Internet call + + + + Options + + es #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_es_419.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_es_419.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + es_419 #Open + + + + Unmute + + es_419 #Unmute + + + + Settings + + es_419 #Settings + + + + Add to folder + + es_419 #Add to folder + + + + Password: + + es_419 #Password: + + + + OK + + es_419 #OK + + + + User name: + + es_419 #User name: + + + + Cancel download + + es_419 #Cancel download + + + + Cut + + es_419 #Cut + + + + Closing + + es_419 #Closing + + + + Finish + + es_419 #Finish + + + + Registering + + es_419 #Registering + + + + Removing + + es_419 #Removing + + + + Requesting + + es_419 #Requesting + + + + Remove + + es_419 #Remove + + + + Moving + + es_419 #Moving + + + + Add detail + + es_419 #Add detail + + + + File name: + + es_419 #File name: + + + + Send + + es_419 #Send + + + + Advanced settings + + es_419 #Advanced settings + + + + Format + + es_419 #Format + + + + Add recipient + + es_419 #Add recipient + + + + Edit + + es_419 #Edit + + + + Menu + + Menú + + + + Unmark + + Desmarcar + + + + Bookmark name: + + Nombre del favorito: + + + + Loudsp. on + + Altavoz activado + es_419 #Loudsp. on + + + + Move + + Mover + + + + Select all items + + Seleccionar todos los elementos + + + + Copy + + Copiar + + + + Disable + + Desactivar + + + + Select memory: + + Seleccionar memoria: + + + + Retry + + Reintentar + + + + Copy to folder + + Copiar a carpeta + + + + Enable + + Activar + + + + Send message + + Enviar mensaje + es_419 #Send msg. + + + + Add bookmark + + Agregar favorito + + + + Mute + + Silenciar + + + + Duration: + + Duración: + + + + Select file: + + Seleccionar archivo: + + + + Reset + + Restablecer + + + + Done + + es_419 #Done + + + + Move to folder + + Mover a carpeta + + + + Zoom in + + es_419 #Zoom in + + + + Connect + + es_419 #Connect + + + + Call + + Llamar + + + + Clear + + Borrar + + + + Current password: + + Contraseña actual: + es_419 #Current passw.: + + + + Deselect all items + + Anular la selección de todos los elementos + + + + Select + + es_419 #Select + + + + Close + + es_419 #Close + + + + Saving + + Guardando + + + + Loading + + Cargando + + + + Replace + + Reemplazar + + + + Start + + Iniciar + + + + Searching + + Buscando + + + + Select address: + + Seleccionar dirección: + es_419 #Select addr.: + + + + Details: + + Detalles: + + + + New password: + + Nueva contraseña: + es_419 #New passw.: + + + + Select folder: + + Seleccionar carpeta: + + + + Reply + + Responder + + + + Read + + Leer + + + + Go to web address + + Ir a la dirección Web + es_419 #Go to address + + + + Join + + Unirse + + + + Processing + + Procesando + + + + Date: + + Fecha: + + + + Help + + Ayuda + + + + Cancelling + + Cancelando + + + + Deactivate loudspeaker + + Desactivar altavoz + es_419 #Deactivate loudsp. + + + + To: + + Hasta: + + + + Uninstalling + + Desinstalando + + + + Exit + + Salir + + + + User ID: + + ID del usuario: + + + + Help + + Ayuda + + + + Uninstall + + Desinstalar + + + + Define + + Definir + + + + Expand + + Expandir + + + + Back + + Atrás + + + + Change + + Cambiar + + + + Collapse + + Contraer + + + + Additional details + + Detalles adicionales + es_419 #Add. details + + + + Delete + + Eliminar + + + + Address: + + Dirección: + + + + Forward + + Reenviar + + + + Quit + + Salir + + + + Verify new password: + + Verificar nueva contraseña: + es_419 #Verify new passw.: + + + + Pause + + es_419 #Pause + + + + Undo + + es_419 #Undo + + + + Video call + + es_419 #Video call + + + + Paste + + es_419 #Paste + + + + Zoom out + + Alejar + + + + Last name: + + Apellido: + + + + Reject + + Rechazar + + + + Fit to screen + + Ajustar a la pantalla + es_419 #Fit to scrn + + + + Answer + + Contestar + + + + Resume + + es_419 #Resume + + + + Loudsp. off + + es_419 #Loudsp. off + + + + Save + + es_419 #Save + + + + Deselect + + es_419 #Deselect + + + + Disconnecting + + es_419 #Disconnecting + + + + Select language: + + Seleccionar idioma: + es_419 #Select language: + + + + Add member + + Agregar miembro + + + + Add + + Agregar + + + + Yes + + + + + + Chat + + Chat + + + + Cancel + + Cancelar + + + + Deleting + + Eliminando + + + + Handset + + Teléfono + + + + Hide + + Ocultar + + + + Connecting + + Conectando + + + + Insert + + Insertar + + + + No + + No + + + + Inserting + + Insertando + + + + Opening + + Abriendo + + + + Phone number: + + es_419 #Phone number: + + + + Initialising + + Inicializando + + + + Web address: + + es_419 #Web address: + + + + Print + + es_419 #Print + + + + Deactivate + + Desactivar + + + + Stop + + Detener + + + + Details + + Detalles + + + + Continue + + Continuar + + + + Listen + + Escuchar + + + + First name: + + Nombre: + + + + Expires: + + Vence: + + + + Adding + + Agregando + + + + Verify password: + + Verificar contraseña: + es_419 #Verify passw.: + + + + Voice call + + Llamada de voz + + + + Install + + Instalar + + + + Select tone: + + Seleccionar tono: + + + + Show + + Mostrar + + + + Writing language: + + Idioma de escritura: + es_419 #Writing language: + + + + Add thumbnail + + Agregar miniatura + + + + Disconnect + + Desconectar + es_419 #Disconn. + + + + Title: + + es_419 #Title: + + + + Installing + + es_419 #Installing + + + + End date: + + es_419 #End date: + + + + Folder name: + + es_419 #Folder name: + + + + Activate loudspeaker + + es_419 #Activate loudspeaker + + + + Select all contents + + es_419 #Select all contents + + + + Attachments + + es_419 #Attachments + + + + Buffering + + Procesando búfer + + + + Time: + + Tiempo: + + + + Find + + Buscar + + + + Organise + + Organizar + + + + Copying + + Copiando + + + + Create message + + Crear mensaje + es_419 #Create msg. + + + + Mark + + Marcar + + + + From: + + Desde: + + + + Add image + + es_419 #Add image + + + + Activate handset + + es_419 #Activate handset + + + + Retrieving + + es_419 #Retrieving + + + + Internet call + + es_419 #Internet call + + + + Options + + es_419 #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_et.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_et.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + et #Open + + + + Unmute + + et #Unmute + + + + Settings + + et #Settings + + + + Add to folder + + et #Add to folder + + + + Password: + + et #Password: + + + + OK + + et #OK + + + + User name: + + et #User name: + + + + Cancel download + + et #Cancel download + + + + Cut + + et #Cut + + + + Closing + + et #Closing + + + + Finish + + et #Finish + + + + Registering + + et #Registering + + + + Removing + + et #Removing + + + + Requesting + + et #Requesting + + + + Remove + + et #Remove + + + + Moving + + et #Moving + + + + Add detail + + et #Add detail + + + + File name: + + et #File name: + + + + Send + + et #Send + + + + Advanced settings + + et #Advanced settings + + + + Format + + et #Format + + + + Add recipient + + et #Add recipient + + + + Edit + + et #Edit + + + + Menu + + Menüü + + + + Unmark + + Tühista valik + + + + Bookmark name: + + Järjehoidja nimi: + + + + Loudsp. on + + Valjuhääldi sisse + et #Loudsp. on + + + + Move + + Teisalda + + + + Select all items + + Vali kõik üksused + + + + Copy + + Kopeeri + + + + Disable + + Keela + + + + Select memory: + + Mälu valimine: + + + + Retry + + Proovi uuesti + + + + Copy to folder + + Kopeeri kausta + + + + Enable + + Luba + + + + Send message + + Saada sõnum + et #Send msg. + + + + Add bookmark + + Lisa järjehoidja + + + + Mute + + Lülita mikrofon välja + + + + Duration: + + Kestus: + + + + Select file: + + Faili valimine: + + + + Reset + + Lähtesta + + + + Done + + et #Done + + + + Move to folder + + Teisalda kausta + + + + Zoom in + + et #Zoom in + + + + Connect + + et #Connect + + + + Call + + Helista + + + + Clear + + Tühjenda + + + + Current password: + + Praegune parool: + et #Current passw.: + + + + Deselect all items + + Tühista kõigi üksuste valik + + + + Select + + et #Select + + + + Close + + et #Close + + + + Saving + + Salvestamine + + + + Loading + + Laadimine + + + + Replace + + Asenda + + + + Start + + Käivita + + + + Searching + + Otsimine + + + + Select address: + + Aadressi valimine: + et #Select addr.: + + + + Details: + + Andmed: + + + + New password: + + Uus parool: + et #New passw.: + + + + Select folder: + + Kausta valimine: + + + + Reply + + Vasta + + + + Read + + Loe + + + + Go to web address + + Ava veebiaadress + et #Go to address + + + + Join + + Liitu + + + + Processing + + Töötlemine + + + + Date: + + Kuupäev: + + + + Help + + Abi + + + + Cancelling + + Tühistamine + + + + Deactivate loudspeaker + + Lülita valjuhääldi välja + et #Deactivate loudsp. + + + + To: + + Lõpp: + + + + Uninstalling + + Desinstallimine + + + + Exit + + Välju + + + + User ID: + + Kasutajatunnus: + + + + Help + + Abi + + + + Uninstall + + Desinstalli + + + + Define + + Määratle + + + + Expand + + Laienda + + + + Back + + Tagasi + + + + Change + + Muuda + + + + Collapse + + Ahenda + + + + Additional details + + Lisaandmed + et #Add. details + + + + Delete + + Kustuta + + + + Address: + + Aadress: + + + + Forward + + Saada edasi + + + + Quit + + Välju + + + + Verify new password: + + Kinnita uus parool: + et #Verify new passw.: + + + + Pause + + et #Pause + + + + Undo + + et #Undo + + + + Video call + + et #Video call + + + + Paste + + et #Paste + + + + Zoom out + + Vähenda + + + + Last name: + + Perekonnanimi: + + + + Reject + + Keeldu + + + + Fit to screen + + Mahuta ekraanile + et #Fit to scrn + + + + Answer + + Vasta + + + + Resume + + et #Resume + + + + Loudsp. off + + et #Loudsp. off + + + + Save + + et #Save + + + + Deselect + + et #Deselect + + + + Disconnecting + + et #Disconnecting + + + + Select language: + + Keele valimine: + et #Select language: + + + + Add member + + Lisa liige + + + + Add + + Lisa + + + + Yes + + Jah + + + + Chat + + Alusta vestlust + + + + Cancel + + Tühista + + + + Deleting + + Kustutamine + + + + Handset + + Telefon + + + + Hide + + Peida + + + + Connecting + + Ühenduse loomine + + + + Insert + + Lisa + + + + No + + Ei + + + + Inserting + + Lisamine + + + + Opening + + Avamine + + + + Phone number: + + et #Phone number: + + + + Initialising + + Alustamine + + + + Web address: + + et #Web address: + + + + Print + + et #Print + + + + Deactivate + + Lülita välja + + + + Stop + + Lõpeta + + + + Details + + Andmed + + + + Continue + + Jätka + + + + Listen + + Kuula + + + + First name: + + Eesnimi: + + + + Expires: + + Aegub: + + + + Adding + + Lisamine + + + + Verify password: + + Kinnita parool: + et #Verify passw.: + + + + Voice call + + Tavakõne + + + + Install + + Installi + + + + Select tone: + + Helina valimine: + + + + Show + + Kuva + + + + Writing language: + + Kirjutamiskeel: + et #Writing language: + + + + Add thumbnail + + Lisa pisipilt + + + + Disconnect + + Katkesta ühendus + et #Disconn. + + + + Title: + + et #Title: + + + + Installing + + et #Installing + + + + End date: + + et #End date: + + + + Folder name: + + et #Folder name: + + + + Activate loudspeaker + + et #Activate loudspeaker + + + + Select all contents + + et #Select all contents + + + + Attachments + + et #Attachments + + + + Buffering + + Puhverdamine + + + + Time: + + Kellaaeg: + + + + Find + + Otsi + + + + Organise + + Korralda + + + + Copying + + Kopeerimine + + + + Create message + + Koosta sõnum + et #Create msg. + + + + Mark + + Märgi + + + + From: + + Algus: + + + + Add image + + et #Add image + + + + Activate handset + + et #Activate handset + + + + Retrieving + + et #Retrieving + + + + Internet call + + et #Internet call + + + + Options + + et #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_eu.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_eu.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + eu #Open + + + + Unmute + + eu #Unmute + + + + Settings + + eu #Settings + + + + Add to folder + + eu #Add to folder + + + + Password: + + eu #Password: + + + + OK + + eu #OK + + + + User name: + + eu #User name: + + + + Cancel download + + eu #Cancel download + + + + Cut + + eu #Cut + + + + Closing + + eu #Closing + + + + Finish + + eu #Finish + + + + Registering + + eu #Registering + + + + Removing + + eu #Removing + + + + Requesting + + eu #Requesting + + + + Remove + + eu #Remove + + + + Moving + + eu #Moving + + + + Add detail + + eu #Add detail + + + + File name: + + eu #File name: + + + + Send + + eu #Send + + + + Advanced settings + + eu #Advanced settings + + + + Format + + eu #Format + + + + Add recipient + + eu #Add recipient + + + + Edit + + eu #Edit + + + + Menu + + Menua + + + + Unmark + + Kendu marka + + + + Bookmark name: + + Laster-markaren izena: + + + + Loudsp. on + + Bozgorailua aktibatuta + eu #Loudsp. on + + + + Move + + Mugitu + + + + Select all items + + Hautatu elementu guztiak + + + + Copy + + Kopiatu + + + + Disable + + Desgaitu + + + + Select memory: + + Hautatu memoria: + + + + Retry + + Saiatu berriz + + + + Copy to folder + + Kopiatu karpetan + + + + Enable + + Gaitu + + + + Send message + + Bidali mezua + eu #Send msg. + + + + Add bookmark + + Gehitu laster-marka + + + + Mute + + Mututu + + + + Duration: + + Iraupena: + + + + Select file: + + Hautatu fitxategia: + + + + Reset + + Itzuli zerora + + + + Done + + eu #Done + + + + Move to folder + + Mugitu karpetara + + + + Zoom in + + eu #Zoom in + + + + Connect + + eu #Connect + + + + Call + + Deitu + + + + Clear + + Ezabatu + + + + Current password: + + Uneko pasahitza: + eu #Current passw.: + + + + Deselect all items + + Desautatu elementu guztiak + + + + Select + + eu #Select + + + + Close + + eu #Close + + + + Saving + + Gordetzen + + + + Loading + + Kargatzen + + + + Replace + + Ordeztu + + + + Start + + Hasi + + + + Searching + + Bilatzen + + + + Select address: + + Hautatu helbidea: + eu #Select addr.: + + + + Details: + + Xehetasunak: + + + + New password: + + Pasahitz berria: + eu #New passw.: + + + + Select folder: + + Hautatu karpeta: + + + + Reply + + Erantzun + + + + Read + + Irakurri + + + + Go to web address + + Joan web helbidera + eu #Go to address + + + + Join + + Egin bat + + + + Processing + + Prozesatzen + + + + Date: + + Data: + + + + Help + + Laguntza + + + + Cancelling + + Ezeztatzen + + + + Deactivate loudspeaker + + Desaktibatu bozgorailua + eu #Deactivate loudsp. + + + + To: + + Noiz arte:: + + + + Uninstalling + + Desinstalatzen + + + + Exit + + Irten + + + + User ID: + + Erabiltzaile IDa: + + + + Help + + Laguntza + + + + Uninstall + + Desinstalatu + + + + Define + + Zehaztu + + + + Expand + + Zabaldu + + + + Back + + Atzera + + + + Change + + Aldatu + + + + Collapse + + Tolestu + + + + Additional details + + Xehetasun gehigarriak + eu #Add. details + + + + Delete + + Ezabatu + + + + Address: + + Helbidea: + + + + Forward + + Birbidali + + + + Quit + + Utzi + + + + Verify new password: + + Egiaztatu pasahitz berria: + eu #Verify new passw.: + + + + Pause + + eu #Pause + + + + Undo + + eu #Undo + + + + Video call + + eu #Video call + + + + Paste + + eu #Paste + + + + Zoom out + + Txikiagotu + + + + Last name: + + Abizena: + + + + Reject + + Ukatu + + + + Fit to screen + + Egokitu pantailara + eu #Fit to scrn + + + + Answer + + Erantzun + + + + Resume + + eu #Resume + + + + Loudsp. off + + eu #Loudsp. off + + + + Save + + eu #Save + + + + Deselect + + eu #Deselect + + + + Disconnecting + + eu #Disconnecting + + + + Select language: + + Hautatu hizkuntza: + eu #Select language: + + + + Add member + + Gehitu kidea + + + + Add + + Gehitu + + + + Yes + + Bai + + + + Chat + + Txata + + + + Cancel + + Ezeztatu + + + + Deleting + + Ezabatzen + + + + Handset + + Telefonoa + + + + Hide + + Ezkutatu + + + + Connecting + + Konektatzen + + + + Insert + + Gehitu + + + + No + + Ez + + + + Inserting + + Gehitzen + + + + Opening + + Irekitzen + + + + Phone number: + + eu #Phone number: + + + + Initialising + + Hasten + + + + Web address: + + eu #Web address: + + + + Print + + eu #Print + + + + Deactivate + + Desaktibatu + + + + Stop + + Gelditu + + + + Details + + Xehetasunak + + + + Continue + + Jarraitu + + + + Listen + + Entzun + + + + First name: + + Izena: + + + + Expires: + + Epemuga: + + + + Adding + + Gehitzen + + + + Verify password: + + Egiaztatu pasahitza: + eu #Verify passw.: + + + + Voice call + + Ahots-deia + + + + Install + + Instalatu + + + + Select tone: + + Hautatu tonua: + + + + Show + + Erakutsi + + + + Writing language: + + Idazteko hizkuntza: + eu #Writing language: + + + + Add thumbnail + + Gehitu irudi txikia + + + + Disconnect + + Deskonektatu + eu #Disconn. + + + + Title: + + eu #Title: + + + + Installing + + eu #Installing + + + + End date: + + eu #End date: + + + + Folder name: + + eu #Folder name: + + + + Activate loudspeaker + + eu #Activate loudspeaker + + + + Select all contents + + eu #Select all contents + + + + Attachments + + eu #Attachments + + + + Buffering + + Bufferreratzen + + + + Time: + + Denbora: + + + + Find + + Bilatu + + + + Organise + + Antolatu + + + + Copying + + Kopiatzen + + + + Create message + + Sortu mezua + eu #Create msg. + + + + Mark + + Markatu + + + + From: + + Noiztik: + + + + Add image + + eu #Add image + + + + Activate handset + + eu #Activate handset + + + + Retrieving + + eu #Retrieving + + + + Internet call + + eu #Internet call + + + + Options + + eu #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_fa.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_fa.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + fa #Open + + + + Unmute + + fa #Unmute + + + + Settings + + fa #Settings + + + + Add to folder + + fa #Add to folder + + + + Password: + + fa #Password: + + + + OK + + fa #OK + + + + User name: + + fa #User name: + + + + Cancel download + + fa #Cancel download + + + + Cut + + fa #Cut + + + + Closing + + fa #Closing + + + + Finish + + fa #Finish + + + + Registering + + fa #Registering + + + + Removing + + fa #Removing + + + + Requesting + + fa #Requesting + + + + Remove + + fa #Remove + + + + Moving + + fa #Moving + + + + Add detail + + fa #Add detail + + + + File name: + + fa #File name: + + + + Send + + fa #Send + + + + Advanced settings + + fa #Advanced settings + + + + Format + + fa #Format + + + + Add recipient + + fa #Add recipient + + + + Edit + + fa #Edit + + + + Menu + + فهرست + + + + Unmark + + حذف علامت + + + + Bookmark name: + + نام نشانه: + + + + Loudsp. on + + روشن کردن بلندگو + fa #Loudsp. on + + + + Move + + انتقال + + + + Select all items + + انتخاب همه موارد + + + + Copy + + کپی + + + + Disable + + غیر فعال + + + + Select memory: + + انتخاب حافظه: + + + + Retry + + سعی مجدد + + + + Copy to folder + + کپی در پوشه + + + + Enable + + فعال کردن + + + + Send message + + ارسال پیام + fa #Send msg. + + + + Add bookmark + + افزودن نشانه + + + + Mute + + بی صدا + + + + Duration: + + مدت زمان: + + + + Select file: + + انتخاب پرونده: + + + + Reset + + بازنشانی + + + + Done + + fa #Done + + + + Move to folder + + انتقال به پوشه + + + + Zoom in + + fa #Zoom in + + + + Connect + + fa #Connect + + + + Call + + تماس + + + + Clear + + پاک کردن + + + + Current password: + + کلمه عبور کنونی: + fa #Current passw.: + + + + Deselect all items + + عدم انتخاب همه موارد + + + + Select + + fa #Select + + + + Close + + fa #Close + + + + Saving + + در حال ذخیره کردن + + + + Loading + + در حال بارگذاری + + + + Replace + + جایگزین کردن + + + + Start + + شروع + + + + Searching + + در حال جستجو + + + + Select address: + + انتخاب نشانی: + fa #Select addr.: + + + + Details: + + جزئیات: + + + + New password: + + کلمه عبور جدید: + fa #New passw.: + + + + Select folder: + + انتخاب پوشه: + + + + Reply + + پاسخ + + + + Read + + خواندن + + + + Go to web address + + برو به نشانی وب + fa #Go to address + + + + Join + + پیوستن + + + + Processing + + در حال پردازش + + + + Date: + + تاریخ: + + + + Help + + راهنما + + + + Cancelling + + در حال لغو کردن + + + + Deactivate loudspeaker + + غیر فعال کردن بلندگو + fa #Deactivate loudsp. + + + + To: + + به: + + + + Uninstalling + + در حال حذف برنامه + + + + Exit + + خروج + + + + User ID: + + شناسه کاربر: + + + + Help + + راهنما + + + + Uninstall + + حذف برنامه + + + + Define + + تعیین کردن + + + + Expand + + بسط دادن + + + + Back + + بازگشت + + + + Change + + تغییر دادن + + + + Collapse + + جمع کردن + + + + Additional details + + جزئیات اضافی + fa #Add. details + + + + Delete + + حذف + + + + Address: + + نشانی: + + + + Forward + + هدایت + + + + Quit + + ترک کردن + + + + Verify new password: + + کلمه عبور جدید را تایید کنید: + fa #Verify new passw.: + + + + Pause + + fa #Pause + + + + Undo + + fa #Undo + + + + Video call + + fa #Video call + + + + Paste + + fa #Paste + + + + Zoom out + + بزرگنمایی منفی + + + + Last name: + + نام خانوادگی: + + + + Reject + + رد کردن + + + + Fit to screen + + به اندازه صفحه + fa #Fit to scrn + + + + Answer + + پاسخ + + + + Resume + + fa #Resume + + + + Loudsp. off + + fa #Loudsp. off + + + + Save + + fa #Save + + + + Deselect + + fa #Deselect + + + + Disconnecting + + fa #Disconnecting + + + + Select language: + + انتخاب زبان: + fa #Select language: + + + + Add member + + افزودن عضو + + + + Add + + افزودن + + + + Yes + + بله + + + + Chat + + گفتگو + + + + Cancel + + لغو + + + + Deleting + + در حال حذف + + + + Handset + + گوشی + + + + Hide + + مخفی کردن + + + + Connecting + + در حال برقراری اتصال + + + + Insert + + وارد کردن + + + + No + + خیر + + + + Inserting + + در حال درج کردن + + + + Opening + + در حال باز کردن + + + + Phone number: + + fa #Phone number: + + + + Initialising + + در حال راه اندازی + + + + Web address: + + fa #Web address: + + + + Print + + fa #Print + + + + Deactivate + + غیر فعال کردن + + + + Stop + + توقف + + + + Details + + جزئیات + + + + Continue + + ادامه + + + + Listen + + گوش کردن + + + + First name: + + نام: + + + + Expires: + + زمان انقضاء: + + + + Adding + + در حال افزودن + + + + Verify password: + + تایید کلمه عبور: + fa #Verify passw.: + + + + Voice call + + تماس صوتی + + + + Install + + نصب کردن + + + + Select tone: + + انتخاب آهنگ: + + + + Show + + نمایش + + + + Writing language: + + زبان نوشتاری: + fa #Writing language: + + + + Add thumbnail + + افزودن تصویر بند انگشتی + + + + Disconnect + + قطع کردن + fa #Disconn. + + + + Title: + + fa #Title: + + + + Installing + + fa #Installing + + + + End date: + + fa #End date: + + + + Folder name: + + fa #Folder name: + + + + Activate loudspeaker + + fa #Activate loudspeaker + + + + Select all contents + + fa #Select all contents + + + + Attachments + + fa #Attachments + + + + Buffering + + در حال بافر کردن + + + + Time: + + زمان: + + + + Find + + یافتن + + + + Organise + + سازماندهی + + + + Copying + + در حال کپی + + + + Create message + + ایجاد پیام + fa #Create msg. + + + + Mark + + علامت زدن + + + + From: + + از: + + + + Add image + + fa #Add image + + + + Activate handset + + fa #Activate handset + + + + Retrieving + + fa #Retrieving + + + + Internet call + + fa #Internet call + + + + Options + + fa #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_fi.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_fi.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + fi #Open + + + + Unmute + + fi #Unmute + + + + Settings + + fi #Settings + + + + Add to folder + + fi #Add to folder + + + + Password: + + fi #Password: + + + + OK + + fi #OK + + + + User name: + + fi #User name: + + + + Cancel download + + fi #Cancel download + + + + Cut + + fi #Cut + + + + Closing + + fi #Closing + + + + Finish + + fi #Finish + + + + Registering + + fi #Registering + + + + Removing + + fi #Removing + + + + Requesting + + fi #Requesting + + + + Remove + + fi #Remove + + + + Moving + + fi #Moving + + + + Add detail + + fi #Add detail + + + + File name: + + fi #File name: + + + + Send + + fi #Send + + + + Advanced settings + + fi #Advanced settings + + + + Format + + fi #Format + + + + Add recipient + + fi #Add recipient + + + + Edit + + fi #Edit + + + + Menu + + Valikko + + + + Unmark + + Poista valinta + + + + Bookmark name: + + Kirjanmerkin nimi: + + + + Loudsp. on + + Kaiutin käyttöön + fi #Loudsp. on + + + + Move + + Siirrä + + + + Select all items + + Valitse kaikki + + + + Copy + + Kopioi + + + + Disable + + Poista käytöstä + + + + Select memory: + + Valitse muisti: + + + + Retry + + Uudelleen + + + + Copy to folder + + Kopioi kansioon + + + + Enable + + Ota käyttöön + + + + Send message + + Lähetä viesti + fi #Send msg. + + + + Add bookmark + + Uusi kirjanmerkki + + + + Mute + + Mykistä + + + + Duration: + + Kesto: + + + + Select file: + + Valitse tiedosto: + + + + Reset + + Nollaa + + + + Done + + fi #Done + + + + Move to folder + + Siirrä kansioon + + + + Zoom in + + fi #Zoom in + + + + Connect + + fi #Connect + + + + Call + + Soita + + + + Clear + + Tyhjennä + + + + Current password: + + Nykyinen salasana: + fi #Current passw.: + + + + Deselect all items + + Poista kaikki valinnat + + + + Select + + fi #Select + + + + Close + + fi #Close + + + + Saving + + Tallennetaan + + + + Loading + + Ladataan + + + + Replace + + Korvaa + + + + Start + + Aloita + + + + Searching + + Etsitään + + + + Select address: + + Valitse osoite: + fi #Select addr.: + + + + Details: + + Tiedot: + + + + New password: + + Uusi salasana: + fi #New passw.: + + + + Select folder: + + Valitse kansio: + + + + Reply + + Vastaa + + + + Read + + Lue + + + + Go to web address + + Siirry Web-osoitteeseen + fi #Go to address + + + + Join + + Liity + + + + Processing + + Käsitellään + + + + Date: + + Päivämäärä: + + + + Help + + Ohjeet + + + + Cancelling + + Peruutetaan + + + + Deactivate loudspeaker + + Poista kaiutin käytöstä + fi #Deactivate loudsp. + + + + To: + + Päättyy: + + + + Uninstalling + + Poistetaan asennusta + + + + Exit + + Poistu + + + + User ID: + + Käyttäjätunnus: + + + + Help + + Ohjeet + + + + Uninstall + + Poista asennus + + + + Define + + Määritä + + + + Expand + + Laajenna + + + + Back + + Takaisin + + + + Change + + Muuta + + + + Collapse + + Kutista + + + + Additional details + + Lisätietoja + fi #Add. details + + + + Delete + + Poista + + + + Address: + + Osoite: + + + + Forward + + Lähetä edelleen + + + + Quit + + Lopeta + + + + Verify new password: + + Toista uusi salasana: + fi #Verify new passw.: + + + + Pause + + fi #Pause + + + + Undo + + fi #Undo + + + + Video call + + fi #Video call + + + + Paste + + fi #Paste + + + + Zoom out + + Pienennä + + + + Last name: + + Sukunimi: + + + + Reject + + Hylkää + + + + Fit to screen + + Sovita näyttöön + fi #Fit to scrn + + + + Answer + + Vastaa + + + + Resume + + fi #Resume + + + + Loudsp. off + + fi #Loudsp. off + + + + Save + + fi #Save + + + + Deselect + + fi #Deselect + + + + Disconnecting + + fi #Disconnecting + + + + Select language: + + Valitse kieli: + fi #Select language: + + + + Add member + + Lisää jäsen + + + + Add + + Lisää + + + + Yes + + Kyllä + + + + Chat + + Chat + + + + Cancel + + Peruuta + + + + Deleting + + Poistetaan + + + + Handset + + Puhelin + + + + Hide + + Piilota + + + + Connecting + + Muodostetaan yhteyttä + + + + Insert + + Lisää + + + + No + + Ei + + + + Inserting + + Lisätään + + + + Opening + + Avataan + + + + Phone number: + + fi #Phone number: + + + + Initialising + + Alustetaan + + + + Web address: + + fi #Web address: + + + + Print + + fi #Print + + + + Deactivate + + Poista käytöstä + + + + Stop + + Lopeta + + + + Details + + Tiedot + + + + Continue + + Jatka + + + + Listen + + Kuuntele + + + + First name: + + Etunimi: + + + + Expires: + + Vanhenee: + + + + Adding + + Lisätään + + + + Verify password: + + Toista salasana: + fi #Verify passw.: + + + + Voice call + + Äänipuhelu + + + + Install + + Asenna + + + + Select tone: + + Valitse ääni: + + + + Show + + Näytä + + + + Writing language: + + Kirjoituskieli: + fi #Writing language: + + + + Add thumbnail + + Lisää pikkukuva + + + + Disconnect + + Katkaise yhteys + fi #Disconn. + + + + Title: + + fi #Title: + + + + Installing + + fi #Installing + + + + End date: + + fi #End date: + + + + Folder name: + + fi #Folder name: + + + + Activate loudspeaker + + fi #Activate loudspeaker + + + + Select all contents + + fi #Select all contents + + + + Attachments + + fi #Attachments + + + + Buffering + + Luetaan puskuriin + + + + Time: + + Aika: + + + + Find + + Etsi + + + + Organise + + Järjestele + + + + Copying + + Kopioidaan + + + + Create message + + Luo viesti + fi #Create msg. + + + + Mark + + Valitse + + + + From: + + Alkaa: + + + + Add image + + fi #Add image + + + + Activate handset + + fi #Activate handset + + + + Retrieving + + fi #Retrieving + + + + Internet call + + fi #Internet call + + + + Options + + fi #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_fr.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_fr.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + fr #Open + + + + Unmute + + fr #Unmute + + + + Settings + + fr #Settings + + + + Add to folder + + fr #Add to folder + + + + Password: + + fr #Password: + + + + OK + + fr #OK + + + + User name: + + fr #User name: + + + + Cancel download + + fr #Cancel download + + + + Cut + + fr #Cut + + + + Closing + + fr #Closing + + + + Finish + + fr #Finish + + + + Registering + + fr #Registering + + + + Removing + + fr #Removing + + + + Requesting + + fr #Requesting + + + + Remove + + fr #Remove + + + + Moving + + fr #Moving + + + + Add detail + + fr #Add detail + + + + File name: + + fr #File name: + + + + Send + + fr #Send + + + + Advanced settings + + fr #Advanced settings + + + + Format + + fr #Format + + + + Add recipient + + fr #Add recipient + + + + Edit + + fr #Edit + + + + Menu + + Menu + + + + Unmark + + Décocher + + + + Bookmark name: + + Nom du signet: + + + + Loudsp. on + + Activer le haut-parleur + fr #Loudsp. on + + + + Move + + Déplacer + + + + Select all items + + Sélectionner tous les éléments + + + + Copy + + Copier + + + + Disable + + Désactiver + + + + Select memory: + + Sélectionnez une mémoire: + + + + Retry + + Réessayer + + + + Copy to folder + + Copier dans un dossier + + + + Enable + + Activer + + + + Send message + + Envoyer un message + fr #Send msg. + + + + Add bookmark + + Ajouter un signet + + + + Mute + + Couper micro + + + + Duration: + + Durée: + + + + Select file: + + Sélectionnez un fichier: + + + + Reset + + Mise à zéro + + + + Done + + fr #Done + + + + Move to folder + + Déplacer dans un dossier + + + + Zoom in + + fr #Zoom in + + + + Connect + + fr #Connect + + + + Call + + Appeler + + + + Clear + + Effacer + + + + Current password: + + Mot de passe actuel: + fr #Current passw.: + + + + Deselect all items + + Désélectionner tous les éléments + + + + Select + + fr #Select + + + + Close + + fr #Close + + + + Saving + + Enregistrement + + + + Loading + + Chargement + + + + Replace + + Remplacer + + + + Start + + Démarrer + + + + Searching + + Recherche en cours + + + + Select address: + + Sélectionnez une adresse: + fr #Select addr.: + + + + Details: + + Détails: + + + + New password: + + Nouveau mot de passe: + fr #New passw.: + + + + Select folder: + + Sélectionnez un dossier: + + + + Reply + + Répondre + + + + Read + + Lire + + + + Go to web address + + Aller à l'adresse Web + fr #Go to address + + + + Join + + Rejoind. + + + + Processing + + Traitement + + + + Date: + + Date: + + + + Help + + Aide + + + + Cancelling + + Annulation + + + + Deactivate loudspeaker + + Désactiver le haut-parleur + fr #Deactivate loudsp. + + + + To: + + A: + + + + Uninstalling + + Désinstallation + + + + Exit + + Quitter + + + + User ID: + + Identifiant utilisateur: + + + + Help + + Aide + + + + Uninstall + + Désinstaller + + + + Define + + Définir + + + + Expand + + Développer + + + + Back + + Retour + + + + Change + + Changer + + + + Collapse + + Réduire + + + + Additional details + + Détails supplémentaires + fr #Add. details + + + + Delete + + Supprimer + + + + Address: + + Adresse: + + + + Forward + + Suivant + + + + Quit + + Quitter + + + + Verify new password: + + Confirmez le nouveau mot de passe: + fr #Verify new passw.: + + + + Pause + + fr #Pause + + + + Undo + + fr #Undo + + + + Video call + + fr #Video call + + + + Paste + + fr #Paste + + + + Zoom out + + Rétrécir + + + + Last name: + + Nom de famille: + + + + Reject + + Rejeter + + + + Fit to screen + + Adapter à l'écran + fr #Fit to scrn + + + + Answer + + Répondre + + + + Resume + + fr #Resume + + + + Loudsp. off + + fr #Loudsp. off + + + + Save + + fr #Save + + + + Deselect + + fr #Deselect + + + + Disconnecting + + fr #Disconnecting + + + + Select language: + + Sélectionnez une langue: + fr #Select language: + + + + Add member + + Ajouter un membre + + + + Add + + Ajouter + + + + Yes + + Oui + + + + Chat + + Chat + + + + Cancel + + Annuler + + + + Deleting + + Suppression + + + + Handset + + Combiné + + + + Hide + + Masquer + + + + Connecting + + Connexion en cours + + + + Insert + + Insérer + + + + No + + Non + + + + Inserting + + Insertion + + + + Opening + + Ouverture + + + + Phone number: + + fr #Phone number: + + + + Initialising + + Initialisation + + + + Web address: + + fr #Web address: + + + + Print + + fr #Print + + + + Deactivate + + Désactiver + + + + Stop + + Arrêter + + + + Details + + Détails + + + + Continue + + Continuer + + + + Listen + + Écouter + + + + First name: + + Prénom: + + + + Expires: + + Expire le: + + + + Adding + + Ajout + + + + Verify password: + + Confirmez le mot de passe: + fr #Verify passw.: + + + + Voice call + + Appel vocal + + + + Install + + Installer + + + + Select tone: + + Sélectionnez une sonnerie: + + + + Show + + Afficher + + + + Writing language: + + Langue d'écriture: + fr #Writing language: + + + + Add thumbnail + + Ajouter une imagette + + + + Disconnect + + Déconnecter + fr #Disconn. + + + + Title: + + fr #Title: + + + + Installing + + fr #Installing + + + + End date: + + fr #End date: + + + + Folder name: + + fr #Folder name: + + + + Activate loudspeaker + + fr #Activate loudspeaker + + + + Select all contents + + fr #Select all contents + + + + Attachments + + fr #Attachments + + + + Buffering + + Mise en mémoire tampon + + + + Time: + + Durée: + + + + Find + + Chercher + + + + Organise + + Organiser + + + + Copying + + Copie + + + + Create message + + Créer un message + fr #Create msg. + + + + Mark + + Cocher + + + + From: + + De: + + + + Add image + + fr #Add image + + + + Activate handset + + fr #Activate handset + + + + Retrieving + + fr #Retrieving + + + + Internet call + + fr #Internet call + + + + Options + + fr #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_fr_CA.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_fr_CA.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + fr_ca #Open + + + + Unmute + + fr_ca #Unmute + + + + Settings + + fr_ca #Settings + + + + Add to folder + + fr_ca #Add to folder + + + + Password: + + fr_ca #Password: + + + + OK + + fr_ca #OK + + + + User name: + + fr_ca #User name: + + + + Cancel download + + fr_ca #Cancel download + + + + Cut + + fr_ca #Cut + + + + Closing + + fr_ca #Closing + + + + Finish + + fr_ca #Finish + + + + Registering + + fr_ca #Registering + + + + Removing + + fr_ca #Removing + + + + Requesting + + fr_ca #Requesting + + + + Remove + + fr_ca #Remove + + + + Moving + + fr_ca #Moving + + + + Add detail + + fr_ca #Add detail + + + + File name: + + fr_ca #File name: + + + + Send + + fr_ca #Send + + + + Advanced settings + + fr_ca #Advanced settings + + + + Format + + fr_ca #Format + + + + Add recipient + + fr_ca #Add recipient + + + + Edit + + fr_ca #Edit + + + + Menu + + Menu + + + + Unmark + + Annuler la marque + + + + Bookmark name: + + Nom du signet: + + + + Loudsp. on + + Haut-parleur activé + fr_ca #Loudsp. on + + + + Move + + Déplacer + + + + Select all items + + Sélectionner tous les éléments + + + + Copy + + Copier + + + + Disable + + Désactiver + + + + Select memory: + + Sélectionner une mémoire: + + + + Retry + + Réessayer + + + + Copy to folder + + Copier dans le dossier + + + + Enable + + Activer + + + + Send message + + Envoyer un message + fr_ca #Send msg. + + + + Add bookmark + + Ajouter un signet + + + + Mute + + Mettre en sourdine + + + + Duration: + + Durée: + + + + Select file: + + Sélectionner un fichier: + + + + Reset + + Réinitialiser + + + + Done + + fr_ca #Done + + + + Move to folder + + Déplacer dans le dossier + + + + Zoom in + + fr_ca #Zoom in + + + + Connect + + fr_ca #Connect + + + + Call + + Appeler + + + + Clear + + Effacer + + + + Current password: + + Mot de passe actuel: + fr_ca #Current passw.: + + + + Deselect all items + + Désélectionner tous les éléments + + + + Select + + fr_ca #Select + + + + Close + + fr_ca #Close + + + + Saving + + Enregistrement en cours + + + + Loading + + Chargement en cours + + + + Replace + + Remplacer + + + + Start + + Démarrer + + + + Searching + + Recherche en cours + + + + Select address: + + Sélectionner une adresse: + fr_ca #Select addr.: + + + + Details: + + Détails: + + + + New password: + + Nouveau mot de passe: + fr_ca #New passw.: + + + + Select folder: + + Sélectionner un dossier: + + + + Reply + + Répondre + + + + Read + + Lire + + + + Go to web address + + Aller à l'adresse Web + fr_ca #Go to address + + + + Join + + Joindre + + + + Processing + + Traitement en cours + + + + Date: + + Date: + + + + Help + + Aide + + + + Cancelling + + Annulation en cours + + + + Deactivate loudspeaker + + Désactiver le haut-parleur + fr_ca #Deactivate loudsp. + + + + To: + + À: + + + + Uninstalling + + Désinstallation en cours + + + + Exit + + Quitter + + + + User ID: + + ID de l'utilisateur: + + + + Help + + Aide + + + + Uninstall + + Désinstaller + + + + Define + + Définir + + + + Expand + + Développer + + + + Back + + Précédent + + + + Change + + Changer + + + + Collapse + + Réduire + + + + Additional details + + Détails additionnels + fr_ca #Add. details + + + + Delete + + Supprimer + + + + Address: + + Adresse: + + + + Forward + + Transférer + + + + Quit + + Quitter + + + + Verify new password: + + Confirmez le nouveau mot de passe: + fr_ca #Verify new passw.: + + + + Pause + + fr_ca #Pause + + + + Undo + + fr_ca #Undo + + + + Video call + + fr_ca #Video call + + + + Paste + + fr_ca #Paste + + + + Zoom out + + Zoom arrière + + + + Last name: + + Nom de famille: + + + + Reject + + Rejeter + + + + Fit to screen + + Ajuster à l'écran + fr_ca #Fit to scrn + + + + Answer + + Répondre + + + + Resume + + fr_ca #Resume + + + + Loudsp. off + + fr_ca #Loudsp. off + + + + Save + + fr_ca #Save + + + + Deselect + + fr_ca #Deselect + + + + Disconnecting + + fr_ca #Disconnecting + + + + Select language: + + Sélectionner une langue: + fr_ca #Select language: + + + + Add member + + Ajouter un membre + + + + Add + + Ajouter + + + + Yes + + Oui + + + + Chat + + Clavardage + + + + Cancel + + Annuler + + + + Deleting + + Suppression en cours + + + + Handset + + Combiné + + + + Hide + + Masquer + + + + Connecting + + Connexion en cours + + + + Insert + + Insérer + + + + No + + Non + + + + Inserting + + Insertion en cours + + + + Opening + + Ouverture en cours + + + + Phone number: + + fr_ca #Phone number: + + + + Initialising + + Initialisation en cours + + + + Web address: + + fr_ca #Web address: + + + + Print + + fr_ca #Print + + + + Deactivate + + Désactiver + + + + Stop + + Arrêter + + + + Details + + Détails + + + + Continue + + Continuer + + + + Listen + + Écouter + + + + First name: + + Prénom: + + + + Expires: + + Expire le: + + + + Adding + + Ajout en cours + + + + Verify password: + + Confirmez le mot de passe: + fr_ca #Verify passw.: + + + + Voice call + + Appel vocal + + + + Install + + Installer + + + + Select tone: + + Sélectionner une tonalité: + + + + Show + + Afficher + + + + Writing language: + + Langue d'écriture: + fr_ca #Writing language: + + + + Add thumbnail + + Ajouter une miniature + + + + Disconnect + + Déconnecter + fr_ca #Disconn. + + + + Title: + + fr_ca #Title: + + + + Installing + + fr_ca #Installing + + + + End date: + + fr_ca #End date: + + + + Folder name: + + fr_ca #Folder name: + + + + Activate loudspeaker + + fr_ca #Activate loudspeaker + + + + Select all contents + + fr_ca #Select all contents + + + + Attachments + + fr_ca #Attachments + + + + Buffering + + Mise en mémoire tampon + + + + Time: + + Heure: + + + + Find + + Rechercher + + + + Organise + + Organiser + + + + Copying + + Copie en cours + + + + Create message + + Créer un message + fr_ca #Create msg. + + + + Mark + + Marquer + + + + From: + + De: + + + + Add image + + fr_ca #Add image + + + + Activate handset + + fr_ca #Activate handset + + + + Retrieving + + fr_ca #Retrieving + + + + Internet call + + fr_ca #Internet call + + + + Options + + fr_ca #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_gl.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_gl.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + gl #Open + + + + Unmute + + gl #Unmute + + + + Settings + + gl #Settings + + + + Add to folder + + gl #Add to folder + + + + Password: + + gl #Password: + + + + OK + + gl #OK + + + + User name: + + gl #User name: + + + + Cancel download + + gl #Cancel download + + + + Cut + + gl #Cut + + + + Closing + + gl #Closing + + + + Finish + + gl #Finish + + + + Registering + + gl #Registering + + + + Removing + + gl #Removing + + + + Requesting + + gl #Requesting + + + + Remove + + gl #Remove + + + + Moving + + gl #Moving + + + + Add detail + + gl #Add detail + + + + File name: + + gl #File name: + + + + Send + + gl #Send + + + + Advanced settings + + gl #Advanced settings + + + + Format + + gl #Format + + + + Add recipient + + gl #Add recipient + + + + Edit + + gl #Edit + + + + Menu + + Menú + + + + Unmark + + Desmarcar + + + + Bookmark name: + + Nome do favorito: + + + + Loudsp. on + + Altofalante activado + gl #Loudsp. on + + + + Move + + Mover + + + + Select all items + + Seleccionar todos os elementos + + + + Copy + + Copiar + + + + Disable + + Desactivar + + + + Select memory: + + Seleccione memoria: + + + + Retry + + Reintentar + + + + Copy to folder + + Copiar na carpeta + + + + Enable + + Activar + + + + Send message + + Enviar mensaxe + gl #Send msg. + + + + Add bookmark + + Engadir favorito + + + + Mute + + Silenciar + + + + Duration: + + Duración: + + + + Select file: + + Seleccionar ficheiro: + + + + Reset + + Restablecer + + + + Done + + gl #Done + + + + Move to folder + + Mover á carpeta + + + + Zoom in + + gl #Zoom in + + + + Connect + + gl #Connect + + + + Call + + Chamar + + + + Clear + + Borrar + + + + Current password: + + Contrasinal actual: + gl #Current passw.: + + + + Deselect all items + + Deseleccionar todos os elementos + + + + Select + + gl #Select + + + + Close + + gl #Close + + + + Saving + + Gardando + + + + Loading + + Cargando + + + + Replace + + Substituír + + + + Start + + Iniciar + + + + Searching + + Buscando + + + + Select address: + + Seleccionar enderezo: + gl #Select addr.: + + + + Details: + + Detalles: + + + + New password: + + Novo contrasinal: + gl #New passw.: + + + + Select folder: + + Seleccionar carpeta: + + + + Reply + + Responder + + + + Read + + Ler + + + + Go to web address + + Ir ao enderezo web + gl #Go to address + + + + Join + + Unirse a + + + + Processing + + Procesando + + + + Date: + + Data: + + + + Help + + Axuda + + + + Cancelling + + Cancelando + + + + Deactivate loudspeaker + + Desactivar o altofalante + gl #Deactivate loudsp. + + + + To: + + Para: + + + + Uninstalling + + Desinstalando + + + + Exit + + Saír + + + + User ID: + + ID de usuario: + + + + Help + + Axuda + + + + Uninstall + + Desinstalar + + + + Define + + Definir + + + + Expand + + Expandir + + + + Back + + Atrás + + + + Change + + Cambiar + + + + Collapse + + Contraer + + + + Additional details + + Detalles adicionais + gl #Add. details + + + + Delete + + Borrar + + + + Address: + + Enderezo: + + + + Forward + + Reenviar + + + + Quit + + Abandonar + + + + Verify new password: + + Confirme o novo contrasinal: + gl #Verify new passw.: + + + + Pause + + gl #Pause + + + + Undo + + gl #Undo + + + + Video call + + gl #Video call + + + + Paste + + gl #Paste + + + + Zoom out + + Reducir + + + + Last name: + + Apelidos: + + + + Reject + + Rexeitar + + + + Fit to screen + + Axustar á pantalla + gl #Fit to scrn + + + + Answer + + Responder + + + + Resume + + gl #Resume + + + + Loudsp. off + + gl #Loudsp. off + + + + Save + + gl #Save + + + + Deselect + + gl #Deselect + + + + Disconnecting + + gl #Disconnecting + + + + Select language: + + Seleccionar idioma: + gl #Select language: + + + + Add member + + Engadir membro + + + + Add + + Engadir + + + + Yes + + Si + + + + Chat + + Conversa + + + + Cancel + + Cancelar + + + + Deleting + + Borrando + + + + Handset + + Teléfono + + + + Hide + + Ocultar + + + + Connecting + + Conectando + + + + Insert + + Inserir + + + + No + + Non + + + + Inserting + + Inserindo + + + + Opening + + Abrindo + + + + Phone number: + + gl #Phone number: + + + + Initialising + + Iniciando + + + + Web address: + + gl #Web address: + + + + Print + + gl #Print + + + + Deactivate + + Desactivar + + + + Stop + + Deter + + + + Details + + Detalles + + + + Continue + + Continuar + + + + Listen + + Escoitar + + + + First name: + + Nome: + + + + Expires: + + Caduca: + + + + Adding + + Engadindo + + + + Verify password: + + Confirme o contrasinal: + gl #Verify passw.: + + + + Voice call + + Chamada de voz + + + + Install + + Instalar + + + + Select tone: + + Seleccionar ton: + + + + Show + + Amosar + + + + Writing language: + + Idioma de escritura: + gl #Writing language: + + + + Add thumbnail + + Engadir miniatura + + + + Disconnect + + Desconectar + gl #Disconn. + + + + Title: + + gl #Title: + + + + Installing + + gl #Installing + + + + End date: + + gl #End date: + + + + Folder name: + + gl #Folder name: + + + + Activate loudspeaker + + gl #Activate loudspeaker + + + + Select all contents + + gl #Select all contents + + + + Attachments + + gl #Attachments + + + + Buffering + + Almacenando no búfer + + + + Time: + + Hora: + + + + Find + + Buscar + + + + Organise + + Organizar + + + + Copying + + Copiando + + + + Create message + + Crear mensaxe + gl #Create msg. + + + + Mark + + Marcar + + + + From: + + Desde: + + + + Add image + + gl #Add image + + + + Activate handset + + gl #Activate handset + + + + Retrieving + + gl #Retrieving + + + + Internet call + + gl #Internet call + + + + Options + + gl #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_he.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_he.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + he #Open + + + + Unmute + + he #Unmute + + + + Settings + + he #Settings + + + + Add to folder + + he #Add to folder + + + + Password: + + he #Password: + + + + OK + + he #OK + + + + User name: + + he #User name: + + + + Cancel download + + he #Cancel download + + + + Cut + + he #Cut + + + + Closing + + he #Closing + + + + Finish + + he #Finish + + + + Registering + + he #Registering + + + + Removing + + he #Removing + + + + Requesting + + he #Requesting + + + + Remove + + he #Remove + + + + Moving + + he #Moving + + + + Add detail + + he #Add detail + + + + File name: + + he #File name: + + + + Send + + he #Send + + + + Advanced settings + + he #Advanced settings + + + + Format + + he #Format + + + + Add recipient + + he #Add recipient + + + + Edit + + he #Edit + + + + Menu + + תפריט + + + + Unmark + + ביטול סימון + + + + Bookmark name: + + שם סימנייה: + + + + Loudsp. on + + רמקול מופעל + he #Loudsp. on + + + + Move + + העברה + + + + Select all items + + בחירת כל הפריטים + + + + Copy + + העתקה + + + + Disable + + השבתה + + + + Select memory: + + בחירת זיכרון: + + + + Retry + + נסה שוב + + + + Copy to folder + + העתקה לתיקייה + + + + Enable + + הפעלה + + + + Send message + + שליחת הודעה + he #Send msg. + + + + Add bookmark + + הוספת סימנייה + + + + Mute + + השתקה + + + + Duration: + + משך זמן: + + + + Select file: + + בחירת קובץ: + + + + Reset + + איפוס + + + + Done + + he #Done + + + + Move to folder + + העברה לתיקייה + + + + Zoom in + + he #Zoom in + + + + Connect + + he #Connect + + + + Call + + שיחה + + + + Clear + + מחיקה + + + + Current password: + + סיסמה נוכחית: + he #Current passw.: + + + + Deselect all items + + ביטול של בחירת כל הפריטים + + + + Select + + he #Select + + + + Close + + he #Close + + + + Saving + + שומר + + + + Loading + + בטעינה + + + + Replace + + החלפה + + + + Start + + התחלה + + + + Searching + + מחפש + + + + Select address: + + בחירת כתובת: + he #Select addr.: + + + + Details: + + פרטים: + + + + New password: + + סיסמה חדשה: + he #New passw.: + + + + Select folder: + + בחירת תיקייה: + + + + Reply + + מענה + + + + Read + + קריאה + + + + Go to web address + + מעבר לכתובת אינטרנט + he #Go to address + + + + Join + + הצטרפות + + + + Processing + + מעבד + + + + Date: + + תאריך: + + + + Help + + עזרה + + + + Cancelling + + מבטל + + + + Deactivate loudspeaker + + השבתת רמקול + he #Deactivate loudsp. + + + + To: + + אל: + + + + Uninstalling + + מסיר התקנה + + + + Exit + + יציאה + + + + User ID: + + מזהה משתמש: + + + + Help + + עזרה + + + + Uninstall + + הסרת התקנה + + + + Define + + הגדרה + + + + Expand + + הרחבה + + + + Back + + חזרה + + + + Change + + שינוי + + + + Collapse + + כיווץ + + + + Additional details + + פרטים נוספים + he #Add. details + + + + Delete + + מחיקה + + + + Address: + + כתובת: + + + + Forward + + קדימה + + + + Quit + + סיום + + + + Verify new password: + + אימות סיסמה חדשה: + he #Verify new passw.: + + + + Pause + + he #Pause + + + + Undo + + he #Undo + + + + Video call + + he #Video call + + + + Paste + + he #Paste + + + + Zoom out + + הקטנה + + + + Last name: + + שם משפחה: + + + + Reject + + דחייה + + + + Fit to screen + + התאמה למסך + he #Fit to scrn + + + + Answer + + מענה + + + + Resume + + he #Resume + + + + Loudsp. off + + he #Loudsp. off + + + + Save + + he #Save + + + + Deselect + + he #Deselect + + + + Disconnecting + + he #Disconnecting + + + + Select language: + + בחירת שפה: + he #Select language: + + + + Add member + + הוספת חבר + + + + Add + + הוספה + + + + Yes + + כן + + + + Chat + + צ'אט + + + + Cancel + + ביטול + + + + Deleting + + מוחק + + + + Handset + + טלפון + + + + Hide + + הסתרה + + + + Connecting + + מתחבר + + + + Insert + + הוספה + + + + No + + לא + + + + Inserting + + מוסיף + + + + Opening + + פותח + + + + Phone number: + + he #Phone number: + + + + Initialising + + מאתחל + + + + Web address: + + he #Web address: + + + + Print + + he #Print + + + + Deactivate + + השבתה + + + + Stop + + עצירה + + + + Details + + פרטים + + + + Continue + + המשך + + + + Listen + + האזנה + + + + First name: + + שם פרטי: + + + + Expires: + + תפוגה: + + + + Adding + + מוסיף + + + + Verify password: + + אימות סיסמה: + he #Verify passw.: + + + + Voice call + + שיחה קולית + + + + Install + + התקנה + + + + Select tone: + + בחירת צלצול: + + + + Show + + הצגה + + + + Writing language: + + שפת כתיבה: + he #Writing language: + + + + Add thumbnail + + הוספת תמונה ממוזערת + + + + Disconnect + + ניתוק + he #Disconn. + + + + Title: + + he #Title: + + + + Installing + + he #Installing + + + + End date: + + he #End date: + + + + Folder name: + + he #Folder name: + + + + Activate loudspeaker + + he #Activate loudspeaker + + + + Select all contents + + he #Select all contents + + + + Attachments + + he #Attachments + + + + Buffering + + מבצע אגירה + + + + Time: + + שעה: + + + + Find + + חיפוש + + + + Organise + + ארגון + + + + Copying + + מעתיק + + + + Create message + + יצירת הודעה + he #Create msg. + + + + Mark + + סימון + + + + From: + + מאת: + + + + Add image + + he #Add image + + + + Activate handset + + he #Activate handset + + + + Retrieving + + he #Retrieving + + + + Internet call + + he #Internet call + + + + Options + + he #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_hi.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_hi.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + Open + + + + Unmute + + Unmute + + + + Settings + + Settings + + + + Add to folder + + Add to folder + + + + Password: + + Password: + + + + OK + + OK + + + + User name: + + User name: + + + + Cancel download + + Cancel download + + + + Cut + + Cut + + + + Closing + + Closing + + + + Finish + + Finish + + + + Registering + + Registering + + + + Removing + + Removing + + + + Requesting + + Requesting + + + + Remove + + Remove + + + + Moving + + Moving + + + + Add detail + + Add detail + + + + File name: + + File name: + + + + Send + + Send + + + + Advanced settings + + Advanced settings + + + + Format + + Format + + + + Add recipient + + Add recipient + + + + Edit + + Edit + + + + Menu + + hi #Menu + + + + Unmark + + hi #Unmark + + + + Bookmark name: + + hi #Bookmark name: + + + + Loudsp. on + + hi #Loudspeaker on + hi #Loudsp. on + + + + Move + + hi #Move + + + + Select all items + + hi #Select all items + + + + Copy + + hi #Copy + + + + Disable + + hi #Disable + + + + Select memory: + + hi #Select memory: + + + + Retry + + hi #Retry + + + + Copy to folder + + hi #Copy to folder + + + + Enable + + hi #Enable + + + + Send message + + hi #Send message + hi #Send msg. + + + + Add bookmark + + hi #Add bookmark + + + + Mute + + hi #Mute + + + + Duration: + + hi #Duration: + + + + Select file: + + hi #Select file: + + + + Reset + + hi #Reset + + + + Done + + Done + + + + Move to folder + + hi #Move to folder + + + + Zoom in + + Zoom in + + + + Connect + + Connect + + + + Call + + hi #Call + + + + Clear + + hi #Clear + + + + Current password: + + hi #Current password: + hi #Current passw.: + + + + Deselect all items + + hi #Deselect all items + + + + Select + + Select + + + + Close + + Close + + + + Saving + + hi #Saving + + + + Loading + + hi #Loading + + + + Replace + + hi #Replace + + + + Start + + hi #Start + + + + Searching + + hi #Searching + + + + Select address: + + hi #Select address: + hi #Select addr.: + + + + Details: + + hi #Details: + + + + New password: + + hi #New password: + hi #New passw.: + + + + Select folder: + + hi #Select folder: + + + + Reply + + hi #Reply + + + + Read + + hi #Read + + + + Go to web address + + hi #Go to web address + hi #Go to address + + + + Join + + hi #Join + + + + Processing + + hi #Processing + + + + Date: + + hi #Date: + + + + Help + + hi #Help + + + + Cancelling + + hi #Cancelling + + + + Deactivate loudspeaker + + hi #Deactivate loudspeaker + hi #Deactivate loudsp. + + + + To: + + hi #To: + + + + Uninstalling + + hi #Uninstalling + + + + Exit + + hi #Exit + + + + User ID: + + hi #User ID: + + + + Help + + hi #Help + + + + Uninstall + + hi #Uninstall + + + + Define + + hi #Define + + + + Expand + + hi #Expand + + + + Back + + hi #Back + + + + Change + + hi #Change + + + + Collapse + + hi #Collapse + + + + Additional details + + hi #Additional details + hi #Add. details + + + + Delete + + hi #Delete + + + + Address: + + hi #Address: + + + + Forward + + hi #Forward + + + + Quit + + hi #Quit + + + + Verify new password: + + hi #Verify new password: + hi #Verify new passw.: + + + + Pause + + Pause + + + + Undo + + Undo + + + + Video call + + Video call + + + + Paste + + Paste + + + + Zoom out + + hi #Zoom out + + + + Last name: + + hi #Last name: + + + + Reject + + hi #Reject + + + + Fit to screen + + hi #Fit to screen + hi #Fit to scrn + + + + Answer + + hi #Answer + + + + Resume + + Resume + + + + Loudsp. off + + Loudsp. off + + + + Save + + Save + + + + Deselect + + Deselect + + + + Disconnecting + + Disconnecting + + + + Select language: + + hi #Select language: + hi #Select language: + + + + Add member + + hi #Add member + + + + Add + + hi #Add + + + + Yes + + hi #Yes + + + + Chat + + hi #Chat + + + + Cancel + + hi #Cancel + + + + Deleting + + hi #Deleting + + + + Handset + + hi #Handset + + + + Hide + + hi #Hide + + + + Connecting + + hi #Connecting + + + + Insert + + hi #Insert + + + + No + + hi #No + + + + Inserting + + hi #Inserting + + + + Opening + + hi #Opening + + + + Phone number: + + Phone number: + + + + Initialising + + hi #Initialising + + + + Web address: + + Web address: + + + + Print + + Print + + + + Deactivate + + hi #Deactivate + + + + Stop + + hi #Stop + + + + Details + + hi #Details + + + + Continue + + hi #Continue + + + + Listen + + hi #Listen + + + + First name: + + hi #First name: + + + + Expires: + + hi #Expires: + + + + Adding + + hi #Adding + + + + Verify password: + + hi #Verify password: + hi #Verify passw.: + + + + Voice call + + hi #Voice call + + + + Install + + hi #Install + + + + Select tone: + + hi #Select tone: + + + + Show + + hi #Show + + + + Writing language: + + hi #Writing language: + hi #Writing language: + + + + Add thumbnail + + hi #Add thumbnail + + + + Disconnect + + hi #Disconnect + hi #Disconn. + + + + Title: + + Title: + + + + Installing + + Installing + + + + End date: + + End date: + + + + Folder name: + + Folder name: + + + + Activate loudspeaker + + Activate loudspeaker + + + + Select all contents + + Select all contents + + + + Attachments + + Attachments + + + + Buffering + + hi #Buffering + + + + Time: + + hi #Time: + + + + Find + + hi #Find + + + + Organise + + hi #Organise + + + + Copying + + hi #Copying + + + + Create message + + hi #Create message + hi #Create msg. + + + + Mark + + hi #Mark + + + + From: + + hi #From: + + + + Add image + + Add image + + + + Activate handset + + Activate handset + + + + Retrieving + + Retrieving + + + + Internet call + + Internet call + + + + Options + + Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_hr.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_hr.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + hr #Open + + + + Unmute + + hr #Unmute + + + + Settings + + hr #Settings + + + + Add to folder + + hr #Add to folder + + + + Password: + + hr #Password: + + + + OK + + hr #OK + + + + User name: + + hr #User name: + + + + Cancel download + + hr #Cancel download + + + + Cut + + hr #Cut + + + + Closing + + hr #Closing + + + + Finish + + hr #Finish + + + + Registering + + hr #Registering + + + + Removing + + hr #Removing + + + + Requesting + + hr #Requesting + + + + Remove + + hr #Remove + + + + Moving + + hr #Moving + + + + Add detail + + hr #Add detail + + + + File name: + + hr #File name: + + + + Send + + hr #Send + + + + Advanced settings + + hr #Advanced settings + + + + Format + + hr #Format + + + + Add recipient + + hr #Add recipient + + + + Edit + + hr #Edit + + + + Menu + + Izbornik + + + + Unmark + + Odznači + + + + Bookmark name: + + Naziv oznake: + + + + Loudsp. on + + Uključi zvučnik + hr #Loudsp. on + + + + Move + + Pomakni + + + + Select all items + + Odaberi sve stavke + + + + Copy + + Kopiraj + + + + Disable + + Onemogući + + + + Select memory: + + Odabir memorije: + + + + Retry + + Ponovi + + + + Copy to folder + + Kopiraj u mapu + + + + Enable + + Omogući + + + + Send message + + Pošalji poruku + hr #Send msg. + + + + Add bookmark + + Dodaj oznaku + + + + Mute + + Isključi zvuk + + + + Duration: + + Trajanje: + + + + Select file: + + Odabir datoteke: + + + + Reset + + Ponovo postavi + + + + Done + + hr #Done + + + + Move to folder + + Premjesti u mapu + + + + Zoom in + + hr #Zoom in + + + + Connect + + hr #Connect + + + + Call + + Zovi + + + + Clear + + Izbriši + + + + Current password: + + Važeća zaporka: + hr #Current passw.: + + + + Deselect all items + + Poništi izbor svih stavki + + + + Select + + hr #Select + + + + Close + + hr #Close + + + + Saving + + Spremanje u tijeku + + + + Loading + + U tijeku učitavanje + + + + Replace + + Zamijeni + + + + Start + + Pokreni + + + + Searching + + Traženje u tijeku + + + + Select address: + + Odabir adrese: + hr #Select addr.: + + + + Details: + + Pojedinosti: + + + + New password: + + Nova zaporka: + hr #New passw.: + + + + Select folder: + + Odabir mape: + + + + Reply + + Odgovori + + + + Read + + Čitaj + + + + Go to web address + + Idi na web-adresu + hr #Go to address + + + + Join + + Pridruži + + + + Processing + + Obrada u tijeku + + + + Date: + + Datum: + + + + Help + + Pomoć + + + + Cancelling + + U tijeku poništavanje + + + + Deactivate loudspeaker + + Isključi zvučnik + hr #Deactivate loudsp. + + + + To: + + Do: + + + + Uninstalling + + U tijeku uklanjanje instalacije + + + + Exit + + Izlaz + + + + User ID: + + Korisnički ID: + + + + Help + + Pomoć + + + + Uninstall + + Deinstaliraj + + + + Define + + Definiraj + + + + Expand + + Proširi + + + + Back + + Natrag + + + + Change + + Promijeni + + + + Collapse + + Sažmi + + + + Additional details + + Dodatne pojedinosti + hr #Add. details + + + + Delete + + Izbriši + + + + Address: + + Adresa: + + + + Forward + + Proslijedi + + + + Quit + + Prekini + + + + Verify new password: + + Potvrdite novu zaporku: + hr #Verify new passw.: + + + + Pause + + hr #Pause + + + + Undo + + hr #Undo + + + + Video call + + hr #Video call + + + + Paste + + hr #Paste + + + + Zoom out + + Smanji + + + + Last name: + + Prezime: + + + + Reject + + Odbij + + + + Fit to screen + + Prilagodi zaslonu + hr #Fit to scrn + + + + Answer + + Odgovori + + + + Resume + + hr #Resume + + + + Loudsp. off + + hr #Loudsp. off + + + + Save + + hr #Save + + + + Deselect + + hr #Deselect + + + + Disconnecting + + hr #Disconnecting + + + + Select language: + + Odabir jezika: + hr #Select language: + + + + Add member + + Dodaj člana + + + + Add + + Dodaj + + + + Yes + + Da + + + + Chat + + Chat + + + + Cancel + + Poništi + + + + Deleting + + Brisanje u tijeku + + + + Handset + + Telefon + + + + Hide + + Sakrij + + + + Connecting + + U tijeku povezivanje + + + + Insert + + Umetni + + + + No + + Ne + + + + Inserting + + Umetanje u tijeku + + + + Opening + + U tijeku otvaranje + + + + Phone number: + + hr #Phone number: + + + + Initialising + + U tijeku započinjanje + + + + Web address: + + hr #Web address: + + + + Print + + hr #Print + + + + Deactivate + + Isključi + + + + Stop + + Zaustavi + + + + Details + + Pojedinosti + + + + Continue + + Nastavi + + + + Listen + + Preslušaj + + + + First name: + + Ime: + + + + Expires: + + Ističe: + + + + Adding + + Dodavanje u tijeku + + + + Verify password: + + Potvrdite zaporku: + hr #Verify passw.: + + + + Voice call + + Glasovni poziv + + + + Install + + Instaliraj + + + + Select tone: + + Odabir melodije zvona: + + + + Show + + Pokaži + + + + Writing language: + + Jezik pisanja: + hr #Writing language: + + + + Add thumbnail + + Dodaj sličicu + + + + Disconnect + + Odspoji + hr #Disconn. + + + + Title: + + hr #Title: + + + + Installing + + hr #Installing + + + + End date: + + hr #End date: + + + + Folder name: + + hr #Folder name: + + + + Activate loudspeaker + + hr #Activate loudspeaker + + + + Select all contents + + hr #Select all contents + + + + Attachments + + hr #Attachments + + + + Buffering + + U tijeku međuspremanje + + + + Time: + + Vrijeme: + + + + Find + + Traži + + + + Organise + + Organiziraj + + + + Copying + + U tijeku kopiranje + + + + Create message + + Nova poruka + hr #Create msg. + + + + Mark + + Označi + + + + From: + + Od: + + + + Add image + + hr #Add image + + + + Activate handset + + hr #Activate handset + + + + Retrieving + + hr #Retrieving + + + + Internet call + + hr #Internet call + + + + Options + + hr #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_hu.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_hu.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + hu #Open + + + + Unmute + + hu #Unmute + + + + Settings + + hu #Settings + + + + Add to folder + + hu #Add to folder + + + + Password: + + hu #Password: + + + + OK + + hu #OK + + + + User name: + + hu #User name: + + + + Cancel download + + hu #Cancel download + + + + Cut + + hu #Cut + + + + Closing + + hu #Closing + + + + Finish + + hu #Finish + + + + Registering + + hu #Registering + + + + Removing + + hu #Removing + + + + Requesting + + hu #Requesting + + + + Remove + + hu #Remove + + + + Moving + + hu #Moving + + + + Add detail + + hu #Add detail + + + + File name: + + hu #File name: + + + + Send + + hu #Send + + + + Advanced settings + + hu #Advanced settings + + + + Format + + hu #Format + + + + Add recipient + + hu #Add recipient + + + + Edit + + hu #Edit + + + + Menu + + Menü + + + + Unmark + + Elvetés + + + + Bookmark name: + + Könyvjelző neve: + + + + Loudsp. on + + Hangszóró bekapcsolva + hu #Loudsp. on + + + + Move + + Áthelyezés + + + + Select all items + + Minden elem kiválasztása + + + + Copy + + Másolás + + + + Disable + + Letiltás + + + + Select memory: + + Memória kiválasztása: + + + + Retry + + Ismét + + + + Copy to folder + + Másolás mappába + + + + Enable + + Engedélyezés + + + + Send message + + Üzenet küldése + hu #Send msg. + + + + Add bookmark + + Könyvjelző hozzáadása + + + + Mute + + Némít + + + + Duration: + + Időtartam: + + + + Select file: + + Fájl kiválasztása: + + + + Reset + + Visszaállít + + + + Done + + hu #Done + + + + Move to folder + + Áthelyezés mappába + + + + Zoom in + + hu #Zoom in + + + + Connect + + hu #Connect + + + + Call + + Hívás + + + + Clear + + Töröl + + + + Current password: + + Jelenlegi jelszó: + hu #Current passw.: + + + + Deselect all items + + Mindegyik elvetése + + + + Select + + hu #Select + + + + Close + + hu #Close + + + + Saving + + Mentés folyamatban + + + + Loading + + Betöltés folyamatban + + + + Replace + + Csere + + + + Start + + Indít + + + + Searching + + Keresés folyamatban + + + + Select address: + + Cím kiválasztása: + hu #Select addr.: + + + + Details: + + Adatok: + + + + New password: + + Új jelszó: + hu #New passw.: + + + + Select folder: + + Mappa kiválasztása: + + + + Reply + + Válasz + + + + Read + + Olvas + + + + Go to web address + + Ugrás webcímre + hu #Go to address + + + + Join + + Belép + + + + Processing + + Feldolgozás folyamatban + + + + Date: + + Dátum: + + + + Help + + Súgó + + + + Cancelling + + Megszakítás folyamatban + + + + Deactivate loudspeaker + + Hangszóró kikapcsolása + hu #Deactivate loudsp. + + + + To: + + Vége: + + + + Uninstalling + + Eltávolítás folyamatban + + + + Exit + + Kilép + + + + User ID: + + Felhasználóazonosító: + + + + Help + + Súgó + + + + Uninstall + + Eltávolítás + + + + Define + + Megad + + + + Expand + + Kibont + + + + Back + + Vissza + + + + Change + + Módosítás + + + + Collapse + + Összecsuk + + + + Additional details + + További adatok + hu #Add. details + + + + Delete + + Töröl + + + + Address: + + Cím: + + + + Forward + + Továbbítás + + + + Quit + + Kilép + + + + Verify new password: + + Új jelszó ellenőrzése: + hu #Verify new passw.: + + + + Pause + + hu #Pause + + + + Undo + + hu #Undo + + + + Video call + + hu #Video call + + + + Paste + + hu #Paste + + + + Zoom out + + Kicsinyítés + + + + Last name: + + Vezetéknév: + + + + Reject + + Elutasít + + + + Fit to screen + + Kijelzőhöz igazítás + hu #Fit to scrn + + + + Answer + + Fogad + + + + Resume + + hu #Resume + + + + Loudsp. off + + hu #Loudsp. off + + + + Save + + hu #Save + + + + Deselect + + hu #Deselect + + + + Disconnecting + + hu #Disconnecting + + + + Select language: + + Nyelv kiválasztása: + hu #Select language: + + + + Add member + + Tag hozzáadása + + + + Add + + Hozzáad + + + + Yes + + Igen + + + + Chat + + Csevegés + + + + Cancel + + Megszakít + + + + Deleting + + Törlés folyamatban + + + + Handset + + Készülék + + + + Hide + + Elrejt + + + + Connecting + + Csatlakozás folyamatban + + + + Insert + + Beszúrás + + + + No + + Nem + + + + Inserting + + Beszúrás folyamatban + + + + Opening + + Megnyitás folyamatban + + + + Phone number: + + hu #Phone number: + + + + Initialising + + Alapbeállítás folyamatban + + + + Web address: + + hu #Web address: + + + + Print + + hu #Print + + + + Deactivate + + Kikapcsolás + + + + Stop + + Leállít + + + + Details + + Adatok + + + + Continue + + Folytat + + + + Listen + + Meghallgat + + + + First name: + + Vezetéknév: + + + + Expires: + + Lejárat: + + + + Adding + + Hozzáadás folyamatban + + + + Verify password: + + Ellenőrizze a jelszót: + hu #Verify passw.: + + + + Voice call + + Hanghívás + + + + Install + + Telepítés + + + + Select tone: + + Hang kiválasztása: + + + + Show + + Megjelenít + + + + Writing language: + + Bevitel nyelve: + hu #Writing language: + + + + Add thumbnail + + Indexkép hozzáadása + + + + Disconnect + + Kapcsolat bontása + hu #Disconn. + + + + Title: + + hu #Title: + + + + Installing + + hu #Installing + + + + End date: + + hu #End date: + + + + Folder name: + + hu #Folder name: + + + + Activate loudspeaker + + hu #Activate loudspeaker + + + + Select all contents + + hu #Select all contents + + + + Attachments + + hu #Attachments + + + + Buffering + + Betöltés folyamatban + + + + Time: + + Idő: + + + + Find + + Keresés + + + + Organise + + Szervezés + + + + Copying + + Másolás folyamatban + + + + Create message + + Üzenet létrehozása + hu #Create msg. + + + + Mark + + Megjelölés + + + + From: + + Kezdés: + + + + Add image + + hu #Add image + + + + Activate handset + + hu #Activate handset + + + + Retrieving + + hu #Retrieving + + + + Internet call + + hu #Internet call + + + + Options + + hu #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_id.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_id.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + id #Open + + + + Unmute + + id #Unmute + + + + Settings + + id #Settings + + + + Add to folder + + id #Add to folder + + + + Password: + + id #Password: + + + + OK + + id #OK + + + + User name: + + id #User name: + + + + Cancel download + + id #Cancel download + + + + Cut + + id #Cut + + + + Closing + + id #Closing + + + + Finish + + id #Finish + + + + Registering + + id #Registering + + + + Removing + + id #Removing + + + + Requesting + + id #Requesting + + + + Remove + + id #Remove + + + + Moving + + id #Moving + + + + Add detail + + id #Add detail + + + + File name: + + id #File name: + + + + Send + + id #Send + + + + Advanced settings + + id #Advanced settings + + + + Format + + id #Format + + + + Add recipient + + id #Add recipient + + + + Edit + + id #Edit + + + + Menu + + Menu + + + + Unmark + + Hapus tanda + + + + Bookmark name: + + Nama penanda: + + + + Loudsp. on + + Loudspeaker aktif + id #Loudsp. on + + + + Move + + Pindah + + + + Select all items + + Pilih semua item + + + + Copy + + Salin + + + + Disable + + Nonaktifkan + + + + Select memory: + + Pilih memori: + + + + Retry + + Coba lagi + + + + Copy to folder + + Salin ke folder + + + + Enable + + Aktifkan + + + + Send message + + Kirim pesan + id #Send msg. + + + + Add bookmark + + Tambah penanda + + + + Mute + + Diam + + + + Duration: + + Durasi: + + + + Select file: + + Pilih file: + + + + Reset + + Atur ulang + + + + Done + + id #Done + + + + Move to folder + + Pindahkan ke folder + + + + Zoom in + + id #Zoom in + + + + Connect + + id #Connect + + + + Call + + Hubungi + + + + Clear + + Kosongkan + + + + Current password: + + Sandi aktif: + id #Current passw.: + + + + Deselect all items + + Hapus pilihan semua item + + + + Select + + id #Select + + + + Close + + id #Close + + + + Saving + + Menyimpan + + + + Loading + + Memuat + + + + Replace + + Ganti + + + + Start + + Mulai + + + + Searching + + Mencari + + + + Select address: + + Pilih alamat: + id #Select addr.: + + + + Details: + + Rincian: + + + + New password: + + Sandi baru: + id #New passw.: + + + + Select folder: + + Pilih folder: + + + + Reply + + Balas + + + + Read + + Baca + + + + Go to web address + + Buka alamat Web + id #Go to address + + + + Join + + Gabung + + + + Processing + + Memproses + + + + Date: + + Tanggal: + + + + Help + + Petunjuk + + + + Cancelling + + Membatalkan + + + + Deactivate loudspeaker + + Nonaktifkan loudspeaker + id #Deactivate loudsp. + + + + To: + + Kepada: + + + + Uninstalling + + Menghapus instalan + + + + Exit + + Keluar + + + + User ID: + + ID pengguna: + + + + Help + + Petunjuk + + + + Uninstall + + Hapus instalan + + + + Define + + Tentukan + + + + Expand + + Buka + + + + Back + + Kembali + + + + Change + + Ubah + + + + Collapse + + Tutup + + + + Additional details + + Rincian tambahan + id #Add. details + + + + Delete + + Hapus + + + + Address: + + Alamat: + + + + Forward + + Teruskan + + + + Quit + + Berhenti + + + + Verify new password: + + Verifikasikan sandi baru: + id #Verify new passw.: + + + + Pause + + id #Pause + + + + Undo + + id #Undo + + + + Video call + + id #Video call + + + + Paste + + id #Paste + + + + Zoom out + + Perkecil + + + + Last name: + + Nama belakang: + + + + Reject + + Tolak + + + + Fit to screen + + Sesuaikan dengan layar + id #Fit to scrn + + + + Answer + + Jawab + + + + Resume + + id #Resume + + + + Loudsp. off + + id #Loudsp. off + + + + Save + + id #Save + + + + Deselect + + id #Deselect + + + + Disconnecting + + id #Disconnecting + + + + Select language: + + Pilih bahasa: + id #Select language: + + + + Add member + + Tambah anggota + + + + Add + + Tambah + + + + Yes + + Ya + + + + Chat + + Obrolan + + + + Cancel + + Batal + + + + Deleting + + Menghapus + + + + Handset + + Handset + + + + Hide + + Sembunyikan + + + + Connecting + + Menyambung + + + + Insert + + Sisipkan + + + + No + + Tidak + + + + Inserting + + Menyisipkan + + + + Opening + + Membuka + + + + Phone number: + + id #Phone number: + + + + Initialising + + Menginisialisasi + + + + Web address: + + id #Web address: + + + + Print + + id #Print + + + + Deactivate + + Nonaktifkan + + + + Stop + + Berhenti + + + + Details + + Rincian + + + + Continue + + Lanjut + + + + Listen + + Dengar + + + + First name: + + Nama depan: + + + + Expires: + + Kedaluwarsa: + + + + Adding + + Menambahkan + + + + Verify password: + + Verifikasikan sandi: + id #Verify passw.: + + + + Voice call + + Panggilan suara + + + + Install + + Instal + + + + Select tone: + + Pilih nada: + + + + Show + + Tampilkan + + + + Writing language: + + Bahasa tulisan: + id #Writing language: + + + + Add thumbnail + + Tambah gambar kecil + + + + Disconnect + + Putuskan sambungan + id #Disconn. + + + + Title: + + id #Title: + + + + Installing + + id #Installing + + + + End date: + + id #End date: + + + + Folder name: + + id #Folder name: + + + + Activate loudspeaker + + id #Activate loudspeaker + + + + Select all contents + + id #Select all contents + + + + Attachments + + id #Attachments + + + + Buffering + + Mem-buffer + + + + Time: + + Waktu: + + + + Find + + Cari + + + + Organise + + Atur + + + + Copying + + Menyalin + + + + Create message + + Buat pesan + id #Create msg. + + + + Mark + + Tandai + + + + From: + + Dari: + + + + Add image + + id #Add image + + + + Activate handset + + id #Activate handset + + + + Retrieving + + id #Retrieving + + + + Internet call + + id #Internet call + + + + Options + + id #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_is.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_is.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + is #Open + + + + Unmute + + is #Unmute + + + + Settings + + is #Settings + + + + Add to folder + + is #Add to folder + + + + Password: + + is #Password: + + + + OK + + is #OK + + + + User name: + + is #User name: + + + + Cancel download + + is #Cancel download + + + + Cut + + is #Cut + + + + Closing + + is #Closing + + + + Finish + + is #Finish + + + + Registering + + is #Registering + + + + Removing + + is #Removing + + + + Requesting + + is #Requesting + + + + Remove + + is #Remove + + + + Moving + + is #Moving + + + + Add detail + + is #Add detail + + + + File name: + + is #File name: + + + + Send + + is #Send + + + + Advanced settings + + is #Advanced settings + + + + Format + + is #Format + + + + Add recipient + + is #Add recipient + + + + Edit + + is #Edit + + + + Menu + + Valmynd + + + + Unmark + + Afmerkja + + + + Bookmark name: + + Heiti bókamerkis: + + + + Loudsp. on + + Kveikja á hátalara + is #Loudsp. on + + + + Move + + Færa + + + + Select all items + + Velja alla hluti + + + + Copy + + Afrita + + + + Disable + + Slökkva + + + + Select memory: + + Velja minni: + + + + Retry + + Reyna aftur + + + + Copy to folder + + Afrita í möppu + + + + Enable + + Kveikja + + + + Send message + + Senda skilaboð + is #Send msg. + + + + Add bookmark + + Vista í bókamerkjum + + + + Mute + + Hljóð af + + + + Duration: + + Lengd: + + + + Select file: + + Velja skrá: + + + + Reset + + Núllstilla + + + + Done + + is #Done + + + + Move to folder + + Færa í möppu + + + + Zoom in + + is #Zoom in + + + + Connect + + is #Connect + + + + Call + + Hringja + + + + Clear + + Hreinsa + + + + Current password: + + Núverandi lykilorð: + is #Current passw.: + + + + Deselect all items + + Afvelja alla hluti + + + + Select + + is #Select + + + + Close + + is #Close + + + + Saving + + Vista + + + + Loading + + Hleður + + + + Replace + + Skipta út + + + + Start + + Byrja + + + + Searching + + Leita + + + + Select address: + + Velja vistfang: + is #Select addr.: + + + + Details: + + Upplýsingar: + + + + New password: + + Nýtt lykilorð: + is #New passw.: + + + + Select folder: + + Velja möppu: + + + + Reply + + Svara + + + + Read + + Lesa + + + + Go to web address + + Opna veffang + is #Go to address + + + + Join + + Taka þátt + + + + Processing + + Meðhöndla + + + + Date: + + Dagsetning: + + + + Help + + Hjálp + + + + Cancelling + + Hætti við + + + + Deactivate loudspeaker + + Slökkva á hátalara + is #Deactivate loudsp. + + + + To: + + Til: + + + + Uninstalling + + Fjarlægi + + + + Exit + + Hætta + + + + User ID: + + Notandakenni: + + + + Help + + Hjálp + + + + Uninstall + + Fjarlægja + + + + Define + + Tilgreina + + + + Expand + + Víkka + + + + Back + + Til baka + + + + Change + + Breyta + + + + Collapse + + Fella saman + + + + Additional details + + Viðbótarupplýsingar + is #Add. details + + + + Delete + + Eyða + + + + Address: + + Heimilisfang: + + + + Forward + + Framsenda + + + + Quit + + Hætta + + + + Verify new password: + + Staðfesta nýtt lykilorð: + is #Verify new passw.: + + + + Pause + + is #Pause + + + + Undo + + is #Undo + + + + Video call + + is #Video call + + + + Paste + + is #Paste + + + + Zoom out + + Minnka aðdrátt + + + + Last name: + + Eftirnafn: + + + + Reject + + Hafna + + + + Fit to screen + + Passa á skjá + is #Fit to scrn + + + + Answer + + Svara + + + + Resume + + is #Resume + + + + Loudsp. off + + is #Loudsp. off + + + + Save + + is #Save + + + + Deselect + + is #Deselect + + + + Disconnecting + + is #Disconnecting + + + + Select language: + + Velja tungumál: + is #Select language: + + + + Add member + + Bæta við meðlimi + + + + Add + + Bæta við + + + + Yes + + + + + + Chat + + Spjall + + + + Cancel + + Hætta við + + + + Deleting + + Eyði + + + + Handset + + Sími + + + + Hide + + Fela + + + + Connecting + + Tengist + + + + Insert + + Setja inn + + + + No + + Nei + + + + Inserting + + Bæti inn + + + + Opening + + Opna + + + + Phone number: + + is #Phone number: + + + + Initialising + + Ræsi + + + + Web address: + + is #Web address: + + + + Print + + is #Print + + + + Deactivate + + Gera óvirkt + + + + Stop + + Stöðva + + + + Details + + Upplýsingar + + + + Continue + + Halda áfram + + + + Listen + + Hlusta + + + + First name: + + Fornafn: + + + + Expires: + + Rennur út: + + + + Adding + + Bæti við + + + + Verify password: + + Staðfestu lykilorð: + is #Verify passw.: + + + + Voice call + + Raddsímtal + + + + Install + + Setja upp + + + + Select tone: + + Velja tón: + + + + Show + + Sýna + + + + Writing language: + + Tungumál texta: + is #Writing language: + + + + Add thumbnail + + Setja inn smámynd + + + + Disconnect + + Aftengja + is #Disconn. + + + + Title: + + is #Title: + + + + Installing + + is #Installing + + + + End date: + + is #End date: + + + + Folder name: + + is #Folder name: + + + + Activate loudspeaker + + is #Activate loudspeaker + + + + Select all contents + + is #Select all contents + + + + Attachments + + is #Attachments + + + + Buffering + + Hleð inn + + + + Time: + + Tími: + + + + Find + + Finna + + + + Organise + + Skipuleggja + + + + Copying + + Afrita + + + + Create message + + Búa til skilaboð + is #Create msg. + + + + Mark + + Merkja + + + + From: + + Frá: + + + + Add image + + is #Add image + + + + Activate handset + + is #Activate handset + + + + Retrieving + + is #Retrieving + + + + Internet call + + is #Internet call + + + + Options + + is #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_it.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_it.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + it #Open + + + + Unmute + + it #Unmute + + + + Settings + + it #Settings + + + + Add to folder + + it #Add to folder + + + + Password: + + it #Password: + + + + OK + + it #OK + + + + User name: + + it #User name: + + + + Cancel download + + it #Cancel download + + + + Cut + + it #Cut + + + + Closing + + it #Closing + + + + Finish + + it #Finish + + + + Registering + + it #Registering + + + + Removing + + it #Removing + + + + Requesting + + it #Requesting + + + + Remove + + it #Remove + + + + Moving + + it #Moving + + + + Add detail + + it #Add detail + + + + File name: + + it #File name: + + + + Send + + it #Send + + + + Advanced settings + + it #Advanced settings + + + + Format + + it #Format + + + + Add recipient + + it #Add recipient + + + + Edit + + it #Edit + + + + Menu + + Menu + + + + Unmark + + Deseleziona + + + + Bookmark name: + + Nome preferito: + + + + Loudsp. on + + Altoparlante attivato + it #Loudsp. on + + + + Move + + Sposta + + + + Select all items + + Seleziona tutti gli elementi + + + + Copy + + Copia + + + + Disable + + Disattiva + + + + Select memory: + + Seleziona memoria: + + + + Retry + + Riprova + + + + Copy to folder + + Copia nella cartella + + + + Enable + + Attiva + + + + Send message + + Invia messaggio + it #Send msg. + + + + Add bookmark + + Aggiungi preferito + + + + Mute + + Disattiva microfoni + + + + Duration: + + Durata: + + + + Select file: + + Seleziona file: + + + + Reset + + Reimposta + + + + Done + + it #Done + + + + Move to folder + + Sposta nella cartella + + + + Zoom in + + it #Zoom in + + + + Connect + + it #Connect + + + + Call + + Chiama + + + + Clear + + Cancella + + + + Current password: + + Password corrente: + it #Current passw.: + + + + Deselect all items + + Deseleziona tutti gli elementi + + + + Select + + it #Select + + + + Close + + it #Close + + + + Saving + + Salvataggio in corso + + + + Loading + + Caricamento in corso + + + + Replace + + Sostituisci + + + + Start + + Avvia + + + + Searching + + Ricerca in corso + + + + Select address: + + Seleziona indirizzo: + it #Select addr.: + + + + Details: + + Dettagli: + + + + New password: + + Nuova password: + it #New passw.: + + + + Select folder: + + Seleziona cartella: + + + + Reply + + Rispondi + + + + Read + + Leggi + + + + Go to web address + + Vai a indirizzo Web + it #Go to address + + + + Join + + Entra + + + + Processing + + Elaborazione in corso + + + + Date: + + Data: + + + + Help + + Guida + + + + Cancelling + + Annullamento in corso + + + + Deactivate loudspeaker + + Disattiva altoparlante + it #Deactivate loudsp. + + + + To: + + A: + + + + Uninstalling + + Disinstallazione in corso + + + + Exit + + Esci + + + + User ID: + + ID utente: + + + + Help + + Guida + + + + Uninstall + + Disinstalla + + + + Define + + Definisci + + + + Expand + + Espandi + + + + Back + + Indietro + + + + Change + + Cambia + + + + Collapse + + Comprimi + + + + Additional details + + Dettagli aggiuntivi + it #Add. details + + + + Delete + + Elimina + + + + Address: + + Indirizzo: + + + + Forward + + Inoltra + + + + Quit + + Esci + + + + Verify new password: + + Verifica nuova password: + it #Verify new passw.: + + + + Pause + + it #Pause + + + + Undo + + it #Undo + + + + Video call + + it #Video call + + + + Paste + + it #Paste + + + + Zoom out + + Zoom indietro + + + + Last name: + + Cognome: + + + + Reject + + Rifiuta + + + + Fit to screen + + Adatta a schermo + it #Fit to scrn + + + + Answer + + Rispondi + + + + Resume + + it #Resume + + + + Loudsp. off + + it #Loudsp. off + + + + Save + + it #Save + + + + Deselect + + it #Deselect + + + + Disconnecting + + it #Disconnecting + + + + Select language: + + Seleziona lingua: + it #Select language: + + + + Add member + + Aggiungi membro + + + + Add + + Aggiungi + + + + Yes + + + + + + Chat + + Chat + + + + Cancel + + Annulla + + + + Deleting + + Eliminazione in corso + + + + Handset + + Telefono + + + + Hide + + Nascondi + + + + Connecting + + Connessione in corso + + + + Insert + + Inserisci + + + + No + + No + + + + Inserting + + Inserimento in corso + + + + Opening + + Apertura in corso + + + + Phone number: + + it #Phone number: + + + + Initialising + + Inizializzazione in corso + + + + Web address: + + it #Web address: + + + + Print + + it #Print + + + + Deactivate + + Disattiva + + + + Stop + + Stop + + + + Details + + Dettagli + + + + Continue + + Continua + + + + Listen + + Ascolta + + + + First name: + + Nome: + + + + Expires: + + Scadenza: + + + + Adding + + Aggiunta in corso + + + + Verify password: + + Verifica password: + it #Verify passw.: + + + + Voice call + + Chiamata vocale + + + + Install + + Installa + + + + Select tone: + + Seleziona tono: + + + + Show + + Mostra + + + + Writing language: + + Lingua di scrittura: + it #Writing language: + + + + Add thumbnail + + Aggiungi miniatura + + + + Disconnect + + Disconnetti + it #Disconn. + + + + Title: + + it #Title: + + + + Installing + + it #Installing + + + + End date: + + it #End date: + + + + Folder name: + + it #Folder name: + + + + Activate loudspeaker + + it #Activate loudspeaker + + + + Select all contents + + it #Select all contents + + + + Attachments + + it #Attachments + + + + Buffering + + Buffering in corso + + + + Time: + + Ora: + + + + Find + + Trova + + + + Organise + + Organizza + + + + Copying + + Copia in corso + + + + Create message + + Crea messaggio + it #Create msg. + + + + Mark + + Seleziona + + + + From: + + Da: + + + + Add image + + it #Add image + + + + Activate handset + + it #Activate handset + + + + Retrieving + + it #Retrieving + + + + Internet call + + it #Internet call + + + + Options + + it #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ja.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ja.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + Open + + + + Unmute + + Unmute + + + + Settings + + Settings + + + + Add to folder + + Add to folder + + + + Password: + + Password: + + + + OK + + OK + + + + User name: + + User name: + + + + Cancel download + + Cancel download + + + + Cut + + Cut + + + + Closing + + Closing + + + + Finish + + Finish + + + + Registering + + Registering + + + + Removing + + Removing + + + + Requesting + + Requesting + + + + Remove + + Remove + + + + Moving + + Moving + + + + Add detail + + Add detail + + + + File name: + + File name: + + + + Send + + Send + + + + Advanced settings + + Advanced settings + + + + Format + + Format + + + + Add recipient + + Add recipient + + + + Edit + + Edit + + + + Menu + + ja #Menu + + + + Unmark + + ja #Unmark + + + + Bookmark name: + + ja #Bookmark name: + + + + Loudsp. on + + ja #Loudspeaker on + ja #Loudsp. on + + + + Move + + ja #Move + + + + Select all items + + ja #Select all items + + + + Copy + + ja #Copy + + + + Disable + + ja #Disable + + + + Select memory: + + ja #Select memory: + + + + Retry + + ja #Retry + + + + Copy to folder + + ja #Copy to folder + + + + Enable + + ja #Enable + + + + Send message + + ja #Send message + ja #Send msg. + + + + Add bookmark + + ja #Add bookmark + + + + Mute + + ja #Mute + + + + Duration: + + ja #Duration: + + + + Select file: + + ja #Select file: + + + + Reset + + ja #Reset + + + + Done + + Done + + + + Move to folder + + ja #Move to folder + + + + Zoom in + + Zoom in + + + + Connect + + Connect + + + + Call + + ja #Call + + + + Clear + + ja #Clear + + + + Current password: + + ja #Current password: + ja #Current passw.: + + + + Deselect all items + + ja #Deselect all items + + + + Select + + Select + + + + Close + + Close + + + + Saving + + ja #Saving + + + + Loading + + ja #Loading + + + + Replace + + ja #Replace + + + + Start + + ja #Start + + + + Searching + + ja #Searching + + + + Select address: + + ja #Select address: + ja #Select addr.: + + + + Details: + + ja #Details: + + + + New password: + + ja #New password: + ja #New passw.: + + + + Select folder: + + ja #Select folder: + + + + Reply + + ja #Reply + + + + Read + + ja #Read + + + + Go to web address + + ja #Go to web address + ja #Go to address + + + + Join + + ja #Join + + + + Processing + + ja #Processing + + + + Date: + + ja #Date: + + + + Help + + ja #Help + + + + Cancelling + + ja #Cancelling + + + + Deactivate loudspeaker + + ja #Deactivate loudspeaker + ja #Deactivate loudsp. + + + + To: + + ja #To: + + + + Uninstalling + + ja #Uninstalling + + + + Exit + + ja #Exit + + + + User ID: + + ja #User ID: + + + + Help + + ja #Help + + + + Uninstall + + ja #Uninstall + + + + Define + + ja #Define + + + + Expand + + ja #Expand + + + + Back + + ja #Back + + + + Change + + ja #Change + + + + Collapse + + ja #Collapse + + + + Additional details + + ja #Additional details + ja #Add. details + + + + Delete + + ja #Delete + + + + Address: + + ja #Address: + + + + Forward + + ja #Forward + + + + Quit + + ja #Quit + + + + Verify new password: + + ja #Verify new password: + ja #Verify new passw.: + + + + Pause + + Pause + + + + Undo + + Undo + + + + Video call + + Video call + + + + Paste + + Paste + + + + Zoom out + + ja #Zoom out + + + + Last name: + + ja #Last name: + + + + Reject + + ja #Reject + + + + Fit to screen + + ja #Fit to screen + ja #Fit to scrn + + + + Answer + + ja #Answer + + + + Resume + + Resume + + + + Loudsp. off + + Loudsp. off + + + + Save + + Save + + + + Deselect + + Deselect + + + + Disconnecting + + Disconnecting + + + + Select language: + + ja #Select language: + ja #Select language: + + + + Add member + + ja #Add member + + + + Add + + ja #Add + + + + Yes + + ja #Yes + + + + Chat + + ja #Chat + + + + Cancel + + ja #Cancel + + + + Deleting + + ja #Deleting + + + + Handset + + ja #Handset + + + + Hide + + ja #Hide + + + + Connecting + + ja #Connecting + + + + Insert + + ja #Insert + + + + No + + ja #No + + + + Inserting + + ja #Inserting + + + + Opening + + ja #Opening + + + + Phone number: + + Phone number: + + + + Initialising + + ja #Initialising + + + + Web address: + + Web address: + + + + Print + + Print + + + + Deactivate + + ja #Deactivate + + + + Stop + + ja #Stop + + + + Details + + ja #Details + + + + Continue + + ja #Continue + + + + Listen + + ja #Listen + + + + First name: + + ja #First name: + + + + Expires: + + ja #Expires: + + + + Adding + + ja #Adding + + + + Verify password: + + ja #Verify password: + ja #Verify passw.: + + + + Voice call + + ja #Voice call + + + + Install + + ja #Install + + + + Select tone: + + ja #Select tone: + + + + Show + + ja #Show + + + + Writing language: + + ja #Writing language: + ja #Writing language: + + + + Add thumbnail + + ja #Add thumbnail + + + + Disconnect + + ja #Disconnect + ja #Disconn. + + + + Title: + + Title: + + + + Installing + + Installing + + + + End date: + + End date: + + + + Folder name: + + Folder name: + + + + Activate loudspeaker + + Activate loudspeaker + + + + Select all contents + + Select all contents + + + + Attachments + + Attachments + + + + Buffering + + ja #Buffering + + + + Time: + + ja #Time: + + + + Find + + ja #Find + + + + Organise + + ja #Organise + + + + Copying + + ja #Copying + + + + Create message + + ja #Create message + ja #Create msg. + + + + Mark + + ja #Mark + + + + From: + + ja #From: + + + + Add image + + Add image + + + + Activate handset + + Activate handset + + + + Retrieving + + Retrieving + + + + Internet call + + Internet call + + + + Options + + Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ko.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ko.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ko #Open + + + + Unmute + + ko #Unmute + + + + Settings + + ko #Settings + + + + Add to folder + + ko #Add to folder + + + + Password: + + ko #Password: + + + + OK + + ko #OK + + + + User name: + + ko #User name: + + + + Cancel download + + ko #Cancel download + + + + Cut + + ko #Cut + + + + Closing + + ko #Closing + + + + Finish + + ko #Finish + + + + Registering + + ko #Registering + + + + Removing + + ko #Removing + + + + Requesting + + ko #Requesting + + + + Remove + + ko #Remove + + + + Moving + + ko #Moving + + + + Add detail + + ko #Add detail + + + + File name: + + ko #File name: + + + + Send + + ko #Send + + + + Advanced settings + + ko #Advanced settings + + + + Format + + ko #Format + + + + Add recipient + + ko #Add recipient + + + + Edit + + ko #Edit + + + + Menu + + ko #Menu + + + + Unmark + + ko #Unmark + + + + Bookmark name: + + ko #Bookmark name: + + + + Loudsp. on + + ko #Loudspeaker on + ko #Loudsp. on + + + + Move + + ko #Move + + + + Select all items + + ko #Select all items + + + + Copy + + ko #Copy + + + + Disable + + ko #Disable + + + + Select memory: + + ko #Select memory: + + + + Retry + + ko #Retry + + + + Copy to folder + + ko #Copy to folder + + + + Enable + + ko #Enable + + + + Send message + + ko #Send message + ko #Send msg. + + + + Add bookmark + + ko #Add bookmark + + + + Mute + + ko #Mute + + + + Duration: + + ko #Duration: + + + + Select file: + + ko #Select file: + + + + Reset + + ko #Reset + + + + Done + + ko #Done + + + + Move to folder + + ko #Move to folder + + + + Zoom in + + ko #Zoom in + + + + Connect + + ko #Connect + + + + Call + + ko #Call + + + + Clear + + ko #Clear + + + + Current password: + + ko #Current password: + ko #Current passw.: + + + + Deselect all items + + ko #Deselect all items + + + + Select + + ko #Select + + + + Close + + ko #Close + + + + Saving + + ko #Saving + + + + Loading + + ko #Loading + + + + Replace + + ko #Replace + + + + Start + + ko #Start + + + + Searching + + ko #Searching + + + + Select address: + + ko #Select address: + ko #Select addr.: + + + + Details: + + ko #Details: + + + + New password: + + ko #New password: + ko #New passw.: + + + + Select folder: + + ko #Select folder: + + + + Reply + + ko #Reply + + + + Read + + ko #Read + + + + Go to web address + + ko #Go to web address + ko #Go to address + + + + Join + + ko #Join + + + + Processing + + ko #Processing + + + + Date: + + ko #Date: + + + + Help + + ko #Help + + + + Cancelling + + ko #Cancelling + + + + Deactivate loudspeaker + + ko #Deactivate loudspeaker + ko #Deactivate loudsp. + + + + To: + + ko #To: + + + + Uninstalling + + ko #Uninstalling + + + + Exit + + ko #Exit + + + + User ID: + + ko #User ID: + + + + Help + + ko #Help + + + + Uninstall + + ko #Uninstall + + + + Define + + ko #Define + + + + Expand + + ko #Expand + + + + Back + + ko #Back + + + + Change + + ko #Change + + + + Collapse + + ko #Collapse + + + + Additional details + + ko #Additional details + ko #Add. details + + + + Delete + + ko #Delete + + + + Address: + + ko #Address: + + + + Forward + + ko #Forward + + + + Quit + + ko #Quit + + + + Verify new password: + + ko #Verify new password: + ko #Verify new passw.: + + + + Pause + + ko #Pause + + + + Undo + + ko #Undo + + + + Video call + + ko #Video call + + + + Paste + + ko #Paste + + + + Zoom out + + ko #Zoom out + + + + Last name: + + ko #Last name: + + + + Reject + + ko #Reject + + + + Fit to screen + + ko #Fit to screen + ko #Fit to scrn + + + + Answer + + ko #Answer + + + + Resume + + ko #Resume + + + + Loudsp. off + + ko #Loudsp. off + + + + Save + + ko #Save + + + + Deselect + + ko #Deselect + + + + Disconnecting + + ko #Disconnecting + + + + Select language: + + ko #Select language: + ko #Select language: + + + + Add member + + ko #Add member + + + + Add + + ko #Add + + + + Yes + + ko #Yes + + + + Chat + + ko #Chat + + + + Cancel + + ko #Cancel + + + + Deleting + + ko #Deleting + + + + Handset + + ko #Handset + + + + Hide + + ko #Hide + + + + Connecting + + ko #Connecting + + + + Insert + + ko #Insert + + + + No + + ko #No + + + + Inserting + + ko #Inserting + + + + Opening + + ko #Opening + + + + Phone number: + + ko #Phone number: + + + + Initialising + + ko #Initialising + + + + Web address: + + ko #Web address: + + + + Print + + ko #Print + + + + Deactivate + + ko #Deactivate + + + + Stop + + ko #Stop + + + + Details + + ko #Details + + + + Continue + + ko #Continue + + + + Listen + + ko #Listen + + + + First name: + + ko #First name: + + + + Expires: + + ko #Expires: + + + + Adding + + ko #Adding + + + + Verify password: + + ko #Verify password: + ko #Verify passw.: + + + + Voice call + + ko #Voice call + + + + Install + + ko #Install + + + + Select tone: + + ko #Select tone: + + + + Show + + ko #Show + + + + Writing language: + + ko #Writing language: + ko #Writing language: + + + + Add thumbnail + + ko #Add thumbnail + + + + Disconnect + + ko #Disconnect + ko #Disconn. + + + + Title: + + ko #Title: + + + + Installing + + ko #Installing + + + + End date: + + ko #End date: + + + + Folder name: + + ko #Folder name: + + + + Activate loudspeaker + + ko #Activate loudspeaker + + + + Select all contents + + ko #Select all contents + + + + Attachments + + ko #Attachments + + + + Buffering + + ko #Buffering + + + + Time: + + ko #Time: + + + + Find + + ko #Find + + + + Organise + + ko #Organise + + + + Copying + + ko #Copying + + + + Create message + + ko #Create message + ko #Create msg. + + + + Mark + + ko #Mark + + + + From: + + ko #From: + + + + Add image + + ko #Add image + + + + Activate handset + + ko #Activate handset + + + + Retrieving + + ko #Retrieving + + + + Internet call + + ko #Internet call + + + + Options + + ko #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_lt.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_lt.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + lt #Open + + + + Unmute + + lt #Unmute + + + + Settings + + lt #Settings + + + + Add to folder + + lt #Add to folder + + + + Password: + + lt #Password: + + + + OK + + lt #OK + + + + User name: + + lt #User name: + + + + Cancel download + + lt #Cancel download + + + + Cut + + lt #Cut + + + + Closing + + lt #Closing + + + + Finish + + lt #Finish + + + + Registering + + lt #Registering + + + + Removing + + lt #Removing + + + + Requesting + + lt #Requesting + + + + Remove + + lt #Remove + + + + Moving + + lt #Moving + + + + Add detail + + lt #Add detail + + + + File name: + + lt #File name: + + + + Send + + lt #Send + + + + Advanced settings + + lt #Advanced settings + + + + Format + + lt #Format + + + + Add recipient + + lt #Add recipient + + + + Edit + + lt #Edit + + + + Menu + + Meniu + + + + Unmark + + Atžymėti + + + + Bookmark name: + + Žymos pavadinimas: + + + + Loudsp. on + + Įjungti garsiakalbį + lt #Loudsp. on + + + + Move + + Perkelti + + + + Select all items + + Rinktis visus elementus + + + + Copy + + Kopijuoti + + + + Disable + + Išjungti + + + + Select memory: + + Rinktis atmintį: + + + + Retry + + Bandyti iš naujo + + + + Copy to folder + + Kopijuoti į katalogą + + + + Enable + + Įjungti + + + + Send message + + Siųsti pranešimą + lt #Send msg. + + + + Add bookmark + + Pridėti žymą + + + + Mute + + Išjungti garsą + + + + Duration: + + Trukmė: + + + + Select file: + + Rinktis failą: + + + + Reset + + Nustatyti iš naujo + + + + Done + + lt #Done + + + + Move to folder + + Perkelti į katalogą + + + + Zoom in + + lt #Zoom in + + + + Connect + + lt #Connect + + + + Call + + Skambinti + + + + Clear + + Ištrinti + + + + Current password: + + Dabartinis slaptažodis: + lt #Current passw.: + + + + Deselect all items + + Atšaukti visų elementų pasirinkimą + + + + Select + + lt #Select + + + + Close + + lt #Close + + + + Saving + + Išsaugo + + + + Loading + + Įkelia + + + + Replace + + Pakeisti + + + + Start + + Pradėti + + + + Searching + + Ieško + + + + Select address: + + Rinktis adresą: + lt #Select addr.: + + + + Details: + + Informacija: + + + + New password: + + Naujas slaptažodis: + lt #New passw.: + + + + Select folder: + + Rinktis katalogą: + + + + Reply + + Atsakyti + + + + Read + + Skaityti + + + + Go to web address + + Eiti interneto adresu + lt #Go to address + + + + Join + + Prisijungti + + + + Processing + + Apdoroja + + + + Date: + + Data: + + + + Help + + Paaiškinimas + + + + Cancelling + + Atšaukia + + + + Deactivate loudspeaker + + Išjungti garsiakalbį + lt #Deactivate loudsp. + + + + To: + + Iki: + + + + Uninstalling + + Šalina + + + + Exit + + Uždaryti programą + + + + User ID: + + Vartotojo ID: + + + + Help + + Paaiškinimas + + + + Uninstall + + Pašalinti + + + + Define + + Nustatyti + + + + Expand + + Išplėsti + + + + Back + + Atgal + + + + Change + + Pakeisti + + + + Collapse + + Sutraukti + + + + Additional details + + Papildoma informacija + lt #Add. details + + + + Delete + + Ištrinti + + + + Address: + + Adresas: + + + + Forward + + Persiųsti + + + + Quit + + Baigti + + + + Verify new password: + + Dar kartą įveskite naują slaptažodį: + lt #Verify new passw.: + + + + Pause + + lt #Pause + + + + Undo + + lt #Undo + + + + Video call + + lt #Video call + + + + Paste + + lt #Paste + + + + Zoom out + + Mažinti vaizdą + + + + Last name: + + Pavardė: + + + + Reject + + Atmesti + + + + Fit to screen + + Talpinti ekrane + lt #Fit to scrn + + + + Answer + + Atsiliepti + + + + Resume + + lt #Resume + + + + Loudsp. off + + lt #Loudsp. off + + + + Save + + lt #Save + + + + Deselect + + lt #Deselect + + + + Disconnecting + + lt #Disconnecting + + + + Select language: + + Rinktis kalbą: + lt #Select language: + + + + Add member + + Įtraukti narį + + + + Add + + Įtraukti + + + + Yes + + Taip + + + + Chat + + Pokalbiai + + + + Cancel + + Atšaukti + + + + Deleting + + Ištrina + + + + Handset + + Ausinė-mikrofonas + + + + Hide + + Slėpti + + + + Connecting + + Prisijungia + + + + Insert + + Įterpti + + + + No + + Ne + + + + Inserting + + Įterpia + + + + Opening + + Atidaro + + + + Phone number: + + lt #Phone number: + + + + Initialising + + Pradeda + + + + Web address: + + lt #Web address: + + + + Print + + lt #Print + + + + Deactivate + + Išjungti + + + + Stop + + Sustabdyti + + + + Details + + Informacija + + + + Continue + + Tęsti + + + + Listen + + Klausyti + + + + First name: + + Vardas: + + + + Expires: + + Galioja iki: + + + + Adding + + Įtraukia + + + + Verify password: + + Patvirtinkite slaptažodį: + lt #Verify passw.: + + + + Voice call + + Balso ryšys + + + + Install + + Įdiegti + + + + Select tone: + + Rinktis toną: + + + + Show + + Rodyti + + + + Writing language: + + Rašomoji kalba: + lt #Writing language: + + + + Add thumbnail + + Įtraukti miniatiūrą + + + + Disconnect + + Baigti ryšį + lt #Disconn. + + + + Title: + + lt #Title: + + + + Installing + + lt #Installing + + + + End date: + + lt #End date: + + + + Folder name: + + lt #Folder name: + + + + Activate loudspeaker + + lt #Activate loudspeaker + + + + Select all contents + + lt #Select all contents + + + + Attachments + + lt #Attachments + + + + Buffering + + Kaupia duomenis + + + + Time: + + Laikas: + + + + Find + + Ieškoti + + + + Organise + + Tvarkyti + + + + Copying + + Kopijuoja + + + + Create message + + Kurti pranešimą + lt #Create msg. + + + + Mark + + Pažymėti + + + + From: + + Nuo: + + + + Add image + + lt #Add image + + + + Activate handset + + lt #Activate handset + + + + Retrieving + + lt #Retrieving + + + + Internet call + + lt #Internet call + + + + Options + + lt #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_lv.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_lv.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + lv #Open + + + + Unmute + + lv #Unmute + + + + Settings + + lv #Settings + + + + Add to folder + + lv #Add to folder + + + + Password: + + lv #Password: + + + + OK + + lv #OK + + + + User name: + + lv #User name: + + + + Cancel download + + lv #Cancel download + + + + Cut + + lv #Cut + + + + Closing + + lv #Closing + + + + Finish + + lv #Finish + + + + Registering + + lv #Registering + + + + Removing + + lv #Removing + + + + Requesting + + lv #Requesting + + + + Remove + + lv #Remove + + + + Moving + + lv #Moving + + + + Add detail + + lv #Add detail + + + + File name: + + lv #File name: + + + + Send + + lv #Send + + + + Advanced settings + + lv #Advanced settings + + + + Format + + lv #Format + + + + Add recipient + + lv #Add recipient + + + + Edit + + lv #Edit + + + + Menu + + Izvēlne + + + + Unmark + + Noņemt atzīmi + + + + Bookmark name: + + Grāmatzīmes nosaukums: + + + + Loudsp. on + + Ieslēgt skaļruni + lv #Loudsp. on + + + + Move + + Pārvietot + + + + Select all items + + Izvēlēties visus objektus + + + + Copy + + Kopēt + + + + Disable + + Deaktivizēt + + + + Select memory: + + Izvēlieties atmiņu: + + + + Retry + + Mēģināt vēlreiz + + + + Copy to folder + + Kopēt mapē + + + + Enable + + Aktivizēt + + + + Send message + + Sūtīt ziņu + lv #Send msg. + + + + Add bookmark + + Pievienot grāmatzīmi + + + + Mute + + Izslēgt mikrofonus + + + + Duration: + + Ilgums: + + + + Select file: + + Izvēlieties failu: + + + + Reset + + Atjaunot + + + + Done + + lv #Done + + + + Move to folder + + Pārvietot uz mapi + + + + Zoom in + + lv #Zoom in + + + + Connect + + lv #Connect + + + + Call + + Zvanīt + + + + Clear + + Nodzēst + + + + Current password: + + Pašreizējā parole: + lv #Current passw.: + + + + Deselect all items + + Atcelt visu objektu izvēli + + + + Select + + lv #Select + + + + Close + + lv #Close + + + + Saving + + Saglabā + + + + Loading + + Ielādē + + + + Replace + + Aizstāt + + + + Start + + Sākt + + + + Searching + + Meklē + + + + Select address: + + Izvēlieties adresi: + lv #Select addr.: + + + + Details: + + Dati: + + + + New password: + + Jaunā parole: + lv #New passw.: + + + + Select folder: + + Izvēlieties mapi: + + + + Reply + + Atbildēt + + + + Read + + Lasīt + + + + Go to web address + + Atvērt Web adresi + lv #Go to address + + + + Join + + Pievienoties + + + + Processing + + Apstrādā + + + + Date: + + Datums: + + + + Help + + Palīdzība + + + + Cancelling + + Atceļ + + + + Deactivate loudspeaker + + Deaktivizēt skaļruni + lv #Deactivate loudsp. + + + + To: + + Kam: + + + + Uninstalling + + Atinstalē + + + + Exit + + Iziet + + + + User ID: + + Lietotāja ID: + + + + Help + + Palīdzība + + + + Uninstall + + Atinstalēt + + + + Define + + Norādīt + + + + Expand + + Izvērst + + + + Back + + Atpakaļ + + + + Change + + Mainīt + + + + Collapse + + Sakļaut + + + + Additional details + + Papildinformācija + lv #Add. details + + + + Delete + + Dzēst + + + + Address: + + Adrese: + + + + Forward + + Pārsūtīt + + + + Quit + + Beigt + + + + Verify new password: + + Atkārtojiet jauno paroli: + lv #Verify new passw.: + + + + Pause + + lv #Pause + + + + Undo + + lv #Undo + + + + Video call + + lv #Video call + + + + Paste + + lv #Paste + + + + Zoom out + + Tālināt + + + + Last name: + + Uzvārds: + + + + Reject + + Atteikt + + + + Fit to screen + + Ietilpināt ekrānā + lv #Fit to scrn + + + + Answer + + Atbildēt + + + + Resume + + lv #Resume + + + + Loudsp. off + + lv #Loudsp. off + + + + Save + + lv #Save + + + + Deselect + + lv #Deselect + + + + Disconnecting + + lv #Disconnecting + + + + Select language: + + Izvēlieties valodu: + lv #Select language: + + + + Add member + + Pievienot dalībnieku + + + + Add + + Pievienot + + + + Yes + + + + + + Chat + + Tērzēt + + + + Cancel + + Atcelt + + + + Deleting + + Dzēš + + + + Handset + + Tālrunis + + + + Hide + + Paslēpt + + + + Connecting + + Savieno + + + + Insert + + Ielikt + + + + No + + + + + + Inserting + + Ieliek + + + + Opening + + Atver + + + + Phone number: + + lv #Phone number: + + + + Initialising + + Inicializē + + + + Web address: + + lv #Web address: + + + + Print + + lv #Print + + + + Deactivate + + Deaktivizēt + + + + Stop + + Pārtraukt + + + + Details + + Dati + + + + Continue + + Turpināt + + + + Listen + + Noklausīties + + + + First name: + + Vārds: + + + + Expires: + + Derīgums: + + + + Adding + + Pievieno + + + + Verify password: + + Atkārtojiet paroli: + lv #Verify passw.: + + + + Voice call + + Balss zvans + + + + Install + + Instalēt + + + + Select tone: + + Izvēlieties signālu: + + + + Show + + Rādīt + + + + Writing language: + + Rakstības valoda: + lv #Writing language: + + + + Add thumbnail + + Pievienot sīktēlu + + + + Disconnect + + Atvienot + lv #Disconn. + + + + Title: + + lv #Title: + + + + Installing + + lv #Installing + + + + End date: + + lv #End date: + + + + Folder name: + + lv #Folder name: + + + + Activate loudspeaker + + lv #Activate loudspeaker + + + + Select all contents + + lv #Select all contents + + + + Attachments + + lv #Attachments + + + + Buffering + + Ielādē buferī + + + + Time: + + Laiks: + + + + Find + + Atrast + + + + Organise + + Kārtot + + + + Copying + + Kopē + + + + Create message + + Izveidot ziņu + lv #Create msg. + + + + Mark + + Atzīmēt + + + + From: + + No: + + + + Add image + + lv #Add image + + + + Activate handset + + lv #Activate handset + + + + Retrieving + + lv #Retrieving + + + + Internet call + + lv #Internet call + + + + Options + + lv #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_mr.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_mr.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + Open + + + + Unmute + + Unmute + + + + Settings + + Settings + + + + Add to folder + + Add to folder + + + + Password: + + Password: + + + + OK + + OK + + + + User name: + + User name: + + + + Cancel download + + Cancel download + + + + Cut + + Cut + + + + Closing + + Closing + + + + Finish + + Finish + + + + Registering + + Registering + + + + Removing + + Removing + + + + Requesting + + Requesting + + + + Remove + + Remove + + + + Moving + + Moving + + + + Add detail + + Add detail + + + + File name: + + File name: + + + + Send + + Send + + + + Advanced settings + + Advanced settings + + + + Format + + Format + + + + Add recipient + + Add recipient + + + + Edit + + Edit + + + + Menu + + mr #Menu + + + + Unmark + + mr #Unmark + + + + Bookmark name: + + mr #Bookmark name: + + + + Loudsp. on + + mr #Loudspeaker on + mr #Loudsp. on + + + + Move + + mr #Move + + + + Select all items + + mr #Select all items + + + + Copy + + mr #Copy + + + + Disable + + mr #Disable + + + + Select memory: + + mr #Select memory: + + + + Retry + + mr #Retry + + + + Copy to folder + + mr #Copy to folder + + + + Enable + + mr #Enable + + + + Send message + + mr #Send message + mr #Send msg. + + + + Add bookmark + + mr #Add bookmark + + + + Mute + + mr #Mute + + + + Duration: + + mr #Duration: + + + + Select file: + + mr #Select file: + + + + Reset + + mr #Reset + + + + Done + + Done + + + + Move to folder + + mr #Move to folder + + + + Zoom in + + Zoom in + + + + Connect + + Connect + + + + Call + + mr #Call + + + + Clear + + mr #Clear + + + + Current password: + + mr #Current password: + mr #Current passw.: + + + + Deselect all items + + mr #Deselect all items + + + + Select + + Select + + + + Close + + Close + + + + Saving + + mr #Saving + + + + Loading + + mr #Loading + + + + Replace + + mr #Replace + + + + Start + + mr #Start + + + + Searching + + mr #Searching + + + + Select address: + + mr #Select address: + mr #Select addr.: + + + + Details: + + mr #Details: + + + + New password: + + mr #New password: + mr #New passw.: + + + + Select folder: + + mr #Select folder: + + + + Reply + + mr #Reply + + + + Read + + mr #Read + + + + Go to web address + + mr #Go to web address + mr #Go to address + + + + Join + + mr #Join + + + + Processing + + mr #Processing + + + + Date: + + mr #Date: + + + + Help + + mr #Help + + + + Cancelling + + mr #Cancelling + + + + Deactivate loudspeaker + + mr #Deactivate loudspeaker + mr #Deactivate loudsp. + + + + To: + + mr #To: + + + + Uninstalling + + mr #Uninstalling + + + + Exit + + mr #Exit + + + + User ID: + + mr #User ID: + + + + Help + + mr #Help + + + + Uninstall + + mr #Uninstall + + + + Define + + mr #Define + + + + Expand + + mr #Expand + + + + Back + + mr #Back + + + + Change + + mr #Change + + + + Collapse + + mr #Collapse + + + + Additional details + + mr #Additional details + mr #Add. details + + + + Delete + + mr #Delete + + + + Address: + + mr #Address: + + + + Forward + + mr #Forward + + + + Quit + + mr #Quit + + + + Verify new password: + + mr #Verify new password: + mr #Verify new passw.: + + + + Pause + + Pause + + + + Undo + + Undo + + + + Video call + + Video call + + + + Paste + + Paste + + + + Zoom out + + mr #Zoom out + + + + Last name: + + mr #Last name: + + + + Reject + + mr #Reject + + + + Fit to screen + + mr #Fit to screen + mr #Fit to scrn + + + + Answer + + mr #Answer + + + + Resume + + Resume + + + + Loudsp. off + + Loudsp. off + + + + Save + + Save + + + + Deselect + + Deselect + + + + Disconnecting + + Disconnecting + + + + Select language: + + mr #Select language: + mr #Select language: + + + + Add member + + mr #Add member + + + + Add + + mr #Add + + + + Yes + + mr #Yes + + + + Chat + + mr #Chat + + + + Cancel + + mr #Cancel + + + + Deleting + + mr #Deleting + + + + Handset + + mr #Handset + + + + Hide + + mr #Hide + + + + Connecting + + mr #Connecting + + + + Insert + + mr #Insert + + + + No + + mr #No + + + + Inserting + + mr #Inserting + + + + Opening + + mr #Opening + + + + Phone number: + + Phone number: + + + + Initialising + + mr #Initialising + + + + Web address: + + Web address: + + + + Print + + Print + + + + Deactivate + + mr #Deactivate + + + + Stop + + mr #Stop + + + + Details + + mr #Details + + + + Continue + + mr #Continue + + + + Listen + + mr #Listen + + + + First name: + + mr #First name: + + + + Expires: + + mr #Expires: + + + + Adding + + mr #Adding + + + + Verify password: + + mr #Verify password: + mr #Verify passw.: + + + + Voice call + + mr #Voice call + + + + Install + + mr #Install + + + + Select tone: + + mr #Select tone: + + + + Show + + mr #Show + + + + Writing language: + + mr #Writing language: + mr #Writing language: + + + + Add thumbnail + + mr #Add thumbnail + + + + Disconnect + + mr #Disconnect + mr #Disconn. + + + + Title: + + Title: + + + + Installing + + Installing + + + + End date: + + End date: + + + + Folder name: + + Folder name: + + + + Activate loudspeaker + + Activate loudspeaker + + + + Select all contents + + Select all contents + + + + Attachments + + Attachments + + + + Buffering + + mr #Buffering + + + + Time: + + mr #Time: + + + + Find + + mr #Find + + + + Organise + + mr #Organise + + + + Copying + + mr #Copying + + + + Create message + + mr #Create message + mr #Create msg. + + + + Mark + + mr #Mark + + + + From: + + mr #From: + + + + Add image + + Add image + + + + Activate handset + + Activate handset + + + + Retrieving + + Retrieving + + + + Internet call + + Internet call + + + + Options + + Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ms.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ms.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ms #Open + + + + Unmute + + ms #Unmute + + + + Settings + + ms #Settings + + + + Add to folder + + ms #Add to folder + + + + Password: + + ms #Password: + + + + OK + + ms #OK + + + + User name: + + ms #User name: + + + + Cancel download + + ms #Cancel download + + + + Cut + + ms #Cut + + + + Closing + + ms #Closing + + + + Finish + + ms #Finish + + + + Registering + + ms #Registering + + + + Removing + + ms #Removing + + + + Requesting + + ms #Requesting + + + + Remove + + ms #Remove + + + + Moving + + ms #Moving + + + + Add detail + + ms #Add detail + + + + File name: + + ms #File name: + + + + Send + + ms #Send + + + + Advanced settings + + ms #Advanced settings + + + + Format + + ms #Format + + + + Add recipient + + ms #Add recipient + + + + Edit + + ms #Edit + + + + Menu + + Menu + + + + Unmark + + Buang tanda + + + + Bookmark name: + + Nama penanda buku: + + + + Loudsp. on + + Pembesar suara aktif + ms #Loudsp. on + + + + Move + + Pindah + + + + Select all items + + Pilih semua item + + + + Copy + + Salin + + + + Disable + + Tak benarkan + + + + Select memory: + + Pilih memori: + + + + Retry + + Cuba semula + + + + Copy to folder + + Salin ke folder + + + + Enable + + Benarkan + + + + Send message + + Hantar mesej + ms #Send msg. + + + + Add bookmark + + Tambah penanda buku + + + + Mute + + Senyap + + + + Duration: + + Tempoh: + + + + Select file: + + Pilih fail: + + + + Reset + + Tetap semula + + + + Done + + ms #Done + + + + Move to folder + + Pindah ke folder + + + + Zoom in + + ms #Zoom in + + + + Connect + + ms #Connect + + + + Call + + Panggil + + + + Clear + + Kosongkan + + + + Current password: + + Kata laluan semasa: + ms #Current passw.: + + + + Deselect all items + + Nyahpilih semua item + + + + Select + + ms #Select + + + + Close + + ms #Close + + + + Saving + + Menyimpan + + + + Loading + + Memuat + + + + Replace + + Ganti + + + + Start + + Mula + + + + Searching + + Mencari + + + + Select address: + + Pilih alamat: + ms #Select addr.: + + + + Details: + + Butiran: + + + + New password: + + Kata laluan baru: + ms #New passw.: + + + + Select folder: + + Pilih folder: + + + + Reply + + Balas + + + + Read + + Baca + + + + Go to web address + + Pergi ke alamat web + ms #Go to address + + + + Join + + Sertai + + + + Processing + + Memproses + + + + Date: + + Tarikh: + + + + Help + + Bantuan + + + + Cancelling + + Membatalkan + + + + Deactivate loudspeaker + + Nyahaktifkan pembesar suara + ms #Deactivate loudsp. + + + + To: + + Kepada: + + + + Uninstalling + + Menyahpasang + + + + Exit + + Keluar + + + + User ID: + + ID pengguna: + + + + Help + + Bantuan + + + + Uninstall + + Nyahpasang + + + + Define + + Tentukan + + + + Expand + + Kembangkan + + + + Back + + Balik + + + + Change + + Tukar + + + + Collapse + + Runtuh + + + + Additional details + + Butiran tambahan + ms #Add. details + + + + Delete + + Padam + + + + Address: + + Alamat: + + + + Forward + + Kemukakan + + + + Quit + + Berhenti + + + + Verify new password: + + Sahkan kata laluan baru: + ms #Verify new passw.: + + + + Pause + + ms #Pause + + + + Undo + + ms #Undo + + + + Video call + + ms #Video call + + + + Paste + + ms #Paste + + + + Zoom out + + Zum ke luar + + + + Last name: + + Nama akhir: + + + + Reject + + Tolak + + + + Fit to screen + + Muat pada skrin + ms #Fit to scrn + + + + Answer + + Jawab + + + + Resume + + ms #Resume + + + + Loudsp. off + + ms #Loudsp. off + + + + Save + + ms #Save + + + + Deselect + + ms #Deselect + + + + Disconnecting + + ms #Disconnecting + + + + Select language: + + Pilih bahasa: + ms #Select language: + + + + Add member + + Tambah ahli + + + + Add + + Tambah + + + + Yes + + Ya + + + + Chat + + Bual + + + + Cancel + + Batal + + + + Deleting + + Memadam + + + + Handset + + Telefon bimbit + + + + Hide + + Sembunyi + + + + Connecting + + Menyambung + + + + Insert + + Masukkan + + + + No + + Tidak + + + + Inserting + + Memasukkan + + + + Opening + + Membuka + + + + Phone number: + + ms #Phone number: + + + + Initialising + + Memulakan + + + + Web address: + + ms #Web address: + + + + Print + + ms #Print + + + + Deactivate + + Nyahaktifkan + + + + Stop + + Henti + + + + Details + + Butiran + + + + Continue + + Teruskan + + + + Listen + + Dengar + + + + First name: + + Nama pertama: + + + + Expires: + + Tamat: + + + + Adding + + Menambah + + + + Verify password: + + Sahkan kata laluan: + ms #Verify passw.: + + + + Voice call + + Panggilan suara + + + + Install + + Pasang + + + + Select tone: + + Pilih nada: + + + + Show + + Tunjuk + + + + Writing language: + + Bahasa tulisan: + ms #Writing language: + + + + Add thumbnail + + Tambahkan imej kecil + + + + Disconnect + + Putus sambungan + ms #Disconn. + + + + Title: + + ms #Title: + + + + Installing + + ms #Installing + + + + End date: + + ms #End date: + + + + Folder name: + + ms #Folder name: + + + + Activate loudspeaker + + ms #Activate loudspeaker + + + + Select all contents + + ms #Select all contents + + + + Attachments + + ms #Attachments + + + + Buffering + + Menimbal + + + + Time: + + Masa: + + + + Find + + Cari + + + + Organise + + Susun + + + + Copying + + Menyalin + + + + Create message + + Buat mesej + ms #Create msg. + + + + Mark + + Tanda + + + + From: + + Daripada: + + + + Add image + + ms #Add image + + + + Activate handset + + ms #Activate handset + + + + Retrieving + + ms #Retrieving + + + + Internet call + + ms #Internet call + + + + Options + + ms #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_nb.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_nb.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + nb #Open + + + + Unmute + + nb #Unmute + + + + Settings + + nb #Settings + + + + Add to folder + + nb #Add to folder + + + + Password: + + nb #Password: + + + + OK + + nb #OK + + + + User name: + + nb #User name: + + + + Cancel download + + nb #Cancel download + + + + Cut + + nb #Cut + + + + Closing + + nb #Closing + + + + Finish + + nb #Finish + + + + Registering + + nb #Registering + + + + Removing + + nb #Removing + + + + Requesting + + nb #Requesting + + + + Remove + + nb #Remove + + + + Moving + + nb #Moving + + + + Add detail + + nb #Add detail + + + + File name: + + nb #File name: + + + + Send + + nb #Send + + + + Advanced settings + + nb #Advanced settings + + + + Format + + nb #Format + + + + Add recipient + + nb #Add recipient + + + + Edit + + nb #Edit + + + + Menu + + Meny + + + + Unmark + + Fjern merking + + + + Bookmark name: + + Bokmerkenavn: + + + + Loudsp. on + + Høyttaler på + nb #Loudsp. on + + + + Move + + Flytt + + + + Select all items + + Velg alle elementer + + + + Copy + + Kopier + + + + Disable + + Deaktiver + + + + Select memory: + + Velg minne: + + + + Retry + + Prøv på nytt + + + + Copy to folder + + Kopier til mappe + + + + Enable + + Aktiver + + + + Send message + + Send melding + nb #Send msg. + + + + Add bookmark + + Legg til bokmerke + + + + Mute + + Lyd av + + + + Duration: + + Varighet: + + + + Select file: + + Velg fil: + + + + Reset + + Nullstill + + + + Done + + nb #Done + + + + Move to folder + + Flytt til mappe + + + + Zoom in + + nb #Zoom in + + + + Connect + + nb #Connect + + + + Call + + Ring + + + + Clear + + Tøm + + + + Current password: + + Gjeldende passord: + nb #Current passw.: + + + + Deselect all items + + Fjern merking for alle + + + + Select + + nb #Select + + + + Close + + nb #Close + + + + Saving + + Lagrer + + + + Loading + + Laster + + + + Replace + + Erstatt + + + + Start + + Start + + + + Searching + + Søker + + + + Select address: + + Velg adresse: + nb #Select addr.: + + + + Details: + + Detaljer: + + + + New password: + + Nytt passord: + nb #New passw.: + + + + Select folder: + + Velg mappe: + + + + Reply + + Svar + + + + Read + + Les + + + + Go to web address + + Gå til webadresse + nb #Go to address + + + + Join + + Bli medlem + + + + Processing + + Behandler + + + + Date: + + Dato: + + + + Help + + Hjelp + + + + Cancelling + + Avbryter + + + + Deactivate loudspeaker + + Deaktiver høyttaler + nb #Deactivate loudsp. + + + + To: + + Til: + + + + Uninstalling + + Avinstallerer + + + + Exit + + Avslutt + + + + User ID: + + Bruker-ID: + + + + Help + + Hjelp + + + + Uninstall + + Avinstaller + + + + Define + + Angi + + + + Expand + + Utvid + + + + Back + + Tilbake + + + + Change + + Endre + + + + Collapse + + Slå sammen + + + + Additional details + + Flere detaljer + nb #Add. details + + + + Delete + + Slett + + + + Address: + + Adresse: + + + + Forward + + Videresend + + + + Quit + + Avslutt + + + + Verify new password: + + Bekreft nytt passord: + nb #Verify new passw.: + + + + Pause + + nb #Pause + + + + Undo + + nb #Undo + + + + Video call + + nb #Video call + + + + Paste + + nb #Paste + + + + Zoom out + + Zoom ut + + + + Last name: + + Etternavn: + + + + Reject + + Avvis + + + + Fit to screen + + Tilpass til skjerm + nb #Fit to scrn + + + + Answer + + Svar + + + + Resume + + nb #Resume + + + + Loudsp. off + + nb #Loudsp. off + + + + Save + + nb #Save + + + + Deselect + + nb #Deselect + + + + Disconnecting + + nb #Disconnecting + + + + Select language: + + Velg språk: + nb #Select language: + + + + Add member + + Legg til medlem + + + + Add + + Legg til + + + + Yes + + Ja + + + + Chat + + Chat + + + + Cancel + + Avbryt + + + + Deleting + + Sletter + + + + Handset + + Håndsett + + + + Hide + + Skjul + + + + Connecting + + Kobler til + + + + Insert + + Sett inn + + + + No + + Nei + + + + Inserting + + Setter inn + + + + Opening + + Åpner + + + + Phone number: + + nb #Phone number: + + + + Initialising + + Initialiserer + + + + Web address: + + nb #Web address: + + + + Print + + nb #Print + + + + Deactivate + + Deaktiver + + + + Stop + + Stopp + + + + Details + + Detaljer + + + + Continue + + Fortsett + + + + Listen + + Lytt + + + + First name: + + Fornavn: + + + + Expires: + + Utløper: + + + + Adding + + Legger til + + + + Verify password: + + Bekreft passord: + nb #Verify passw.: + + + + Voice call + + Taleanrop + + + + Install + + Installer + + + + Select tone: + + Velg tone: + + + + Show + + Vis + + + + Writing language: + + Skrivespråk: + nb #Writing language: + + + + Add thumbnail + + Legg til miniatyrbilde + + + + Disconnect + + Koble fra + nb #Disconn. + + + + Title: + + nb #Title: + + + + Installing + + nb #Installing + + + + End date: + + nb #End date: + + + + Folder name: + + nb #Folder name: + + + + Activate loudspeaker + + nb #Activate loudspeaker + + + + Select all contents + + nb #Select all contents + + + + Attachments + + nb #Attachments + + + + Buffering + + Bufrer + + + + Time: + + Tid: + + + + Find + + Søk + + + + Organise + + Organiser + + + + Copying + + Kopierer + + + + Create message + + Opprett melding + nb #Create msg. + + + + Mark + + Merk + + + + From: + + Fra: + + + + Add image + + nb #Add image + + + + Activate handset + + nb #Activate handset + + + + Retrieving + + nb #Retrieving + + + + Internet call + + nb #Internet call + + + + Options + + nb #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_nl.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_nl.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + nl #Open + + + + Unmute + + nl #Unmute + + + + Settings + + nl #Settings + + + + Add to folder + + nl #Add to folder + + + + Password: + + nl #Password: + + + + OK + + nl #OK + + + + User name: + + nl #User name: + + + + Cancel download + + nl #Cancel download + + + + Cut + + nl #Cut + + + + Closing + + nl #Closing + + + + Finish + + nl #Finish + + + + Registering + + nl #Registering + + + + Removing + + nl #Removing + + + + Requesting + + nl #Requesting + + + + Remove + + nl #Remove + + + + Moving + + nl #Moving + + + + Add detail + + nl #Add detail + + + + File name: + + nl #File name: + + + + Send + + nl #Send + + + + Advanced settings + + nl #Advanced settings + + + + Format + + nl #Format + + + + Add recipient + + nl #Add recipient + + + + Edit + + nl #Edit + + + + Menu + + Menu + + + + Unmark + + Markering opheffen + + + + Bookmark name: + + Naam bookmark: + + + + Loudsp. on + + Luidspreker aan + nl #Loudsp. on + + + + Move + + Verplaatsen + + + + Select all items + + Alle items selecteren + + + + Copy + + Kopiëren + + + + Disable + + Uitschakelen + + + + Select memory: + + Geheugen selecteren: + + + + Retry + + Opnieuw + + + + Copy to folder + + Kopiëren naar map + + + + Enable + + Inschakelen + + + + Send message + + Bericht verzenden + nl #Send msg. + + + + Add bookmark + + Bookmark toevoegen + + + + Mute + + Dempen + + + + Duration: + + Duur: + + + + Select file: + + Bestand selecteren: + + + + Reset + + Opnieuw instellen + + + + Done + + nl #Done + + + + Move to folder + + Verplaatsen naar map + + + + Zoom in + + nl #Zoom in + + + + Connect + + nl #Connect + + + + Call + + Bellen + + + + Clear + + Wissen + + + + Current password: + + Huidig wachtwoord: + nl #Current passw.: + + + + Deselect all items + + Alle items deselecteren + + + + Select + + nl #Select + + + + Close + + nl #Close + + + + Saving + + Opslaan + + + + Loading + + Laden + + + + Replace + + Vervangen + + + + Start + + Starten + + + + Searching + + Zoeken + + + + Select address: + + Adres selecteren: + nl #Select addr.: + + + + Details: + + Details: + + + + New password: + + Nieuw wachtwoord: + nl #New passw.: + + + + Select folder: + + Map selecteren: + + + + Reply + + Beantwoorden + + + + Read + + Lezen + + + + Go to web address + + Ga naar webadres + nl #Go to address + + + + Join + + Deelnemen + + + + Processing + + Verwerken + + + + Date: + + Datum: + + + + Help + + Help + + + + Cancelling + + Annuleren + + + + Deactivate loudspeaker + + Luidspreker deactiveren + nl #Deactivate loudsp. + + + + To: + + Tot: + + + + Uninstalling + + Verwijderen + + + + Exit + + Afsluiten + + + + User ID: + + Gebruikers-ID: + + + + Help + + Help + + + + Uninstall + + Verwijderen + + + + Define + + Opgeven + + + + Expand + + Uitvouwen + + + + Back + + Terug + + + + Change + + Wijzigen + + + + Collapse + + Samenvouwen + + + + Additional details + + Aanvullende details + nl #Add. details + + + + Delete + + Verwijderen + + + + Address: + + Adres: + + + + Forward + + Doorsturen + + + + Quit + + Stoppen + + + + Verify new password: + + Nieuw wachtwoord bevestigen: + nl #Verify new passw.: + + + + Pause + + nl #Pause + + + + Undo + + nl #Undo + + + + Video call + + nl #Video call + + + + Paste + + nl #Paste + + + + Zoom out + + Uitzoomen + + + + Last name: + + Achternaam: + + + + Reject + + Weigeren + + + + Fit to screen + + Aanpassen aan scherm + nl #Fit to scrn + + + + Answer + + Beantwoorden + + + + Resume + + nl #Resume + + + + Loudsp. off + + nl #Loudsp. off + + + + Save + + nl #Save + + + + Deselect + + nl #Deselect + + + + Disconnecting + + nl #Disconnecting + + + + Select language: + + Taal selecteren: + nl #Select language: + + + + Add member + + Lid toevoegen + + + + Add + + Toevoegen + + + + Yes + + Ja + + + + Chat + + Chat + + + + Cancel + + Annuleren + + + + Deleting + + Verwijderen + + + + Handset + + Telefoon + + + + Hide + + Verbergen + + + + Connecting + + Verbinden + + + + Insert + + Invoegen + + + + No + + Nee + + + + Inserting + + Invoegen + + + + Opening + + Openen + + + + Phone number: + + nl #Phone number: + + + + Initialising + + Initialiseren + + + + Web address: + + nl #Web address: + + + + Print + + nl #Print + + + + Deactivate + + Deactiveren + + + + Stop + + Stoppen + + + + Details + + Details + + + + Continue + + Doorgaan + + + + Listen + + Luisteren + + + + First name: + + Voornaam: + + + + Expires: + + Vervalt: + + + + Adding + + Toevoegen + + + + Verify password: + + Wachtwoord bevestigen: + nl #Verify passw.: + + + + Voice call + + Spraakoproep + + + + Install + + Installeren + + + + Select tone: + + Toon selecteren: + + + + Show + + Weergeven + + + + Writing language: + + Schrijftaal: + nl #Writing language: + + + + Add thumbnail + + Thumbnail toevoegen + + + + Disconnect + + Verbinding verbreken + nl #Disconn. + + + + Title: + + nl #Title: + + + + Installing + + nl #Installing + + + + End date: + + nl #End date: + + + + Folder name: + + nl #Folder name: + + + + Activate loudspeaker + + nl #Activate loudspeaker + + + + Select all contents + + nl #Select all contents + + + + Attachments + + nl #Attachments + + + + Buffering + + Bufferen + + + + Time: + + Tijd: + + + + Find + + Zoeken + + + + Organise + + Indelen + + + + Copying + + Kopiëren + + + + Create message + + Bericht maken + nl #Create msg. + + + + Mark + + Markeren + + + + From: + + Van: + + + + Add image + + nl #Add image + + + + Activate handset + + nl #Activate handset + + + + Retrieving + + nl #Retrieving + + + + Internet call + + nl #Internet call + + + + Options + + nl #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_pl.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_pl.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + pl #Open + + + + Unmute + + pl #Unmute + + + + Settings + + pl #Settings + + + + Add to folder + + pl #Add to folder + + + + Password: + + pl #Password: + + + + OK + + pl #OK + + + + User name: + + pl #User name: + + + + Cancel download + + pl #Cancel download + + + + Cut + + pl #Cut + + + + Closing + + pl #Closing + + + + Finish + + pl #Finish + + + + Registering + + pl #Registering + + + + Removing + + pl #Removing + + + + Requesting + + pl #Requesting + + + + Remove + + pl #Remove + + + + Moving + + pl #Moving + + + + Add detail + + pl #Add detail + + + + File name: + + pl #File name: + + + + Send + + pl #Send + + + + Advanced settings + + pl #Advanced settings + + + + Format + + pl #Format + + + + Add recipient + + pl #Add recipient + + + + Edit + + pl #Edit + + + + Menu + + Menu + + + + Unmark + + Usuń zaznaczenie + + + + Bookmark name: + + Nazwa zakładki: + + + + Loudsp. on + + Głośnik włączony + pl #Loudsp. on + + + + Move + + Przenieś + + + + Select all items + + Zaznacz wszystkie elementy + + + + Copy + + Kopiuj + + + + Disable + + Wyłącz + + + + Select memory: + + Wybierz pamięć: + + + + Retry + + Ponów próbę + + + + Copy to folder + + Kopiuj do folderu + + + + Enable + + Włącz + + + + Send message + + Wyślij wiadomość + pl #Send msg. + + + + Add bookmark + + Dodaj zakładkę + + + + Mute + + Wyłącz dźwięk + + + + Duration: + + Czas trwania: + + + + Select file: + + Wybierz plik: + + + + Reset + + Resetuj + + + + Done + + pl #Done + + + + Move to folder + + Przenieś do folderu + + + + Zoom in + + pl #Zoom in + + + + Connect + + pl #Connect + + + + Call + + Połącz + + + + Clear + + Wyczyść + + + + Current password: + + Aktualne hasło: + pl #Current passw.: + + + + Deselect all items + + Usuń wszystkie zaznaczenia + + + + Select + + pl #Select + + + + Close + + pl #Close + + + + Saving + + Trwa zapisywanie + + + + Loading + + Trwa ładowanie + + + + Replace + + Zamień + + + + Start + + Rozpocznij + + + + Searching + + Wyszukiwanie + + + + Select address: + + Wybierz adres: + pl #Select addr.: + + + + Details: + + Szczegóły: + + + + New password: + + Nowe hasło: + pl #New passw.: + + + + Select folder: + + Wybierz folder: + + + + Reply + + Odpowiedz + + + + Read + + Odczyt + + + + Go to web address + + Idź do adresu internetowego + pl #Go to address + + + + Join + + Dołącz + + + + Processing + + Trwa przetwarzanie + + + + Date: + + Data: + + + + Help + + Pomoc + + + + Cancelling + + Trwa anulowanie + + + + Deactivate loudspeaker + + Wyłącz głośnik + pl #Deactivate loudsp. + + + + To: + + Do: + + + + Uninstalling + + Trwa odinstalowywanie + + + + Exit + + Wyjdź + + + + User ID: + + ID użytkownika: + + + + Help + + Pomoc + + + + Uninstall + + Odinstaluj + + + + Define + + Określ + + + + Expand + + Rozwiń + + + + Back + + Wróć + + + + Change + + Zmień + + + + Collapse + + Zwiń + + + + Additional details + + Dodatkowe szczegóły + pl #Add. details + + + + Delete + + Usuń + + + + Address: + + Adres: + + + + Forward + + Prześlij dalej + + + + Quit + + Przerwij + + + + Verify new password: + + Potwierdź nowe hasło: + pl #Verify new passw.: + + + + Pause + + pl #Pause + + + + Undo + + pl #Undo + + + + Video call + + pl #Video call + + + + Paste + + pl #Paste + + + + Zoom out + + Pomniejsz + + + + Last name: + + Nazwisko: + + + + Reject + + Odrzuć + + + + Fit to screen + + Dopasuj do ekranu + pl #Fit to scrn + + + + Answer + + Odbierz + + + + Resume + + pl #Resume + + + + Loudsp. off + + pl #Loudsp. off + + + + Save + + pl #Save + + + + Deselect + + pl #Deselect + + + + Disconnecting + + pl #Disconnecting + + + + Select language: + + Wybierz język: + pl #Select language: + + + + Add member + + Dodaj członka + + + + Add + + Dodaj + + + + Yes + + Tak + + + + Chat + + Czat + + + + Cancel + + Anuluj + + + + Deleting + + Trwa usuwanie + + + + Handset + + Telefon + + + + Hide + + Ukryj + + + + Connecting + + Trwa łączenie + + + + Insert + + Wstaw + + + + No + + Nie + + + + Inserting + + Wstawianie + + + + Opening + + Trwa otwieranie + + + + Phone number: + + pl #Phone number: + + + + Initialising + + Trwa inicjowanie + + + + Web address: + + pl #Web address: + + + + Print + + pl #Print + + + + Deactivate + + Wyłącz + + + + Stop + + Zatrzymaj + + + + Details + + Szczegóły + + + + Continue + + Kontynuuj + + + + Listen + + Odsłuchaj + + + + First name: + + Imię: + + + + Expires: + + Utrata ważności: + + + + Adding + + Trwa dodawanie + + + + Verify password: + + Potwierdź hasło: + pl #Verify passw.: + + + + Voice call + + Połączenie głosowe + + + + Install + + Zainstaluj + + + + Select tone: + + Wybierz dźwięk: + + + + Show + + Pokaż + + + + Writing language: + + Język tekstów: + pl #Writing language: + + + + Add thumbnail + + Dodaj miniaturę + + + + Disconnect + + Rozłącz + pl #Disconn. + + + + Title: + + pl #Title: + + + + Installing + + pl #Installing + + + + End date: + + pl #End date: + + + + Folder name: + + pl #Folder name: + + + + Activate loudspeaker + + pl #Activate loudspeaker + + + + Select all contents + + pl #Select all contents + + + + Attachments + + pl #Attachments + + + + Buffering + + Buforowanie + + + + Time: + + Godzina: + + + + Find + + Znajdź + + + + Organise + + Porządkuj + + + + Copying + + Trwa kopiowanie + + + + Create message + + Utwórz wiadomość + pl #Create msg. + + + + Mark + + Zaznacz + + + + From: + + Od: + + + + Add image + + pl #Add image + + + + Activate handset + + pl #Activate handset + + + + Retrieving + + pl #Retrieving + + + + Internet call + + pl #Internet call + + + + Options + + pl #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_pt.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_pt.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + pt #Open + + + + Unmute + + pt #Unmute + + + + Settings + + pt #Settings + + + + Add to folder + + pt #Add to folder + + + + Password: + + pt #Password: + + + + OK + + pt #OK + + + + User name: + + pt #User name: + + + + Cancel download + + pt #Cancel download + + + + Cut + + pt #Cut + + + + Closing + + pt #Closing + + + + Finish + + pt #Finish + + + + Registering + + pt #Registering + + + + Removing + + pt #Removing + + + + Requesting + + pt #Requesting + + + + Remove + + pt #Remove + + + + Moving + + pt #Moving + + + + Add detail + + pt #Add detail + + + + File name: + + pt #File name: + + + + Send + + pt #Send + + + + Advanced settings + + pt #Advanced settings + + + + Format + + pt #Format + + + + Add recipient + + pt #Add recipient + + + + Edit + + pt #Edit + + + + Menu + + Menu + + + + Unmark + + Desmarcar + + + + Bookmark name: + + Nome do favorito: + + + + Loudsp. on + + Altifalante ligado + pt #Loudsp. on + + + + Move + + Mover + + + + Select all items + + Seleccionar todos os itens + + + + Copy + + Copiar + + + + Disable + + Desactivar + + + + Select memory: + + Seleccionar memória: + + + + Retry + + Repetir + + + + Copy to folder + + Copiar para a pasta + + + + Enable + + Activar + + + + Send message + + Enviar mensagem + pt #Send msg. + + + + Add bookmark + + Adicionar favorito + + + + Mute + + Silenciar + + + + Duration: + + Duração: + + + + Select file: + + Seleccionar ficheiro: + + + + Reset + + Reinicializar + + + + Done + + pt #Done + + + + Move to folder + + Mover para a pasta + + + + Zoom in + + pt #Zoom in + + + + Connect + + pt #Connect + + + + Call + + Chamar + + + + Clear + + Limpar + + + + Current password: + + Senha actual: + pt #Current passw.: + + + + Deselect all items + + Anular a selecção de todos os itens + + + + Select + + pt #Select + + + + Close + + pt #Close + + + + Saving + + A guardar + + + + Loading + + A carregar + + + + Replace + + Substituir + + + + Start + + Iniciar + + + + Searching + + A procurar + + + + Select address: + + Seleccionar endereço: + pt #Select addr.: + + + + Details: + + Detalhes: + + + + New password: + + Nova senha: + pt #New passw.: + + + + Select folder: + + Seleccionar pasta: + + + + Reply + + Responder + + + + Read + + Ler + + + + Go to web address + + Ir para endereço web + pt #Go to address + + + + Join + + Juntar-se + + + + Processing + + A processar + + + + Date: + + Data: + + + + Help + + Ajuda + + + + Cancelling + + A cancelar + + + + Deactivate loudspeaker + + Desactivar altifalante + pt #Deactivate loudsp. + + + + To: + + Até às: + + + + Uninstalling + + A desinstalar + + + + Exit + + Sair + + + + User ID: + + ID de utilizador: + + + + Help + + Ajuda + + + + Uninstall + + Desinstalar + + + + Define + + Definir + + + + Expand + + Expandir + + + + Back + + Para trás + + + + Change + + Alterar + + + + Collapse + + Retrair + + + + Additional details + + Adicionar detalhes + pt #Add. details + + + + Delete + + Apagar + + + + Address: + + Endereço: + + + + Forward + + Reencaminhar + + + + Quit + + Abandonar + + + + Verify new password: + + Verificar nova senha: + pt #Verify new passw.: + + + + Pause + + pt #Pause + + + + Undo + + pt #Undo + + + + Video call + + pt #Video call + + + + Paste + + pt #Paste + + + + Zoom out + + Reduzir + + + + Last name: + + Apelido: + + + + Reject + + Rejeitar + + + + Fit to screen + + Ajustar ao ecrã + pt #Fit to scrn + + + + Answer + + Atender + + + + Resume + + pt #Resume + + + + Loudsp. off + + pt #Loudsp. off + + + + Save + + pt #Save + + + + Deselect + + pt #Deselect + + + + Disconnecting + + pt #Disconnecting + + + + Select language: + + Seleccionar idioma: + pt #Select language: + + + + Add member + + Adicionar membro + + + + Add + + Adicionar + + + + Yes + + Sim + + + + Chat + + Chat + + + + Cancel + + Cancelar + + + + Deleting + + A eliminar + + + + Handset + + Telemóvel + + + + Hide + + Ocultar + + + + Connecting + + A ligar + + + + Insert + + Inserir + + + + No + + Não + + + + Inserting + + A inserir + + + + Opening + + A abrir + + + + Phone number: + + pt #Phone number: + + + + Initialising + + A inicializar + + + + Web address: + + pt #Web address: + + + + Print + + pt #Print + + + + Deactivate + + Desactivar + + + + Stop + + Parar + + + + Details + + Detalhes + + + + Continue + + Continuar + + + + Listen + + Escutar + + + + First name: + + Nome próprio: + + + + Expires: + + Expira a: + + + + Adding + + A adicionar + + + + Verify password: + + Verificar senha: + pt #Verify passw.: + + + + Voice call + + Chamada de voz + + + + Install + + Instalar + + + + Select tone: + + Seleccionar tom: + + + + Show + + Mostrar + + + + Writing language: + + Idioma de escrita: + pt #Writing language: + + + + Add thumbnail + + Adicionar imagem reduzida + + + + Disconnect + + Desligar + pt #Disconn. + + + + Title: + + pt #Title: + + + + Installing + + pt #Installing + + + + End date: + + pt #End date: + + + + Folder name: + + pt #Folder name: + + + + Activate loudspeaker + + pt #Activate loudspeaker + + + + Select all contents + + pt #Select all contents + + + + Attachments + + pt #Attachments + + + + Buffering + + A memorizar temporariamente + + + + Time: + + Hora: + + + + Find + + Encontrar + + + + Organise + + Organizar + + + + Copying + + A copiar + + + + Create message + + Criar mensagem + pt #Create msg. + + + + Mark + + Marcar + + + + From: + + De: + + + + Add image + + pt #Add image + + + + Activate handset + + pt #Activate handset + + + + Retrieving + + pt #Retrieving + + + + Internet call + + pt #Internet call + + + + Options + + pt #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_pt_BR.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_pt_BR.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + pt_br #Open + + + + Unmute + + pt_br #Unmute + + + + Settings + + pt_br #Settings + + + + Add to folder + + pt_br #Add to folder + + + + Password: + + pt_br #Password: + + + + OK + + pt_br #OK + + + + User name: + + pt_br #User name: + + + + Cancel download + + pt_br #Cancel download + + + + Cut + + pt_br #Cut + + + + Closing + + pt_br #Closing + + + + Finish + + pt_br #Finish + + + + Registering + + pt_br #Registering + + + + Removing + + pt_br #Removing + + + + Requesting + + pt_br #Requesting + + + + Remove + + pt_br #Remove + + + + Moving + + pt_br #Moving + + + + Add detail + + pt_br #Add detail + + + + File name: + + pt_br #File name: + + + + Send + + pt_br #Send + + + + Advanced settings + + pt_br #Advanced settings + + + + Format + + pt_br #Format + + + + Add recipient + + pt_br #Add recipient + + + + Edit + + pt_br #Edit + + + + Menu + + Menu + + + + Unmark + + Desmarcar + + + + Bookmark name: + + Nome do marcador: + + + + Loudsp. on + + Alto-falante ativado + pt_br #Loudsp. on + + + + Move + + Mover + + + + Select all items + + Selecionar todos os itens + + + + Copy + + Copiar + + + + Disable + + Desativar + + + + Select memory: + + Selecionar memória: + + + + Retry + + Repetir + + + + Copy to folder + + Copiar para pasta + + + + Enable + + Ativar + + + + Send message + + Enviar mensagem + pt_br #Send msg. + + + + Add bookmark + + Adicionar marcador + + + + Mute + + Sem áudio + + + + Duration: + + Duração: + + + + Select file: + + Selecionar arquivo: + + + + Reset + + Zerar + + + + Done + + pt_br #Done + + + + Move to folder + + Mover para pasta + + + + Zoom in + + pt_br #Zoom in + + + + Connect + + pt_br #Connect + + + + Call + + Chamar + + + + Clear + + Apagar + + + + Current password: + + Senha atual: + pt_br #Current passw.: + + + + Deselect all items + + Desmarcar todos os itens + + + + Select + + pt_br #Select + + + + Close + + pt_br #Close + + + + Saving + + Salvando + + + + Loading + + Carregando + + + + Replace + + Substituir + + + + Start + + Iniciar + + + + Searching + + Buscando + + + + Select address: + + Selecionar endereço: + pt_br #Select addr.: + + + + Details: + + Detalhes: + + + + New password: + + Nova senha: + pt_br #New passw.: + + + + Select folder: + + Selecionar pasta: + + + + Reply + + Responder + + + + Read + + Ler + + + + Go to web address + + Ir para endereço da web + pt_br #Go to address + + + + Join + + Entrar + + + + Processing + + Processando + + + + Date: + + Data: + + + + Help + + Ajuda + + + + Cancelling + + Cancelando + + + + Deactivate loudspeaker + + Desativar alto-falante + pt_br #Deactivate loudsp. + + + + To: + + Até: + + + + Uninstalling + + Desinstalando + + + + Exit + + Sair + + + + User ID: + + ID de usuário: + + + + Help + + Ajuda + + + + Uninstall + + Desinstalar + + + + Define + + Definir + + + + Expand + + Expandir + + + + Back + + Voltar + + + + Change + + Alterar + + + + Collapse + + Recolher + + + + Additional details + + Detalhes adicionais + pt_br #Add. details + + + + Delete + + Excluir + + + + Address: + + Endereço: + + + + Forward + + Encaminhar + + + + Quit + + Encerrar + + + + Verify new password: + + Confirmar nova senha: + pt_br #Verify new passw.: + + + + Pause + + pt_br #Pause + + + + Undo + + pt_br #Undo + + + + Video call + + pt_br #Video call + + + + Paste + + pt_br #Paste + + + + Zoom out + + Menos zoom + + + + Last name: + + Sobrenome: + + + + Reject + + Recusar + + + + Fit to screen + + Ajustar à tela + pt_br #Fit to scrn + + + + Answer + + Atender + + + + Resume + + pt_br #Resume + + + + Loudsp. off + + pt_br #Loudsp. off + + + + Save + + pt_br #Save + + + + Deselect + + pt_br #Deselect + + + + Disconnecting + + pt_br #Disconnecting + + + + Select language: + + Selecionar idioma: + pt_br #Select language: + + + + Add member + + Adicionar membro + + + + Add + + Adicionar + + + + Yes + + Sim + + + + Chat + + Bate-papo + + + + Cancel + + Cancelar + + + + Deleting + + Excluindo + + + + Handset + + Aparelho + + + + Hide + + Ocultar + + + + Connecting + + Conectando + + + + Insert + + Inserir + + + + No + + Não + + + + Inserting + + Inserindo + + + + Opening + + Abrindo + + + + Phone number: + + pt_br #Phone number: + + + + Initialising + + Inicializando + + + + Web address: + + pt_br #Web address: + + + + Print + + pt_br #Print + + + + Deactivate + + Desativar + + + + Stop + + Parar + + + + Details + + Detalhes + + + + Continue + + Continuar + + + + Listen + + Ouvir + + + + First name: + + Nome: + + + + Expires: + + Vencimento: + + + + Adding + + Adicionando + + + + Verify password: + + Confirmar senha: + pt_br #Verify passw.: + + + + Voice call + + Chamada de voz + + + + Install + + Instalar + + + + Select tone: + + Selecionar toque: + + + + Show + + Mostrar + + + + Writing language: + + Idioma de escrita: + pt_br #Writing language: + + + + Add thumbnail + + Adicionar miniatura + + + + Disconnect + + Desconectar + pt_br #Disconn. + + + + Title: + + pt_br #Title: + + + + Installing + + pt_br #Installing + + + + End date: + + pt_br #End date: + + + + Folder name: + + pt_br #Folder name: + + + + Activate loudspeaker + + pt_br #Activate loudspeaker + + + + Select all contents + + pt_br #Select all contents + + + + Attachments + + pt_br #Attachments + + + + Buffering + + Armazenando em buffer + + + + Time: + + Hora: + + + + Find + + Encontrar + + + + Organise + + Organizar + + + + Copying + + Copiando + + + + Create message + + Criar mensagem + pt_br #Create msg. + + + + Mark + + Marcar + + + + From: + + De: + + + + Add image + + pt_br #Add image + + + + Activate handset + + pt_br #Activate handset + + + + Retrieving + + pt_br #Retrieving + + + + Internet call + + pt_br #Internet call + + + + Options + + pt_br #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ro.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ro.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ro #Open + + + + Unmute + + ro #Unmute + + + + Settings + + ro #Settings + + + + Add to folder + + ro #Add to folder + + + + Password: + + ro #Password: + + + + OK + + ro #OK + + + + User name: + + ro #User name: + + + + Cancel download + + ro #Cancel download + + + + Cut + + ro #Cut + + + + Closing + + ro #Closing + + + + Finish + + ro #Finish + + + + Registering + + ro #Registering + + + + Removing + + ro #Removing + + + + Requesting + + ro #Requesting + + + + Remove + + ro #Remove + + + + Moving + + ro #Moving + + + + Add detail + + ro #Add detail + + + + File name: + + ro #File name: + + + + Send + + ro #Send + + + + Advanced settings + + ro #Advanced settings + + + + Format + + ro #Format + + + + Add recipient + + ro #Add recipient + + + + Edit + + ro #Edit + + + + Menu + + Meniu + + + + Unmark + + Anulare marcare + + + + Bookmark name: + + Nume marcaj: + + + + Loudsp. on + + Activare difuzor + ro #Loudsp. on + + + + Move + + Mutare + + + + Select all items + + Selectare toate articolele + + + + Copy + + Copiere + + + + Disable + + Dezactivare + + + + Select memory: + + Selectare memorie: + + + + Retry + + Reîncercare + + + + Copy to folder + + Copiere în dosar + + + + Enable + + Activare + + + + Send message + + Expediere mesaj + ro #Send msg. + + + + Add bookmark + + Adăugare marcaj + + + + Mute + + Dezactivare microfon + + + + Duration: + + Durată: + + + + Select file: + + Selectare fiȘier: + + + + Reset + + Resetare + + + + Done + + ro #Done + + + + Move to folder + + Mutare în dosarul + + + + Zoom in + + ro #Zoom in + + + + Connect + + ro #Connect + + + + Call + + Apelare + + + + Clear + + Ștergere + + + + Current password: + + Parolă curentă: + ro #Current passw.: + + + + Deselect all items + + Deselectare toate articolele + + + + Select + + ro #Select + + + + Close + + ro #Close + + + + Saving + + Memorare în curs + + + + Loading + + Încărcare în curs + + + + Replace + + Înlocuire + + + + Start + + Pornire + + + + Searching + + Căutare în curs + + + + Select address: + + Selectare adresă: + ro #Select addr.: + + + + Details: + + Detalii: + + + + New password: + + Parolă nouă: + ro #New passw.: + + + + Select folder: + + Selectare dosar: + + + + Reply + + Răspuns + + + + Read + + Citire + + + + Go to web address + + Salt la adresă Internet + ro #Go to address + + + + Join + + Participare + + + + Processing + + Procesare în curs + + + + Date: + + Dată: + + + + Help + + Ajutor + + + + Cancelling + + Anulare în curs + + + + Deactivate loudspeaker + + Dezactivare difuzor + ro #Deactivate loudsp. + + + + To: + + Către: + + + + Uninstalling + + Dezinstalare în curs + + + + Exit + + IeȘire + + + + User ID: + + Identitate utilizator: + + + + Help + + Ajutor + + + + Uninstall + + Dezinstalare + + + + Define + + Definire + + + + Expand + + Extindere + + + + Back + + Înapoi + + + + Change + + Modificare + + + + Collapse + + Restrângere + + + + Additional details + + Detalii suplimentare + ro #Add. details + + + + Delete + + Ștergere + + + + Address: + + Adresă: + + + + Forward + + RedirecȚionare + + + + Quit + + RenunȚaȚi + + + + Verify new password: + + Confirmare parolă nouă: + ro #Verify new passw.: + + + + Pause + + ro #Pause + + + + Undo + + ro #Undo + + + + Video call + + ro #Video call + + + + Paste + + ro #Paste + + + + Zoom out + + MicȘorare imagine + + + + Last name: + + Nume de familie: + + + + Reject + + Respingere + + + + Fit to screen + + Încadrare în ecran + ro #Fit to scrn + + + + Answer + + Răspuns + + + + Resume + + ro #Resume + + + + Loudsp. off + + ro #Loudsp. off + + + + Save + + ro #Save + + + + Deselect + + ro #Deselect + + + + Disconnecting + + ro #Disconnecting + + + + Select language: + + Selectare limbă: + ro #Select language: + + + + Add member + + Adăugare membru + + + + Add + + Adăugare + + + + Yes + + Da + + + + Chat + + Chat + + + + Cancel + + Anulare + + + + Deleting + + Ștergere în curs + + + + Handset + + Microreceptor + + + + Hide + + Ascundere + + + + Connecting + + Conectare în curs + + + + Insert + + Inserare + + + + No + + Nu + + + + Inserting + + Inserare în curs + + + + Opening + + Deschidere în curs + + + + Phone number: + + ro #Phone number: + + + + Initialising + + IniȚializare în curs + + + + Web address: + + ro #Web address: + + + + Print + + ro #Print + + + + Deactivate + + Dezactivare + + + + Stop + + Oprire + + + + Details + + Detalii + + + + Continue + + Continuare + + + + Listen + + Ascultare + + + + First name: + + Prenume: + + + + Expires: + + Expiră: + + + + Adding + + Adăugare în curs + + + + Verify password: + + Confirmare parolă: + ro #Verify passw.: + + + + Voice call + + Apel vocal + + + + Install + + Instalare + + + + Select tone: + + Selectare sunet: + + + + Show + + AfiȘare + + + + Writing language: + + Scriere în limba: + ro #Writing language: + + + + Add thumbnail + + Adăugare imagine în miniatură + + + + Disconnect + + Deconectare + ro #Disconn. + + + + Title: + + ro #Title: + + + + Installing + + ro #Installing + + + + End date: + + ro #End date: + + + + Folder name: + + ro #Folder name: + + + + Activate loudspeaker + + ro #Activate loudspeaker + + + + Select all contents + + ro #Select all contents + + + + Attachments + + ro #Attachments + + + + Buffering + + Aplicare zonă tampon în curs + + + + Time: + + Oră: + + + + Find + + Căutare + + + + Organise + + Organizare + + + + Copying + + Copiere în curs + + + + Create message + + Creare mesaj + ro #Create msg. + + + + Mark + + Marcare + + + + From: + + De la: + + + + Add image + + ro #Add image + + + + Activate handset + + ro #Activate handset + + + + Retrieving + + ro #Retrieving + + + + Internet call + + ro #Internet call + + + + Options + + ro #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ru.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ru.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ru #Open + + + + Unmute + + ru #Unmute + + + + Settings + + ru #Settings + + + + Add to folder + + ru #Add to folder + + + + Password: + + ru #Password: + + + + OK + + ru #OK + + + + User name: + + ru #User name: + + + + Cancel download + + ru #Cancel download + + + + Cut + + ru #Cut + + + + Closing + + ru #Closing + + + + Finish + + ru #Finish + + + + Registering + + ru #Registering + + + + Removing + + ru #Removing + + + + Requesting + + ru #Requesting + + + + Remove + + ru #Remove + + + + Moving + + ru #Moving + + + + Add detail + + ru #Add detail + + + + File name: + + ru #File name: + + + + Send + + ru #Send + + + + Advanced settings + + ru #Advanced settings + + + + Format + + ru #Format + + + + Add recipient + + ru #Add recipient + + + + Edit + + ru #Edit + + + + Menu + + Меню + + + + Unmark + + Снять отметку + + + + Bookmark name: + + Имя закладки: + + + + Loudsp. on + + Включить громкоговоритель + ru #Loudsp. on + + + + Move + + Переместить + + + + Select all items + + Выбрать все объекты + + + + Copy + + Скопировать + + + + Disable + + Отключить + + + + Select memory: + + Выберите память: + + + + Retry + + Повторить + + + + Copy to folder + + Скопировать в папку + + + + Enable + + Включить + + + + Send message + + Передать сообщение + ru #Send msg. + + + + Add bookmark + + Добавить закладку + + + + Mute + + Отключить звук + + + + Duration: + + Длительность: + + + + Select file: + + Выберите файл: + + + + Reset + + Сбросить + + + + Done + + ru #Done + + + + Move to folder + + Переместить в папку + + + + Zoom in + + ru #Zoom in + + + + Connect + + ru #Connect + + + + Call + + Вызвать + + + + Clear + + Очистить + + + + Current password: + + Текущий пароль: + ru #Current passw.: + + + + Deselect all items + + Отменить выбор всех объектов + + + + Select + + ru #Select + + + + Close + + ru #Close + + + + Saving + + Сохранение + + + + Loading + + Загрузка + + + + Replace + + Заменить + + + + Start + + Начать + + + + Searching + + Поиск + + + + Select address: + + Выберите адрес: + ru #Select addr.: + + + + Details: + + Информация: + + + + New password: + + Новый пароль: + ru #New passw.: + + + + Select folder: + + Выберите папку: + + + + Reply + + Ответить + + + + Read + + Прочитать + + + + Go to web address + + Перейти на веб-адрес + ru #Go to address + + + + Join + + Присоединиться + + + + Processing + + Обработка + + + + Date: + + Дата: + + + + Help + + Справка + + + + Cancelling + + Отмена + + + + Deactivate loudspeaker + + Отключить громкоговоритель + ru #Deactivate loudsp. + + + + To: + + До: + + + + Uninstalling + + Удаление + + + + Exit + + Выйти + + + + User ID: + + Идентификатор пользователя: + + + + Help + + Справка + + + + Uninstall + + Удалить + + + + Define + + Определить + + + + Expand + + Развернуть + + + + Back + + Назад + + + + Change + + Изменить + + + + Collapse + + Свернуть + + + + Additional details + + Дополнительная информация + ru #Add. details + + + + Delete + + Удалить + + + + Address: + + Адрес: + + + + Forward + + Переслать + + + + Quit + + Выйти + + + + Verify new password: + + Подтвердите новый пароль: + ru #Verify new passw.: + + + + Pause + + ru #Pause + + + + Undo + + ru #Undo + + + + Video call + + ru #Video call + + + + Paste + + ru #Paste + + + + Zoom out + + Уменьшить + + + + Last name: + + Фамилия: + + + + Reject + + Отклонить + + + + Fit to screen + + По размеру экрана + ru #Fit to scrn + + + + Answer + + Ответить + + + + Resume + + ru #Resume + + + + Loudsp. off + + ru #Loudsp. off + + + + Save + + ru #Save + + + + Deselect + + ru #Deselect + + + + Disconnecting + + ru #Disconnecting + + + + Select language: + + Выберите язык: + ru #Select language: + + + + Add member + + Добавить участника + + + + Add + + Добавить + + + + Yes + + Да + + + + Chat + + Чат + + + + Cancel + + Отменить + + + + Deleting + + Удаление + + + + Handset + + Телефон + + + + Hide + + Скрыть + + + + Connecting + + Подключение + + + + Insert + + Вставить + + + + No + + Нет + + + + Inserting + + Вставка + + + + Opening + + Открытие + + + + Phone number: + + ru #Phone number: + + + + Initialising + + Инициализация + + + + Web address: + + ru #Web address: + + + + Print + + ru #Print + + + + Deactivate + + Отключить + + + + Stop + + Остановить + + + + Details + + Информация + + + + Continue + + Продолжить + + + + Listen + + Слушать + + + + First name: + + Имя: + + + + Expires: + + Действует до: + + + + Adding + + Добавление + + + + Verify password: + + Подтвердите пароль: + ru #Verify passw.: + + + + Voice call + + Голосовой вызов + + + + Install + + Установить + + + + Select tone: + + Выберите сигнал: + + + + Show + + Показать + + + + Writing language: + + Язык ввода: + ru #Writing language: + + + + Add thumbnail + + Добавить миникартинку + + + + Disconnect + + Разъединить + ru #Disconn. + + + + Title: + + ru #Title: + + + + Installing + + ru #Installing + + + + End date: + + ru #End date: + + + + Folder name: + + ru #Folder name: + + + + Activate loudspeaker + + ru #Activate loudspeaker + + + + Select all contents + + ru #Select all contents + + + + Attachments + + ru #Attachments + + + + Buffering + + Загрузка в буфер + + + + Time: + + Время: + + + + Find + + Найти + + + + Organise + + Упорядочить + + + + Copying + + Копирование + + + + Create message + + Создать сообщение + ru #Create msg. + + + + Mark + + Отметить + + + + From: + + С: + + + + Add image + + ru #Add image + + + + Activate handset + + ru #Activate handset + + + + Retrieving + + ru #Retrieving + + + + Internet call + + ru #Internet call + + + + Options + + ru #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_sk.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_sk.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + sk #Open + + + + Unmute + + sk #Unmute + + + + Settings + + sk #Settings + + + + Add to folder + + sk #Add to folder + + + + Password: + + sk #Password: + + + + OK + + sk #OK + + + + User name: + + sk #User name: + + + + Cancel download + + sk #Cancel download + + + + Cut + + sk #Cut + + + + Closing + + sk #Closing + + + + Finish + + sk #Finish + + + + Registering + + sk #Registering + + + + Removing + + sk #Removing + + + + Requesting + + sk #Requesting + + + + Remove + + sk #Remove + + + + Moving + + sk #Moving + + + + Add detail + + sk #Add detail + + + + File name: + + sk #File name: + + + + Send + + sk #Send + + + + Advanced settings + + sk #Advanced settings + + + + Format + + sk #Format + + + + Add recipient + + sk #Add recipient + + + + Edit + + sk #Edit + + + + Menu + + Menu + + + + Unmark + + Odznačiť + + + + Bookmark name: + + Názov záložky: + + + + Loudsp. on + + Reproduktor zapnutý + sk #Loudsp. on + + + + Move + + Presunúť + + + + Select all items + + Zvoliť všetky položky + + + + Copy + + Kopírovať + + + + Disable + + Vypnúť + + + + Select memory: + + Zvoliť pamäť: + + + + Retry + + Opakovať + + + + Copy to folder + + Kopírovať do zložky + + + + Enable + + Zapnúť + + + + Send message + + Poslať správu + sk #Send msg. + + + + Add bookmark + + Pridať záložku + + + + Mute + + Stlmiť + + + + Duration: + + Trvanie: + + + + Select file: + + Zvoliť súbor: + + + + Reset + + Vynulovať + + + + Done + + sk #Done + + + + Move to folder + + Presunúť do zložky + + + + Zoom in + + sk #Zoom in + + + + Connect + + sk #Connect + + + + Call + + Volať + + + + Clear + + Zmazať + + + + Current password: + + Aktuálne heslo: + sk #Current passw.: + + + + Deselect all items + + Zrušiť voľbu všetkých položiek + + + + Select + + sk #Select + + + + Close + + sk #Close + + + + Saving + + Ukladá sa + + + + Loading + + Načítava sa + + + + Replace + + Zameniť + + + + Start + + Začať + + + + Searching + + Hľadá sa + + + + Select address: + + Zvoliť adresu: + sk #Select addr.: + + + + Details: + + Detaily: + + + + New password: + + Nové heslo: + sk #New passw.: + + + + Select folder: + + Zvoliť zložku: + + + + Reply + + Odpovedať + + + + Read + + Čítať + + + + Go to web address + + Ísť na webovú adresu + sk #Go to address + + + + Join + + Pripojiť sa + + + + Processing + + Prebieha spracovanie + + + + Date: + + Dátum: + + + + Help + + Pomocník + + + + Cancelling + + Ruší sa + + + + Deactivate loudspeaker + + Vypnúť reproduktor + sk #Deactivate loudsp. + + + + To: + + Do: + + + + Uninstalling + + Prebieha odinštalovanie + + + + Exit + + Ukončiť + + + + User ID: + + Identifikácia užívateľa: + + + + Help + + Pomocník + + + + Uninstall + + Odinštalovať + + + + Define + + Definovať + + + + Expand + + Rozbaliť + + + + Back + + Späť + + + + Change + + Zmeniť + + + + Collapse + + Zbaliť + + + + Additional details + + Doplnkové detaily + sk #Add. details + + + + Delete + + Vymazať + + + + Address: + + Adresa: + + + + Forward + + Poslať ďalej + + + + Quit + + Skončiť + + + + Verify new password: + + Overte nové heslo: + sk #Verify new passw.: + + + + Pause + + sk #Pause + + + + Undo + + sk #Undo + + + + Video call + + sk #Video call + + + + Paste + + sk #Paste + + + + Zoom out + + Zmenšiť + + + + Last name: + + Priezvisko: + + + + Reject + + Odmietnuť + + + + Fit to screen + + Prispôsobiť displeju + sk #Fit to scrn + + + + Answer + + Odpovedať + + + + Resume + + sk #Resume + + + + Loudsp. off + + sk #Loudsp. off + + + + Save + + sk #Save + + + + Deselect + + sk #Deselect + + + + Disconnecting + + sk #Disconnecting + + + + Select language: + + Zvoliť jazyk: + sk #Select language: + + + + Add member + + Pridať člena + + + + Add + + Pridať + + + + Yes + + Áno + + + + Chat + + Chat + + + + Cancel + + Zrušiť + + + + Deleting + + Vymazáva sa + + + + Handset + + Handset + + + + Hide + + Skryť + + + + Connecting + + Pripája sa + + + + Insert + + Vložiť + + + + No + + Nie + + + + Inserting + + Vkladá sa + + + + Opening + + Otvára sa + + + + Phone number: + + sk #Phone number: + + + + Initialising + + Inicializuje sa + + + + Web address: + + sk #Web address: + + + + Print + + sk #Print + + + + Deactivate + + Deaktivovať + + + + Stop + + Zastaviť + + + + Details + + Detaily + + + + Continue + + Pokračovať + + + + Listen + + Počúvať + + + + First name: + + Krstné meno: + + + + Expires: + + Koniec platnosti: + + + + Adding + + Pridáva sa + + + + Verify password: + + Overte heslo: + sk #Verify passw.: + + + + Voice call + + Hovor + + + + Install + + Nainštalovať + + + + Select tone: + + Zvoliť tón: + + + + Show + + Zobraziť + + + + Writing language: + + Jazyk pri písaní: + sk #Writing language: + + + + Add thumbnail + + Pridať miniatúru + + + + Disconnect + + Odpojiť + sk #Disconn. + + + + Title: + + sk #Title: + + + + Installing + + sk #Installing + + + + End date: + + sk #End date: + + + + Folder name: + + sk #Folder name: + + + + Activate loudspeaker + + sk #Activate loudspeaker + + + + Select all contents + + sk #Select all contents + + + + Attachments + + sk #Attachments + + + + Buffering + + Ukladá sa do vyrovnávacej pamäte + + + + Time: + + Čas: + + + + Find + + Nájsť + + + + Organise + + Usporiadať + + + + Copying + + Kopíruje sa + + + + Create message + + Vytvoriť správu + sk #Create msg. + + + + Mark + + Označiť + + + + From: + + Od: + + + + Add image + + sk #Add image + + + + Activate handset + + sk #Activate handset + + + + Retrieving + + sk #Retrieving + + + + Internet call + + sk #Internet call + + + + Options + + sk #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_sl.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_sl.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + sl #Open + + + + Unmute + + sl #Unmute + + + + Settings + + sl #Settings + + + + Add to folder + + sl #Add to folder + + + + Password: + + sl #Password: + + + + OK + + sl #OK + + + + User name: + + sl #User name: + + + + Cancel download + + sl #Cancel download + + + + Cut + + sl #Cut + + + + Closing + + sl #Closing + + + + Finish + + sl #Finish + + + + Registering + + sl #Registering + + + + Removing + + sl #Removing + + + + Requesting + + sl #Requesting + + + + Remove + + sl #Remove + + + + Moving + + sl #Moving + + + + Add detail + + sl #Add detail + + + + File name: + + sl #File name: + + + + Send + + sl #Send + + + + Advanced settings + + sl #Advanced settings + + + + Format + + sl #Format + + + + Add recipient + + sl #Add recipient + + + + Edit + + sl #Edit + + + + Menu + + Meni + + + + Unmark + + Odznači + + + + Bookmark name: + + Ime zaznamka: + + + + Loudsp. on + + Vključi zvočnik + sl #Loudsp. on + + + + Move + + Premakni + + + + Select all items + + Izberi vse predmete + + + + Copy + + Kopiraj + + + + Disable + + Onemogoči + + + + Select memory: + + Izberite pomnilnik: + + + + Retry + + Poskusi znova + + + + Copy to folder + + Kopiraj v mapo + + + + Enable + + Omogoči + + + + Send message + + Pošlji sporočilo + sl #Send msg. + + + + Add bookmark + + Dodaj zaznamek + + + + Mute + + Izklopi zvok + + + + Duration: + + Trajanje: + + + + Select file: + + Izberite datoteko: + + + + Reset + + Ponastavi + + + + Done + + sl #Done + + + + Move to folder + + Premakni v mapo + + + + Zoom in + + sl #Zoom in + + + + Connect + + sl #Connect + + + + Call + + Pokliči + + + + Clear + + Počisti + + + + Current password: + + Trenutno geslo: + sl #Current passw.: + + + + Deselect all items + + Prekliči izbiro vseh predmetov + + + + Select + + sl #Select + + + + Close + + sl #Close + + + + Saving + + Shranjevanje + + + + Loading + + Nalaganje + + + + Replace + + Zamenjaj + + + + Start + + Začni + + + + Searching + + Iskanje + + + + Select address: + + Izberite naslov: + sl #Select addr.: + + + + Details: + + Podrobnosti: + + + + New password: + + Novo geslo: + sl #New passw.: + + + + Select folder: + + Izberite mapo: + + + + Reply + + Odgovori + + + + Read + + Preberi + + + + Go to web address + + Pojdi na spletni naslov + sl #Go to address + + + + Join + + Pridruži se + + + + Processing + + Obdelovanje + + + + Date: + + Datum: + + + + Help + + Pomoč + + + + Cancelling + + Preklicevanje + + + + Deactivate loudspeaker + + Izključi zvočnik + sl #Deactivate loudsp. + + + + To: + + Do: + + + + Uninstalling + + Odstranjevanje + + + + Exit + + Izhod + + + + User ID: + + Uporabniški ID: + + + + Help + + Pomoč + + + + Uninstall + + Odstrani + + + + Define + + Določi + + + + Expand + + Razširi + + + + Back + + Nazaj + + + + Change + + Spremeni + + + + Collapse + + Strni + + + + Additional details + + Dodatne podrobnosti + sl #Add. details + + + + Delete + + Zbriši + + + + Address: + + Naslov: + + + + Forward + + Posreduj + + + + Quit + + Prekini + + + + Verify new password: + + Potrdite novo geslo: + sl #Verify new passw.: + + + + Pause + + sl #Pause + + + + Undo + + sl #Undo + + + + Video call + + sl #Video call + + + + Paste + + sl #Paste + + + + Zoom out + + Pomanjšaj + + + + Last name: + + Priimek: + + + + Reject + + Zavrni + + + + Fit to screen + + Prilagodi zaslonu + sl #Fit to scrn + + + + Answer + + Sprejmi + + + + Resume + + sl #Resume + + + + Loudsp. off + + sl #Loudsp. off + + + + Save + + sl #Save + + + + Deselect + + sl #Deselect + + + + Disconnecting + + sl #Disconnecting + + + + Select language: + + Izberite jezik: + sl #Select language: + + + + Add member + + Dodaj člana + + + + Add + + Dodaj + + + + Yes + + Da + + + + Chat + + Pomenek + + + + Cancel + + Prekliči + + + + Deleting + + Brisanje + + + + Handset + + Slušalke + + + + Hide + + Skrij + + + + Connecting + + Povezovanje + + + + Insert + + Vstavi + + + + No + + Ne + + + + Inserting + + Vstavljanje + + + + Opening + + Odpiranje + + + + Phone number: + + sl #Phone number: + + + + Initialising + + Začenjanje + + + + Web address: + + sl #Web address: + + + + Print + + sl #Print + + + + Deactivate + + Izključi + + + + Stop + + Ustavi + + + + Details + + Podrobnosti + + + + Continue + + Nadaljuj + + + + Listen + + Poslušaj + + + + First name: + + Ime: + + + + Expires: + + Veljavno do: + + + + Adding + + Dodajanje + + + + Verify password: + + Potrdite geslo: + sl #Verify passw.: + + + + Voice call + + Glasovni klic + + + + Install + + Namesti + + + + Select tone: + + Izberite ton: + + + + Show + + Prikaži + + + + Writing language: + + Jezik pisanja: + sl #Writing language: + + + + Add thumbnail + + Dodaj sličico + + + + Disconnect + + Prekini + sl #Disconn. + + + + Title: + + sl #Title: + + + + Installing + + sl #Installing + + + + End date: + + sl #End date: + + + + Folder name: + + sl #Folder name: + + + + Activate loudspeaker + + sl #Activate loudspeaker + + + + Select all contents + + sl #Select all contents + + + + Attachments + + sl #Attachments + + + + Buffering + + Medpomnjenje + + + + Time: + + Ura: + + + + Find + + Poišči + + + + Organise + + Razvrsti + + + + Copying + + Kopiranje + + + + Create message + + Ustvari sporočilo + sl #Create msg. + + + + Mark + + Označi + + + + From: + + Od: + + + + Add image + + sl #Add image + + + + Activate handset + + sl #Activate handset + + + + Retrieving + + sl #Retrieving + + + + Internet call + + sl #Internet call + + + + Options + + sl #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_sr.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_sr.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + sr #Open + + + + Unmute + + sr #Unmute + + + + Settings + + sr #Settings + + + + Add to folder + + sr #Add to folder + + + + Password: + + sr #Password: + + + + OK + + sr #OK + + + + User name: + + sr #User name: + + + + Cancel download + + sr #Cancel download + + + + Cut + + sr #Cut + + + + Closing + + sr #Closing + + + + Finish + + sr #Finish + + + + Registering + + sr #Registering + + + + Removing + + sr #Removing + + + + Requesting + + sr #Requesting + + + + Remove + + sr #Remove + + + + Moving + + sr #Moving + + + + Add detail + + sr #Add detail + + + + File name: + + sr #File name: + + + + Send + + sr #Send + + + + Advanced settings + + sr #Advanced settings + + + + Format + + sr #Format + + + + Add recipient + + sr #Add recipient + + + + Edit + + sr #Edit + + + + Menu + + Meni + + + + Unmark + + Poništi označeno + + + + Bookmark name: + + Ime markera: + + + + Loudsp. on + + Uključi zvučnik + sr #Loudsp. on + + + + Move + + Premesti + + + + Select all items + + Odaberi sve stavke + + + + Copy + + Kopiraj + + + + Disable + + Onemogući + + + + Select memory: + + Izbor memorije: + + + + Retry + + Ponovi + + + + Copy to folder + + Kopiraj u folder + + + + Enable + + Omogući + + + + Send message + + Pošalji poruku + sr #Send msg. + + + + Add bookmark + + Dodaj marker + + + + Mute + + Isključi zvuk + + + + Duration: + + Trajanje: + + + + Select file: + + Izbor datoteke: + + + + Reset + + Resetuj + + + + Done + + sr #Done + + + + Move to folder + + Premesti u folder + + + + Zoom in + + sr #Zoom in + + + + Connect + + sr #Connect + + + + Call + + Zovi + + + + Clear + + Izbriši + + + + Current password: + + Trenutna lozinka: + sr #Current passw.: + + + + Deselect all items + + Poništi odabir svih stavki + + + + Select + + sr #Select + + + + Close + + sr #Close + + + + Saving + + Memorisanje u toku + + + + Loading + + Učitavanje u toku + + + + Replace + + Zameni + + + + Start + + Započni + + + + Searching + + Traženje u toku + + + + Select address: + + Izbor adrese: + sr #Select addr.: + + + + Details: + + Detalji: + + + + New password: + + Nova lozinka: + sr #New passw.: + + + + Select folder: + + Izbor foldera: + + + + Reply + + Odgovori + + + + Read + + Pročitaj + + + + Go to web address + + Idi na Web adresu + sr #Go to address + + + + Join + + Priključi se + + + + Processing + + Obrada u toku + + + + Date: + + Datum: + + + + Help + + Pomoć + + + + Cancelling + + U toku poništavanje + + + + Deactivate loudspeaker + + Isključi zvučnik + sr #Deactivate loudsp. + + + + To: + + Do: + + + + Uninstalling + + U toku deinstalacija + + + + Exit + + Izađi + + + + User ID: + + Identifikator korisnika: + + + + Help + + Pomoć + + + + Uninstall + + Deinstaliraj + + + + Define + + Definiši + + + + Expand + + Proširi + + + + Back + + Nazad + + + + Change + + Promeni + + + + Collapse + + Sažmi + + + + Additional details + + Dodatni detalji + sr #Add. details + + + + Delete + + Izbriši + + + + Address: + + Adresa: + + + + Forward + + Prosledi + + + + Quit + + Prekini + + + + Verify new password: + + Potvrdite novu lozinku: + sr #Verify new passw.: + + + + Pause + + sr #Pause + + + + Undo + + sr #Undo + + + + Video call + + sr #Video call + + + + Paste + + sr #Paste + + + + Zoom out + + Umanji + + + + Last name: + + Prezime: + + + + Reject + + Odbaci + + + + Fit to screen + + Uklopi u ekran + sr #Fit to scrn + + + + Answer + + Odgovori + + + + Resume + + sr #Resume + + + + Loudsp. off + + sr #Loudsp. off + + + + Save + + sr #Save + + + + Deselect + + sr #Deselect + + + + Disconnecting + + sr #Disconnecting + + + + Select language: + + Izbor jezika: + sr #Select language: + + + + Add member + + Dodaj člana + + + + Add + + Dodaj + + + + Yes + + Da + + + + Chat + + Ćaskanje + + + + Cancel + + Poništi + + + + Deleting + + Brisanje u toku + + + + Handset + + Telefon + + + + Hide + + Sakrij + + + + Connecting + + Povezivanje u toku + + + + Insert + + Umetni + + + + No + + Ne + + + + Inserting + + U toku ubacivanje + + + + Opening + + Otvaranje u toku + + + + Phone number: + + sr #Phone number: + + + + Initialising + + U toku inicijalizacija + + + + Web address: + + sr #Web address: + + + + Print + + sr #Print + + + + Deactivate + + Deaktiviraj + + + + Stop + + Zaustavi + + + + Details + + Detalji + + + + Continue + + Nastavi + + + + Listen + + Slušaj + + + + First name: + + Ime: + + + + Expires: + + Ističe: + + + + Adding + + U toku dodavanje + + + + Verify password: + + Potvrdite lozinku: + sr #Verify passw.: + + + + Voice call + + Govorni poziv + + + + Install + + Instaliraj + + + + Select tone: + + Izbor tona: + + + + Show + + Prikaži + + + + Writing language: + + Jezik pisanja: + sr #Writing language: + + + + Add thumbnail + + Dodaj sličicu + + + + Disconnect + + Prekini vezu + sr #Disconn. + + + + Title: + + sr #Title: + + + + Installing + + sr #Installing + + + + End date: + + sr #End date: + + + + Folder name: + + sr #Folder name: + + + + Activate loudspeaker + + sr #Activate loudspeaker + + + + Select all contents + + sr #Select all contents + + + + Attachments + + sr #Attachments + + + + Buffering + + Privremeno se memoriše + + + + Time: + + Vreme: + + + + Find + + Traži + + + + Organise + + Organizuj + + + + Copying + + Kopiranje u toku + + + + Create message + + Kreiraj poruku + sr #Create msg. + + + + Mark + + Označi + + + + From: + + Od: + + + + Add image + + sr #Add image + + + + Activate handset + + sr #Activate handset + + + + Retrieving + + sr #Retrieving + + + + Internet call + + sr #Internet call + + + + Options + + sr #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_sv.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_sv.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + sv #Open + + + + Unmute + + sv #Unmute + + + + Settings + + sv #Settings + + + + Add to folder + + sv #Add to folder + + + + Password: + + sv #Password: + + + + OK + + sv #OK + + + + User name: + + sv #User name: + + + + Cancel download + + sv #Cancel download + + + + Cut + + sv #Cut + + + + Closing + + sv #Closing + + + + Finish + + sv #Finish + + + + Registering + + sv #Registering + + + + Removing + + sv #Removing + + + + Requesting + + sv #Requesting + + + + Remove + + sv #Remove + + + + Moving + + sv #Moving + + + + Add detail + + sv #Add detail + + + + File name: + + sv #File name: + + + + Send + + sv #Send + + + + Advanced settings + + sv #Advanced settings + + + + Format + + sv #Format + + + + Add recipient + + sv #Add recipient + + + + Edit + + sv #Edit + + + + Menu + + Meny + + + + Unmark + + Avmarkera + + + + Bookmark name: + + Bokmärkets namn: + + + + Loudsp. on + + Högtalare på + sv #Loudsp. on + + + + Move + + Flytta + + + + Select all items + + Välj alla objekt + + + + Copy + + Kopiera + + + + Disable + + Avaktivera + + + + Select memory: + + Välj minne: + + + + Retry + + Försök igen + + + + Copy to folder + + Kopiera till mapp + + + + Enable + + Aktivera + + + + Send message + + Sänd meddelande + sv #Send msg. + + + + Add bookmark + + Lägg till bokmärke + + + + Mute + + Tyst + + + + Duration: + + Längd: + + + + Select file: + + Välj fil: + + + + Reset + + Återställ + + + + Done + + sv #Done + + + + Move to folder + + Flytta till mapp + + + + Zoom in + + sv #Zoom in + + + + Connect + + sv #Connect + + + + Call + + Ring + + + + Clear + + Rensa + + + + Current password: + + Nuvarande lösenord: + sv #Current passw.: + + + + Deselect all items + + Avmarkera alla objekt + + + + Select + + sv #Select + + + + Close + + sv #Close + + + + Saving + + Sparar + + + + Loading + + Laddar + + + + Replace + + Ersätt + + + + Start + + Starta + + + + Searching + + Söker + + + + Select address: + + Välj adress: + sv #Select addr.: + + + + Details: + + Information: + + + + New password: + + Nytt lösenord: + sv #New passw.: + + + + Select folder: + + Välj mapp: + + + + Reply + + Svara + + + + Read + + Läs + + + + Go to web address + + Gå till webbadress + sv #Go to address + + + + Join + + Gå med + + + + Processing + + Bearbetar + + + + Date: + + Datum: + + + + Help + + Hjälp + + + + Cancelling + + Avbryter + + + + Deactivate loudspeaker + + Avaktivera högtalare + sv #Deactivate loudsp. + + + + To: + + Till: + + + + Uninstalling + + Avinstallerar + + + + Exit + + Avsluta + + + + User ID: + + Användar-ID: + + + + Help + + Hjälp + + + + Uninstall + + Avinstallera + + + + Define + + Definiera + + + + Expand + + Visa + + + + Back + + Tillbaka + + + + Change + + Ändra + + + + Collapse + + Dölj + + + + Additional details + + Övrig information + sv #Add. details + + + + Delete + + Radera + + + + Address: + + Adress: + + + + Forward + + Vidarebefordra + + + + Quit + + Avbryt + + + + Verify new password: + + Bekräfta nytt lösenord: + sv #Verify new passw.: + + + + Pause + + sv #Pause + + + + Undo + + sv #Undo + + + + Video call + + sv #Video call + + + + Paste + + sv #Paste + + + + Zoom out + + Zooma ut + + + + Last name: + + Efternamn: + + + + Reject + + Avvisa + + + + Fit to screen + + Anpassa till skärm + sv #Fit to scrn + + + + Answer + + Svara + + + + Resume + + sv #Resume + + + + Loudsp. off + + sv #Loudsp. off + + + + Save + + sv #Save + + + + Deselect + + sv #Deselect + + + + Disconnecting + + sv #Disconnecting + + + + Select language: + + Välj språk: + sv #Select language: + + + + Add member + + Lägg till medlem + + + + Add + + Lägg till + + + + Yes + + Ja + + + + Chat + + Chatt + + + + Cancel + + Avbryt + + + + Deleting + + Raderar + + + + Handset + + Telefon + + + + Hide + + Dölj + + + + Connecting + + Ansluter + + + + Insert + + Infoga + + + + No + + Nej + + + + Inserting + + Infogar + + + + Opening + + Öppnar + + + + Phone number: + + sv #Phone number: + + + + Initialising + + Startar + + + + Web address: + + sv #Web address: + + + + Print + + sv #Print + + + + Deactivate + + Avaktivera + + + + Stop + + Stopp + + + + Details + + Information + + + + Continue + + Fortsätt + + + + Listen + + Lyssna + + + + First name: + + Förnamn: + + + + Expires: + + Går ut: + + + + Adding + + Lägger till + + + + Verify password: + + Bekräfta lösenord: + sv #Verify passw.: + + + + Voice call + + Röstsamtal + + + + Install + + Installera + + + + Select tone: + + Välj alarmton: + + + + Show + + Visa + + + + Writing language: + + Skrivspråk: + sv #Writing language: + + + + Add thumbnail + + Lägg till miniatyrbild + + + + Disconnect + + Frånkoppla + sv #Disconn. + + + + Title: + + sv #Title: + + + + Installing + + sv #Installing + + + + End date: + + sv #End date: + + + + Folder name: + + sv #Folder name: + + + + Activate loudspeaker + + sv #Activate loudspeaker + + + + Select all contents + + sv #Select all contents + + + + Attachments + + sv #Attachments + + + + Buffering + + Laddar + + + + Time: + + Tid: + + + + Find + + Sök + + + + Organise + + Sortera + + + + Copying + + Kopierar + + + + Create message + + Skapa meddelande + sv #Create msg. + + + + Mark + + Markera + + + + From: + + Från: + + + + Add image + + sv #Add image + + + + Activate handset + + sv #Activate handset + + + + Retrieving + + sv #Retrieving + + + + Internet call + + sv #Internet call + + + + Options + + sv #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_th.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_th.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + th #Open + + + + Unmute + + th #Unmute + + + + Settings + + th #Settings + + + + Add to folder + + th #Add to folder + + + + Password: + + th #Password: + + + + OK + + th #OK + + + + User name: + + th #User name: + + + + Cancel download + + th #Cancel download + + + + Cut + + th #Cut + + + + Closing + + th #Closing + + + + Finish + + th #Finish + + + + Registering + + th #Registering + + + + Removing + + th #Removing + + + + Requesting + + th #Requesting + + + + Remove + + th #Remove + + + + Moving + + th #Moving + + + + Add detail + + th #Add detail + + + + File name: + + th #File name: + + + + Send + + th #Send + + + + Advanced settings + + th #Advanced settings + + + + Format + + th #Format + + + + Add recipient + + th #Add recipient + + + + Edit + + th #Edit + + + + Menu + + th #Menu + + + + Unmark + + th #Unmark + + + + Bookmark name: + + th #Bookmark name: + + + + Loudsp. on + + th #Loudspeaker on + th #Loudsp. on + + + + Move + + th #Move + + + + Select all items + + th #Select all items + + + + Copy + + th #Copy + + + + Disable + + th #Disable + + + + Select memory: + + th #Select memory: + + + + Retry + + th #Retry + + + + Copy to folder + + th #Copy to folder + + + + Enable + + th #Enable + + + + Send message + + th #Send message + th #Send msg. + + + + Add bookmark + + th #Add bookmark + + + + Mute + + th #Mute + + + + Duration: + + th #Duration: + + + + Select file: + + th #Select file: + + + + Reset + + th #Reset + + + + Done + + th #Done + + + + Move to folder + + th #Move to folder + + + + Zoom in + + th #Zoom in + + + + Connect + + th #Connect + + + + Call + + th #Call + + + + Clear + + th #Clear + + + + Current password: + + th #Current password: + th #Current passw.: + + + + Deselect all items + + th #Deselect all items + + + + Select + + th #Select + + + + Close + + th #Close + + + + Saving + + th #Saving + + + + Loading + + th #Loading + + + + Replace + + th #Replace + + + + Start + + th #Start + + + + Searching + + th #Searching + + + + Select address: + + th #Select address: + th #Select addr.: + + + + Details: + + th #Details: + + + + New password: + + th #New password: + th #New passw.: + + + + Select folder: + + th #Select folder: + + + + Reply + + th #Reply + + + + Read + + th #Read + + + + Go to web address + + th #Go to web address + th #Go to address + + + + Join + + th #Join + + + + Processing + + th #Processing + + + + Date: + + th #Date: + + + + Help + + th #Help + + + + Cancelling + + th #Cancelling + + + + Deactivate loudspeaker + + th #Deactivate loudspeaker + th #Deactivate loudsp. + + + + To: + + th #To: + + + + Uninstalling + + th #Uninstalling + + + + Exit + + th #Exit + + + + User ID: + + th #User ID: + + + + Help + + th #Help + + + + Uninstall + + th #Uninstall + + + + Define + + th #Define + + + + Expand + + th #Expand + + + + Back + + th #Back + + + + Change + + th #Change + + + + Collapse + + th #Collapse + + + + Additional details + + th #Additional details + th #Add. details + + + + Delete + + th #Delete + + + + Address: + + th #Address: + + + + Forward + + th #Forward + + + + Quit + + th #Quit + + + + Verify new password: + + th #Verify new password: + th #Verify new passw.: + + + + Pause + + th #Pause + + + + Undo + + th #Undo + + + + Video call + + th #Video call + + + + Paste + + th #Paste + + + + Zoom out + + th #Zoom out + + + + Last name: + + th #Last name: + + + + Reject + + th #Reject + + + + Fit to screen + + th #Fit to screen + th #Fit to scrn + + + + Answer + + th #Answer + + + + Resume + + th #Resume + + + + Loudsp. off + + th #Loudsp. off + + + + Save + + th #Save + + + + Deselect + + th #Deselect + + + + Disconnecting + + th #Disconnecting + + + + Select language: + + th #Select language: + th #Select language: + + + + Add member + + th #Add member + + + + Add + + th #Add + + + + Yes + + th #Yes + + + + Chat + + th #Chat + + + + Cancel + + th #Cancel + + + + Deleting + + th #Deleting + + + + Handset + + th #Handset + + + + Hide + + th #Hide + + + + Connecting + + th #Connecting + + + + Insert + + th #Insert + + + + No + + th #No + + + + Inserting + + th #Inserting + + + + Opening + + th #Opening + + + + Phone number: + + th #Phone number: + + + + Initialising + + th #Initialising + + + + Web address: + + th #Web address: + + + + Print + + th #Print + + + + Deactivate + + th #Deactivate + + + + Stop + + th #Stop + + + + Details + + th #Details + + + + Continue + + th #Continue + + + + Listen + + th #Listen + + + + First name: + + th #First name: + + + + Expires: + + th #Expires: + + + + Adding + + th #Adding + + + + Verify password: + + th #Verify password: + th #Verify passw.: + + + + Voice call + + th #Voice call + + + + Install + + th #Install + + + + Select tone: + + th #Select tone: + + + + Show + + th #Show + + + + Writing language: + + th #Writing language: + th #Writing language: + + + + Add thumbnail + + th #Add thumbnail + + + + Disconnect + + th #Disconnect + th #Disconn. + + + + Title: + + th #Title: + + + + Installing + + th #Installing + + + + End date: + + th #End date: + + + + Folder name: + + th #Folder name: + + + + Activate loudspeaker + + th #Activate loudspeaker + + + + Select all contents + + th #Select all contents + + + + Attachments + + th #Attachments + + + + Buffering + + th #Buffering + + + + Time: + + th #Time: + + + + Find + + th #Find + + + + Organise + + th #Organise + + + + Copying + + th #Copying + + + + Create message + + th #Create message + th #Create msg. + + + + Mark + + th #Mark + + + + From: + + th #From: + + + + Add image + + th #Add image + + + + Activate handset + + th #Activate handset + + + + Retrieving + + th #Retrieving + + + + Internet call + + th #Internet call + + + + Options + + th #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_tl.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_tl.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + tl #Open + + + + Unmute + + tl #Unmute + + + + Settings + + tl #Settings + + + + Add to folder + + tl #Add to folder + + + + Password: + + tl #Password: + + + + OK + + tl #OK + + + + User name: + + tl #User name: + + + + Cancel download + + tl #Cancel download + + + + Cut + + tl #Cut + + + + Closing + + tl #Closing + + + + Finish + + tl #Finish + + + + Registering + + tl #Registering + + + + Removing + + tl #Removing + + + + Requesting + + tl #Requesting + + + + Remove + + tl #Remove + + + + Moving + + tl #Moving + + + + Add detail + + tl #Add detail + + + + File name: + + tl #File name: + + + + Send + + tl #Send + + + + Advanced settings + + tl #Advanced settings + + + + Format + + tl #Format + + + + Add recipient + + tl #Add recipient + + + + Edit + + tl #Edit + + + + Menu + + Menu + + + + Unmark + + Alisan ng marka + + + + Bookmark name: + + Pangalan ng bookmark: + + + + Loudsp. on + + On ang loudspeaker + tl #Loudsp. on + + + + Move + + Ilipat + + + + Select all items + + Piliin ang lahat ng item + + + + Copy + + Kopyahin + + + + Disable + + Huwag paganahin + + + + Select memory: + + Pumili ng memory: + + + + Retry + + I-retry + + + + Copy to folder + + Kopyahin sa folder + + + + Enable + + Paganahin + + + + Send message + + Ipadala ang mensahe + tl #Send msg. + + + + Add bookmark + + Magdagdag ng bookmark + + + + Mute + + I-mute + + + + Duration: + + Tagal: + + + + Select file: + + Pumili ng file: + + + + Reset + + I-reset + + + + Done + + tl #Done + + + + Move to folder + + Ilipat sa folder + + + + Zoom in + + tl #Zoom in + + + + Connect + + tl #Connect + + + + Call + + Tumawag + + + + Clear + + I-clear + + + + Current password: + + Kasalukuyang password: + tl #Current passw.: + + + + Deselect all items + + Alisin sa pagkakapili ang lahat ng item + + + + Select + + tl #Select + + + + Close + + tl #Close + + + + Saving + + Nagse-save + + + + Loading + + Naglo-load + + + + Replace + + Palitan + + + + Start + + Simulan + + + + Searching + + Naghahanap + + + + Select address: + + Pumili ng address: + tl #Select addr.: + + + + Details: + + Mga detalye: + + + + New password: + + Bagong password: + tl #New passw.: + + + + Select folder: + + Pumili ng folder: + + + + Reply + + Tumugon + + + + Read + + Basahin + + + + Go to web address + + Pumunta sa web address + tl #Go to address + + + + Join + + Sumali + + + + Processing + + Pinoproseso + + + + Date: + + Petsa: + + + + Help + + Tulong + + + + Cancelling + + Kinakansela + + + + Deactivate loudspeaker + + Deaktibahin ang loudspeaker + tl #Deactivate loudsp. + + + + To: + + Hanggang sa: + + + + Uninstalling + + Ina-uninstall + + + + Exit + + Lumabas + + + + User ID: + + User ID: + + + + Help + + Tulong + + + + Uninstall + + I-uninstall + + + + Define + + Tukuyin + + + + Expand + + I-expand + + + + Back + + Bumalik + + + + Change + + Palitan + + + + Collapse + + I-collapse + + + + Additional details + + Mga karagdagang detalye + tl #Add. details + + + + Delete + + Tanggalin + + + + Address: + + Address: + + + + Forward + + Ipasa + + + + Quit + + Itigil + + + + Verify new password: + + Patunayan ang bagong password: + tl #Verify new passw.: + + + + Pause + + tl #Pause + + + + Undo + + tl #Undo + + + + Video call + + tl #Video call + + + + Paste + + tl #Paste + + + + Zoom out + + I-zoom out + + + + Last name: + + Apelyido: + + + + Reject + + Tanggihan + + + + Fit to screen + + Pagkasyahin sa screen + tl #Fit to scrn + + + + Answer + + Sagutin + + + + Resume + + tl #Resume + + + + Loudsp. off + + tl #Loudsp. off + + + + Save + + tl #Save + + + + Deselect + + tl #Deselect + + + + Disconnecting + + tl #Disconnecting + + + + Select language: + + Pumili ng wika: + tl #Select language: + + + + Add member + + Magdagdag ng miyembro + + + + Add + + Magdagdag + + + + Yes + + Oo + + + + Chat + + Chat + + + + Cancel + + Kanselahin + + + + Deleting + + Tinatanggal + + + + Handset + + Handset + + + + Hide + + Itago + + + + Connecting + + Kumukonekta + + + + Insert + + Magsingit + + + + No + + Hindi + + + + Inserting + + Nagsisingit + + + + Opening + + Binubuksan + + + + Phone number: + + tl #Phone number: + + + + Initialising + + Sinisimulan + + + + Web address: + + tl #Web address: + + + + Print + + tl #Print + + + + Deactivate + + Deaktibahin + + + + Stop + + Itigil + + + + Details + + Mga detalye + + + + Continue + + Ituloy + + + + Listen + + Makinig + + + + First name: + + Pangalan: + + + + Expires: + + Mawawalan ng bisa sa: + + + + Adding + + Nagdadagdag + + + + Verify password: + + Patunayan ang password: + tl #Verify passw.: + + + + Voice call + + Boses na tawag + + + + Install + + Mag-install + + + + Select tone: + + Pumili ng tono: + + + + Show + + Ipakita + + + + Writing language: + + Wikang panulat: + tl #Writing language: + + + + Add thumbnail + + Mgdagdag ng thumbnail + + + + Disconnect + + Idiskonekta + tl #Disconn. + + + + Title: + + tl #Title: + + + + Installing + + tl #Installing + + + + End date: + + tl #End date: + + + + Folder name: + + tl #Folder name: + + + + Activate loudspeaker + + tl #Activate loudspeaker + + + + Select all contents + + tl #Select all contents + + + + Attachments + + tl #Attachments + + + + Buffering + + Nagba-buff + + + + Time: + + Oras: + + + + Find + + Maghanap + + + + Organise + + Mag-saayos + + + + Copying + + Kinokopya + + + + Create message + + Lumikha ng mensahe + tl #Create msg. + + + + Mark + + Magmarka + + + + From: + + Simula sa: + + + + Add image + + tl #Add image + + + + Activate handset + + tl #Activate handset + + + + Retrieving + + tl #Retrieving + + + + Internet call + + tl #Internet call + + + + Options + + tl #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_tr.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_tr.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + tr #Open + + + + Unmute + + tr #Unmute + + + + Settings + + tr #Settings + + + + Add to folder + + tr #Add to folder + + + + Password: + + tr #Password: + + + + OK + + tr #OK + + + + User name: + + tr #User name: + + + + Cancel download + + tr #Cancel download + + + + Cut + + tr #Cut + + + + Closing + + tr #Closing + + + + Finish + + tr #Finish + + + + Registering + + tr #Registering + + + + Removing + + tr #Removing + + + + Requesting + + tr #Requesting + + + + Remove + + tr #Remove + + + + Moving + + tr #Moving + + + + Add detail + + tr #Add detail + + + + File name: + + tr #File name: + + + + Send + + tr #Send + + + + Advanced settings + + tr #Advanced settings + + + + Format + + tr #Format + + + + Add recipient + + tr #Add recipient + + + + Edit + + tr #Edit + + + + Menu + + Menü + + + + Unmark + + Kaldır + + + + Bookmark name: + + Yer imi ismi: + + + + Loudsp. on + + Hoparlör açık + tr #Loudsp. on + + + + Move + + Taşı + + + + Select all items + + Tüm öğeleri seç + + + + Copy + + Kopyala + + + + Disable + + Kapat + + + + Select memory: + + Hafıza seç: + + + + Retry + + Tekrar + + + + Copy to folder + + Klasöre kopyala + + + + Enable + + Etkinleştir + + + + Send message + + Mesaj gönder + tr #Send msg. + + + + Add bookmark + + Yer imi ekle + + + + Mute + + Sustur + + + + Duration: + + Süre: + + + + Select file: + + Dosya seç: + + + + Reset + + Sıfırla + + + + Done + + tr #Done + + + + Move to folder + + Klasöre taşı + + + + Zoom in + + tr #Zoom in + + + + Connect + + tr #Connect + + + + Call + + Arama + + + + Clear + + Temizle + + + + Current password: + + Geçerli şifre: + tr #Current passw.: + + + + Deselect all items + + Tüm seçimleri kaldır + + + + Select + + tr #Select + + + + Close + + tr #Close + + + + Saving + + Kaydediliyor + + + + Loading + + Yükleniyor + + + + Replace + + Değiştir + + + + Start + + Başlat + + + + Searching + + Bulunuyor + + + + Select address: + + Adres seç: + tr #Select addr.: + + + + Details: + + Bilgiler: + + + + New password: + + Yeni şifre: + tr #New passw.: + + + + Select folder: + + Klasör seç: + + + + Reply + + Cevapla + + + + Read + + Oku + + + + Go to web address + + Web adresine git + tr #Go to address + + + + Join + + Katıl + + + + Processing + + İşleniyor + + + + Date: + + Tarih: + + + + Help + + Yardım + + + + Cancelling + + İptal ediliyor + + + + Deactivate loudspeaker + + Hoparlörü kapat + tr #Deactivate loudsp. + + + + To: + + Kime: + + + + Uninstalling + + Kaldırılıyor + + + + Exit + + Çık + + + + User ID: + + Kullanıcı kimliği: + + + + Help + + Yardım + + + + Uninstall + + Kaldır + + + + Define + + Tanımla + + + + Expand + + Genişlet + + + + Back + + Geri + + + + Change + + Değiştir + + + + Collapse + + Daralt + + + + Additional details + + Ek bilgiler + tr #Add. details + + + + Delete + + Sil + + + + Address: + + Adres: + + + + Forward + + İlet + + + + Quit + + Çık + + + + Verify new password: + + Yeni şifreyi doğrulayın: + tr #Verify new passw.: + + + + Pause + + tr #Pause + + + + Undo + + tr #Undo + + + + Video call + + tr #Video call + + + + Paste + + tr #Paste + + + + Zoom out + + Küçült + + + + Last name: + + Soyadı: + + + + Reject + + Reddet + + + + Fit to screen + + Ekrana sığdır + tr #Fit to scrn + + + + Answer + + Cevapla + + + + Resume + + tr #Resume + + + + Loudsp. off + + tr #Loudsp. off + + + + Save + + tr #Save + + + + Deselect + + tr #Deselect + + + + Disconnecting + + tr #Disconnecting + + + + Select language: + + Dil seç: + tr #Select language: + + + + Add member + + Üye ekle + + + + Add + + Ekle + + + + Yes + + Evet + + + + Chat + + Sohbet + + + + Cancel + + İptal + + + + Deleting + + Siliniyor + + + + Handset + + Ahize + + + + Hide + + Gizle + + + + Connecting + + Bağlanıyor + + + + Insert + + Ekle + + + + No + + Hayır + + + + Inserting + + Ekleniyor + + + + Opening + + Açılıyor + + + + Phone number: + + tr #Phone number: + + + + Initialising + + Başlatılıyor + + + + Web address: + + tr #Web address: + + + + Print + + tr #Print + + + + Deactivate + + Kapat + + + + Stop + + Dur + + + + Details + + Bilgiler + + + + Continue + + Devam + + + + Listen + + Dinle + + + + First name: + + İsim: + + + + Expires: + + Sona erme: + + + + Adding + + Ekleniyor + + + + Verify password: + + Şifreyi doğrula: + tr #Verify passw.: + + + + Voice call + + Sesli arama + + + + Install + + Yükle + + + + Select tone: + + Zil sesi seç: + + + + Show + + Göster + + + + Writing language: + + Yazma dili: + tr #Writing language: + + + + Add thumbnail + + Küçük resim ekle + + + + Disconnect + + Bağlantıyı kes + tr #Disconn. + + + + Title: + + tr #Title: + + + + Installing + + tr #Installing + + + + End date: + + tr #End date: + + + + Folder name: + + tr #Folder name: + + + + Activate loudspeaker + + tr #Activate loudspeaker + + + + Select all contents + + tr #Select all contents + + + + Attachments + + tr #Attachments + + + + Buffering + + Ara belleğe alınıyor + + + + Time: + + Saat: + + + + Find + + Bul + + + + Organise + + Düzenle + + + + Copying + + Copying + + + + Create message + + Mesaj oluştur + tr #Create msg. + + + + Mark + + İşaretle + + + + From: + + Kimden: + + + + Add image + + tr #Add image + + + + Activate handset + + tr #Activate handset + + + + Retrieving + + tr #Retrieving + + + + Internet call + + tr #Internet call + + + + Options + + tr #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_uk.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_uk.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + uk #Open + + + + Unmute + + uk #Unmute + + + + Settings + + uk #Settings + + + + Add to folder + + uk #Add to folder + + + + Password: + + uk #Password: + + + + OK + + uk #OK + + + + User name: + + uk #User name: + + + + Cancel download + + uk #Cancel download + + + + Cut + + uk #Cut + + + + Closing + + uk #Closing + + + + Finish + + uk #Finish + + + + Registering + + uk #Registering + + + + Removing + + uk #Removing + + + + Requesting + + uk #Requesting + + + + Remove + + uk #Remove + + + + Moving + + uk #Moving + + + + Add detail + + uk #Add detail + + + + File name: + + uk #File name: + + + + Send + + uk #Send + + + + Advanced settings + + uk #Advanced settings + + + + Format + + uk #Format + + + + Add recipient + + uk #Add recipient + + + + Edit + + uk #Edit + + + + Menu + + Меню + + + + Unmark + + Скасувати позначення + + + + Bookmark name: + + Назва закладки: + + + + Loudsp. on + + Увімкнути гучномовець + uk #Loudsp. on + + + + Move + + Перемістити + + + + Select all items + + Вибрати всі елементи + + + + Copy + + Копіювати + + + + Disable + + Вимкнути + + + + Select memory: + + Виберіть пам’ять: + + + + Retry + + Повторити + + + + Copy to folder + + Копіювати в папку + + + + Enable + + Увімкнути + + + + Send message + + Надіслати повідомлення + uk #Send msg. + + + + Add bookmark + + Додати закладку + + + + Mute + + Вимкнути звук + + + + Duration: + + Тривалість: + + + + Select file: + + Виберіть файл: + + + + Reset + + Скинути + + + + Done + + uk #Done + + + + Move to folder + + Перемістити в папку + + + + Zoom in + + uk #Zoom in + + + + Connect + + uk #Connect + + + + Call + + Дзвонити + + + + Clear + + Очистити + + + + Current password: + + Поточний пароль: + uk #Current passw.: + + + + Deselect all items + + Скасувати весь вибір + + + + Select + + uk #Select + + + + Close + + uk #Close + + + + Saving + + Триває збереження + + + + Loading + + Триває завантаження + + + + Replace + + Замінити + + + + Start + + Почати + + + + Searching + + Триває пошук + + + + Select address: + + Виберіть адресу: + uk #Select addr.: + + + + Details: + + Деталі: + + + + New password: + + Новий пароль: + uk #New passw.: + + + + Select folder: + + Виберіть папку: + + + + Reply + + Відповісти + + + + Read + + Прочитати + + + + Go to web address + + Перейти до веб-адреси + uk #Go to address + + + + Join + + Приєднатися + + + + Processing + + Триває обробка + + + + Date: + + Дата: + + + + Help + + Довідка + + + + Cancelling + + Триває скасування + + + + Deactivate loudspeaker + + Вимкнути гучномовець + uk #Deactivate loudsp. + + + + To: + + До: + + + + Uninstalling + + Триває видалення + + + + Exit + + Вихід + + + + User ID: + + Ідентифікатор користувача: + + + + Help + + Довідка + + + + Uninstall + + Видалити + + + + Define + + Визначити + + + + Expand + + Розгорнути + + + + Back + + Назад + + + + Change + + Змінити + + + + Collapse + + Згорнути + + + + Additional details + + Додаткові деталі + uk #Add. details + + + + Delete + + Видалити + + + + Address: + + Адреса: + + + + Forward + + Переслати + + + + Quit + + Скасувати + + + + Verify new password: + + Підтвердьте новий пароль: + uk #Verify new passw.: + + + + Pause + + uk #Pause + + + + Undo + + uk #Undo + + + + Video call + + uk #Video call + + + + Paste + + uk #Paste + + + + Zoom out + + Зменшити масштаб + + + + Last name: + + Прізвище: + + + + Reject + + Відхилити + + + + Fit to screen + + За розміром екрана + uk #Fit to scrn + + + + Answer + + Відповісти + + + + Resume + + uk #Resume + + + + Loudsp. off + + uk #Loudsp. off + + + + Save + + uk #Save + + + + Deselect + + uk #Deselect + + + + Disconnecting + + uk #Disconnecting + + + + Select language: + + Виберіть мову: + uk #Select language: + + + + Add member + + Додати учасника + + + + Add + + Додати + + + + Yes + + Так + + + + Chat + + Розмова + + + + Cancel + + Скасувати + + + + Deleting + + Триває видалення + + + + Handset + + Трубка + + + + Hide + + Сховати + + + + Connecting + + Установлення з’єднання + + + + Insert + + Вставити + + + + No + + Ні + + + + Inserting + + Триває вставлення + + + + Opening + + Триває відкривання + + + + Phone number: + + uk #Phone number: + + + + Initialising + + Триває ініціалізація + + + + Web address: + + uk #Web address: + + + + Print + + uk #Print + + + + Deactivate + + Вимкнути + + + + Stop + + Зупинити + + + + Details + + Деталі + + + + Continue + + Продовжити + + + + Listen + + Прослухати + + + + First name: + + Ім’я: + + + + Expires: + + Закінчення дії: + + + + Adding + + Триває додавання + + + + Verify password: + + Підтвердьте пароль: + uk #Verify passw.: + + + + Voice call + + Голосовий дзвінок + + + + Install + + Установити + + + + Select tone: + + Виберіть тон: + + + + Show + + Показати + + + + Writing language: + + Мова вводу: + uk #Writing language: + + + + Add thumbnail + + Додати мініатюру + + + + Disconnect + + Роз’єднати + uk #Disconn. + + + + Title: + + uk #Title: + + + + Installing + + uk #Installing + + + + End date: + + uk #End date: + + + + Folder name: + + uk #Folder name: + + + + Activate loudspeaker + + uk #Activate loudspeaker + + + + Select all contents + + uk #Select all contents + + + + Attachments + + uk #Attachments + + + + Buffering + + Триває буферизація + + + + Time: + + Час: + + + + Find + + Знайти + + + + Organise + + Упорядкувати + + + + Copying + + Триває копіювання + + + + Create message + + Створити повідомлення + uk #Create msg. + + + + Mark + + Позначити + + + + From: + + Від: + + + + Add image + + uk #Add image + + + + Activate handset + + uk #Activate handset + + + + Retrieving + + uk #Retrieving + + + + Internet call + + uk #Internet call + + + + Options + + uk #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_ur.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_ur.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + ur #Open + + + + Unmute + + ur #Unmute + + + + Settings + + ur #Settings + + + + Add to folder + + ur #Add to folder + + + + Password: + + ur #Password: + + + + OK + + ur #OK + + + + User name: + + ur #User name: + + + + Cancel download + + ur #Cancel download + + + + Cut + + ur #Cut + + + + Closing + + ur #Closing + + + + Finish + + ur #Finish + + + + Registering + + ur #Registering + + + + Removing + + ur #Removing + + + + Requesting + + ur #Requesting + + + + Remove + + ur #Remove + + + + Moving + + ur #Moving + + + + Add detail + + ur #Add detail + + + + File name: + + ur #File name: + + + + Send + + ur #Send + + + + Advanced settings + + ur #Advanced settings + + + + Format + + ur #Format + + + + Add recipient + + ur #Add recipient + + + + Edit + + ur #Edit + + + + Menu + + فہرست + + + + Unmark + + نشان رد کریں + + + + Bookmark name: + + نام نشانی کتاب: + + + + Loudsp. on + + لاڈاسپیکر چالو + ur #Loudsp. on + + + + Move + + منتقل کریں + + + + Select all items + + تمام آئیٹم منتخب کریں + + + + Copy + + نقل کریں + + + + Disable + + غیر فعال کریں + + + + Select memory: + + حافظہ منتخب کریں: + + + + Retry + + دوبارہ کوشش کریں + + + + Copy to folder + + فولڈر میں نقل کریں + + + + Enable + + فعال کریں + + + + Send message + + پیغام ارسال کریں + ur #Send msg. + + + + Add bookmark + + نشانی کتاب شامل کریں + + + + Mute + + آواز بند + + + + Duration: + + مدت: + + + + Select file: + + فائل منتخب کریں: + + + + Reset + + دوبارہ مرتب کریں + + + + Done + + ur #Done + + + + Move to folder + + فولڈر پر منتقل کریں + + + + Zoom in + + ur #Zoom in + + + + Connect + + ur #Connect + + + + Call + + کال کریں + + + + Clear + + صاف کریں + + + + Current password: + + حالیہ لفظ شناخت: + ur #Current passw.: + + + + Deselect all items + + تمام آئیٹم غیر منتخب کریں + + + + Select + + ur #Select + + + + Close + + ur #Close + + + + Saving + + حفظ کررہا ہے + + + + Loading + + لوڈنگ ہو رہی ہے + + + + Replace + + تبدیل کریں + + + + Start + + شروع کریں + + + + Searching + + تلاش جاری ہے + + + + Select address: + + پتہ منتخب کریں: + ur #Select addr.: + + + + Details: + + تفصیلات: + + + + New password: + + نیا لفظ شناخت: + ur #New passw.: + + + + Select folder: + + فولڈر منتخب کریں: + + + + Reply + + جواب دیں + + + + Read + + پڑھیں + + + + Go to web address + + ویب پتے پر جائیں + ur #Go to address + + + + Join + + شریک ہوں + + + + Processing + + زیر عمل + + + + Date: + + تاریخ: + + + + Help + + مدد + + + + Cancelling + + منسوخ کر رہا ہے + + + + Deactivate loudspeaker + + لاڈاسپیکر غیر کارآمد کریں + ur #Deactivate loudsp. + + + + To: + + برائے: + + + + Uninstalling + + تنصیب رد کی جا رہی ہے + + + + Exit + + باہر نکلیں + + + + User ID: + + صارف شناخت: + + + + Help + + مدد + + + + Uninstall + + تنصیب رد کریں + + + + Define + + وضاحت کریں + + + + Expand + + پھیلائیں + + + + Back + + پیچھے + + + + Change + + بدلیں + + + + Collapse + + سمیٹیں + + + + Additional details + + اضافی تفصیلات + ur #Add. details + + + + Delete + + مٹائیں + + + + Address: + + پتہ: + + + + Forward + + آگے ارسال کریں + + + + Quit + + چھوڑیں + + + + Verify new password: + + نئے لفظ شناخت کی توثیق کریں: + ur #Verify new passw.: + + + + Pause + + ur #Pause + + + + Undo + + ur #Undo + + + + Video call + + ur #Video call + + + + Paste + + ur #Paste + + + + Zoom out + + زوم آؤٹ + + + + Last name: + + آخری نام: + + + + Reject + + مسترد کریں + + + + Fit to screen + + اسکرین کے مطابق + ur #Fit to scrn + + + + Answer + + جواب دیں + + + + Resume + + ur #Resume + + + + Loudsp. off + + ur #Loudsp. off + + + + Save + + ur #Save + + + + Deselect + + ur #Deselect + + + + Disconnecting + + ur #Disconnecting + + + + Select language: + + زبان منتخب کریں: + ur #Select language: + + + + Add member + + ممبر شامل کریں + + + + Add + + شامل کریں + + + + Yes + + ہاں + + + + Chat + + بات چیت کریں + + + + Cancel + + منسوخ کریں + + + + Deleting + + مٹا رہا ہے + + + + Handset + + ہینڈسیٹ + + + + Hide + + چھپائیں + + + + Connecting + + اتصال ہو رہا ہے + + + + Insert + + داخل کریں + + + + No + + نہیں + + + + Inserting + + داخل کیا جا رہا ہے + + + + Opening + + کھول رہا ہے + + + + Phone number: + + ur #Phone number: + + + + Initialising + + آغاز کاری ہو رہی ہے + + + + Web address: + + ur #Web address: + + + + Print + + ur #Print + + + + Deactivate + + غیر کارآمد کریں + + + + Stop + + روکیں + + + + Details + + تفصیلات + + + + Continue + + جاری رکھیں + + + + Listen + + سنیں + + + + First name: + + پہلا نام: + + + + Expires: + + مدت ختم: + + + + Adding + + شامل کیا جا رہا ہے + + + + Verify password: + + لفظ شناخت کی توثیق کریں: + ur #Verify passw.: + + + + Voice call + + صوتی کال + + + + Install + + نصب کریں + + + + Select tone: + + ٹون منتخب کریں: + + + + Show + + دکھائیں + + + + Writing language: + + تحریری زبان: + ur #Writing language: + + + + Add thumbnail + + مختصر تصویر شامل کریں + + + + Disconnect + + منقطع کریں + ur #Disconn. + + + + Title: + + ur #Title: + + + + Installing + + ur #Installing + + + + End date: + + ur #End date: + + + + Folder name: + + ur #Folder name: + + + + Activate loudspeaker + + ur #Activate loudspeaker + + + + Select all contents + + ur #Select all contents + + + + Attachments + + ur #Attachments + + + + Buffering + + بفرنگ جاری ہے + + + + Time: + + وقت: + + + + Find + + تلاش کریں + + + + Organise + + منظم کریں + + + + Copying + + نقل ہو رہی ہے + + + + Create message + + پیغام تشکیل دیں + ur #Create msg. + + + + Mark + + نشان زد کریں + + + + From: + + از: + + + + Add image + + ur #Add image + + + + Activate handset + + ur #Activate handset + + + + Retrieving + + ur #Retrieving + + + + Internet call + + ur #Internet call + + + + Options + + ur #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_vi.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_vi.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + vi #Open + + + + Unmute + + vi #Unmute + + + + Settings + + vi #Settings + + + + Add to folder + + vi #Add to folder + + + + Password: + + vi #Password: + + + + OK + + vi #OK + + + + User name: + + vi #User name: + + + + Cancel download + + vi #Cancel download + + + + Cut + + vi #Cut + + + + Closing + + vi #Closing + + + + Finish + + vi #Finish + + + + Registering + + vi #Registering + + + + Removing + + vi #Removing + + + + Requesting + + vi #Requesting + + + + Remove + + vi #Remove + + + + Moving + + vi #Moving + + + + Add detail + + vi #Add detail + + + + File name: + + vi #File name: + + + + Send + + vi #Send + + + + Advanced settings + + vi #Advanced settings + + + + Format + + vi #Format + + + + Add recipient + + vi #Add recipient + + + + Edit + + vi #Edit + + + + Menu + + vi #Menu + + + + Unmark + + vi #Unmark + + + + Bookmark name: + + vi #Bookmark name: + + + + Loudsp. on + + vi #Loudspeaker on + vi #Loudsp. on + + + + Move + + vi #Move + + + + Select all items + + vi #Select all items + + + + Copy + + vi #Copy + + + + Disable + + vi #Disable + + + + Select memory: + + vi #Select memory: + + + + Retry + + vi #Retry + + + + Copy to folder + + vi #Copy to folder + + + + Enable + + vi #Enable + + + + Send message + + vi #Send message + vi #Send msg. + + + + Add bookmark + + vi #Add bookmark + + + + Mute + + vi #Mute + + + + Duration: + + vi #Duration: + + + + Select file: + + vi #Select file: + + + + Reset + + vi #Reset + + + + Done + + vi #Done + + + + Move to folder + + vi #Move to folder + + + + Zoom in + + vi #Zoom in + + + + Connect + + vi #Connect + + + + Call + + vi #Call + + + + Clear + + vi #Clear + + + + Current password: + + vi #Current password: + vi #Current passw.: + + + + Deselect all items + + vi #Deselect all items + + + + Select + + vi #Select + + + + Close + + vi #Close + + + + Saving + + vi #Saving + + + + Loading + + vi #Loading + + + + Replace + + vi #Replace + + + + Start + + vi #Start + + + + Searching + + vi #Searching + + + + Select address: + + vi #Select address: + vi #Select addr.: + + + + Details: + + vi #Details: + + + + New password: + + vi #New password: + vi #New passw.: + + + + Select folder: + + vi #Select folder: + + + + Reply + + vi #Reply + + + + Read + + vi #Read + + + + Go to web address + + vi #Go to web address + vi #Go to address + + + + Join + + vi #Join + + + + Processing + + vi #Processing + + + + Date: + + vi #Date: + + + + Help + + vi #Help + + + + Cancelling + + vi #Cancelling + + + + Deactivate loudspeaker + + vi #Deactivate loudspeaker + vi #Deactivate loudsp. + + + + To: + + vi #To: + + + + Uninstalling + + vi #Uninstalling + + + + Exit + + vi #Exit + + + + User ID: + + vi #User ID: + + + + Help + + vi #Help + + + + Uninstall + + vi #Uninstall + + + + Define + + vi #Define + + + + Expand + + vi #Expand + + + + Back + + vi #Back + + + + Change + + vi #Change + + + + Collapse + + vi #Collapse + + + + Additional details + + vi #Additional details + vi #Add. details + + + + Delete + + vi #Delete + + + + Address: + + vi #Address: + + + + Forward + + vi #Forward + + + + Quit + + vi #Quit + + + + Verify new password: + + vi #Verify new password: + vi #Verify new passw.: + + + + Pause + + vi #Pause + + + + Undo + + vi #Undo + + + + Video call + + vi #Video call + + + + Paste + + vi #Paste + + + + Zoom out + + vi #Zoom out + + + + Last name: + + vi #Last name: + + + + Reject + + vi #Reject + + + + Fit to screen + + vi #Fit to screen + vi #Fit to scrn + + + + Answer + + vi #Answer + + + + Resume + + vi #Resume + + + + Loudsp. off + + vi #Loudsp. off + + + + Save + + vi #Save + + + + Deselect + + vi #Deselect + + + + Disconnecting + + vi #Disconnecting + + + + Select language: + + vi #Select language: + vi #Select language: + + + + Add member + + vi #Add member + + + + Add + + vi #Add + + + + Yes + + vi #Yes + + + + Chat + + vi #Chat + + + + Cancel + + vi #Cancel + + + + Deleting + + vi #Deleting + + + + Handset + + vi #Handset + + + + Hide + + vi #Hide + + + + Connecting + + vi #Connecting + + + + Insert + + vi #Insert + + + + No + + vi #No + + + + Inserting + + vi #Inserting + + + + Opening + + vi #Opening + + + + Phone number: + + vi #Phone number: + + + + Initialising + + vi #Initialising + + + + Web address: + + vi #Web address: + + + + Print + + vi #Print + + + + Deactivate + + vi #Deactivate + + + + Stop + + vi #Stop + + + + Details + + vi #Details + + + + Continue + + vi #Continue + + + + Listen + + vi #Listen + + + + First name: + + vi #First name: + + + + Expires: + + vi #Expires: + + + + Adding + + vi #Adding + + + + Verify password: + + vi #Verify password: + vi #Verify passw.: + + + + Voice call + + vi #Voice call + + + + Install + + vi #Install + + + + Select tone: + + vi #Select tone: + + + + Show + + vi #Show + + + + Writing language: + + vi #Writing language: + vi #Writing language: + + + + Add thumbnail + + vi #Add thumbnail + + + + Disconnect + + vi #Disconnect + vi #Disconn. + + + + Title: + + vi #Title: + + + + Installing + + vi #Installing + + + + End date: + + vi #End date: + + + + Folder name: + + vi #Folder name: + + + + Activate loudspeaker + + vi #Activate loudspeaker + + + + Select all contents + + vi #Select all contents + + + + Attachments + + vi #Attachments + + + + Buffering + + vi #Buffering + + + + Time: + + vi #Time: + + + + Find + + vi #Find + + + + Organise + + vi #Organise + + + + Copying + + vi #Copying + + + + Create message + + vi #Create message + vi #Create msg. + + + + Mark + + vi #Mark + + + + From: + + vi #From: + + + + Add image + + vi #Add image + + + + Activate handset + + vi #Activate handset + + + + Retrieving + + vi #Retrieving + + + + Internet call + + vi #Internet call + + + + Options + + vi #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_zh.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_zh.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + zh #Open + + + + Unmute + + zh #Unmute + + + + Settings + + zh #Settings + + + + Add to folder + + zh #Add to folder + + + + Password: + + zh #Password: + + + + OK + + zh #OK + + + + User name: + + zh #User name: + + + + Cancel download + + zh #Cancel download + + + + Cut + + zh #Cut + + + + Closing + + zh #Closing + + + + Finish + + zh #Finish + + + + Registering + + zh #Registering + + + + Removing + + zh #Removing + + + + Requesting + + zh #Requesting + + + + Remove + + zh #Remove + + + + Moving + + zh #Moving + + + + Add detail + + zh #Add detail + + + + File name: + + zh #File name: + + + + Send + + zh #Send + + + + Advanced settings + + zh #Advanced settings + + + + Format + + zh #Format + + + + Add recipient + + zh #Add recipient + + + + Edit + + zh #Edit + + + + Menu + + 功能表 + + + + Unmark + + 取消标记 + + + + Bookmark name: + + 书签名称: + + + + Loudsp. on + + 打开扬声器 + zh #Loudsp. on + + + + Move + + 移动 + + + + Select all items + + 选择所有项目 + + + + Copy + + 复制 + + + + Disable + + 关闭 + + + + Select memory: + + 选择存储: + + + + Retry + + 重试 + + + + Copy to folder + + 复制到文件夹 + + + + Enable + + 打开 + + + + Send message + + 发送信息 + zh #Send msg. + + + + Add bookmark + + 添加书签 + + + + Mute + + 静音 + + + + Duration: + + 时长: + + + + Select file: + + 选择文件: + + + + Reset + + 重置 + + + + Done + + zh #Done + + + + Move to folder + + 移至文件夹 + + + + Zoom in + + zh #Zoom in + + + + Connect + + zh #Connect + + + + Call + + 通话 + + + + Clear + + 清除 + + + + Current password: + + 当前密码: + zh #Current passw.: + + + + Deselect all items + + 取消选择所有项目 + + + + Select + + zh #Select + + + + Close + + zh #Close + + + + Saving + + 正在储存 + + + + Loading + + 正在加载 + + + + Replace + + 替换 + + + + Start + + 开始 + + + + Searching + + 正在搜索 + + + + Select address: + + 选择地址: + zh #Select addr.: + + + + Details: + + 详情: + + + + New password: + + 新密码: + zh #New passw.: + + + + Select folder: + + 选择文件夹: + + + + Reply + + 回复 + + + + Read + + 阅读 + + + + Go to web address + + 转至网址 + zh #Go to address + + + + Join + + 加入 + + + + Processing + + 正在处理 + + + + Date: + + 日期: + + + + Help + + 帮助 + + + + Cancelling + + 正在取消 + + + + Deactivate loudspeaker + + 关闭扬声器 + zh #Deactivate loudsp. + + + + To: + + 到: + + + + Uninstalling + + 正在卸载 + + + + Exit + + 退出 + + + + User ID: + + 用户识别码: + + + + Help + + 帮助 + + + + Uninstall + + 卸载 + + + + Define + + 定义 + + + + Expand + + 展开 + + + + Back + + 返回 + + + + Change + + 更改 + + + + Collapse + + 折叠 + + + + Additional details + + 其他详情 + zh #Add. details + + + + Delete + + 删除 + + + + Address: + + 地址: + + + + Forward + + 转发 + + + + Quit + + 退出 + + + + Verify new password: + + 验证新密码: + zh #Verify new passw.: + + + + Pause + + zh #Pause + + + + Undo + + zh #Undo + + + + Video call + + zh #Video call + + + + Paste + + zh #Paste + + + + Zoom out + + 缩小 + + + + Last name: + + 姓: + + + + Reject + + 拒绝 + + + + Fit to screen + + 适合屏幕大小 + zh #Fit to scrn + + + + Answer + + 接听 + + + + Resume + + zh #Resume + + + + Loudsp. off + + zh #Loudsp. off + + + + Save + + zh #Save + + + + Deselect + + zh #Deselect + + + + Disconnecting + + zh #Disconnecting + + + + Select language: + + 选择语言: + zh #Select language: + + + + Add member + + 添加成员 + + + + Add + + 添加 + + + + Yes + + + + + + Chat + + 聊天 + + + + Cancel + + 取消 + + + + Deleting + + 正在删除 + + + + Handset + + 手机听筒 + + + + Hide + + 隐藏 + + + + Connecting + + 正在连接 + + + + Insert + + 插入 + + + + No + + + + + + Inserting + + 正在插入 + + + + Opening + + 正在打开 + + + + Phone number: + + zh #Phone number: + + + + Initialising + + 正在初始化 + + + + Web address: + + zh #Web address: + + + + Print + + zh #Print + + + + Deactivate + + 关闭 + + + + Stop + + 停止 + + + + Details + + 详情 + + + + Continue + + 继续 + + + + Listen + + 接听 + + + + First name: + + 名: + + + + Expires: + + 到期: + + + + Adding + + 正在添加 + + + + Verify password: + + 验证密码: + zh #Verify passw.: + + + + Voice call + + 语音通话 + + + + Install + + 安装 + + + + Select tone: + + 选择铃声: + + + + Show + + 显示 + + + + Writing language: + + 编辑语言: + zh #Writing language: + + + + Add thumbnail + + 添加微缩图像 + + + + Disconnect + + 断开连接 + zh #Disconn. + + + + Title: + + zh #Title: + + + + Installing + + zh #Installing + + + + End date: + + zh #End date: + + + + Folder name: + + zh #Folder name: + + + + Activate loudspeaker + + zh #Activate loudspeaker + + + + Select all contents + + zh #Select all contents + + + + Attachments + + zh #Attachments + + + + Buffering + + 正在缓冲 + + + + Time: + + 时间: + + + + Find + + 查找 + + + + Organise + + 整理 + + + + Copying + + 正在复制 + + + + Create message + + 创建信息 + zh #Create msg. + + + + Mark + + 标记 + + + + From: + + 从: + + + + Add image + + zh #Add image + + + + Activate handset + + zh #Activate handset + + + + Retrieving + + zh #Retrieving + + + + Internet call + + zh #Internet call + + + + Options + + zh #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_zh_HK.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_zh_HK.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + zh_hk #Open + + + + Unmute + + zh_hk #Unmute + + + + Settings + + zh_hk #Settings + + + + Add to folder + + zh_hk #Add to folder + + + + Password: + + zh_hk #Password: + + + + OK + + zh_hk #OK + + + + User name: + + zh_hk #User name: + + + + Cancel download + + zh_hk #Cancel download + + + + Cut + + zh_hk #Cut + + + + Closing + + zh_hk #Closing + + + + Finish + + zh_hk #Finish + + + + Registering + + zh_hk #Registering + + + + Removing + + zh_hk #Removing + + + + Requesting + + zh_hk #Requesting + + + + Remove + + zh_hk #Remove + + + + Moving + + zh_hk #Moving + + + + Add detail + + zh_hk #Add detail + + + + File name: + + zh_hk #File name: + + + + Send + + zh_hk #Send + + + + Advanced settings + + zh_hk #Advanced settings + + + + Format + + zh_hk #Format + + + + Add recipient + + zh_hk #Add recipient + + + + Edit + + zh_hk #Edit + + + + Menu + + 功能表 + + + + Unmark + + 取消標記 + + + + Bookmark name: + + 書籤名稱: + + + + Loudsp. on + + 開啟揚聲器 + zh_hk #Loudsp. on + + + + Move + + 移動 + + + + Select all items + + 選擇所有項目 + + + + Copy + + 複製 + + + + Disable + + 停用 + + + + Select memory: + + 選擇記憶體: + + + + Retry + + 重試 + + + + Copy to folder + + 複製到資料夾 + + + + Enable + + 啟用 + + + + Send message + + 傳送訊息 + zh_hk #Send msg. + + + + Add bookmark + + 加入書籤 + + + + Mute + + 靜音 + + + + Duration: + + 持續時間: + + + + Select file: + + 選擇檔案: + + + + Reset + + 重設 + + + + Done + + zh_hk #Done + + + + Move to folder + + 移動至資料夾 + + + + Zoom in + + zh_hk #Zoom in + + + + Connect + + zh_hk #Connect + + + + Call + + 撥號 + + + + Clear + + 清除 + + + + Current password: + + 目前密碼: + zh_hk #Current passw.: + + + + Deselect all items + + 取消選擇所有項目 + + + + Select + + zh_hk #Select + + + + Close + + zh_hk #Close + + + + Saving + + 儲存中 + + + + Loading + + 載入中 + + + + Replace + + 取代 + + + + Start + + 開始 + + + + Searching + + 尋找中 + + + + Select address: + + 選擇地址: + zh_hk #Select addr.: + + + + Details: + + 資料: + + + + New password: + + 新密碼: + zh_hk #New passw.: + + + + Select folder: + + 選擇資料夾: + + + + Reply + + 回覆 + + + + Read + + 讀取 + + + + Go to web address + + 前往網址 + zh_hk #Go to address + + + + Join + + 參加 + + + + Processing + + 處理中 + + + + Date: + + 日期: + + + + Help + + 說明 + + + + Cancelling + + 取消中 + + + + Deactivate loudspeaker + + 關閉揚聲器 + zh_hk #Deactivate loudsp. + + + + To: + + 結束時間: + + + + Uninstalling + + 解除安裝中 + + + + Exit + + 退出 + + + + User ID: + + 用戶識別碼: + + + + Help + + 說明 + + + + Uninstall + + 解除安裝 + + + + Define + + 定義 + + + + Expand + + 展開 + + + + Back + + 返回 + + + + Change + + 更換 + + + + Collapse + + 摺疊 + + + + Additional details + + 其他資料 + zh_hk #Add. details + + + + Delete + + 刪除 + + + + Address: + + 地址: + + + + Forward + + 轉發 + + + + Quit + + 退出 + + + + Verify new password: + + 確認新密碼: + zh_hk #Verify new passw.: + + + + Pause + + zh_hk #Pause + + + + Undo + + zh_hk #Undo + + + + Video call + + zh_hk #Video call + + + + Paste + + zh_hk #Paste + + + + Zoom out + + 縮小 + + + + Last name: + + 姓: + + + + Reject + + 拒絕 + + + + Fit to screen + + 調整至螢幕大小 + zh_hk #Fit to scrn + + + + Answer + + 接聽 + + + + Resume + + zh_hk #Resume + + + + Loudsp. off + + zh_hk #Loudsp. off + + + + Save + + zh_hk #Save + + + + Deselect + + zh_hk #Deselect + + + + Disconnecting + + zh_hk #Disconnecting + + + + Select language: + + 選擇語言: + zh_hk #Select language: + + + + Add member + + 加入成員 + + + + Add + + 加入 + + + + Yes + + + + + + Chat + + 聊天 + + + + Cancel + + 取消 + + + + Deleting + + 刪除中 + + + + Handset + + 手機 + + + + Hide + + 隱藏 + + + + Connecting + + 連接中 + + + + Insert + + 插入 + + + + No + + + + + + Inserting + + 插入中 + + + + Opening + + 開啟中 + + + + Phone number: + + zh_hk #Phone number: + + + + Initialising + + 啟動中 + + + + Web address: + + zh_hk #Web address: + + + + Print + + zh_hk #Print + + + + Deactivate + + 關閉 + + + + Stop + + 停止 + + + + Details + + 資料 + + + + Continue + + 繼續 + + + + Listen + + 接聽 + + + + First name: + + 名: + + + + Expires: + + 到期日: + + + + Adding + + 加入中 + + + + Verify password: + + 確認密碼: + zh_hk #Verify passw.: + + + + Voice call + + 語音通話 + + + + Install + + 安裝 + + + + Select tone: + + 選擇鈴聲: + + + + Show + + 顯示 + + + + Writing language: + + 書寫語言: + zh_hk #Writing language: + + + + Add thumbnail + + 加入縮圖 + + + + Disconnect + + 中斷連接 + zh_hk #Disconn. + + + + Title: + + zh_hk #Title: + + + + Installing + + zh_hk #Installing + + + + End date: + + zh_hk #End date: + + + + Folder name: + + zh_hk #Folder name: + + + + Activate loudspeaker + + zh_hk #Activate loudspeaker + + + + Select all contents + + zh_hk #Select all contents + + + + Attachments + + zh_hk #Attachments + + + + Buffering + + 緩衝處理中 + + + + Time: + + 時間: + + + + Find + + 找尋 + + + + Organise + + 組織 + + + + Copying + + 複製中 + + + + Create message + + 建立訊息 + zh_hk #Create msg. + + + + Mark + + 標記 + + + + From: + + 開始時間: + + + + Add image + + zh_hk #Add image + + + + Activate handset + + zh_hk #Activate handset + + + + Retrieving + + zh_hk #Retrieving + + + + Internet call + + zh_hk #Internet call + + + + Options + + zh_hk #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/i18n/translations/commonstrings/commonstrings_zh_TW.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/i18n/translations/commonstrings/commonstrings_zh_TW.ts Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,945 @@ + + + + nString + + Open + + zh_tw #Open + + + + Unmute + + zh_tw #Unmute + + + + Settings + + zh_tw #Settings + + + + Add to folder + + zh_tw #Add to folder + + + + Password: + + zh_tw #Password: + + + + OK + + zh_tw #OK + + + + User name: + + zh_tw #User name: + + + + Cancel download + + zh_tw #Cancel download + + + + Cut + + zh_tw #Cut + + + + Closing + + zh_tw #Closing + + + + Finish + + zh_tw #Finish + + + + Registering + + zh_tw #Registering + + + + Removing + + zh_tw #Removing + + + + Requesting + + zh_tw #Requesting + + + + Remove + + zh_tw #Remove + + + + Moving + + zh_tw #Moving + + + + Add detail + + zh_tw #Add detail + + + + File name: + + zh_tw #File name: + + + + Send + + zh_tw #Send + + + + Advanced settings + + zh_tw #Advanced settings + + + + Format + + zh_tw #Format + + + + Add recipient + + zh_tw #Add recipient + + + + Edit + + zh_tw #Edit + + + + Menu + + 功能表 + + + + Unmark + + 取消標記 + + + + Bookmark name: + + 書籤名稱: + + + + Loudsp. on + + 開啟擴音器 + zh_tw #Loudsp. on + + + + Move + + 移動 + + + + Select all items + + 選取所有項目 + + + + Copy + + 複製 + + + + Disable + + 停用 + + + + Select memory: + + 選取記憶體: + + + + Retry + + 重試 + + + + Copy to folder + + 複製到資料夾 + + + + Enable + + 啟用 + + + + Send message + + 傳送訊息 + zh_tw #Send msg. + + + + Add bookmark + + 加入書籤 + + + + Mute + + 靜音 + + + + Duration: + + 持續時間: + + + + Select file: + + 選取檔案: + + + + Reset + + 重設 + + + + Done + + zh_tw #Done + + + + Move to folder + + 移動至資料夾 + + + + Zoom in + + zh_tw #Zoom in + + + + Connect + + zh_tw #Connect + + + + Call + + 撥號 + + + + Clear + + 清除 + + + + Current password: + + 目前密碼: + zh_tw #Current passw.: + + + + Deselect all items + + 取消選取所有項目 + + + + Select + + zh_tw #Select + + + + Close + + zh_tw #Close + + + + Saving + + 儲存中 + + + + Loading + + 載入中 + + + + Replace + + 取代 + + + + Start + + 開始 + + + + Searching + + 搜尋中 + + + + Select address: + + 選取地址: + zh_tw #Select addr.: + + + + Details: + + 詳細資訊: + + + + New password: + + 新密碼: + zh_tw #New passw.: + + + + Select folder: + + 選取資料夾: + + + + Reply + + 回覆 + + + + Read + + 讀取 + + + + Go to web address + + 移至網址 + zh_tw #Go to address + + + + Join + + 參加 + + + + Processing + + 處理中 + + + + Date: + + 日期: + + + + Help + + 說明 + + + + Cancelling + + 取消中 + + + + Deactivate loudspeaker + + 關閉擴音器 + zh_tw #Deactivate loudsp. + + + + To: + + 結束時間: + + + + Uninstalling + + 解除安裝中 + + + + Exit + + 退出 + + + + User ID: + + 使用者識別碼: + + + + Help + + 說明 + + + + Uninstall + + 解除安裝 + + + + Define + + 定義 + + + + Expand + + 展開 + + + + Back + + 返回 + + + + Change + + 變更 + + + + Collapse + + 摺疊 + + + + Additional details + + 其他詳細資訊 + zh_tw #Add. details + + + + Delete + + 刪除 + + + + Address: + + 地址: + + + + Forward + + 轉寄 + + + + Quit + + 結束 + + + + Verify new password: + + 確認新密碼: + zh_tw #Verify new passw.: + + + + Pause + + zh_tw #Pause + + + + Undo + + zh_tw #Undo + + + + Video call + + zh_tw #Video call + + + + Paste + + zh_tw #Paste + + + + Zoom out + + 縮小 + + + + Last name: + + 姓: + + + + Reject + + 拒絕 + + + + Fit to screen + + 調整至螢幕大小 + zh_tw #Fit to scrn + + + + Answer + + 接聽 + + + + Resume + + zh_tw #Resume + + + + Loudsp. off + + zh_tw #Loudsp. off + + + + Save + + zh_tw #Save + + + + Deselect + + zh_tw #Deselect + + + + Disconnecting + + zh_tw #Disconnecting + + + + Select language: + + 選取語言: + zh_tw #Select language: + + + + Add member + + 加入成員 + + + + Add + + 加入 + + + + Yes + + + + + + Chat + + 聊天 + + + + Cancel + + 取消 + + + + Deleting + + 刪除中 + + + + Handset + + 手機 + + + + Hide + + 隱藏 + + + + Connecting + + 連線中 + + + + Insert + + 插入 + + + + No + + + + + + Inserting + + 插入中 + + + + Opening + + 開啟中 + + + + Phone number: + + zh_tw #Phone number: + + + + Initialising + + 啟動中 + + + + Web address: + + zh_tw #Web address: + + + + Print + + zh_tw #Print + + + + Deactivate + + 關閉 + + + + Stop + + 停止 + + + + Details + + 詳細資訊 + + + + Continue + + 繼續 + + + + Listen + + 接聽 + + + + First name: + + 名: + + + + Expires: + + 逾期日: + + + + Adding + + 加入中 + + + + Verify password: + + 確認密碼: + zh_tw #Verify passw.: + + + + Voice call + + 語音通話 + + + + Install + + 安裝 + + + + Select tone: + + 選取鈴聲: + + + + Show + + 顯示 + + + + Writing language: + + 編寫語言: + zh_tw #Writing language: + + + + Add thumbnail + + 加入縮圖 + + + + Disconnect + + 中斷連線 + zh_tw #Disconn. + + + + Title: + + zh_tw #Title: + + + + Installing + + zh_tw #Installing + + + + End date: + + zh_tw #End date: + + + + Folder name: + + zh_tw #Folder name: + + + + Activate loudspeaker + + zh_tw #Activate loudspeaker + + + + Select all contents + + zh_tw #Select all contents + + + + Attachments + + zh_tw #Attachments + + + + Buffering + + 緩衝處理中 + + + + Time: + + 時間: + + + + Find + + 尋找 + + + + Organise + + 組織 + + + + Copying + + 複製中 + + + + Create message + + 建立訊息 + zh_tw #Create msg. + + + + Mark + + 標記 + + + + From: + + 開始時間: + + + + Add image + + zh_tw #Add image + + + + Activate handset + + zh_tw #Activate handset + + + + Retrieving + + zh_tw #Retrieving + + + + Internet call + + zh_tw #Internet call + + + + Options + + zh_tw #Options + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbframedrawer.cpp --- a/src/hbcore/image/hbframedrawer.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbframedrawer.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -247,8 +247,13 @@ HbFrameDrawerPrivate::~HbFrameDrawerPrivate() { unLoadIcon(); - //Unregister the HbFrameDrawerPrivate Instance to HbIconLoader - HbIconLoader::global()->removeFrameDrawerInfo(this); + // Unregister the HbFrameDrawerPrivate Instance to HbIconLoader. + // However it may already have been destroyed, if the app is shuting down + // so be prepared for null ptr too. + HbIconLoader *loader = HbIconLoader::global(); + if (loader) { + loader->removeFrameDrawerInfo(this); + } } /*! @@ -371,6 +376,9 @@ // Create the frame icon and add it in the icon cache HbIconLoader *loader = HbIconLoader::global(); + if (!loader) { + return; + } //If it's one-piece frame-item, it's loaded using HbIconLoader::loadIcon() if (frameParts == 1) { @@ -397,8 +405,8 @@ //For multi-piece frame-items, HbIocnLoader::loadMultipieceIcon is used //This function returns the consolidate (stitched) icon created on the themeserver. - //If the consolidated icon-creation on themeserver fails, then server returns a list - //of individual frame-items. + //If the consolidated icon-creation on themeserver fails, then the consolidated + //icon is created on the client-side (fallback) HbIconImpl *iconImpl = loader->loadMultiPieceIcon(multiPieceFileNames, data, frameIconSize, Qt::IgnoreAspectRatio, QIcon::Normal, iconLoaderOptions(), listOfIcons, color); @@ -1067,7 +1075,9 @@ if (icon) { //If a consolidated (stitched) icon was created on the themeserver, then //HbIconLoader::unloadIcon() is used to unload it. - loader->unLoadIcon(icon->iconImpl(), unloadedByServer); + if (loader) { + loader->unLoadIcon(icon->iconImpl(), unloadedByServer); + } icon->dispose(); icon = 0; } @@ -1095,6 +1105,8 @@ fallbackMaskableIconList.clear(); // vector of HbMaskableIconImpl* } +// This is called from HbIconLoader when building for tools. +// It is not in use in normal builds. void HbFrameDrawerPrivate::themeChange(const QStringList &updatedFiles) { bool unloadIcons = false; @@ -1345,7 +1357,8 @@ { const_cast(this)->setRect(rect); - if (d->frameGraphicsName.isEmpty() || d->type == HbFrameDrawer::Undefined || d->rect.isEmpty()) { + HbIconLoader *loader = HbIconLoader::global(); + if (d->frameGraphicsName.isEmpty() || d->type == HbFrameDrawer::Undefined || d->rect.isEmpty() || !loader) { return; } @@ -1358,7 +1371,7 @@ // update the rendering mode QPaintEngine *paintEngine = painter->paintEngine(); if (paintEngine) { - HbIconLoader::global()->updateRenderingMode(paintEngine->type()); + loader->updateRenderingMode(paintEngine->type()); } d->prepareFrameIcon(); d->prevRect = rect.toRect(); @@ -1598,7 +1611,8 @@ /*! * This function should be called when the theme changes. This clears the used frame -* graphic. +* graphics. This is typically handled by HbFrameItem so there is no need to call this function +* manually when using the framedrawer with a HbFrameItem. */ void HbFrameDrawer::themeChanged() { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconanimation.cpp --- a/src/hbcore/image/hbiconanimation.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconanimation.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -335,7 +335,8 @@ mImageRenderer(renderer), mIconFileName(iconFileName), mType(type), - mTimerEntry(0) + mTimerEntry(0), + mDoNotResetLoopCount(false) { // This class supports these types Q_ASSERT(mType == MNG || mType == GIF); @@ -400,11 +401,15 @@ mImageRenderer = 0; mImageRenderer = new QImageReader(mIconFileName, mType == MNG ? "MNG" : "GIF"); - // Reset the loop count. - if (mCustomLoopCountSet) { - mLoopCount = mCustomLoopCount; + if (mDoNotResetLoopCount) { + mDoNotResetLoopCount = false; } else { - mLoopCount = mImageRenderer->loopCount(); + // Reset the loop count. + if (mCustomLoopCountSet) { + mLoopCount = mCustomLoopCount; + } else { + mLoopCount = mImageRenderer->loopCount(); + } } // New image reader starts from the first frame. Handle animation update. @@ -433,6 +438,9 @@ QImage img = mImageRenderer->read(); // Reached last frame? if (!mImageRenderer->canRead()) { + // Must get rid of the old pixmap first, in case of very large frames + // keeping both the old and new frame in memory would not succeed. + mCurrentFrame = QPixmap(); // This call is not superfluous. mCurrentFrame = QPixmap::fromImage(img); mLastFrame = mCurrentFrame; break; @@ -528,6 +536,11 @@ // Store the new frame in the current frame pixmap if (!img.isNull()) { + // Must get rid of the old pixmap first, in case of very large frames + // keeping both the old and new frame in memory would not succeed. + // (with the OpenVG paint engine QPixmap will create a new QImage if + // the pixel format is different and it will be different here...) + mCurrentFrame = QPixmap(); // This call is not superfluous. mCurrentFrame = QPixmap::fromImage(img); } // Reached the last frame. Store it so it can be used by stop(). @@ -551,6 +564,7 @@ if (mLoopCount > 0) { --mLoopCount; } + mDoNotResetLoopCount = true; start(); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconanimation_p.h --- a/src/hbcore/image/hbiconanimation_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconanimation_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -221,6 +221,7 @@ int mType; int mTimerInterval; HbTimerSignalEntry *mTimerEntry; + bool mDoNotResetLoopCount; QPixmap mCurrentFrame; QPixmap mLastFrame; int mLoopCount; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconanimator.cpp --- a/src/hbcore/image/hbiconanimator.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconanimator.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -203,10 +203,6 @@ if (d->animation && !d->view) { d->animation->setView(0); } - - if (d->animation && d->mLoopCountSet && !d->animation->loopCountSet()) { - d->animation->setLoopCount(d->mLoopCount); - } } } @@ -222,6 +218,9 @@ QIcon::Mode mode, QIcon::State state) const { + if (d->animation && d->mLoopCountSet && !d->animation->loopCountSet()) { + d->animation->setLoopCount(d->mLoopCount); + } d->icon.paint(painter, rect, aspectRatioMode, alignment, mode, state); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconengine.cpp --- a/src/hbcore/image/hbiconengine.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconengine.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -315,10 +315,14 @@ // Ignore the result of any outstanding loadIcon request. The // parameters here must match callback and callbackParam passed to // HbIconLoader::loadIcon in paintHelper(). - loader->cancelLoadIcon(HbIconEngine::asyncLoadCallback, q); + if (loader) { + loader->cancelLoadIcon(HbIconEngine::asyncLoadCallback, q); + } if (icon) { - loader->unLoadIcon(icon, unloadedByServer); + if (loader) { + loader->unLoadIcon(icon, unloadedByServer); + } icon->dispose(); icon = 0; } @@ -544,8 +548,12 @@ HbIconEngine::~HbIconEngine() { // Unregister the HbIconEngine Instance to HbIconLoader + // However it may already have been destroyed, if the app is shuting down + // so be prepared for null ptr too. HbIconLoader *loader = HbIconLoader::global(); - loader->removeIconEngineInfo(this); + if (loader) { + loader->removeIconEngineInfo(this); + } delete d; } @@ -554,7 +562,9 @@ d->q = this; // Register the HbIconEngine Instance to HbIconLoader HbIconLoader *loader = HbIconLoader::global(); - loader->storeIconEngineInfo(this); + if (loader) { + loader->storeIconEngineInfo(this); + } } void HbIconEngine::forceFlagUpdate() @@ -732,8 +742,8 @@ if (d->icon) { // Draw badges on this pixmap - QPainter painter(&d->pixmap); if (d->badgeInfo) { + QPainter painter(&d->pixmap); d->badgeInfo->paint(&painter, QRectF(QPointF(0, 0), pixelSize), mode, state, d->isMirrored()); } d->pixmap = d->icon->pixmap(); @@ -768,8 +778,8 @@ if (d->icon) { d->pixmap = d->icon->pixmap(); // Draw badges on this pixmap - QPainter painter(&d->pixmap); if (d->badgeInfo) { + QPainter painter(&d->pixmap); d->badgeInfo->paint(&painter, QRectF(QPointF(0, 0), pixelSize), mode, state, d->isMirrored()); } return d->pixmap; @@ -852,12 +862,18 @@ QIcon::State state) { // This method is called by QIcon and it should paint the icon with the size defined by 'rect'. + + HbIconLoader *loader = HbIconLoader::global(); + if (!loader) { + return; + } + HbIconImpl *icon = 0; // update the rendering mode QPaintEngine *paintEngine = painter->paintEngine(); if (paintEngine) { - HbIconLoader::global()->updateRenderingMode(paintEngine->type()); + loader->updateRenderingMode(paintEngine->type()); } if (d->async) { @@ -866,7 +882,7 @@ icon = paintHelper(rect.size(), Qt::KeepAspectRatio, mode, state); if (icon) { icon->paint(painter, rect, Qt::AlignCenter); - HbIconLoader::global()->unLoadIcon(icon); + loader->unLoadIcon(icon); icon->dispose(); // Now paint any necessary badges. @@ -883,6 +899,11 @@ QIcon::Mode mode, QIcon::State state) { + HbIconLoader *loader = HbIconLoader::global(); + if (!loader) { + return; + } + // If loading the pixmap has failed, do not retry forever if (loadFailed(mode, state)) { return; @@ -926,7 +947,7 @@ // Update the rendering mode QPaintEngine *paintEngine = painter->paintEngine(); if (paintEngine) { - HbIconLoader::global()->updateRenderingMode(paintEngine->type()); + loader->updateRenderingMode(paintEngine->type()); } d->icon = paintHelper(s, aspectRatioMode, mode, state); if (d->icon && d->icon->isCreatedOnServer()) { @@ -1161,9 +1182,10 @@ if (!d->signalConnectionsSet) { d->signalConnectionsSet = true; if (!d->flags.testFlag(HbIcon::NonThemeable)) { - connect(&hbInstance->theme()->d_ptr->iconTheme, SIGNAL(iconsUpdated(const QStringList &)), this, SLOT(themeChange(const QStringList &))); + connect(&hbInstance->theme()->d_ptr->iconTheme, SIGNAL(iconsUpdated(QStringList)), + SLOT(themeChange(QStringList))); connect(HbLayoutDirectionNotifier::instance(), SIGNAL(layoutDirectionChanged()), - this, SLOT(handleLayoutDirectionChanged())); + SLOT(handleLayoutDirectionChanged())); // No need to worry about missed notifications because if the icon was not // painted before then there is nothing to clear. } @@ -1268,7 +1290,7 @@ void HbIconEngine::resetIconImpl() const { #if defined(HB_SGIMAGE_ICON) || defined(HB_NVG_CS_ICON) - if ((d->iconType == SGIMAGE) || (d->iconType == NVG)) { + if (d->icon) { d->icon->decrementRefCount(); if (d->icon->refCount() == 0 && d->icon->isCreatedOnServer()) { @@ -1278,7 +1300,7 @@ d->icon->dispose(); d->icon = 0; } - } + #endif } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconimplcreator_p.cpp --- a/src/hbcore/image/hbiconimplcreator_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconimplcreator_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -40,8 +40,9 @@ \internal */ + HbIconImpl *HbIconImplCreator::createIconImpl(HbSharedIconInfo &iconImplInfo, - HbIconLoadingParams ¶ms) + HbIconLoadingParams ¶ms) { HbIconImpl *iconImpl = 0; switch (iconImplInfo.type) { @@ -86,3 +87,18 @@ return iconImpl; } + +HbIconImpl *HbIconImplCreator::createIconImpl(const QPixmap &pixmap, + HbIconLoadingParams ¶ms) +{ + HbIconImpl *iconImpl = new HbPixmapIconImpl(pixmap, + params.iconFileName, + params.size, + params.aspectRatioMode, + params.mode, + (params.mirrored && !params.mirroredIconFound)); + if (iconImpl && params.color.isValid()) { + iconImpl->setColor(params.color); + } + return iconImpl; +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconimplcreator_p.h --- a/src/hbcore/image/hbiconimplcreator_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconimplcreator_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -70,6 +70,9 @@ public: static HbIconImpl *createIconImpl(HbSharedIconInfo &iconImplInfo, HbIconLoadingParams ¶ms); + + static HbIconImpl *createIconImpl(const QPixmap &pixmap, + HbIconLoadingParams ¶ms); }; #endif //HBICONIMPLCREATOR_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconloader.cpp --- a/src/hbcore/image/hbiconloader.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconloader.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -63,18 +63,22 @@ #ifdef HB_NVG_CS_ICON #include "hbeglstate_p.h" +#include "hbnvgrasterizer_p.h" #endif // SVG animation is currently disabled because of bugs in QT's svg engine #undef HB_SVG_ANIMATION +//#define HB_ICON_CACHE_DEBUG + // Icon name without extension static const char *s_unknown = "unknown"; /*! \class HbIconLoader - \brief HbIconLoader loads icons according to the Freedesktop Icon Theme Specification + \brief HbIconLoader loads and caches vector and raster icons + either via the Theme Server or directly from files/resources. \internal */ @@ -82,51 +86,7 @@ // Allocated dynamically so it can be deleted before the application object is destroyed. // Deleting it later causes segmentation fault. static HbIconLoader *theLoader = 0; - -/* - * Client side caching of sgimage icon required, as sgimage lite cannot be - * opened multiple times - * - * It is also beneficial for performance, because it reduces IPC in certain - * cases. - * - * Note that by default this is not a permanent cache, i.e. when an iconimpl's - * refcount reaches zero it is removed from the cache. This means that the - * cache is beneficial for having the same icon rendered by two or more HbIcons - * at the same time (very typical in some itemview (e.g. list widget) cases), - * but it would not benefit a load-unload-load scenario because the icon is - * removed from the cache during the unload when there are no references - * anymore. - * - * However the cachekeeper below will change this behavior, preventing refcounts - * reaching zero in unLoadIcon(), so this cache may contain also icons that are - * not really in use and are only referenced by the cachekeeper. This is - * required for further reduction of IPC calls. - */ -static QHash iconImplCache; - -// The global cachekeeper instance will hold references to icons that would -// normally be unloaded (i.e. mIcons will contain icons with refcount 1). -// -// Icons get added from unLoadIcon(), meaning that if the cachekeeper decides to -// hold a reference then the icon is not really unloaded (and thus stays in -// iconImplCache). -// -// When the icon gets referenced due to a cache hit, in loadIcon() and other -// places, the icon is removed from the cachekeeper. -class CacheKeeper { -public: - CacheKeeper() : mConsumption(0) { } - void ref(HbIconImpl *icon); - void unref(HbIconImpl *icon); - void clear(); -private: - void del(HbIconImpl *icon, bool sendUnloadReq); - QList mIcons; - int mConsumption; -}; - -Q_GLOBAL_STATIC(CacheKeeper, cacheKeeper) +static bool loaderDestroyed = false; // The max consumption for the icons held by the cachekeeper, assuming that each // icon is 32bpp. Note that the cachekeeper's content is cleared also when @@ -212,6 +172,53 @@ QMutex mLocalLoadMutex; QMutex mIconSourceMutex; friend class HbLocalLoaderThread; + + /* + * Client side caching of sgimage icon required, as sgimage lite cannot be + * opened multiple times + * + * It is also beneficial for performance, because it reduces IPC in certain + * cases. + * + * Note that by default this is not a permanent cache, i.e. when an iconimpl's + * refcount reaches zero it is removed from the cache. This means that the + * cache is beneficial for having the same icon rendered by two or more HbIcons + * at the same time (very typical in some itemview (e.g. list widget) cases), + * but it would not benefit a load-unload-load scenario because the icon is + * removed from the cache during the unload when there are no references + * anymore. + * + * However the cachekeeper below will change this behavior, preventing refcounts + * reaching zero in unLoadIcon(), so this cache may contain also icons that are + * not really in use and are only referenced by the cachekeeper. This is + * required for further reduction of IPC calls. + */ + QHash iconImplCache; + + // The global cachekeeper instance will hold references to icons that would + // normally be unloaded (i.e. mIcons will contain icons with refcount 1). + // + // Icons get added from unLoadIcon(), meaning that if the cachekeeper decides to + // hold a reference then the icon is not really unloaded (and thus stays in + // iconImplCache). + // + // When the icon gets referenced due to a cache hit, in loadIcon() and other + // places, the icon is removed from the cachekeeper. + class CacheKeeper { + public: + CacheKeeper(HbIconLoaderPrivate *p) : mConsumption(0), mIconLoaderPrivate(p) { } + void ref(HbIconImpl *icon); + void unref(HbIconImpl *icon); + void clear(); + private: + void del(HbIconImpl *icon, bool sendUnloadReq); + QList mIcons; + int mConsumption; + HbIconLoaderPrivate *mIconLoaderPrivate; + friend class HbIconLoaderPrivate; + }; + + CacheKeeper cacheKeeper; }; void HbLocalLoaderThread::run() @@ -231,7 +238,8 @@ lastIconSource(0), layoutMirrored(Unknown), mLocalLoadMutex(QMutex::Recursive), - mIconSourceMutex(QMutex::Recursive) + mIconSourceMutex(QMutex::Recursive), + cacheKeeper(this) { qRegisterMetaType(); qRegisterMetaType(); @@ -249,6 +257,12 @@ mLocalLoaderThread.wait(); delete lastIconSource; qDeleteAll(mActiveAsyncRequests); + cacheKeeper.clear(); + // There may be icons in iconImplCache at this point and they are not + // leftovers so they must not be destroyed. In many cases the HbIconLoader + // is destroyed before the destructors of icon engines or framedrawers are run + // so it must be left up to them to correctly unref all icons. + iconImplCache.clear(); } HbIconLoaderPrivate *HbIconLoaderPrivate::global() @@ -607,28 +621,32 @@ renderMode = EHWRendering; // Delete the icon loader when the application is destroyed. - connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(destroy())); + connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), SLOT(destroy())); connect(HbLayoutDirectionNotifier::instance(), SIGNAL(layoutDirectionChangeStarted()), this, SLOT(updateLayoutDirection())); -#ifdef HB_TOOL_INTERFACE - // This enables partial theme updates. - connect(&hbInstance->theme()->d_ptr->iconTheme, SIGNAL(iconsUpdated(QStringList)), this, SLOT(themeChange(QStringList))); -#endif + HbTheme *theme = hbInstance->theme(); + connect(&theme->d_ptr->iconTheme, SIGNAL(iconsUpdated(QStringList)), SLOT(themeChange(QStringList))); + connect(theme, SIGNAL(changeFinished()), SLOT(themeChangeFinished())); } HbIconLoader::~HbIconLoader() { - cacheKeeper()->clear(); delete d; + loaderDestroyed = true; } HbIconLoader *HbIconLoader::global() { // Allocated dynamically so it can be deleted before the application object is destroyed. // Deleting it later causes segmentation fault. - if (!theLoader) { + // Once destroyed, creating the loader again must not be allowed (e.g. because there + // may not be a QApplication instance anymore at this stage). It is normal to + // return null pointer in this case, it can happen only during app shutdown. If anybody + // is using HbIconLoader::global() from destructors, they have to be prepared for the + // null ptr result too. + if (!theLoader && !loaderDestroyed) { theLoader = new HbIconLoader; } @@ -784,7 +802,29 @@ void HbIconLoader::themeChange(const QStringList &updatedFiles) { - foreach(HbFrameDrawerPrivate * frameDrawer, frameDrawerInstanceList) frameDrawer->themeChange(updatedFiles); + // For icons, the content is dropped in HbIconEngine. + // For framedrawers, HbFrameItem notifies the framedrawer when the theme changes. + // This below is only needed to support partial theme updates for framedrawers in external tools. + // (standalone framedrawers do not update automatically, except in tools) +#ifdef HB_TOOL_INTERFACE + foreach(HbFrameDrawerPrivate * frameDrawer, frameDrawerInstanceList) { + frameDrawer->themeChange(updatedFiles); + } +#else + Q_UNUSED(updatedFiles); +#endif +} + +void HbIconLoader::themeChangeFinished() +{ +#ifdef HB_ICON_CACHE_DEBUG + qDebug("HbIconLoader::themeChangeFinished: dropping unused icons"); +#endif + // We need to drop unused icons to prevent reusing them now that the theme is different. + // Doing it in themeChange() would not be right, it would be too early, + // because unloading would make the dropped icons unused (but referenced) so + // we would end up with reusing the old graphics. This here is safe. + d->cacheKeeper.clear(); } void HbIconLoader::destroy() @@ -813,8 +853,7 @@ void HbIconLoader::handleForegroundLost() { #if defined(HB_SGIMAGE_ICON) || defined(HB_NVG_CS_ICON) - // Remove SGImage/NVG type of icons - freeGpuIconData(); + freeIconData(); // delete the VGImage HbEglStates *eglStateInstance = HbEglStates::global(); eglStateInstance->handleForegroundLost(); @@ -829,7 +868,12 @@ void HbIconLoader::removeItemInCache(HbIconImpl *iconImpl) { if (iconImpl) { - iconImplCache.remove(iconImplCache.key(iconImpl)); + if (d->iconImplCache.remove(d->iconImplCache.key(iconImpl)) > 0) { +#ifdef HB_ICON_CACHE_DEBUG + qDebug() << "HbIconLoader::removeItemInCache: Removed" + << iconImpl->iconFileName() << iconImpl->keySize(); +#endif + } } } @@ -840,20 +884,41 @@ void HbIconLoader::freeGpuIconData() { #if defined(HB_SGIMAGE_ICON) || defined(HB_NVG_CS_ICON) - cacheKeeper()->clear(); // unref all unused icons + d->cacheKeeper.clear(); // unref all unused icons + for (int i = 0; i < iconEngineList.count(); i++) { + HbIconEngine *engine = iconEngineList.at(i); + if (engine->iconFormatType() == SGIMAGE || engine->iconFormatType() == NVG) { + engine->resetIconImpl(); + } + } + for (int i = 0; i < frameDrawerInstanceList.count(); i++) { + HbFrameDrawerPrivate *fd = frameDrawerInstanceList.at(i); + if (fd->iconFormatType() == SGIMAGE || fd->iconFormatType() == NVG) { + fd->resetMaskableIcon(); + } + } +#endif +} + +/*! + * Cleans up (deletes) the HbIconImpl instances at the client side + * It also resets the engine's iconImpl and MaskableIcon's iconImpl + */ +void HbIconLoader::freeIconData() +{ + d->cacheKeeper.clear(); // unref all unused icons for (int i = 0; i < iconEngineList.count(); i++) { HbIconEngine *engine = iconEngineList.at(i); engine->resetIconImpl(); } for (int i = 0; i < frameDrawerInstanceList.count(); i++) { HbFrameDrawerPrivate *fd = frameDrawerInstanceList.at(i); - if ((fd->iconFormatType() == SGIMAGE) || (fd->iconFormatType() == NVG)) { - fd->resetMaskableIcon(); - } + fd->resetMaskableIcon(); + } -#endif } + /*! \internal @@ -1200,8 +1265,8 @@ #endif // HB_SVG_ANIMATION - params.image = QImage(renderSize.toSize(), QImage::Format_ARGB32); // should be _Premultiplied but that results in incorrect rendering - params.image.fill(Qt::transparent); + params.image = QImage(renderSize.toSize(), QImage::Format_ARGB32_Premultiplied); + params.image.fill(QColor(Qt::transparent).rgba()); QPainter painter; painter.begin(¶ms.image); svgRenderer->render(&painter, QRectF(QPointF(), renderSize.toSize())); @@ -1241,8 +1306,8 @@ sy = renderSize.height() / picSize.height(); } - params.image = QImage(renderSize.toSize(), QImage::Format_ARGB32); - params.image.fill(Qt::transparent); + params.image = QImage(renderSize.toSize(), QImage::Format_ARGB32_Premultiplied); + params.image.fill(QColor(Qt::transparent).rgba()); QPainter painter; painter.begin(¶ms.image); if (scale) { @@ -1356,6 +1421,47 @@ source->deleteImageIfLargerThan(IMAGE_SIZE_LIMIT); } +void HbIconLoader::loadNvgIcon(HbIconLoadingParams ¶ms ) +{ +#ifdef HB_NVG_CS_ICON + HbIconSource *source = getIconSource(params.iconFileName, "NVG"); + if (!source) { + return; + } + + HbNvgRasterizer * nvgRasterizer = HbNvgRasterizer::global(); + QByteArray *sourceByteArray = source->byteArray(); + if( !sourceByteArray ) { + return; + } + + QByteArray nvgArray = *sourceByteArray; + QSizeF renderSize = source->defaultSize(); + if (!params.isDefaultSize) { + renderSize.scale(params.size, params.aspectRatioMode); + } else if (params.options.testFlag(ResolutionCorrected)) { + applyResolutionCorrection(renderSize); + } + + QSize iconSize = renderSize.toSize(); + QImage image(iconSize, QImage::Format_ARGB32_Premultiplied); + QImage::Format imageFormat = image.format(); + int stride = image.bytesPerLine(); + void * rasterizedData = image.bits(); + + bool success = nvgRasterizer->rasterize(nvgArray, iconSize, + params.aspectRatioMode, + rasterizedData, stride,imageFormat); + if (success) { + params.image = image; + } + +#else + Q_UNUSED(params) +#endif + +} + /*! * \fn void HbIconLoader::switchRenderingMode() * @@ -1375,7 +1481,7 @@ #if defined(HB_SGIMAGE_ICON) || defined(HB_NVG_CS_ICON) if (newRenderMode != renderMode) { - cacheKeeper()->clear(); // unref all unused icons + d->cacheKeeper.clear(); // unref all unused icons if (newRenderMode == ESWRendering) { // switching from HW to SW mode freeGpuIconData(); @@ -1396,6 +1502,8 @@ } } +// Note that this is not the same as HbThemeUtils::isLogicalName. +// A non-logical name can still indicate content that must go through themeserver. inline bool isLocalContent(const QString &iconName) { // Check if we have a simple file or embedded resource, given with full @@ -1406,11 +1514,6 @@ || (iconName.length() > 1 && iconName.at(1) == ':') || (iconName.contains('.') && !iconName.startsWith("qtg_", Qt::CaseInsensitive)); - // Cannot load NVG locally. Remove this check when local loading for NVG is available. - if (iconName.endsWith(".nvg", Qt::CaseInsensitive)) { - localContent = false; - } - return localContent; } @@ -1552,12 +1655,12 @@ if (serverUseAllowed(iconName, options) // Use the server only for theme graphics. // For local files, i.e. anything that is not a single logical name, use local loading. - && !isLocalContent(iconName) + && !isLocalContent(iconName) && format != "MNG" && format != "GIF" && manager) { - //Initiate an IPC to themeserver to get the icon-data from the server. + // Initiate an IPC to themeserver to get the icon-data from the server. if (callback) { getIconFromServerAsync(params, callback, callbackParam); @@ -1566,6 +1669,9 @@ icon = getIconFromServer(params); + // No check for DoNotCache here. If we decided to use the server regardless of + // the flag then there's a chance that we have to cache (in case of SgImage + // for example) for proper operation, no matter what. if (icon) { cacheIcon(params, icon, &cacheKey); return icon; @@ -1600,6 +1706,12 @@ HbIconImpl *HbIconLoader::lookupInCache(const HbIconLoadingParams ¶ms, QByteArray *outCacheKey) { + // Stop right away for resolution corrected icons, these may get false cache + // hits. The use of such icons should be very rare anyway. + if (params.options.testFlag(ResolutionCorrected)) { + return 0; + } + QByteArray cacheKey = d->createCacheKeyFrom(params.iconName, params.size, params.aspectRatioMode, @@ -1609,13 +1721,13 @@ if (outCacheKey) { *outCacheKey = cacheKey; } - if (iconImplCache.contains(cacheKey)) { - HbIconImpl *icon = iconImplCache.value(cacheKey); + if (d->iconImplCache.contains(cacheKey)) { + HbIconImpl *icon = d->iconImplCache.value(cacheKey); icon->incrementRefCount(); - cacheKeeper()->unref(icon); + d->cacheKeeper.unref(icon); #ifdef HB_ICON_CACHE_DEBUG - qDebug() << "HbIconLoader::loadIcon(): " << "Cache hit in iconImplCache for" << params.iconName << params.size; - qDebug() << "HbIconLoader::loadIcon(): Client RefCount now = " << icon->refCount(); + qDebug() << "HbIconLoader::lookupInCache: Cache hit for" << params.iconName << params.size + << "Client refcount now" << icon->refCount(); #endif return icon; } @@ -1628,6 +1740,9 @@ QMutexLocker iconSourceLocker(&d->mIconSourceMutex); if (format == "SVG") { loadSvgIcon(params); + } else if(format == "NVG") { + //support for client side rendering of nvg icons + loadNvgIcon(params); } else if (format == "PIC") { loadPictureIcon(params); } else if (format == "MNG" || format == "GIF") { @@ -1683,7 +1798,7 @@ } } - return new HbPixmapIconImpl(pm, params.iconFileName); + return HbIconImplCreator::createIconImpl(pm, params); } void HbIconLoader::cacheIcon(const HbIconLoadingParams ¶ms, HbIconImpl *icon, QByteArray *existingCacheKey) @@ -1692,17 +1807,18 @@ if (existingCacheKey) { cacheKey = *existingCacheKey; } else { - cacheKey = d->createCacheKeyFrom(params.iconName, + cacheKey = d->createCacheKeyFrom(params.iconName, params.size, params.aspectRatioMode, - params.mode, - params.mirrored, + params.mode, + params.mirrored, params.color); } - iconImplCache.insert(cacheKey, icon); + d->iconImplCache.insert(cacheKey, icon); #ifdef HB_ICON_CACHE_DEBUG - qDebug() << "HbIconLoader::loadIcon(): " << params.iconName << " inserted into impl-cache, ref-count now = " << icon->refCount(); + qDebug() << "HbIconLoader:cacheIcon: " << params.iconName + << "inserted into local cache, client refcount now" << icon->refCount(); #endif } @@ -1759,6 +1875,8 @@ const QColor &color) { Q_UNUSED(color); + Q_UNUSED(multiPieceImpls); + HbIconImpl *icon = 0; if (listOfIcons.count() == 0) { return icon; @@ -1771,7 +1889,8 @@ bool mirroredIconFound = false; // We don't want to get the consolidated icon for only NVG build, ie. without SGImage lite support. - // Consolidated icon will be created for NVG with SGImage lite support and when NVG is not available. + // Consolidated icon will be created for NVG with SGImage lite support. + // and when NVG is not available. QByteArray cacheKey = d->createCacheKeyFrom( multiPartIconData.multiPartIconId, size, @@ -1780,13 +1899,13 @@ mirrored, color); //If consolidated icon found in the client's cache, increment ref-count and return - if (iconImplCache.contains(cacheKey)) { - HbIconImpl *ptr = iconImplCache.value(cacheKey); + if (d->iconImplCache.contains(cacheKey)) { + HbIconImpl *ptr = d->iconImplCache.value(cacheKey); ptr->incrementRefCount(); - cacheKeeper()->unref(ptr); + d->cacheKeeper.unref(ptr); #ifdef HB_ICON_CACHE_DEBUG - qDebug() << "HbIconLoader::loadMultiPieceIcon()" << "Cache hit in iconImplCache " << multiPartIconData.multiPartIconId << size; - qDebug() << "HbIconLoader::loadMultiPieceIcon : Client RefCount now = " << ptr->refCount(); + qDebug() << "HbIconLoader::loadMultiPieceIcon: Cache hit" << multiPartIconData.multiPartIconId + << size << "Client refcount now" << ptr->refCount(); #endif return ptr; } @@ -1835,56 +1954,83 @@ // Creating HbIconImpl for the consolidated icon-data returned from themeserver. icon = HbIconImplCreator::createIconImpl(iconInfo, params); if (icon) { - // Not yet in local cache (was checked before the server request) so insert. - iconImplCache.insert(cacheKey, icon); icon->setMultiPieceIcon(); -#ifdef HB_ICON_CACHE_DEBUG - qDebug() << "HbIconLoader::loadMultiPieceIcon(): " << params.iconName << " inserted into impl-cache, ref-count now = " << icon->refCount(); -#endif } - return icon; } else { - //themeserver wasn't successful in stitching of consolidated icon - multiPieceImpls.clear(); - int count = iconPathList.count(); - QVector sizeList; - for (int i = 0; i < count; i++) { - sizeList << multiPartIconData.pixmapSizes[i]; - } - -#ifdef Q_OS_SYMBIAN - //Since the consolidated icon-creation failed on themeserver, request loading of individual - //frame-items in a single IPC request to themeserver - getMultiIconImplFromServer(iconPathList, sizeList, + //Consolidated (stitched) icon could not be loaded on themeserver side, taking + //fallback path for creating the consolidated icon on the client side. + icon = createLocalConsolidatedIcon(multiPartIconData, + iconPathList, + size, aspectRatioMode, mode, - mirrored, - mirroredIconFound, options, - color, - HbIconLoader::AnyType, - HbIconLoader::AnyPurpose, - multiPieceImpls, - renderMode); -#else - //For OS other than Symbian, call HbIconLoader::loadIcon to individually load icons - for (int i = 0; i < count; i++) { - HbIconImpl *impl = loadIcon(iconPathList[i], HbIconLoader::AnyType, - HbIconLoader::AnyPurpose, - sizeList.at(i), - Qt::IgnoreAspectRatio, - QIcon::Normal, - (options | DoNotCache)); - impl->setMultiPieceIcon(); - if (impl) { - multiPieceImpls.append(impl); - } - } + color); + } + + if (icon) { + // Not yet in local cache (was checked before the server request) so insert. + d->iconImplCache.insert(cacheKey, icon); +#ifdef HB_ICON_CACHE_DEBUG + qDebug() << "HbIconLoader::loadMultiPieceIcon: " << multiPartIconData.multiPartIconId + << " inserted into local cache, client refcount now" << icon->refCount(); +#endif + } + return icon; +} -#endif +HbIconImpl * HbIconLoader::createLocalConsolidatedIcon(const HbMultiPartSizeData &multiPartIconData, + const QStringList & iconPathList, + const QSizeF &consolidatedSize, + Qt::AspectRatioMode aspectRatioMode, + QIcon::Mode mode, + const IconLoaderOptions & options, + const QColor &color) +{ + // load the icons in to QImage + HbIconLoadingParams params; + params.purpose = HbIconLoader::AnyPurpose; + params.aspectRatioMode = aspectRatioMode; + params.mode = mode; + params.color = color; + params.animator = 0; + params.mirrored = options.testFlag(HorizontallyMirrored); + params.mirroredIconFound = false; + params.mirroringHandled = false; + params.modeHandled = false; + params.renderMode = renderMode; + params.canCache = false; + params.animationCreated = false; + + QStringList::const_iterator iterFiles = iconPathList.begin(); + QStringList::const_iterator iterFilesEnd = iconPathList.end(); - return icon; + QImage finalImage(consolidatedSize.toSize(), QImage::Format_ARGB32_Premultiplied); + finalImage.fill(QColor(Qt::transparent).rgba()); + QPainter painter(&finalImage); + + for (int i=0; iterFiles != iterFilesEnd; ++iterFiles, ++i) { + + // Populate icon loading parameters + params.iconFileName = *iterFiles; + params.size = multiPartIconData.pixmapSizes[i]; + params.options = options; + params.isDefaultSize = params.size.isNull(); + + QString format = formatFromPath(params.iconFileName); + + loadLocal(params, format); + + painter.drawImage(multiPartIconData.targets[i].topLeft(), + params.image); + + params.image = QImage(); } + painter.end(); + + params.image = finalImage; + + return finishLocal(params); } inline int iconImplConsumption(HbIconImpl *icon) @@ -1893,7 +2039,7 @@ return sz.width() * sz.height() * 4; } -void CacheKeeper::ref(HbIconImpl *icon) +void HbIconLoaderPrivate::CacheKeeper::ref(HbIconImpl *icon) { int consumption = iconImplConsumption(icon); // Never hold something more than once and do not ref anything when icons @@ -1903,11 +2049,16 @@ if (!mIcons.contains(icon) && !HbInstancePrivate::d_ptr()->mDropHiddenIconData && consumption < MAX_KEEPALIVE_ITEM_SIZE_BYTES - && !iconImplCache.key(icon).isEmpty()) + && !mIconLoaderPrivate->iconImplCache.key(icon).isEmpty()) { icon->incrementRefCount(); mIcons.append(icon); mConsumption += consumption; +#ifdef HB_ICON_CACHE_DEBUG + qDebug() << "CacheKeeper::ref: Accepted" << icon->iconFileName() + << icon->keySize() << consumption + << "Total consumption now" << mConsumption; +#endif // Now do some housekeeping. while (mConsumption > MAX_KEEPALIVE_CACHE_SIZE_BYTES) { HbIconImpl *oldest = mIcons.first(); @@ -1919,16 +2070,19 @@ } } -void CacheKeeper::unref(HbIconImpl *icon) +void HbIconLoaderPrivate::CacheKeeper::unref(HbIconImpl *icon) { if (mIcons.contains(icon)) { +#ifdef HB_ICON_CACHE_DEBUG + qDebug() << "CacheKeeper::unref: Releasing" << icon->iconFileName() << icon->keySize(); +#endif mIcons.removeOne(icon); mConsumption -= iconImplConsumption(icon); icon->decrementRefCount(); } } -void CacheKeeper::clear() +void HbIconLoaderPrivate::CacheKeeper::clear() { // Get rid of all unused icons in the iconimplcache, regardless of // the icons' rendering mode. Note that the list may contain non-sgimage @@ -1952,7 +2106,7 @@ } } -void CacheKeeper::del(HbIconImpl *icon, bool sendUnloadReq) +void HbIconLoaderPrivate::CacheKeeper::del(HbIconImpl *icon, bool sendUnloadReq) { HbIconLoader::global()->removeItemInCache(icon); if (sendUnloadReq && icon->isCreatedOnServer()) { @@ -1977,7 +2131,7 @@ if (!unloadedByServer) { // Offer the icon to the cacheKeeper first. if (!noKeep) { - cacheKeeper()->ref(icon); + d->cacheKeeper.ref(icon); } // If it was accepted then the refcount was increased so stop here. if (icon->refCount() > 0) { @@ -2011,117 +2165,6 @@ } /*! - * \fn void HbIconLoader::getMultiIconImplFromServer() - * - * This function is responsible for loading individual pieces of a multi-piece icon. - * This gets called if the consolidated icon-creation process on themeserver has failed. - * This function initiates a single IPC to themeserver in which it sends out icon-parameters - * for each of the frame-items and gets back a list of HbSharedIconInfo corresponding to - * individual pieces. - * - */ -void HbIconLoader::getMultiIconImplFromServer(QStringList &multiPartIconList, - QVector &sizeList, - Qt::AspectRatioMode aspectRatioMode, - QIcon::Mode mode, - bool mirrored, - bool mirroredIconFound, - HbIconLoader::IconLoaderOptions options, - const QColor &color, - HbIconLoader::IconDataType type, - HbIconLoader::Purpose, - QVector & iconImplList, - HbRenderingMode currRenderMode) -{ - Q_UNUSED(type); - QVector posList; - // Search the client cache first before asking the server. - int count = multiPartIconList.count(); - QVector cacheKeys; - for (int i = 0; i < count; i++) { - QByteArray cacheKey = d->createCacheKeyFrom(multiPartIconList[i], - sizeList[i], - aspectRatioMode, - mode, - mirrored, - color); - cacheKeys.append(cacheKey); - // Look up in the local iconImplCache. - HbIconImpl *ptr = 0; - if (iconImplCache.contains(cacheKey)) { - ptr = iconImplCache.value(cacheKey); - // If a specific frame-item is found in local impl-cache, - // increment the ref count and remove the entry from the - // list that needs to be sent to server. - ptr->incrementRefCount(); - cacheKeeper()->unref(ptr); -#ifdef HB_ICON_CACHE_DEBUG - qDebug() << "HbIconLoader::getMultiIconImplFromServer()" << "Cache hit in iconImplCache "; - qDebug() << "HbIconLoader::getMultiIconImplFromServer : Client RefCount now = " << ptr->refCount(); -#endif - iconImplList.append(ptr); - multiPartIconList.replace(i, QString()); - } else { - posList << i; - } - } - for (int i = 0; i < count; i++) { - if (multiPartIconList[i].isEmpty()) { - multiPartIconList.removeAt(i); - sizeList.remove(i); - i--; - } - } - - // If no hit in local cache, ask server for all the pieces' information. - if (count > 0) { - HbSharedIconInfoList iconInfoList = HbThemeClient::global()->getMultiIconInfo(multiPartIconList, sizeList, - aspectRatioMode, mode, mirrored, options, color, currRenderMode); - - HbIconImpl *impl = 0; - - HbIconLoadingParams params; - - params.aspectRatioMode = aspectRatioMode; - params.mode = mode; - params.mirrored = mirrored; - params.mirroredIconFound = mirroredIconFound; - - for (int i = 0; i < count; i++) { - params.iconFileName = multiPartIconList[i]; - params.size = sizeList.at(i); - impl = HbIconImplCreator::createIconImpl(iconInfoList.icon[i], params); - if (impl) { - // Not yet in local cache (was checked before the server request) so insert. - iconImplCache.insert(cacheKeys[i], impl); -#ifdef HB_ICON_CACHE_DEBUG - qDebug() << "HbIconLoader::getMultiIconImplFromServer(): " - << params.iconName << " inserted into impl-cache, ref-count now = " << impl->refCount(); -#endif - } else { - //If for some reason individual frame-item's loading in themeserver fails, use HbIconLoader::loadIcon() - // as a fallback option to load it. - impl = loadIcon(multiPartIconList[i], - HbIconLoader::AnyType, - HbIconLoader::AnyPurpose, - sizeList.at(i), - Qt::IgnoreAspectRatio, - QIcon::Normal, - (options | DoNotCache)); - } - - if (impl) { - impl->setMultiPieceIcon(); - if (posList.count() > 0) { - iconImplList.insert(posList.front(), impl); - posList.pop_front(); - } - } - } - } -} - -/*! * HbIconLoader::unLoadMultiIcon * * This function initiates a single IPC to unload each of the frame-items in a multi-piece icon. @@ -2136,10 +2179,10 @@ foreach(HbIconImpl * impl, multiPieceImpls) { impl->decrementRefCount(); if (impl->refCount() == 0) { - int rem = iconImplCache.remove(iconImplCache.key(impl)); - if (rem > 0) { -#ifdef HB_ICON_TRACES - qDebug() << "HbIconLoader::unLoadMultiIcon :Removed from HbIconImpl Cache " << rem << impl->iconFileName() << impl->keySize(); + if (d->iconImplCache.remove(d->iconImplCache.key(impl)) > 0) { +#ifdef HB_ICON_CACHE_DEBUG + qDebug() << "HbIconLoader::unLoadMultiIcon: Removed from cache" + << impl->iconFileName() << impl->keySize(); #endif } if (impl->isCreatedOnServer()) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbiconloader_p.h --- a/src/hbcore/image/hbiconloader_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbiconloader_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -153,6 +153,7 @@ void removeFrameDrawerInfo(HbFrameDrawerPrivate *frameDrawer); void freeGpuIconData(); + void freeIconData(); void removeItemInCache(HbIconImpl *iconImpl); void handleForegroundLost(); @@ -164,6 +165,7 @@ private slots: void themeChange(const QStringList &updatedFiles); + void themeChangeFinished(); void destroy(); void updateLayoutDirection(); void localLoadReady(const HbIconLoadingParams &loadParams, void *reqParams); @@ -184,23 +186,20 @@ void getIconFromServerAsync(HbIconLoadingParams ¶ms, HbAsyncIconLoaderCallback callback, void *callbackParam); - void getMultiIconImplFromServer(QStringList &multiPartIconList, - QVector &sizeList, - Qt::AspectRatioMode aspectRatioMode, - QIcon::Mode mode, - bool mirrored, - bool mirroredIconFound, - HbIconLoader::IconLoaderOptions options, - const QColor &color, - HbIconLoader::IconDataType type, - HbIconLoader::Purpose, - QVector & iconImplList, - HbRenderingMode renderMode); - + + HbIconImpl * createLocalConsolidatedIcon(const HbMultiPartSizeData &multiPartIconData, + const QStringList & iconPathList, + const QSizeF &consolidatedSize, + Qt::AspectRatioMode aspectRatioMode, + QIcon::Mode mode, + const IconLoaderOptions & options, + const QColor &color); + void loadSvgIcon(HbIconLoadingParams ¶ms); void loadPictureIcon(HbIconLoadingParams ¶ms); void loadAnimatedIcon(HbIconLoadingParams ¶ms, const QString &format); void loadPixmapIcon(HbIconLoadingParams ¶ms, const QString &format); + void loadNvgIcon(HbIconLoadingParams ¶ms); QList< HbFrameDrawerPrivate *> frameDrawerInstanceList; QList< HbIconEngine *> iconEngineList; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbicontheme.cpp --- a/src/hbcore/image/hbicontheme.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbicontheme.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -76,10 +76,7 @@ m_name = iniParser.value("Name").toString().trimmed(); iniParser.endGroup(); } else { -#ifdef HB_THEME_SERVER_TRACES - qDebug() << "HbIconTheme: Can't access file: " << indexFileName; -#endif - return; + THEME_GENERIC_DEBUG() << "HbIconTheme: Can't access file: " << indexFileName; } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbnvgrasterizer_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/image/hbnvgrasterizer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,222 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#include "hbnvgrasterizer_p.h" + +#if defined (HB_NVG_CS_ICON) +#include +// Note: Cases of the following two directory names intentionally differ to +// match the cases of the corresponding directories in Symbian 4. +#include +#include + +struct HbNvgAspectRatioSettings +{ + TNvgAlignStatusType nvgAlignStatusAndAspectRatio; + TNvgMeetOrSliceType type; +}; +#endif //HB_NVG_CS_ICON + +/*! + \fn mapKeyAspectRatioToNvgAspectRatio() + \a aspectRatio + */ +HbNvgAspectRatioSettings mapKeyAspectRatioToNvgAspectRatio( + Qt::AspectRatioMode aspectRatio) +{ + HbNvgAspectRatioSettings settings; + switch(aspectRatio) { + + case Qt::IgnoreAspectRatio: { + settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_None; + settings.type = ENvgMeet; + break; + } + case Qt::KeepAspectRatio: { + settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_XmidYmid; + settings.type = ENvgMeet; + break; + } + case Qt::KeepAspectRatioByExpanding: { + settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_XmidYmid; + settings.type = ENvgSlice; + break; + } + default: { + settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_XmidYmid; + settings.type = ENvgMeet; + break; + } + } + return settings; +} + +/*! + \fn mapToVgiDisplayFormat() + \a imageFormat + */ +VGIColorBufferFormat mapToVgiDisplayFormat(QImage::Format imageFormat) +{ + VGIColorBufferFormat format = VGI_COLOR_BUFFER_FORMAT_ARGB8888_PRE; + switch(imageFormat) + { + case QImage::Format_Mono: + case QImage::Format_RGB32: + case QImage::Format_ARGB32: + format = VGI_COLOR_BUFFER_FORMAT_ARGB8888; + break; + case QImage::Format_ARGB32_Premultiplied: + format = VGI_COLOR_BUFFER_FORMAT_ARGB8888_PRE; + break; + case QImage::Format_RGB16: + case QImage::Format_ARGB8565_Premultiplied: + case QImage::Format_RGB666: + case QImage::Format_ARGB6666_Premultiplied: + case QImage::Format_RGB555: + case QImage::Format_ARGB8555_Premultiplied: + break; + case QImage::Format_RGB888: + format = VGI_COLOR_BUFFER_FORMAT_RGB888; + break; + case QImage::Format_RGB444: + case QImage::Format_ARGB4444_Premultiplied: + case QImage::Format_Invalid: + break; + } + return format; +} + +static HbNvgRasterizer *nvgRasterizer = 0; + +HbNvgRasterizer* HbNvgRasterizer::global() +{ + if (!nvgRasterizer) { + nvgRasterizer = new HbNvgRasterizer(); + } + return nvgRasterizer; +} + +HbNvgRasterizer::HbNvgRasterizer() : vgiSymbianInit(false), nvgEngine(0) +{ +} + +HbNvgRasterizer::~HbNvgRasterizer() +{ + terminate(); +} + +bool HbNvgRasterizer::initialize(int width, int height) +{ + vgiSymbianInit = false; + + TInt err = VGISymbianInitialize( TSize(width, height), VGI_COLORSPACE_SRGB ); + if( err == KErrAlreadyExists || err == KErrNone) { + vgiSymbianInit = true; + } + + if (vgiSymbianInit) { + TRAP(err, nvgEngine = CNvgEngine::NewL()); + if (err != KErrNone) { + return (vgiSymbianInit = false); + } + } + + return vgiSymbianInit; +} + +bool HbNvgRasterizer::terminate() +{ + if (vgiSymbianInit) { + VGISymbianTerminate(); + vgiSymbianInit = false; + } + + return true; +} + +bool HbNvgRasterizer::rasterize(const QByteArray &nvgData, + const QSizeF &renderSize, + Qt::AspectRatioMode aspectRatioMode, + QImage & destination, + QImage::Format imageFormat) +{ + if (destination.isNull()) { + destination = QImage(renderSize.toSize(), imageFormat); + } + + TUint8 * imageData = destination.bits(); + TInt stride = destination.bytesPerLine(); + + return rasterize(nvgData, renderSize, aspectRatioMode, imageData, stride, imageFormat); +} + +bool HbNvgRasterizer::rasterize(const QByteArray &nvgData, + const QSizeF &renderSize, + Qt::AspectRatioMode aspectRatioMode, + void * destination, int stride, + QImage::Format imageFormat) +{ + initialize(renderSize.width(), renderSize.height()); + bool isIconCreated = false; + TSize surfaceSize(TSize(renderSize.width(), renderSize.height())); + + if (!vgiSymbianInit) { + if (!initialize(surfaceSize.iWidth, surfaceSize.iHeight)) { + return isIconCreated; + } + } + + TInt err = VGISymbianResize(surfaceSize); + if(err != KErrNone) { + return isIconCreated; + } + + HbNvgAspectRatioSettings settings = mapKeyAspectRatioToNvgAspectRatio(aspectRatioMode); + nvgEngine->SetPreserveAspectRatio(settings.nvgAlignStatusAndAspectRatio, settings.type); + + + nvgEngine->SetBackgroundColor(0xFFFFFF00); + + TPtr8 data((unsigned char*)nvgData.data(), nvgData.length(), nvgData.length()); + err = nvgEngine->DrawNvg(data, surfaceSize, 0, 0); + if(err !=KErrNone) { + return isIconCreated; + } + + //copy the data from the surface + VGIColorBufferFormat format = (VGIColorBufferFormat)mapToVgiDisplayFormat(imageFormat); + + err = VGICopyToTarget(format, stride, destination, 0, NULL, VGI_COPY_TRANSPARENT_PIXELS); + if (err == VGI_OK) { + isIconCreated = true; + } + + // destroy the previous surface, + // as we don't have a way to clear the surface + terminate(); + + return isIconCreated; +} + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbnvgrasterizer_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/image/hbnvgrasterizer_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#ifndef HBNVGRASTERIZER_P_H_ +#define HBNVGRASTERIZER_P_H_ + + +#include +#include +class CNvgEngine; + +class HB_CORE_PRIVATE_EXPORT HbNvgRasterizer +{ +public : + ~HbNvgRasterizer(); + + static HbNvgRasterizer* global(); + + bool rasterize(const QByteArray &nvgData, + const QSizeF &renderSize, + Qt::AspectRatioMode aspectRatioMode, + void * destination, int stride, + QImage::Format imageFormat = QImage::Format_ARGB32_Premultiplied); + + bool rasterize(const QByteArray &nvgData, + const QSizeF &renderSize, + Qt::AspectRatioMode aspectRatioMode, + QImage & destination, + QImage::Format imageFormat = QImage::Format_ARGB32_Premultiplied); + + bool initialize(int width, int height); + bool terminate(); + +private: + HbNvgRasterizer(); + bool vgiSymbianInit; + CNvgEngine * nvgEngine; +}; + +#endif // end of HBNVGRASTERIZER_P_H_ + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbpixmapiconimpl_p.cpp --- a/src/hbcore/image/hbpixmapiconimpl_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbpixmapiconimpl_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -40,13 +40,14 @@ QPixmap currentPixmap; }; -HbPixmapIconImpl::HbPixmapIconImpl(HbSharedIconInfo iconData, QString &name, +HbPixmapIconImpl::HbPixmapIconImpl(HbSharedIconInfo iconData, + const QString &name, const QSizeF &keySize, Qt::AspectRatioMode aspectRatioMode, QIcon::Mode mode, bool mirrored, - HbRenderingMode renderMode): - HbIconImpl(iconData, + HbRenderingMode renderMode) + : HbIconImpl(iconData, name, keySize, aspectRatioMode, @@ -59,16 +60,38 @@ pixmapIconRenderer = new HbPixmapIconRenderer(pixmapData, this); } -HbPixmapIconImpl::HbPixmapIconImpl(const QPixmap &pixmap, const QString &name): - pixmapData(pixmap), +HbPixmapIconImpl::HbPixmapIconImpl(const QPixmap &pixmap, + const QString &name) + : pixmapData(pixmap), pixmapIconRenderer(0) { pixmapIconRenderer = new HbPixmapIconRenderer(pixmapData, this); + fileName = name; + cacheKeySize = size(); + renderMode = ESWRendering; + createdOnServer = false; aspectRatioMode = Qt::KeepAspectRatio; mode = QIcon::Normal; mirrored = false; +} + +HbPixmapIconImpl::HbPixmapIconImpl(const QPixmap &pixmap, + const QString &name, + const QSizeF &keySize, + Qt::AspectRatioMode aspectRatioMode_, + QIcon::Mode mode_, + bool mirrored_) + : pixmapData(pixmap), + pixmapIconRenderer(0) +{ + pixmapIconRenderer = new HbPixmapIconRenderer(pixmapData, this); + fileName = name; + cacheKeySize = keySize; + renderMode = ESWRendering; createdOnServer = false; - fileName = name; + aspectRatioMode = aspectRatioMode_; + mode = mode_; + mirrored = mirrored_; } HbPixmapIconImpl::~HbPixmapIconImpl() diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbpixmapiconimpl_p.h --- a/src/hbcore/image/hbpixmapiconimpl_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbpixmapiconimpl_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -34,13 +34,23 @@ class HB_AUTOTEST_EXPORT HbPixmapIconImpl : public HbIconImpl { public : - HbPixmapIconImpl(HbSharedIconInfo iconData, QString &name, + HbPixmapIconImpl(HbSharedIconInfo iconData, + const QString &name, const QSizeF &keySize, Qt::AspectRatioMode aspectRatioMode, QIcon::Mode mode, bool mirrored, HbRenderingMode renderMode); - explicit HbPixmapIconImpl(const QPixmap &pixmap, const QString &name = QString()); + + HbPixmapIconImpl(const QPixmap &pixmap, const QString &name = QString()); + + HbPixmapIconImpl(const QPixmap &pixmap, + const QString &name, + const QSizeF &keySize, + Qt::AspectRatioMode aspectRatioMode, + QIcon::Mode mode, + bool mirrored); + ~HbPixmapIconImpl(); QPixmap pixmap(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/hbsgimageiconimpl_p.cpp --- a/src/hbcore/image/hbsgimageiconimpl_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/hbsgimageiconimpl_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -261,7 +261,7 @@ QPaintEngine *paintEngine = painter->paintEngine(); if (!paintEngine || paintEngine->type() != QPaintEngine::OpenVG - || maskApplied || pixmapIconRenderer) { + || maskApplied || pixmapIconRenderer || (mode == QIcon::Selected)) { // going to pixmap, vgimage may not be required any more if (vgImageRenderer) { delete vgImageRenderer; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/image/image.pri --- a/src/hbcore/image/image.pri Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/image/image.pri Fri Sep 17 08:32:10 2010 +0300 @@ -37,7 +37,7 @@ PRIVATE_HEADERS += $$PWD/hbframedrawer_p.h PRIVATE_HEADERS += $$PWD/hbframebackground_p.h PRIVATE_HEADERS += $$PWD/hbicon_p.h -PRIVATE_HEADERS += $$PWD/hbiconanimation_p.h +PRIVATE_HEADERS += $$PWD/hbiconanimation_p.h PRIVATE_HEADERS += $$PWD/hbiconanimator_p.h PRIVATE_HEADERS += $$PWD/hbiconanimationdatatypes_p.h PRIVATE_HEADERS += $$PWD/hbiconanimationmanager_p.h @@ -78,15 +78,17 @@ symbian { nvg { - PRIVATE_HEADERS += $$PWD/hbnvgiconimpl_p.h - PRIVATE_HEADERS += $$PWD/hbeglstate_p.h + PRIVATE_HEADERS += $$PWD/hbnvgiconimpl_p.h + PRIVATE_HEADERS += $$PWD/hbeglstate_p.h PRIVATE_HEADERS += $$PWD/hbvgimageiconrenderer_p.h - - SOURCES += $$PWD/hbnvgiconimpl_p.cpp + PRIVATE_HEADERS += $$PWD/hbnvgrasterizer_p.h + + SOURCES += $$PWD/hbnvgiconimpl_p.cpp SOURCES += $$PWD/hbeglstate.cpp - SOURCES += $$PWD/hbvgimageiconrenderer.cpp + SOURCES += $$PWD/hbvgimageiconrenderer.cpp + SOURCES += $$PWD/hbnvgrasterizer_p.cpp } - sgimage { + sgimage { SOURCES += $$PWD/hbsgimageiconimpl_p.cpp PRIVATE_HEADERS += $$PWD/hbsgimageiconimpl_p.h } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/indicatorplugins/hbindicatorinterface.cpp --- a/src/hbcore/indicatorplugins/hbindicatorinterface.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/indicatorplugins/hbindicatorinterface.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -170,6 +170,7 @@ @param data Data sent by indicator. */ +/// \cond class HbIndicatorInterfacePrivate { public: @@ -191,6 +192,7 @@ HbIndicatorInterface::Category category; HbIndicatorInterface::InteractionTypes interactionTypes; }; +/// \endcond /*! Destructor diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/indicatorplugins/hbindicatorplugininterface.cpp --- a/src/hbcore/indicatorplugins/hbindicatorplugininterface.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/indicatorplugins/hbindicatorplugininterface.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -27,38 +27,69 @@ /*! \class HbIndicatorPluginInterface - \brief HbIndicatorPluginInterface is an abstract base class for indicator plugins. + \brief HbIndicatorPluginInterface is an abstract interface class for indicator plugins. + + Indicators are activated, deactivated and updated using HbIndicator class. Indicator + framework takes care of displaying indicators in satus bar and/or indicator menu. + + Indicator plugins contain implentation of indicators. Single pluging can implement + one or several indicators. HbIndicatorInterface defines functionality required from an + indicator implementation. - Indicators are displayed in the status indicator area and/or in universal indicator popup. - Applications can create own indicators by implementing this plugin interface and creating - at least one class inherited from HbIndicatorInterface. + Indicators are identified by a string. By convention the string should follow + inverted domain name format. For example com.nokia.hb.indicator.xxx/1.0. + Function indicatorTypes() returns a list of indicators the plugin implements. + + Appending version number into indicator type string enables versioning. + A plugin should handle versioning by returning indicator type string for all versions it + implements in indicatorTypes() and then in createIndicator() create an indicator + instance compatible with the version requested. This could always be the latest version if it + is backwards compatible with older versions. Indicator framework is unaware of version + numbers in type strings. It performs string comparison of the whole string when searching + for a plugin. - One plugin can implement one or more indicators. Indicators are identified by a type string. - The indicator types the plugin implements must be returned from the function - indicatorTypes(). The indicator is created, when requested by the client, - using createIndicator(). + Plugins are responsible for maintaining system security for their own part. If plugin + performs operations that may compromise security or want's to limit access to specific + clients, it should check client security credentials in accessAllowed() function. + Indicator framework calls this function before activating/deactivating indicators. + + \section _platform_hbindicatorplugin Platform-specific implementation notes for HbIndicatorPluginInterface + + \subsection _nonsymbian Non-Symbian + + Indicator plugins are loaded into client process. Plugin executables are searched from + application's current directory and HB_PLUGINS_DIR/indicators directory. - Indicator plugin may limit access to an indicator. Before activating or deactivating an - indicator, the framework calls accessAllowed() allowing the plugin to inspect client's security - credentials. By returning false, the plugin denies client access. + \subsection _symbian Symbian + + Plugins are run by a server with platform security capabilities ProtServ, SwEvent, + TrustedUI and ReadDeviceData. If a plugin doesn't have required platform security + capabilities it will not load. - Plugins are loaded by a Device Dialog server. For information on installing plugins, refer to - HbDeviceDialogPlugin documentation. + Device dialog plugin stubs (.qtplugin) are searched from /resource/plugins/indicators directory + and executables in /sys/bin directory in each drive. - here's an example of how to create a simple indicator plugin. - If plugin implements only one indicator, the pluginInterface class can also inherit from + \section _example_code Example code + + Below is an example of how to create a simple indicator plugin. + + If plugin implements only one indicator, plugin can also inherit from HbIndicatorInterface. Example header-file: - \snippet{unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.h,1} + \snippet{tsrc\unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.h,1} Example source-file: - \snippet{unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.cpp,1} + \snippet{tsrc\unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.cpp,1} + + If more than one indicators are implemented inside a plugin, plugin inherits from HbIndicatorPluginInterface. + + \snippet{tsrc\unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.h,2} - If more than one indicators are implemented inside a plugin, createIndicator should create new object - based on HbIndicatorInterface. - \snippet{unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.cpp,2} + And createIndicator should create new object based on indicator type. - \sa HbIndicator, HbIndicatorInterface, HbDeviceDialogPlugin + \snippet{tsrc\unit\unittest_hbindicator\codesnippetplugin\hbcodesnippetplugin.cpp,2} + + \sa HbIndicator, HbIndicatorInterface \stable \hbcore @@ -67,7 +98,7 @@ /*! \fn virtual QStringList HbIndicatorPluginInterface::indicatorTypes() const = 0 - Should return the indicator types this plugin implements. + Should return the indicator types the plugin implements. */ /*! @@ -88,12 +119,15 @@ /*! \fn virtual HbIndicatorInterface *HbIndicatorPluginInterface::createIndicator(const QString &indicatorType) = 0 - creates an indicator of type \a indicatorType. Ownership is passed to the caller. + + Creates an indicator of type \a indicatorType. Ownership is passed to the caller. + \sa HbIndicatorPluginInterface::indicatorTypes() */ /*! \fn virtual int HbIndicatorPluginInterface::error() const = 0 + Returns the last error code. The code is cleared when any other API function than error() is called. */ diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputcontextproxy.cpp --- a/src/hbcore/inputfw/hbinputcontextproxy.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputcontextproxy.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,6 +31,7 @@ #include #include #include +#include /*! @alpha @@ -113,7 +114,7 @@ \reimp */ bool HbInputContextProxy::filterEvent(const QEvent *event) -{ +{ if (mTarget) { bool focusLocked = mTarget->d_func()->mFocusLocked; if (event->type() == QEvent::CloseSoftwareInputPanel && !focusLocked) { @@ -165,6 +166,15 @@ } } return mTarget->filterEvent(event); + } else { + if (event->type() == QEvent::RequestSoftwareInputPanel) { + // There is no mTarget. It means that someone is displaying something before + // the input framework was initialized. Acknowledge the situation so that + // the initializer knows to resend it. See HbApplication::initialize() + // method. The empty proxy is installed there. + HbInputMethodNull::Instance()->setDelayedPanelRequest(true); + return true; + } } return false; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputeditorinterface.cpp --- a/src/hbcore/inputfw/hbinputeditorinterface.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputeditorinterface.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -64,7 +64,9 @@ HbEditorInterface::HbEditorInterface(QObject *editor) { mPrivate = HbEditorInterfacePrivateCache::instance()->attachEditor(editor, this); - connect(mPrivate, SIGNAL(destroyed(QObject *)), this, SLOT(backendDestroyed(QObject *))); + if (mPrivate) { + connect(mPrivate, SIGNAL(destroyed(QObject *)), this, SLOT(backendDestroyed(QObject *))); + } } /*! @@ -294,7 +296,7 @@ if (index >= 0) { mPrivate->mActions.removeAt(index); disconnect(action, SIGNAL(destroyed(QObject *)), - HbEditorInterfacePrivateCache::instance(), SLOT(actionDestroyed(QObject * object))); + HbEditorInterfacePrivateCache::instance(), SLOT(actionDestroyed(QObject *))); } int pos = mPrivate->mActions.indexOf(before); @@ -327,7 +329,7 @@ mPrivate->lock(); mPrivate->mActions.removeAll(action); disconnect(action, SIGNAL(destroyed(QObject *)), - HbEditorInterfacePrivateCache::instance(), SLOT(actionDestroyed(QObject * object))); + HbEditorInterfacePrivateCache::instance(), SLOT(actionDestroyed(QObject *))); mPrivate->unlock(); HbEditorInterfacePrivateCache::instance()->notifyValueChanged(mPrivate->mHostEditor); } @@ -618,7 +620,7 @@ */ bool HbEditorInterface::isNumericEditor() const { - return ((mPrivate->inputMethodHints() & (Qt::ImhDigitsOnly | Qt::ImhDialableCharactersOnly | Qt::ImhFormattedNumbersOnly)) && + return mPrivate && ((mPrivate->inputMethodHints() & (Qt::ImhDigitsOnly | Qt::ImhDialableCharactersOnly | Qt::ImhFormattedNumbersOnly)) && !(mPrivate->inputMethodHints() & (Qt::ImhLowercaseOnly | Qt::ImhUppercaseOnly))); } @@ -627,7 +629,7 @@ */ bool HbEditorInterface::isPredictionAllowed() const { - return !(mPrivate->inputMethodHints() & Qt::ImhNoPredictiveText); + return mPrivate && !(mPrivate->inputMethodHints() & Qt::ImhNoPredictiveText); } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputeditorinterface_p.cpp --- a/src/hbcore/inputfw/hbinputeditorinterface_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputeditorinterface_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,6 +31,8 @@ #include #include +#include "hbwidget.h" + void HbEditorInterfacePrivate::lock() { mMutex.lock(); @@ -146,7 +148,9 @@ // Check whether the connected object is Hb editor, QLineEdit or QTextEdit, // and if yes, connect its cursorPositionChanged() signal to this item's cursorPositionChanged() signal - if (editor->inherits("HbAbstractEdit")) { + HbWidget *hbWidget = qobject_cast(editor); + if (hbWidget && (hbWidget->flags() & QGraphicsItem::ItemAcceptsInputMethod)) { + // We connect blindly for now without knowing whether it actually implements the signal. connect(editor, SIGNAL(cursorPositionChanged(int, int)), newItem, SIGNAL(cursorPositionChanged(int, int))); } else { QLineEdit *lineedit = qobject_cast(editor); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputextrauserdictionary.cpp --- a/src/hbcore/inputfw/hbinputextrauserdictionary.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputextrauserdictionary.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,6 +36,10 @@ const int HbExtraDictMaxFrequency = 255; +const QString RomanHundreds[10] = {"C","CC","CCC","CD","D","DC","DCC","DCCC","CM","M"}; +const QString RomanTens[9] = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"}; +const QString RomanOnes[9] = {"I","II","III","IV","V","VI","VII","VIII","IX"}; + /*! @proto @hbcore @@ -99,9 +103,8 @@ QString HbExtraUserDictionaryPrivate::name() const { - QString num; - num.setNum(id); - + + QString num(convertToRomanNumerals(id)); return QString(KExtraUserDictKeyBase) + num; } @@ -110,6 +113,40 @@ return HbInputSettingProxy::extraDictionaryPath() + QDir::separator() + name() + QString(KExtraFileExt); } +QString HbExtraUserDictionaryPrivate::convertToRomanNumerals(int id) const +{ + int numId = id; + QString retNum; + + // Append Roman Thousand's to the string + int index = 10; + int count = numId/1000; + for (int i = 0; i < count; i++) { + retNum.append(RomanHundreds[index-1]); + } + + // Append Roman Hundred's to the string + numId = numId % 1000; + index = numId / 100; + if (index) { + retNum.append(RomanHundreds[index - 1]); + } + + // Append Roman Ten's to the string + numId = numId % 100; + index = numId / 10; + if (index) { + retNum.append(RomanTens[index - 1]); + } + // Append Roman single digit numerals to the string + numId = numId % 10; + index = numId / 1; + if (index) { + retNum.append(RomanOnes[index - 1]); + } + return retNum; +} + bool HbExtraUserDictionaryPrivate::save(QString fileName) { QFile file(fileName); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputextrauserdictionary_p.h --- a/src/hbcore/inputfw/hbinputextrauserdictionary_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputextrauserdictionary_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -72,6 +72,7 @@ bool createSharedBlock(int aSize); QString name() const; QString fileName() const; + QString convertToRomanNumerals(int id) const; void removeEntry(int index); void addEntry(int index, const QString &newWord); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputfilter.cpp --- a/src/hbcore/inputfw/hbinputfilter.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputfilter.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -52,6 +52,7 @@ */ void HbInputFilter::filterString(const QString &in, QString &out) { + out = QString(); for (int i = 0; i < in.length(); i++) { if (filter(in[i])) { out.append(in[i]); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputfocusobject.cpp --- a/src/hbcore/inputfw/hbinputfocusobject.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputfocusobject.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -23,22 +23,19 @@ ** ****************************************************************************/ #include "hbinputfocusobject.h" +#include "hbinputfocusobject_p.h" #include -#include +#include #include #include #include #include -#include -#include #include "hbinputmethod.h" -#include "hbinputeditorinterface.h" #include "hbinputvkbhost.h" #include "hbinputstandardfilters.h" #include "hbdeviceprofile.h" -#include "hbinpututils.h" #include "hbnamespace_p.h" #include "hbmainwindow.h" #include "hbevent.h" @@ -46,73 +43,52 @@ #include "hbinputmainwindow_p.h" /*! -@alpha +@beta @hbcore \class HbInputFocusObject \brief A helper class for accessing editor widget in abstract way. -This class is input method side API for accessing editor widgets. It was added because -in some cases Qt's QInputMethodEvent/inputMethodQuery system is not enough and direct -access via type casting between QWidget and QGraphiscWidget based editors is needed. -Focus object hides those cases behind a convinience API. +This class is input method side API for accessing editor widgets. It hides +the details of performing editor related operations, such as sending input +method events, querying editor geometry, querying editor attributes and so on. +It implements a collection of convenience methods for most commonly used +editor operations. This class is purely a convenience or helper type of class in nature. Everything -it does, can be done directly in input method code as well. It just wraps -most commonly used operations behind one API to avoid duplicate code. +it does, can be done directly in input method code as well. The benefit from using +this class is that an input method implementation doesn't need to care whether +the focused editor is QWidget or QGraphicsWidget based (or proxied QWidget). -Application developers should never need to use this class, it is for input method developers only. +Application developers typically do not need this class, it is for input method +developers only. + +The active focus object can be accessed through HbInputMethod::focusObject() +method. \sa HbEditorInterface +\sa HbInputMethod */ /// @cond -/* -This function ensures cursor visibility for known editor types. +/*! +\internal +Returns main window in case the editor is QGraphicsObject based and lives +inside HbGraphicsScene. */ -void ensureCursorVisible(QObject *widget) -{ - if (widget) { - QTextEdit *textEdit = qobject_cast(widget); - if (textEdit) { - textEdit->ensureCursorVisible(); - } - } -} - -class HbInputFocusObjectPrivate -{ - Q_DECLARE_PUBLIC(HbInputFocusObject) - -public: - HbInputFocusObjectPrivate(QObject *focusedObject) - : mFocusedObject(focusedObject), - mEditorInterface(focusedObject) - {} - - HbMainWindow *mainWindow() const; - -public: - HbInputFocusObject *q_ptr; - QPointer mFocusedObject; - HbEditorInterface mEditorInterface; - QString mPreEditString; -}; - HbMainWindow *HbInputFocusObjectPrivate::mainWindow() const { - QWidget *qWidgetObject = qobject_cast(mFocusedObject); QGraphicsObject *graphicsObject = 0; // check for graphics view related widgets. - if (qWidgetObject) { - if (qWidgetObject->graphicsProxyWidget()) { - graphicsObject = qWidgetObject->graphicsProxyWidget(); + if (mWidget) { + if (mWidget->graphicsProxyWidget()) { + graphicsObject = mWidget->graphicsProxyWidget(); } else { return HbInputMainWindow::instance(); } } else { - graphicsObject = qobject_cast(mFocusedObject); + graphicsObject = mGraphicsObject; } if (graphicsObject) { @@ -132,6 +108,20 @@ return 0; } +/*! +\internal +Ensures cursor visibility for known editor types. +*/ +void HbInputFocusObjectPrivate::ensureCursorVisible(QObject *widget) +{ + if (widget) { + QTextEdit *textEdit = qobject_cast(widget); + if (textEdit) { + textEdit->ensureCursorVisible(); + } + } +} + /// @endcond HbInputFocusObject::HbInputFocusObject(QObject *focusedObject) @@ -141,6 +131,17 @@ d->q_ptr = this; if (focusedObject) { + if (focusedObject->isWidgetType()) { + d->mWidget = qobject_cast(focusedObject); + } else { + QGraphicsProxyWidget *proxy = qobject_cast(focusedObject); + if (proxy) { + d->mWidget = proxy->widget(); + } else { + d->mGraphicsObject = qobject_cast(focusedObject); + } + } + HbEvent *event = new HbEvent(HbEvent::InputMethodFocusIn); QCoreApplication::sendEvent(focusedObject, event); delete event; @@ -155,11 +156,10 @@ HbInputFocusObject::~HbInputFocusObject() { - Q_D(HbInputFocusObject); - - if (d->mFocusedObject) { + QObject *obj = object(); + if (obj) { HbEvent *event = new HbEvent(HbEvent::InputMethodFocusOut); - QCoreApplication::postEvent(d->mFocusedObject, event); + QCoreApplication::postEvent(obj, event); } delete d_ptr; @@ -204,7 +204,8 @@ } } - if (d->mFocusedObject) { + QObject *obj = object(); + if (obj) { if (event.type() == QEvent::InputMethod) { QInputContext *ic = qApp->inputContext(); QInputMethodEvent *imEvent = static_cast(&event); @@ -214,7 +215,7 @@ // Currently in Qt, QTextEdit doesn't ensure cursor visibility // in case we are sending text in the form of QInputMethodEvent. So we need // to call QTextEdit:ensureCursorVisible() here till we get a fix from Qt. - ensureCursorVisible(d->mFocusedObject); + d->ensureCursorVisible(obj); } else { QInputContext *ic = qApp->inputContext(); if (ic && ic->focusWidget()) { @@ -240,31 +241,29 @@ } } - if (d->mFocusedObject) { - QApplication::postEvent(d->mFocusedObject, &event); + QObject *obj = object(); + if (obj) { + QApplication::postEvent(obj, &event); } } /*! -Passes input method query to focused editor. +Passes input method query to focused editor widget. */ QVariant HbInputFocusObject::inputMethodQuery(Qt::InputMethodQuery query) const { Q_D(const HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); - if (graphicsObject && graphicsObject->scene()) { - return graphicsObject->scene()->inputMethodQuery(query); + QGraphicsObject *graphicsObject = d->mGraphicsObject; + if (graphicsObject) { + if (graphicsObject->scene()) { + return graphicsObject->scene()->inputMethodQuery(query); + } + + return QVariant(); } - // check if QWidget is embedded as a proxy in scene. If yes try to get details - // from the scene. - QWidget *widget = qobject_cast(d->mFocusedObject); - QGraphicsProxyWidget *pw = HbInputUtils::graphicsProxyWidget(widget); - if (pw && pw->scene()) { - return pw->scene()->inputMethodQuery(query); - } - + QWidget *widget = d->mWidget; if (widget) { // QWidget returns microfocus in local coordinate. // we need to map it to global coordinate. @@ -343,11 +342,13 @@ { Q_D(HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); + QGraphicsObject *graphicsObject = d->mGraphicsObject; if (!graphicsObject) { - QWidget *widget = qobject_cast(d->mFocusedObject); + QWidget *widget = d->mWidget; if (widget) { - if (!(graphicsObject = HbInputUtils::graphicsProxyWidget(widget))) { + if (widget->graphicsProxyWidget()) { + graphicsObject = widget->graphicsProxyWidget(); + } else { widget->clearFocus(); return; } @@ -399,33 +400,20 @@ { Q_D(const HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); + QGraphicsObject *graphicsObject = d->mGraphicsObject; if (!graphicsObject) { - QWidget *widget = qobject_cast(d->mFocusedObject); + QWidget *widget = d->mWidget; if (widget) { - // check if widget is inside a proxy. - QGraphicsProxyWidget *pw = HbInputUtils::graphicsProxyWidget(widget); + // Check if widget is inside a proxy. + QGraphicsProxyWidget *pw = widget->graphicsProxyWidget(); if (pw) { - // check if we are pointing to the toplevel - // proxy widget, if not then we must check for - // the widgets window and see if it is a proxy. - if (pw->widget() == widget) { - graphicsObject = pw; - } else if (pw->widget() == widget->window()) { - // focused object is not a proxy but it is - // inside a proxy, query to proxy about - // the focused objects rect. - QRectF rect = pw->subWidgetRect(widget); - rect.translate(pw->scenePos()); - return rect; - } + graphicsObject = pw; } else { return QRectF(widget->mapToGlobal(QPoint(0, 0)), widget->size()); } } } - // we need to find the editor which is inside if (graphicsObject) { return QRectF(graphicsObject->scenePos(), graphicsObject->boundingRect().size()); } @@ -442,7 +430,7 @@ Q_D(const HbInputFocusObject); QRectF rect = inputMethodQuery(Qt::ImMicroFocus).toRectF(); - QGraphicsObject *editorWidget = qobject_cast(d->mFocusedObject); + QGraphicsObject *editorWidget = d->mGraphicsObject; if (editorWidget) { rect = editorWidget->mapRectToScene(rect); } @@ -468,11 +456,11 @@ { Q_D(const HbInputFocusObject); - QGraphicsObject *editorWidget = qobject_cast(d->mFocusedObject); + QGraphicsObject *editorWidget = d->mGraphicsObject; if (!editorWidget) { - QWidget *widget = qobject_cast(d->mFocusedObject); + QWidget *widget = d->mWidget; if (widget) { - editorWidget = HbInputUtils::graphicsProxyWidget(widget); + editorWidget = widget->graphicsProxyWidget(); } } @@ -497,12 +485,12 @@ { Q_D(const HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); + QGraphicsObject *graphicsObject = d->mGraphicsObject; if (graphicsObject) { return graphicsObject->inputMethodHints(); } - QWidget *widget = qobject_cast(d->mFocusedObject); + QWidget *widget = d->mWidget; if (widget) { return widget->inputMethodHints(); } @@ -517,13 +505,13 @@ { Q_D(HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); + QGraphicsObject *graphicsObject = d->mGraphicsObject; if (graphicsObject) { graphicsObject->setInputMethodHints(hints); return; } - QWidget *widget = qobject_cast(d->mFocusedObject); + QWidget *widget = d->mWidget; if (widget) { widget->setInputMethodHints(hints); } @@ -590,30 +578,18 @@ { Q_D(const HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); + QGraphicsObject *graphicsObject = d->mGraphicsObject; if (graphicsObject) { return graphicsObject->scenePos(); } - QWidget *w = qobject_cast(d->mFocusedObject); - // check if widget is inside a proxy. - QGraphicsProxyWidget *pw = HbInputUtils::graphicsProxyWidget(w); - if (pw) { - // check if we are pointing to the toplevel - // proxy widget, if not then we must check for - // the widgets window and see if it is a proxy. - if (pw->widget() == w) { - return pw->scenePos(); - } else if (pw->widget() == w->window()) { - QRectF rect = pw->subWidgetRect(w); - rect.translate(pw->scenePos()); - return rect.topLeft(); + QWidget *widget = d->mWidget; + if (widget) { + QGraphicsProxyWidget *proxy = widget->graphicsProxyWidget(); + if (proxy) { + return proxy->scenePos(); } - } - - if (w) { - // not a proxy.. Meaning widget is inside a QWidget window. - return w->mapToGlobal(QPoint(0, 0)); + return widget->mapToGlobal(QPoint(0, 0)); } return QPointF(0.0, 0.0); @@ -625,7 +601,7 @@ bool HbInputFocusObject::stringAllowedInEditor(const QString &string) const { // Two pass filtering. This can be a case constrained editor with a filter. - Qt::InputMethodHints hints; + Qt::InputMethodHints hints = inputMethodHints(); if (hints & Qt::ImhLowercaseOnly) { QString outStr; HbInputLowerCaseFilter::instance()->filterString(string, outStr); @@ -655,10 +631,9 @@ */ void HbInputFocusObject::commitSmiley(QString smiley) { - Q_D(HbInputFocusObject); - - if (d->mFocusedObject) { - d->mFocusedObject->setProperty("SmileyIcon", smiley); + QObject *obj = object(); + if (obj) { + obj->setProperty("SmileyIcon", smiley); } } @@ -668,7 +643,12 @@ QObject *HbInputFocusObject::object() const { Q_D(const HbInputFocusObject); - return d->mFocusedObject; + + if (d->mGraphicsObject) { + return d->mGraphicsObject.data(); + } + + return d->mWidget.data(); } /*! @@ -739,21 +719,26 @@ { Q_D(HbInputFocusObject); - QGraphicsObject *graphicsObject = qobject_cast(d->mFocusedObject); + bool sendRequest = false; + QGraphicsObject *graphicsObject = d->mGraphicsObject; if (graphicsObject && graphicsObject->scene()) { graphicsObject->scene()->setFocusItem(graphicsObject); + sendRequest = true; } else { - QWidget *widget = qobject_cast(d->mFocusedObject); + QWidget *widget = d->mWidget; if (widget) { widget->setFocus(); + sendRequest = true; } } - QInputContext* ic = qApp->inputContext(); - if (ic) { - QEvent *openEvent = new QEvent(QEvent::RequestSoftwareInputPanel); - ic->filterEvent(openEvent); - delete openEvent; + if (sendRequest) { + QInputContext* ic = qApp->inputContext(); + if (ic) { + QEvent *openEvent = new QEvent(QEvent::RequestSoftwareInputPanel); + ic->filterEvent(openEvent); + delete openEvent; + } } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputfocusobject_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/inputfw/hbinputfocusobject_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#ifndef HB_INPUT_FOCUS_OBJECT_P_H +#define HB_INPUT_FOCUS_OBJECT_P_H + +#include +#include + +#include "hbinputdef.h" +#include "hbinputeditorinterface.h" + +class HbInputFocusObject; +class HbMainWindow; +class QGraphicsObject; + +class HB_CORE_PRIVATE_EXPORT HbInputFocusObjectPrivate +{ + Q_DECLARE_PUBLIC(HbInputFocusObject) + +public: + HbInputFocusObjectPrivate(QObject *focusedObject) + : mEditorInterface(focusedObject) + {} + + HbMainWindow *mainWindow() const; + void ensureCursorVisible(QObject *widget); + +public: + HbInputFocusObject *q_ptr; + QPointer mWidget; + QPointer mGraphicsObject; + HbEditorInterface mEditorInterface; + QString mPreEditString; + +private: // For unit test. + static HbInputFocusObjectPrivate *d_ptr(HbInputFocusObject *fo) { + Q_ASSERT(fo); + return fo->d_func(); + } + friend class TestHbInputFocusObjectPrivate; +}; + +#endif // HB_INPUT_FOCUS_OBJECT_P_H + +// End of file + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputlanguage.cpp --- a/src/hbcore/inputfw/hbinputlanguage.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputlanguage.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -64,7 +64,7 @@ const ushort HbLangNameItalian[] = {'I', 't', 'a', 'l', 'i', 'a', 'n', 'o', 0}; const ushort HbLangNameLatvian[] = {'L', 'a', 't', 'v', 'i', 'e', 0x0161, 'u', 0}; const ushort HbLangNameCroatian[] = {'C', 'r', 'o', 'a', 't', 'i', 'a', 'n', 0}; -const ushort HbLangNameGerman[] = {'D', 'e', 'u', 't', 'c', 'h', 0}; +const ushort HbLangNameGerman[] = {'D', 'e', 'u', 't', 's', 'c', 'h', 0}; const ushort HbLangNameHungarian[] = {'M', 'a', 'g', 'y', 'a', 'r', 0}; const ushort HbLangNameBulgarian[] = {0x0411, 0x044a, 0x043b, 0x0433, 0x0430, 0x0440, 0x0441, 0x043a, 0x0438, 0}; const ushort HbLangNameFinnish[] = {'S', 'u', 'o', 'm', 'i', 0}; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputmainwindow.cpp --- a/src/hbcore/inputfw/hbinputmainwindow.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputmainwindow.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -373,7 +373,7 @@ const int positionForeground(0); // Now window ordinal position works with latest symbian release. So giving back this window // a FEP priority. This will enable this window to come on top of any softkeys. - rWindow->SetOrdinalPosition(positionForeground, ECoeWinPriorityFep); + rWindow->SetOrdinalPosition(positionForeground); #endif } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputmethod.cpp --- a/src/hbcore/inputfw/hbinputmethod.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputmethod.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -189,7 +189,7 @@ connect(&app, SIGNAL(aboutToQuit()), HbPredictionFactory::instance(), SLOT(shutDown())); connect(&app, SIGNAL(aboutToQuit()), HbExtraDictionaryFactory::instance(), SLOT(shutdown())); - HbInputMethod *master = HbInputMethodNull::Instance(); + HbInputMethodNull *master = HbInputMethodNull::Instance(); if (!master) { return false; @@ -205,6 +205,16 @@ app.setInputContext(proxy); } + if (master->delayedPanelRequest()) { + master->setDelayedPanelRequest(false); + QInputContext* ic = qApp->inputContext(); + if (ic) { + QEvent *openEvent = new QEvent(QEvent::RequestSoftwareInputPanel); + ic->filterEvent(openEvent); + delete openEvent; + } + } + return true; } @@ -450,7 +460,7 @@ // Delete previous focus object. if (d->mFocusObject) { refreshHost = true; - disconnect(d->mFocusObject, SIGNAL(editorDeleted()), this, SLOT(editorDeleted())); + disconnect(d->mFocusObject->object(), SIGNAL(destroyed(QObject *)), this, SLOT(editorDeleted(QObject *))); } delete d->mFocusObject; d->mFocusObject = 0; @@ -481,11 +491,10 @@ { Q_D(HbInputMethod); - if (d->mFocusObject && d->mFocusObject->object() == widget) { + if (d->proxy()->focusWidget() == widget) { delete d->mFocusObject; d->mFocusObject = 0; - // passing to actual QInputContext which is attached to Qt framework. - // which will internally set QInputContext::focusWidget to Null. + // update QInputContext internal focusWidget pointer. d->proxy()->QInputContext::widgetDestroyed(widget); d->proxy()->QInputContext::setFocusWidget(0); } @@ -786,6 +795,19 @@ } /*! +Returns true if focus is locked. If focus is locked, input framework will ignore +all the incoming focus events completely until focus is unlocked. + +\sa lockFocus +\sa unlockFocus +*/ +bool HbInputMethod::isFocusLocked() +{ + Q_D(HbInputMethod); + return d->mFocusLocked; +} + +/*! Removes input method focus and asks active input plugin to close its active UI-components (such as touch keypads). This may be needed in some special cases where the underlying application wants to make sure that there are no input related elements on the screen. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputmethod.h --- a/src/hbcore/inputfw/hbinputmethod.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputmethod.h Fri Sep 17 08:32:10 2010 +0300 @@ -63,6 +63,7 @@ void lockFocus(); void unlockFocus(); + bool isFocusLocked(); // From QInputContext (do not override). void widgetDestroyed(QWidget *widget); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputmethodnull.cpp --- a/src/hbcore/inputfw/hbinputmethodnull.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputmethodnull.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -38,7 +38,7 @@ /*! \internal */ -HbInputMethodNull::HbInputMethodNull() +HbInputMethodNull::HbInputMethodNull() : mDelayedPanelRequest(false) { } @@ -98,4 +98,20 @@ Q_UNUSED(event); } +/*! +\internal +*/ +void HbInputMethodNull::setDelayedPanelRequest(bool value) +{ + mDelayedPanelRequest = value; +} + +/*! +\internal +*/ +bool HbInputMethodNull::delayedPanelRequest() const +{ + return mDelayedPanelRequest; +} + // End of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputmethodnull_p.h --- a/src/hbcore/inputfw/hbinputmethodnull_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputmethodnull_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -44,6 +44,13 @@ void reset(); bool filterEvent(const QEvent *event); void mouseHandler(int x, QMouseEvent *event); + +public: + void setDelayedPanelRequest(bool value); + bool delayedPanelRequest() const; + +private: + bool mDelayedPanelRequest; }; #endif // HB_INPUT_METHOD_NULL_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputsettingproxy.cpp --- a/src/hbcore/inputfw/hbinputsettingproxy.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputsettingproxy.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -177,15 +177,15 @@ initializeDataArea(); } - - lock(); - - HbSettingProxyInternalData *prData = proxyData(); - if (prData) { - ++prData->iReferences; +#ifdef Q_OS_UNIX +#ifndef Q_OS_SYMBIAN + else if (proxyData()->iVersion != HbProxyDataRequiredVersion) { + // In unix systems, the shared memory may be left dangling with an outdated version + // In that case, update all the values with defaults to make sure + initializeDataArea(); } - - unlock(); +#endif // Q_OS_SYMBIAN +#endif // Q_OS_UNIX // This is needed because qApp doesn't not exist anymore when singleton destructs. iSaveFile = dataFileNameAndPath(); @@ -199,13 +199,7 @@ void HbInputSettingProxyPrivate::shutdownDataArea() { lock(); - HbSettingProxyInternalData *prData = proxyData(); - if (prData) { - prData->iReferences--; - if (prData->iReferences <= 0) { - save(); - } - } + save(); unlock(); } @@ -226,8 +220,6 @@ HbSettingProxyInternalData *prData = proxyData(); if (prData) { - prData->iReferences = 0; - if (!wasLoaded) { // There was no permanent storage version, so initialize to defaults. prData->iVersion = HbProxyDataRequiredVersion; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/hbinputsettingproxy_p.h --- a/src/hbcore/inputfw/hbinputsettingproxy_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/hbinputsettingproxy_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -32,7 +32,7 @@ #include "hbinputmethoddescriptor.h" #include "hbinputlanguage.h" -const int HbProxyDataRequiredVersion = 22; +const int HbProxyDataRequiredVersion = 24; const QString KInputSettingProxyKey("HbInputSettingProxy"); const unsigned int HbActiveMethodNameMax = 255; const unsigned int HbActiveMethodKeyMax = 64; @@ -66,7 +66,6 @@ // to this class or change related constants! struct HbSettingProxyInternalData { int iVersion; - int iReferences; HbInputLanguage iGlobalPrimaryInputLanguage; HbInputLanguage iGlobalSecondaryInputLanguage; HbKeyboardSettingFlags iPredictiveInputState; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/inputfw/inputfw.pri --- a/src/hbcore/inputfw/inputfw.pri Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/inputfw/inputfw.pri Fri Sep 17 08:32:10 2010 +0300 @@ -66,6 +66,7 @@ PRIVATE_HEADERS += $$PWD/hbinputmainwindow_p.h PRIVATE_HEADERS += $$PWD/hbinputregioncollector_p.h PRIVATE_HEADERS += $$PWD/hbinputkeymapfactory_p.h +PRIVATE_HEADERS += $$PWD/hbinputfocusobject_p.h # framework sources SOURCES += $$PWD/hbinputmethod.cpp diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/layouts/hbanchorlayoutengine_p.cpp --- a/src/hbcore/layouts/hbanchorlayoutengine_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/layouts/hbanchorlayoutengine_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -37,10 +37,11 @@ static const qreal EPSILON = 0.01f; static const qreal MAX_SIZE = 0xffffff; -static inline bool myFuzzyCompare(double p1, double p2) //krazy:exclude=typedefs -{ - return (qAbs(p1 - p2) <= 0.0001); -} +// declared but never referenced: +//static inline bool myFuzzyCompare(double p1, double p2) //krazy:exclude=typedefs +//{ +// return (qAbs(p1 - p2) <= 0.0001); +//} static inline bool myFuzzyCompare(float p1, float p2) //krazy:exclude=typedefs { @@ -48,15 +49,17 @@ } -static inline qreal minSlope(const Variable &var, qreal coef ) -{ - return var.sizeProp.pref + ( var.sizeProp.min - var.sizeProp.pref ) * coef; -} +// declared but never referenced: +//static inline qreal minSlope(const Variable &var, qreal coef ) +//{ +// return var.sizeProp.pref + ( var.sizeProp.min - var.sizeProp.pref ) * coef; +//} -static inline qreal maxSlope(const Variable &var, qreal coef ) -{ - return var.sizeProp.pref + ( var.sizeProp.max - var.sizeProp.pref ) * coef; -} +// declared but never referenced: +//static inline qreal maxSlope(const Variable &var, qreal coef ) +//{ +// return var.sizeProp.pref + ( var.sizeProp.max - var.sizeProp.pref ) * coef; +//} static inline bool differentSignOrZero( qreal val1, qreal val2 ) { @@ -409,7 +412,7 @@ SizeProperty *newEdgeSizeProp(0); - SimpleExpression se; + SimpleExpression se; //ARM Warning: C2874W: may be used before being set uint comparedEdgeFlags; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/primitives/hbiconitem.cpp --- a/src/hbcore/primitives/hbiconitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/primitives/hbiconitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -345,6 +345,7 @@ { Q_D(HbIconItem); d->setApiProtectionFlag(HbWidgetBasePrivate::AC_IconAlign, true); + alignment = d->combineAlignment(alignment, d->mAlignment); if (d->mAlignment != alignment) { d->mAlignment = alignment; update(); @@ -738,7 +739,7 @@ Q_UNUSED(option) Q_D(HbIconItem); - if (d->mIcon.isNull()) { + if (d->mIcon.isNull() && d->mBrush == Qt::NoBrush) { return; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/primitives/hbmarqueeitem.cpp --- a/src/hbcore/primitives/hbmarqueeitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/primitives/hbmarqueeitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -42,12 +42,17 @@ #include //#define HB_DEBUG_MARQUEE_DRAW_RECTS +//#define HB_DEBUG_MARQUEE_LOGS +#ifdef HB_DEBUG_MARQUEE_LOGS +#include +#endif namespace { // The bigger the value the slower the animation - static const qreal ANIMATION_SPEED_FACTOR = 2.5; - static const int ANIMATION_LEAD_TIME = 500; - static const int ANIMATION_IDENT_BY_PIXEL = 5; + static const int ANIMATION_LEAD_TIME = 500; + static const int ANIMATION_MAXIMUM_RETURN_TIME = 780; + static const qreal ANIMATION_IDENT_BY_MM = 8; + static const qreal ANIMATION_SPEED_METERS_PER_SEC = 0.012; // mm/ms static const QString DEFAULT_COLORGROUP = "qtc_view_normal"; } @@ -253,10 +258,16 @@ qreal ppmValue = HbDeviceProfile::profile(q).ppmValue(); // Calculate the offset for scrolling - qreal scrollOffsetX = content->mTextWidth+ANIMATION_IDENT_BY_PIXEL - q->contentsRect().width(); + qreal ident = qMin(ANIMATION_IDENT_BY_MM * ppmValue, q->contentsRect().width()); + qreal scrollOffsetX = content->mTextWidth+ident-q->contentsRect().width(); + qreal v = ANIMATION_SPEED_METERS_PER_SEC*ppmValue; // pisxels per milisecond + int duration = qRound(scrollOffsetX/v); // t = s/v in miliseconds - // animation duration depends on the length of the scrolled text and is not linear - int duration = (int)((qSqrt(scrollOffsetX)*1000*ANIMATION_SPEED_FACTOR)/ppmValue); +#ifdef HB_DEBUG_MARQUEE_LOGS + qDebug() << "HbMarqueeItemPrivate::initAnimations " + << "scrollOffsetX" << scrollOffsetX + << "HbMarqueeItemPrivate::initAnimations duration" << dura; +#endif // HB_DEBUG_MARQUEE_LOGS if (content->mTextDirection != Qt::LeftToRight) { scrollOffsetX = -scrollOffsetX; @@ -278,7 +289,7 @@ mAnimGroup.addAnimation(anim); anim = new QPropertyAnimation; - anim->setEasingCurve(QEasingCurve::SineCurve); + anim->setEasingCurve(QEasingCurve::Linear); anim->setTargetObject(content); anim->setPropertyName("pos"); anim->setStartValue(content->pos()); @@ -289,6 +300,15 @@ anim = new QPropertyAnimation; anim->setEasingCurve(QEasingCurve::Linear); anim->setTargetObject(content); + anim->setPropertyName("pos"); + anim->setStartValue(scrolledOutPos); + anim->setEndValue(content->pos()); + anim->setDuration(qMin(duration, ANIMATION_MAXIMUM_RETURN_TIME)); + mAnimGroup.addAnimation(anim); + + anim = new QPropertyAnimation; + anim->setEasingCurve(QEasingCurve::Linear); + anim->setTargetObject(content); anim->setPropertyName("alpha"); anim->setEndValue(0); anim->setDuration(1000); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/primitives/hbrichtextitem.cpp --- a/src/hbcore/primitives/hbrichtextitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/primitives/hbrichtextitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -331,6 +331,7 @@ d->mText = text; d->mRtf->setHtml(text); d->clearPrefSizeCache(); + update(); updateGeometry(); } } @@ -356,7 +357,7 @@ { Q_D(HbRichTextItem); d->setApiProtectionFlag(HbWidgetBasePrivate::AC_TextAlign, true); - alignment &= Qt::AlignVertical_Mask | Qt::AlignHorizontal_Mask; + alignment = d->combineAlignment(alignment, d->mTextOption.alignment()); if (d->mTextOption.alignment()!=alignment) { prepareGeometryChange(); d->mTextOption.setAlignment(alignment); @@ -388,13 +389,23 @@ Q_D(HbRichTextItem); - // Save painter's state + if (option->exposedRect.isEmpty()) { + // nothing to paint + return; + } + painter->translate(d->mOffset); + QAbstractTextDocumentLayout::PaintContext context; context.clip = option->exposedRect; + // painter was translated so it should be compensated + context.clip.translate(-d->mOffset); + context.palette.setColor(QPalette::Text, textDefaultColor()); + d->mRtf->documentLayout()->draw(painter, context); + // restore painter painter->translate(-d->mOffset); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/primitives/hbslidertrackitem.cpp --- a/src/hbcore/primitives/hbslidertrackitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/primitives/hbslidertrackitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -37,6 +37,7 @@ maskWidth = 0; trackSpan = 0; setMask = true; + handleRect = QRectF(); } HbSliderTrackItem::HbSliderTrackItem(HbFrameDrawer *drawer, QGraphicsItem *parent) @@ -48,6 +49,7 @@ maskWidth = 0; trackSpan = 0; setMask = true; + handleRect = QRectF(); } void HbSliderTrackItem::setMinimum(int min) @@ -106,6 +108,11 @@ } } +void HbSliderTrackItem::setHandleRect( QRectF sliderHandleRect) +{ + handleRect=sliderHandleRect; +} + void HbSliderTrackItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) { QSize size = boundingRect().size().toSize(); @@ -122,22 +129,22 @@ maskRect = QRectF( left, (qreal)boundingRect().topLeft().y(), - (qreal)boundingRect().width() * ((value - minimum) / (qreal)(maximum - minimum)), + (qreal)boundingRect().width() * ((value - minimum) / (qreal)(maximum - minimum))-handleRect.width()/2, (qreal)boundingRect().height()); } else { maskRect = QRectF( left, (qreal)boundingRect().topLeft().y(), - (qreal)trackSpan * ((value - minimum) / (qreal)(maximum - minimum)), + (qreal)trackSpan * ((value - minimum) / (qreal)(maximum - minimum))+handleRect.width()/2, (qreal)boundingRect().height()); } } else { - qreal start = boundingRect().bottom() - (qreal)trackSpan * ((value - minimum) / (qreal)(maximum - minimum)); + qreal start = boundingRect().bottom() - (qreal)trackSpan * ((value - minimum) / (qreal)(maximum - minimum))-handleRect.height()/2; qreal end = boundingRect().bottom(); if (inverted) { start = boundingRect().top(); - end = start + (qreal)trackSpan * ((value - minimum) / (qreal)(maximum - minimum)); + end = start + (qreal)trackSpan * ((value - minimum) / (qreal)(maximum - minimum))+handleRect.height()/2; } maskRect = QRectF( (qreal)boundingRect().topLeft().x(), diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/primitives/hbslidertrackitem_p.h --- a/src/hbcore/primitives/hbslidertrackitem_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/primitives/hbslidertrackitem_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -41,6 +41,7 @@ void setOrientation(Qt::Orientation); void setSpan( qreal span); void paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ); + void setHandleRect(QRectF handleRect); int minimum; int maximum; int value; @@ -49,6 +50,7 @@ Qt::Orientation mOrientation; qreal trackSpan; bool setMask; + QRectF handleRect; protected: void changeEvent(QEvent *event); }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/primitives/hbtextitem.cpp --- a/src/hbcore/primitives/hbtextitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/primitives/hbtextitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -517,7 +517,7 @@ Below flag detects platform which have this problem to activate work-around. */ #if defined(Q_OS_SYMBIAN) && defined(Q_BIG_ENDIAN) -# warning Work-around is active in fade effect of HbTextItem (see comment) +//# warning Work-around is active in fade effect of HbTextItem (see comment) # define HB_FADE_EFFECT_WORKAROUND_ON_PHONE #endif inline void HbTextItemPrivate::setPainterPen(QPainter *painter, @@ -1072,7 +1072,7 @@ { Q_D(HbTextItem); d->setApiProtectionFlag(HbWidgetBasePrivate::AC_TextAlign, true); - alignment &= Qt::AlignVertical_Mask | Qt::AlignHorizontal_Mask; + alignment = d->combineAlignment(alignment, d->mAlignment); if (d->mAlignment != alignment) { prepareGeometryChange(); d->mAlignment = alignment; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/displaydefinition.xml --- a/src/hbcore/resources/displaydefinition.xml Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/displaydefinition.xml Fri Sep 17 08:32:10 2010 +0300 @@ -6,7 +6,7 @@ resolutionWidth="640" resolutionHeight="360" ppiValue="229" - orientationAngle="270" + orientationAngle="90" unitValue="6.7" /> - - - 0.5 - -1.0 - 0.0 - - 1.0 - - - + + + 0.5 + + 0.0 + 1.0 + 1.0 + 1.0 + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/effects/hbdefault/chatoutgoing_appear.fxml --- a/src/hbcore/resources/themes/effects/hbdefault/chatoutgoing_appear.fxml Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/effects/hbdefault/chatoutgoing_appear.fxml Fri Sep 17 08:32:10 2010 +0300 @@ -1,11 +1,12 @@ - - - 0.5 - 0.0 - 1.0 - - 1.0 - - + + + 0.5 + + 0.0 + 1.0 + 1.0 + 1.0 + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/effects/hbdefault/indexfeedback_appear.fxml --- a/src/hbcore/resources/themes/effects/hbdefault/indexfeedback_appear.fxml Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ - - - - 0.3 - 0.0 - 1.0 - - - \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/effects/hbdefault/titlebar_disappear.fxml --- a/src/hbcore/resources/themes/effects/hbdefault/titlebar_disappear.fxml Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/effects/hbdefault/titlebar_disappear.fxml Fri Sep 17 08:32:10 2010 +0300 @@ -4,7 +4,7 @@ 0.3 0.0 - -1.3 + -1.5 1.0 1.0 diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/effects/hbdefault/titlebar_orient_disappear.fxml --- a/src/hbcore/resources/themes/effects/hbdefault/titlebar_orient_disappear.fxml Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/effects/hbdefault/titlebar_orient_disappear.fxml Fri Sep 17 08:32:10 2010 +0300 @@ -4,7 +4,7 @@ 0.3 0.0 - -1.4 + -1.5 1.0 1.0 diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/hbdefault.themeindex Binary file src/hbcore/resources/themes/hbdefault.themeindex has changed diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_b.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_b.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_bl.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_bl.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_br.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_br.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_c.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_c.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_l.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_l.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_r.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_r.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_t.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_t.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_tl.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_tl.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_tr.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_icon_bg_tr.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_b.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_b.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_bl.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_bl.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_br.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_br.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_c.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_c.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_l.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_l.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_r.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_r.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_t.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_t.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_tl.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_tl.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_tr.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_coverflow_list_bg_tr.svg Thu Sep 02 20:44:51 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ - - - - - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_b.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_b.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_bl.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_bl.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_br.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_br.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_c.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_c.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_l.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_l.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_r.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_r.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_t.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_t.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,7 @@ + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_tl.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_tl.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,7 @@ + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_tr.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_fr_mediawall_icon_bg_tr.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,7 @@ + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_face.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_face.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_hours.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_hours.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_minutes.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_minutes.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_face.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_face.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,8 @@ + + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_hours.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_hours.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_minutes.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_minutes.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_point.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_screensaver_point.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_seconds.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_bigclock_analogue_seconds.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_mediawall_list_bg.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_mediawall_list_bg.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,5 @@ + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_end_normal.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_end_normal.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_end_normal.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,14 @@ - - - + + + + + - - - - - - - - + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_end_pressed.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_end_pressed.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_end_pressed.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,15 +1,14 @@ - + + + + + - - - - - - + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_start_normal.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_start_normal.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_start_normal.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,14 +1,12 @@ - - - - - + + + - + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_start_pressed.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_start_pressed.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_graf_trim_start_pressed.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,15 +1,14 @@ - + + + + + - - - - - - + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_about.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_about.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_about.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,137 +1,116 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - - - - - - + + + - - - - + + + + - - - - - - + + + + - - - - - - - - - - - - - - + + + + + + - - - - + + + + + + + + - - - - - + + + + - - - - - - - - - + + + + - - - - - + + + + + - - - + + + + + + + + + - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_accessibility.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_accessibility.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_accessibility.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,37 +1,28 @@ - - - - - - - + + + + + + + - - - - - - + + + + + - + - + - - - - - + + + + - - - - - - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_account_setup.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_account_setup.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_account_setup.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,99 +1,91 @@ - - - - + - - - - - - + + + + + + - - - - - - + + + + + + + + + + + - - - - - + + + + - - - - + + + + - - - - - - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + - - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_active_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_active_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_active_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,33 +1,29 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_active_mode.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_active_mode.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_active_mode.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,145 +1,123 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + - - - + - - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + - - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_add_contact_picture.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_add_contact_picture.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_add_contact_picture.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,111 +1,100 @@ - - - + + - - - + + + - - - - - + + + + + - - - + - - - - - - + + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_add_group_picture.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_add_group_picture.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_add_group_picture.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,126 +1,107 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_album_art.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_album_art.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_album_art.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,51 +1,32 @@ - - - - - + + + + + - - + - - - - - - - - - - - - - - + + + + - - - - - - - - - + + + + - - - - + + + + + + + + + - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_als.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_als.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_als.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,270 +1,204 @@ - - - - - - - - - + + + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + - - - - - - + + + + - - - - - - - - - + + + + + - - - - + + + + + + - - - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + - - - - - + + + + - - - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - + + + + + - - - - - - - - - - + + + + + + - - - - + + + + + + + + - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + + - - - - - - + + + + - - - - - - + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_application.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_application.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_application.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,61 +1,54 @@ - - + - - - - + + + - - - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - + + - - - - + + + + - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_download.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_download.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_download.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,55 +1,48 @@ - - - - - - - + + + + + + - - + + - - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - + - - - - - - + + + + + - - + - - - + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_essential.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_essential.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_essential.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,28 @@ - - + - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_games.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_games.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_games.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,159 +1,155 @@ - - + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_office.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_office.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_office.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,226 +1,177 @@ - - - - - - - + + + + + + - - + + - - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - + - - - - - - - - - - + + + + - - - - + + + + + - - - - - - - + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - + + + + + + - - - - - - + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_user.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_user.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_applications_user.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,90 +1,83 @@ - - - - - - - + + + + + + - - + + - - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - + - - - - + + + + + + + + + + - - - - - - - + + + + - - - - - - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - + + - - - - + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_avatar.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_avatar.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_avatar.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,18 +1,14 @@ - - + + + + + - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_avatar_mycard.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_avatar_mycard.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_avatar_mycard.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,53 +1,48 @@ - - + + + + + - - - - + + + + - - - - - - + + + + + - - - - - + + + + - - - - - - - + + - - - + + + - - - - + + + + - - - - - - + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bell.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bell.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bell.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,63 +1,60 @@ - - + - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,24 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_active_connection.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_active_connection.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_active_connection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,61 +1,50 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - - + + - - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + - - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_hide.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_hide.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_hide.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,26 @@ - - + - - - - - + + + + + + - - - - - - + + + + + - - - - + + + + - - - + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_hide_connection.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_hide_connection.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_hide_connection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,61 +1,52 @@ - - + - - - - - + + + + + + - - - - - - + + + + + - - - - + + + + - - - + + - - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + - - - - - - + + + + + - - + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_bluetooth_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,33 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - - + + - - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_browser.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_browser.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_browser.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,63 +1,46 @@ - - + - - - + + + - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calculator.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calculator.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calculator.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,276 +1,168 @@ - - - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + + + - - - - + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - + + + + + - - - - - - - - - - - - + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,104 +1,87 @@ - - - - - - - - + + + + + + - - - - - - + + + + + - - - - + + + + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + - + + + + + + + + + - - - - - - + + + + + - + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar_alarm.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar_alarm.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar_alarm.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,164 +1,145 @@ - - - - - - - - + + + + + + - - - - - - + + + + + - - - - + + + + - - - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + + + - - - - - - - + + + + + - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - + - - - - - - + + + + + - + - - + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar_dynamic.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar_dynamic.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_calendar_dynamic.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,94 +1,81 @@ - - - - - - - - + + + + + + - - - - - - - - - - - + + + + + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + - - - - - + + + + + + + - - - - + + + + + - - - - - - - + + + + - - - - - - - - - - - - + + + + + + - + + + + + + + + + - - - - - - + + + + + - + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_assistant.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_assistant.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_assistant.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,152 +1,133 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - + + + + + + + - - - - - - - + + + + + + + + - - - - - - - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_car.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_car.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_car.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,107 +1,88 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - + + + + - - - - - + + + + + - - - - - - - - - + + + + - - - - - - - - - - + + + + - - - - + + + + + - - - - - - - - - + + + + - - - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_duration.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_duration.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_duration.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,81 +1,76 @@ - - + - - - - + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + - - + + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,296 +1,205 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - - - - - - - + + + + + - - - - + + + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + + - - - - - - - + + + + + + + + - - - - - - + + + + - - - - - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,313 +1,221 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + + + + - - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + + - - - - - - + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - + + + + + + + + + + - - - - - - - - + + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + - - - - - - - + + + + + - - - - - - - - - - - - + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_fax_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,312 +1,222 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + + + + - - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + + - - - - - - + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - + + + + + + + + + + - - - - - - - - + + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + - - - - - - + + + + + - - - - - - - + - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_group.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_group.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_group.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,213 +1,184 @@ - - - - - - - - + + + + + + - - - - - - - - - + + + + - - - - - - - + + + + - - - + + + + + + + + + - - - - - - + + + - - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + + - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - + - - - - + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,255 +1,167 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + - - - - - - - + + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - + + + + + + - - - - + + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - + + + + - - - - + + + + + - - - - - + + + + - - - - - - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,268 +1,179 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - + + + + + - - - - - - + + + + + - - - - - + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_landline_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,267 +1,180 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + - - - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + - - - - + + + + - - - - + + + + + - - - - - - - - - - + + + + - - - - - - + + + + + - - - - - + + + + + - + - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,131 +1,113 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + - - - - + + + + + + - - - - + + + + + + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - - - - - - - - - - - - + + + + + + - - - - + + + + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,148 +1,129 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - - - - - - - + + + + - - - - + + + + + - - - - - - - - - - + + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_mobile_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,147 +1,130 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - - - - - - - + + + + - - - - + + + + + - - - - - - - - - - + + + + + + + - - - - - - + + + + + - - - - - + + + + + - + - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_muted.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_muted.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_muted.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,42 @@ - - + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - + @@ -46,7 +45,7 @@ - + @@ -56,208 +55,82 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + - - - - + - - - - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_pager.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_pager.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_pager.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,113 +1,90 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - - + + + + - - - + + + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - + + + + - - - - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + + - - - - - - - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_service.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_service.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_service.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,73 +1,65 @@ - - + - - - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + - + + + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,112 +1,90 @@ - - - + - - - + + + - - - - - + + + + + - - - - - - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + + + + - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + - - - - - - - - + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,153 +1,129 @@ - - - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + - - - - - - - - + + + + + + + - - + - - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - - - - - - - - + + + + - - - - + + + + + + + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_call_voip_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,217 +1,145 @@ - - - + - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + + + - - - - + + + + + + + - - - - - - - - - + + + + + + + - - - - - + + + + + + + + - - - - + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_camera.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_camera.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_camera.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,116 +1,102 @@ - - + - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + - - - - + + + + + + - - - - - - + + + + - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + - - - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_car.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_car.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_car.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,81 +1,68 @@ - - - - - - - - - - - - - - - - + + + + + + + + - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - + - - - - - - - - - - + + + + + - - - - - - + + + + - - - - + + + + + + - - - - + + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_cellinfo.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_cellinfo.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_cellinfo.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,97 +1,67 @@ - + + - - - - + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,37 @@ - - + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + - - + + @@ -46,27 +44,25 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,37 @@ - - + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + - - + + @@ -46,68 +44,64 @@ - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - + + + + + + - - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - - - - - - - - + + + + - - - - + + + + + + + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_night.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_night.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_night.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,27 @@ - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - + + + + - - + + @@ -36,27 +34,25 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_night_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_night_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_clock_night_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,27 @@ - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - + + + + - - + + @@ -36,68 +34,64 @@ - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - + + + + + + - - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - - - - - - - - + + + + - - - - + + + + + + + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_computer.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_computer.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_computer.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,69 +1,58 @@ - - + - - - - - - - - - - - + + + + + - - - - - + + + + + - - - - + + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - - + + + + + - - - - - - - - - + + + + + - - - - + + + + - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_corrupted.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_corrupted.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_corrupted.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,57 +1,48 @@ - - - - - - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + - - - - + + + + + + - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_custom.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_custom.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_custom.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,37 @@ - - + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_data_import.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_data_import.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_data_import.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,200 +1,190 @@ - - + - - - - - - - + + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - + + + + + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - - - + + + + + - - - + + + - - - - + + + + - - - - - + + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_date_time.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_date_time.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_date_time.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,140 +1,121 @@ - - - - - - - - + + + + + + - - - - - - + + + + + - - - - + + + + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + + - - - - - - - + + + + + + + - + - - - - - - + + + + + - + - - + - - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + - - + + @@ -147,23 +128,22 @@ - - - - + + + + - - - - + + + + - - - - + + + + - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_default_server.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_default_server.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_default_server.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,176 +1,128 @@ - - - - - - - - - - - - - - + + + + + + + - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - + + + + + - - - - - + + + + - - - - - + + + + - - - - + + + + + - - - - - - - + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + - - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_device_lock.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_device_lock.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_device_lock.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,153 +1,134 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - + + + + - - - - + + + + + - + + + + + + - - - - - - - - + + + - - - - + + + + - - - - - - + + + + - - - - - - - - - + + + + + + - - - - + + + + + + + + - - - - - - - - - - + + + + - - - - - - - - - + + + + - - - - - + + + + + - - - + + + + + + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + + + + + - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_device_update.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_device_update.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_device_update.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,132 +1,114 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - - - - - - + + + + - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - - + + + + - - - - - + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + - - - + - - - - - - + + + + + - - + - - - + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dialer.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dialer.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dialer.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,11 +1,10 @@ - - + - - - + + + @@ -17,32 +16,30 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dialled_voice_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dialled_voice_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dialled_voice_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,21 +1,17 @@ - - - - - - - + + + + + + - - - - - + + + + - + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dictionary.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dictionary.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_dictionary.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,44 +1,42 @@ - - - - - + + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - - - - - + + + + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,27 +1,24 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,27 +1,26 @@ - - + - - - - - + + + + + + - - - - - - + + + + + - - - - + + + + - - + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_group.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_group.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_group.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,207 +1,179 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - + + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - + - - - - + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,68 +1,63 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - + + - - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - - - - - - - - + + + + - - - - + + + + + + + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_setup.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_setup.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_setup.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,50 +1,45 @@ - - + - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_email_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,132 +1,79 @@ - - + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - + + - - - - - - - - - - - - - - - + + + - - - - - - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - + + + + + + + + - - - - - + + + + - - - - - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_end_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_end_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_end_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,37 @@ - - + - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_fail.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_fail.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_fail.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,25 +1,22 @@ - - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_favourites.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_favourites.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_favourites.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,28 @@ - - + - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_filemgr.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_filemgr.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_filemgr.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,92 +1,83 @@ - - + - - - - + + + + - - - - - + + + + + + + + + + + + - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + - - + + - - - - + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_folder.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_folder.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_folder.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,31 @@ - - - - - - - + + + + + + - - + + - - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_friend.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_friend.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_friend.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,76 +1,70 @@ - - - - + - - - - - - + + + + + + - - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_friends.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_friends.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_friends.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,204 +1,173 @@ - - + - - - - - + + + - - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + - - - - - + + + + + + + + + + + - - - - - - - - - + + + + - - - - - - + + + + + + + - - - - + + + + - - - - - - - - - - - + + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ftu.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ftu.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ftu.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,157 +1,141 @@ - - + - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + - - - - + + + + - - - - - - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - - + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + - - - + - - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_games.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_games.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_games.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,159 +1,155 @@ - - + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_generic_audio.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_generic_audio.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_generic_audio.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,128 +1,123 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - - + + + + - + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - + + + + + + + - - - - - + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - - - - - + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_generic_bluetooth.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_generic_bluetooth.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_generic_bluetooth.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,31 +1,28 @@ - - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_group_feeds.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_group_feeds.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_group_feeds.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,225 +1,192 @@ - - + - - - - - + + + - - - - - - + + + + + - - - - - + + + + + + + + + + - - - - - - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - + + + + + - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + + - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + - - - - - - - - + + + + + + - - - - - + + + + + - + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_help.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_help.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_help.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,25 @@ - - + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_hold_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_hold_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_hold_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,41 +1,37 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_homezone.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_homezone.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_homezone.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,59 +1,57 @@ - - - - - + + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - - + + + + - + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - - - + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_im.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_im.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_im.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,48 +1,44 @@ - - - + - - - - + + + + - + - - + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - + - + - + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_imageprint.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_imageprint.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_imageprint.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,151 +1,145 @@ - - + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - + + - - - - + + + + - - - - - - + + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_info.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_info.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_info.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,28 @@ - - - + - - - - - + + + + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_input_device.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_input_device.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_input_device.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,86 +1,76 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - - - - + + + + + + + - - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_internet_radio.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_internet_radio.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_internet_radio.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,339 +1,193 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_java.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_java.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_java.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,79 +1,70 @@ - - - + - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + - - - - - + + + + - - - - - + + + + - - - - - - - + + + + + + - - - - - + + + + - - + + - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_just_audio.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_just_audio.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_just_audio.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,77 +1,70 @@ - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - - + + + + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - + - - - - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_key_screen.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_key_screen.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_key_screen.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,215 +1,139 @@ - - + - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - + + + + - - - - + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + - - - - - - - - - + + + + + - - - - + + + + - - - - - - - - - - + + + + - - - - + + + + + + - - - - - - - - - - + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + + + - - - - + + + + + + + - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - + + + + + + - - - - + + + + + - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_keyboard.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_keyboard.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_keyboard.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,381 +1,253 @@ - - + - - - - + + + + - - - - - - - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_language.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_language.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_language.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,85 +1,83 @@ - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_location_new.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_location_new.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_location_new.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,88 +1,84 @@ - - + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_map_placeholder.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_map_placeholder.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_map_placeholder.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,109 +1,106 @@ - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_maps.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_maps.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_maps.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,60 +1,57 @@ - - + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_maps_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_maps_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_maps_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,60 +1,59 @@ - - + - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mass_storage.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mass_storage.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mass_storage.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,131 +1,125 @@ - - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + - - - - + + + + + + - - - - - - - - - - + + + + - - - - + + + + + - - - - + + + + - - - - - + + + + + + + + + - - - - - + + + + + - - - - + + + + + + + + + - - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_media_transfer.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_media_transfer.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_media_transfer.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,66 +1,58 @@ - - - - - + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - + + + + - - - - + + + + + + + + - - - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_meeting.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_meeting.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_meeting.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,85 +1,80 @@ - - - - - + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,39 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + - - - - + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_group.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_group.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_group.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,222 +1,194 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + - - - + + + + + + + + + + - - - - - - + + + - - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - + + + + + - - - - - + + + + + - - - - + + + + + - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - + - - - - + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,83 +1,78 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + - - - + + + + + + + + + + - - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - - - - - - - - + + + + - - - - + + + + + + + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_message_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,147 +1,94 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - + + + + + + + + - - - - + + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - + + + + + + + + - - - - - + + + + - - - - - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_video_call_unseen.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_video_call_unseen.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_video_call_unseen.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,179 +1,131 @@ - - + - - - - - - - - - - - - - - + + + - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + - - - - - + + + + + - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voice_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voice_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voice_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,22 +1,16 @@ - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voice_call_unseen.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voice_call_unseen.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voice_call_unseen.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,85 +1,47 @@ - - + - - - + + + - - - - - - - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voip_call_unseen.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voip_call_unseen.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_missed_voip_call_unseen.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,141 +1,98 @@ - - + - - - - - - - - + + + - - - - - + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mmc.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mmc.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mmc.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,84 +1,52 @@ - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + - + - - - + + + - - - - + + + + - - - - - - + + + + + + - + - - - - - - - - - - - - + + - - - - - - - - - - - - + + - - - - - - - - - - - - + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mmc_removed.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mmc_removed.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mmc_removed.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,84 +1,54 @@ - + + - - - + + + - - - - + + + + - - - - - - + + + + + + - + - - - + + + - - - - + + + + - - - - - - + + + + + + - + - - - - - - - - - - - - + + - - - - - - - - - - - - + + - - - - - - - - - - - - + + - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mobile.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mobile.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mobile.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,112 +1,97 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - + + + + - - - - - - - - - - - + + + + - - - - - - - - - + + + + + + - - - - + + + + + + + + - - - - + + + + - - - - - - - - - - + + + + - - - - + + + + + - - - - - + + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mobile_tv.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mobile_tv.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mobile_tv.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,35 @@ - - + - - - + + + - - - - - - + + + + + - - - - - + + + + + - + - - - - + + + + - - - - + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mono.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mono.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mono.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,52 +1,49 @@ - - + - - - + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - - - + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mouse.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mouse.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mouse.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,98 +1,86 @@ - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - - - - + + + + - - - - - - - - + + + + + + + - - - - + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,50 +1,48 @@ - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_album.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_album.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_album.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,68 +1,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + + + + + + + + + - - - - + + + + + + + + + + + + + + + + - - - - + + + + + + + - - - - + + + + - - - - - + + + + + + + + + - - + + + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,50 +1,50 @@ - + + - - - + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - + + + + + - - + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_empty.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_empty.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_empty.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,121 +1,113 @@ - - - - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + - - - - + + + + + - - - - - - - - - - + + + + - - - - + + + + + - - - - - - - - - - - + + + + - - - - - - + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + - - - - - + + + + - - - - - - + + + + - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_shop.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_shop.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_music_shop.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,130 +1,119 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + - - - + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mycard.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mycard.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_mycard.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,39 @@ - - + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,40 @@ - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,57 +1,49 @@ - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + - - - - - - - - - + + + + + + + + - - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network_settings.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network_settings.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_network_settings.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,69 +1,61 @@ - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + - - - - - - - - - + + + + + + + + - - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_new_message.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_new_message.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_new_message.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,70 +1,66 @@ - - + - - - - + + + + + + + + + + - - - - - + + + + + + + - - - - - - - - - - - - + + + + - - - - - - - - + + + + + + + + - - - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_new_voice_message.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_new_voice_message.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_new_voice_message.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,57 +1,53 @@ - - - - - + + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - - - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_non_default.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_non_default.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_non_default.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,159 +1,113 @@ - - - - - - - - - - - - - - + + + + + + + - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - + + + + + - - - - - + + + + - - - - - - - - - - + + + + - - - - - - - + + + + + - - - - - - - + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + - - - - + + + + - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_notes.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_notes.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_notes.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,34 +1,32 @@ - - + - - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - + @@ -37,64 +35,60 @@ - - - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ok.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ok.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ok.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,17 @@ - - + - - - - + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_online.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_online.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_online.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,78 +1,57 @@ - - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - + + - - - - - - - - + + + + + - - - - + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_operator_info.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_operator_info.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_operator_info.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,73 +1,63 @@ - - + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_outbox.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_outbox.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_outbox.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,48 +1,46 @@ - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - + + + + - - - - - - + + + + + + - - + + - - - + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_personalization.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_personalization.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_personalization.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,164 +1,156 @@ - - + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - - - - - - - - - + + + + + + + + - - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - - - - + + + + + - - - + + + - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_phone_as_modem.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_phone_as_modem.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_phone_as_modem.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,255 +1,206 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - - - - - - + + + + - - - - - - + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - - - - - + + + + - - - - - - - + + + + + - - - - + + + + + + + - - - - + + + + + - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + + - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + - - - - - - - + + + + - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_phonebook.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_phonebook.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_phonebook.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,66 +1,60 @@ - - - + - - - + + + - - - - - - + + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - + + + + - - - - + + + + - + - - - + + + - - - - + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_photo_collection.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_photo_collection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_photos.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_photos.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_photos.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,114 +1,84 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - + + + + - - - - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - - + + + + + - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_pin_code.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_pin_code.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_pin_code.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,38 +1,36 @@ - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_play.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_play.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_play.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,24 +1,21 @@ - - - + - - - + + + - - - - + + + + - - - - + + + + - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_playlist.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_playlist.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_playlist.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,32 +1,29 @@ - - + - - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + - + @@ -35,37 +32,33 @@ - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_power_management.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_power_management.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_power_management.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,40 @@ - - - + - - - - - - - + + + + + + - + - - - - + + + + - - - - - - - + + + + + + + - - + + - - - - - + + + + + - + @@ -45,63 +42,59 @@ - - - - + + + + - + - - - - - - - - - - + + + + + + - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + @@ -112,4 +105,4 @@ - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_presentation_player.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_presentation_player.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_presentation_player.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,127 +1,104 @@ - - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - + + + + + - - - - - - + + + + - - - - + + + + - - - - + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_profiles.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_profiles.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_profiles.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,99 +1,78 @@ - - + - - - + + + - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - + + + + - - - - + + + + + + - - - - - - - - - + + + + + - - - - - - - - - + + + + - - - - + + + + + - - - + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_psm.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_psm.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_psm.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,38 @@ - - + - - - - - - + + + + + + - + - - - - + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - + @@ -42,28 +41,27 @@ - + - - - - + + + + - + - - - - - + + + + + - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_query.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_query.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_query.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,31 +1,27 @@ - - + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_radio.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_radio.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_radio.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,308 +1,152 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - + + + + - - - - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + + + - - - - - - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + - - - - - - + + + + + + + + - - - - - - - + + + + + - - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_received_voice_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_received_voice_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_received_voice_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,22 +1,19 @@ - - - - - - + + + + + + - - + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_reset.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_reset.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_reset.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,151 +1,110 @@ - - - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - - - - - - - - - - - + + + + - - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + - - - - - - - - - - + + + + + - - - - - + + + + - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + + - - - - + + + + - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ring_tone.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ring_tone.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_ring_tone.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,143 +1,126 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + - - - + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sat.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sat.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sat.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,112 +1,67 @@ - - + - - - - + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - + + + + - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_search.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_search.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_search.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,60 +1,55 @@ - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_security.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_security.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_security.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,44 +1,42 @@ - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_server_locked.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_server_locked.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_server_locked.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,200 +1,150 @@ - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - + + + + + - - - - + + + + + - - - - - + + + + - - - - - + + + + - - - - + + + + + - - - - - - - + + + + + - - - - - - - - - - - - - - - + + + + - - - - - - + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_settings.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_settings.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_settings.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,159 +1,148 @@ - - + - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sim.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sim.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sim.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,87 +1,48 @@ - - + - - - - - - - - - - - - - - - + + + + - - - - + + + + + - - - - - - - + + + + - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sisx.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sisx.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sisx.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,64 +1,61 @@ - - + - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - + - - - - + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_social_media.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_social_media.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_social_media.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,228 +1,215 @@ - - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + - - - - + + + + - - - - - - + + + + - - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + - - - - + + + + - - - - - - + + + + - - - + + + - - - + + + - - - - + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - - - - - + + + + + @@ -230,36 +217,34 @@ - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_speaker.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_speaker.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_speaker.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,97 +1,78 @@ - - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - + + + + - - - - - - + + + + + + - - - - + + + + + + - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + - - - - + + + + + + - - - - + + + + - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_stereo.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_stereo.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_stereo.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,93 +1,62 @@ - - + - - - - + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_swupdate.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_swupdate.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_swupdate.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,144 +1,129 @@ - - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - + + + + + + + + + + + + + + - - - - - - - + + + + - - - - + + + + - - - - + + + + + - - - - - - + + + + - - - - - - + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + - - - - + + + + - - - - - + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sync.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sync.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_sync.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,60 +1,57 @@ - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_text.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_text.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_text.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,32 +1,29 @@ - - + - - - - + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + - + @@ -35,6 +32,4 @@ - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tip.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tip.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tip.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,40 +1,37 @@ - - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_todo_alarm.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_todo_alarm.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_todo_alarm.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,148 +1,141 @@ - - - + - - - + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + - - - - + + + + - + - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tone.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tone.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tone.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,34 +1,31 @@ - - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tone_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tone_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tone_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,45 +1,40 @@ - - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + + + + + + + + - - - - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tv_out.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tv_out.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_tv_out.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,184 +1,167 @@ - - + - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - - + + + + - + - - - - - - - - + + + - - - - + + + + - - - - - - + + + + - - - - - - - - - + + + + + + - - - - + + + + + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - + + + + + - - - - - + + + + + + + - - - + - - - - - + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_unknown.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_unknown.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_unknown.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,31 +1,27 @@ - - + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,86 +1,70 @@ - - + - - - + + + - - - - - - - - - - - + + + + - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - + + + + + - - - - - - + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,127 +1,109 @@ - - + - - - - - - - - + + + - - - - - - + + + + - - - - - - - - - - - + + + + + + - - - - + + + + + + + + + + + - - - - + + + + - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + + - - - - - - - - - + + + + + - - - - - + + + + + + - - - - - - + + + + - - - - - - - - - - + + + + + - - - - + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_url_address_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,191 +1,125 @@ - - + - - - - - - - - - - - - - - - + + + - - - - - - - - - - - + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + - - - - - + + + + - - - - - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_usb.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_usb.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_usb.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,26 @@ - - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_usb_memory.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_usb_memory.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_usb_memory.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,63 +1,55 @@ - - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + + - - + + - - - - - - - - + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,32 @@ - - + - - - - - - - - - - - - - + + + + + - - - - + + + + + + + - - - - - + + + + - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,135 +1,120 @@ - - + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_active.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_active.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_active.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,126 +1,112 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_end.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_end.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_end.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,136 +1,120 @@ - - + - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_waiting.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_waiting.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_call_waiting.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,134 +1,120 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_capture.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_capture.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_capture.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,149 +1,133 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + - - - - - - - + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_collection.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_collection.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_collection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,68 +1,66 @@ - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_dialled_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_dialled_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_dialled_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,115 +1,101 @@ - - - - - - - + + + + + + - - - - - + + + + - + - - - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_download.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_download.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_download.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,55 +1,49 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - - - + + + + + - - + - - - + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_missed_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_missed_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_missed_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,116 +1,100 @@ - - - - - + + + + + - - - - + + + + - - - - - - - - + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_player.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_player.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_player.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,56 +1,51 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - - - + + + + - - - - + + + + - - - - + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_podcast.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_podcast.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_podcast.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,56 +1,51 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - - - - - + + + + + + - - - - - + + + + + - + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_received_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_received_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_received_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,116 +1,103 @@ - - - - - - + + + + + + - - + - - - - - + + + + + - - - + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + + - - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_recent.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_recent.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_recent.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,71 +1,66 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + - - + + @@ -78,23 +73,22 @@ - - - - + + + + - - - - + + + + - - - - + + + + - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_service.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_service.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_service.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,66 +1,60 @@ - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_tv.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_tv.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_video_tv.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,71 +1,65 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - - + + + + - - - - - - + + + + + + + + + + + - - - - - - - + - - - - + + + + - - - - + + + + - - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voice_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voice_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voice_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,37 @@ - - + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voice_recorder.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voice_recorder.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voice_recorder.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,42 @@ - - + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - + @@ -46,7 +45,7 @@ - + @@ -56,197 +55,73 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + - - - - - - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,73 +1,65 @@ - - + - - - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + - + + + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_active.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_active.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_active.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,64 +1,57 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_end.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_end.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_end.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,74 +1,65 @@ - - + - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_hold.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_hold.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_hold.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,72 +1,65 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + - + + + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_waiting.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_waiting.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_call_waiting.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,72 +1,65 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + - + + + + + + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_dialled_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_dialled_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_dialled_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,77 +1,68 @@ - - - - - - - + + + + + + - - - - - + + + + - + - - - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_missed_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_missed_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_missed_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,78 +1,67 @@ - - - - - + + + + + - - - - - - - - - + + + + - - - + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_received_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_received_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_voip_received_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,78 +1,70 @@ - - - - - - + + + + + + - - + - - - - - + + + + + - - - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - + + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_waiting_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_waiting_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_waiting_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,41 +1,37 @@ - - - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_warning.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_warning.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_warning.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,33 +1,30 @@ - - - - - + + + + + - - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_web_feeds.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_web_feeds.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_web_feeds.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,23 +1,21 @@ - - + - - - - - + + + + + - - - - - + + + + + - + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_widget.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_widget.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_widget.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,96 +1,78 @@ - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + - - - - - - + + + + + + - - - - - + + + + - - - - - + + + + + - - - - - - + + + + - - - - - - + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wire_connect.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wire_connect.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wire_connect.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,59 +1,57 @@ - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wlan.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wlan.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wlan.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,73 +1,51 @@ - - + - - - - - - - - - - - - - + + + + - - - - - - + + + + + + + - - - - - - - - - - + + + + + + - - - - + + + + + - - - - - - - + + + + - - - - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wlan_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wlan_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_wlan_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,84 +1,60 @@ - - + - - - - - - - - - - - - - + + + + - - - - - - + + + + + + + - - - - - + + + + + + - - - - - - - - - + + + + + - - - - - - - + + + + - - - - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + - - - - - - + + + + + - - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_zipmgr.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_zipmgr.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_large_zipmgr.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,145 +1,142 @@ - - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_als_call_one.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_als_call_one.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_als_call_one.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_als_call_two.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_als_call_two.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_als_call_two.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_cam_mode_camcorder.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_cam_mode_camcorder.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_cam_mode_camcorder.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,9 @@ - + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_cam_mode_camera.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_cam_mode_camera.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_cam_mode_camera.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,10 +1,10 @@ - + - + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_contrast_high.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_contrast_high.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_contrast_high.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,7 @@ - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_contrast_low.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_contrast_low.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_contrast_low.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,7 @@ - - - - + + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_countdown_timer.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_countdown_timer.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_geotag_no_location_lock.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_geotag_no_location_lock.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_geotag_no_location_lock.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,12 +1,9 @@ - - - - + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sharpness_hard.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sharpness_hard.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sharpness_hard.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sharpness_soft.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sharpness_soft.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sharpness_soft.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - - + + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sym_qwerty_hi.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sym_qwerty_hi.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_sym_qwerty_hi.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,9 @@ - + - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_trim.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_trim.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_wildcard.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_wildcard.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_mono_wildcard.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,11 +1,8 @@ - - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_add.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_add.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_add.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,14 @@ - - + - - - - - - - - - + + + - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_anniversary.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_anniversary.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_anniversary.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,58 +1,45 @@ - - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + + - - - - - + + + + + + - - - - - + + + + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_assistant.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_assistant.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_assistant.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,68 +1,58 @@ - - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - + + + + + - - - - - + + + + - - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_attachment.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_attachment.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_attachment.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,16 +1,12 @@ - - + - - - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_authorised.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_authorised.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_authorised.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,40 @@ - - + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_blocked.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_blocked.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_blocked.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,17 @@ - - + - - - + + + - - - - + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bluetooth_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bluetooth_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bluetooth_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,21 @@ - - + - - - - - + + + + + - - - - - - - - - - - - - - + + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_low_battery.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_low_battery.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_low_battery.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,29 @@ - - + - - - - - - + + + + + - - - - - - - + + + + - - - - - - - + + + + + - - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_high.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_high.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_high.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,41 +1,38 @@ - - + - - - - - - + + + + + + - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_low.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_low.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_low.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,47 +1,40 @@ - - + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - + + + + - - - - + + + + + + + + - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_medium.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_medium.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_bt_signal_medium.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,44 +1,41 @@ - - + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_business_card.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_business_card.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_business_card.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,26 @@ - - + - - - - - - - - - - - + + + - - - - + + + + + + + - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_calendar.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_calendar.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_calendar.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,51 +1,37 @@ - - + + - - - + + + - - - - - - - - - - - - - - - + + + + - - - - + + + + + + - - - - + + + + - - - - - + + + + + + - - - - - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_car.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_car.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_car.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,79 +1,62 @@ - - + - - - - - + + + + - - - - - + + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - + + + + - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_charger.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_charger.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_charger.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,63 +1,60 @@ - - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_collapse.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_collapse.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_collapse.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,18 +1,15 @@ - - - - - - - + + + + + + + + + + + - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_company_details.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_company_details.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_company_details.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,88 +1,62 @@ - - + - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_connected.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_connected.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_connected.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,14 @@ - - - + - - - + + + + + + + - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_connection.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_connection.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_connection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,37 +1,29 @@ - - - - - - - - - + + + + + + + - - - - - - + + + + + - - - - - - + + + + - - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_corrupted.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_corrupted.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_corrupted.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,26 +1,20 @@ - - + + - - - + + + - - - - - + + + + + + - - - - - - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_day.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_day.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_day.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,36 @@ - - + - - - - + + + + - + - - - - - - - - + + + - - - - - - - - - - + + + + - - - - + + + + + + - - - - - + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_dictionary.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_dictionary.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_dictionary.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,23 +1,19 @@ - - + - - - + + + - - - - - + + + + + - - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_disconnected.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_disconnected.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_disconnected.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,30 +1,25 @@ - - - + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_draft.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_draft.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_draft.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,15 +1,17 @@ - - - + + + + + + + - - - - - - + + + + @@ -26,7 +28,7 @@ - + @@ -34,12 +36,4 @@ - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_drm_rights_expired.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_drm_rights_expired.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_drm_rights_expired.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,32 @@ - - - - - + + + + + + + + - - - - - - - - - + + + - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,14 @@ - - - - - - - - + - - - - + + + + - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,31 +1,25 @@ - - + - - - - + + + + - - - - - - - - - - - + + + + + + + + - - - - + + + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_email_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,34 +1,26 @@ - - - - - - - - - - - - - - - + - - - - - + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_expand.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_expand.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_expand.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,18 +1,15 @@ - - + + - - + + + + + + - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fail.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fail.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fail.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,17 @@ - - + - - - + + + - - - - + + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_family.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_family.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_family.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,40 +1,37 @@ - - + - - - - + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_favorite.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_favorite.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_favorite.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,16 +1,12 @@ - - - - - + - - - - + + + + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,91 +1,61 @@ - - - - - - + + + + + + - - - - - - - - - + + + + - - - - - - + + + + - - - + + + + + + - - - - - - - - - - - - - - + + + - - - - - - - - - + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - + + + + + + - - - - - - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,104 +1,72 @@ - - + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_fax_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,105 +1,73 @@ - - + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_flash.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_flash.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_flash.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,31 @@ - - - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_folder.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_folder.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_folder.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,16 @@ - - - + + + - - - - - - - - + + + + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_follow_up.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_follow_up.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_follow_up.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,27 @@ - - + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - + + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_forward.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_forward.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_forward.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,18 +1,13 @@ - - + - - - - - - - - + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_gprs.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_gprs.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_gprs.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,21 +1,16 @@ - - + - - - - - + + + + + + + + + - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_homescreen.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_homescreen.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_homescreen.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,67 +1,63 @@ - - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hs_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hs_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hs_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,70 +1,59 @@ - - + - - - - + + + + - - - - + + + + - - - - - - - + + + + - - - - - + + + + + - - + + - - - - - - - - + + + - - - - - + + + + - - - - + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hs_widget.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hs_widget.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hs_widget.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,41 @@ - - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_html.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_html.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_html.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,25 +1,23 @@ - - - - - - + + + + + + - + - - - + + + - - + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hwr.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hwr.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_hwr.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,26 +1,18 @@ - - - - - - - - - + + + + + + - - - - - - + + + + - - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_image.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_image.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_image.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,55 +1,33 @@ - - - - - - + + + + + + - + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_internet.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_internet.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_internet.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,37 +1,31 @@ - - + - - - - - - - - - - - - - + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_intranet.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_intranet.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_intranet.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,32 @@ - - + - - - - - - - - - - - - - - - + + + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_itut.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_itut.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_itut.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,96 +1,40 @@ - - + - - - - - - - - - - - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_java.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_java.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_java.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,25 @@ - - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_keyboard.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_keyboard.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_keyboard.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,104 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,73 +1,47 @@ - - + - - - - - - - - - - - + + + + - - - - - - - + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - + + + + + + - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,86 +1,58 @@ - - + - - - - - - - - - - - - + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_landline_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,87 +1,59 @@ - - + - - - - - + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_link.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_link.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_link.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,25 +1,20 @@ - - + - - - - - - - - - - - - - - - - + + + + - - - + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_location.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_location.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_location.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,23 @@ - - - - + - - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_lock.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_lock.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_lock.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,40 @@ - - + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_meeting.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_meeting.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_meeting.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,49 +1,47 @@ - - + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_message.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_message.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_message.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,30 +1,23 @@ - - + - - - - - + + + + - - - - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_missed_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_missed_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_missed_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,18 +1,13 @@ - - - - - - - + - - - - + + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mms.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mms.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mms.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,72 +1,44 @@ - - - - - - - - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,44 @@ - - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,59 +1,55 @@ - - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_mobile_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,60 +1,56 @@ - - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_doc.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_doc.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_doc.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,12 +1,10 @@ - - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_pdf.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_pdf.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_pdf.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,12 +1,10 @@ - - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_ppt.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_ppt.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_ppt.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,6 @@ - - + @@ -11,5 +10,4 @@ - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_rtf.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_rtf.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_rtf.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,6 @@ - - + @@ -10,5 +9,4 @@ - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_xls.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_xls.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_ms_xls.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,6 @@ - - + @@ -11,5 +10,4 @@ - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_network.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_network.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_network.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,21 +1,19 @@ - - - - - - + + + + + + - + - - - + + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_network_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_network_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_network_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,33 +1,26 @@ - - - - - - + + + + + + - + - - - + + + - - - - - - - - - - - - - + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_chat.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_chat.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_chat.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,39 +1,32 @@ - - - - - - - - - - - - - - - - + - - - - - - - - + + + + - - - - - - + + + + + + + + + + + + + - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_email_event.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_email_event.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_email_event.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,28 @@ - - - - - - - - - - - - + - - - - - - - - + + + + - - - - - - + + + + + + + + + - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_event.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_event.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_event.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,22 +1,19 @@ - - + - - - - + + + + - + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_tip.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_tip.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_new_tip.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,61 +1,52 @@ - - + - - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_nfc_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_nfc_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_nfc_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,34 +1,23 @@ - - - - - - - - - - - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_no_signal.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_no_signal.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_no_signal.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,25 @@ - - + + - - - - - - - - - - + + + - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_note.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_note.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_note.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,15 @@ - - - - - - - - + - - - - + + + + - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,21 +1,17 @@ - - + - - - - + + + + - - - - - - - + + + + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_online.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_online.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_online.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,23 +1,18 @@ - - + - - - - - + + + + + - - - - - - - - + + + + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_operator.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_operator.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_operator.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,41 +1,26 @@ - - + - - - + + + - + - - - - - - - - + + + - - - - - - - - - + + + + - - - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_outbox.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_outbox.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_outbox.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,30 +1,27 @@ - - + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pager.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pager.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pager.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,39 @@ - - + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pair.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pair.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pair.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,22 +1,17 @@ - - + - - - - - + + + + - - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pd_wcdma.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pd_wcdma.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pd_wcdma.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,33 +1,31 @@ - - - - - - + + + + + + - + - - - - - - - - - - + + + - - - - - + + + + + + - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pd_wcdma_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pd_wcdma_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_pd_wcdma_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,45 +1,38 @@ - - - - - - + + + + + + - + - - - + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_person.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_person.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_person.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,37 @@ - - + - - - - - - + + + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_phone_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_phone_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_phone_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,58 +1,51 @@ - - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + - - - - - - - - - - - - + + + + - - - + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_phonebook.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_phonebook.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_phonebook.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,39 @@ - - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_play.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_play.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_play.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,13 @@ - - - - - - + - - - - + + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_playlist.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_playlist.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_playlist.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,34 +1,26 @@ - - - - - - - - - - - - + - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_presentation.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_presentation.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_presentation.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,53 +1,39 @@ - - + - - - - - - - - - + + + - - - - - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + + + + + + + + - - - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_priority_high.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_priority_high.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_priority_high.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,21 +1,19 @@ - - + + - - - + + + - + - - - + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_priority_low.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_priority_low.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_priority_low.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,18 +1,14 @@ - - + - - - - - - - - + + + - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,27 @@ - - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,10 +1,8 @@ - - - + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected_highlight.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected_highlight.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_selected_highlight.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,32 +1,30 @@ - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - - - + + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,13 @@ - - - - - - - - - - - + + + + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,7 @@ - - - + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected_highlight.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected_highlight.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_radio_unselected_highlight.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,18 @@ - - + + - - - + + + - - - - + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reboot.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reboot.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reboot.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,24 @@ - - - + - - - - - + + + + + - - - - - - - + + + + + + - - - - - + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_received.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_received.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_received.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,17 @@ - - + - - - - - + + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_record.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_record.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_record.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,12 @@ - - + - - - - - - - + + + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_refresh.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_refresh.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_refresh.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,24 +1,18 @@ - - + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reminder.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reminder.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reminder.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,41 +1,38 @@ - - + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_repeat.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_repeat.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_repeat.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,15 @@ - - + - - - - - - - - - - - + + + + - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_repeat_exception.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_repeat_exception.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_repeat_exception.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,30 +1,22 @@ - - - - - - - - - - - - - + - - - - - - - - - - + + + + - - - + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reply.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reply.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reply.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,13 @@ - - + - - - - - - - + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reply_all.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reply_all.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_reply_all.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,22 +1,19 @@ - - - + - - - - + + + + - - - + + + - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_rgb.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_rgb.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_rgb.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,6 @@ - - + @@ -9,7 +8,4 @@ - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,23 +1,21 @@ - - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,8 @@ - - + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_highlight.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_highlight.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_highlight.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,27 +1,26 @@ - - + + - - - + + + - - - - + + + + - + - - - + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_partial.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_partial.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_selected_partial.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,27 @@ - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sent.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sent.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sent.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,16 @@ - - + - - - - + + + + - - - - + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_shuffle.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_shuffle.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_shuffle.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,26 +1,18 @@ - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_shuffle_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_shuffle_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_shuffle_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,38 +1,25 @@ - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_good.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_good.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_good.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,29 +1,18 @@ - - + - - - + + + - + - - - - - + - - - - - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_low.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_low.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_low.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,28 @@ - - + - - - + + + - + - - - + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_medium.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_medium.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_signal_medium.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,32 +1,25 @@ - - + - - - + + + - + - - - - - + - - - + + + - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sisx.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sisx.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sisx.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,28 +1,25 @@ - - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_angry.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_angry.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_angry.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,59 +1,51 @@ - - - + - - - - - + + + + - - - - - + + + + + - + - - - + + + - - - - + + + + - + - - - - - - + + - + - - - + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_bigsmile.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_bigsmile.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_bigsmile.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,54 +1,43 @@ - - - - - - + - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_cry.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_cry.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_cry.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,38 @@ - - - + - - - - - - + + + + + - - - + + + - + - - - - - - - - - - - - + + + + + + - - - - + + + + + - - - - - - - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_evil.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_evil.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_evil.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,38 +1,32 @@ - - - + - - - - - - + + + + + - - - - - - - + + + + + + + + + + + - - - - + + + + - - - - - - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_eyebrows.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_eyebrows.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_eyebrows.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,69 +1,52 @@ - - - + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + - - + + + + + + + + + + + - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_heart.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_heart.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_heart.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,16 +1,12 @@ - - - + - - - - - + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_irritated.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_irritated.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_irritated.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,26 +1,22 @@ - - - + - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_kissing.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_kissing.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_kissing.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,38 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_nerd.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_nerd.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_nerd.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,42 @@ - - - + - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - + + - + - - - - - - - + + + + + + + - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_neutral.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_neutral.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_neutral.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,56 +1,39 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - - - - - - + + + - - - - - - - - + + + + - - - - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_sarcastic.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_sarcastic.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_sarcastic.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,64 +1,47 @@ - - - + - - - - - - + + + + + - - - + + + - + - - - + + + - - - - - + + + + + - - + + - - - - - - - - - - - - - - + + + - - + + + + - - - + + + + + + - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_sarcastic_mad.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_sarcastic_mad.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_sarcastic_mad.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,34 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - + - - - + + + - - - - - - + + - - - + + + + + + - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_smile.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_smile.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_smile.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,36 +1,28 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + + + + + - - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_surprised.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_surprised.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_surprised.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,64 +1,47 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + - - - - + + + + + + - - - - - - - - + + + + - - - - - - - - + + + + - - - - + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_tongue.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_tongue.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_tongue.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,45 +1,41 @@ - - - + - - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - + + + + - + - - - + + + - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_unhappy.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_unhappy.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_unhappy.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,46 +1,34 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - + - - - + + + - - - - - - + + - - - + + + + + + - - - - - - - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_very_cool.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_very_cool.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_very_cool.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,54 +1,46 @@ - - - + - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wink.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wink.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wink.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,41 +1,33 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - + - - - - - - - - + + + - - - - - - - + + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wink_grin.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wink_grin.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wink_grin.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,53 +1,49 @@ - - - + - - - - - - + + + + + - - - - - + + + + + - - - - + + + + + + + + + - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wondering.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wondering.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_smiley_wondering.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,34 @@ - - - + - - - - - - + + + + + - - - - - - - - - + + + + + + + + + - + - + - - - - - - - - + + + + - + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sound.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sound.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sound.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,13 @@ - - - - - - + - - - - + + + + - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_speaker.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_speaker.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_speaker.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,40 @@ - - - - - - - + + + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - + + + + + - - - - - - + + + + + + + + - - - + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_star_non_favourited.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_star_non_favourited.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_star_non_favourited.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,16 +1,14 @@ - - - - - + - - - - + + + + + - + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_swype.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_swype.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_swype.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,49 +1,42 @@ - - - - - - - - + + + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + + + + - - - - - + + + + - - - - - - - + + - - + + - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sync.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sync.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_sync.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,25 +1,22 @@ - - + - - - - + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tag_inactive.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tag_inactive.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tag_inactive.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,21 +1,18 @@ - - + - - - - + + + + + + + + + - - - - - - - - - + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_telephony_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_telephony_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_telephony_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,38 +1,30 @@ - - + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_text.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_text.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_text.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,15 @@ - - - - - - - - + - - - - + + + + - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tick.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tick.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tick.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,16 +1,12 @@ - - - - - - - - - - + + + + + + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tip.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tip.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_tip.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,43 +1,38 @@ - - + - - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_todo.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_todo.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_todo.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,24 +1,22 @@ - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_todo_done.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_todo_done.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_todo_done.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,35 +1,28 @@ - - - - - - - - - - - - - - - + + + + + + - - + + + + + + + + + + + - - - - - - - - - - + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unknown.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unknown.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unknown.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,23 +1,16 @@ - - + - - - + + + - - - - - - - - - - - - - + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,14 @@ - - - - - - - - - - - + + + + + - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected_disabled.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected_disabled.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected_disabled.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,8 +1,7 @@ - - + + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected_highlight.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected_highlight.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_unselected_highlight.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,20 +1,19 @@ - - + + - - - + + + - - - - + + + + - + - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_untrusted.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_untrusted.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_untrusted.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,34 +1,32 @@ - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,42 +1,38 @@ - - + - - - - + + + + - - + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,56 +1,49 @@ - - + - - - - + + + + - - + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - - + + + + + - - - - + + + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_url_address_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,59 +1,50 @@ - - + - - - - + + + + - - + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - - - - + + + + + - - - - - - - - - - + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_video.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_video.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_video.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,18 @@ - - + - - - + + + - - - - + + + + - + @@ -24,9 +23,8 @@ - - - - - - + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,60 +1,54 @@ - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip_home.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip_home.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip_home.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,74 +1,65 @@ - - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - + + + + + + + - - - - - - - - + + + + + + - - - - + + + + - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip_work.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip_work.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_voip_work.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,77 +1,66 @@ - - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - + + + + + - - - - - - - - + + + + + - - - - - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_vpn.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_vpn.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_vpn.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,55 +1,47 @@ - - + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + - - - - - - + + + + + - - - - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wcdma.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wcdma.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wcdma.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,17 @@ - - - - - - + + + + + + - - - - - + + + + + - - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wcdma_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wcdma_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wcdma_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,31 +1,24 @@ - - - - - - - - - - - - - - + - - - - - - - - - - + + + + - - - + + + + + + + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wifi.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wifi.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wifi.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,25 +1,16 @@ - - + - - + + + + + + - - - + - - - - - - - - - - - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,27 +1,22 @@ - - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,37 +1,29 @@ - - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + - - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan_secure.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan_secure.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_small_wlan_secure.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,45 +1,38 @@ - - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + - - - - - - - + + + + + + + - - - - - - + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_battery.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_battery.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_battery.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_connection.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_connection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_hide.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_hide.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_hide.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_hide_connection.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_hide_connection.svg Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_off.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_off.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_bluetooth_off.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - - + - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_egprs.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_egprs.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_egprs.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_gps.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_gps.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_gps.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,8 +1,8 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_hsdpa.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_hsdpa.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_hsdpa.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,9 +1,9 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_missed_call.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_missed_call.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_missed_call.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_email.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_email.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_email.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_im.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_im.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_im.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,8 +1,8 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_message.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_message.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_new_message.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_offline.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_offline.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_offline.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - + - - - + + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_profile_silent.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_profile_silent.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_profile_silent.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - + - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_psm.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_psm.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_psm.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - - + + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_signal.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_signal.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_signal.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_wcdma.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_wcdma.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_wcdma.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,7 +1,7 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_wlan.svg --- a/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_wlan.svg Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/icons/hbdefault/scalable/qtg_status_wlan.svg Fri Sep 17 08:32:10 2010 +0300 @@ -1,10 +1,10 @@ - + - + \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbcolordialog/hbcolordialog.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbcolordialog/hbcolordialog.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbcolordialog/hbcolordialog.css Fri Sep 17 08:32:10 2010 +0300 @@ -22,3 +22,10 @@ color15: 11031552; /* orange - only used when none block is not visible*/ } + +HbColorDialog::content { + left:-var(hb-param-margin-gene-popup-list); + right:var(hb-param-margin-gene-popup-list); + top:-var(hb-param-margin-gene-popup-list); + bottom:var(hb-param-margin-gene-popup-list); +} \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdatepickerviewitem/hbdatepickerviewitem.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdatepickerviewitem/hbdatepickerviewitem.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdatepickerviewitem/hbdatepickerviewitem.css Fri Sep 17 08:32:10 2010 +0300 @@ -2,6 +2,7 @@ HbDatePickerViewItem{ layout:tumble-layout; + } /* diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdatepickerviewitem/hbdatepickerviewitem_color.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdatepickerviewitem/hbdatepickerviewitem_color.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdatepickerviewitem/hbdatepickerviewitem_color.css Fri Sep 17 08:32:10 2010 +0300 @@ -9,3 +9,8 @@ color: var(qtc_tumbler_selected); } +HbDatePickerViewItem[state = "selected"]::text-1 +{ + color: var(qtc_tumbler_selected); +} + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog.css Fri Sep 17 08:32:10 2010 +0300 @@ -1,19 +1,19 @@ HbDialog { max-width:expr(var(hb-param-screen-width)-2*var(hb-param-margin-gene-screen)); max-height:expr(var(hb-param-screen-height)-2*var(hb-param-margin-gene-screen)); - layout:default; + layout:default; } HbDialog[heading_layout] { - layout:content_header; + layout:content_header; } HbDialog[controls_layout] { - layout:content_controls; + layout:content_controls; } HbDialog[heading_layout][controls_layout] { - layout:content_header_controls; + layout:content_header_controls; } HbDialog::heading { @@ -22,16 +22,25 @@ top:-var(hb-param-margin-gene-popup); bottom:var(hb-param-margin-gene-popup); text-height:var(hb-param-text-height-primary); + text-line-count-min:1; + text-line-count-max:1; + text-wrap-mode:no-wrap; text-align:left; font-variant:primary; max-height:expr(var(hb-param-text-height-primary)+2*var(hb-param-margin-gene-popup)); - bottom:var(hb-param-margin-gene-popup); } -HbDialog::controls { - top:-var(hb-param-margin-gene-popup); +HbDialog::background { + left:0un; + right:0un; + top:0un; + bottom:0un; + max-height:expr(var(hb-param-text-height-primary)+2*var(hb-param-margin-gene-popup)); +} + +HbDialog::controls { min-width:expr(var(hb-param-screen-short-edge)-2*var(hb-param-margin-gene-screen)); - fixed-height:var(hb-param-widget-popup-softkey-height); + fixed-height:var(hb-param-widget-popup-softkey-height); } HbDialog::content { @@ -39,10 +48,9 @@ right:var(hb-param-margin-gene-popup); top:-var(hb-param-margin-gene-popup); bottom:var(hb-param-margin-gene-popup); - } -HbDialog > HbListWidget { +HbDialog[list_content]::content { left:-var(hb-param-margin-gene-popup-list); right:var(hb-param-margin-gene-popup-list); top:-var(hb-param-margin-gene-popup-list); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog.widgetml --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog.widgetml Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog.widgetml Fri Sep 17 08:32:10 2010 +0300 @@ -1,17 +1,22 @@ - + - - + + - - + + + + + + + @@ -20,20 +25,25 @@ - - - - + + + + + + + + + - + - - + + @@ -42,13 +52,18 @@ - - - + + + + + - - + + + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog_color.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog_color.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbdialog/hbdialog_color.css Fri Sep 17 08:32:10 2010 +0300 @@ -1,1 +1,3 @@ - +HbDialog::heading { + color: var(qtc_popup_heading_normal); +} \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbgroupboxheadingwidget/hbgroupboxheadingwidget.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbgroupboxheadingwidget/hbgroupboxheadingwidget.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbgroupboxheadingwidget/hbgroupboxheadingwidget.css Fri Sep 17 08:32:10 2010 +0300 @@ -1,4 +1,4 @@ -HbGroupBoxHeadingWidget[groupBoxType="1"] +HbGroupBoxHeadingWidget[groupBoxType="1"] { layout:simple_label; size-policy-vertical:fixed; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbgroupboxheadingwidget/hbgroupboxheadingwidget_color.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbgroupboxheadingwidget/hbgroupboxheadingwidget_color.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbgroupboxheadingwidget/hbgroupboxheadingwidget_color.css Fri Sep 17 08:32:10 2010 +0300 @@ -1,4 +1,4 @@ -/* Simple Label groupBox */ +/* Simple Label groupBox heading text */ HbGroupBoxHeadingWidget[groupBoxType="1"]::text { color: var(qtc_viewtitle_normal); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbmenu/hbmenu.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbmenu/hbmenu.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbmenu/hbmenu.css Fri Sep 17 08:32:10 2010 +0300 @@ -9,8 +9,8 @@ HbMenu::content { max-width: expr(var(hb-param-screen-short-edge)-9un); - min-width: expr((var(hb-param-screen-short-edge)-9un)/2); - max-height: 43un; + min-width: expr((var(hb-param-screen-short-edge)-9un)/2); + max-height: expr(var(hb-param-text-height-primary)*6+var(hb-param-margin-gene-top)*6+var(hb-param-margin-gene-bottom)*6); size-policy-vertical: expanding; size-policy-horizontal: expanding; } @@ -19,3 +19,8 @@ { min-width: expr(var(hb-param-screen-short-edge)-9un); } + +HbMenu[menuType="2"]::content +{ + max-height: expr(var(hb-param-text-height-secondary)*6+var(hb-param-margin-gene-top)*6+var(hb-param-margin-gene-bottom)*6); +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbmenuitem/hbmenuitem.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbmenuitem/hbmenuitem.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbmenuitem/hbmenuitem.css Fri Sep 17 08:32:10 2010 +0300 @@ -24,6 +24,11 @@ text-line-count-max:1; } +HbMenu[menuType="2"] HbMenuItem[!separator_exists]::text +{ + text-height: var(hb-param-text-height-secondary); +} + HbMenuItem[separator_exists]::text { fixed-height: 0.75un; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbnavigationbutton/hbnavigationbutton.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbnavigationbutton/hbnavigationbutton.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbnavigationbutton/hbnavigationbutton.css Fri Sep 17 08:32:10 2010 +0300 @@ -8,3 +8,8 @@ top: expr((1/3)*var(hb-param-widget-chrome-height)); fixed-height: var(hb-param-widget-chrome-height); } + +HbNavigationButton::text{ + fixed-width:0un; + fixed-height:0un; +} \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbnavigationbutton/hbnavigationbutton.widgetml --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbnavigationbutton/hbnavigationbutton.widgetml Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbnavigationbutton/hbnavigationbutton.widgetml Fri Sep 17 08:32:10 2010 +0300 @@ -9,6 +9,9 @@ + + + diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbslidercontrol/hbslidercontrol.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbslidercontrol/hbslidercontrol.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbslidercontrol/hbslidercontrol.css Fri Sep 17 08:32:10 2010 +0300 @@ -1,11 +1,13 @@ HbSliderControl[orientation="Vertical"] { layout:slidercontrol_vertical; + tooltip-border-height:3.0un; } HbSliderControl[orientation="Horizontal"] { layout:slidercontrol_horizontal; + tooltip-border-height:3.0un; } HbSliderControl[orientation="Horizontal"]::groove @@ -51,8 +53,8 @@ HbSliderControl[orientation="Vertical"]::handle { - fixed-width:6un; - fixed-height:3un; + fixed-height:var(hb-param-widget-slider-thumb-width); + fixed-width:expr(2*var(hb-param-widget-slider-thumb-width)); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbstatusbar/hbstatusbar.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbstatusbar/hbstatusbar.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbstatusbar/hbstatusbar.css Fri Sep 17 08:32:10 2010 +0300 @@ -6,13 +6,13 @@ HbStatusBar::timetext { - font-variant: secondary; + font-variant: primary; text-align: center; size-policy-horizontal: ignored; text-line-count-min: 1; text-line-count-max: 1; text-wrap-mode: no-wrap; - fixed-height: 2.5un; + fixed-height: 2.7un; } HbStatusBar::signal diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbtoolbarextension/hbtoolbarextension.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbtoolbarextension/hbtoolbarextension.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbtoolbarextension/hbtoolbarextension.css Fri Sep 17 08:32:10 2010 +0300 @@ -1,10 +1,16 @@ HbToolBarExtension { - content-margins: var(hb-param-margin-gene-popup-list); - max-rows-portrait: 4; - max-rows-landscape: 3; - max-columns-portrait: 3; - max-columns-landscape: 4; - max-width:var(hb-param-screen-width); - max-height:var(hb-param-screen-height); - min-width:0un; + max-rows-portrait: 4; + max-rows-landscape: 3; + max-columns-portrait: 3; + max-columns-landscape: 4; + max-width:var(hb-param-screen-width); + max-height:var(hb-param-screen-height); + min-width:0un; } + +HbToolBarExtension::content { + left:-var(hb-param-margin-gene-popup-list); + right:var(hb-param-margin-gene-popup-list); + top:-var(hb-param-margin-gene-popup-list); + bottom:var(hb-param-margin-gene-popup-list); +} \ No newline at end of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbtoolbutton/hbtoolbutton_color.css --- a/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbtoolbutton/hbtoolbutton_color.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/rules/widgets/hbtoolbutton/hbtoolbutton_color.css Fri Sep 17 08:32:10 2010 +0300 @@ -13,7 +13,7 @@ color:var(qtc_toolbar_disabled); } -HbToolButton[checked]::text +HbToolButton[state = "latched"]::text { color:var(qtc_toolbar_latched); } @@ -33,7 +33,7 @@ color:var(qtc_toolbar_disabled); } -HbToolButton[checked]::icon +HbToolButton[state = "latched"]::icon { color:var(qtc_toolbar_latched); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/variables/color/hbapplicationcolorgroup.css --- a/src/hbcore/resources/themes/style/hbdefault/variables/color/hbapplicationcolorgroup.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/variables/color/hbapplicationcolorgroup.css Fri Sep 17 08:32:10 2010 +0300 @@ -23,8 +23,8 @@ qtc_cal_day_preview_text:#505050; /* Modified 02.08.2010 */ qtc_cal_day_hour_lines:#505050; /* Added 05.02.2010 */ qtc_cal_monthgrid_title:#FFFFFF; /* Added 05.02.2010 */ -qtc_cal_meeting:#000000; /* Added 14.06.2010 */ qtc_cal_view_text:#000000; /* Added 14.06.2010 */ +qtc_cal_meeting_text :#000000; /* Added 17.08.2010 */ /* Application specific - Call handling */ qtc_callhandling_answer_normal:#FFFFFF; /* Added 05.02.2010 */ diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/resources/themes/style/hbdefault/variables/layout/zoom/0/hbglobalparameters.css --- a/src/hbcore/resources/themes/style/hbdefault/variables/layout/zoom/0/hbglobalparameters.css Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/resources/themes/style/hbdefault/variables/layout/zoom/0/hbglobalparameters.css Fri Sep 17 08:32:10 2010 +0300 @@ -18,7 +18,7 @@ */ -/* Hb parameters version 0.17 */ +/* Hb parameters version 0.18 */ /* special variables that can be used e.g. in expressions: hb-param-screen-width @@ -35,7 +35,7 @@ hb-param-graphic-size-function: 5un; hb-param-graphic-size-secondary: 3un; hb-param-graphic-size-image-portrait: 9.5un; -hb-param-graphic-size-image-landscape: 8un; +hb-param-graphic-size-image-landscape: 8.25un; hb-param-text-height-primary: 4un; hb-param-text-height-secondary: 3.5un; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/style/hbstyle.cpp --- a/src/hbcore/style/hbstyle.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/style/hbstyle.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -315,10 +315,12 @@ textItem->setTextClip(td->isTextClip); if (td->geometry.isSet()) textItem->setGeometry(td->geometry); - if (td->fadeLength.isSet()) - textItem->setFadeLength(td->fadeLength); if (td->fadeLengths.isSet()) textItem->setFadeLengths(td->fadeLengths); + if (td->minimumLines.isSet()) + textItem->setMinimumLines(td->minimumLines); + if (td->maximumLines.isSet()) + textItem->setMaximumLines(td->maximumLines); return true; } else if (HbIconItem *iconItem = qgraphicsitem_cast(primitive)) { @@ -1605,6 +1607,7 @@ if (opt) { HbFrameItem *frameItem = static_cast(item); frameItem->frameDrawer().setFrameType(HbFrameDrawer::ThreePiecesHorizontal); + frameItem->frameDrawer().setFillWholeRect(true); if (opt->transparent) { frameItem->frameDrawer().setFrameGraphicsName(QLatin1String("qtg_fr_statusbar_trans")); } else { @@ -1875,9 +1878,9 @@ qstyleoption_cast(option)) { HbFrameItem *iconItem = static_cast(item); iconItem->frameDrawer().setFrameGraphicsName(QLatin1String("qtg_fr_btn_highlight")); - int margin = 4; - QRectF focusRect = opt->rect.adjusted(-margin , -margin , margin , margin); - iconItem->setGeometry(focusRect); + //int margin = 4; + //QRectF focusRect = opt->rect.adjusted(-margin , -margin , margin , margin); + iconItem->setGeometry(opt->boundingRect); iconItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); } break; @@ -2085,6 +2088,7 @@ frameItem->setValue(opt->sliderValue); frameItem->setOrientation(opt->orientation); frameItem->setSpan( opt->span ); + frameItem->setHandleRect(opt->handleRect); frameItem->update(); } break; @@ -2142,8 +2146,8 @@ else { thumbPath=opt->thumbPath; - iconItem->setAlignment(Qt::AlignCenter); } + iconItem->setAlignment(Qt::AlignCenter); iconItem->setIconName(thumbPath); iconItem->setAspectRatioMode(Qt::KeepAspectRatio); } @@ -2431,7 +2435,7 @@ if (const HbStyleOptionMenuItem *opt = qstyleoption_cast(option)) { HbIconItem *iconItem = static_cast(item); Q_UNUSED(opt) - iconItem->setIconName(QLatin1String("qtg_mono_options_menu")); + iconItem->setIconName(QLatin1String("qtg_mono_arrow_right")); } break; @@ -3220,7 +3224,7 @@ break; case P_TumbleView_highlight: - if (const HbStyleOption *opt = qstyleoption_cast(option)) { + /* if (const HbStyleOption *opt = qstyleoption_cast(option)) { if(HbFrameItem *frameItem = qgraphicsitem_cast(item)) { frameItem->frameDrawer().setFrameGraphicsName("qtg_fr_tumbler_highlight_pri"); frameItem->frameDrawer().setFrameType(HbFrameDrawer::ThreePiecesHorizontal); @@ -3231,7 +3235,7 @@ Q_UNUSED(opt); } - } + }*/ break; case P_IndexFeedback_popup_text: @@ -3250,7 +3254,7 @@ } break; case P_DateTimePicker_background: - if (const HbStyleOption *opt = qstyleoption_cast(option)) { + /* if (const HbStyleOption *opt = qstyleoption_cast(option)) { if(HbFrameItem *frameItem = qgraphicsitem_cast(item)) { frameItem->frameDrawer().setFrameGraphicsName("qtg_fr_tumbler_bg"); frameItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); @@ -3259,10 +3263,10 @@ //frameItem->setGeometry(opt->boundingRect); Q_UNUSED(opt); } - } + }*/ break; case P_DateTimePicker_frame: - if (const HbStyleOption *opt = qstyleoption_cast(option)) { + /* if (const HbStyleOption *opt = qstyleoption_cast(option)) { if(HbFrameItem *frameItem = qgraphicsitem_cast(item)) { frameItem->frameDrawer().setFrameGraphicsName("qtg_fr_tumbler_overlay"); frameItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); @@ -3271,10 +3275,10 @@ //frameItem->setGeometry(opt->boundingRect); Q_UNUSED(opt); } - } + }*/ break; case P_DateTimePicker_separator: - if (const HbStyleOption *opt = qstyleoption_cast(option)) { + /* if (const HbStyleOption *opt = qstyleoption_cast(option)) { if(HbFrameItem *frameItem = qgraphicsitem_cast(item)) { frameItem->frameDrawer().setFrameGraphicsName("qtg_graf_tumbler_divider"); frameItem->frameDrawer().setFrameType(HbFrameDrawer::OnePiece); @@ -3285,7 +3289,7 @@ Q_UNUSED(opt); } - } + }*/ break; case P_InputDialog_text: if (const HbStyleOptionInputDialog *opt = @@ -3393,7 +3397,8 @@ #ifdef HBSTYLE_DEBUG qDebug() << "HbStyle::polishItem : -- Number of matching CSS declarations: " << decl.count(); #endif - HbCss::ValueExtractor extractor(decl, layoutParameters, profile); + HbCss::ValueExtractor extractor(decl, profile); + extractor.setLayoutParameters(layoutParameters); HbCss::KnownProperties prop; if ( !extractor.extractKnownProperties(prop) ) { @@ -3681,7 +3686,8 @@ #ifdef HBSTYLE_DEBUG qDebug() << "HbStyle::polishAnchor : -- Number of matching CSS declarations: " << decl.count(); #endif - HbCss::ValueExtractor extractor(decl, layoutParameters, profile); + HbCss::ValueExtractor extractor(decl, profile); + extractor.setLayoutParameters(layoutParameters); HbCss::KnownProperties prop; if ( !extractor.extractKnownProperties(prop) ) { @@ -3799,7 +3805,8 @@ #endif d->layoutParameters.init(profile); - HbCss::ValueExtractor extractor(decl, d->layoutParameters, profile); + HbCss::ValueExtractor extractor(decl, profile); + extractor.setLayoutParameters(d->layoutParameters); QString layoutName; QString sectionName; @@ -4128,7 +4135,8 @@ } Q_D( const HbStyle ); d->layoutParameters.init(effectiveProfile); - HbCss::ValueExtractor valueExtractor(d->layoutParameters, true, effectiveProfile); + HbCss::ValueExtractor valueExtractor(effectiveProfile); + valueExtractor.setLayoutParameters(d->layoutParameters); // todo: parsing variable/expression is done here so that there is no need to change API // also parameters method not changed (this change is done for docml/widgetml parsing) if (param.startsWith(QLatin1String("var(")) && param.endsWith(QLatin1String(")"))) { @@ -4150,6 +4158,19 @@ return valueExtractor.extractVariableValue(param, value); } +bool HbStylePrivate::parameterFromHashValue(quint32 hashValue, qreal &value, const HbDeviceProfile &profile) const +{ + HbDeviceProfile effectiveProfile = profile; + if ( effectiveProfile.isNull() ) { + effectiveProfile = HbDeviceProfile::current(); + } + layoutParameters.init(effectiveProfile); + HbCss::ValueExtractor valueExtractor(effectiveProfile); + valueExtractor.setLayoutParameters(layoutParameters); + return valueExtractor.extractVariableValue(hashValue, value); +} + + /*! Returns copy of all global style parameters. Both names and values of the parameters are returned. The values are returned in pixels. @@ -4172,7 +4193,8 @@ Q_D( const HbStyle ); d->layoutParameters.init(effectiveProfile); - HbCss::ValueExtractor valueExtractor(d->layoutParameters, true, effectiveProfile); + HbCss::ValueExtractor valueExtractor(effectiveProfile); + valueExtractor.setLayoutParameters(d->layoutParameters); qreal value = 0; HbLayoutParameters::const_iterator i = d->layoutParameters.constBegin(); while (i != d->layoutParameters.constEnd()) { @@ -4230,7 +4252,8 @@ #endif d->layoutParameters.init(profile); - HbCss::ValueExtractor extractor(decl, d->layoutParameters, profile); + HbCss::ValueExtractor extractor(decl, profile); + extractor.setLayoutParameters(d->layoutParameters); extractor.extractCustomProperties( params.keys(), params.values() ); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/style/hbstyle.h --- a/src/hbcore/style/hbstyle.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/style/hbstyle.h Fri Sep 17 08:32:10 2010 +0300 @@ -55,6 +55,7 @@ }; enum PrimitiveType { + PT_None = 0, PT_TextItem = 1, PT_RichTextItem = 2, PT_FrameItem = 3, @@ -79,6 +80,7 @@ protected: friend class HbWidget; friend class HbWidgetStyleLoader; + friend class HbXmlLoaderBaseActions; virtual void polish(HbWidget *widget, HbStyleParameters ¶ms); virtual void updateThemedParams(HbWidget *widget); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/style/hbstyle_p.h --- a/src/hbcore/style/hbstyle_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/style/hbstyle_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -109,6 +109,7 @@ P_Popup_heading_frame, P_ToolTip_background, P_MessageBox_icon, + P_MessageBox_text, P_ItemViewItem_background, P_ListViewItem_text, P_ListViewItem_richtext, @@ -226,7 +227,6 @@ P_InputDialog_additional_text = P_InputDialog_additionaltext, //deprecated P_NotUsed = 0x00f00000, - P_MessageBox_text, //deprecated ,not used. P_ProgressSlider_handle, // DEPRECATED, NOT USED P_ProgressBar_text, // DEPRECATED, NOT USED @@ -263,6 +263,11 @@ static HbWidgetBasePrivate *widgetBasePrivate(HbWidgetBase *widgetBase); + bool parameterFromHashValue( + quint32 hashValue, + qreal &value, + const HbDeviceProfile &profile = HbDeviceProfile()) const; + HbStyle* q_ptr; mutable HbLayoutParameters layoutParameters; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/style/hbstyletextprimitivedata.h --- a/src/hbcore/style/hbstyletextprimitivedata.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/style/hbstyletextprimitivedata.h Fri Sep 17 08:32:10 2010 +0300 @@ -46,8 +46,9 @@ HbStyleValue isTextVisible; HbStyleValue isTextClip; HbStyleValue geometry; - HbStyleValue fadeLength; HbStyleValue fadeLengths; + HbStyleValue minimumLines; + HbStyleValue maximumLines; }; #endif // HBSTYLETEXTPRIMITIVEDATA_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/style/hbstylevalue.h --- a/src/hbcore/style/hbstylevalue.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/style/hbstylevalue.h Fri Sep 17 08:32:10 2010 +0300 @@ -26,6 +26,9 @@ #ifndef HBSTYLEVALUE_H #define HBSTYLEVALUE_H +#include +#include +#include template class HbStyleValue @@ -38,6 +41,9 @@ T value() const; operator T() const; void operator=(const T &value); + bool operator!=(const T &value) const; + bool operator==(const T &value) const; + void clear(); private: bool mSet; @@ -81,4 +87,58 @@ mSet = true; } +template +void HbStyleValue::clear() +{ + mSet = false; +} + +template +bool HbStyleValue::operator!=(const T &value) const +{ + if (!mSet) { + return true; + } + return mVal!=value; +} + +template +bool HbStyleValue::operator==(const T &value) const +{ + return !(*this!=value); +} + +template +bool operator!=(const T &value, const HbStyleValue &other) +{ + return other!=value; +} + +template +inline bool operator==(const T &value, const HbStyleValue &other) +{ + return !(other!=value); +} + +template<> +inline void HbStyleValue::clear() +{ + mSet = false; + mVal.clear(); +} + +template<> +inline void HbStyleValue::clear() +{ + mSet = false; + mVal.clear(); +} + +template<> +inline void HbStyleValue::clear() +{ + mSet = false; + mVal.clear(); +} + #endif // HBSTYLEVALUE_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/theme/hbeffecttheme_p.cpp --- a/src/hbcore/theme/hbeffecttheme_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/theme/hbeffecttheme_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -70,9 +70,7 @@ QString HbEffectTheme::getEffectXml(const QString &fileNameLogical, bool &fromTheme) const { -#ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: getEffectXml effect: " << fileNameLogical; -#endif + THEME_INDEX_DEBUG() << "ThemeIndex: getEffectXml effect: " << fileNameLogical; if (HbThemeUtils::isLogicalName(fileNameLogical)) { // Try to get themed icon information from theme index diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/theme/hbtheme.cpp --- a/src/hbcore/theme/hbtheme.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/theme/hbtheme.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -132,7 +132,7 @@ // Condition added to check if the client itself is server. if(THEME_SERVER_NAME != HbMemoryUtils::getCleanAppName()) { if(!HbThemeClient::global()->connectToServer()) { - qWarning() << "ThemeClient unable to connect to server in HbThemePrivate::HbThemePrivate."; + hbWarning() << "ThemeClient unable to connect to server in HbThemePrivate::HbThemePrivate."; } } #endif diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/theme/hbthemeclient_generic_p.cpp --- a/src/hbcore/theme/hbthemeclient_generic_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/theme/hbthemeclient_generic_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -43,9 +43,7 @@ iniFileWatcher(0), clientConnected(false) { -#ifdef THEME_SERVER_TRACES - qDebug() << Q_FUNC_INFO ; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO; QSettings settings(QSettings::IniFormat, QSettings::UserScope, QLatin1String(ORGANIZATION), QLatin1String(THEME_COMPONENT)); iniFileWatcher = new QFileSystemWatcher(this); @@ -67,9 +65,7 @@ void HbThemeClientPrivate::iniFileChanged(QString iniFile) { Q_UNUSED(iniFile); -#ifdef THEME_SERVER_TRACES - qDebug() << Q_FUNC_INFO; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO; QSettings settings(QSettings::IniFormat, QSettings::UserScope, QLatin1String(ORGANIZATION), QLatin1String(THEME_COMPONENT)); QString newTheme = settings.value("currenttheme").toString(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/theme/hbthemeclient_symbian_p.cpp --- a/src/hbcore/theme/hbthemeclient_symbian_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/theme/hbthemeclient_symbian_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -417,8 +417,8 @@ #endif TInt err = SendReceive(EStyleSheetLookup, args); #ifdef THEME_SERVER_TRACES - qDebug("Time elapsed in IPC is : %d ms", time.elapsed()); -#endif + THEME_GENERIC_DEBUG() << "Time elapsed in IPC:" << time.elapsed() << "ms"; +#endif if (KErrNone == err) { if (stylesheetInfo.offset >= 0) { @@ -466,9 +466,7 @@ */ HbEffectFxmlData *HbThemeClientPrivate::getSharedEffect(const QString &filePath) { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeClientPrivate::getSharedEffect" << filePath; -#endif + THEME_GENERIC_DEBUG() << "HbThemeClientPrivate::getSharedEffect" << filePath; if ( !clientConnected ) { return 0; } @@ -487,23 +485,21 @@ time.start(); #endif TInt err = SendReceive(EEffectLookupFilePath, args); -#ifdef THEME_SERVER_TRACES - qDebug() << "Time elapsed in EEffectLookupFilePath IPC is : %d ms" << time.elapsed(); -#endif +#ifdef THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << "Time elapsed in EEffectLookupFilePath IPC:" << time.elapsed() << "ms"; +#endif if (KErrNone == err) { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeClientPrivate::getSharedEffect effectInfo.offSet is:" + THEME_GENERIC_DEBUG() << "HbThemeClientPrivate::getSharedEffect effectInfo.offSet is:" << effectInfo.offset; -#endif if (effectInfo.offset >= 0) { fxmlData = HbMemoryUtils::getAddress( HbMemoryManager::SharedMemory, effectInfo.offset); } else { - qWarning() << "get effect offset error!" << effectInfo.offset; + THEME_GENERIC_DEBUG() << "effect offset invalid: " << effectInfo.offset; } } else { - qWarning() << "get effect sendreceive error!" << (int)err; + THEME_GENERIC_DEBUG() << "effect sendreceive error:" << err; } return fxmlData; } @@ -515,9 +511,7 @@ */ bool HbThemeClientPrivate::addSharedEffect(const QString &filePath) { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeClientPrivate::addSharedEffect" << filePath; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "with filePath:" << filePath; if ( !clientConnected ) { return false; } @@ -534,25 +528,21 @@ time.start(); #endif TInt err = SendReceive(EEffectAdd, args); -#ifdef THEME_SERVER_TRACES - qDebug("Time elapsed in EEffectAdd IPC is : %d ms", time.elapsed()); -#endif +#ifdef THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << "Time elapsed in EEffectAdd IPC:" << time.elapsed() << "ms"; +#endif if (KErrNone == err) { TInt result = sharedInfo(); -#ifdef THEME_SERVER_TRACES - qDebug() << "TInt result (offset):" << result; -#endif + THEME_GENERIC_DEBUG() << "TInt result (offset):" << result; if (result >= 0) { -#ifdef THEME_SERVER_TRACES - qDebug() << "add effect results returning TRUE"; -#endif + THEME_GENERIC_DEBUG() << "add effect results returning TRUE"; return true; } - qWarning() << "add effect offset error!" << (int) result; + THEME_GENERIC_DEBUG() << "effect offset error:" << result; } else { - qWarning() << "add effect sendreceive error!" << (int) err; + THEME_GENERIC_DEBUG() << "effect sendreceive error:" << (int) err; } return false; } @@ -678,7 +668,7 @@ { if ( !clientConnected ) { if(!connectToServer()) { - qWarning() << "Theme client unable to connect to server in HbThemeClientPrivate::deviceProfiles"; + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "connect to theme server failed"; return 0; } } @@ -702,10 +692,8 @@ */ void HbThemeClientPrivate::handleThemeChange(const QString &themeName) { -#ifdef THEME_SERVER_TRACES - qDebug() << Q_FUNC_INFO <<"themeChanged(): called"; -#endif - hbInstance->theme()->d_ptr->handleThemeChange(themeName); + THEME_GENERIC_DEBUG() << Q_FUNC_INFO; + hbInstance->theme()->d_ptr->handleThemeChange(themeName); } /** @@ -849,16 +837,13 @@ { int freeSharedMem = -1; if ( !clientConnected ) { - qWarning() << "Theme client unable to connect to server in HbThemeClientPrivate::freeSharedMemory"; + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "connect to theme server failed."; return freeSharedMem; } TPckg freeInfo(freeSharedMem); TIpcArgs args(0, &freeInfo); TInt err = SendReceive(EFreeSharedMem, args); -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeClientPrivate::freeSharedMemory end"; -#endif return freeSharedMem; } @@ -869,7 +854,7 @@ { int allocatedSharedMem = -1; if ( !clientConnected ) { - qWarning() << "Theme client unable to connect to server in HbThemeClientPrivate::allocatedSharedMemory"; + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "connect to theme server failed."; return allocatedSharedMem; } @@ -886,7 +871,7 @@ { int allocatedHeapMem = -1; if ( !clientConnected ) { - qWarning() << "Theme client unable to connect to server in HbThemeClientPrivate::allocatedHeapMemory"; + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "connect to theme server failed."; return allocatedHeapMem; } @@ -943,7 +928,7 @@ { if ( !clientConnected ) { if(!connectToServer()) { - qWarning() << "Theme client unable to connect to server in HbThemeClientPrivate::typefaceInfo"; + hbWarning() << "Theme client unable to connect to server in HbThemeClientPrivate::typefaceInfo"; return 0; } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/theme/hbthemecommon_p.h --- a/src/hbcore/theme/hbthemecommon_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/theme/hbthemecommon_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -73,10 +73,28 @@ #define CSSBIN_TRACES #endif +//define debug macros. +#ifdef THEME_SERVER_TRACES +#define THEME_GENERIC_DEBUG qDebug +#else +#define THEME_GENERIC_DEBUG QT_NO_QDEBUG_MACRO +#endif + +#ifdef THEME_INDEX_TRACES +#define THEME_INDEX_DEBUG qDebug +#else +#define THEME_INDEX_DEBUG QT_NO_QDEBUG_MACRO +#endif + +#ifdef CSSBIN_TRACES +#define THEME_CSSBIN_DEBUG qDebug +#else +#define THEME_CSSBIN_DEBUG QT_NO_QDEBUG_MACRO +#endif + // To enable fute testing for cache //#define HB_ICON_CACHE_DEBUG - enum HbThemeType { BaseTheme = 0, OperatorC = 1, diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbdeviceprofile.cpp --- a/src/hbcore/utils/hbdeviceprofile.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbdeviceprofile.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -88,9 +88,8 @@ found = true; } } - if (!found) { - qWarning() << "Device profile" << name << "not found!"; - } + // The !found case is actually normal, just have the default constructed + // profile in that case, no need to raise errors. } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbsleepmodelistener_p.cpp --- a/src/hbcore/utils/hbsleepmodelistener_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbsleepmodelistener_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -78,6 +78,7 @@ if (!lastStatusValid || lastStatus != status) { lastStatusValid = true; lastStatus = status; +#ifndef __WINSCW__ RProcess process; // If process is something else than themeserver if (process.SecureId().iId != KHbPsHardwareCoarseOrientationCategoryUid.iUid) { @@ -93,6 +94,7 @@ HbEvent event(status == CHWRMLight::ELightOff ? HbEvent::SleepModeEnter : HbEvent::SleepModeExit); QCoreApplication::sendEvent(qApp, &event); } +#endif //__WINSCW__ } } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbwidgetloader_p.h --- a/src/hbcore/utils/hbwidgetloader_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbwidgetloader_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -54,14 +54,17 @@ HbXmlLengthValue::Type minType; float minVal; + quint32 minHashValue; HbString minText; HbXmlLengthValue::Type prefType; float prefVal; + quint32 prefHashValue; HbString prefText; HbXmlLengthValue::Type maxType; float maxVal; + quint32 maxHashValue; HbString maxText; int sizepolicy; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbwidgetloaderactions_p.cpp --- a/src/hbcore/utils/hbwidgetloaderactions_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbwidgetloaderactions_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -205,12 +205,15 @@ item.dstEdge = dstEdge; item.minType = minLength.mType; item.minVal = minLength.mValue; + item.minHashValue = minLength.mHashValue; item.minText = minLength.mString; item.prefType = prefLength.mType; item.prefVal = prefLength.mValue; + item.prefHashValue = prefLength.mHashValue; item.prefText = prefLength.mString; item.maxType = maxLength.mType; item.maxVal = maxLength.mValue; + item.maxHashValue = maxLength.mHashValue; item.maxText = maxLength.mString; item.sizepolicy = policy ? *policy : -1; item.direction = dir ? *dir : -1; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbwidgetloadersyntax_p.cpp --- a/src/hbcore/utils/hbwidgetloadersyntax_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbwidgetloadersyntax_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -252,12 +252,15 @@ HbXmlLengthValue minLength, prefLength, maxLength; minLength.mType = item.minType; minLength.mValue = item.minVal; + minLength.mHashValue = item.minHashValue; minLength.mString = item.minText; prefLength.mType = item.prefType; prefLength.mValue = item.prefVal; + prefLength.mHashValue = item.prefHashValue; prefLength.mString = item.prefText; maxLength.mType = item.maxType; maxLength.mValue = item.maxVal; + maxLength.mHashValue = item.maxHashValue; maxLength.mString = item.maxText; QSizePolicy::Policy sizepolicy; QSizePolicy::Policy *sizepolicy_p = 0; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbxmlloaderabstractsyntax_p.cpp --- a/src/hbcore/utils/hbxmlloaderabstractsyntax_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbxmlloaderabstractsyntax_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -24,6 +24,7 @@ ****************************************************************************/ #include "hbxmlloaderabstractsyntax_p.h" +#include "hbhash_p.h" #include #include @@ -194,7 +195,13 @@ break; } case HbXmlLengthValue::Variable: + case HbXmlLengthValue::VariableNegative: + { + stream << value.mHashValue; + break; + } case HbXmlLengthValue::Expression: + case HbXmlLengthValue::ExpressionNegative: stream << value.mString; break; default: @@ -222,7 +229,11 @@ break; } case HbXmlLengthValue::Variable: + case HbXmlLengthValue::VariableNegative: + stream >> value.mHashValue; + break; case HbXmlLengthValue::Expression: + case HbXmlLengthValue::ExpressionNegative: stream >> value.mString; break; default: @@ -594,33 +605,50 @@ bool HbXmlLoaderAbstractSyntax::toLengthValue(const QString &value, HbXmlLengthValue& lengthVal) const { bool retVal(true); - QString val = value; - val.reserve(val.length()); + quint32 hashValue(0); HbXmlLengthValue::Type type = HbXmlLengthValue::PlainNumber; - if ( val.endsWith(lexemValue(UNIT_UNIT), Qt::CaseInsensitive) ) { + if ( value.endsWith(lexemValue(UNIT_UNIT), Qt::CaseInsensitive) ) { type = HbXmlLengthValue::Unit; - } else if ( val.endsWith(lexemValue(UNIT_PIXEL), Qt::CaseInsensitive) ) { + } else if ( value.endsWith(lexemValue(UNIT_PIXEL), Qt::CaseInsensitive) ) { type = HbXmlLengthValue::Pixel; - } else if ( val.endsWith(lexemValue(UNIT_MILLIMETER), Qt::CaseInsensitive) ) { + } else if ( value.endsWith(lexemValue(UNIT_MILLIMETER), Qt::CaseInsensitive) ) { type = HbXmlLengthValue::Millimeter; - } else if ( (val.startsWith( lexemValue(UNIT_VAR_START) ) || - val.startsWith( lexemValue(UNIT_VAR_NEG_START) ) ) && val.endsWith( lexemValue(UNIT_VAR_END) ) ) { + } else if ( value.startsWith( lexemValue(UNIT_VAR_START) ) && value.endsWith( lexemValue(UNIT_VAR_END) ) ) { type = HbXmlLengthValue::Variable; - } else if ( (val.startsWith( lexemValue(UNIT_EXPR_START) ) || - val.startsWith( lexemValue(UNIT_EXPR_NEG_START) )) && val.endsWith( lexemValue(UNIT_EXPR_END) ) ) { + hashValue = hbHash(value.midRef(4,value.length()-5)); + } else if ( value.startsWith( lexemValue(UNIT_VAR_NEG_START) ) && value.endsWith( lexemValue(UNIT_VAR_END) ) ) { + type = HbXmlLengthValue::VariableNegative; + hashValue = hbHash(value.midRef(5,value.length()-6)); + } else if ( value.startsWith( lexemValue(UNIT_EXPR_START) ) && value.endsWith( lexemValue(UNIT_EXPR_END) ) ) { type = HbXmlLengthValue::Expression; + } else if ( value.startsWith( lexemValue(UNIT_EXPR_NEG_START) ) && value.endsWith( lexemValue(UNIT_EXPR_END) ) ) { + type = HbXmlLengthValue::ExpressionNegative; } lengthVal.mType = type; - if ( type == HbXmlLengthValue::Variable || type == HbXmlLengthValue::Expression ) { - lengthVal.mString = value; - lengthVal.mValue = 0; - } else { - lengthVal.mString = QString(); - if (type != HbXmlLengthValue::PlainNumber) { - // Assuming all unit identifiers have two characters - val.chop(2); - } - retVal = toReal( val, lengthVal.mValue ); + lengthVal.mString = QString(); + + switch ( type ) { + case HbXmlLengthValue::None: + break; + case HbXmlLengthValue::PlainNumber: + retVal = toReal( value, lengthVal.mValue ); + break; + case HbXmlLengthValue::Pixel: + case HbXmlLengthValue::Unit: + case HbXmlLengthValue::Millimeter: + retVal = toReal( QString::fromRawData( value.constData(), value.length()-2 ), lengthVal.mValue ); + break; + case HbXmlLengthValue::Variable: + case HbXmlLengthValue::VariableNegative: + lengthVal.mHashValue = hashValue; + break; + case HbXmlLengthValue::Expression: + case HbXmlLengthValue::ExpressionNegative: + lengthVal.mString = value; + lengthVal.mValue = 0; + break; + default: + break; } return retVal; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbxmlloaderabstractsyntax_p.h --- a/src/hbcore/utils/hbxmlloaderabstractsyntax_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbxmlloaderabstractsyntax_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -108,13 +108,16 @@ Unit, Millimeter, Variable, - Expression + VariableNegative, + Expression, + ExpressionNegative }; - HbXmlLengthValue() : mValue(0), mString(QString()), mType(None) {}; - HbXmlLengthValue(qreal value, Type type) : mValue(value), mString(QString()), mType(type) {}; + HbXmlLengthValue() : mValue(0), mHashValue(0), mString(QString()), mType(None) {}; + HbXmlLengthValue(qreal value, Type type) : mValue(value), mHashValue(0), mString(QString()), mType(type) {}; qreal mValue; + quint32 mHashValue; QString mString; Type mType; }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/utils/hbxmlloaderbaseactions_p.cpp --- a/src/hbcore/utils/hbxmlloaderbaseactions_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/utils/hbxmlloaderbaseactions_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -28,6 +28,7 @@ #include #include #include +#include "hbstyle_p.h" #include @@ -352,7 +353,15 @@ result = mCurrentProfile.ppmValue() * lengthVal.mValue; break; case HbXmlLengthValue::Variable: + case HbXmlLengthValue::VariableNegative: + retVal = hbInstance->style()->d_func()->parameterFromHashValue(lengthVal.mHashValue, result, mCurrentProfile); + if ( lengthVal.mType == HbXmlLengthValue::VariableNegative ) { + result *= -1.0; + } + break; case HbXmlLengthValue::Expression: + case HbXmlLengthValue::ExpressionNegative: + // HbStyle::parameter handles the negative case as the minus sign is part of mString. retVal = hbInstance->style()->parameter( lengthVal.mString, result, mCurrentProfile ); break; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/vkbhosts/hbabstractvkbhost.cpp --- a/src/hbcore/vkbhosts/hbabstractvkbhost.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/vkbhosts/hbabstractvkbhost.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -22,8 +22,10 @@ ** Nokia at developer.feedback@nokia.com. ** ****************************************************************************/ + #include "hbabstractvkbhost.h" #include "hbabstractvkbhost_p.h" +#include "private/hbvkbgeometrylogic_p.h" #include "hbinputvirtualkeyboard.h" #include "hbinputsettingproxy.h" #include "hbinputvkbhostbridge.h" @@ -38,14 +40,8 @@ #include const int HbAnimationTime = 200; -const qreal HbEditorExtraMargin = 17.0; -const qreal HbCursorLineMargin = 5.0; -const qreal HbContainerBorderMargin = 20.0; const qreal HbHeightVerticalFactor = 0.5; const qreal HbHeightHorizFactor = 0.7; -//Marginal value of the keypad height -const qreal HbHeightMarginFactor = 0.6; -const qreal HbDeltaHeight = 3.0; const QString KHandWritingName("Handwriting"); // see hbpopup.cpp for this @@ -218,137 +214,64 @@ mScreenSize = screenSize(); } -bool HbAbstractVkbHostPrivate::prepareContainerAnimation(HbVkbHost::HbVkbStatus status) -{ - if (!mKeypad || !mContainerWidget->widgetObject() || !mInputMethod || !mInputMethod->focusObject()) { +// TODO: could be in vkb geometry engine +bool HbAbstractVkbHostPrivate::getViewAndFocusObjects(HbView*& currentView, HbInputFocusObject*& focusObject) +{ + if (!mKeypad || !mInputMethod || !mContainerWidget ) { + return false; + } + + HbMainWindow* window = mainWindow(); + if (!window) { + return false; + } + + currentView = window->currentView(); + if (!currentView) { + return false; + } + + focusObject = mInputMethod->focusObject(); + if (!focusObject) { return false; } - if (status == HbVkbHost::HbVkbStatusOpened) { - // Calculate the area that remains visible when the keypad is open. - QRectF visibleArea = QRectF(0.0, 0.0, mScreenSize.width(), mScreenSize.height() - mKeypad->size().height()); - // adjust the container position such that the focused object is always visible. This is required in some cases - // where the actual visible area is very less when the keypad is opened. The cotainer position is automatically adjusted when - // the keypad height to screen height ratio exceeds the marginal height value HbHeightMarginFactor. By doing this, we can make - // sure that some space available for displaying popups like exactword popup in some input methods - bool adjustContainer = (q_ptr->confirmedKeyboardSize().height() > - (mScreenSize.height() * HbHeightMarginFactor))? true : false; - // Find out the container area. - QRectF containerArea = mContainerWidget->sceneBoundingRect(); - containerArea.adjust(0.0, -HbContainerBorderMargin, 0.0, HbContainerBorderMargin); - - HbMainWindow *mainWin = mainWindow(); - HbView *currentView = mainWin ? mainWin->currentView() : 0; - - if (!currentView) { - return false; - } - // check whether the title and status bars are hidden or not - bool isTitleOrStatusBarVisible = currentView->isItemVisible( - Hb::TitleBarItem) | currentView->isItemVisible(Hb::StatusBarItem); + return true; +} - // move the container up when hiding the title and status bars - if (isTitleOrStatusBarVisible) { - mContainerMovementVector.setY(visibleArea.top() - currentView->sceneBoundingRect().top()); - } - - if (visibleArea.contains(containerArea)) { - // The whole container is already inside the visible area, nothing to do. - return false; - } - - // If it isn't in the visible area yet but fits there. Let's move it there. - if (visibleArea.height() >= containerArea.height()) { - // calculate the new container area after hiding the bars - containerArea.translate(mContainerMovementVector); - - if (adjustContainer) { - adjustContainerPosition(); - } else { - mContainerMovementVector += QPointF(0.0, visibleArea.bottom() - containerArea.bottom()); - } - return true; - } - - // Find out the editor bounding box and add a small margin to height. - QRectF editorGeometry = mInputMethod->focusObject()->editorGeometry(); - editorGeometry.adjust(0.0, -HbCursorLineMargin, 0.0, HbCursorLineMargin); - - // calculate the new editor position after hiding the title bars - editorGeometry.translate(mContainerMovementVector); +bool HbAbstractVkbHostPrivate::prepareContainerAnimation(HbVkbHost::HbVkbStatus status) +{ + // Init and check main objects + HbView* currentView = NULL; + HbInputFocusObject* focusObject = NULL; + if (!getViewAndFocusObjects(currentView, focusObject)) { + return false; + } - // Then see if the editor is already inside the visible area. - // If it isn't, see if it would fit there. - if (!visibleArea.contains(editorGeometry)) { - if (editorGeometry.width() <= visibleArea.width() && - editorGeometry.height() <= visibleArea.height()) { - // first check whether the microfocus rectangle is inside the visible area. In case of - // text or multiline editors, dont change the editor position if cursor is in visible area - if (adjustContainer) { - if (adjustContainerPosition()) { - return true; - } - } - // Yes, it fits into visible area, let's move it there so that - // the whole editor area is in use right away. - // First check if we want to move it to upper or lower - // part of the visible area. - if (editorGeometry.top() <= visibleArea.top()) { - // It goes to the upper part of the visible area. - mContainerMovementVector += QPointF(0.0, -editorGeometry.top()); - } else { - mContainerMovementVector += QPointF(0.0, visibleArea.bottom() - editorGeometry.bottom()); - } - return true; - } - } - - // The editor is either already inside the visible area or doesn't fit there. - // Let's see if the cursor is visble. - // First find out micro focus rectangle and increase the height by a small margin. - QRectF microFocus = mInputMethod->focusObject()->microFocus(); - microFocus.setTop(microFocus.top() - HbEditorExtraMargin); - microFocus.setBottom(microFocus.bottom() + HbEditorExtraMargin); + // Init parameters before calling... + QSizeF keypadSize = mKeypad->size(); + QRectF viewRect = currentView->sceneBoundingRect(); + bool vkbOpen = mKeypadStatus == HbVkbHost::HbVkbStatusOpened; + bool titlebarVisible = currentView->isItemVisible(Hb::TitleBarItem); + bool statusbarVisible = currentView->isItemVisible(Hb::StatusBarItem); + QRectF containerRect = mContainerWidget->sceneBoundingRect(); + QRectF editorRect = focusObject->editorGeometry(); + QRectF cursorRect = focusObject->microFocus(); - // calculate the new cursor position after hiding the title bars - microFocus.translate(mContainerMovementVector); - - // Check whether the cursor rectangle is inside visible area. - if (!visibleArea.contains(microFocus)) { - QRectF realEditorGeometry = editorGeometry; - realEditorGeometry.adjust(0.0, HbCursorLineMargin, 0.0, -HbCursorLineMargin); - if (!realEditorGeometry.contains(microFocus)) { - // A sanity check. If the microFocus rectangle is outside the editor - // bounding rect, don't do anything. The situation in editor widget is not - // up to date. - return false; - } - // The cursor is outside the visible area. Figure out how much and - // to which direction the container has to be moved. - if (microFocus.bottom() <= visibleArea.top()) { - // First see what would happen if we returned the container to original position. - // Is the cursor visible then? - // This is always preferred, use it if possible. - QPointF toOriginalPos = mOriginalContainerPosition - mContainerWidget->pos(); - QRectF translatedMicroFocus = microFocus.translated(toOriginalPos); - if (visibleArea.contains(translatedMicroFocus)) { - mContainerMovementVector += toOriginalPos; - } else { - // It goes to the upper part of the visible area. - mContainerMovementVector += QPointF(0.0, visibleArea.top() - microFocus.top()); - } - } else { - mContainerMovementVector += QPointF(0.0, visibleArea.bottom() - microFocus.bottom()); - } - return true; - } - if (adjustContainer && adjustContainerPosition()) { - return true; - } - } else { - // It is going to be closed or minimized. - mContainerMovementVector = mOriginalContainerPosition - mContainerMovementStartingPoint; - return true; + if (status == HbVkbHost::HbVkbStatusOpened) { + // Initialize geometry calculation unit to handle all geometry calculations. + HbVkbGeometryLogicPrivate unit = HbVkbGeometryLogicPrivate( + mScreenSize, + keypadSize, + viewRect, + vkbOpen, + titlebarVisible, + statusbarVisible, + containerRect, + editorRect, + cursorRect); + + return unit.calculateContainerMovement( mContainerMovementVector ); } return false; @@ -409,7 +332,7 @@ if (mainWindow) { q_ptr->connect(mainWindow, SIGNAL(aboutToChangeOrientation()), q_ptr, SLOT(orientationAboutToChange())); q_ptr->connect(mainWindow, SIGNAL(orientationChanged(Qt::Orientation)), q_ptr, SLOT(orientationChanged(Qt::Orientation))); - q_ptr->connect(mainWindow, SIGNAL(currentViewChanged(HbView *)), q_ptr, SLOT(currentViewChanged(HbView *))); + q_ptr->connect(mainWindow, SIGNAL(aboutToChangeView(HbView *, HbView *)), q_ptr, SLOT(aboutToChangeView(HbView *, HbView *))); } } @@ -422,7 +345,7 @@ if (mainWindow) { q_ptr->disconnect(mainWindow, SIGNAL(aboutToChangeOrientation()), q_ptr, SLOT(orientationAboutToChange())); q_ptr->disconnect(mainWindow, SIGNAL(orientationChanged(Qt::Orientation)), q_ptr, SLOT(orientationChanged(Qt::Orientation))); - q_ptr->disconnect(mainWindow, SIGNAL(currentViewChanged(HbView *)), q_ptr, SLOT(currentViewChanged(HbView *))); + q_ptr->disconnect(mainWindow, SIGNAL(aboutToChangeView(HbView *, HbView *)), q_ptr, SLOT(aboutToChangeView(HbView *, HbView *))); } } @@ -679,9 +602,12 @@ } HbMainWindow *mainWin = mainWindow(); - HbView *currentView; + if (!mainWin) { + return; + } - if (mainWin && (currentView = mainWin->currentView())) { + HbView *currentView = mainWin->currentView(); + if (currentView) { HbView::HbViewFlags flags = currentView->viewFlags(); HbView::HbViewFlags setFlags = HbView::ViewFlagNone; @@ -716,34 +642,6 @@ } } -bool HbAbstractVkbHostPrivate::adjustContainerPosition() -{ - bool result = false; - if (!mInputMethod || !mInputMethod->focusObject()) { - return result; - } - // Calculate the area that remains visible when the keypad is open. - QRectF visibleArea = QRectF(0.0, 0.0, mScreenSize.width(), mScreenSize.height() - mKeypad->size().height()); - QRectF microFocus = mInputMethod->focusObject()->microFocus(); - microFocus.adjust(0.0, -HbEditorExtraMargin, 0.0, HbEditorExtraMargin); - - // calculate the new cursor position after moving it to the visible area - QRectF newCursorRect = microFocus.translated(mContainerMovementVector); - if (visibleArea.contains(newCursorRect)) { - qreal topArea = newCursorRect.top() - visibleArea.top() - HbDeltaHeight; - qreal bottomArea = visibleArea.bottom() - newCursorRect.bottom() - HbDeltaHeight; - if (topArea > 0 && bottomArea > 0) { - if (topArea >= bottomArea) { - mContainerMovementVector += QPointF(0.0, bottomArea); - } else { - mContainerMovementVector += QPointF(0.0, -topArea); - } - } - result = true; - } - return result; -} - /// @endcond @@ -753,6 +651,9 @@ setParent(containerWidget); HbVkbHost::attachHost(this, containerWidget); + if (containerWidget) { + containerWidget->setFlag(QGraphicsItem::ItemSendsGeometryChanges); + } connect(&d->mTimeLine, SIGNAL(finished()), this, SLOT(animationFinished())); connect(&d->mTimeLine, SIGNAL(valueChanged(qreal)), this, SLOT(animValueChanged(qreal))); @@ -775,6 +676,9 @@ setParent(containerWidget); HbVkbHost::attachHost(this, containerWidget); + if (containerWidget) { + containerWidget->setFlag(QGraphicsItem::ItemSendsGeometryChanges); + } connect(&d->mTimeLine, SIGNAL(finished()), this, SLOT(animationFinished())); connect(&d->mTimeLine, SIGNAL(valueChanged(qreal)), this, SLOT(animValueChanged(qreal))); @@ -786,6 +690,9 @@ setParent(containerWidget); HbVkbHost::attachHost(this, containerWidget); + if (containerWidget) { + containerWidget->setFlag(QGraphicsItem::ItemSendsGeometryChanges); + } connect(&d->mTimeLine, SIGNAL(finished()), this, SLOT(animationFinished())); connect(&d->mTimeLine, SIGNAL(valueChanged(qreal)), this, SLOT(animValueChanged(qreal))); @@ -966,7 +873,9 @@ // Make sure the keypad never steals focus. d->mKeypad->setFlag(QGraphicsItem::ItemIsPanel, true); - d->mKeypad->setActive(false); + if (d->mKeypad->isActive()) { + d->mKeypad->setActive(false); + } emit keypadOpened(); } else if (d->mKeypadStatus == HbVkbHost::HbVkbStatusMinimized) { d->mCallback->keyboardMinimized(this); @@ -979,7 +888,11 @@ d->mContainerWidget->widgetObject()->setProperty(KPositionManagedByVKB, false ); d->mCallback->keyboardClosed(this); emit keypadClosed(); - HbVkbHostBridge::instance()->connectHost(0); + + // Keyboard might be opened again due to pending open call + if (d->mKeypadStatus == HbVkbHost::HbVkbStatusClosed) { + HbVkbHostBridge::instance()->connectHost(0); + } } } } @@ -1199,19 +1112,8 @@ */ void HbAbstractVkbHost::currentViewChanged(HbView *view) { - Q_D(HbAbstractVkbHost); + Q_UNUSED(view); - if (view != d->mContainerWidget->widgetObject()) { - if (d->mTimeLine.state() == QTimeLine::Running) { - d->cancelAnimationAndHideVkbWidget(); - if (d->mCallback) { - d->mCallback->keyboardClosed(this); - } - } else if (d->mKeypadStatus != HbVkbStatusClosed) { - d->closeKeypadWithoutAnimation(); - emit keypadClosed(); - } - } } /*! @@ -1257,5 +1159,23 @@ openKeypad(vkb, d->mInputMethod, d->mPendingCall.animationAllowed); } } +/*! +This slot is called when change in active HbView starts. +*/ +void HbAbstractVkbHost::aboutToChangeView(HbView *oldView, HbView *newView) +{ + Q_D(HbAbstractVkbHost); + if (oldView != newView) { + if (d->mTimeLine.state() == QTimeLine::Running) { + d->cancelAnimationAndHideVkbWidget(); + if (d->mCallback) { + d->mCallback->keyboardClosed(this); + } + } else if (d->mKeypadStatus != HbVkbStatusClosed) { + d->closeKeypadWithoutAnimation(); + emit keypadClosed(); + } + } +} // End of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/vkbhosts/hbabstractvkbhost.h --- a/src/hbcore/vkbhosts/hbabstractvkbhost.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/vkbhosts/hbabstractvkbhost.h Fri Sep 17 08:32:10 2010 +0300 @@ -76,6 +76,8 @@ virtual void currentViewChanged(HbView *); virtual void stateTransitionCompleted(); +private slots: + void aboutToChangeView(HbView *oldView, HbView *newView); protected: HbAbstractVkbHost() : d_ptr(0) {} HbAbstractVkbHost(HbAbstractVkbHostPrivate *dd); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/vkbhosts/hbabstractvkbhost_p.h --- a/src/hbcore/vkbhosts/hbabstractvkbhost_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/vkbhosts/hbabstractvkbhost_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -33,6 +33,8 @@ class HbMainWindow; class HbVirtualKeyboard; class HbAbstractVkbHost; +class HbView; +class HbInputFocusObject; class HbPendingVkbHostCall { @@ -90,7 +92,7 @@ QSizeF screenSize() const; bool disableCursorShift(); void setTitleAndStatusBarVisible(bool visible); - virtual bool adjustContainerPosition(); + bool getViewAndFocusObjects(HbView*& currentView, HbInputFocusObject*& focusObject); public: HbAbstractVkbHost *q_ptr; HbVirtualKeyboard *mCallback; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/vkbhosts/private/hbvkbgeometrylogic_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/vkbhosts/private/hbvkbgeometrylogic_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,224 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#include "hbvkbgeometrylogic_p.h" + +#include +#include + +const qreal HbCursorLineMargin = 15.0; +const qreal HbContainerBorderMargin = 20.0; +const qreal HbEditorExtraMargin = 17.0; + +/*! + \class HbVkbGeometryLogicPrivate + \brief Calculates screen movement in cases the keyboard would overlap with editor + + This class contains calculations and logic to move screen in cases, when upcoming + keyboard would overlap the editor so, that text written could not be seen. Idea is + to minimize the movement as much as possible. + +*/ + +/*! + \internal + \brief Construct current state object screen status. + + Constructor to create status object based on given parameters. These parameters + are used to calculate possible movement vector for container. + + \param screenSize Size of screen. + \param keybadSize Size of keyboard. + \param sceneArea Size of view area, to which container belongs. + \param isVkbOpen Information about current status of VKB. + \param hideTitlebar Should titlebar hiding be calculated? + \param hideStatusbar Should statusbar hiding be calculated? + \param containerArea Area of editor's top item. + \param editorArea Area of editor itself. + \param cursorArea Area of cursor inside editor. +*/ +HbVkbGeometryLogicPrivate::HbVkbGeometryLogicPrivate( + const QSizeF& screenSize, + const QSizeF& keypadSize, + const QRectF& sceneArea, + bool isVkbOpen, + bool hideTitlebar, + bool hideStatusbar, + const QRectF& containerArea, + const QRectF& editorArea, + const QRectF& cursorArea) +{ + // We need to consider situation, when keyboard is already on the screen, in + // which case, titlebar and statusbar are already hidden, thus bigger visible area + // is already in use, so no adjustments needed. + if ( isVkbOpen ) { + mVisibleArea = QRectF(0.0, 0.0, screenSize.width(), screenSize.height() - keypadSize.height()); + mAdjust = 0.0; + } else if ( hideTitlebar || hideStatusbar ) { + // Without titlebar and statusbar, the visible area is from the top of the screen + // to the top of the keyboard. Also, container needs to move slightly, when + // bars are going to be closed. + mVisibleArea = QRectF(0.0, 0.0, screenSize.width(), screenSize.height() - keypadSize.height()); + mAdjust = mVisibleArea.top() - sceneArea.top(); + } else { + // When titlebar and statusbar are visible, visible area is going to be from + // bottom of the titlebar to top of the keyboard. No container movement needed. + mVisibleArea = QRectF(0.0, 0.0, screenSize.width(), sceneArea.height() - keypadSize.height()); + mAdjust = 0.0; + } + + // Find out the container area. + mContainerArea = containerArea; + mContainerArea.adjust(0.0, -HbContainerBorderMargin, 0.0, HbContainerBorderMargin); + mContainerArea.translate(QPointF(0, mAdjust)); + + // Find out the editor bounding box and add a small margin to height. + mEditorArea = editorArea; + mEditorArea.adjust(0.0, -HbCursorLineMargin, 0.0, HbCursorLineMargin); + mEditorArea.translate(QPointF(0, mAdjust)); + + // Finally, get cursor size and adjust it little bit + mCursorArea = cursorArea; + mCursorArea.adjust(0.0, -HbEditorExtraMargin, 0.0, HbEditorExtraMargin); + mCursorArea.translate(QPointF(0, mAdjust)); +} + +/*! + \internal + \brief Check the source area fits inside target area. +*/ +bool HbVkbGeometryLogicPrivate::fitsArea(const QRectF& target, const QRectF& source) const +{ + return source.width() <= target.width() && source.height() <= target.height(); +} + +/*! + \internal + \brief Checks, whether the container fits into the visible area. + + When keyboard opens, the screen will contain visible area and the keyboard area. + This method checks, whether container will fit the visible area. + + \return True, when fits. Otherwise false. +*/ +bool HbVkbGeometryLogicPrivate::containerFitsVisibleArea() const +{ + return fitsArea(mVisibleArea, mContainerArea); +} + +/*! + \internal + \brief Checks, whether the editor fits into the visible area. + + When keyboard opens, the screen will contain visible area and the keyboard area. + This method check, whether editor itself can be fitted to screen. This is needed + when the container cannot fit the screen, so the editor needs to be positioned. + + \return +*/ +bool HbVkbGeometryLogicPrivate::editorFitsVisibleArea() const +{ + return fitsArea(mVisibleArea, mEditorArea); +} + +/*! + \internal + \brief Check if container is fully visible. + + \return True, when fully inside visible area, otherwise false. +*/ +bool HbVkbGeometryLogicPrivate::isContainerVisible() const +{ + return mVisibleArea.contains(mContainerArea); +} + +/*! + \internal + \return True, when editor inside visible area +*/ +bool HbVkbGeometryLogicPrivate::isEditorVisible() const +{ + return mVisibleArea.contains(mEditorArea); +} + +/*! + \internal + \return True, when cursor inside visible area +*/ +bool HbVkbGeometryLogicPrivate::isCursorVisible() const +{ + // Check wheter cursor inside the visible area. + return mVisibleArea.contains(mCursorArea); +} + +/*! + \internal + \brief Calculates movement vector for viewport. + + \return True, when container needs to be moved. +*/ +bool HbVkbGeometryLogicPrivate::calculateContainerMovement(QPointF& vector) const +{ + // In case editor or cursor inside visible area, no extra movement needed. + if ( isCursorVisible() ) { + vector.rx() = 0.0; + vector.ry() = mAdjust; + return false; + } + + // At this point we know, that cursor is not inside of visible area, + // after VKB has been shown. To make it bit prettier, let's check, if we can + // move and fit the whole editor into the screen at once. + if ( !isEditorVisible() && editorFitsVisibleArea() ) { + // Editor is not in screen but fits there, so simply move the whole editor + // to screen. Only thing yet to check is, which direction the editor needs + // to be moved. + if ( mEditorArea.top() <= mVisibleArea.top() ) { + vector = QPointF(0.0, -mEditorArea.top()); + } else { + // In case editor is not inside visible area, move editor until it is. + vector = QPointF(0.0, mVisibleArea.bottom() - mEditorArea.bottom()); + } + + vector.ry() += mAdjust; + + // Vector has been calculated, so finish the story and return. + return true; + } + + // At this point we know, that cursor is not visible and the editor does not fit + // into the visible area. Here we need to move editor, so that the cursor can be + // seen in the visible area. There are two ways to do this. + // 1) Move container, until bottom of editor is reached OR + // 2) Move container, until cursor hits top of the screen + int cursorMove = (int)(mVisibleArea.top() - mCursorArea.top()); + int editorMove = (int)(mVisibleArea.bottom() - mEditorArea.bottom()); + + // Choose smaller movement (notice usage of negative values) + vector = QPointF(0.0, cursorMove >= editorMove ? cursorMove : editorMove); + + vector.ry() += mAdjust; + return true; +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/vkbhosts/private/hbvkbgeometrylogic_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/hbcore/vkbhosts/private/hbvkbgeometrylogic_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (developer.feedback@nokia.com) +** +** This file is part of the HbCore module of the UI Extensions for Mobile. +** +** GNU Lesser General Public License Usage +** 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.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at developer.feedback@nokia.com. +** +****************************************************************************/ + +#ifndef HBVKBGEOMETRYLOGIC_P_H +#define HBVKBGEOMETRYLOGIC_P_H + +#include + +class QSizeF; +class QPointF; + +class HbVkbGeometryLogicPrivate +{ +public: + + HbVkbGeometryLogicPrivate( + const QSizeF& screenSize, + const QSizeF& keypadSize, + const QRectF& sceneArea, + bool isVkbOpen, + bool hideTitlebar, + bool hideStatusbar, + const QRectF& containerArea, + const QRectF& editorArea, + const QRectF& cursorArea); + +// Methods + + bool containerFitsVisibleArea() const; + bool editorFitsVisibleArea() const; + + bool isContainerVisible() const; + bool isEditorVisible() const; + bool isCursorVisible() const; + + bool calculateContainerMovement(QPointF& vector) const; + +private: + + bool fitsArea(const QRectF& target, const QRectF& source) const; + +public: + +// Data + + QRectF mVisibleArea; + QRectF mContainerArea; + QRectF mEditorArea; + QRectF mCursorArea; + qreal mAdjust; +}; + +#endif // HBVKBGEOMETRYLOGIC_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbcore/vkbhosts/vkbhosts.pri --- a/src/hbcore/vkbhosts/vkbhosts.pri Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbcore/vkbhosts/vkbhosts.pri Fri Sep 17 08:32:10 2010 +0300 @@ -29,11 +29,12 @@ DEPENDPATH += $$PWD PRIVATE_HEADERS += $$PWD/hbabstractvkbhost_p.h - +PRIVATE_HEADERS += $$PWD/private/hbvkbgeometrylogic_p.h PUBLIC_HEADERS += $$PWD/hbstaticvkbhost.h PUBLIC_HEADERS += $$PWD/hbabstractvkbhost.h PUBLIC_HEADERS += $$PWD/hbshrinkingvkbhost.h +SOURCES += $$PWD/private/hbvkbgeometrylogic_p.cpp SOURCES += $$PWD/hbabstractvkbhost.cpp SOURCES += $$PWD/hbstaticvkbhost.cpp SOURCES += $$PWD/hbshrinkingvkbhost.cpp diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/defs/bwins/HbInputu.def --- a/src/hbinput/defs/bwins/HbInputu.def Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/defs/bwins/HbInputu.def Fri Sep 17 08:32:10 2010 +0300 @@ -246,7 +246,7 @@ ?listDrawInfoByPages@HbInputCnListCompositior@@QAE?AV?$QVector@VHbCnListCandiDrawInfo@@@@HH@Z @ 245 NONAME ABSENT ; class QVector HbInputCnListCompositior::listDrawInfoByPages(int, int) ?enteredInNonStickyRegion@HbTouchKeypadButton@@IAEXXZ @ 246 NONAME ABSENT ; void HbTouchKeypadButton::enteredInNonStickyRegion(void) ?text@HbInputSpell@@QBEABVQString@@XZ @ 247 NONAME ABSENT ; class QString const & HbInputSpell::text(void) const - ?isRockerVisible@HbInputVkbWidget@@UBE_NXZ @ 248 NONAME ABSENT ; bool HbInputVkbWidget::isRockerVisible(void) const + ?isRockerVisible@HbInputVkbWidget@@UBE_NXZ @ 248 NONAME ABSENT ; bool HbInputVkbWidget::isRockerVisible(void) const ?sendKeypadEvent@HbInputCnScrollKeypad@@AAEXW4HbCnWidgetEventType@@HVQChar@@@Z @ 249 NONAME ABSENT ; void HbInputCnScrollKeypad::sendKeypadEvent(enum HbCnWidgetEventType, int, class QChar) ?inputMode@HbInputCnModel@@QAE?AV?$QFlags@W4HbInputModeTypeFlag@@@@XZ @ 250 NONAME ABSENT ; class QFlags HbInputCnModel::inputMode(void) ?candsListFromPredictEng@HbInputCnModel@@QAEXHHAAVQStringList@@@Z @ 251 NONAME ABSENT ; void HbInputCnModel::candsListFromPredictEng(int, int, class QStringList &) @@ -270,7 +270,7 @@ ??_EHbInputCnScrollKeypad@@UAE@I@Z @ 269 NONAME ABSENT ; HbInputCnScrollKeypad::~HbInputCnScrollKeypad(unsigned int) ?notifyDataUpdated@HbInputCnListCandModel@@UAEX_N@Z @ 270 NONAME ABSENT ; void HbInputCnListCandModel::notifyDataUpdated(bool) ??1Hb12KeyTouchKeypad@@UAE@XZ @ 271 NONAME ABSENT ; Hb12KeyTouchKeypad::~Hb12KeyTouchKeypad(void) - ?rockerDirection@HbInputVirtualRocker@@IAEXHW4RockerSelectionMode@1@@Z @ 272 NONAME ABSENT ; void HbInputVirtualRocker::rockerDirection(int, enum HbInputVirtualRocker::RockerSelectionMode) + ?rockerDirection@HbInputVirtualRocker@@IAEXHW4RockerSelectionMode@1@@Z @ 272 NONAME ABSENT ; void HbInputVirtualRocker::rockerDirection(int, enum HbInputVirtualRocker::RockerSelectionMode) ?getStaticMetaObject@HbInputSettingDialog@@SAABUQMetaObject@@XZ @ 273 NONAME ABSENT ; struct QMetaObject const & HbInputSettingDialog::getStaticMetaObject(void) ?virtualButtonReleased@HbInputCnKeypad@@QAEXH@Z @ 274 NONAME ABSENT ; void HbInputCnKeypad::virtualButtonReleased(int) ??1HbInputSctLandscape@@UAE@XZ @ 275 NONAME ABSENT ; HbInputSctLandscape::~HbInputSctLandscape(void) @@ -289,7 +289,7 @@ ?getStaticMetaObject@HbInputSpell@@SAABUQMetaObject@@XZ @ 288 NONAME ABSENT ; struct QMetaObject const & HbInputSpell::getStaticMetaObject(void) ?setFade@HbRange@@QAEX_N@Z @ 289 NONAME ABSENT ; void HbRange::setFade(bool) ?releaseButton@HbInputCnTchButton@@QAEX_N@Z @ 290 NONAME ABSENT ; void HbInputCnTchButton::releaseButton(bool) - ?setRockerVisible@HbInputVkbWidget@@UAEX_N@Z @ 291 NONAME ABSENT ; void HbInputVkbWidget::setRockerVisible(bool) + ?setRockerVisible@HbInputVkbWidget@@UAEX_N@Z @ 291 NONAME ABSENT ; void HbInputVkbWidget::setRockerVisible(bool) ?qt_metacall@HbInputCnTchButton@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 292 NONAME ABSENT ; int HbInputCnTchButton::qt_metacall(enum QMetaObject::Call, int, void * *) ?hoverEnterEvent@HbInputSpell@@MAEXPAVQGraphicsSceneHoverEvent@@@Z @ 293 NONAME ABSENT ; void HbInputSpell::hoverEnterEvent(class QGraphicsSceneHoverEvent *) ?tr@HbInputCnListView@@SA?AVQString@@PBD0H@Z @ 294 NONAME ABSENT ; class QString HbInputCnListView::tr(char const *, char const *, int) @@ -546,7 +546,7 @@ ?setNumberOfCharacters@HbInputUsedSymbolPane@@QAEXH@Z @ 545 NONAME ABSENT ; void HbInputUsedSymbolPane::setNumberOfCharacters(int) ?setFrameIcon@HbTouchKeypadButton@@QAEXVQString@@@Z @ 546 NONAME ABSENT ; void HbTouchKeypadButton::setFrameIcon(class QString) ?InstallPenTraceDecorator@HbWritingBox@@QAEXXZ @ 547 NONAME ABSENT ; void HbWritingBox::InstallPenTraceDecorator(void) - ?updatePrimitives@HbCandidateList@@MAEXXZ @ 548 NONAME ; void HbCandidateList::updatePrimitives(void) + ?updatePrimitives@HbCandidateList@@MAEXXZ @ 548 NONAME ABSENT ; void HbCandidateList::updatePrimitives(void) ?cellIdxInLine@HbInputCnListCompositior@@IAEPAV?$QList@VHbCnListCellIndexInLine@@@@XZ @ 549 NONAME ABSENT ; class QList * HbInputCnListCompositior::cellIdxInLine(void) ?trUtf8@HbInputCnListView@@SA?AVQString@@PBD0@Z @ 550 NONAME ABSENT ; class QString HbInputCnListView::trUtf8(char const *, char const *) ?tr@HbInputSctLandscape@@SA?AVQString@@PBD0@Z @ 551 NONAME ABSENT ; class QString HbInputSctLandscape::tr(char const *, char const *) @@ -741,7 +741,7 @@ ?staticMetaObject@HbPreviewLabel@@2UQMetaObject@@B @ 740 NONAME ABSENT ; struct QMetaObject const HbPreviewLabel::staticMetaObject ?setIcon@HbInputCnTchButton@@QAEXABVQString@@@Z @ 741 NONAME ABSENT ; void HbInputCnTchButton::setIcon(class QString const &) ?d_func@HbCharPreviewPane@@ABEPBVHbCharPreviewPanePrivate@@XZ @ 742 NONAME ABSENT ; class HbCharPreviewPanePrivate const * HbCharPreviewPane::d_func(void) const - ?updatePrimitives@HbExactWordPopup@@MAEXXZ @ 743 NONAME ; void HbExactWordPopup::updatePrimitives(void) + ?updatePrimitives@HbExactWordPopup@@MAEXXZ @ 743 NONAME ABSENT ; void HbExactWordPopup::updatePrimitives(void) ?updateModel@HbInputCnListView@@QAEXXZ @ 744 NONAME ABSENT ; void HbInputCnListView::updateModel(void) ?tr@HbQwertyKeyboard@@SA?AVQString@@PBD0H@Z @ 745 NONAME ABSENT ; class QString HbQwertyKeyboard::tr(char const *, char const *, int) ?setPredictionBase@HbInputCnModel@@QAE_NVQString@@@Z @ 746 NONAME ABSENT ; bool HbInputCnModel::setPredictionBase(class QString) @@ -1368,7 +1368,7 @@ ?showInputMethodSelectionDialog@HbInputVkbWidgetPrivate@@QAEXXZ @ 1367 NONAME ABSENT ; void HbInputVkbWidgetPrivate::showInputMethodSelectionDialog(void) ?aboutToActivateCustomAction@HbInputButtonGroup@@IAEXPAVHbAction@@@Z @ 1368 NONAME ; void HbInputButtonGroup::aboutToActivateCustomAction(class HbAction *) ?aboutToActivateCustomAction@HbInputVkbWidget@@IAEXPAVHbAction@@@Z @ 1369 NONAME ; void HbInputVkbWidget::aboutToActivateCustomAction(class HbAction *) - ?rockerPosition@HbInputVkbWidget@@MAE?AVQPointF@@XZ @ 1370 NONAME ABSENT; class QPointF HbInputVkbWidget::rockerPosition(void) + ?rockerPosition@HbInputVkbWidget@@MAE?AVQPointF@@XZ @ 1370 NONAME ABSENT ; class QPointF HbInputVkbWidget::rockerPosition(void) ?_q_handleRockerChange@HbInputVkbWidgetPrivate@@QAEXHW4RockerSelectionMode@HbInputVirtualRocker@@@Z @ 1371 NONAME ABSENT ; void HbInputVkbWidgetPrivate::_q_handleRockerChange(int, enum HbInputVirtualRocker::RockerSelectionMode) ?layoutTextLine@HbInputButtonGroupPrivate@@MAEXW4HbInputButtonTextType@HbInputButtonGroup@@PBVHbInputButton@@ABVQSizeF@@AAVQTextLine@@2@Z @ 1372 NONAME ; void HbInputButtonGroupPrivate::layoutTextLine(enum HbInputButtonGroup::HbInputButtonTextType, class HbInputButton const *, class QSizeF const &, class QTextLine &, class QSizeF const &) ?fontSize@HbInputButtonGroupPrivate@@MAEMW4HbInputButtonTextType@HbInputButtonGroup@@@Z @ 1373 NONAME ; float HbInputButtonGroupPrivate::fontSize(enum HbInputButtonGroup::HbInputButtonTextType) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/defs/eabi/HbInputu.def --- a/src/hbinput/defs/eabi/HbInputu.def Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/defs/eabi/HbInputu.def Fri Sep 17 08:32:10 2010 +0300 @@ -131,7 +131,7 @@ _ZN15HbCandidateList13keyPressEventEP9QKeyEvent @ 130 NONAME _ZN15HbCandidateList16currentCandidateEv @ 131 NONAME _ZN15HbCandidateList16staticMetaObjectE @ 132 NONAME DATA 16 - _ZN15HbCandidateList16updatePrimitivesEv @ 133 NONAME + _ZN15HbCandidateList16updatePrimitivesEv @ 133 NONAME ABSENT _ZN15HbCandidateList19getStaticMetaObjectEv @ 134 NONAME _ZN15HbCandidateList23setNumberOfVisibleLinesEi @ 135 NONAME _ZN15HbCandidateList35setSizeAndPositionForAutoCompletionEP9HbVkbHost @ 136 NONAME @@ -171,7 +171,7 @@ _ZN16HbExactWordPopup11qt_metacallEN11QMetaObject4CallEiPPv @ 170 NONAME _ZN16HbExactWordPopup11qt_metacastEPKc @ 171 NONAME _ZN16HbExactWordPopup16staticMetaObjectE @ 172 NONAME DATA 16 - _ZN16HbExactWordPopup16updatePrimitivesEv @ 173 NONAME + _ZN16HbExactWordPopup16updatePrimitivesEv @ 173 NONAME ABSENT _ZN16HbExactWordPopup17exactWordSelectedEv @ 174 NONAME _ZN16HbExactWordPopup17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 175 NONAME _ZN16HbExactWordPopup17setIndicatorArrowENS_25HbExactWordPopupIndicatorE @ 176 NONAME @@ -197,10 +197,10 @@ _ZN16HbInputVkbWidget14mappedKeyPressEi @ 196 NONAME ABSENT _ZN16HbInputVkbWidget14settingsClosedEv @ 197 NONAME _ZN16HbInputVkbWidget15mousePressEventEP24QGraphicsSceneMouseEvent @ 198 NONAME ABSENT - _ZN16HbInputVkbWidget15rockerDirectionEiN20HbInputVirtualRocker19RockerSelectionModeE @ 199 NONAME ABSENT + _ZN16HbInputVkbWidget15rockerDirectionEiN20HbInputVirtualRocker19RockerSelectionModeE @ 199 NONAME ABSENT _ZN16HbInputVkbWidget16asGraphicsWidgetEv @ 200 NONAME _ZN16HbInputVkbWidget16mappedKeyReleaseEi @ 201 NONAME ABSENT - _ZN16HbInputVkbWidget16setRockerVisibleEb @ 202 NONAME ABSENT + _ZN16HbInputVkbWidget16setRockerVisibleEb @ 202 NONAME ABSENT _ZN16HbInputVkbWidget16setupToolClusterEv @ 203 NONAME ABSENT _ZN16HbInputVkbWidget16staticMetaObjectE @ 204 NONAME DATA 16 _ZN16HbInputVkbWidget17keyboardMinimizedEP9HbVkbHost @ 205 NONAME @@ -455,7 +455,7 @@ _ZN20HbInputSettingDialogD1Ev @ 454 NONAME ABSENT _ZN20HbInputSettingDialogD2Ev @ 455 NONAME ABSENT _ZN20HbInputVirtualRocker11qt_metacallEN11QMetaObject4CallEiPPv @ 456 NONAME ABSENT - _ZN20HbInputVirtualRocker11qt_metacastEPKc @ 457 NONAME ABSENT + _ZN20HbInputVirtualRocker11qt_metacastEPKc @ 457 NONAME ABSENT _ZN20HbInputVirtualRocker14mouseMoveEventEP24QGraphicsSceneMouseEvent @ 458 NONAME ABSENT _ZN20HbInputVirtualRocker15mousePressEventEP24QGraphicsSceneMouseEvent @ 459 NONAME ABSENT _ZN20HbInputVirtualRocker15rockerDirectionEiNS_19RockerSelectionModeE @ 460 NONAME ABSENT @@ -639,7 +639,7 @@ _ZNK15HbInputCnKeypad10metaObjectEv @ 638 NONAME ABSENT _ZNK16HbExactWordPopup10metaObjectEv @ 639 NONAME _ZNK16HbInputVkbWidget10metaObjectEv @ 640 NONAME - _ZNK16HbInputVkbWidget15isRockerVisibleEv @ 641 NONAME ABSENT + _ZNK16HbInputVkbWidget15isRockerVisibleEv @ 641 NONAME ABSENT _ZNK16HbInputVkbWidget4modeEv @ 642 NONAME _ZNK16HbInputVkbWidget5shapeEv @ 643 NONAME _ZNK16HbQwertyKeyboard10metaObjectEv @ 644 NONAME ABSENT @@ -684,7 +684,7 @@ _ZNK20HbInputModeIndicator10metaObjectEv @ 683 NONAME _ZNK20HbInputSettingDialog10metaObjectEv @ 684 NONAME ABSENT _ZNK20HbInputVirtualRocker10metaObjectEv @ 685 NONAME ABSENT - _ZNK20HbInputVirtualRocker13selectionModeEv @ 686 NONAME ABSENT + _ZNK20HbInputVirtualRocker13selectionModeEv @ 686 NONAME ABSENT _ZNK21HbInputCnScrollKeypad10metaObjectEv @ 687 NONAME ABSENT _ZNK21HbInputCnScrollKeypad5shapeEv @ 688 NONAME ABSENT _ZNK21HbInputUsedSymbolPane10metaObjectEv @ 689 NONAME ABSENT @@ -720,7 +720,7 @@ _ZTI19HbTouchKeypadButton @ 719 NONAME ABSENT _ZTI20HbInputModeIndicator @ 720 NONAME _ZTI20HbInputSettingDialog @ 721 NONAME ABSENT - _ZTI20HbInputVirtualRocker @ 722 NONAME ABSENT + _ZTI20HbInputVirtualRocker @ 722 NONAME ABSENT _ZTI21HbInputCnScrollKeypad @ 723 NONAME ABSENT _ZTI21HbInputUsedSymbolPane @ 724 NONAME ABSENT _ZTI22HbInputCnListCandModel @ 725 NONAME ABSENT @@ -1607,7 +1607,7 @@ _ZN16HbInputVkbWidget27aboutToActivateCustomActionEP8HbAction @ 1606 NONAME _ZN18HbInputButtonGroup27aboutToActivateCustomActionEP8HbAction @ 1607 NONAME _ZN23HbInputVkbWidgetPrivate21_q_handleRockerChangeEiN20HbInputVirtualRocker19RockerSelectionModeE @ 1608 NONAME ABSENT - _ZN16HbInputVkbWidget14rockerPositionEv @ 1609 NONAME ABSENT + _ZN16HbInputVkbWidget14rockerPositionEv @ 1609 NONAME ABSENT _ZN18HbInputButtonGroup8fontSizeENS_21HbInputButtonTextTypeE @ 1610 NONAME _ZN25HbInputButtonGroupPrivate14layoutTextLineEN18HbInputButtonGroup21HbInputButtonTextTypeEPK13HbInputButtonRK6QSizeFR9QTextLineS7_ @ 1611 NONAME _ZN25HbInputButtonGroupPrivate8fontSizeEN18HbInputButtonGroup21HbInputButtonTextTypeE @ 1612 NONAME diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputcandidatelist.cpp --- a/src/hbinput/inputwidgets/hbinputcandidatelist.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputcandidatelist.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -34,6 +34,8 @@ #include +#include +#include #include #include #include @@ -41,11 +43,11 @@ #include "hbdialog_p.h" +const QString HbCandidateListBackground("qtg_fr_popup_secondary"); const int HbCandListDefaultNumRows = 5; const qreal HbCandListMaxWidthMultiplier = 0.8; const qreal HbCandListMinWidth = 30.0; const qreal HbAutoComplPopupSideMargin = 15.0; -const qreal HbAutoComplPopupVerticalMargin = 15.0; const qreal HbAutoComplPopupMinAllowedHeight = 25.0; /// @cond @@ -58,7 +60,7 @@ HbCandidateListPrivate(HbInputMethod *input); ~HbCandidateListPrivate(); void calculateAndSetSize(qreal maxWidth); - void initFrameIcon(); + void setBackground(); public: HbListWidget *mList; @@ -66,7 +68,6 @@ int numRows; int numCandidates; int longestStringWidth; - HbFrameItem *mFrameBackground; HbListWidgetItem *mSpellQueryItem; bool mCandidateCommitted; bool mSpellQueryOpenIsPending; @@ -77,7 +78,6 @@ numRows(HbCandListDefaultNumRows), numCandidates(0), longestStringWidth(0), - mFrameBackground(0), mSpellQueryItem(0), mCandidateCommitted(false), mSpellQueryOpenIsPending(false) @@ -90,15 +90,14 @@ { } -void HbCandidateListPrivate::initFrameIcon() +void HbCandidateListPrivate::setBackground() { - Q_Q(HbCandidateList); - - mFrameBackground = static_cast(q->primitive((HbStyle::Primitive)HbStylePrivate::P_Popup_background)); - - if (mFrameBackground == 0) { - mFrameBackground = static_cast(HbStylePrivate::createPrimitive(HbStylePrivate::P_Popup_background, q)); - } + Q_Q(HbCandidateList); + HbFrameDrawer *drawer = HbFrameDrawerPool::get(HbCandidateListBackground, HbFrameDrawer::NinePieces, QSizeF(q->boundingRect().width(), q->boundingRect().height())); + if (drawer) { + drawer->setFillWholeRect(true); + q->setBackgroundItem(new HbFrameItem(drawer)); + } } @@ -167,8 +166,8 @@ HbInputRegionCollector::instance()->attach(this); d->setPriority(HbPopupPrivate::VirtualKeyboard + 1); // Should be shown on top of virtual keyboard. - d->initFrameIcon(); - + d->setBackground(); + d->mList->setParent(this); // Make sure the preview pane never steals focus. @@ -334,14 +333,6 @@ } } -void HbCandidateList::updatePrimitives() -{ - Q_D(HbCandidateList); - - d->mFrameBackground->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - d->mFrameBackground->frameDrawer().setFrameGraphicsName("qtg_fr_popup_secondary"); - d->mFrameBackground->setGeometry(boundingRect()); -} /*! Finds correct size and position for auto-completion popup. It checks if there is enough space to display candidate popup, diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputcandidatelist.h --- a/src/hbinput/inputwidgets/hbinputcandidatelist.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputcandidatelist.h Fri Sep 17 08:32:10 2010 +0300 @@ -58,7 +58,6 @@ void closeEvent(QCloseEvent *event); void keyPressEvent(QKeyEvent *event); void hideEvent(QHideEvent *event); - void updatePrimitives(); public slots: void itemActivated(HbListWidgetItem *item); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputcommondialogs.cpp --- a/src/hbinput/inputwidgets/hbinputcommondialogs.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputcommondialogs.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -34,6 +34,7 @@ #include #include #include +#include /// @cond @@ -57,6 +58,7 @@ // Make sure the language dialog never steals focus. langDialog->setFlag(QGraphicsItem::ItemIsPanel, true); + HbPopupPrivate::d_ptr(langDialog)->mActivePopup = false; langDialog->setActive(false); HbInputSettingProxy *settings = HbInputSettingProxy::instance(); @@ -127,6 +129,7 @@ // Make sure the language dialog never steals focus. methodDialog->setFlag(QGraphicsItem::ItemIsPanel, true); + HbPopupPrivate::d_ptr(methodDialog)->mActivePopup = false; methodDialog->setActive(false); QList customList = HbInputMethod::listCustomInputMethods(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputexactwordpopup.cpp --- a/src/hbinput/inputwidgets/hbinputexactwordpopup.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputexactwordpopup.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -30,6 +30,9 @@ #include #include +#include +#include +#include #include "hbdeviceprofile.h" #include "hbdialog.h" #include "hblabel.h" @@ -37,12 +40,9 @@ #include "hbinputexactwordpopup.h" #include "hbiconitem.h" #include "hbinputsettingproxy.h" -#include "hbframeitem.h" -#include "hbframedrawer.h" #include "hbdialog_p.h" -const qreal HbExactWordPopupHeight = 50.0; - +const QString HbCandidateListBackground("qtg_fr_popup_secondary"); class HbExactWordPopupPrivate : public HbDialogPrivate { Q_DECLARE_PUBLIC(HbExactWordPopup) @@ -51,15 +51,14 @@ HbExactWordPopupPrivate(); ~HbExactWordPopupPrivate(); - void initBackground(); + void setBackground(); public: HbLabel *mText; - HbFrameItem *mPopupBackground; }; HbExactWordPopupPrivate::HbExactWordPopupPrivate() - : mText(0), mPopupBackground(0) + : mText(0) { } @@ -67,20 +66,15 @@ { } -void HbExactWordPopupPrivate::initBackground() +void HbExactWordPopupPrivate::setBackground() { Q_Q(HbExactWordPopup); - mPopupBackground = static_cast(q->primitive((HbStyle::Primitive)HbStylePrivate::P_Popup_background)); - - if (!mPopupBackground) { - mPopupBackground = static_cast(HbStylePrivate::createPrimitive(HbStylePrivate::P_Popup_background, q)); - } - - if (mPopupBackground->frameDrawer().isNull()) { - HbFrameDrawer *fd = new HbFrameDrawer("qtg_fr_popup_secondary", HbFrameDrawer::NinePieces); - mPopupBackground->setFrameDrawer(fd); - } + HbFrameDrawer *drawer = HbFrameDrawerPool::get(HbCandidateListBackground, HbFrameDrawer::NinePieces, QSizeF(q->boundingRect().width(), q->boundingRect().height())); + if (drawer) { + drawer->setFillWholeRect(true); + q->setBackgroundItem(new HbFrameItem(drawer)); + } } HbExactWordPopup* HbExactWordPopup::instance(HbExactWordPopupIndicator indicatorArrow) @@ -110,7 +104,7 @@ setContentWidget(d->mText); - d->initBackground(); + d->setBackground(); setTimeout(HbPopup::NoTimeout); setBackgroundFaded(false); @@ -160,7 +154,7 @@ Q_D(HbExactWordPopup); QFontMetrics fontMetrics(HbFontSpec(HbFontSpec::Primary).font()); - qreal width = fontMetrics.width(text()); + qreal width = fontMetrics.width(text()) + 1; d->mText->setMinimumWidth(width); d->mText->setMaximumWidth(width); @@ -193,14 +187,6 @@ } -void HbExactWordPopup::updatePrimitives() -{ - Q_D(HbExactWordPopup); - - d->mPopupBackground->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - d->mPopupBackground->frameDrawer().setFrameGraphicsName("qtg_fr_popup_secondary"); - d->mPopupBackground->setGeometry(boundingRect()); -} // this method is called whenever there is a switch of keypad usage from h/w to virtual // h/w keypad needs an indicator, whereas virtual does not, hence set the image appropriately. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputexactwordpopup.h --- a/src/hbinput/inputwidgets/hbinputexactwordpopup.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputexactwordpopup.h Fri Sep 17 08:32:10 2010 +0300 @@ -57,7 +57,6 @@ protected: HbExactWordPopup(QGraphicsWidget *parent = 0, HbExactWordPopupIndicator indicatorArrow = HbNoIndicatorArrow); void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - void updatePrimitives(); signals: void exactWordSelected(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputmethodselectionlist.cpp --- a/src/hbinput/inputwidgets/hbinputmethodselectionlist.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputmethodselectionlist.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -140,11 +140,10 @@ Q_D(HbInputMethodSelectionList); HbInputRegionCollector::instance()->attach(this); - HbStyle style; qreal listWidth(300); - style.parameter(QString("expr(var(hb-param-screen-short-edge)-(2*var(hb-param-margin-gene-screen)))"), listWidth); + style()->parameter(QString("expr(var(hb-param-screen-short-edge)-(2*var(hb-param-margin-gene-screen)))"), listWidth); qreal margin(5); - style.parameter(QString("hb-param-margin-gene-popup"), margin); + style()->parameter(QString("hb-param-margin-gene-popup"), margin); QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(); layout->setContentsMargins(margin, margin, margin, margin); @@ -158,6 +157,7 @@ // Make sure input method selection list never steals focus. setFlag(QGraphicsItem::ItemIsPanel, true); + d->mActivePopup = false; setActive(false); d->createSelectionList(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputsctkeyboard.cpp --- a/src/hbinput/inputwidgets/hbinputsctkeyboard.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputsctkeyboard.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -223,7 +223,7 @@ if (mType == HbKeyboardSctLandscape) { return HbLandscapeButtonKeyCodeTable[buttonId]; } else { - return HbPortraitButtonKeyCodeTable[buttonId]; + return HbPortraitButtonKeyCodeTable[buttonId]; } } @@ -255,7 +255,6 @@ } } else if (keyCode(i) == HbInputButton::ButtonKeyCodeSmiley) { if (focusedObject->editorInterface().isNumericEditor() || - !focusedObject->editorInterface().editorClass() == HbInputEditorClassUnknown || !isSmileysEnabled()) { state = HbInputButton::ButtonStateDisabled; } else if (item->state() == HbInputButton::ButtonStateDisabled) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputsettinglist.cpp --- a/src/hbinput/inputwidgets/hbinputsettinglist.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputsettinglist.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -134,11 +134,10 @@ HbInputRegionCollector::instance()->attach(this); // Get correct size from style parameters - HbStyle style; qreal listWidth(300); - style.parameter(QString("expr(var(hb-param-screen-short-edge)-(2*var(hb-param-margin-gene-screen)))"), listWidth); + style()->parameter(QString("expr(var(hb-param-screen-short-edge)-(2*var(hb-param-margin-gene-screen)))"), listWidth); qreal margin(5); - style.parameter(QString("hb-param-margin-gene-popup"), margin); + style()->parameter(QString("hb-param-margin-gene-popup"), margin); QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); QGraphicsGridLayout *gridLayout = new QGraphicsGridLayout(); @@ -171,7 +170,7 @@ // Width for language button is based on the width of language name string and button margins qreal buttonMargin(20); - style.parameter(QString("expr(var(hb-param-margin-gene-left)+var(hb-param-margin-gene-right))"), buttonMargin); + style()->parameter(QString("expr(var(hb-param-margin-gene-left)+var(hb-param-margin-gene-right))"), buttonMargin); gridLayout->setColumnFixedWidth(1, buttonMargin + d->languageNameWidth()); mainLayout->addItem(gridLayout); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputsmileypicker.cpp --- a/src/hbinput/inputwidgets/hbinputsmileypicker.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputsmileypicker.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -145,7 +145,6 @@ setBackgroundFaded(false); setTimeout(NoTimeout); setContentWidget(d->mView); - d->mView->setLongPressEnabled(false); // extract smilies. d->getSmilies(smileys); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbinput/inputwidgets/hbinputvkbwidget.cpp --- a/src/hbinput/inputwidgets/hbinputvkbwidget.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbinput/inputwidgets/hbinputvkbwidget.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -1249,17 +1249,18 @@ d->mFlickDirection = HbFlickDirectionDown; emit flickEvent(d->mFlickDirection); emit keypadCloseEventDetected(HbVkbCloseMethodCloseGesture); - } else if (gesture->sceneVerticalDirection() == QSwipeGesture::Up) { - d->mFlickDirection = HbFlickDirectionUp; - emit flickEvent(d->mFlickDirection); - d->mCurrentHost->openKeypad(d->mCurrentHost->activeKeypad(), d->mOwner); - } else { + } else if (gesture->sceneVerticalDirection() != QSwipeGesture::Up) { d->mFlickDirection = (HbInputVkbWidget::HbFlickDirection)gesture->sceneHorizontalDirection(); // horizontal swipes if (d->mFlickAnimation) { animKeyboardChange(); } emit flickEvent(d->mFlickDirection); + // If keyboard change is not animated, flick direction should + // be set to none immediately since otherwise it won't be changed + if (!d->mFlickAnimation) { + d->mFlickDirection = HbFlickDirectionNone; + } } } } else if (HbTapGesture *gesture = qobject_cast(event->gesture(Qt::TapGesture))) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/devicedialogs/devicemessageboxplugin/hbdevicemessageboxplugin.cpp --- a/src/hbplugins/devicedialogs/devicemessageboxplugin/hbdevicemessageboxplugin.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/devicedialogs/devicemessageboxplugin/hbdevicemessageboxplugin.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -43,6 +43,7 @@ {"com.nokia.hb.devicemessagebox/1.0"} }; +/// \cond class HbDeviceMessageBoxPluginPrivate { public: @@ -50,6 +51,7 @@ int mError; }; +/// \endcond // Constructor HbDeviceMessageBoxPlugin::HbDeviceMessageBoxPlugin() diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/devicedialogs/devicenotificationdialogplugin/hbdevicenotificationdialogplugin.cpp --- a/src/hbplugins/devicedialogs/devicenotificationdialogplugin/hbdevicenotificationdialogplugin.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/devicedialogs/devicenotificationdialogplugin/hbdevicenotificationdialogplugin.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -40,6 +40,7 @@ {"com.nokia.hb.devicenotificationdialog/1.0"} }; +/// \cond class HbDeviceNotificationDialogPluginPrivate { public: @@ -47,6 +48,7 @@ int mError; }; +/// \endcond // Constructor HbDeviceNotificationDialogPlugin::HbDeviceNotificationDialogPlugin() diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/devicedialogs/deviceprogressdialogplugin/hbdeviceprogressdialogplugin.cpp --- a/src/hbplugins/devicedialogs/deviceprogressdialogplugin/hbdeviceprogressdialogplugin.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/devicedialogs/deviceprogressdialogplugin/hbdeviceprogressdialogplugin.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -40,6 +40,7 @@ {"com.nokia.hb.deviceprogressdialog/1.0"} }; +/// \cond class HbDeviceProgressDialogPluginPrivate { public: @@ -47,6 +48,7 @@ int mError; }; +/// \endcond // Constructor HbDeviceProgressDialogPlugin::HbDeviceProgressDialogPlugin() diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/devicedialogs/indicatormenuplugin/hbindicatormenuplugin.cpp --- a/src/hbplugins/devicedialogs/indicatormenuplugin/hbindicatormenuplugin.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/devicedialogs/indicatormenuplugin/hbindicatormenuplugin.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -40,6 +40,7 @@ {"com.nokia.hb.indicatormenu/1.0"} }; +/// \cond class HbIndicatorMenuPluginPrivate { public: @@ -47,6 +48,7 @@ int mError; }; +/// \endcond // Constructor HbIndicatorMenuPlugin::HbIndicatorMenuPlugin() diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.cpp --- a/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -606,15 +606,6 @@ /* Called by the feedback manager when a touch gesture with more than one finger is detected. */ -void HbFeedbackEffectEngine::multitouchActivated(const HbWidget *widget) -{ - HB_DEPRECATED("HbFeedbackEffectEngine::multitouchActivated(const HbWidget*) is deprecated. Use HbFeedbackEffectEngine::advancedGestureActivated(const HbWidget*) instead"); - advancedGestureActivated(widget); -} - -/* - Called by the feedback manager when a touch gesture with more than one finger is detected. -*/ void HbFeedbackEffectEngine::advancedGestureActivated(const HbWidget *widget) { HbFeedback::InstantEffect effect = HbFeedback::None ; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.h --- a/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.h Fri Sep 17 08:32:10 2010 +0300 @@ -57,7 +57,6 @@ void boundaryReached(const HbWidget *widget); void rotated90Degrees(const HbWidget *widget); void selectionChanged(const HbWidget *widget); - void multitouchActivated(const HbWidget *widget); // deprecated void advancedGestureActivated(const HbWidget *widget); void continuousTriggered(const HbWidget *widget, Hb::ContinuousInteraction interaction, QPointF delta); void continuousStopped(const HbWidget *widget, Hb::ContinuousInteraction interaction); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectutils.cpp --- a/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectutils.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectutils.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -348,8 +348,10 @@ // Different press feedbacks for single and multiselection list items switch (itemView->selectionMode()) { case HbAbstractItemView::SingleSelection: + effect = HbFeedback::BasicButton; + break; case HbAbstractItemView::MultiSelection: { - effect = HbFeedback::BasicButton; + effect = HbFeedback::BasicItem; break; } case HbAbstractItemView::NoSelection: @@ -485,14 +487,22 @@ break; case HbFeedbackEffectUtils::Grid: - effect = HbFeedback::BasicItem; + if (widget->type() == HbPrivate::ItemType_ColorGridViewItem) { + effect = HbFeedback::None; + } + else { + effect = HbFeedback::BasicItem; + } break; - case HbFeedbackEffectUtils::Slider: + case HbFeedbackEffectUtils::Slider: - // slider track default - effect = HbFeedback::BasicSlider; - + if (widget->type() == Hb::ItemType_ScrollBar) { + effect = HbFeedback::None; + } + else { // slider track default + effect = HbFeedback::BasicSlider; + } // slider handle if (modifiers & Hb::ModifierSliderHandle) { effect = HbFeedback::BasicSlider; @@ -502,6 +512,7 @@ if (modifiers & Hb::ModifierSliderElement) { effect = HbFeedback::None; } + break; case HbFeedbackEffectUtils::Editor: diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/common/hbinputabstractbase.cpp --- a/src/hbplugins/inputmethods/common/hbinputabstractbase.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/common/hbinputabstractbase.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -221,11 +221,6 @@ } } -// EOF - - - - QChar HbInputAbstractMethod ::previousChar() { return QChar(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/common/hbinputpredictionhandler.cpp --- a/src/hbplugins/inputmethods/common/hbinputpredictionhandler.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/common/hbinputpredictionhandler.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -41,8 +41,6 @@ #include "hbinputpredictionhandler_p.h" #include "hbinputabstractbase.h" -static const qreal HbDeltaHeight = 3.0; - HbInputPredictionHandlerPrivate::HbInputPredictionHandlerPrivate() :mEngine(0), mCandidates(0), @@ -61,6 +59,9 @@ delete mCandidates; mCandidates = 0; } + if (mSpellQueryDialog) { + mSpellQueryDialog->deleteLater(); + } } void HbInputPredictionHandlerPrivate::deleteOneCharacter() @@ -799,7 +800,6 @@ } if(!d->mSpellQueryDialog) { d->mSpellQueryDialog = new HbInputSpellQuery(d->mInputMethod,this); - d->mSpellQueryDialog->setParent(this); } QString string; @@ -841,7 +841,13 @@ if(abstractEdit) { abstractEdit->setCursorPosition(abstractEdit->cursorPosition()); } + if(HbInputMethod::activeInputMethod()->isFocusLocked()) { + HbInputMethod::activeInputMethod()->unlockFocus(); HbInputMethod::activeInputMethod()->setFocusObject(newFocusObject); + HbInputMethod::activeInputMethod()->lockFocus(); + } else { + HbInputMethod::activeInputMethod()->setFocusObject(newFocusObject); + } if (closeReason == HbInputSpellQuery::HbOkPressed) { d->commit(string,true); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/common/hbinputpredictionhandler_p.h --- a/src/hbplugins/inputmethods/common/hbinputpredictionhandler_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/common/hbinputpredictionhandler_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -25,6 +25,8 @@ #ifndef HB_INPUT_PREDICTION_HANDLER_PRIVATE #define HB_INPUT_PREDICTION_HANDLER_PRIVATE +#include + #include "hbinputmodehandler_p.h" class HbPredictionEngine; @@ -68,7 +70,7 @@ bool mCanContinuePrediction; bool mShowTooltip; Qt::KeyboardModifiers mModifiers; - HbInputSpellQuery *mSpellQueryDialog; + QPointer mSpellQueryDialog; bool mAutocompletionEnabled; public: virtual void updateEditor(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/common/hbinputspellquerydialog.cpp --- a/src/hbplugins/inputmethods/common/hbinputspellquerydialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/common/hbinputspellquerydialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -57,10 +57,14 @@ void HbInputSpellQuery::launch(QString editorText) { - HbInputFocusObject *focusObject = 0; - if (!mOwner || !(focusObject = mOwner->focusObject())) { + if (!mOwner) { return; } + HbInputFocusObject *focusObject = mOwner->focusObject(); + if (!focusObject) { + return; + } + mSavedState = mOwner->inputState(); // close the keypad before showing the spell dialog HbVkbHost *vkbHost = focusObject->editorInterface().vkbHost(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp --- a/src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/touchinput/hbinput12keytouchkeyboard.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -42,6 +42,7 @@ const int HbFirstRowIndex = 0; const int HbSecondRowIndex = 2; +const int HbNumberIndex = 4; const int HbVirtual12KeyNumberOfRows = 4; const int HbVirtual12KeyNumberOfColumns = 4; const int HbButtonKeyCodeTable[HbVirtual12KeyNumberOfRows * HbVirtual12KeyNumberOfColumns] = @@ -212,8 +213,9 @@ keyboardMap = mKeymap->keyboard(HbKeyboardVirtual12Key); } - if (labelMap && key < labelMap->keys.count()) { - numChr = labelMap->keys.at(key)->keycode; + if (labelMap && key < labelMap->keys.count() && + !(mOwner->focusObject() && mOwner->focusObject()->editorInterface().isNumericEditor())) { + numChr = keyLabel(labelMap->keys.at(key)->chars, HbNumberIndex).at(0); } // Fallback to normal keymappings if key labels are not present @@ -251,7 +253,9 @@ if (labelMap && key < labelMap->keys.count()) { firstRow = keyLabel(labelMap->keys.at(key)->chars, HbFirstRowIndex | mModifiers); secondRow = keyLabel(labelMap->keys.at(key)->chars, HbSecondRowIndex | mModifiers); - numChr = labelMap->keys.at(key)->keycode; + if (!(mOwner->focusObject() && mOwner->focusObject()->editorInterface().isNumericEditor())) { + numChr = keyLabel(labelMap->keys.at(key)->chars, HbNumberIndex).at(0); + } } // Fallback to normal keymappings if key labels are not present @@ -321,7 +325,9 @@ QString Hb12KeyTouchKeyboardPrivate::keyLabel(const QStringList &labels, int index) { - if (index == HbFirstRowIndex && labels.count() >= 2) { + if (index == HbNumberIndex && labels.count() >= 1) { + return labels.at(0); + } else if (index == HbFirstRowIndex && labels.count() >= 2) { return labels.at(1); } else if (index == (HbFirstRowIndex | HbModifierShiftPressed) && labels.count() >= 3) { return labels.at(2); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/touchinput/hbinputprediction12keyhandler.cpp --- a/src/hbplugins/inputmethods/touchinput/hbinputprediction12keyhandler.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/touchinput/hbinputprediction12keyhandler.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -44,9 +44,6 @@ #include "hbinputabstractbase.h" #include "hbinputprediction12keyhandler_p.h" -static const qreal HbDeltaHeight = 3.0; -static const qint16 MAXUDBWORDSIZE = 64; - HbInputPrediction12KeyHandlerPrivate::HbInputPrediction12KeyHandlerPrivate() :mLastKey(0), mButtonDown(false), diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/touchinput/hbinputpredictionqwertyhandler.cpp --- a/src/hbplugins/inputmethods/touchinput/hbinputpredictionqwertyhandler.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/touchinput/hbinputpredictionqwertyhandler.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -471,7 +471,7 @@ void HbInputPredictionQwertyHandlerPrivate::showExactWordPopupIfNeeded() { Q_Q(HbInputPredictionHandler); - if (mShowTooltip && mCandidates && mCandidates->count() > mPrimaryCandidateIndex && mPrimaryCandidateIndex != mSecondaryCandidateIndex) { + if (mShowTooltip && mCandidates && mCandidates->count() > mSecondaryCandidateIndex && mPrimaryCandidateIndex != mSecondaryCandidateIndex) { q->processExactWord(mCandidates->at(mSecondaryCandidateIndex)); } else { QString empty; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/touchinput/hbinputqwerty11x4touchkeyboard.cpp --- a/src/hbplugins/inputmethods/touchinput/hbinputqwerty11x4touchkeyboard.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/touchinput/hbinputqwerty11x4touchkeyboard.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,9 +36,6 @@ #include "hbinputbutton.h" #include "hbinputmodeindicator.h" -const qreal HbKeyboardHeightInUnits = 33.7; -const qreal HbKeyboardWidthInUnits = 95.5; - const int HbVirtualQwertyNumberOfRows = 4; const int HbVirtualQwertyNumberOfColumns = 11; const int HbButtonKeyCodeTable[HbVirtualQwertyNumberOfRows * HbVirtualQwertyNumberOfColumns - 1] = diff -r e6ad4ef83b23 -r b7da29130b0e src/hbplugins/inputmethods/touchinput/virtualqwerty.cpp --- a/src/hbplugins/inputmethods/touchinput/virtualqwerty.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbplugins/inputmethods/touchinput/virtualqwerty.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -92,7 +92,7 @@ connect(HbInputSettingProxy::instance(), SIGNAL(typingCorrectionLevelChanged(HbTypingCorrectionLevel)), this, SLOT(typingCorrectionLevelChanged(HbTypingCorrectionLevel))); mPredictionModeHandler->setPrimaryCandidateMode(HbInputSettingProxy::instance()->primaryCandidateMode()); mPredictionModeHandler->setAutocompletionStatus(HbInputSettingProxy::instance()->isAutocompletionEnabled(HbKeyboardSettingQwerty)); - mPredictionModeHandler->setTypingCorrectionLevel(HbInputSettingProxy::instance()->typingCorrectionLevel()); + } // --------------------------------------------------------------------------- @@ -298,6 +298,13 @@ if(mActiveModeHandler) { mActiveModeHandler->actionHandler(HbInputModeHandler::HbInputModeActionSetKeypad); } + + if(mCurrentKeypad && mCurrentKeypad == mQwertyAlphaKeypad) { + mPredictionModeHandler->setTypingCorrectionLevel(HbInputSettingProxy::instance()->typingCorrectionLevel()); + } + else { + mPredictionModeHandler->setTypingCorrectionLevel(HbTypingCorrectionLevelLow); + } } /*! @@ -349,7 +356,7 @@ void HbVirtualQwerty::keypadClosed() { - if (mVkbHost->keypadStatus() == HbVkbHost::HbVkbStatusMinimized) { + if (mVkbHost && mVkbHost->keypadStatus() == HbVkbHost::HbVkbStatusMinimized) { closeExactWordPopup(); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbdevicedialogappserver/hbddappfactorysymbian.cpp --- a/src/hbservers/hbdevicedialogappserver/hbddappfactorysymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbdevicedialogappserver/hbddappfactorysymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,6 +31,8 @@ #include #include +/// \cond + // In order to override CCoeAppUi::FrameworkCallsRendezvous() Application/Document/AppUi needs to be // derived from. @@ -82,3 +84,5 @@ void HbDeviceDialogServerApp::quit() { } + +/// \endcond diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbdevicedialogappserver/hbddappfactorysymbian_p.h --- a/src/hbservers/hbdevicedialogappserver/hbddappfactorysymbian_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbdevicedialogappserver/hbddappfactorysymbian_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -25,6 +25,8 @@ #ifndef HBDDAPPFACTORYSYMBIAN_P_H #define HBDDAPPFACTORYSYMBIAN_P_H +/// \cond + #include #include @@ -48,4 +50,6 @@ static void quit(); }; +/// \endcond + #endif // HBDDAPPFACTORYSYMBIAN_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbdevicedialogappserver/main.cpp --- a/src/hbservers/hbdevicedialogappserver/main.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbdevicedialogappserver/main.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -142,7 +142,7 @@ view->hideItems(Hb::AllItems); view->setContentFullScreen(); - HbMainWindow mainWindow(0, Hb::WindowFlagTransparent); + HbMainWindow mainWindow(0, Hb::WindowFlagTransparent|Hb::WindowFlagNoBackground); #if defined (Q_OS_SYMBIAN) CCoeControl *c = mainWindow.effectiveWinId(); @@ -166,6 +166,7 @@ CEikonEnv* env = CEikonEnv::Static(); if (env) { + env->SetSystem(true); CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(env->WsSession()); wgName->SetHidden(ETrue); // hides us from FSW and protects us from OOM FW etc. wgName->SetSystem(ETrue); // Allow only application with PowerManagement cap to shut us down diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbiconcacheitemcreator_p.cpp --- a/src/hbservers/hbthemeserver/hbiconcacheitemcreator_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbiconcacheitemcreator_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -33,7 +33,6 @@ #include "hbthemeserver_symbian_p_p.h" #endif #include -#include #ifdef HB_NVG_CS_ICON #include "hbnvgiconprocessor_p.h" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbicondatacache_p.cpp --- a/src/hbservers/hbthemeserver/hbicondatacache_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbicondatacache_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -229,6 +229,13 @@ } // Get the cache item associated with the key item = (*cache)[(key)]; + + if ((item->vectorIconData.type == INVALID_FORMAT) && + (item->rasterIconData.type == INVALID_FORMAT)) { + cache->remove(key); + delete item; + return 0; + } //Debug Code for Test Purpose #ifdef HB_ICON_CACHE_DEBUG diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbpixmapiconprocessor_p.cpp --- a/src/hbservers/hbthemeserver/hbpixmapiconprocessor_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbpixmapiconprocessor_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -92,11 +92,9 @@ */ HbSharedIconInfo HbPixmapIconProcessor::sharedIconData()const { - HbSharedIconInfo data; - data.type = INVALID_FORMAT; const QImage image = pixmap.toImage(); - if (!image.isNull()) { + if (!image.isNull() && (data.type == INVALID_FORMAT)) { GET_MEMORY_MANAGER(HbMemoryManager::SharedMemory); try { //alloc function of memory manager can throw @@ -127,7 +125,7 @@ } else if (iconType == "PIC") { isIconCreated = renderPicToPixmap(iconPath); } else if (iconType == "NVG") { -#if defined (HB_NVG_CS_ICON) +#if defined (HB_NVG_CS_ICON) isIconCreated = renderNvgToPixmap(iconPath); #endif //HB_NVG_CS_ICON } else { @@ -160,6 +158,46 @@ return isIconCreated; } +#if defined (HB_NVG_CS_ICON) + +bool HbPixmapIconProcessor::renderNvgToPixmap(const QString& iconPath) +{ + bool success = false; + HbNvgRasterizer * nvgRasterizer = HbNvgRasterizer::global(); + + bool isDefaultSize = iconKey.size.isNull(); + HbIconSource *source = HbThemeServerUtils::getIconSource(iconPath); + if (!source) { + return success; + } + QByteArray *sourceByteArray = source->byteArray(); + if( !sourceByteArray ) { + return success; + } + QByteArray nvgArray = *sourceByteArray; + QSizeF renderSize = source->defaultSize(); + defaultSize = renderSize.toSize(); + if (!isDefaultSize) { + renderSize.scale(iconKey.size,iconKey.aspectRatioMode); + } + + QSize iconSize = renderSize.toSize(); + + QImage image(iconSize, QImage::Format_ARGB32_Premultiplied); + QImage::Format imageFormat = image.format(); + image.fill(0); + + int stride = image.bytesPerLine(); + void * rasterizedData = image.bits(); + success = nvgRasterizer->rasterize(nvgArray, iconSize, + iconKey.aspectRatioMode, + rasterizedData, stride,imageFormat); + + pixmap = QPixmap::fromImage(image); + return success; +} + +#endif /*! \fn HbPixmapIconProcessor::renderSvgToPixmap() \a iconpath @@ -195,7 +233,7 @@ painter.end(); isIconCreated = true; } - + source->releaseSvgRenderer(); return isIconCreated; } @@ -340,29 +378,37 @@ for (int i = 0; i < multiPieceIconParams.multiPartIconList.count(); i++) { #if defined (HB_NVG_CS_ICON) if ((multiPieceIconInfo[i].type != INVALID_FORMAT) && multiPieceIconInfo[i].type == NVG) { + QPixmap tempPixmap; GET_MEMORY_MANAGER(HbMemoryManager::SharedMemory); const QByteArray nvgData = QByteArray::fromRawData((char*)manager->base() + multiPieceIconInfo[i].nvgData.offset, multiPieceIconInfo[i].nvgData.dataSize); QSize contentSize = QSize(multiPieceIconInfo[i].nvgData.width, multiPieceIconInfo[i].nvgData.height); - - if(pixmapFromByteArray(nvgData, contentSize, (Qt::AspectRatioMode)multiPieceIconParams.aspectRatioMode)) { - painter.drawPixmap(multiPieceIconParams.multiPartIconData.targets[i].topLeft(), pixmap, pixmap.rect()); + HbNvgRasterizer * nvgRasterizer = HbNvgRasterizer::global(); + + QImage image = tempPixmap.toImage(); + if(nvgRasterizer->rasterize(nvgData, contentSize, + (Qt::AspectRatioMode)multiPieceIconParams.aspectRatioMode, + image)) { + painter.drawPixmap( + multiPieceIconParams.multiPartIconData.targets[i].topLeft(), + tempPixmap, + tempPixmap.rect()); } else { // consolidated pixmap creation falied. painter.end(); return false; - } + } } else { #endif if ((multiPieceIconInfo[i].type != INVALID_FORMAT) && multiPieceIconInfo[i].type == OTHER_SUPPORTED_FORMATS) { GET_MEMORY_MANAGER(HbMemoryManager::SharedMemory); QImage image((const uchar*) ((char *)manager->base() + multiPieceIconInfo[i].pixmapData.offset), - multiPieceIconParams.multiPartIconData.pixmapSizes[i].width(), + multiPieceIconParams.multiPartIconData.pixmapSizes[i].width(), multiPieceIconParams.multiPartIconData.pixmapSizes[i].height(), multiPieceIconInfo[i].pixmapData.format); - QPixmap pixmap = QPixmap::fromImage((image)); + QPixmap pixmap = QPixmap::fromImage((image)); painter.drawPixmap(multiPieceIconParams.multiPartIconData.targets[i].topLeft(), pixmap, pixmap.rect()); } #if defined (HB_NVG_CS_ICON) @@ -380,164 +426,6 @@ return true; } -#if defined (HB_NVG_CS_ICON) -VGIColorBufferFormat HbPixmapIconProcessor::mapToVgiDisplayFormat( QImage::Format imageFormat ) const -{ - VGIColorBufferFormat format; - switch(imageFormat) - { - case QImage::Format_Mono: - case QImage::Format_RGB32: - case QImage::Format_ARGB32: - format = VGI_COLOR_BUFFER_FORMAT_ARGB8888; - break; - case QImage::Format_ARGB32_Premultiplied: - format = VGI_COLOR_BUFFER_FORMAT_ARGB8888_PRE; - break; - case QImage::Format_RGB16: - case QImage::Format_ARGB8565_Premultiplied: - case QImage::Format_RGB666: - case QImage::Format_ARGB6666_Premultiplied: - case QImage::Format_RGB555: - case QImage::Format_ARGB8555_Premultiplied: - break; - case QImage::Format_RGB888: - format = VGI_COLOR_BUFFER_FORMAT_RGB888; - break; - case QImage::Format_RGB444: - case QImage::Format_ARGB4444_Premultiplied: - case QImage::Format_Invalid: - break; - } - return format; -} - -/** - * HbNvgIconProcessor::renderNvgToPixmap() - * This is used to render NVG data to a pixmap using the Software OpenVG - * \a iconPath - */ -bool HbPixmapIconProcessor::renderNvgToPixmap(const QString& iconPath) -{ - bool isIconCreated = false; - - bool isDefaultSize = iconKey.size.isNull(); - HbIconSource *source = HbThemeServerUtils::getIconSource(iconPath); - QByteArray *sourceByteArray = source->byteArray(); - if( !sourceByteArray ) { - return isIconCreated; - } - QByteArray byteArray = *sourceByteArray; - QSizeF renderSize = source->defaultSize(); - defaultSize = renderSize.toSize(); - if (!isDefaultSize) { - renderSize.scale(iconKey.size,iconKey.aspectRatioMode); - } - size = renderSize.toSize(); - - isIconCreated = pixmapFromByteArray(byteArray, size, iconKey.aspectRatioMode); - - return isIconCreated; -} - -/** - * HbNvgIconProcessor::pixmapFromByteArray() - * This is used to get the pixmap from ByteArray - * \a iconPath - */ -bool HbPixmapIconProcessor::pixmapFromByteArray(const QByteArray &byteArray, - const QSize iconSize, - Qt::AspectRatioMode aspectRatioMode) -{ - bool isIconCreated = false; - - CNvgEngine* nvgengine = 0; - TRAPD(error, nvgengine = CNvgEngine::NewL()); - if (error != KErrNone) { - return isIconCreated; - } - QScopedPointer nvgEngine(nvgengine); - - TSize surfaceSize(TSize(iconSize.width(), iconSize.height())); - QImage img(iconSize,QImage::Format_ARGB32_Premultiplied); - - VGIColorBufferFormat format; - TInt stride = img.bytesPerLine(); - TUint8* imageBuffer = img.bits(); // get the pointer to image buffer. - // Map Qimage display modes to the VGI display modes. - format = mapToVgiDisplayFormat(img.format()); - - HbNvgAspectRatioSettings settings = mapKeyAspectRatioToNvgAspectRatio(aspectRatioMode); - nvgEngine.data()->SetPreserveAspectRatio(settings.nvgAlignStatusAndAspectRatio, settings.type); - - // Surface creation - TInt err = VGISymbianInitialize( surfaceSize, VGI_COLORSPACE_SRGB ); - if( err == KErrAlreadyExists ) { - //Clean Up - VGISymbianTerminate(); - // Surface creation - err = VGISymbianInitialize( surfaceSize, VGI_COLORSPACE_SRGB ); - } - if( err != KErrNone) { - return isIconCreated; - } - - // Rendering onto active surface - TPtr8 data ((unsigned char*)byteArray.data(), byteArray.length(), byteArray.length()); - err = nvgEngine.data()->DrawNvg(data, surfaceSize, 0, 0); - if(err !=KErrNone) { - return isIconCreated; - } - - //Copy the data from the surface - err = VGICopyToTarget(format, stride, imageBuffer, 0, NULL, VGI_COPY_TRANSPARENT_PIXELS); -#ifdef __DEBUG - qDebug() << "error code for VGICopyToTarget()"<< err; -#endif - //Get Pixmap from the Qimage. - pixmap = QPixmap::fromImage(img); - isIconCreated = true; - - //Clean Up - VGISymbianTerminate(); - return isIconCreated; -} - -/*! - \fn HbPixmapIconProcessor::mapKeyAspectRatioToNvgAspectRatio() - \a aspectRatio - */ -HbNvgAspectRatioSettings HbPixmapIconProcessor::mapKeyAspectRatioToNvgAspectRatio( - Qt::AspectRatioMode aspectRatio) const -{ - HbNvgAspectRatioSettings settings; - switch(aspectRatio) { - - case Qt::IgnoreAspectRatio: { - settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_None; - settings.type = ENvgMeet; - break; - } - case Qt::KeepAspectRatio: { - settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_XmidYmid; - settings.type = ENvgMeet; - break; - } - case Qt::KeepAspectRatioByExpanding: { - settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_XmidYmid; - settings.type = ENvgSlice; - break; - } - default: { - settings.nvgAlignStatusAndAspectRatio = ENvgPreserveAspectRatio_XmidYmid; - settings.type = ENvgMeet; - break; - } - } - return settings; -} -#endif //HB_NVG_CS_ICON - diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbpixmapiconprocessor_p.h --- a/src/hbservers/hbthemeserver/hbpixmapiconprocessor_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbpixmapiconprocessor_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -36,6 +36,7 @@ // match the cases of the corresponding directories in Symbian 4. #include #include +#include "hbnvgrasterizer_p.h" #endif //HB_NVG_CS_ICON QT_BEGIN_NAMESPACE @@ -46,14 +47,6 @@ class HbThemeServerSymbian; -#if defined (HB_NVG_CS_ICON) -struct HbNvgAspectRatioSettings -{ - TNvgAlignStatusType nvgAlignStatusAndAspectRatio; - TNvgMeetOrSliceType type; -}; -#endif //HB_NVG_CS_ICON - class HbPixmapIconProcessor : public HbIconProcessor { public : @@ -72,18 +65,15 @@ HbMultiIconParams &multiPieceIconParams); private : +#if defined (HB_NVG_CS_ICON) + bool renderNvgToPixmap(const QString& iconPath); +#endif bool renderSvgToPixmap(const QString& iconPath); bool renderPicToPixmap(const QString& iconPath); bool renderOtherFormatsToPixmap(const QString& iconPath); -#if defined (HB_NVG_CS_ICON) - VGIColorBufferFormat mapToVgiDisplayFormat(QImage::Format imageFormat) const; - bool renderNvgToPixmap(const QString& iconPath); - bool pixmapFromByteArray(const QByteArray &byteArray, const QSize iconSize, Qt::AspectRatioMode aspectRatioMode); - HbNvgAspectRatioSettings mapKeyAspectRatioToNvgAspectRatio( - Qt::AspectRatioMode aspectRatio) const; -#endif //HB_NVG_CS_ICON private: + mutable HbSharedIconInfo data; QPixmap pixmap; }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbthemeserver.cpp --- a/src/hbservers/hbthemeserver/hbthemeserver.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbthemeserver.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -60,9 +60,7 @@ if (KErrNone == error) { success = true; } else { -#ifdef THEME_SERVER_TRACES - qDebug() << Q_FUNC_INFO << "Error Starting SERVER"; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Error Starting SERVER"; } // Parses the device profiles and device modes and stores in the diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbthemeserver_symbian.cpp --- a/src/hbservers/hbthemeserver/hbthemeserver_symbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbthemeserver_symbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -195,11 +195,11 @@ // Set up the listener to listen for Publish events TRAPD(err, iListener = CHbThemeChangeNotificationListener::NewL(*this)); if (err) { - qWarning( "HbThemeServerPrivate::HbThemeServerPrivate: CHbThemeChangeNotificationListener::NewL failed = %d", err ); + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "CHbThemeChangeNotificationListener::NewL failed. Error code:" << err; } else { TRAPD(err, iListener->startListeningL()); if (err) { - qWarning( "HbThemeServerPrivate::HbThemeServerPrivate: iListener->startListening failed = %d", err ); + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "iListener->startListening failed. Error code:" << err; } } } @@ -236,7 +236,7 @@ QFile currentIndexfile(indexFileName); if(!currentIndexfile.open(QIODevice::ReadOnly)) { - qWarning()<< "HbSymbianThemeServer: No Index file found in the new theme, How did this happen ??"; + THEME_GENERIC_DEBUG()<< Q_FUNC_INFO << "No Index file found in the new theme."; return false; } else { currentIndexfile.close(); @@ -269,10 +269,7 @@ iCurrentThemeName = path.dirName(); iCurrentThemePath = path.absolutePath(); - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: theme change request, new theme =" << cleanThemeName.toUtf8(); - #endif - + THEME_INDEX_DEBUG() << Q_FUNC_INFO << "Theme change request, new theme =" << cleanThemeName.toUtf8(); // Clear cached icons and session data clearIconCache(); @@ -292,9 +289,7 @@ */ CSession2* HbThemeServerPrivate::NewSessionL(const TVersion& aVersion, const RMessage2& /*aMessage*/) const { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeServerPrivate::NewSessionL: entered"; -#endif + THEME_GENERIC_DEBUG() << "entering" << Q_FUNC_INFO; // Check that the version is OK TVersion v(KThemeServerMajorVersionNumber, KThemeServerMinorVersionNumber, KThemeServerBuildVersionNumber); if (!User::QueryVersionSupported(v, aVersion)) @@ -657,19 +652,11 @@ */ void HbThemeServerSession::ServiceL(const RMessage2& aMessage) { -#ifdef THEME_SERVER_TRACES - qDebug() << "Just entered HbThemeServerSession::ServiceL"; -#endif + THEME_GENERIC_DEBUG() << "entered" << Q_FUNC_INFO << "with function:" << aMessage.Function(); TRAPD(err, DispatchMessageL(aMessage)); aMessage.Complete(err); - -#ifdef THEME_SERVER_TRACES - QString er; - er.setNum(err); - qDebug() << "completed DispatchMessageL error code is " + er; -#endif - + THEME_GENERIC_DEBUG() << "completed" << Q_FUNC_INFO << "with error code" + err; } /** @@ -680,10 +667,6 @@ */ void HbThemeServerSession::DispatchMessageL(const RMessage2& aMessage) { -#ifdef THEME_SERVER_TRACES - qDebug() << "Just entered HbThemeServerSession::DispatchMessageL"; -#endif - switch (aMessage.Function()) { case EStyleSheetLookup: HandleStyleSheetLookupL(aMessage); @@ -725,7 +708,7 @@ case ENotifyForegroundLost: #if defined(HB_SGIMAGE_ICON) || defined(HB_NVG_CS_ICON) - freeClientGpuResources(); + freeIconResources(); #endif break; //Debug Code for Test Purpose @@ -928,7 +911,6 @@ iServer->FreeGpuRam(params.bytesToFree, params.useSwRendering); break; } - case ERenderModeSwitch: { TInt mode = 0; TPckg paramPckg(mode); @@ -954,7 +936,6 @@ aMessage.WriteL(1, out); break; } - case ETypefaceOffset: { HandleTypefaceReqL(aMessage); break; @@ -963,18 +944,10 @@ HandleMissedHbCssLookupL(aMessage); break; } - - - - // This is an example of a request that we know about, but don't support. - // We cause KErrNotSupported to be returned to the client. default: PanicClient(aMessage, EBadRequest); break; } -#ifdef THEME_SERVER_TRACES - qDebug() << "Leave HbThemeServerSession::DispatchMessageL"; -#endif } void HbThemeServerSession::SwitchRenderingMode(HbRenderingMode aRenderMode) @@ -999,9 +972,7 @@ void HbThemeServerSession::HandleStyleSheetLookupL(const RMessage2& aMessage) { if (aMessage.GetDesLength(0) == 0) { -#ifdef THEME_SERVER_TRACES - qDebug() << "Empty Filename"; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "no filename given."; return; } @@ -1187,10 +1158,6 @@ // create dshared pixmap info from HbIconCacheItem TPckg pixdata(data); aMessage.WriteL(1, pixdata); - -#ifdef THEME_SERVER_TRACES - qDebug() << "Completed aMessage.WriteL"; -#endif } /** @@ -1353,7 +1320,7 @@ // currently only nvg type is used to create RSgImage if (format != HbIconCacheItemCreator::KNvg) { HbIconKey newKey(key); - key.renderMode = ESWRendering; + newKey.renderMode = ESWRendering; cacheItem = iServer->iconCacheItem(newKey); if (cacheItem) { key.renderMode = ESWRendering; @@ -1799,6 +1766,30 @@ } /** +freeIconResources - unloads all the resources in the session + +Iterates all the keys in sessionData and then CleanUpSessionIConItem is called +on that item, which will do the cleanup based on the reference count. +*/ +void HbThemeServerSession::freeIconResources() +{ + QList tempSessionData(sessionData); + QList::const_iterator itEnd( tempSessionData.constEnd() ); + for ( QList::const_iterator iter = tempSessionData.constBegin(); + iter != itEnd; + ++iter ) { + + iServer->CleanupSessionIconItem(*iter); + // remove the item in the session data. + sessionData.removeOne(*iter); + + } +} + + + + +/** * HbThemeServerSession::ClearSessionData * * Clears the session data list. Items in the server should be deleted before clearing. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbthemeserver_symbian_p_p.h --- a/src/hbservers/hbthemeserver/hbthemeserver_symbian_p_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbthemeserver_symbian_p_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -199,6 +199,7 @@ void batchUnLoadIcon(const RMessage2& aMessage); void unloadMultiIcon(const RMessage2& aMessage); void freeClientGpuResources(); + void freeIconResources(); void ClearSessionData(); void freeGpuResources(); void SwitchRenderingMode(HbRenderingMode aRenderMode); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbthemeserverapplication.cpp --- a/src/hbservers/hbthemeserver/hbthemeserverapplication.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbthemeserverapplication.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -113,11 +113,9 @@ result = library.load(); } } -#ifdef THEME_SERVER_TRACES if (!result) { - qDebug() << "loadLibrary():" << library.errorString(); + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Error: " << library.errorString(); } -#endif return result; } @@ -130,9 +128,7 @@ if (lockState == Lock::Reserved) { // Process may be starting, wait for server object to be created if (serverExists()) { -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeServerLocker::lock: serverExists"; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "server already exists."; break; } else { const TInt KTimeout = 100000; // 100 ms @@ -145,9 +141,7 @@ if (lockState != Lock::Acquired) { // With KErrAlreadyExists client should try to connect, otherwise bail out. -#ifdef THEME_SERVER_TRACES - qDebug() << "HbThemeServer::main: Lock not acquired!!!"; -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Lock not acquired."; RProcess::Rendezvous(lockState == Lock::Reserved ? KErrAlreadyExists : KErrGeneral); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbthemeserverutils.cpp --- a/src/hbservers/hbthemeserver/hbthemeserverutils.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbthemeserverutils.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -125,10 +125,8 @@ *inSharedCache = false; } -#ifdef THEME_SERVER_TRACES - qDebug() << "In " << Q_FUNC_INFO; -#endif // THEME_SERVER_TRACES if (cssOffset < 0) { + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Stylesheet: " << fileName << " not found in shared cache."; HbCss::Parser parser; if (!parseCssFile(parser, fileName, cssOffset, fileExists)) { if (parser.errorCode == HbCss::Parser::OutOfMemoryError) { @@ -264,14 +262,10 @@ QFile file(fileName); fileExists = file.open(QFile::ReadOnly | QFile::Text); if (!fileExists) { -#ifdef THEME_SERVER_TRACES - qWarning("Unable to open file"); -#endif + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Unable to open the file: " << fileName; return -1; } -#ifdef THEME_SERVER_TRACES - qDebug() << "Trying to load: " << fileName << "::" << layout << "::" << section; -#endif // THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Trying to load: " << fileName << "::" << layout << "::" << section; HbWidgetLoader::LayoutDefinition *layoutDef(0); GET_MEMORY_MANAGER(HbMemoryManager::SharedMemory); @@ -354,24 +348,15 @@ */ int HbThemeServerUtils::getSharedEffect(const QString &fileName) { -#ifdef THEME_SERVER_TRACES - qDebug() << "In " << Q_FUNC_INFO << fileName; -#endif // THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "called with fileName: " << fileName; qptrdiff effOffset = -1; if (effCache()->contains(fileName)) { effOffset = effCache()->value(fileName); - -#ifdef THEME_SERVER_TRACES - qDebug() << "Got effect in cache: " << fileName << "offset=" << effOffset; -#endif //THEME_SERVER_TRACES - + THEME_GENERIC_DEBUG() << "in cache: " << fileName << "offset=" << effOffset; } else { - -#ifdef THEME_SERVER_TRACES - qDebug() << "Not in cache, parsing: " << fileName; -#endif //THEME_SERVER_TRACES - + THEME_GENERIC_DEBUG() << "Not in cache, parsing: " << fileName; + // 1. Create an effect in shared memory GET_MEMORY_MANAGER(HbMemoryManager::SharedMemory); HbEffectFxmlData *data = 0; @@ -386,6 +371,7 @@ manager->free(effOffset); effOffset = -1; } + THEME_GENERIC_DEBUG() << "Exception when allocating shared memory."; return effOffset; } // 2. Parse the file. @@ -405,14 +391,13 @@ fail = true; } } else { -#ifdef THEME_SERVER_TRACES - qWarning() << "Cannot open" << fileName; -#endif // THEME_SERVER_TRACES + THEME_GENERIC_DEBUG() << "Cannot open:" << fileName; fail = true; } if (fail) { data->~HbEffectFxmlData(); manager->free(effOffset); + THEME_GENERIC_DEBUG() << "Failed to parese effect."; return -1; } @@ -422,25 +407,20 @@ // in the server side. HbSharedCache::instance()->add(HbSharedCache::Effect, fileName, effOffset); } - -#ifdef THEME_SERVER_TRACES - qDebug() << "returning offset: " << effOffset; -#endif // THEME_SERVER_TRACES - + + THEME_GENERIC_DEBUG() << "returning offset: " << effOffset; return effOffset; } void HbThemeServerUtils::createThemeIndex(const QString &themePath, const HbThemeType &themetype) { - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: createThemeIndex" << themePath.toUtf8(); - #endif + THEME_INDEX_DEBUG() << "ThemeIndex: createThemeIndex" << themePath.toUtf8(); QDir themeBasePath(themePath); // Path is like "C:/resource/hb/themes/icons/sfwhitetheme" QString themeName = themeBasePath.dirName(); QString filename(themeBasePath.absolutePath()); - int cutindex = filename.lastIndexOf("/",filename.lastIndexOf("/")-1)+1; + int cutindex = filename.lastIndexOf('/',filename.lastIndexOf('/')-1)+1; filename = filename.left(cutindex); themeBasePath.setPath(filename); filename.append(themeName); @@ -457,50 +437,33 @@ bool indexOK = false; if (indexFile.open(QIODevice::ReadOnly)) { - indexOK = true; - GET_MEMORY_MANAGER(HbMemoryManager::SharedMemory); - HbSharedChunkHeader *chunkHeader = (HbSharedChunkHeader*) manager->base(); - + HbSharedChunkHeader *chunkHeader = (HbSharedChunkHeader*) manager->base(); qint64 byteSize = indexFile.size(); - - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: " << themeName.toUtf8() << " index file size:" << byteSize; - #endif + THEME_INDEX_DEBUG() << "ThemeIndex: " << themeName.toUtf8() << " index file size:" << byteSize; int offset = manager->alloc(byteSize); if (offset >= 0) { - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: memory allocated for theme: " << themeName.toUtf8(); - #endif + THEME_INDEX_DEBUG() << "ThemeIndex: memory allocated for theme: " << themeName.toUtf8(); // Read the theme index in the shared chunk char *address = HbMemoryUtils::getAddress(HbMemoryManager::SharedMemory, offset); indexFile.read(address, byteSize); indexFile.close(); - - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: Reading themeindex for theme" << themeName.toUtf8() << "... Done!"; - #endif + THEME_INDEX_DEBUG() << "ThemeIndex: Reading themeindex for theme" << themeName.toUtf8() << "... Done!"; // Verify theme index contents if it is not located in ROM, // so that it does not have over-indexing offsets which might // crash all the clients trying to read from it. if (themePath[0] != 'z' && themePath[0] != 'Z') { - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: Validating themeindex for theme" << themeName.toUtf8(); - #endif - + THEME_INDEX_DEBUG() << "ThemeIndex: Validating themeindex for theme" << themeName.toUtf8(); HbThemeIndex index(address); indexOK = index.validateItems(byteSize); - - #ifdef THEME_INDEX_TRACES - qDebug() << "ThemeIndex: Validating themeindex for theme" << themeName.toUtf8() << " done! Result: " << indexOK; - #endif + THEME_INDEX_DEBUG() << "ThemeIndex: Validating themeindex for theme" << themeName.toUtf8() << " done! Result: " << indexOK; } if (indexOK) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbservers/hbthemeserver/hbthemewatcher_symbian.cpp --- a/src/hbservers/hbthemeserver/hbthemewatcher_symbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbservers/hbthemeserver/hbthemewatcher_symbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -192,32 +192,22 @@ TBuf requestData; TInt ret = themeRequestProp.Get(requestData); switch (ret) { - case KErrNone: - { - QString qrequestData((QChar*)requestData.Ptr(),requestData.Length()); - HbThemeServerRequest etype = EInvalidServerRequest; - TBuf data; - ///Parse the data from the Publisher - bool bSuccess = parseData( requestData, etype, data); - if( bSuccess && EThemeSelection == etype) { - QString str((QChar*)data.Ptr(), data.Length()); - str = str.trimmed(); - iObserver.HandleThemeSelection( str ); - } - } - break; - case KErrPermissionDenied: - qDebug() << "KErrPermissionDenied"; - break; - case KErrNotFound: - qDebug() << "KErrNotFound"; - break; - case KErrArgument: - qDebug() << "KErrArgument"; - break; - case KErrOverflow: - qDebug() << "KErrOverflow"; - break; + case KErrNone: { + QString qrequestData((QChar*)requestData.Ptr(),requestData.Length()); + HbThemeServerRequest etype = EInvalidServerRequest; + TBuf data; + ///Parse the data from the Publisher + bool bSuccess = parseData( requestData, etype, data); + if( bSuccess && EThemeSelection == etype) { + QString str((QChar*)data.Ptr(), data.Length()); + str = str.trimmed(); + iObserver.HandleThemeSelection( str ); + } + break; + } + default: + THEME_GENERIC_DEBUG() << Q_FUNC_INFO << "Themechange request read failed. Error code: " << ret; + break; } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbtools/docml2bin/docml2bin.pro --- a/src/hbtools/docml2bin/docml2bin.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbtools/docml2bin/docml2bin.pro Fri Sep 17 08:32:10 2010 +0300 @@ -44,6 +44,8 @@ DESTDIR = $${HB_BUILD_DIR}/bin # dependencies +HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbhash_p.h +SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbhash_p.cpp HEADERS += $${HB_SOURCE_DIR}/src/hbcore/layouts/hbanchor.h SOURCES += $${HB_SOURCE_DIR}/src/hbcore/layouts/hbanchor.cpp HEADERS += $${HB_SOURCE_DIR}/src/hbcore/utils/hbfontspec.h diff -r e6ad4ef83b23 -r b7da29130b0e src/hbtools/hbbincssmaker/hbbincssmaker.pro --- a/src/hbtools/hbbincssmaker/hbbincssmaker.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbtools/hbbincssmaker/hbbincssmaker.pro Fri Sep 17 08:32:10 2010 +0300 @@ -61,6 +61,7 @@ DESTDIR = $${HB_BUILD_DIR}/bin # headers and sources from hbcore +HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbhash_p.h HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbmemorymanager_p.h HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbsharedmemorymanager_p.h HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbvector_p.h @@ -76,7 +77,9 @@ HEADERS += $${HB_SOURCE_DIR}/src/hbcore/theme/hbthemecommon_p.h HEADERS += $${HB_SOURCE_DIR}/src/hbcore/cssparser/hbcssparser_p.h + #memory manager source dependencies +SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbhash_p.cpp SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbmemorymanager_p.cpp SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbsharedmemorymanager_p.cpp SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbsplaytreeallocator_p.cpp diff -r e6ad4ef83b23 -r b7da29130b0e src/hbtools/hbbincssmaker/hboffsetmapbuilder.cpp --- a/src/hbtools/hbbincssmaker/hboffsetmapbuilder.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbtools/hbbincssmaker/hboffsetmapbuilder.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -25,6 +25,7 @@ #include "hboffsetmapbuilder_p.h" #include "hblayoutparameters_p.h" +#include "hbhash_p.h" #include @@ -42,7 +43,7 @@ return true; } bool retValue = true; - quint32 nameHash = HbSharedCache::hash(QStringRef(&className)); + quint32 nameHash = hbHash(QStringRef(&className)); HbBinMakerOffsetItem mapItem = mMapItems.value(nameHash, HbBinMakerOffsetItem()); if (mapItem.isNull()) { if (fileInfo) { @@ -77,8 +78,8 @@ QList &layoutIndexTable = offsetItem.value().layoutIndexItemList; Q_FOREACH(const LayoutItem &layoutInfo, layoutInfoList) { HbLayoutIndexItem item; - item.layoutNameHash = HbSharedCache::hash(QStringRef(&layoutInfo.layout->layoutname)); - item.sectionNameHash = HbSharedCache::hash(QStringRef(&layoutInfo.layout->section)); + item.layoutNameHash = hbHash(QStringRef(&layoutInfo.layout->layoutname)); + item.sectionNameHash = hbHash(QStringRef(&layoutInfo.layout->section)); quint64 hash = (quint64(item.layoutNameHash) << 32) | item.sectionNameHash; if (!hashCheck.contains(hash)) { hashCheck.insert(hash); @@ -103,7 +104,7 @@ QHash::const_iterator end = parameters.end(); for (QHash::const_iterator i = parameters.begin(); i != end; ++i) { - quint32 hash = HbSharedCache::hash(QStringRef(&i.key())); + quint32 hash = hbHash(QStringRef(&i.key())); if (mParameters.contains(hash)) { err << "duplicate parameter hash found for: " << i.key(); status = false; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbtools/hbthemeindexer/hbthemeindexer.pro --- a/src/hbtools/hbthemeindexer/hbthemeindexer.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbtools/hbthemeindexer/hbthemeindexer.pro Fri Sep 17 08:32:10 2010 +0300 @@ -44,6 +44,9 @@ HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbthemeindex_p.h SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbthemeindex.cpp +HEADERS += $${HB_SOURCE_DIR}/src/hbcore/core/hbhash_p.h +SOURCES += $${HB_SOURCE_DIR}/src/hbcore/core/hbhash_p.cpp + HEADERS += $${HB_SOURCE_DIR}/src/hbcore/image/hbiconsource_p.h SOURCES += $${HB_SOURCE_DIR}/src/hbcore/image/hbiconsource.cpp diff -r e6ad4ef83b23 -r b7da29130b0e src/hbtools/hbthemeindexer/main.cpp --- a/src/hbtools/hbthemeindexer/main.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbtools/hbthemeindexer/main.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -25,6 +25,8 @@ #include #include +#include + #include #include #include @@ -231,7 +233,7 @@ // If we come here, the filename must end with .* (e.g. .svg) iconname = filename.left(filename.lastIndexOf('.')); - itemData.itemNameHash = HbThemeIndex::hash(iconname); + itemData.itemNameHash = hbHash(iconname); // Define default size QSize defaultSize = getDefaultSize(fullFilename); @@ -288,7 +290,7 @@ case HbThemeIndexItemData::FxmlItem: { // Define fileName (file extension not removed) - itemData.itemNameHash = HbThemeIndex::hash(filename); + itemData.itemNameHash = hbHash(filename); if (LockedList.contains(filename)) { itemData.flags |= HbThemeIndexItemData::Locked; @@ -342,7 +344,7 @@ value = line.mid(startIndex, endIndex - startIndex).trimmed(); } - itemData.itemNameHash = HbThemeIndex::hash(name); + itemData.itemNameHash = hbHash(name); itemData.itemType = HbThemeIndexItemData::ColorItem; bool ok = false; itemData.colorValue = (quint32)value.toUInt(&ok, 16); // Might cause compiler warning in 64 bit systems @@ -387,7 +389,7 @@ // So just create empty items for the rest of mirrored items in list foreach (QString mirrored, MirroredList) { HbThemeIndexItemData itemData; - itemData.itemNameHash = HbThemeIndex::hash(mirrored); + itemData.itemNameHash = hbHash(mirrored); itemData.flags |= HbThemeIndexItemData::Mirrorable; appendItem(itemData, mirrored); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/dataform/hbdataform.cpp --- a/src/hbwidgets/dataform/hbdataform.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/dataform/hbdataform.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -39,7 +39,156 @@ #include #include +#include +#include +#include +class HbTapDelayGesture:public HbTapGesture +{ +public: + using HbTapGesture::d_ptr; + + Q_DECLARE_PRIVATE_D(d_ptr, HbTapGesture); +}; +class HbTapDelayGestureRecognizer : public HbTapGestureRecognizer +{ +public: + explicit HbTapDelayGestureRecognizer(){}; + virtual ~HbTapDelayGestureRecognizer() + { + int i = 0; + i++; + }; + + QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event) + { + HbTapDelayGesture* gesture = static_cast(state); + QMouseEvent* me = toMouseEvent(event); + Qt::GestureState gestureState = state->state(); + switch(event->type()) + { + case QEvent::MouseButtonDblClick: + case QEvent::MouseButtonPress: + if ( state->state() == Qt::NoGesture && me->button() == Qt::LeftButton){ + + gesture->setPosition(me->globalPos()); + gesture->setHotSpot(me->globalPos()); + gesture->setStartPos(me->globalPos()); + gesture->setScenePosition(HbGestureUtils::mapToScene(watched, me->globalPos())); + gesture->setSceneStartPos(HbGestureUtils::mapToScene(watched, me->globalPos())); + mTapRadius = (int)(HbDefaultTapRadius * HbDeviceProfile::current().ppmValue()); + + HbTapGesturePrivate* d_ptr = gesture->d_func(); + d_ptr->mTapStyleHint = HbTapGesture::Tap; + if ( d_ptr->mTimerId ) { + gesture->killTimer(d_ptr->mTimerId); + } + d_ptr->mTimerId = gesture->startTimer(50); + return QGestureRecognizer::MayBeGesture; + + } + else { + return QGestureRecognizer::Ignore; + } + + + case QEvent::MouseMove: + if(gestureState != Qt::NoGesture && gestureState != Qt::GestureCanceled) { + return handleMouseMove(gestureState, gesture, watched, toMouseEvent(event)); + } + else{ + if (gesture->d_func()->mTimerId) { + gesture->setPosition(me->globalPos()); + gesture->setScenePosition(HbGestureUtils::mapToScene(watched, me->globalPos())); + gesture->setHotSpot(me->globalPos()); + + int tapRadiusSquare(mTapRadius * mTapRadius); + if(gesture->property(HbPrivate::TapRadius.latin1()).isValid()) { + qWarning("WARNING using widget specific properties in HbTapGestureRecognizer"); + int tapRadius = gesture->property(HbPrivate::TapRadius.latin1()).toInt(); + tapRadiusSquare = tapRadius * tapRadius; + } + QPointF delta = me->globalPos() - gesture->startPos(); + + // cancel long press with radius + if((delta.x() * delta.x() + delta.y() * delta.y()) > tapRadiusSquare) { + gesture->killTimer(gesture->d_func()->mTimerId); + gesture->d_func()->mTimerId = 0; + } + + } + return QGestureRecognizer::Ignore; + } + + case QEvent::MouseButtonRelease: + if(gestureState != Qt::NoGesture) { + return handleMouseRelease(gestureState, gesture, watched, toMouseEvent(event)); + } + else{ + + if (gesture->d_func()->mTimerId) { + gesture->killTimer(gesture->d_func()->mTimerId); + gesture->d_func()->mTimerId = 0; + return QGestureRecognizer::FinishGesture; + } else { + return QGestureRecognizer::Ignore; + } + } + + case QEvent::Timer: + { + QGestureRecognizer::Result result; + gesture->killTimer(gesture->d_func()->mTimerId); + gesture->d_func()->mTimerId = 0; + if(gestureState == Qt::NoGesture) { + result = QGestureRecognizer::TriggerGesture; + gesture->d_func()->mTimerId = gesture->startTimer(HbTapAndHoldTimeout); + + } + else { + result = handleTimerEvent(gesture->state(),gesture,watched); + } + + return result; + } + break; + + case QEvent::TouchBegin: + case QEvent::TouchUpdate: + return HbTapGestureRecognizer::recognize(state, watched, event); + + default: break; + } + + return QGestureRecognizer::Ignore; + + } +}; + +class DelayGestureInstaller +{ +public: + DelayGestureInstaller():count(0){} + void install() + { + if(count <=0){ + QGestureRecognizer::unregisterRecognizer(Qt::TapGesture); + QGestureRecognizer::registerRecognizer(new HbTapDelayGestureRecognizer); + + } + count++; + } + void unInstall() + { + count--; + if(count <1){ + QGestureRecognizer::unregisterRecognizer(Qt::TapGesture); + QGestureRecognizer::registerRecognizer(new HbTapGestureRecognizer); + } + } + int count; +}; +static DelayGestureInstaller delayGestureInstaller; /*! @beta @hbwidgets @@ -233,7 +382,7 @@ Q_D( HbDataForm ); d->q_ptr = this; d->init(); - setVerticalScrollBarPolicy(ScrollBarAlwaysOff); + //setVerticalScrollBarPolicy(ScrollBarAlwaysOff); } /*! @@ -513,13 +662,14 @@ HbDataFormModelItemPrivate *modelItem_priv = HbDataFormModelItemPrivate::d_ptr(modelItem); if(item){ - HbDataFormViewItemPrivate::d_ptr(item)->setEnabled( modelItem->isEnabled() ); if( modelItem_priv->dirtyProperty() == "LabelRole" || modelItem_priv->dirtyProperty() == "DecorationRole" || modelItem_priv->dirtyProperty() == "DescriptionRole" ) { HbDataFormViewItemPrivate::d_ptr(item)->updateData(); return; + } else if(modelItem_priv->dirtyProperty() == "enabled") { + HbDataFormViewItemPrivate::d_ptr(item)->setEnabled( modelItem->isEnabled() ); } item->restore(); } @@ -654,6 +804,66 @@ d->removeAllConnection(item); } + +/*! + \reimp + + This slot is called when orientation is changed. + \a newOrientation has the currentOrientation mode. + Note: Currently platform dependent orientation support is not available +*/ +void HbDataForm::orientationChanged(Qt::Orientation newOrientation) +{ + Q_UNUSED(newOrientation); + Q_D(HbDataForm); + + //Setting the uniform ites sizes to container again resets size caches. + d->mContainer->setUniformItemSizes(d->mContainer->uniformItemSizes()); + d->mContainer->setPos(0,0); + d->mContainer->resizeContainer(); + + d->updateScrollMetrics(); + + d->stopAnimating(); + scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtCenter); + d->mVisibleIndex = QModelIndex(); +} + +void HbDataForm::orientationAboutToBeChanged() +{ + Q_D(HbDataForm); + QRectF rect = mapToScene(boundingRect()).boundingRect(); + HbAbstractViewItem * item = d->itemAt((rect.center())); + if(item){ + d->mVisibleIndex = item->modelIndex(); + } else{ + HbAbstractItemView::orientationAboutToBeChanged(); + } +} + +/*! + \reimp +*/ + +void HbDataForm::showEvent(QShowEvent * event) +{ + if(!isVisible() ){ + delayGestureInstaller.install(); + } + HbAbstractItemView::showEvent( event ); +} + +/*! + \reimp +*/ +void HbDataForm::hideEvent ( QHideEvent * event ) +{ + delayGestureInstaller.unInstall(); + HbAbstractItemView::hideEvent( event ); + +} + + #include "moc_hbdataform.cpp" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/dataform/hbdataform.h --- a/src/hbwidgets/dataform/hbdataform.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/dataform/hbdataform.h Fri Sep 17 08:32:10 2010 +0300 @@ -89,6 +89,10 @@ void initStyleOption(HbStyleOptionDataForm *option); + void orientationChanged(Qt::Orientation newOrientation); + void orientationAboutToBeChanged(); + void showEvent(QShowEvent * event); + void hideEvent ( QHideEvent * event ); private: Q_DECLARE_PRIVATE_D(d_ptr, HbDataForm) Q_DISABLE_COPY(HbDataForm) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/dataform/hbdataformmodelitem.cpp --- a/src/hbwidgets/dataform/hbdataformmodelitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/dataform/hbdataformmodelitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -755,6 +755,7 @@ void HbDataFormModelItem::setEnabled(bool enabled) { Q_D(HbDataFormModelItem); + d->mDirtyProperty = "enabled"; if (enabled != (bool)(d->mFlags & Qt::ItemIsEnabled)) { if (enabled) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/dataform/hbdataformviewitem_p.cpp --- a/src/hbwidgets/dataform/hbdataformviewitem_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/dataform/hbdataformviewitem_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -356,9 +356,9 @@ mDialog->setDismissPolicy(HbPopup::NoDismiss); mDialog->setModal(true); mDialog->setContentWidget(mRadioButtonList); - HbAction *ok = new HbAction(hbTrId("txt_common_button_ok")); + HbAction *ok = new HbAction(hbTrId("txt_common_button_ok"), mDialog); mDialog->addAction(ok); - HbAction *cancel = new HbAction(hbTrId("txt_common_button_cancel")); + HbAction *cancel = new HbAction(hbTrId("txt_common_button_cancel"), mDialog); connect(ok, SIGNAL(triggered()), mDialog,SLOT(accept())); mDialog->addAction(cancel); mDialog->connect(cancel, SIGNAL(triggered()), mDialog, SLOT(reject())); @@ -371,7 +371,7 @@ void HbRadioItem::updateModel( int index ) { mSelected = index; - if( index > -1 && mItems.count() < index ) { + if( index > -1 && mItems.count() > index ) { emit valueChanged(mViewItem->modelIndex(), mItems.at(index)); } // Disconnect modelchanged signal since visualization is already updated by user @@ -771,6 +771,11 @@ } mDescription = description; + if(mDescription.isEmpty()) { + q->setProperty("hasDescription",false); + } else { + q->setProperty("hasDescription",true); + } createPrimitives(); if ( doRepolish ) { q->repolish(); @@ -897,7 +902,7 @@ void HbDataFormViewItemPrivate::setEnabled(bool enabled) { Q_Q(HbDataFormViewItem); - + Q_UNUSED(enabled); QGraphicsItem::GraphicsItemFlags itemFlags = q->flags(); Qt::ItemFlags indexFlags = mIndex.flags(); @@ -920,12 +925,12 @@ } if( mContentWidget ) { - mContentWidget->setEnabled(enabled); + //mContentWidget->setEnabled(enabled); //If slider is disabled then still panning should be possible. if( ( mType == HbDataFormModelItem::SliderItem ) || ( mType == HbDataFormModelItem::VolumeSliderItem ) ) { HbSlider *slider = static_cast( mContentWidget ); - if( enabled ) { + if( slider && slider->isEnabled() ) { //grab pan gesture slider->primitive((HbStyle::Primitive)HbStylePrivate::P_SliderElement_touchgroove)->toGraphicsObject()->grabGesture( Qt::PanGesture); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/dataform/hbdatagroup_p.cpp --- a/src/hbwidgets/dataform/hbdatagroup_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/dataform/hbdatagroup_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -100,9 +100,6 @@ mPageComboBackgroundItem = 0; q->repolish(); - - QCoreApplication::sendPostedEvents(q, QEvent::Polish); - } } } @@ -293,8 +290,6 @@ } q->repolish(); - - QCoreApplication::sendPostedEvents(q, QEvent::Polish); } // disconnecting to avoid pagechanged signal when setting group. @@ -426,6 +421,11 @@ Q_D( HbDataGroup ); d->mGroupHeading->mDescription = description; + if(d->mGroupHeading->mDescription.isEmpty()) { + setProperty("hasDescription",false); + } else { + setProperty("hasDescription",true); + } d->mGroupHeading->createPrimitives( ); d->mGroupHeading->updatePrimitives( ); } @@ -664,6 +664,8 @@ HbDataFormModelItem::DataItemType contentWidgetType = static_cast( (d->mIndex.data(HbDataFormModelItem::ItemTypeRole)).toInt()); + connect(this, SIGNAL(itemShown(const QModelIndex&)), + d->mSharedData->mItemView, SIGNAL(itemShown(const QModelIndex&))); if ( contentWidgetType == HbDataFormModelItem::GroupItem ) { d->mGroupHeading = new HbDataGroupHeadingWidget(); @@ -684,6 +686,8 @@ HbDataFormModelItem::DescriptionRole).toString(); if(!groupDescription.isEmpty()) { setDescription(groupDescription); + } else { + setProperty("hasDescription",false); } //update visualization based on whether item is enabled or disabled diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/dataform/hbdataitemcontainer_p.cpp --- a/src/hbwidgets/dataform/hbdataitemcontainer_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/dataform/hbdataitemcontainer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -179,11 +179,6 @@ nextItem = 0; } } - if (scene()) { - QMetaObject::invokeMethod(scene(),"_q_polishItems",Qt::DirectConnection); - QEvent event(QEvent::LayoutRequest); - QCoreApplication::sendEvent(this, &event); - } } HbAbstractViewItem *HbDataItemContainer::createDefaultPrototype() const diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/defs/bwins/HbWidgetsu.def --- a/src/hbwidgets/defs/bwins/HbWidgetsu.def Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/defs/bwins/HbWidgetsu.def Fri Sep 17 08:32:10 2010 +0300 @@ -3456,7 +3456,7 @@ ??0HbRadioButtonListViewItem@@QAE@PAVQGraphicsItem@@@Z @ 3455 NONAME ; HbRadioButtonListViewItem::HbRadioButtonListViewItem(class QGraphicsItem *) ?setFocusToNextOrPreviousAnchor@HbAbstractEditPrivate@@QAE_N_N@Z @ 3456 NONAME ; bool HbAbstractEditPrivate::setFocusToNextOrPreviousAnchor(bool) ??0HbSelectionDialogContentWidget@@QAE@PAVHbSelectionDialogPrivate@@@Z @ 3457 NONAME ; HbSelectionDialogContentWidget::HbSelectionDialogContentWidget(class HbSelectionDialogPrivate *) - ?style@HbProgressSliderPrivate@@UBEPAVHbStyle@@XZ @ 3458 NONAME ; class HbStyle * HbProgressSliderPrivate::style(void) const + ?style@HbProgressSliderPrivate@@UBEPAVHbStyle@@XZ @ 3458 NONAME ABSENT ; class HbStyle * HbProgressSliderPrivate::style(void) const ?itemAdded@HbGridItemContainer@@MAEXHPAVHbAbstractViewItem@@_N@Z @ 3459 NONAME ; void HbGridItemContainer::itemAdded(int, class HbAbstractViewItem *, bool) ??0HbAbstractEditPrivate@@QAE@XZ @ 3460 NONAME ; HbAbstractEditPrivate::HbAbstractEditPrivate(void) ?setHandleItem@HbSliderControl@@QAEXPAVQGraphicsItem@@@Z @ 3461 NONAME ; void HbSliderControl::setHandleItem(class QGraphicsItem *) @@ -4104,4 +4104,24 @@ ?SetShowLevel@HbDeviceDialogsExtensionSymbian@@SAXPAVCHbDeviceProgressDialogSymbian@@H@Z @ 4103 NONAME ; void HbDeviceDialogsExtensionSymbian::SetShowLevel(class CHbDeviceProgressDialogSymbian *, int) ?SetShowLevel@HbDeviceDialogsExtensionSymbian@@SAXPAVCHbDeviceNotificationDialogSymbian@@H@Z @ 4104 NONAME ; void HbDeviceDialogsExtensionSymbian::SetShowLevel(class CHbDeviceNotificationDialogSymbian *, int) ?SetShowLevel@HbDeviceDialogsExtensionSymbian@@SAXPAVCHbDeviceMessageBoxSymbian@@H@Z @ 4105 NONAME ; void HbDeviceDialogsExtensionSymbian::SetShowLevel(class CHbDeviceMessageBoxSymbian *, int) + ?orientationChanged@HbDataForm@@MAEXW4Orientation@Qt@@@Z @ 4106 NONAME ; void HbDataForm::orientationChanged(enum Qt::Orientation) + ?orientationAboutToBeChanged@HbDataForm@@MAEXXZ @ 4107 NONAME ; void HbDataForm::orientationAboutToBeChanged(void) + ?gestureEvent@HbZoomSlider@@UAEXPAVQGestureEvent@@@Z @ 4108 NONAME ; void HbZoomSlider::gestureEvent(class QGestureEvent *) + ?gestureEvent@HbVolumeSlider@@UAEXPAVQGestureEvent@@@Z @ 4109 NONAME ; void HbVolumeSlider::gestureEvent(class QGestureEvent *) + ?polish@HbComboBox@@MAEXAAVHbStyleParameters@@@Z @ 4110 NONAME ; void HbComboBox::polish(class HbStyleParameters &) + ?showEvent@HbDataForm@@MAEXPAVQShowEvent@@@Z @ 4111 NONAME ; void HbDataForm::showEvent(class QShowEvent *) + ?hideEvent@HbDataForm@@MAEXPAVQHideEvent@@@Z @ 4112 NONAME ; void HbDataForm::hideEvent(class QHideEvent *) + ?updatePrimitives@HbProgressDialog@@UAEXXZ @ 4113 NONAME ; void HbProgressDialog::updatePrimitives(void) + ?setSelectionTitle@HbSelectionDialog@@QAEXABVQString@@@Z @ 4114 NONAME ; void HbSelectionDialog::setSelectionTitle(class QString const &) + ?selectionTitle@HbSelectionDialog@@QBE?AVQString@@XZ @ 4115 NONAME ; class QString HbSelectionDialog::selectionTitle(void) const + ?setSelectionTitle@HbSelectionDialogContentWidget@@QAEXABVQString@@@Z @ 4116 NONAME ; void HbSelectionDialogContentWidget::setSelectionTitle(class QString const &) + ?initPrimitiveData@HbInputDialog@@IAEXPAVHbStylePrimitiveData@@PBVQGraphicsObject@@@Z @ 4117 NONAME ; void HbInputDialog::initPrimitiveData(class HbStylePrimitiveData *, class QGraphicsObject const *) + ?showEvent@HbMessageBox@@MAEXPAVQShowEvent@@@Z @ 4118 NONAME ; void HbMessageBox::showEvent(class QShowEvent *) + ?initPrimitiveData@HbDateTimePicker@@IAEXPAVHbStylePrimitiveData@@PBVQGraphicsObject@@@Z @ 4119 NONAME ; void HbDateTimePicker::initPrimitiveData(class HbStylePrimitiveData *, class QGraphicsObject const *) + ?initPrimitiveData@HbProgressDialog@@IAEXPAVHbStylePrimitiveData@@PBVQGraphicsObject@@@Z @ 4120 NONAME ; void HbProgressDialog::initPrimitiveData(class HbStylePrimitiveData *, class QGraphicsObject const *) + ?recreatePrimitives@HbProgressDialog@@UAEXXZ @ 4121 NONAME ; void HbProgressDialog::recreatePrimitives(void) + ?recreatePrimitives@HbInputDialog@@UAEXXZ @ 4122 NONAME ; void HbInputDialog::recreatePrimitives(void) + ?setToolTipText@HbRatingSlider@@QAEXVQString@@@Z @ 4123 NONAME ; void HbRatingSlider::setToolTipText(class QString) + ?selectionTitle@HbSelectionDialogContentWidget@@QBE?AVQString@@XZ @ 4124 NONAME ; class QString HbSelectionDialogContentWidget::selectionTitle(void) const + ?selectionChanged@HbSelectionDialog@@IAEXXZ @ 4125 NONAME ; void HbSelectionDialog::selectionChanged(void) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/defs/eabi/HbWidgetsu.def --- a/src/hbwidgets/defs/eabi/HbWidgetsu.def Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/defs/eabi/HbWidgetsu.def Fri Sep 17 08:32:10 2010 +0300 @@ -4257,7 +4257,7 @@ _ZNK23HbProgressSliderPrivate18invertedAppearanceEv @ 4256 NONAME _ZNK23HbProgressSliderPrivate18parentGraphicsItemEv @ 4257 NONAME _ZNK23HbProgressSliderPrivate20parentGraphicsWidgetEv @ 4258 NONAME - _ZNK23HbProgressSliderPrivate5styleEv @ 4259 NONAME + _ZNK23HbProgressSliderPrivate5styleEv @ 4259 NONAME ABSENT _ZNK23HbProgressSliderPrivate7maximumEv @ 4260 NONAME _ZNK23HbProgressSliderPrivate7minimumEv @ 4261 NONAME _ZNK24HbDataGroupHeadingWidget10metaObjectEv @ 4262 NONAME @@ -4564,4 +4564,24 @@ _ZN31HbDeviceDialogsExtensionSymbian12SetShowLevelEP26CHbDeviceMessageBoxSymbiani @ 4563 NONAME _ZN31HbDeviceDialogsExtensionSymbian12SetShowLevelEP30CHbDeviceProgressDialogSymbiani @ 4564 NONAME _ZN31HbDeviceDialogsExtensionSymbian12SetShowLevelEP34CHbDeviceNotificationDialogSymbiani @ 4565 NONAME + _ZN10HbDataForm18orientationChangedEN2Qt11OrientationE @ 4566 NONAME + _ZN10HbDataForm27orientationAboutToBeChangedEv @ 4567 NONAME + _ZN12HbZoomSlider12gestureEventEP13QGestureEvent @ 4568 NONAME + _ZN14HbVolumeSlider12gestureEventEP13QGestureEvent @ 4569 NONAME + _ZN10HbComboBox6polishER17HbStyleParameters @ 4570 NONAME + _ZN10HbDataForm9hideEventEP10QHideEvent @ 4571 NONAME + _ZN10HbDataForm9showEventEP10QShowEvent @ 4572 NONAME + _ZN12HbMessageBox9showEventEP10QShowEvent @ 4573 NONAME + _ZN13HbInputDialog17initPrimitiveDataEP20HbStylePrimitiveDataPK15QGraphicsObject @ 4574 NONAME + _ZN13HbInputDialog18recreatePrimitivesEv @ 4575 NONAME + _ZN14HbRatingSlider14setToolTipTextE7QString @ 4576 NONAME + _ZN16HbDateTimePicker17initPrimitiveDataEP20HbStylePrimitiveDataPK15QGraphicsObject @ 4577 NONAME + _ZN16HbProgressDialog16updatePrimitivesEv @ 4578 NONAME + _ZN16HbProgressDialog17initPrimitiveDataEP20HbStylePrimitiveDataPK15QGraphicsObject @ 4579 NONAME + _ZN16HbProgressDialog18recreatePrimitivesEv @ 4580 NONAME + _ZN17HbSelectionDialog17setSelectionTitleERK7QString @ 4581 NONAME + _ZN30HbSelectionDialogContentWidget17setSelectionTitleERK7QString @ 4582 NONAME + _ZNK17HbSelectionDialog14selectionTitleEv @ 4583 NONAME + _ZNK30HbSelectionDialogContentWidget14selectionTitleEv @ 4584 NONAME + _ZN17HbSelectionDialog16selectionChangedEv @ 4585 NONAME diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdevicemessagebox.cpp --- a/src/hbwidgets/devicedialogs/hbdevicemessagebox.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdevicemessagebox.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -407,13 +407,13 @@ @stable @hbwidgets \class HbDeviceMessageBox - \brief HbDeviceMessageBox displays a message box on top of any running applications. + \brief HbDeviceMessageBox displays a message box on top all applications. - HbDeviceMessageBox is a device-dialog version of HbMessageBox. It displays a message box - with text, icon or animation and optional accept and reject buttons. The message box is - displayed by a device-dialog service which HbDeviceMessageBox is a client of. + HbDeviceMessageBox is a device-dialog version of HbMessageBox. It is a modal + dialog and displayed on top all applications by a device-dialog service. + HbDeviceMessageBox is a client of the service. - Device dialogs are shown on top of any running applications and are always modal by nature. + For content it provides text, icon or animation and optional accept and reject buttons. A device message box is lauched by a show(). A new message box is lauched every time show() is called. aboutToClose() signal is emitted when the box has closed. There is also syncronous @@ -440,6 +440,10 @@ be updated. Information and warning convenience methods return immediately. Question waits for a message box to close and is not compatible with gestures. + If none of HbDeviceMessageBox signals have been connected to, the object can be deleted after + show() has been called and device-dialog service takes care showing the message box. If any + signals are connected, message box is closed when HbDeviceMessageBox object goes out of scope. + Four types of message boxes are predefined. The type determines a set of default properties that are set on construction. Below is a table listing types and their default properties. @@ -452,12 +456,18 @@ QuestionQuestion icon"Yes" and "No" buttonsNo timeoutButton pressQuestion sound - In place of an icon, message box may conatain an animation. Supported icon animation formats are: + In place of an icon, message box may contain an animation. Supported icon animation formats are: - GIF (.gif) - MNG (.mng) - Frame animations (.axml) - Sample code: + \section _platform_spec Platform-specific implementation notes for HbDeviceNotificationDialog + + \subsection _nonsymbian Non-Symbian + Device dialog service is implemented only for the Symbian platform. On other platforms device + message boxes are displayed on client's main window. + + \section _code_samples Sample code \code // Ask from user whether to continue operation or not. @@ -555,6 +565,7 @@ /*! Constructor. + \param type Type of the message box. \param parent An optional parameter. */ @@ -570,6 +581,7 @@ /*! Constructor. + \param text Message box text. \param type Type of the message box. \param parent An optional parameter. @@ -596,7 +608,8 @@ } /*! - Shows a message box and returns immediately without waiting for it to close. Closing of the + Shows a message box and returns immediately without waiting for it to close. A new message box + is launched each time show() is called. Closing of the message box is indicated by aboutToClose() signal. Button presses are indicated by QAction::triggered() signals. The message box can be updated while showing by property setters. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdevicemessageboxsymbian.cpp --- a/src/hbwidgets/devicedialogs/hbdevicemessageboxsymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdevicemessageboxsymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -547,9 +547,14 @@ } /*! + @stable + @hbwidgets + \class CHbDeviceMessageBoxSymbian \brief CHbDeviceMessageBoxSymbian is a Symbian implementation of HbDeviceMessageBox. + This class is Symbian only. Not available on other platforms. + CHbDeviceMessageBoxSymbian is intended for use by servers that don't run Qt event loop and cannot use HbDeviceMessageBox. @@ -579,7 +584,8 @@ EQuestionQuestion icon"Yes" and "No" buttonsNo timeoutButton pressQuestion sound - ShowL() displays a message box asynchronously. The function returns immediately. The launched + ShowL() displays a message box asynchronously. The function returns immediately. + A new message box is lauched every time ShowL() is called. The launched dialog can be updated by setters and then calling UpdateL(). Closing can be observed by a callback. Because each UpdateL() after the ShowL() requires interprocess communication, it's advisable to fully construct the device message box before displaying it. @@ -599,7 +605,14 @@ static functions contain a default set of properties depending on the message box type and their contents cannot be updated while the message box executes. - Supported icon animation formats are following: + If CHbDeviceMessageBoxSymbian has no observer set, the object can be deleted after + ShowL() has been called and device-dialog service takes care showing the message box. If + observer is set, message box is closed when CHbDeviceMessageBoxSymbian object goes out of + scope. + + An animation can replace an icon on device message box. Supported icon animation formats are + following: + - GIF (.gif) - MNG (.mng) - Frame animations @@ -680,9 +693,6 @@ \endcode \sa HbDeviceMessageBox, HbMessageBox, MHbDeviceMessageBoxObserver - - @stable - @hbwidgets */ /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdevicemessageboxsymbian.h --- a/src/hbwidgets/devicedialogs/hbdevicemessageboxsymbian.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdevicemessageboxsymbian.h Fri Sep 17 08:32:10 2010 +0300 @@ -33,7 +33,10 @@ class CHbDeviceMessageBoxPrivate; class MHbDeviceMessageBoxObserver; -class CHbDeviceMessageBoxSymbian : public CBase +class CHbDeviceMessageBoxSymbian +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: enum TType { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdevicenotificationdialog.cpp --- a/src/hbwidgets/devicedialogs/hbdevicenotificationdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdevicenotificationdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -34,21 +34,60 @@ /*! @stable @hbwidgets + \class HbDeviceNotificationDialog - \brief HbDeviceNotificationDialog is a non-modal dialog displayed on the top of - running applications. Functionality is based on HbNotificationDialog and it uses - HbDeviceDialog framework. + + \brief HbDeviceNotificationDialog is a non-modal dialog for displaying device-wide notifications. + + HbDeviceNotificationDialog is device dialog version of HbNotificationDialog and offers + similar API. + + The dialog is shown by device dialog service which HbNotificationDialog is a client of. + + The dialog is displayed on top of all applications. It appears at top left corner of a display. + It is intended for applications to show device-wide notifications to user in non-intrusive way. + It can also be used by server components which don't have HbMainWindow. + + HbDeviceNotificationDialog does not require user input and is usually closed by timeout. + For content, it supports two rows of text and an icon or animation. Two text rows may consist + either of a title spanning two lines or title and text. Setters are provided for setting + title, text and icon. + + An asynchronous show() method launches a dialog. Device dialog framework decides when the + dialog is actually shown. There may be a delay untill dialog appears on display. close() + closes a dialog. + + After dialog has been lauched, properties may be updated by setters and calling update(). + Calling update() is optional as setters schedule an automatic update event which + updates dialog parameters next time event loop is entered. - HbDeviceNotificationDialog is a concrete class. For the content it provides two rows of text, - an image or an animation. Interface of HbDeviceNotificationDialog is similar to HbNotificationDialog - with additional show(), update() and close() methods. Dialog is shown when show() is - called. - It is recommended that the dialog data is initialized before calling show() or update() - methods, because those methods use interprocess communication. + It is recommended that dialog properties are set before calling show() as updating them after + causes interprocess communication. + + The dialog closes when tapped. A tap triggers activated() signal if enabled by + enableTouchActivation(). + + If there is no need to update or receive activation from a launched dialog, + HbDeviceNotificationDialog object can be deleted after show() returns. Device + dialog framework takes care of displaying the dialog. + + Device notifications dialogs are synchronized with each other. If several of them + are to be shown at the same time, they are shown sequentially instead of on top of each other. - Main use of HbDeviceNotificationDialog is to show information to user without user input. + In place of an icon, notification dialog may contain an animation. Supported icon animation + formats are: + - GIF (.gif) + - MNG (.mng) + - Frame animations (.axml) - \section _usecases HbDeviceNotificationDialog use cases + \section _platform_spec Platform-specific implementation notes for HbDeviceNotificationDialog + + \subsection _nonsymbian Non-Symbian + Device dialog service is implemented only for the Symbian platform. On other platforms device + notification dialogs are displayed on client's main window. + + + \section _usecases HbDeviceNotificationDialog use cases Use cases in this section: - \ref _uc2 @@ -60,10 +99,8 @@ The following code snippet creates a device notification dialog containing title, text and icon. \code - QString iconName("C:/xxxx.png"); - HbDeviceNotificationDialog notificationDialog; - notificationDialog.setIconName(iconName); + notificationDialog.setIconName("qtg_large_info"); notificationDialog.setTitle("Title"); notificationDialog.setText("Text"); notificationDialog.show(); @@ -72,7 +109,7 @@ or equivalent dialog can be created using convenience method: \code - HbDeviceNotificationDialog::notification(iconName, "Text", "Title"); + HbDeviceNotificationDialog::notification("qtg_large_info", "Text", "Title"); \endcode When using convenience methods, it is not possible to receive user interaction events, @@ -83,8 +120,8 @@ \subsection _uc2_001 Receiving user interactions events Below is an example of receiving user interaction events from device notification dialog. With - following example user is able to receive activated and close events. Note that - dialog is cancelled, if it goes out of scope. + following example user is able to receive activated and close events. Note that in this case the + dialog is closed by device dialog framework if HbDeviceNotificationDialog object is deleted. \code mNotificationDialog = new HbDeviceNotificationDialog; @@ -98,16 +135,7 @@ \subsection _uc2_002 Using animations in a device notification dialog - HbDeviceNotificationDialog supports animations. - Supported formats are the following. - - - GIF (.gif) - - MNG (.mng) - - Frame animations (.axml) - - There is a built-in support for GIF and MNG animations. - - Frame animations can be used by first creating an animation definition file: + Create an animation definition file: \code @@ -119,7 +147,7 @@ \endcode - After this, create a HbDeviceNotificationDialog as described above and + Create a HbDeviceNotificationDialog as described above and set the definition file and the logical name of the animation: \code @@ -128,25 +156,38 @@ mNotificationDialog->setAnimationDefinition(animationDefinitionXML); mNotificationDialog->setIconName(logicalIconName); + mNotificationDialog->show(); \endcode - \sa HbIconAnimationManager::addDefinitionFile - \note Animation definition files must be stored in a place where they can - be accessed. + + \sa HbNotificationDialog, HbDeviceDialog */ /*! \fn void HbDeviceNotificationDialog::aboutToClose(); - This signal is emitted when the dialog is closed with a timeout + This signal is emitted when notification dialog has closed. + + \sa show() */ /*! \fn void HbDeviceNotificationDialog::activated(); - This signal is emitted when the dialog is closed with a pointer tap + This signal is emitted when the dialog is tapped and touch activation is + enabled. + + \sa enableTouchActivation() */ +static const char keyTimeout[] = "timeout"; +static const char keyIconName[] = "iconName"; +static const char keyText[] = "text"; +static const char keyTitle[] = "title"; +static const char keyTouchActivation[] = "touchActivation"; +static const char keyTitleTextWrapping[] = "titleTextWrapping"; +static const char keyAnimationDefinition[] = "animationDefinition"; + HbDeviceNotificationDialogPrivate::HbDeviceNotificationDialogPrivate() : QObject(), mDeviceDialog(0), mUpdateTimerId(0), mShowing(false) { @@ -190,7 +231,7 @@ connect(mDeviceDialog, SIGNAL(deviceDialogClosed()), this, SLOT(deviceDialogClosed())); - if (mData["touchActivation"].toBool()) { + if (q_func()->isTouchActivating()) { connect(mDeviceDialog, SIGNAL(dataReceived(QVariantMap)), this, SLOT(dataReceived(QVariantMap))); } if (!mDeviceDialog->show("com.nokia.hb.devicenotificationdialog/1.0", mData)) { @@ -266,9 +307,6 @@ d->q_ptr = this; QVariantMap data; - data["touchActivation"] = false; - data["titleTextWrapping"] = Hb::TextWordWrap; - data["timeout"] = 3000; d->init(data); TRACE_EXIT @@ -286,8 +324,9 @@ /*! Convenience method for showing notification dialog with text and title. - \param iconName - path and name of the icon shown on dialog. - \param title - title shown on dialog. By default: empty. + + \param iconName Path and name of the icon shown on dialog. + \param title Title shown on dialog. Default is empty. */ void HbDeviceNotificationDialog::notification(const QString &iconName, const QString& title) { @@ -303,9 +342,10 @@ /*! Convenience method for showing notification dialog with icon, text and title. - \param iconName - path and name of the icon shown on dialog. - \param text - text shown on dialog. - \param title - title shown on dialog. + + \param iconName Path and name of the icon shown on dialog. + \param text Text shown on dialog. + \param title Title shown on dialog. */ void HbDeviceNotificationDialog::notification(const QString &iconName, const QString &text, const QString &title) { @@ -321,140 +361,143 @@ } /*! - Sets message box icon name or animation logical name. The dialog gets updated next time ShowL() or UpdateL() - is called. + Sets icon name or animation logical name. \param iconName Icon name. Icon can be from Hb resources or themes. Or can be a file in a file system. - \sa IconName() + \sa iconName(), show(), update() */ void HbDeviceNotificationDialog::setIconName(const QString &iconName) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["iconName"] = iconName; + d->mData[keyIconName] = iconName; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Set and update text on dialog. Text is not set, if show() or update() - is not called. - \param text - text shown on dialog. - \sa show(), update() + Sets dialog text. Changes also title text wrapping. If text is empty, + sets title text wrapping to Hb::TextWordWrap, otherwise Hb::TextNoWrap. + + \param text Dialog text. + + \sa text(), show(), update() */ void HbDeviceNotificationDialog::setText(const QString &text) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["text"] = text; + d->mData[keyText] = text; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Set and update title on dialog. Title is not set, if show() or update() - is not called. - \param title - title shown on dialog. - \sa show(), update() + Sets title text. + + \param title Title text. + + \sa title(), show(), update() */ void HbDeviceNotificationDialog::setTitle(const QString &title) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["title"] = title; + d->mData[keyTitle] = title; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Enable user interaction on dialog. Setting is not set, if show() or update() - is not called. - \param enable - When enabled, activated() signal is emitted on user action. + Enables user interaction on dialog. - Default value is false. - \sa show(), update() + \param enable True enableds activated() signal on user action. + + \sa isTouchActivating(), show(), update() */ void HbDeviceNotificationDialog::enableTouchActivation(bool enable) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["touchActivation"] = enable; + d->mData[keyTouchActivation] = enable; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Set dialog timeout. Timeout is not set, if show() or update() - is not called. - \param timeout - Set timeout for dialog. + Sets dialog timeout. - Default value is HbPopup::StandardTimeout (3000 ms). - \sa show(), update() + \param timeout Timeout is milliseconds. + + \sa timeout(), show(), update() */ void HbDeviceNotificationDialog::setTimeout(int timeout) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["timeout"] = timeout; + d->mData[keyTimeout] = timeout; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Set dialog title text wrapping. - \param wrapping - Set wrapping for dialog title text. + Sets title text wrapping. The title can wrap only if there is no text for the dialog. + The title can wrap to a maximum of two lines. setText() also changes title text wrapping. - Default value is NoWrap. - \sa show(), update() + \param wrapping Title text wrapping. + + \sa titleTextWrapping(), setText(), show(), update() */ void HbDeviceNotificationDialog::setTitleTextWrapping(Hb::TextWrapping wrapping) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["titleTextWrapping"] = wrapping; + d->mData[keyTitleTextWrapping] = wrapping; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Set animation definition on dialog. Animation logical name has to be set - using setIcon(). Animation is not set, if show() or update() - is not called. - \param animationDefinition - path and name animation definition file shown in dialog. - \sa show(), update(), setIconName() + Set animation definition. Animation logical name has to be set + using setIcon(). Animation definition files must be stored to a place where they + can be accessed by device dialog service. + + Supported animation formats are following: + - GIF (.gif) + - MNG (.mng) + - Frame animations + + \param animationDefinition Path and name of the animation definition file. + + \sa setIconName(), animationDefinition(), HbIconAnimationManager::addDefinitionFile(), show(), update() */ void HbDeviceNotificationDialog::setAnimationDefinition(QString &animationDefinition) { TRACE_ENTRY Q_D(HbDeviceNotificationDialog); - d->mData["animationDefinition"] = animationDefinition; + d->mData[keyAnimationDefinition] = animationDefinition; d->scheduleUpdateEvent(); TRACE_EXIT } /*! - Returns name and path of the icon shown on dialog. If not set, returns empty string. + Returns icon or animation file name. - \sa setIconName + \sa setIconName() */ QString HbDeviceNotificationDialog::iconName() const { TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); - const char *key = "iconName"; - QVariantMap::const_iterator i = d->mData.find(key); - if (i != d->mData.end() && i.key() == "iconName") { - return i.value().toString(); - } TRACE_EXIT - return QString(); + return d->mData.value(keyIconName).toString(); } /*! - Get text shown on dialog. If not set, returns empty string. + Returns dialog text. \sa setText() */ @@ -463,17 +506,12 @@ TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); - const char *key = "text"; - QVariantMap::const_iterator i = d->mData.find(key); - if (i != d->mData.end() && i.key() == "text") { - return i.value().toString(); - } TRACE_EXIT - return QString(); + return d->mData.value(keyText).toString(); } /*! - Get title shown on dialog. If not set, returns empty string. + Returns title text. \sa setTitle() */ @@ -482,30 +520,27 @@ TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); - const char *key = "title"; - QVariantMap::const_iterator i = d->mData.find(key); - if (i != d->mData.end() && i.key() == "title") { - return i.value().toString(); - } TRACE_EXIT - return QString(); + return d->mData.value(keyTitle).toString(); } /*! - Get trigger action setting. + Returns whether touch activation is enabled. Default value is false. - \sa setTriggerAction() + \sa enableTouchActivation() */ bool HbDeviceNotificationDialog::isTouchActivating() const { TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); TRACE_EXIT - return d->mData["touchActivation"].toBool(); + return d->mData.value(keyTouchActivation).toBool(); } /*! - Get timeout setting. + Returns timeout. + + Default value is HbPopup::StandardTimeout (3000 ms). \sa setTimeout() */ @@ -514,12 +549,14 @@ TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); TRACE_EXIT - return d->mData["timeout"].toInt(); + const QVariant defaultValue(3000); // HbPopup::StandardTimeout + return d->mData.value(keyTimeout, defaultValue).toInt(); } /*! - Returns the style of text wrapping for the title. - + Returns title text wrapping. + + The title can wrap only if dialog text is empty. The title can wrap to a maximum of two lines. The default is Hb::TextWordWrap. \sa setTitleTextWrapping() @@ -529,11 +566,14 @@ TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); TRACE_EXIT - return (Hb::TextWrapping)d->mData["titleTextWrapping"].toInt(); + const QVariant defaultValue( + static_cast(text().isEmpty() ? Hb::TextWordWrap : Hb::TextNoWrap)); + return static_cast(d->mData.value(keyTitleTextWrapping, + defaultValue).toInt()); } /*! - Returns the animation definition file name. + Returns animation definition file name. \sa setAnimationDefinition() */ @@ -542,22 +582,18 @@ TRACE_ENTRY Q_D(const HbDeviceNotificationDialog); - const char *key = "animationDefinition"; - QVariantMap::const_iterator i = d->mData.find(key); - if (i != d->mData.end() && i.key() == "animationDefinition") { - return i.value().toString(); - } TRACE_EXIT - return QString(); + return d->mData.value(keyAnimationDefinition).toString(); } /*! - Show the dialog. - \code - // example to show dialog. - mNotificationDialog->setText("Dialog text"); - mNotificationDialog->show(); - \endcode + Shows a notification dialog and returns immediately without waiting for it to close. + Closing of the dialog is indicated by aboutToClose() signal. Tapping of dialog is + indicated by activated() signal. Dialog can be updated while showing by property + setters. + + \sa update(), aboutToClose(), activated() + */ void HbDeviceNotificationDialog::show() { @@ -567,12 +603,12 @@ } /*! - Update the dialog. - \code - // example to update already showing dialog. - mNotificationDialog->setText("Update title"); - mNotificationDialog->update(); - \endcode + Updates changed properties to a showing notification dialog via interprocess + communication. Has no effect if show() has not been called or the dialog has + closed already. Calling update() is optional as setting any property schedules + an event and the showing notification is updated next time Qt event loop executes. + + \sa show() */ void HbDeviceNotificationDialog::update() { @@ -581,8 +617,7 @@ TRACE_EXIT } /*! - Close the dialog. Method has no effect if convenience methods - are used to show device notification dialog. + Closes a device notification dialog. */ void HbDeviceNotificationDialog::close() { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdevicenotificationdialogsymbian.cpp --- a/src/hbwidgets/devicedialogs/hbdevicenotificationdialogsymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdevicenotificationdialogsymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -43,6 +43,12 @@ public MHbDeviceDialogObserver { public: + struct TIntProperty{ + TInt iValue; + TBool iChanged; + }; + +public: CHbDeviceNotificationDialogSymbianPrivate(); virtual ~CHbDeviceNotificationDialogSymbianPrivate(); @@ -67,14 +73,15 @@ CHbSymbianVariantMap* iVariantMap; CHbDeviceNotificationDialogSymbian* q; - TBool iEnable; - TInt iTimeout; - TInt iShowLevel; - CHbDeviceNotificationDialogSymbian::TextWrapping iWrap; + TIntProperty iEnable; + TIntProperty iTimeout; + TIntProperty iShowLevel; + TIntProperty iWrap; }; CHbDeviceNotificationDialogSymbianPrivate::CHbDeviceNotificationDialogSymbianPrivate() - { + { + iTimeout.iValue = 3000; // HbPopup::StandardTimeout } CHbDeviceNotificationDialogSymbianPrivate::~CHbDeviceNotificationDialogSymbianPrivate() @@ -98,11 +105,17 @@ void CHbDeviceNotificationDialogSymbianPrivate::ShowL() { - AddVariantL(KKeyTouchActivation, &iEnable, CHbSymbianVariant::EBool); - AddVariantL(KKeyTimeOut, &iTimeout, CHbSymbianVariant::EInt); - AddVariantL(KKeyTitleTextWrapping, &iWrap, CHbSymbianVariant::EInt); - if (iShowLevel) { // send only if non-default - AddVariantL(KKeyShowLevel, &iShowLevel, CHbSymbianVariant::EInt); + if (iEnable.iChanged) { + AddVariantL(KKeyTouchActivation, &iEnable.iValue, CHbSymbianVariant::EBool); + } + if (iTimeout.iChanged) { + AddVariantL(KKeyTimeOut, &iTimeout.iValue, CHbSymbianVariant::EInt); + } + if (iWrap.iChanged) { + AddVariantL(KKeyTitleTextWrapping, &iWrap.iValue, CHbSymbianVariant::EInt); + } + if (iShowLevel.iChanged) { + AddVariantL(KKeyShowLevel, &iShowLevel.iValue, CHbSymbianVariant::EInt); } TInt error = iDeviceDialog->Show(KPluginIdentifier, *iVariantMap, this); @@ -113,9 +126,15 @@ void CHbDeviceNotificationDialogSymbianPrivate::UpdateL() { - AddVariantL(KKeyTouchActivation, &iEnable, CHbSymbianVariant::EBool); - AddVariantL(KKeyTimeOut, &iTimeout, CHbSymbianVariant::EInt); - AddVariantL(KKeyTitleTextWrapping, &iWrap, CHbSymbianVariant::EInt); + if (iEnable.iChanged) { + AddVariantL(KKeyTouchActivation, &iEnable, CHbSymbianVariant::EBool); + } + if (iTimeout.iChanged) { + AddVariantL(KKeyTimeOut, &iTimeout, CHbSymbianVariant::EInt); + } + if (iWrap.iChanged) { + AddVariantL(KKeyTitleTextWrapping, &iWrap, CHbSymbianVariant::EInt); + } TInt error = iDeviceDialog->Update(*iVariantMap); if (error != KErrNone) { User::Leave(error); // error can be positive or negative @@ -171,68 +190,79 @@ // Set dialog show level void SetShowLevel(CHbDeviceNotificationDialogSymbianPrivate *aDialog, TInt aLevel) { - aDialog->iShowLevel = aLevel; + aDialog->iShowLevel.iValue = aLevel; + aDialog->iShowLevel.iChanged = ETrue; } /*! \class MHbDeviceNotificationDialogObserver \brief MHbDeviceNotificationDialogObserver is an observer interface for observing CHbDeviceNotificationDialogSymbian. */ - /*! \fn void MHbDeviceNotificationDialogObserver::NotificationDialogActivated(const CHbDeviceNotificationDialogSymbian* aDialog) = 0; This callback is called when notification dialog is activated. - \a aDialog - Pointer to dialog instance which received activation event. + \a aDialog is a pointer to a dialog instance which received activation event. + + \sa CHbDeviceNotificationDialogSymbian::EnableTouchActivation() */ - /*! \fn void MHbDeviceNotificationDialogObserver::NotificationDialogClosed(const CHbDeviceNotificationDialogSymbian* aDialog, TInt aCompletionCode) = 0; - This callback is called when notification dialog is closed. - \a aDialog - Pointer to dialog instance which received closed event. - \a aCompletionCode - Result of the dialog completion. + This callback is called when notification dialog has closed. + \a aDialog is a pointer to a dialog instance which received closed event. + \a aCompletionCode can be either Symbian error code or device dialog error code. */ /*! - \fn void MHbDeviceNotificationDialogObserver::NotificationDialogError(const CHbDeviceNotificationDialogSymbian* aDialog, TInt aError) = 0; + \stable + \hbwidgets - This callback is called when an error has occurred. - \a aDialog - Pointer to dialog instance which received closed event. - \a aError - Error code. -*/ - -/*! \class CHbDeviceNotificationDialogSymbian \brief CHbDeviceNotificationDialogSymbian is a Symbian implementation of HbDeviceNotificationDialog. - It is a client interface for s60 native application to show a non-modal dialog on top of applications when - HbDeviceNotificationDialog can not be used. + This class is Symbian only. Not available on other platforms. + + CHbDeviceNotificationDialogSymbian is intended for use by servers that don't run Qt event loop + and cannot use HbDeviceNotificationDialog. - CHbDeviceNotificationDialogSymbian provides similar interface and functionality as HbDeviceNotificationDialog. - Main difference is that signals are replaced by an observer interface CHbDeviceNotificationDialogSymbianObserver. + See HbDeviceNotificationDialog documentation to find out more about device notification + dialogs. + + CHbDeviceNotificationDialogSymbian provides similar interface and functionality as + HbDeviceNotificationDialog. Main difference is that signals are replaced by an observer + interface CHbDeviceNotificationDialogSymbianObserver. - For the content CHbDeviceNotificationDialogSymbian provides two rows of text, an image or an animation and for the usage - same rules as for the HbDeviceNotificationDialog apply. Dialog is shown when show() is called. It is recommended that - the dialog data is initialized before calling ShowL() or UpdateL() methods, because those methods use interprocess communication. + An asynchronous ShowL() method launches a dialog. Device dialog framework decides when the + dialog is actually shown. There may be a delay untill dialog appears on display. Close() + closes a dialog. + + After dialog has been lauched, properties may be updated by setters and calling UpdateL(). + It is recommended that dialog properties are set before calling ShowL() as updating them after + causes interprocess communication. - Two timeout constants are provided for setting the dialog timeout: KHbShortNotificationDialogTimeout and - KHbLongNotificationDialogTimeout. The first is equivalent to HbPopup::ConfirmationNoteTimeout and the latter - is equivalent to HbPopup::StandardTimeout. - + If there is no need to update or receive activation from a launched dialog, + CHbDeviceNotificationDialogSymbian object can be deleted after ShowL() returns. Device + dialog framework takes care of displaying the dialog. + + For maintaining consistent look and feel, two timeout constants are provided for setting + dialog timeout: KHbShortNotificationDialogTimeout and KHbLongNotificationDialogTimeout. + The first one is equivalent to HbPopup::ConfirmationNoteTimeout and the latter + to HbPopup::StandardTimeout. + \code Following code snippet creates a device notification dialog containing title, text and icon. _LIT(KDialogText, "Dialog text"); _LIT(KDialogTitle, "Dialog title"); - _LIT(KDialogIcon, "note_info.svg"); + _LIT(KDialogIcon, "qtg_large_info"); CHbDeviceNotificationDialogSymbian* dialog = CHbDeviceNotificationDialogSymbian::NewL(); CleanupStack::PushL(dialog); dialog->SetTextL(KDialogText); dialog->SetTitleL(KDialogTitle); dialog->SetIconNameL(KDialogIcon); - dialog->Show(); + dialog->ShowL(); CleanupStack::PopAndDestroy(dialog); \endcode @@ -241,22 +271,23 @@ \code _LIT(KDialogText, "Dialog text"); _LIT(KDialogTitle, "Dialog title"); - _LIT(KDialogIcon, "note_info.svg"); + _LIT(KDialogIcon, "qtg_large_info"); CHbDeviceNotificationDialogSymbian::Notification(KDialogIcon, KDialogText, KDialogTitle); \endcode - When using convenience methods, it is not possible to receive user interaction events, because the - HbDeviceNotificationDialog instance is destroyed when the call returns. Ownership and handling of the - dialog is transferred to HbDeviceDialog framework. Also dialog can not be closed nor updated. + When using convenience methods, it is not possible to receive user interaction events, + because the HbDeviceNotificationDialog instance is destroyed when the call returns. - Below is an example of receiving user interaction events from device notification dialog. With following example - user is able to receive activated and close events. Note that dialog is cancelled, if it goes out of scope. + Below is an example of receiving user interaction events from device notification dialog. + With following example user is able to receive activated and close events. + Note that in this case the dialog is closed by device dialog framework if + CHbDeviceNotificationDialogSymbian object is deleted. \code _LIT(KDialogText, "Dialog text"); _LIT(KDialogTitle, "Dialog title"); - _LIT(KDialogIcon, "note_info.svg"); + _LIT(KDialogIcon, "qtg_large_info"); class DialogObserver : public MHbDeviceNotificationDialogObserver { @@ -295,17 +326,8 @@ iDialog->ShowL(); } \endcode - - CHbDeviceNotificationDialogSymbian supports. - Supported formats are the following. - - GIF (.gif) - - MNG (.mng) - - Frame animations - - There is a built-in support for GIF and MNG animations. - - Frame animations can be created by following way: + Following example sets an icon animation into a notification dialog. \code Create an animation definition file. @@ -328,12 +350,27 @@ iDialog->SetIconNameL(KLogicalIconName); iDialog->ShowL(); \endcode - \sa HbIconAnimationManager::addDefinitionFile - \note Animation definition files must be stored to a place where they - can be accessed. - - \stable - \hbwidgets + + \sa HbDeviceNotificationDialog, MHbDeviceNotificationDialogObserver +*/ + +/*! + \enum CHbDeviceNotificationDialogSymbian::TextWrapping + Title text wrapping. + + \sa Hb::TextWrapping +*/ +/*! + \var CHbDeviceNotificationDialogSymbian::TextWrapping CHbDeviceNotificationDialogSymbian::TextNoWrap + No wrapping. +*/ +/*! + \var CHbDeviceNotificationDialogSymbian::TextWrapping CHbDeviceNotificationDialogSymbian::TextWordWrap + Word wrapping. +*/ +/*! + \var CHbDeviceNotificationDialogSymbian::TextWrapping CHbDeviceNotificationDialogSymbian::TextWrapAnywhere + Wrap anywhere. */ /*! @@ -360,8 +397,9 @@ /*! Convenience method for showing notification dialog with icon and title. - \param aIconName - path and name of the icon shown on dialog. - \param aTitle - title shown on dialog. + + \param aIconName Path and name of the icon to show on dialog. + \param aTitle Title text. */ EXPORT_C void CHbDeviceNotificationDialogSymbian::NotificationL(const TDesC& aIconName, const TDesC& aTitle) { @@ -375,9 +413,10 @@ /*! Convenience method for showing notification dialog with icon, text and title. - \param aIconName - path and name of the icon shown on dialog. - \param aText - text shown on dialog. - \param aTitle - title shown on dialog. + + \param aIconName Path and name of icon to show on dialog. + \param aText Dialog text. + \param aTitle Title text. */ EXPORT_C void CHbDeviceNotificationDialogSymbian::NotificationL(const TDesC &aIconName, const TDesC& aText, const TDesC& aTitle) { @@ -391,12 +430,12 @@ } /*! - Sets message box icon name or animation logical name. The dialog gets updated when method is called. + Sets dialog icon name or animation logical name. \param aIconName Icon name. Icon can be from Hb resources or themes. Or can be a file in a file system. - \sa IconName() + \sa IconName(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::SetIconNameL(const TDesC& aIconName) { @@ -405,8 +444,7 @@ /*! - Get name and path of the icon shown on dialog or animation's logical name. - If not set, returns empty iconName. + Returns icon or animation name. Default is empty. \sa SetIconNameL */ @@ -421,13 +459,18 @@ } /*! - Sets notification dialog's animation definition name. The dialogs get updated next when time ShowL() or UpdateL() - is called. + Sets dialog animation definition file name. - \param aAnimationDefinition Animation definition file name. Definition can be from Hb resources or themes. - Or can be a file in a file system. + Supported icon animation formats are following: + - GIF (.gif) + - MNG (.mng) + - Frame animations - \sa AnimationDefinition() + \param aAnimationDefinition Animation definition file name. Definition can be from Hb resources or themes. + Or can be a file in a file system. The definition must be stored to a place where it can be accessed by + device dialog service. + + \sa AnimationDefinition() SetIconNameL() HbIconAnimationManager::addDefinitionFile(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::SetAnimationDefinitionL(const TDesC& aAnimationDefinition) { @@ -435,7 +478,7 @@ } /*! - Returns an animation definition set for a dialog. If not set, return string. + Returns dialog animation definition file name. \sa SetAnimationDefinitionL() */ @@ -451,10 +494,11 @@ /*! - Set and update text on dialog. Text is not set, if Show() or Update() - is not called. - \param aText - text shown on dialog. - \sa ShowL(), UpdateL() + Sets dialog text. + + \param aText Dialog text. + + \sa Text(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::SetTextL(const TDesC& aText) { @@ -462,7 +506,7 @@ } /*! - Get text shown on dialog. If not set, returns empty string. + Returns dialog text. \sa SetTextL() */ @@ -477,10 +521,11 @@ } /*! - Set and update title on dialog. Title is not set, if Show() or Update() - is not called. - \param aTitle - title shown on dialog. - \sa ShowL(), UpdateL() + Sets title text. + + \param aTitle Title text. + + \sa Title(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::SetTitleL(const TDesC& aTitle) { @@ -488,7 +533,7 @@ } /*! - Get title shown on dialog. If not set, returns empty string. + Returns title text. \sa SetTitleL() */ @@ -504,82 +549,91 @@ } /*! - Enable user interaction on dialog. Setting is not set, if Show() or Update() - is not called. - \param aEnable - When enabled, activation event is notified via observer interface. + Enables user interaction on dialog. - Default value is false. - \sa ShowL(), UpdateL(), MCHbDeviceNotificationDialogSymbianObserver. + \param aEnable True enables activation event notification via observer interface. + + \sa IsTouchActivating(), ShowL(), UpdateL(), MCHbDeviceNotificationDialogSymbianObserver */ EXPORT_C void CHbDeviceNotificationDialogSymbian::EnableTouchActivation(TBool aEnable) { - d->iEnable = aEnable; + d->iEnable.iValue = aEnable; + d->iEnable.iChanged = ETrue; } /*! - Get touch activation setting. + Returns touch activation setting. Default value is false. \sa EnableTouchActivation() */ EXPORT_C TBool CHbDeviceNotificationDialogSymbian::IsTouchActivating() const { - return d->iEnable; + return d->iEnable.iValue; } /*! - Set dialog timeout. Timeout is not set, if Show() or Update() - is not called. - \param aTimeout - Set timeout for dialog. + Set dialog timeout. - Default value is KHbLongNotificationDialogTimeout (3000 ms). - \sa ShowL(), UpdateL() + \param aTimeout Dialog timeout in milliseconds. + + \sa Timeout(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::SetTimeout(TInt aTimeout) { - d->iTimeout = aTimeout; + d->iTimeout.iValue = aTimeout; + d->iTimeout.iChanged = ETrue; } /*! - Get timeout setting. + Returns timeout. Default value is KHbLongNotificationDialogTimeout (3000 ms). \sa SetTimeout() */ EXPORT_C TInt CHbDeviceNotificationDialogSymbian::Timeout() const { - return d->iTimeout; + return d->iTimeout.iValue; } /*! - Set dialog title text wrapping. Text wrapping is not set, if Show() or Update() - is not called. - \param aWrapping - Defines title text wrapping. + Sets title text wrapping. The title can wrap only if there is no text for the dialog. + The title can wrap to a maximum of two lines. SetTextL() also changes title text wrapping. + - Default value is CHbDeviceNotificationDialogSymbian::TextNoWrap. - \sa ShowL(), UpdateL() + \param aWrapping Title text wrapping. + + \sa TitleTextWrapping(), SetTextL(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::SetTitleTextWrapping( TextWrapping aWrapping) { - d->iWrap = aWrapping; + d->iWrap.iValue = aWrapping; + d->iWrap.iChanged = ETrue; } /*! - Get title text wrapping setting. + Returns title text wrapping. + + The title can wrap only if dialog text is empty. The title can wrap to a maximum of two lines. + The default is CHbDeviceNotificationDialogSymbian::TextWordWrap. \sa SetTitleTextWrapping() */ EXPORT_C CHbDeviceNotificationDialogSymbian::TextWrapping CHbDeviceNotificationDialogSymbian::TitleTextWrapping() const - { - return d->iWrap; + { + if (d->iWrap.iChanged) { + return static_cast(d->iWrap.iValue); + } else { + return Text().Length() == 0 ? TextWordWrap : TextNoWrap; + } } /*! - Show the dialog. - \code - // example to show dialog. - iNotificationDialog->SetTitleL("Dialog title text"); - iNotificationDialog->ShowL(); - \endcode + Shows a notification dialog and returns immediately without waiting for it to close. + Closing of the dialog and tapping of dialog is indicated by MHbDeviceNotificationDialogObserver + callback interface. Dialog can be updated while showing by property setters and then calling + UpdateL(). + + \sa UpdateL(), Close(), MHbDeviceNotificationDialogObserver */ EXPORT_C void CHbDeviceNotificationDialogSymbian::ShowL() { @@ -587,12 +641,11 @@ } /*! - Update the dialog. Show must be called before update can be used. - \code - // example to update already showing dialog. - iNotificationDialog->SetTitleL("Update title"); - iNotificationDialog->UpdateL(); - \endcode + Updates changed properties to a showing notification dialog via interprocess + communication. Has no effect if ShowL() has not been called or the dialog has + closed already. + + \sa ShowL() */ EXPORT_C void CHbDeviceNotificationDialogSymbian::UpdateL() @@ -601,8 +654,7 @@ } /*! - Close the dialog. Method has no effect if convenience methods - are used to show device notification dialog. + Closes a device notification dialog. */ EXPORT_C void CHbDeviceNotificationDialogSymbian::Close() { @@ -625,7 +677,4 @@ d = new (ELeave) CHbDeviceNotificationDialogSymbianPrivate; d->ConstructL(this); d->iObserver = aObserver; - EnableTouchActivation(EFalse); - SetTimeout(KHbLongNotificationDialogTimeout); - SetTitleTextWrapping(CHbDeviceNotificationDialogSymbian::TextWordWrap); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdevicenotificationdialogsymbian.h --- a/src/hbwidgets/devicedialogs/hbdevicenotificationdialogsymbian.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdevicenotificationdialogsymbian.h Fri Sep 17 08:32:10 2010 +0300 @@ -43,7 +43,10 @@ virtual void NotificationDialogClosed(const CHbDeviceNotificationDialogSymbian* aDialog, TInt aCompletionCode) = 0; }; -class CHbDeviceNotificationDialogSymbian : public CBase +class CHbDeviceNotificationDialogSymbian +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdeviceprogressdialog.cpp --- a/src/hbwidgets/devicedialogs/hbdeviceprogressdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdeviceprogressdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -277,45 +277,60 @@ } /*! + \stable + \hbwidgets + \class HbDeviceProgressDialog - \brief HbDeviceProgressDialog is a device dialog version of HbProgressDialog. + \brief HbDeviceProgressDialog displays a progress dialog on top all applications. + + HbDeviceProgressDialog is a device-dialog version of HbProgressDialog. It is a modal + dialog and displayed on top all applications by a device-dialog service. + HbDeviceProgressDialog is a client of the service. - It displays a dialog with a wait animation or progress bar, text, icon or animation and a + HbDeviceProgressDialog provides a similar kind of interface as HbProgressDialog. + Progress dialogs are always shown asynchronously as application needs to perform an operation + and update the dialog while the dialog is showing. + + For content it provides wait animation or progress bar, text, icon or icon-animation and a cancel button. - Device dialogs are shown on top of any running applications and are always modal by nature. - - Two different dialogs are supported: wait and progress. The wait dialog displays an animated - bar and progress dialog a progress bar indicating progress of the operation. + Two different dialogs are supported: wait and progress. Progress dialog displays a progress + bar indicating progress of the operation. Wait dialog displays a wait animation in place of + the progress bar. - Wait dialog is used when length of an operation cannot be determined beforehand. It displays - an animated bar to indicate an action. The dialog is closed by the user pressing the cancel - button, the application closing the dialog after the operation is finished. + Wait dialog is used when length of an operation cannot be determined beforehand. + The dialog is closed by user pressing dialog cancel button or by an application closing + the dialog after the operation has finished by HbDeviceProgressDialog::close(). - Progress dialog is used when the length of operation can be determined. For example - when deleting a number of files, the progress of the operation could be shown as a + Progress dialog is used when the length of operation can be determined. beforehand. + For example when deleting a number of files, the progress could be shown as a percentage of the files deleted. Application updates the progress bar during the operation. The dialog closes by user pressing the cancel button, the application closing the dialog after the operation is finished or automatically when progress value reaches a - maximum. + maximum, HbDeviceProgressDialog::autoClose(). - HbDeviceProgressDialog provides a similar kind of interface as HbProgressDialog, excluding - functions which handle concrete UI-component related information. Progress dialogs are - always asynchronous by as the client needs to perform the operation and update the dialog - while the dialog is showing. - - Device progress dialog is launched when show() is called. Launched dialog can be updated by setters. + Device progress dialog is launched when show() is called. Launched dialog can be updated by + setters. Changed properties are updated to the displayed dialog automatically next time event + loop is entered or updated values can be sent immediately by calling update(). Because updating a dialog requires interprocess communication, it's advisable to fully construct the progress dialog before calling show(). - Supported icon animation formats are following: + An animation can replace an icon on device progress dialog. Supported icon animation formats are + following: + - GIF (.gif) - MNG (.mng) - Frame animations - Sample code: + \section _platform_spec Platform-specific implementation notes for HbDeviceProgressDialog - An example showing the wait dialog: + \subsection _nonsymbian Non-Symbian + Device dialog service is implemented only for the Symbian platform. On other platforms device + progress dialogs are displayed on client's main window. + + \section _code_samples Sample code + + An example showing a wait dialog: \code mDialog = new HbDeviceProgressDialog(HbProgressDialog::WaitDialog); @@ -323,11 +338,11 @@ mDialog->show(); \endcode - An example showing the progress dialog: + An example showing a progress dialog: - \include deviceprogressdialog/main.cpp + \include tsrc/fute/ultimatecodesnippet/deviceprogressdialog.cpp - Creating a frame animation. + Showing an icon animation. Create an animation definition file: \code @@ -353,8 +368,6 @@ \endcode \sa HbProgressDialog, HbDialog, HbDeviceDialog - \stable - \hbwidgets */ /*! @@ -414,7 +427,7 @@ } /*! - Destructs the class. + Destructor. */ HbDeviceProgressDialog::~HbDeviceProgressDialog() { @@ -424,7 +437,13 @@ } /*! - Executes the dialog asynchronously. + Shows a dialog and returns immediately without waiting for it to close. Closing + is indicated by aboutToClose() signal. User cancellation is indicated by cancelled() + signal. Button press is also indicated by QAction::triggered() signal. + The dialog can be updated while showing by property setters. A new dialog is launched + each time show() is called. + + \sa update(), aboutToClose(), cancelled() */ void HbDeviceProgressDialog::show() { @@ -436,7 +455,7 @@ /*! Updates changed properties of a launched progress dialog to device dialog service using interprocess communication. Has no effect if show() has not been called or dialog has - closed already. Calling show() is optional as updating any property schedules an event + closed already. Calling update() is optional as updating any property schedules an event and the dialog is updated next time Qt event loop executes. \sa show() @@ -475,7 +494,7 @@ } /*! - Sets the maximum value of the progress bar within the dialog. + Sets progress bar maximum value. \sa maximum() */ @@ -492,7 +511,7 @@ } /*! - Returns the maximum value of the progress bar within the dialog. Default value is 100. + Returns progress bar maximum value. Default value is 100. \sa setMaximum() */ @@ -502,7 +521,7 @@ } /*! - Sets the minimum value of the progress bar within the dialog. + Sets progress bar minimum value. \sa minimum() */ @@ -519,7 +538,7 @@ } /*! - Returns the minimum value of the progress bar within the dialog. Default value is 0. + Returns progress bar minimum value. Default value is 0. \sa setMinimum() */ @@ -529,7 +548,7 @@ } /*! - Sets the minimum and maximum value of the progress bar within the dialog. + Sets progress bar minimum and maximum values. \sa minimum(), maximum() */ @@ -540,7 +559,7 @@ } /*! - Sets the value of the progress bar within the dialog. + Sets progress bar value. \sa progressValue() */ @@ -552,7 +571,7 @@ } /*! - Returns the value of the progress bar within the dialog. + Returns progress bar value. \sa setProgressValue() */ @@ -562,7 +581,7 @@ } /*! - Sets the autoClose property value of the dialog. + Sets dialog auto-closing. \param autoClose When set, the dialog is closed when value of the progress bar reaches the maximum value of the progress bar. @@ -577,7 +596,7 @@ } /*! - Returns the value of the autoClose property of the dialog. + Returns auto-closing property of a dialog. The default value is true for HbProgressDialog::ProgressDialog and false for HbProgressDialog::WaitDialog. @@ -590,7 +609,8 @@ } /*! - Sets dialog's progress type. After setProgressType(), a new dialog is launched by a show(). + Sets dialog's progress type. All dialog properties are initialized to default values. + After setProgressType(), a new dialog is launched by a show(). \sa progressType() */ @@ -616,7 +636,7 @@ } /*! - Sets text of the dialog. + Sets dialog text. \sa text() */ @@ -628,7 +648,8 @@ } /*! - Returns text of the dialog. + Returns dialog text. + \sa setText() */ QString HbDeviceProgressDialog::text() const @@ -695,8 +716,8 @@ /*! Sets a new action into progress dialog. When users presses a button on dialog, triggered() - signal of the action is emitted. HbDeviceProgressDialog constructor sets a default action - into a dialog. + signal of the action is emitted. HbDeviceProgressDialog sets a default action + into a dialog on construction. \param action Action or Null. Ownership is not transferred. \param role Selects an action to set. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdeviceprogressdialogsymbian.cpp --- a/src/hbwidgets/devicedialogs/hbdeviceprogressdialogsymbian.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdeviceprogressdialogsymbian.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -332,7 +332,9 @@ /*! \class MHbDeviceProgressDialogObserver - \brief MHbDeviceProgressDialogObserver is an observer interface for observing CHbDeviceProgressDialogSymbian. + \brief MHbDeviceProgressDialogObserver is an observer interface for CHbDeviceProgressDialogSymbian. + + \sa CHbDeviceProgressDialogSymbian */ /*! @@ -340,52 +342,53 @@ This callback is called when the device progress dialog is closed by user pressing the "cancel" button. - \a aDialog - Pointer to dialog that was cancelled. + \param aDialog Pointer to dialog that was cancelled. */ /*! \fn void MHbDeviceProgressDialogObserver::ProgressDialogClosed(const CHbDeviceProgressDialogSymbian* aDialog) = 0 This callback is called when a device progress dialog is has closed. The closing may - be a result of Close() being called, a dialog with autoClose property has reached + be a result of Close() being called, a auto-closing dialog has reached its maximum value or user pressing cancel button. It is not called if Close() is called before ShowL(). - \a aDialog - Pointer to dialog instance that has closed. + \param aDialog Pointer to dialog instance that has closed. */ /*! + \stable + \hbwidgets + \class CHbDeviceProgressDialogSymbian \brief CHbDeviceProgressDialogSymbian is a Symbian implementation of HbDeviceProgressDialog. - It is a client interface for s60 native application to notify user with a text message, icon - and progress bar, when HbDeviceProgressDialog can not be used. + This class is Symbian only. Not available on other platforms. - CHbDeviceProgressDialogSymbian provides similar interface and functionality as HbDeviceProgressDialog. - Main difference is that signals are replaced by observer interface. Also the parameters of methods using Qt enumerations are changed to TInt. + CHbDeviceProgressDialogSymbian is intended for use by servers that don't run Qt event loop + and cannot use HbDeviceProgressDialog. - Two progress dialog types are supported: wait and progress dialog. + Device progress dialog is a modal dialog. It is shown on top of applications by device dialog + server. CHbDeviceProgressDialogSymbian is a client of the server. - Wait dialog can be used when the progress of operation cannot be determined. - As the delay is unknown, the waiting progress bar will be shown until either a user - cancels the dialog by pressing the "cancel" button or the application showing the device - wait dialog closes the dialog after the operation has finished or in case of timeout. + To learn more about usage of device progress dialogs see HbDeviceProgressDialog + documentation. - Progress dialog can be used when the progress of operation is known. For example - when deleting a number of files, the progress of the operation could be shown as a - percentage of the files deleted. Application sets the progress value during the - operation and the dialog will be shown until either a user cancels the dialog by pressing - the "cancel" button or the application showing the device progress dialog closes the - dialog after the operation is finished or in case of error. + CHbDeviceProgressDialogSymbian provides similar interface and functionality as + HbDeviceProgressDialog. Main difference is that signals are replaced by observer + interface MHbDeviceProgressDialogObserver. Also parameters of methods using + Qt enumerations are changed to TInt. + + Showing of a progress dialog is always asynchronous as an application needs to update the dialog + according to current progress. - Progress dialogs are always asynchronous by nature as the client is responsible of updating the dialog - according to current progress status. + ShowL() displays a progress dialog asynchronously. The function returns immediately. + A new dialog is lauched every time ShowL() is called. The launched + dialog can be updated by setters and then calling UpdateL(). Closing and cancellation + can be observed by a callbacks. Because each UpdateL() after the ShowL() requires + interprocess communication, it's advisable to fully construct the dialog before displaying it. - The device dialog is only shown when ShowL() is called. Because each dialog update requires - IPC calls to be made, it's advisable to fully construct the device dialog before calling - ShowL() or UpdateL(). - - Here is an example of using the infinite wait note: + Below is an example of using a device wait dialog: \code _LIT(KConnectText, "Connecting..."); @@ -394,7 +397,7 @@ iDialog->ShowL(); \endcode - Below is an example of using the device progress dialog: + Below is an example of using a device progress dialog: \code CHbDeviceProgressDialogSymbian* iDialog = CHbDeviceProgressDialogSymbian::NewL(); @@ -408,16 +411,7 @@ iDialog->UpdateL(); \endcode - CHbDeviceProgressDialogSymbian supports animations. - Supported formats are the following: - - - GIF (.gif) - - MNG (.mng) - - Frame animations - - There is a built-in support for GIF and MNG animations. - - Frame animations can be created by following way: + An example of showing an icon animation: \code Create an animation definition file. @@ -440,17 +434,14 @@ iDialog->SetIconNameL(KIconName); iDialog->ShowL(); \endcode - \sa HbIconAnimationManager::addDefinitionFile - \note Animation definition files must be stored to a place where they - can be accessed. - \sa HbDeviceProgressDialog, HbDeviceDialog - \stable - \hbwidgets + \sa MHbDeviceProgressDialogObserver, HbDeviceProgressDialog, HbDeviceDialog */ /*! \enum CHbDeviceProgressDialogSymbian::TType Progress dialog types. + + \sa HbProgressDialog::ProgressDialogType */ /*! \var CHbDeviceProgressDialogSymbian::TType CHbDeviceProgressDialogSymbian::EProgressDialog @@ -463,10 +454,10 @@ /*! Symbian two phase constructor. Returns a pointer to CHbDeviceNotificationDialogSymbian instance. + \param aType Must be one of the defined CHbDeviceProgressDialogSymbian::TType enumerations. + Default value is CHbDeviceProgressDialogSymbian::EProgressDialog. \param aObserver Pointer to observer. - - Default value is CHbDeviceProgressDialogSymbian::EProgressDialog. */ EXPORT_C CHbDeviceProgressDialogSymbian* CHbDeviceProgressDialogSymbian::NewL( TType aType, @@ -481,7 +472,7 @@ } /*! - Destructs the class. + Destructor. */ EXPORT_C CHbDeviceProgressDialogSymbian::~CHbDeviceProgressDialogSymbian() { @@ -489,7 +480,13 @@ } /*! - Executes the dialog asynchronously. + Shows a device progress dialog asyncronously. Function launches the dialog and returns + immediately. Closing of the dialog can be observer with MHbDeviceProgressDialogObserver. + CHbDeviceProgressDialogSymbian object can be used to launch several dialogs. A new one + is launched every time ShowL() is called. Observer receives events for the latest dialog + launched. + + \sa SetObserver(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::ShowL() { @@ -497,7 +494,11 @@ } /*! - Updates the dialog asynchronously. + Updates a device progress dialog asyncronously. Dialog that was launched with a lates ShowL() + is updated. Properties that were modified since the last ShowL() or UpdateL() are sent to + device dialog server. + + \sa ShowL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::UpdateL() { @@ -505,7 +506,7 @@ } /*! - Closes the dialog. + Closes a device progress dialog. */ EXPORT_C void CHbDeviceProgressDialogSymbian::Close() { @@ -513,11 +514,12 @@ } /*! - Sets the minimum and maximum value of the progress bar within the dialog. - \param aMin minimum value of the progress bar. - \param aMax maximum value of the progress bar. + Sets progress bar minimum and maximum values. - \sa Minimum(), Maximum() + \param aMin Progress bar minimum value. + \param aMax Progress bar maximum value. + + \sa Minimum(), Maximum(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetRange(TInt aMin, TInt aMax) { @@ -526,9 +528,11 @@ } /*! - Sets the maximum value of the progress bar within the dialog. - \param aMax maximum value of the progress bar. - \sa Maximum() + Sets progress bar maximum value. + + \param aMax Progress bar maximum value. + + \sa Maximum(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetMaximum(TInt aMax) { @@ -538,9 +542,8 @@ } /*! - Returns the maximum value of the progress bar within the dialog. + Returns progress bar maximum value. Default value is 100. - The default value is 100. \sa SetMaximum() */ EXPORT_C TInt CHbDeviceProgressDialogSymbian::Maximum() const @@ -549,9 +552,11 @@ } /*! - Sets the minimum value of the progress bar within the dialog. - \param aMin minimum value of the progress bar. - \sa Minimum() + Sets progress bar minimum value. + + \param aMin Progress bar minimum value. + + \sa Minimum(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetMinimum(TInt aMin) { @@ -561,9 +566,8 @@ } /*! - Returns the minimum value of the progress bar within the dialog. + Returns progress bar minimum value. Default value is 0. - The default value is 0. \sa SetMinimumL() */ EXPORT_C TInt CHbDeviceProgressDialogSymbian::Minimum() const @@ -572,10 +576,12 @@ } /*! - Sets the autoClose property value of the dialog. + Sets dialog auto-closing. + \param aAutoClose When set, the dialog is closed when value of the progress bar reaches the maximum value of the progress bar. - \sa AutoClose() + + \sa AutoClose(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetAutoClose(TBool aAutoClose) { @@ -583,10 +589,9 @@ } /*! - Returns the value of the autoClose property of the dialog. + Returns dialog auto-closing property. Default value is true for progress dialog and false + for wait dialog. - The default value is true for CHbDeviceProgressDialogSymbian::ProgressDialod and false - for CHbDeviceProgressDialogSymbian::WaitDialog. \sa SetAutoCloseL() */ EXPORT_C TBool CHbDeviceProgressDialogSymbian::AutoClose() const @@ -595,9 +600,12 @@ } /*! - Sets dialog type. - \param aType defines the type of the dialog. - \sa ProgressType() + Sets dialog type. Dialog properties are set to default values. After setting type, + ShowL() must be called to launch a new dialog. + + \param aType Dialog type, wait or progress, + + \sa ProgressType(), ShowL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetProgressType( CHbDeviceProgressDialogSymbian::TType aType) @@ -618,6 +626,7 @@ /*! Returns dialog's type. + \sa SetProgressType() */ EXPORT_C CHbDeviceProgressDialogSymbian::TType CHbDeviceProgressDialogSymbian::ProgressType() const @@ -626,9 +635,11 @@ } /*! - Sets the value of the progress bar within the dialog. - \param aProgressValue value of the progress bar. - \sa ProgressValue() + Sets progress bar value. + + \param aProgressValue Progress bar value. + + \sa ProgressValue(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetProgressValue(TInt aProgressValue) { @@ -636,7 +647,8 @@ } /*! - Returns the value of the progress bar within the dialog. + Returns progress bar value. + \sa SetProgressValue() */ EXPORT_C TInt CHbDeviceProgressDialogSymbian::ProgressValue() const @@ -645,9 +657,11 @@ } /*! - Sets text of the dialog. - \param aText dialog text. - \sa Text() + Sets dialog text. + + \param aText Dialog text. + + \sa Text(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetTextL(const TDesC& aText) { @@ -660,7 +674,8 @@ } /*! - Returns text of the note. + Returns dialog text. + \sa SetTextL() */ EXPORT_C const TPtrC CHbDeviceProgressDialogSymbian::Text() const @@ -669,13 +684,12 @@ } /*! - Sets message box icon name or animation logical name. The message box gets updated next time ShowL() or UpdateL() - is called. + Sets dialog icon name or animation logical name. - \param aIconName Icon name. Icon can be from Hb resources or themes. Or it can be a file in + \param aIconName Icon or animation name. Icon can be from Hb resources or themes. Or it can be a file in a file system. - \sa IconName() + \sa IconName(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetIconNameL(const TDesC& aIconName) { @@ -688,7 +702,7 @@ } /*! - Returns name and path of the icon shown on dialog or animation's logical name. + Returns name and path of icon or animation. \sa SetIconNameL() */ @@ -698,13 +712,18 @@ } /*! - Sets notification dialog's animation definition name. The dialogs get updated next when time ShowL() or UpdateL() - is called. + Sets dialog animation definition name. + + Supported icon animation formats are following: + - GIF (.gif) + - MNG (.mng) + - Frame animations \param aAnimationDefinition Animation definition file name. Definition can be from Hb resources or themes. - Or can be a file in a file system. + Or can be a file in a file system. The definition must be stored to a place where it can be accessed by + device dialog service. - \sa AnimationDefinition() + \sa AnimationDefinition() SetIconNameL() HbIconAnimationManager::addDefinitionFile(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetAnimationDefinitionL(const TDesC& aAnimationDefinition) { @@ -717,7 +736,7 @@ } /*! - Returns an animation definition set for a dialog. If not set, return string. + Returns dialog icon animation definition name. \sa SetAnimationDefinitionL() */ @@ -727,12 +746,11 @@ } /*! - Sets progress dialog box button text. The dialog gets updated next time ShowL() or UpdateL() - is called. + Sets dialog button text. \param aText Button text. - \sa ButtonText() + \sa ButtonText(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetButtonTextL(const TDesC& aText) { @@ -746,7 +764,7 @@ } /*! - Returns progress dialog button text. + Returns dialog button text. \sa SetButtonTextL() */ @@ -756,12 +774,11 @@ } /*! - Sets progress dialog button presence. The dialog updated next time ShowL() or UpdateL() - is called. + Sets progress dialog button presence. \param aEnable True enables (makes visible) the dialog button. - \sa HasButton() + \sa HasButton(), ShowL(), UpdateL() */ EXPORT_C void CHbDeviceProgressDialogSymbian::SetButton(TBool aEnable) { @@ -771,9 +788,7 @@ } /*! - Returns progress dialog button presence. - - \param aButton Selects the button. + Returns dialog button presence. \sa SetButton() */ @@ -783,7 +798,8 @@ } /*! - Sets progress dialog observer. The observer is called when progress dialog is closed. + Sets dialog observer. The observer is called when the dialog is closed or cancelled. + \param aObserver Pointer to observer. \sa MHbDeviceProgressDialogObserver diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/devicedialogs/hbdeviceprogressdialogsymbian.h --- a/src/hbwidgets/devicedialogs/hbdeviceprogressdialogsymbian.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/devicedialogs/hbdeviceprogressdialogsymbian.h Fri Sep 17 08:32:10 2010 +0300 @@ -33,7 +33,10 @@ class CHbDeviceProgressDialogSymbianPrivate; class MHbDeviceProgressDialogObserver; -class CHbDeviceProgressDialogSymbian : public CBase +class CHbDeviceProgressDialogSymbian +#if !defined(HB_DOXYGEN) +: public CBase +#endif // !defined(HB_DOXYGEN) { public: diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/editors/hbabstractedit.cpp --- a/src/hbwidgets/editors/hbabstractedit.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/editors/hbabstractedit.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -885,8 +885,9 @@ Q_D(HbAbstractEdit); if (!(d->interactionFlags & Qt::TextEditable) || !d->cursor.hasSelection()) return; - copy(); + copy(); d->cursor.removeSelectedText(); + d->cursorChanged(HbValidator::CursorChangeFromContentUpdate); #endif//QT_NO_CLIPBOARD } @@ -926,8 +927,8 @@ if (md) { insertFromMimeData(md); } + d->cursorChanged(HbValidator::CursorChangeFromContentUpdate); } - #endif//QT_NO_CLIPBOARD } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/editors/hbabstractedit_p.cpp --- a/src/hbwidgets/editors/hbabstractedit_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/editors/hbabstractedit_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -235,6 +235,7 @@ canvas = new HbEditItem(q); canvas->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored); + q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); setContent(Qt::RichText, QString()); @@ -259,8 +260,7 @@ // These are the default values which are then overridden in subclasses // and when different options are enabled. - q->setFlag(QGraphicsItem::ItemIsFocusable); - q->setFlag(QGraphicsItem::ItemAcceptsInputMethod); + q->setFlag(QGraphicsItem::ItemIsFocusable); q->setFlag(QGraphicsItem::ItemSendsScenePositionChanges); q->setFlag(QGraphicsItem::ItemHasNoContents, false); q->setFocusPolicy(Qt::StrongFocus); @@ -581,11 +581,10 @@ void HbAbstractEditPrivate::ensurePositionVisible(int position) { - Q_Q(HbAbstractEdit); - if (scrollArea && scrollable) { QRectF rect = rectForPositionInCanvasCoords(position, QTextLine::Leading); - rect.adjust(0, -doc->documentMargin(), 0, doc->documentMargin()); + qreal docMargin = doc->documentMargin(); + rect.adjust(0, -docMargin, 0, docMargin); // TODO: it seems that scrollArea->ensureVisible() expects the point // in its content coordinates. Probably it should use viewport // coordinates i.e. its own item coordinate system @@ -595,7 +594,12 @@ const QTextLayout *layout = block.layout(); if(layout->preeditAreaText().length()) { // Adjust cursor rect so that predictive text will be also visible - rect.adjust(0,0,q->boundingRect().width()/2,0); + int preeditStart = layout->preeditAreaPosition(); + int preeditStop = preeditStart+layout->preeditAreaText().length(); + QTextLine line = layout->lineForTextPosition(preeditStart); + qreal preeditWidth = qAbs(line.cursorToX(preeditStop)-line.cursorToX(preeditStart)); + // rect.adjust(0,0,preeditWidth*0.5,0); + rect.setWidth(rect.width()+preeditWidth*0.5); } } scrollArea->ensureVisible(rect.center(), rect.width(), rect.height()/2); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/editors/hbdatetimeedit.cpp --- a/src/hbwidgets/editors/hbdatetimeedit.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/editors/hbdatetimeedit.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -35,15 +35,21 @@ /*! @alpha @hbwidgets - \brief The HbDateTimeEdit class provides a widget for editing dates and times. + \deprecated HbDateTimeEdit + is deprecated. Use HbDateTimePicker instead. - + \class HbDateTimeEdit + \brief The HbDateTimeEdit class provides a widget for editing dates and times. \sa QDateTime */ /*! + + \deprecated HbDateTimeEdit::HbDateTimeEdit(QGraphicsItem*) + is deprecated. Use HbDateTimePicker instead. + Constructs datetime edit widget. */ HbDateTimeEdit::HbDateTimeEdit (QGraphicsItem *parent) : @@ -56,6 +62,10 @@ } /*! + + \deprecated HbDateTimeEdit::HbDateTimeEdit(const QDate&, QGraphicsItem*) + is deprecated. Use HbDateTimePicker instead. + Constructs date time editor to display \a date using default locale. */ @@ -69,6 +79,10 @@ } /*! + + \deprecated HbDateTimeEdit::HbDateTimeEdit(const QTime&, QGraphicsItem*) + is deprecated. Use HbDateTimePicker instead. + Constructs date time editor to display \a time using default locale. */ HbDateTimeEdit::HbDateTimeEdit (const QTime &time, QGraphicsItem *parent) : @@ -81,6 +95,10 @@ } /*! + + \deprecated HbDateTimeEdit::HbDateTimeEdit(const QDateTime&, QGraphicsItem*) + is deprecated. Use HbDateTimePicker instead. + Constructs date time editor to display \a dateTime using default locale. */ HbDateTimeEdit::HbDateTimeEdit (const QDateTime &dateTime, QGraphicsItem *parent) : @@ -93,6 +111,10 @@ } /* + + \deprecated HbDateTimeEdit::HbDateTimeEdit(HbDateTimeEditPrivate&, QGraphicsItem*) + is deprecated. Use HbDateTimePicker instead. + for internal use only */ HbDateTimeEdit::HbDateTimeEdit (HbDateTimeEditPrivate &dd, QGraphicsItem *parent) : diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/editors/hblineedit.cpp --- a/src/hbwidgets/editors/hblineedit.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/editors/hblineedit.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -285,7 +285,7 @@ { Q_D(HbLineEdit); - if((!e->commitString().isEmpty() || e->replacementLength()) && + if((!e->commitString().isEmpty() || e->replacementLength() || !e->preeditString().isEmpty()) && d->echoMode == HbLineEdit::PasswordEchoOnEdit && d->clearOnEdit) { d->doc->clear(); d->passwordText.clear(); @@ -343,9 +343,10 @@ d->clearOnEdit = false; } + if(d->forwardKeyEvent(event)) { HbAbstractEdit::keyPressEvent(event); - } else if (d->echoMode == HbLineEdit::Password || d->echoMode == HbLineEdit::NoEcho){ + } else if (d->isPasswordMode()){ // Keep doc and passwordText in sync bool update = false; if (event->key() == Qt::Key_Backspace && !(event->modifiers() & ~Qt::ShiftModifier)) { @@ -357,14 +358,14 @@ } if (update) { - setPlainText(((d->echoMode == HbLineEdit::Password)?d->passwordString(d->passwordText):"")); + if(d->echoMode == HbLineEdit::PasswordEchoOnEdit) { + setPlainText(d->passwordText); + } else { + setPlainText(((d->echoMode == HbLineEdit::Password)?d->passwordString(d->passwordText):"")); + } } setCursorPosition(d->passwordText.length()); } - if (d->echoMode == HbLineEdit::PasswordEchoOnEdit) { - // Keep doc and passwordText in sync - d->passwordText = toPlainText(); - } } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/editors/hblineedit_p.cpp --- a/src/hbwidgets/editors/hblineedit_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/editors/hblineedit_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -158,8 +158,7 @@ } if (result) { - // Don not allow key events in HbLineEdit::Password or HbLineEdit::NoEcho mode - if (echoMode == HbLineEdit::Password || echoMode == HbLineEdit::NoEcho) { + if (isPasswordMode()) { result = false; } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbabstractitemcontainer_p.cpp --- a/src/hbwidgets/itemviews/hbabstractitemcontainer_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbabstractitemcontainer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -138,6 +138,8 @@ { if (item) { QRectF itemRect(itemBoundingRect(item)); + // 0.5 tolerance otherwise it fail - for instance if pos.y = -5.68434e-14 then item will be not fullyVisible + itemRect.adjust(0.5, 0.5, -0.5, -0.5); if (fullyVisible) { if (viewRect.contains(itemRect)) { return true; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbabstractitemview.cpp --- a/src/hbwidgets/itemviews/hbabstractitemview.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbabstractitemview.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -536,6 +536,12 @@ d->mContainer->resizeContainer(); if (d->mPostponedScrollIndex.isValid()) { d->scrollTo(d->mPostponedScrollIndex, d->mPostponedScrollHint); + if (scrollDirections() | Qt::Vertical) { + d->updateScrollBar(Qt::Vertical); + } + if (scrollDirections() | Qt::Horizontal) { + d->updateScrollBar(Qt::Horizontal); + } } result = true; } @@ -1133,15 +1139,16 @@ d->mContSelectionAction = QItemSelectionModel::NoUpdate; HbAbstractViewItem *item = qobject_cast(sender()); - QModelIndex index = item->modelIndex(); + if (item) { + QModelIndex index = item->modelIndex(); - if (d->mSelectionMode != HbAbstractItemView::NoSelection) { - QGraphicsSceneMouseEvent mousePressEvent(QEvent::GraphicsSceneMousePress); - mousePressEvent.setPos(pos); - d->mSelectionModel->select(index, selectionCommand(item, &mousePressEvent)); + if (d->mSelectionMode != HbAbstractItemView::NoSelection) { + QGraphicsSceneMouseEvent mousePressEvent(QEvent::GraphicsSceneMousePress); + mousePressEvent.setPos(pos); + d->mSelectionModel->select(index, selectionCommand(item, &mousePressEvent)); + } + emitPressed(item->modelIndex()); } - - emitPressed(item->modelIndex()); } /*! @@ -1305,15 +1312,27 @@ /*! Slot handles QAbstractItemModel::layoutChanged() signal. - Default implementation sets first model item visible as first view item. + Default implementation sets first model item visible as first view item if the + buffer items needed to be modified. QSortFilterProxyModel sends layoutChanged + signal whenever there is a dataChange in the model but in that case the container should + not be scrolled. */ void HbAbstractItemView::modelLayoutChanged() { Q_D(HbAbstractItemView); + HbAbstractViewItem *topItem = 0; + if (!d->mContainer->items().isEmpty()) { + topItem = d->mContainer->items().first(); + } d->mContainer->d_func()->updateItemBuffer(); - d->mContainer->setModelIndexes(d->mModelIterator->nextIndex(QModelIndex())); - if (d->mContainer->items().count() > 0) { - scrollTo(d->mContainer->items().at(0)->modelIndex(), PositionAtTop); + + if (!d->mContainer->items().isEmpty()) { + if (d->mContainer->items().first() != topItem) { + d->mContainer->setModelIndexes(d->mModelIterator->nextIndex(QModelIndex())); + scrollTo(d->mContainer->items().first()->modelIndex(), PositionAtTop); + } else { + d->mContainer->setModelIndexes(topItem->modelIndex()); + } } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbabstractitemview_p.cpp --- a/src/hbwidgets/itemviews/hbabstractitemview_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbabstractitemview_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -70,10 +70,7 @@ HbAbstractItemViewPrivate::~HbAbstractItemViewPrivate() { - if (mModelIterator) { - delete mModelIterator; - mModelIterator = 0; - } + delete mModelIterator; } /*! @@ -83,16 +80,11 @@ { Q_Q(HbAbstractItemView); - q->setLongPressEnabled(true); q->setFlag(QGraphicsItem::ItemIsFocusable, true); q->setFocusPolicy(Qt::StrongFocus); q->setContentWidget(container); - q->grabGesture(Qt::PanGesture); - - //mAlignment = 0; // no alignment - there is no sense with recycling - mContainer = container; mContainer->setItemView(q); @@ -102,8 +94,7 @@ q, SLOT(itemCreated(HbAbstractViewItem *))); HbMainWindow *window = q->mainWindow(); - if (window - && q->scene()) { // added to scene + if (window && q->scene()) { // added to scene q->connect(window, SIGNAL(aboutToChangeOrientation()), q, SLOT(orientationAboutToBeChanged())); @@ -749,6 +740,8 @@ bool visible = false; if (item) { QRectF itemRect(itemBoundingRect(item)); + // 0.5 tolerance otherwise it fail - for instance if pos.y = -5.68434e-14 then item will be not fullyVisible + itemRect.adjust(0.5, 0.5, -0.5, -0.5); QRectF abstractViewRect(itemBoundingRect(q)); if (fullyVisible) { if (abstractViewRect.contains(itemRect)) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbabstractitemview_p.h --- a/src/hbwidgets/itemviews/hbabstractitemview_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbabstractitemview_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -188,6 +188,7 @@ } friend class HbGridItemContainer; friend class HbAbstractItemContainerPrivate; + friend class HbIndexFeedbackPrivate; }; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbabstractviewitem.cpp --- a/src/hbwidgets/itemviews/hbabstractviewitem.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbabstractviewitem.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -57,7 +57,7 @@ const QString KDefaultLayoutOption = "default"; const int HbAbstractViewItemShared::ViewItemDeferredDeleteEvent = QEvent::registerEventType(); -const int HbViewItemPressDelay = 50; +const int HbViewItemPressDelay = 100; /*! @alpha @@ -466,7 +466,20 @@ paintChildItemsRecursively(subChild, painter,option); } option->exposedRect = child->boundingRect(); + + bool restorePainter = false; + if (child->flags() & QGraphicsItem::ItemClipsToShape) { + painter->save(); + restorePainter = true; + + painter->setClipRect(child->boundingRect()); + } child->paint(painter, option, 0); + + if (restorePainter) { + painter->restore(); + } + // Draw children in front for (; i < count; ++i) { QGraphicsItem *subChild = children.at(i); @@ -1265,16 +1278,10 @@ { Q_D(const HbAbstractViewItem); if (d->mRepolishRequested) { - if (d->repolishOutstanding) { - // force the polish event in order to get the real size - // updateGeometry() in ::updateChildItems() causes this function to be called - // before QEvent::Polish of repolish() is handled from the event loop - QCoreApplication::sendPostedEvents(const_cast(this), QEvent::Polish); - } else { - // needed for pure widget or at startup phase, if first polish has not yet been done - QEvent polishEvent(QEvent::Polish); - QCoreApplication::sendEvent(const_cast(this), &polishEvent); - } + // force the polish event in order to get the real size + // updateGeometry() in ::updateChildItems() causes this function to be called + // before QEvent::Polish of repolish() is handled from the event loop. + QCoreApplication::sendPostedEvents(const_cast(this), QEvent::Polish); QCoreApplication::sendPostedEvents(const_cast(this), QEvent::LayoutRequest); } return HbWidget::sizeHint(which, constraint); @@ -1340,6 +1347,11 @@ Q_UNUSED(widget); Q_D(HbAbstractViewItem); + + if (!d->mFrontPixmapPainter) { + return; + } + if (!d->mInPaintItems) { bool usePixmapCache = d->usePixmapCache(); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbdatepickerview_p.cpp --- a/src/hbwidgets/itemviews/hbdatepickerview_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbdatepickerview_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -28,10 +28,13 @@ #include "hbabstractitemcontainer_p_p.h" #include "hblistlayout_p.h" #include "hbstyleoption_p.h" +#include "hbframeitem.h" +#include "hbstyleprimitivedata.h" #include #include #include +#include #include #include @@ -61,16 +64,17 @@ HbAbstractViewItem* getCenterItem(); void slectItemAt(const QPointF& point,QGraphicsItem* itemToMap); - + void setItemState(HbAbstractViewItem* item = 0); QTimeLine *animationtimer; QGraphicsItemAnimation *animation; Q_DECLARE_PUBLIC(HbDatePickerView); - QGraphicsItem *mBackground; - QGraphicsItem *mFrame;//overlay - QGraphicsItem *mHighlight; - QGraphicsItem *mDivider; + QGraphicsObject *mBackground; + QGraphicsObject *mFrame;//overlay + QGraphicsObject *mHighlight; + QGraphicsObject *mDivider; // bool tapActive; + QPointer mPreviousItem; enum ViewState { @@ -78,7 +82,7 @@ TapStarted = 1, ScrollStarted = 2 }; - Q_DECLARE_FLAGS(ViewStates, ViewState); + Q_DECLARE_FLAGS(ViewStates, ViewState) ViewStates viewStates; }; @@ -106,7 +110,7 @@ void viewResized(const QSizeF &size); private: - Q_DECLARE_PRIVATE(HbDatePickerContainer); + Q_DECLARE_PRIVATE(HbDatePickerContainer) friend class HbDatePickerView; friend class HbDatePickerViewPrivate; }; @@ -122,7 +126,7 @@ HbAbstractViewItem *item(const QModelIndex &index) const; HbListLayout *mLayout; - Q_DECLARE_PUBLIC(HbDatePickerContainer); + Q_DECLARE_PUBLIC(HbDatePickerContainer) }; HbDatePickerContainerPrivate::HbDatePickerContainerPrivate() @@ -568,6 +572,9 @@ d->mContainer->setModelIndexes(d->mModelIterator->index(newIndex)); } } + + + //HbAbstractItemView::scrollTo(index, hint); if ( index.isValid() && d->mModelIterator->model() == index.model()) { @@ -596,8 +603,11 @@ QPointF mappedPoint = itemTomap->mapToScene(point); HbDatePickerContainer* container = static_cast(mContainer); HbDatePickerContainerPrivate* containerPriv = container->d_func(); - - HbAbstractViewItem* item = qobject_cast(itemAt(mappedPoint)); //(q->sender()); + + + + HbAbstractViewItem* item = qobject_cast(itemAt(mappedPoint)); //(q->sender()); + if(item){ QPointF centerPt = q->mapToScene(q->boundingRect().center()); qreal itemHeight = containerPriv->getSmallestItemHeight(); @@ -610,17 +620,38 @@ QPointF newPos = contPos-QPointF(0,qCeil(delta.y())); //need to remove already posted request to avoid multiple scrolling QCoreApplication::removePostedEvents(q,QEvent::LayoutRequest); - q->scrollContentsTo(-newPos,200); + q->scrollContentsTo(-newPos,200); } else { q->setCurrentIndex(item->modelIndex()); emit q->itemSelected(item->modelIndex().row()); + setItemState(item); } + } } +void HbDatePickerViewPrivate::setItemState(HbAbstractViewItem* item) +{ + if(!item){ + Q_Q(HbDatePickerView); + QPointF mappedPoint = q->mapToScene(q->boundingRect().center()); + item = qobject_cast(itemAt(mappedPoint)); + } + if(item){ + //change the items states for the current selection + if(mPreviousItem && mPreviousItem->property("state").toString().compare("normal")){ + mPreviousItem->setProperty("state", "normal"); + } + if(item && item->property("state").toString().compare("selected")){ + item->setProperty("state", "selected"); + } + mPreviousItem = item; + } +} + void HbDatePickerViewPrivate::_q_scrollingEnded() { if(mOptions & PanningActive){ @@ -632,6 +663,7 @@ } Q_Q(HbDatePickerView); mContainer->layout()->activate();//call this to get proper item; + slectItemAt(q->boundingRect().center(),q); } @@ -703,6 +735,9 @@ //here in those cases. if(!d->viewStates.testFlag(HbDatePickerViewPrivate::ScrollStarted)){ emit itemSelected(row); + if(scene()){ + d->setItemState(); + } } } } @@ -725,37 +760,50 @@ Q_Q(HbDatePickerView); //this is the highlight which is placed at center + if(!mHighlight) { - mHighlight = HbStylePrivate::createPrimitive(HbStylePrivate::P_TumbleView_highlight,q); - HbStyle::setItemName(mHighlight,"highlight"); - } - if(!mDivider){ - mDivider = HbStylePrivate::createPrimitive(HbStylePrivate::P_DateTimePicker_separator,q); - HbStyle::setItemName(mDivider,"separator"); - mDivider->hide(); + mHighlight = q->style()->createPrimitive(HbStyle::PT_FrameItem,"highlight",q); } + if(!mDivider) { + mDivider = q->style()->createPrimitive(HbStyle::PT_FrameItem,"separator",q); + } } void HbDatePickerView::updatePrimitives() { Q_D(HbDatePickerView); + HbAbstractItemView::updatePrimitives(); - HbStyleOption opt; - initStyleOption(&opt); + if(d->mHighlight) { + HbStyleFramePrimitiveData data; + initPrimitiveData(&data,d->mHighlight); + style()->updatePrimitive(d->mHighlight,&data,this); + } - if(d->mBackground) { - HbStylePrivate::updatePrimitive(d->mBackground,HbStylePrivate::P_TumbleView_background,&opt); + if(d->mDivider) { + HbStyleFramePrimitiveData data; + initPrimitiveData(&data,d->mDivider); + style()->updatePrimitive(d->mDivider,&data,this); } - if(d->mFrame) { - HbStylePrivate::updatePrimitive(d->mFrame,HbStylePrivate::P_TumbleView_frame,&opt); - } - if(d->mHighlight) { - HbStylePrivate::updatePrimitive(d->mHighlight,HbStylePrivate::P_TumbleView_highlight,&opt); +} +void HbDatePickerView::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidget::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + + if(itemName == QLatin1String("highlight")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_highlight_pri"); + frameItem->frameType = HbFrameDrawer::ThreePiecesHorizontal; + (const_cast (primitive))->setZValue(-1); } - if(d->mDivider){ - HbStylePrivate::updatePrimitive(d->mDivider, HbStylePrivate::P_DateTimePicker_separator, &opt); + + if(itemName == QLatin1String("separator")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_graf_tumbler_divider"); + frameItem->frameType = HbFrameDrawer::OnePiece; + (const_cast (primitive))->setZValue(2); } - HbAbstractItemView::updatePrimitives(); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbdatepickerview_p.h --- a/src/hbwidgets/itemviews/hbdatepickerview_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbdatepickerview_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -45,8 +45,8 @@ protected: void updatePrimitives(); + void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive); QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const; - void rowsAboutToBeInserted(const QModelIndex &index, int start, int end); void rowsInserted(const QModelIndex &parent, int start, int end); void rowsRemoved(const QModelIndex &parent, int start, int end); @@ -57,7 +57,7 @@ signals: void itemSelected(int); private: - Q_DECLARE_PRIVATE(HbDatePickerView); + Q_DECLARE_PRIVATE(HbDatePickerView) Q_PRIVATE_SLOT(d_func(), void _q_scrollingStarted()) Q_PRIVATE_SLOT(d_func(), void _q_scrollingEnded()) Q_PRIVATE_SLOT(d_func(), void _q_itemSelected(QPointF)) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbdatepickerviewitem_p.cpp --- a/src/hbwidgets/itemviews/hbdatepickerviewitem_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbdatepickerviewitem_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -30,16 +30,327 @@ #include #include #include + +#include +#include +#include +#include +#include +#include +#include +#include +#if 0 +#define DEBUG qDebug() +#else +#define DEBUG if(0)qDebug() +#endif + +#undef ZOOMTEXT +class HbRotatingText : public HbTextItem +{ +public: + HbRotatingText(QGraphicsItem* parent =0 ):HbTextItem(parent) + { + mTextCol = HbColorScheme::color("qtc_tumbler_normal"); + mSelTextCol = HbColorScheme::color("qtc_tumbler_selected"); + + setFlag(ItemSendsGeometryChanges); + setFlag(ItemSendsScenePositionChanges); + if(parent){ + parent->setFlag(ItemSendsGeometryChanges); + parent->setFlag(ItemSendsScenePositionChanges); + } + } + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) + { + Q_UNUSED(option); + Q_UNUSED(widget); + QTransform oldTrans = painter->transform(); + QBrush oldBrush = painter->brush(); + bool atialiased = false; + if(!painter->testRenderHint(QPainter::Antialiasing)){ + painter->setRenderHint(QPainter::Antialiasing); + atialiased = true; + } + if(refereceItem){ + QRectF viewBounds = refereceItem->mapToScene(refereceItem->boundingRect()).boundingRect(); + QRectF itemBounds = mapToScene(this->boundingRect()).boundingRect(); + if(viewBounds.intersect(itemBounds).isValid()){ + + QRectF refbounds = mapFromItem(refereceItem,refereceItem->boundingRect()).boundingRect(); + + + qreal dy = boundingRect().center().y()- refbounds.center().y(); + qreal radius = (refbounds.height()+boundingRect().height())/2; + QLinearGradient gr(QPointF(refbounds.center().x(),refbounds.center().y()-radius), + QPointF(refbounds.width()/2,refbounds.center().y() + radius)); + gr.setColorAt(0, mTextCol); + gr.setColorAt(0.5, mSelTextCol); + gr.setColorAt(1, mTextCol) ; + QPen pen; + pen.setBrush(QBrush(gr)); + painter->setPen(pen); + painter->setBrush(QBrush(gr)); + + #if QT_VERSION >= 0x040700 + if(rotate){ + + qreal ratio = dy/radius; + qreal absRatio = qAbs(ratio); + if(absRatio <= 1.0){ + qreal angle = qAsin(ratio); + DEBUG<<"Angle"<transform(); + painter->setTransform(current.rotateRadians(angle,Qt::XAxis)); + + } + + } + dy = qAbs(dy); + #else + dy = (dy<0)?-dy:dy; + #endif + + + + QFont thefont = font(); + +// qreal len = (radius-dy); + +// if(len >0 ){ +// qreal pixeSize = thefont.pixelSize(); +// qreal ratio = (0.5+len/radius); + +// pixeSize = ((ratio>1)?1:ratio) *pixeSize; +// thefont.setPixelSize((int)pixeSize); +// painter->setFont(thefont); + +// } + + QFontMetrics fm(thefont); + QPointF center = boundingRect().center(); + QSizeF textSize = fm.size(Qt::TextSingleLine,text); + qreal middlex = center.x()-(textSize.width()/2); + qreal middley = center.y()-textSize.height()/2; + + textlayout.setFont(thefont); + + textlayout.setText(text); + textlayout.beginLayout(); + textlayout.createLine(); + textlayout.endLayout(); + textlayout.draw(painter,QPointF(middlex,middley)); + + + +// for (int i=0; idrawPath(path); +// } + + } + + + + } + //HbTextItem::paint(painter,option,widget); + + + + + + if(atialiased){ + painter->setRenderHint(QPainter::Antialiasing,false); + } + + painter->setTransform(oldTrans); + painter->setBrush(oldBrush); + } + void setReferenceItem(QGraphicsItem* item) + { + refereceItem = item; + } + void changeEvent(QEvent *event) + { + + if (event->type() == HbEvent::ThemeChanged) { + mTextCol = HbColorScheme::color("qtc_tumbler_normal"); + mSelTextCol = HbColorScheme::color("qtc_tumbler_selected"); + + } + + // Call base class version of changeEvent() + return HbTextItem::changeEvent(event); + } + QVariant itemChange(GraphicsItemChange change, const QVariant &value) + { + if(change == ItemScenePositionHasChanged){ + + } + return HbTextItem::itemChange(change,value); + + } +// void gestureEvent(QGestureEvent *event) +// { +// HbTapGesture *gesture = static_cast(event->gesture(Qt::TapGesture)); +// if(gesture){ +// switch(gesture->state()){ +// case Qt::GestureUpdated: + +// HbRotatingText::rotate = !HbRotatingText::rotate; +// } + +// } +// event->ignore(); +// } + + void setText(const QString& text); + QPainterPath lensDeform(const QPainterPath &source, const QPointF &offset); + bool event(QEvent *e); + QGraphicsItem* refereceItem; + QColor mTextCol,mSelTextCol; + QString text; + QVector paths; + QRectF m_pathBounds; + QTextLayout textlayout; + static bool rotate; + + +}; +bool HbRotatingText::rotate = true; + +QPainterPath HbRotatingText::lensDeform(const QPainterPath &source, const QPointF &offset) +{ + + QPainterPath path; + path.addPath(source); + if(1){ + qreal flip = 70 / qreal(100); + QPointF centerPos; + qreal radius; + if(refereceItem){ + QRectF refbounds = mapFromItem(refereceItem,refereceItem->boundingRect()).boundingRect(); + centerPos=refbounds.center(); + radius = refereceItem->boundingRect().height()/2; + + + } + else{ + centerPos=source.boundingRect().center(); + radius = source.boundingRect().height(); + } + + for (int i=0; i 0 ) { + path.setElementPositionAt(i, + x + flip * dx *len / (radius*2), + y + flip * dy * len / (radius+2*len)); + } else { + path.setElementPositionAt(i, x, y); + } + + } + + + + } + + return path; +} + +bool HbRotatingText::event(QEvent *e) +{ + + switch(e->type()){ + case QEvent::FontChange: + setText(text); + break; + default: + break; + + } + return HbWidgetBase::event(e); +} + +void HbRotatingText::setText(const QString& text) +{ + HbTextItem::setText(text); + this->text = text; +// QFontMetrics fm(font()); + +// paths.clear(); +// m_pathBounds = QRect(); + +// QPointF advance(0, 0); + +// bool do_quick = true; +// for (int i=0; i= 0x4ff && text.at(i).unicode() <= 0x1e00) { +// do_quick = false; +// break; +// } +// } + +// if (do_quick) { +// for (int i=0; imItemType = QString("datepickerviewitem"); setFocusPolicy(Qt::NoFocus); + setFlag(ItemSendsGeometryChanges); + setFlag(ItemSendsScenePositionChanges); } HbDatePickerViewItem::HbDatePickerViewItem(const HbDatePickerViewItem& other) @@ -116,7 +429,9 @@ { Q_D(HbDatePickerViewItem); d->q_ptr = this; + d->init(); + } HbAbstractViewItem *HbDatePickerViewItem::createItem() @@ -132,7 +447,18 @@ Q_D(HbDatePickerViewItem); if (d->mIndex.data(Qt::DisplayRole).isNull()) return; + +#ifdef ZOOMTEXT + if(!d->zoomText){ + d->zoomText = new HbRotatingText(this); + style()->setItemName(d->zoomText,"text-1"); + d->zoomText->setReferenceItem(itemView()); + //d->zoomText->setReferenceItem((itemView()->primitive("highlight"))); + } + d->zoomText->setText(d->mIndex.data(Qt::DisplayRole).toString()); +#else HbListViewItem::updateChildItems(); +#endif if(d->mSelectionItem){ d->mSelectionItem->hide(); } @@ -205,3 +531,37 @@ { return Type; } +void HbDatePickerViewItem::polish(HbStyleParameters ¶ms) +{ + + + HbListViewItem::polish(params); + +} + +bool HbDatePickerViewItem::event(QEvent *e) +{ +#ifdef ZOOMTEXT + Q_D(HbDatePickerViewItem); + switch(e->type()){ + + case QEvent::DynamicPropertyChange:{ + QDynamicPropertyChangeEvent *dynProp = static_cast(e); + if (!qstrcmp(dynProp->propertyName(), "state")) { + d->zoomText->setProperty(dynProp->propertyName(),property(dynProp->propertyName())); + } + break; + } + default: + break; + + } +#endif + return HbListViewItem::event(e); +} + +QVariant HbDatePickerViewItem::itemChange(GraphicsItemChange change, const QVariant &value) +{ + + return HbListViewItem::itemChange(change,value); +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbdatepickerviewitem_p.h --- a/src/hbwidgets/itemviews/hbdatepickerviewitem_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbdatepickerviewitem_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -40,11 +40,15 @@ virtual int type() const; protected: + void polish(HbStyleParameters ¶ms); + QVariant itemChange(GraphicsItemChange change, const QVariant &value); void gestureEvent(QGestureEvent *event); + bool event(QEvent *e); QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint); void emitReleased(const QPointF& point); - Q_DECLARE_PRIVATE_D(d_ptr,HbDatePickerViewItem) + Q_DECLARE_PRIVATE_D(d_ptr,HbDatePickerViewItem); }; + #endif // HBDATEPICKERVIEWITEM_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbgriditemcontainer_p.cpp --- a/src/hbwidgets/itemviews/hbgriditemcontainer_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbgriditemcontainer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,6 +31,8 @@ #include #include +#include + /*! \class HbGridItemContainer \brief HbGridItemContainer implements HbAbstractItemContainer. @@ -513,7 +515,8 @@ } d->mLayout->removeItem(item, true); - item->deleteLater(); + item->hide(); + QMetaObject::invokeMethod(item, "deleteLater", Qt::QueuedConnection); } void HbGridItemContainer::layoutAnimationFinished(QGraphicsLayoutItem *item, HbGridLayout::AnimationType animationType) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbgriditemcontainer_p.h --- a/src/hbwidgets/itemviews/hbgriditemcontainer_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbgriditemcontainer_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -64,7 +64,7 @@ virtual void resizeContainer(); protected: - HbGridItemContainer( HbGridItemContainerPrivate &dd, QGraphicsItem *parent = 0 ); + HbGridItemContainer(HbGridItemContainerPrivate &dd, QGraphicsItem *parent = 0); virtual QPointF recycleItems(const QPointF &delta); virtual void viewResized(const QSizeF &size); virtual void setItemModelIndex(HbAbstractViewItem *item, const QModelIndex &index); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbgridview.cpp --- a/src/hbwidgets/itemviews/hbgridview.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbgridview.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -120,11 +120,13 @@ { Q_D(HbGridView); - d->mVisibleIndex = d->firstFullyVisibleIndex(); + if (d->itemContainer()->rowCount() != rowCount) { + d->mVisibleIndex = d->firstFullyVisibleIndex(); - d->itemContainer()->setRowCount(rowCount); + d->itemContainer()->setRowCount(rowCount); - scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop); + scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop); + } } /*! @@ -147,11 +149,13 @@ { Q_D(HbGridView); - d->mVisibleIndex = d->firstFullyVisibleIndex(); + if (d->itemContainer()->columnCount() != columnCount) { + d->mVisibleIndex = d->firstFullyVisibleIndex(); - d->itemContainer()->setColumnCount(columnCount); + d->itemContainer()->setColumnCount(columnCount); - scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop); + scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop); + } } @@ -252,12 +256,13 @@ void HbGridView::scrollTo(const QModelIndex &index, ScrollHint hint) { Q_D(HbGridView); - // always use container, event if recycling is off and all items are - // in container, but still additional action is needed - + + // always use HbGridItemContainer::scrollTo, even if recycling + // is off - still additional action is needed - // container::scrollTo is responsible for procesing all // posponed events (DelayedLayoutRequest) - if ( d->mModelIterator->model() - && index.model() == d->mModelIterator->model()) { + if ( d->mModelIterator->model() + && index.model() == d->mModelIterator->model()) { d->itemContainer()->scrollTo(index, hint); HbAbstractItemView::scrollTo(index, hint); } @@ -304,8 +309,7 @@ } } - // abstract part is enough - container update buffer - HbAbstractItemView::scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop); + scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop); d->mVisibleIndex = QModelIndex(); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbindexfeedback_p.cpp --- a/src/hbwidgets/itemviews/hbindexfeedback_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbindexfeedback_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -37,6 +37,7 @@ #include #include +#include #include #include @@ -118,7 +119,6 @@ //mItemView = 0; // double check that this is safe. - HbEffect::add(HB_INDEXFEEDBACK_TYPE, "indexfeedback_appear", EFFECT_IFAPPEAR); if (!HbEffect::add(HB_INDEXFEEDBACK_TYPE, "indexfeedback_disappear", EFFECT_IFDISAPPEAR)) { mDisappearTimer = new QTimer(q); mDisappearTimer->setSingleShot(true); @@ -149,13 +149,17 @@ return; } - QList visibleItems = mItemView->visibleItems(); + HbAbstractItemViewPrivate *viewPrivate = HbAbstractItemViewPrivate::d_ptr(mItemView); + QList items = viewPrivate->mContainer->items(); + QModelIndex targetIndex; - QModelIndex targetIndex = visibleItems.first()->modelIndex(); - qreal top = visibleItems.first()->mapToItem(mItemView, 0, 0).y(); - if (top < 0 - && visibleItems.count() > 1) { - targetIndex = visibleItems.at(1)->modelIndex(); + const int count(items.count()); + for (int i = 0; i < count; ++i) { + HbAbstractViewItem *item = items.at(i); + if(viewPrivate->visible(item, true)) { + targetIndex = item->modelIndex(); + break; + } } if (targetIndex.isValid()) { @@ -168,14 +172,13 @@ updatePrimitives(); } - if (mTextItem && mTextItem->opacity() == 0.0) { - HbEffect::start(mPopupItemList, HB_INDEXFEEDBACK_TYPE, EFFECT_IFAPPEAR); - } - if (mTextItem) { + if (mTextItem) { + mTextItem->setOpacity(1.0); mTextItem->show(); } if (mPopupItem) { + mPopupItem->setOpacity(1.0); mPopupItem->show(); } @@ -224,6 +227,7 @@ */ void HbIndexFeedbackPrivate::scrollBarPressed() { + cancelEffect(EFFECT_IFDISAPPEAR); showIndexFeedback(); // need to record the scrollbar values @@ -553,3 +557,12 @@ return retVal; } + +void HbIndexFeedbackPrivate::cancelEffect(const QString& effect) +{ + int count = mPopupItemList.count(); + for (int i=0; i #define HB_INDEXFEEDBACK_TYPE "indexfeedback" -#define EFFECT_IFAPPEAR "appear" #define EFFECT_IFDISAPPEAR "disappear" QT_BEGIN_NAMESPACE @@ -81,6 +80,8 @@ QString displayText(const QVariant &data) const; + void cancelEffect(const QString& effect); + public: int mIndexFeedbackPressTimeout; int mIndexFeedbackDwellTimeout; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hblistitemcontainer_p.cpp --- a/src/hbwidgets/itemviews/hblistitemcontainer_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hblistitemcontainer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -35,6 +35,7 @@ #include #include +#include const int Hb_Recycle_Buffer_Shrink_Threshold = 2; // Rather arbitrary @@ -518,7 +519,8 @@ d->adjustContent(); } else { - item->deleteLater(); + item->hide(); + QMetaObject::invokeMethod(item, "deleteLater", Qt::QueuedConnection); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/itemviews/hbtreeitemcontainer_p.cpp --- a/src/hbwidgets/itemviews/hbtreeitemcontainer_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/itemviews/hbtreeitemcontainer_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -35,6 +35,7 @@ #include #include +#include const int Hb_Recycle_Buffer_Shrink_Threshold = 2; @@ -567,7 +568,8 @@ } d->adjustContent(); } else { - item->deleteLater(); + item->hide(); + QMetaObject::invokeMethod(item, "deleteLater", Qt::QueuedConnection); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbinputdialog.cpp --- a/src/hbwidgets/popups/hbinputdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbinputdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -30,7 +30,7 @@ #include "hbinputdialogcontent_p.h" #include #include - +#include #include #ifdef HBINPUTDIALOG_DEBUG @@ -361,6 +361,23 @@ option->additionalText = d->mPromptAdditionalText; } +void HbInputDialog::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidgetBase::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + if (itemName == QLatin1String("label-1")) { + HbStyleTextPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->text = promptText(); + data->textWrapping = Hb::TextWordWrap; + } + + if (itemName == QLatin1String("label-2")) { + HbStyleTextPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->text = promptText(1); + data->textWrapping = Hb::TextWordWrap; + } +} + /*! \reimp */ @@ -368,17 +385,37 @@ { Q_D(HbInputDialog); HbDialog::updatePrimitives(); - HbStyleOptionInputDialog option; - initStyleOption(&option); if (d->mContentWidget->mLabel1) { - HbStylePrivate::updatePrimitive(d->mContentWidget->mLabel1, HbStylePrivate::P_InputDialog_text, &option); - } + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mLabel1); + style()->updatePrimitive(d->mContentWidget->mLabel1, &data, this); + } + + if (d->mContentWidget->mLabel2) { + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mLabel2); + style()->updatePrimitive(d->mContentWidget->mLabel2, &data, this); + } +} + - if (d->mContentWidget->mLabel2 && d->mContentWidget->mAdditionalRowVisible) { - HbStylePrivate::updatePrimitive(d->mContentWidget->mLabel2, HbStylePrivate::P_InputDialog_additionaltext, &option); +/*! + Recreaction of all the primitives. + */ +void HbInputDialog::recreatePrimitives() +{ + Q_D(HbInputDialog); + if (d->mContentWidget->mLabel1) { + delete d->mContentWidget->mLabel1; + d->mContentWidget->mLabel1 = 0; + d->mContentWidget->mLabel1 = style()->createPrimitive(HbStyle::PT_IconItem, "label-1",d->mContentWidget); + } + if (d->mContentWidget->mLabel2) { + delete d->mContentWidget->mLabel2; + d->mContentWidget->mLabel2 = 0; + d->mContentWidget->mLabel2 = style()->createPrimitive(HbStyle::PT_IconItem, "label-2",d->mContentWidget); } } - void HbInputDialog::done(int code) { Q_D(HbInputDialog); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbinputdialog.h --- a/src/hbwidgets/popups/hbinputdialog.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbinputdialog.h Fri Sep 17 08:32:10 2010 +0300 @@ -130,6 +130,7 @@ public slots: void updatePrimitives(); void done(int code); + void recreatePrimitives(); signals: void intValueSelected(int value); @@ -139,6 +140,7 @@ protected: HbInputDialog(HbDialogPrivate &dd, QGraphicsItem *parent); void initStyleOption(HbStyleOptionInputDialog *option) const; + void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive); private: Q_DISABLE_COPY(HbInputDialog) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbinputdialog_p.cpp --- a/src/hbwidgets/popups/hbinputdialog_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbinputdialog_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -26,7 +26,7 @@ #include "hbinputdialog_p.h" #include "hbinputdialogcontent_p.h" #include "hbstyleoptioninputdialog_p.h" - +#include #include #include #include @@ -48,7 +48,7 @@ mEdit2(0), mAdditionalRowVisible(false) { - mLabel1 = HbStylePrivate::createPrimitive(HbStylePrivate::P_InputDialog_text,this); + mLabel1 = style()->createPrimitive(HbStyle::PT_TextItem, "label-1", this); mEdit1 = new HbLineEdit(this); HbStyle::setItemName(mEdit1, "text-1"); @@ -65,9 +65,8 @@ mAdditionalRowVisible = visible; if(!mLabel2 && visible) { - mLabel2 = HbStylePrivate::createPrimitive(HbStylePrivate::P_InputDialog_additionaltext,this); + mLabel2 = style()->createPrimitive(HbStyle::PT_TextItem, "label-2", this); } - if(!mEdit2 && visible) { //Retrieve the cached data here and assign// mEdit2 = new HbLineEdit(this); @@ -258,14 +257,15 @@ HbStyleOptionInputDialog option; if(row == 0) { mPromptText = text; - q->initStyleOption(&option); - HbStylePrivate::updatePrimitive(mContentWidget->mLabel1,HbStylePrivate::P_InputDialog_text,&option); - } else { + HbStyleTextPrimitiveData data; + q->initPrimitiveData(&data, mContentWidget->mLabel1); + q->style()->updatePrimitive(mContentWidget->mLabel1, &data, mContentWidget); + } + else { mPromptAdditionalText = text; - q->initStyleOption(&option); - if(mContentWidget->mAdditionalRowVisible) { - HbStylePrivate::updatePrimitive(mContentWidget->mLabel2,HbStylePrivate::P_InputDialog_additionaltext,&option); - } + HbStyleTextPrimitiveData data; + q->initPrimitiveData(&data, mContentWidget->mLabel2); + q->style()->updatePrimitive(mContentWidget->mLabel2, &data, mContentWidget); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbinputdialogcontent_p.h --- a/src/hbwidgets/popups/hbinputdialogcontent_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbinputdialogcontent_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -51,8 +51,8 @@ public: HbInputDialogPrivate* d; - QGraphicsItem *mLabel1; - QGraphicsItem *mLabel2; + QGraphicsObject *mLabel1; + QGraphicsObject *mLabel2; HbLineEdit *mEdit1; HbLineEdit *mEdit2; bool mAdditionalRowVisible; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbmessagebox.cpp --- a/src/hbwidgets/popups/hbmessagebox.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbmessagebox.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -159,12 +159,11 @@ } } +#ifdef HB_EFFECTS void HbMessageBoxPrivate::_q_appearEffectEnded(HbEffect::EffectStatus status) { #ifdef Q_OS_SYMBIAN - - if ( (status.reason == Hb::EffectFinished) || ( (status.reason == Hb::EffectCancelled) && (!mStartEffect) )) { CSystemToneService *pSystemTone = systemToneService(); if(!pSystemTone) { @@ -189,6 +188,7 @@ #endif // Q_OS_SYMBIAN } +#endif /*! @beta @@ -625,6 +625,32 @@ } +void HbMessageBox::showEvent(QShowEvent *event) +{ +#ifndef HB_EFFECTS + #ifdef Q_OS_SYMBIAN + CSystemToneService *pSystemTone = systemToneService(); + if(!pSystemTone) { + return ; + } + switch(mMessageBoxType) { + case HbMessageBox::MessageTypeInformation: + pSystemTone->PlayTone(CSystemToneService::EInformationBeep); + break; + case HbMessageBox::MessageTypeWarning: + pSystemTone->PlayTone(CSystemToneService::EWarningBeep); + break; + case HbMessageBox::MessageTypeQuestion: + pSystemTone->PlayTone(CSystemToneService::EConfirmationBeep); + break; + default: + break; + } + #endif // Q_OS_SYMBIAN +#endif //HB_EFFECTS + HbDialog::showEvent(event); +} + /*! \deprecated HbMessageBox::question(const QString&,QObject*,const char*,const QString&,const QString&,QGraphicsWidget*,QGraphicsScene*,QGraphicsItem*) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbmessagebox.h --- a/src/hbwidgets/popups/hbmessagebox.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbmessagebox.h Fri Sep 17 08:32:10 2010 +0300 @@ -143,6 +143,7 @@ void updatePrimitives(); protected: + void showEvent(QShowEvent *event); HbMessageBox(HbMessageBoxPrivate &dd, QGraphicsItem *parent); void initStyleOption(HbStyleOptionMessageBox *option) const; void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbmessagebox_p.h --- a/src/hbwidgets/popups/hbmessagebox_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbmessagebox_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -41,7 +41,9 @@ ~HbMessageBoxPrivate(); void init(); +#ifdef HB_EFFECTS void _q_appearEffectEnded(HbEffect::EffectStatus status); +#endif HbIcon mIcon; HbMessageBoxContentWidget *mMessageBoxContentWidget; HbMessageBox::MessageBoxType mMessageBoxType; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbnotificationdialog.cpp --- a/src/hbwidgets/popups/hbnotificationdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbnotificationdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -52,6 +52,7 @@ #define V_MARGIN QString("hb-param-margin-gene-middle-vertical") // Container to encapsulate device dialog server status and sequential show +/// \cond class SequentialShow : public HbWidgetSequentialShow { public: @@ -60,6 +61,8 @@ private: HbDeviceDialogServerStatus mServerStatus; }; +/// \endcond + // Constructor SequentialShow::SequentialShow() : HbWidgetSequentialShow(SequentialShow::allowNotification, &mServerStatus), mServerStatus(false) @@ -87,45 +90,73 @@ } /*! - @beta + @stable @hbwidgets + \class HbNotificationDialog - \brief HbNotificationDialog can be used to notify users of system - generated or user activated events in the UI. + \brief HbNotificationDialog is a non-modal dialog for displaying application notifications. + + HbNotificationDialog is displayed at top left corner of a display. It is intended for + applications to show notifications to user in non-intrusive way. The dialog does not + require user input and is usually closed by timeout. - HbNotificationDialog is a non-modal dialog displayed on top of applications. - These notifications do not require - user input. + For content, HbNotificationDialog supports two rows of text and an icon. Two text rows may + consist either of a title spanning two lines or title and text. Setters are provided for + setting title, text and icon. Alternatively, a custom widget can be created and set as + content by an inherited method setContentWidget(). - Optionally, an action can be activated with a tap to the notification dialog. This is enabled - by first enabling the touch activation with - enableTouchActivation() and then starting the action with the signal - HbNotificationDialog::activated(). + HbNotificationDialog closes when tapped. A tap triggers HbNotificationDialog::activated() signal + if enabled by enableTouchActivation(). + + Notification dialog is displayed by show() or open() methods. Static helper functions + launchDialog() can be used to show dialogs. - HbNotificationDialog is a concrete class. For the content, you can use the default content - widgets which provides two rows of text (title spanning both lines, or title and text) and optionally an icon. - You can use the default content widget by invoking the HbNotificationDialog with its - static launch-methods or by using the methods setText(), setTitle() and setIcon(). + By default, notification dialogs are synchronized with device dialogs. The display of + notification dialogs is delayed until there are no device dialogs on display. + Notifications dialogs are also synchronized with each other. If several of them + are shown at the same time, they are shown sequentially instead of on top of each other. + The synchronization with device dialogs and sequential display of notification dialogs + can be disabled using the setSequentialShow() function. + + Following sample code sets dialog title, text, icon and shows it. + \code + HbNotificationDialog *dialog = new HbNotificationDialog(); + dialog->setAttribute(Qt::WA_DeleteOnClose, true); + dialog->setTitle("My title"); + dialog->setText("My text"); + dialog->setIcon(HbIcon("qtg_large_info")); + dialog->show(); + \endcode - Alternatively, you can create a separate widget, and set it to the dialog with the inherited method - HbNotificationDialog::setContentWidget(). + Using a static helper to show a dialog. + \code + HbNotificationDialog::launchDialog(HbIcon("qtg_large_info"), "My title", "My text"); + \endcode - To display a notification dialog, show() or open() must be called. By default, notifications - are synchronized with device dialogs. The display of notification dialogs is delayed until there - are no device dialogs on display. Notifications are also synchronized with each other. - If several notifications are shown at the same time with the show() function, they are shown - sequentially instead of on top of each other. The synchronization of dialogs and sequential display of dialogs - can be disabled using the setSequentialShow() function. + Connecting to activated signal. + \code + HbNotificationDialog *dialog = new HbNotificationDialog(); + connect(dialog, SIGNAL(activated()), this, SLOT(dialogActivated())); + dialog->enableTouchActivation(true); + dialog->setAttribute(Qt::WA_DeleteOnClose, true); + dialog->setTitle("My title"); + dialog->setText("My text"); + dialog->setIcon(HbIcon("qtg_large_info")); + dialog->show(); + \endcode */ /*! \fn void HbNotificationDialog::activated(); - This signal is emitted when the dialog is closed with a pointer tap. + This signal is emitted when the dialog is tapped and touch activation is + enabled. + + \sa enableTouchActivation() */ /*! - Constructor. + Default constructor. */ HbNotificationDialog::HbNotificationDialog() : HbDialog(*new HbNotificationDialogPrivate, 0) { @@ -142,8 +173,6 @@ setPreferredPos(QPointF(hMargin, vMargin)); } - //d->setPriority(1); - setModal(false); setBackgroundFaded(false); @@ -173,7 +202,8 @@ /*! Enable user interaction on dialog. - \param enabled - When enabled, the activated() signal is emitted on user action. + + \param enabled True enables activated() signal on user action. \sa isTouchActivating() */ @@ -198,8 +228,12 @@ } /*! - Convenience method for using HbNotificationDialog. Shows a notification dialog with - the given parameters. The dialog is owned by HbNotificationDialog. + Convenience method to display HbNotificationDialog. Constructs a notification dialog and shows + it. Constructed object is deleted on close. + + \param title Dialog title. + \param text Dialog text. + \param scene Scene to add the dialog into (optional). */ void HbNotificationDialog::launchDialog(const QString &title, const QString &text, QGraphicsScene* scene) { @@ -214,8 +248,11 @@ } /*! - Convenience method for using HbNotificationDialog. Shows a notification dialog with - the given parameters. The dialog is owned by NotificationDialog. + Convenience method to display HbNotificationDialog. Constructs a notification dialog and shows + it. Constructed object is deleted on close. + + \param title Dialog title. + \param scene Scene to add the dialog into (optional). */ void HbNotificationDialog::launchDialog(const QString &title, QGraphicsScene* scene) { @@ -229,11 +266,16 @@ } /*! - Convenience method for using HbNotificationDialog. Shows a notification dialog with - the given parameters. The dialog is owned by HbNotificationDialog. + Convenience method to display HbNotificationDialog. Constructs a notification dialog and shows + it. Constructed object is deleted on close. + + \param icon Dialog icon. + \param title Dialog title. + \param text Dialog text. + \param scene Scene to add the dialog into (optional). */ void HbNotificationDialog::launchDialog(const HbIcon &icon, const QString &title, - const QString &text, QGraphicsScene* scene) + const QString &text, QGraphicsScene* scene) { HbNotificationDialog *self = new HbNotificationDialog(); if (scene) { @@ -247,9 +289,7 @@ } /*! - Returns the title text. - - If a default content widget doesn't exist, it is created. + Returns title text. If a default content widget doesn't exist, it is created. \sa setTitle() */ @@ -264,7 +304,7 @@ } /*! - Set the dialog title text. + Sets title text. \sa title() */ @@ -277,9 +317,7 @@ } /*! - Returns the text for the dialog. - - If a default content widget doesn't exist, it is created. + Returns dialog text. If a default content widget doesn't exist, it is created. \sa setText() */ @@ -294,9 +332,10 @@ } /*! - Set the text for the dialog. + Sets dialog text. Changes also title text wrapping. If text is empty, + sets title text wrapping to Hb::TextWordWrap, otherwise Hb::TextNoWrap. - \sa text() + \sa text(), setTitleTextWrapping() */ void HbNotificationDialog::setText(const QString& text) { @@ -312,9 +351,7 @@ } /*! - Returns the icon for the dialog. - - If a default content widget doesn't exist, it is created. + Returns dialog icon. If a default content widget doesn't exist, it is created. \sa setIcon() */ @@ -329,7 +366,7 @@ } /*! - Set the icon. + Sets dialog icon. \sa icon() */ @@ -342,12 +379,12 @@ } /*! - Returns the style of text wrapping for the title. + Returns title text wrapping. - The title can wrap only if there is no other text for the dialog. The title can wrap to a maximum of two lines. + The title can wrap only if dialog text is empty. The title can wrap to a maximum of two lines. The default is Hb::TextWordWrap. - \sa setTitleTextWrapping(), HbNotificationDialog::title, HbNotificationDialog::text + \sa setTitleTextWrapping(), title(), text() */ Hb::TextWrapping HbNotificationDialog::titleTextWrapping() const { @@ -356,10 +393,10 @@ } /*! - Sets whether the text for the title is wrapped. + Sets title text wrapping. The title can wrap only if there is no text for the dialog. + The title can wrap to a maximum of two lines. setText() also changes title text wrapping. - The title can wrap only if there is no text for the dialog. The title can wrap to a maximum of two lines. - \sa titleTextWrapping() + \sa titleTextWrapping(), setText() */ void HbNotificationDialog::setTitleTextWrapping(Hb::TextWrapping wrapping) { @@ -374,15 +411,17 @@ } /*! - Enables or disables sequential display of the Notification Dialog. + Enables or disables sequential display of notification dialog. - When enabled, notification dialogs are shown sequentially. If multiple calls to show() occur at the same time then the dialogs are displayed - in sequence instead of on top of each other. The display of the dialogs is also synchronized - with the device dialogs such that the notification dialogs do not appear until there are no device dialogs being displayed. + When enabled, the dialog is synchronized with other notification dialogs. If multiple calls + to show() occur at the same time then dialogs are displayed in sequence instead of on top + of each other. The display of the dialog is also synchronized with device dialogs such + that it does not appear until there are no device dialogs being displayed. - With sequential show disabled, - HbNotificationDialog behaves like other popups. While a dialog is waiting to be shown, - setVisible(), hide() and show() have no effect. To remove a dialog from the wait queue, call setSequentialShow(false). + With sequential show disabled, HbNotificationDialog behaves like other popups. + + While a dialog is waiting to be shown, setVisible(), hide() and show() have no effect. + To remove a dialog from the wait queue, call setSequentialShow(false). This setting is enabled by default. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbprogressdialog.cpp --- a/src/hbwidgets/popups/hbprogressdialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbprogressdialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -26,13 +26,14 @@ #include #include #include - #include #include #include #include #include - +#include +#include +#include /* \internal HbProgressDialogContentWidget class @@ -48,9 +49,9 @@ public: - QGraphicsItem *mIconItem; + QGraphicsObject *mIconItem; HbProgressBar *mProgressBar; - QGraphicsItem *mTextItem; + QGraphicsObject *mTextItem; HbProgressDialogPrivate *d; enum { Type = HbPrivate::ItemType_ProgressDialogContentWidget }; @@ -111,9 +112,9 @@ mContentWidget->mProgressBar->setRange(0,100); } - HbAction *action = new HbAction(hbTrId("txt_common_button_cancel"), q); - QObject::connect(action, SIGNAL(triggered()), q, SLOT(_q_userCancel())); - q->addAction(action); + mAction = new HbAction(hbTrId("txt_common_button_cancel"), q); + QObject::connect(mAction, SIGNAL(triggered()), q, SLOT(_q_userCancel())); + q->addAction(mAction); mMinDuration = 1500; mDelayTime = 1000; @@ -134,20 +135,19 @@ */ void HbProgressDialogPrivate::createPrimitives() { + Q_Q(HbProgressDialog); if( !mContentWidget->mProgressBar ){ mContentWidget->mProgressBar = new HbProgressBar(mContentWidget); HbStyle::setItemName(mContentWidget->mProgressBar, "pbar"); } if ( !mContentWidget->mTextItem ) { - mContentWidget->mTextItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressDialog_text,mContentWidget); - HbStyle::setItemName(mContentWidget->mTextItem, "text"); + mContentWidget->mTextItem = q->style()->createPrimitive(HbStyle::PT_TextItem, "text", mContentWidget); } if ( !mIcon.isNull() ) { if ( !mContentWidget->mIconItem ) { - mContentWidget->mIconItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_ProgressDialog_icon, mContentWidget); - HbStyle::setItemName(mContentWidget->mIconItem, "icon"); + mContentWidget->mIconItem = q->style()->createPrimitive(HbStyle::PT_IconItem, "icon", mContentWidget); } } else { if( mContentWidget->mIconItem ){ @@ -194,7 +194,8 @@ else if(flags.testFlag(HbProgressDialogPrivate::Closetimer)){ flags &= ~HbProgressDialogPrivate::Closetimer; if(flags.testFlag(HbProgressDialogPrivate::Closepending)){ - q->close(); + flags &= ~HbProgressDialogPrivate::Closepending; + q->close(); } } } @@ -207,8 +208,11 @@ void HbProgressDialogPrivate::_q_progressValueChanged(int value) { Q_Q(HbProgressDialog); - + if(value >= mContentWidget->mProgressBar->maximum() && !(q->autoClose())){ + mAction->setText(hbTrId("txt_common_button_close")); + } if(value >= mContentWidget->mProgressBar->maximum() && q->autoClose()){ + if(flags.testFlag(HbProgressDialogPrivate::Closetimer)){ flags |= HbProgressDialogPrivate::Closepending; flags &= ~HbProgressDialogPrivate::Showtimer; @@ -611,14 +615,30 @@ option->textAlignment = d->mAlign; } +void HbProgressDialog::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidgetBase::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + if (itemName == QLatin1String("text")) { + HbStyleTextPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->text = text(); + data->textWrapping = Hb::TextWordWrap; + } + + if (itemName == QLatin1String("icon")) { + HbStyleIconPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->icon = icon(); + } +} + /*! \reimp */ void HbProgressDialog::showEvent(QShowEvent *event) { Q_D(HbProgressDialog); - d->mContentWidget->mProgressBar->show(); + d->mAction->setText(hbTrId("txt_common_button_cancel")); HbDialog::showEvent(event); } @@ -660,9 +680,9 @@ if(d->mContentWidget->mTextItem) { - HbStyleOptionProgressDialog progressDialogOption; - initStyleOption(&progressDialogOption); - HbStylePrivate::updatePrimitive(d->mContentWidget->mTextItem, HbStylePrivate::P_ProgressDialog_text, &progressDialogOption); + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mTextItem); + style()->updatePrimitive(d->mContentWidget->mTextItem, &data, this); } } } @@ -698,10 +718,10 @@ if (d->mContentWidget->mIconItem) { d->mContentWidget->setProperty("icon",true); + HbStyleIconPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mIconItem); + style()->updatePrimitive(d->mContentWidget->mIconItem, &data, this); - HbStyleOptionProgressDialog progressDialogOption; - initStyleOption(&progressDialogOption); - HbStylePrivate::updatePrimitive(d->mContentWidget->mIconItem, HbStylePrivate::P_ProgressDialog_icon, &progressDialogOption); } else { @@ -724,7 +744,42 @@ return d->mIcon; } - +/*! + updation of pri + */ +void HbProgressDialog::updatePrimitives() +{ + Q_D(HbProgressDialog); + HbDialog::updatePrimitives(); + if (d->mContentWidget->mIconItem) { + HbStyleIconPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mIconItem); + style()->updatePrimitive(d->mContentWidget->mIconItem, &data, this); + } + + if (d->mContentWidget->mTextItem) { + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, d->mContentWidget->mTextItem); + style()->updatePrimitive(d->mContentWidget->mTextItem, &data, this); + } +} +/*! + Recreaction of all the primitives. + */ +void HbProgressDialog::recreatePrimitives() +{ + Q_D(HbProgressDialog); + if (d->mContentWidget->mIconItem) { + delete d->mContentWidget->mIconItem; + d->mContentWidget->mIconItem = 0; + d->mContentWidget->mIconItem = style()->createPrimitive(HbStyle::PT_IconItem, "icon",d->mContentWidget); + } + if (d->mContentWidget->mTextItem) { + delete d->mContentWidget->mTextItem; + d->mContentWidget->mTextItem = 0; + d->mContentWidget->mTextItem = style()->createPrimitive(HbStyle::PT_TextItem, "text",d->mContentWidget); + } +} #include "moc_hbprogressdialog.cpp" #include "hbprogressdialog.moc" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbprogressdialog.h --- a/src/hbwidgets/popups/hbprogressdialog.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbprogressdialog.h Fri Sep 17 08:32:10 2010 +0300 @@ -83,11 +83,14 @@ void setMinimum(int min); void setMaximum(int max); void delayedShow(); + void updatePrimitives(); + void recreatePrimitives(); protected: void initStyleOption(HbStyleOptionProgressDialog *option) const; void showEvent(QShowEvent *event); void closeEvent(QCloseEvent *event); + void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive); private: Q_DECLARE_PRIVATE_D(d_ptr, HbProgressDialog) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbprogressdialog_p.h --- a/src/hbwidgets/popups/hbprogressdialog_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbprogressdialog_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -30,7 +30,7 @@ #include #include #include - +#include #include #include @@ -73,6 +73,7 @@ HbProgressDialog::ProgressDialogType mNoteType; QString mTextString; Qt::Alignment mAlign; + HbAction *mAction; }; #endif diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbselectiondialog.cpp --- a/src/hbwidgets/popups/hbselectiondialog.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbselectiondialog.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -46,10 +46,13 @@ SelectionDialog is a modal dialog, for which user has to use default or custom action buttons to dismiss the dialog. - There are 2 modes of selection for SelectionDialog. SingleSelection or MultiSelection.
+ There are 3 modes of selection for SelectionDialog. NoSelection, SingleSelection or MultiSelection.
SingleSelection: User can select one item from the list at a time and the SelectionDialog will be dismissed - as soon as the user selects the item.
+ as soon as the user selects the item.Selection is indicated by a tick mark on the left of selected row.
+ + NoSelection: User can select one item from the list at a time and the SelectionDialog will be dismissed + as soon as the user selects the item.No indicator is show on selection.
MultiSelection: User can select multiple items from the list. To dismiss the dialog user has to explicitly press "OK/Cancel" button. User can anytime press "Cancel" button to close the dialog without any selection. @@ -57,6 +60,10 @@ User can provide the data for options in different forms. It can be simple list of strings, list of custom items or a model itself. + Selecion Dialog emit following signal(s): + + \li selectionChanged(). Emitted when item(s) is/are selected.This signal is emitted only in MultiSelection mode. + Below is a snippet of code which shows SelectionDialog in a single selection mode. \snippet{ultimatecodesnippet/ultimatecodesnippet.cpp,55} @@ -96,10 +103,36 @@ HbDialog::showEvent(event); } +/*! + Returns string used to denote Mark All items functionality. This display text is located on top of the list, + acts as a prompt for the checkbox for marking all items and is valid only in MultiSelection mode. + + \sa setSelectionTitle() +*/ +QString HbSelectionDialog::selectionTitle() const +{ + Q_D(const HbSelectionDialog); + return d->selectionTitle(); +} + +/* + Sets the string used to denote Mark All items functionality. This display text is located on top of the list, + acts as a prompt for the checkbox for marking all items and is valid only in MultiSelection mode. + Default value is "Mark All" + + \sa selectionTitle() + */ +void HbSelectionDialog::setSelectionTitle(const QString& title) +{ + Q_D(HbSelectionDialog); + d->setSelectionTitle(title); +} + + /*! Sets the \a SelectionMode of the list. - \param mode It can be SingleSelection or MultiSelection. + \param mode It can be NoSelection, SingleSelection or MultiSelection. \sa selectionMode() */ @@ -162,7 +195,7 @@ /*! set the item selected. - It can select one item if \a Selection mode is \a SingleSelection + It can select one item if \a Selection mode is \a SingleSelection or \a NoSelection it can select more item if \a SelectionMode is \a MultiSelection. \param items indices of the items to be selected in SelectionDialog. diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbselectiondialog.h --- a/src/hbwidgets/popups/hbselectiondialog.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbselectiondialog.h Fri Sep 17 08:32:10 2010 +0300 @@ -45,7 +45,7 @@ Q_PROPERTY(HbAbstractItemView::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode) Q_PROPERTY(QStringList items READ stringItems WRITE setStringItems) Q_PROPERTY(QList selectedItems READ selectedItems WRITE setSelectedItems) - + Q_PROPERTY(QString selectionTitle READ selectionTitle WRITE setSelectionTitle) public: enum { Type = Hb::ItemType_SelectionDialog }; int type() const { return Type; } @@ -70,9 +70,13 @@ QModelIndexList selectedModelIndexes() const; + QString selectionTitle() const; + void setSelectionTitle(const QString& title); + protected: void showEvent(QShowEvent *event); - +signals: + void selectionChanged(); private: Q_DISABLE_COPY(HbSelectionDialog) Q_DECLARE_PRIVATE_D(d_ptr, HbSelectionDialog) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbselectiondialog_p.cpp --- a/src/hbwidgets/popups/hbselectiondialog_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbselectiondialog_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -34,32 +34,69 @@ #include #include #include +#include +#include +#include +#include -HbSelectionDialogMarkWidget::HbSelectionDialogMarkWidget(QGraphicsItem *parent):HbWidget(parent),mBackgroundItem(0){ +HbSelectionDialogMarkWidget::HbSelectionDialogMarkWidget(QGraphicsItem *parent):HbWidget(parent),mBackgroundItem(0),mLbCounter(0){ chkMark = new HbCheckBox(this); - chkMark->setText(hbTrId("txt_common_list_mark_all_items")); - lbCounter = new HbTextItem(this); HbStyle::setItemName(chkMark,"checkbox"); - HbStyle::setItemName(lbCounter,"counter"); createPrimitives(); } void HbSelectionDialogMarkWidget::createPrimitives() { - if ( !mBackgroundItem ) { - mBackgroundItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_TumbleView_background , this ); - HbStyle::setItemName( mBackgroundItem , "background" ); + if (!mBackgroundItem ) { + mBackgroundItem = style()->createPrimitive( HbStyle::PT_FrameItem ,"background",this ); + mBackgroundItem->setZValue(-5); + } + if(!mLbCounter){ + mLbCounter = style()->createPrimitive( HbStyle::PT_TextItem ,"counter",this ); } } +void HbSelectionDialogMarkWidget::recreatePrimitives() +{ + delete mBackgroundItem; + mBackgroundItem = style()->createPrimitive( HbStyle::PT_FrameItem ,"background",this ); + mBackgroundItem->setZValue(-5); + + delete mLbCounter; + mLbCounter = style()->createPrimitive( HbStyle::PT_TextItem ,"counter",this ); + +} +void HbSelectionDialogMarkWidget::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidgetBase::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + if (itemName == QLatin1String("background")) { + HbStyleFramePrimitiveData* data = hbstyleprimitivedata_cast(primitiveData); + data->frameGraphicsName = QLatin1String("qtg_fr_groupbox"); + data->frameType = HbFrameDrawer::NinePieces; + } + else if (itemName == QLatin1String("counter")) { + HbStyleTextPrimitiveData *data = hbstyleprimitivedata_cast(primitiveData); + data->text = mCounterText; + } + +} + +void HbSelectionDialogMarkWidget::updateCounter(const QString& text) +{ + mCounterText = text; + HbStyleTextPrimitiveData data; + initPrimitiveData(&data, mLbCounter); + style()->updatePrimitive(mLbCounter, &data, this); +} + void HbSelectionDialogMarkWidget::updatePrimitives() { - HbStyleOption option; - initStyleOption( &option ); - - if ( mBackgroundItem ) { - HbStylePrivate::updatePrimitive( mBackgroundItem , HbStylePrivate::P_TumbleView_background , &option ); - } + if (mBackgroundItem) { + HbStyleFramePrimitiveData frameData; + initPrimitiveData(&frameData, mBackgroundItem); + style()->updatePrimitive(mBackgroundItem, &frameData, this); + } } /*! @@ -103,7 +140,7 @@ HbSelectionDialogContentWidget::HbSelectionDialogContentWidget(HbSelectionDialogPrivate *priv):HbWidget(), mListView(0),d(priv),markWidget(0) { - + mSelectionTitle = hbTrId("txt_common_list_mark_all_items"); } void HbSelectionDialogContentWidget::_q_listWidgetItemSelected(HbListWidgetItem *item) @@ -111,14 +148,6 @@ Q_UNUSED(item) } -void HbSelectionDialogContentWidget::_q_listItemSelected(QModelIndex index) -{ - Q_UNUSED(index) - if(mListView->selectionMode()== HbAbstractItemView::SingleSelection){ - d->close(); - } - updateCounter(); -} int HbSelectionDialogContentWidget::selectedItemCount() const { @@ -153,6 +182,21 @@ } } } + +QString HbSelectionDialogContentWidget::selectionTitle() const +{ + return mSelectionTitle; +} + +void HbSelectionDialogContentWidget::setSelectionTitle(const QString& title) +{ + if(mSelectionTitle != title){ + mSelectionTitle = title; + if(markWidget) + markWidget->chkMark->setText(mSelectionTitle); + } +} + void HbSelectionDialogContentWidget::updateCounter() { if(!mListView) return; @@ -161,7 +205,7 @@ int totalItems = totalItemCount(); int selectedItems = selectedItemCount(); markWidget->updatePrimitives(); - markWidget->lbCounter->setText(QString(QString::number(selectedItems) + "/" + QString::number(totalItems))); + markWidget->updateCounter(QString(HbStringUtil::convertDigits(QString::number(selectedItems)) + "/" + HbStringUtil::convertDigits(QString::number(totalItems)))); //update checked state of "MarkAll" checkbox if (totalItems > 0 && (selectedItems == totalItems)){ markWidget->chkMark->blockSignals(true); //should not call _q_checkboxclicked() @@ -206,6 +250,7 @@ if(bShow){ if(!markWidget){ markWidget = new HbSelectionDialogMarkWidget(this); + markWidget->chkMark->setText(mSelectionTitle); } else{ markWidget->show(); @@ -236,8 +281,21 @@ Q_UNUSED(selected); Q_UNUSED(deselected); updateCounter(); + if(mListView->selectionMode()== HbAbstractItemView::MultiSelection) + d->_p_SelectionChanged(); } +void HbSelectionDialogContentWidget::_q_listItemSelected(QModelIndex index) +{ + Q_UNUSED(index) + if(mListView->selectionMode()== HbAbstractItemView::SingleSelection || mListView->selectionMode()== HbAbstractItemView::NoSelection){ + d->close(); + } + updateCounter(); + //d->_p_SelectionChanged(); +} + + void HbSelectionDialogContentWidget::modelChanged(const QModelIndex &parent, int start,int end) { Q_UNUSED(parent); @@ -271,6 +329,7 @@ void HbSelectionDialogContentWidget::createListView() { if(mListView){ + QObject::disconnect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&))); HbListWidget* mView = qobject_cast(mListView); if(mView){ delete mListView; @@ -286,6 +345,7 @@ connectSlots(); repolish(); } + QObject::connect(mListView->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),this,SLOT(_q_selectionChanged(const QItemSelection&, const QItemSelection&))); } HbSelectionDialogPrivate::HbSelectionDialogPrivate() @@ -316,20 +376,30 @@ showActions(mSelectionMode); } +void HbSelectionDialogPrivate::_p_SelectionChanged() +{ + Q_Q(HbSelectionDialog); + if(mSelectionMode == HbAbstractItemView::MultiSelection) + { + emit q->selectionChanged(); + } +} + void HbSelectionDialogPrivate::showActions(HbAbstractItemView::SelectionMode selectionMode) { Q_Q(HbSelectionDialog); - if(selectionMode == HbAbstractItemView::SingleSelection){ + if(selectionMode == HbAbstractItemView::SingleSelection || selectionMode == HbAbstractItemView::NoSelection){ if(action1) { q->disconnect(action1,SIGNAL(triggered()),q,SLOT(accept())); q->removeAction(action1); - action1 = 0; } if(action2 == NULL){ action2 =new HbAction(hbTrId("txt_common_button_cancel"),q); q->connect(action2,SIGNAL(triggered()),q,SLOT(reject())); - q->insertAction(0,action2); + } + if(q->actions().contains(action2) == false){ + q->insertAction(0,action2); } } else{ @@ -339,12 +409,19 @@ q->connect(action2,SIGNAL(triggered()),q,SLOT(reject())); q->insertAction(0,action2); } + if(q->actions().contains(action2) == false) + q->insertAction(0,action2); + if(action1 == NULL){ action1 =new HbAction(hbTrId("txt_common_button_ok"),q); q->connect(action1,SIGNAL(triggered()),q,SLOT(accept())); - q->insertAction(action2,action1); } + if(q->actions().contains(action1) == false) + { + q->insertAction(q->actions().first(),action1); + } } + } void HbSelectionDialogPrivate::setSelectionMode(HbAbstractItemView::SelectionMode mode) @@ -354,6 +431,7 @@ mSelectionMode = mode; switch(mSelectionMode) { + case HbAbstractItemView::NoSelection: case HbAbstractItemView::SingleSelection: case HbAbstractItemView::MultiSelection: { @@ -368,7 +446,7 @@ showActions(mSelectionMode); } break; - case HbAbstractItemView::NoSelection: + default: break; } } @@ -555,16 +633,21 @@ QList selIndexes; model = selectionModel(); if(model){ - QModelIndexList indexes = model->selectedIndexes(); - int count = indexes.count(); - QModelIndex index; - for(int i = 0 ; i < count ; i++){ - index = indexes[i]; + if(mSelectionMode == HbAbstractItemView::NoSelection){ + QModelIndex index = model->currentIndex(); selIndexes.append(QVariant(index.row())); } + else{ + QModelIndexList indexes = model->selectedIndexes(); + int count = indexes.count(); + QModelIndex index; + for(int i = 0 ; i < count ; i++){ + index = indexes[i]; + selIndexes.append(QVariant(index.row())); + } + } } return selIndexes; - } QModelIndexList HbSelectionDialogPrivate::selectedModelIndexes() const @@ -573,7 +656,13 @@ QModelIndexList selIndexes; model = selectionModel(); if(model){ - selIndexes = model->selectedIndexes(); + if(mSelectionMode == HbAbstractItemView::NoSelection){ + QModelIndex index = model->currentIndex(); + selIndexes.append(index); + } + else{ + selIndexes = model->selectedIndexes(); + } } return selIndexes; } @@ -584,3 +673,22 @@ q->accept(); //emit the signal } +QString HbSelectionDialogPrivate::selectionTitle() const +{ + Q_Q(const HbSelectionDialog); + QString str; + HbSelectionDialogContentWidget* cWidget = qobject_cast(q->contentWidget()); + if(cWidget){ + str = cWidget->selectionTitle(); + } + return str; +} + +void HbSelectionDialogPrivate::setSelectionTitle(const QString& title) +{ + Q_Q(HbSelectionDialog); + HbSelectionDialogContentWidget* cWidget = qobject_cast(q->contentWidget()); + if(cWidget){ + cWidget->setSelectionTitle(title); + } +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/popups/hbselectiondialog_p.h --- a/src/hbwidgets/popups/hbselectiondialog_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/popups/hbselectiondialog_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -66,10 +66,13 @@ QModelIndexList selectedModelIndexes() const; void clearItems(bool keepItems); void showActions(HbAbstractItemView::SelectionMode selectionMode); + QString selectionTitle() const; + void setSelectionTitle(const QString& title); public: bool bOwnItems; HbAbstractItemView::SelectionMode mSelectionMode; void close(); + void _p_SelectionChanged(); private: HbAction *action1; HbAction *action2; @@ -79,15 +82,19 @@ { Q_OBJECT public: - QGraphicsItem *mBackgroundItem; + QGraphicsObject *mBackgroundItem; HbCheckBox* chkMark; - HbTextItem* lbCounter; + QGraphicsObject* mLbCounter; HbSelectionDialogMarkWidget(QGraphicsItem *parent = 0); ~HbSelectionDialogMarkWidget(); void createPrimitives(); void updatePrimitives(); + void recreatePrimitives(); + void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive); QVariant itemChange( GraphicsItemChange change, const QVariant &value ); QGraphicsItem* primitive(HbStyle::Primitive primitive) const; + void updateCounter(const QString& text); + QString mCounterText; }; class HB_AUTOTEST_EXPORT HbSelectionDialogContentWidget :public HbWidget @@ -112,8 +119,11 @@ bool bMultiSelection; void updateCounter(); void setModel(QAbstractItemModel* model); + QString selectionTitle() const; + void setSelectionTitle(const QString& title); private: HbSelectionDialogMarkWidget* markWidget; + QString mSelectionTitle; private slots: void _q_listWidgetItemSelected(HbListWidgetItem *item); void _q_listItemSelected(QModelIndex index); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbprogressslider.cpp --- a/src/hbwidgets/sliders/hbprogressslider.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbprogressslider.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -71,7 +71,7 @@ if (value >= mMaximum) { value = mMaximum; #ifdef HB_EFFECTS - // HbEffect::start(mTrack, HB_PRGRESSSLIDER_ITEM_TYPE, "progressbar_progress_complete"); + HbEffect::start(mTrack, HB_PRGRESSSLIDER_ITEM_TYPE, "progressbar_progress_complete"); #endif } else if (value < mMinimum) { @@ -139,7 +139,7 @@ HbWidgetFeedback::triggered(q, Hb::InstantReleased); #ifdef HB_EFFECTS - // HbEffect::start(q, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackrelease"); + HbEffect::start(q, HB_PRGRESSSLIDER_ITEM_TYPE, "progressslider_trackrelease"); #endif } @@ -160,12 +160,6 @@ return mFrame->boundingRect(); } -HbStyle* HbProgressSliderPrivate::style() const -{ - Q_Q(const HbProgressSlider); - return q->style(); -} - QGraphicsItem* HbProgressSliderPrivate::parentGraphicsItem() const { return mFrame; @@ -313,7 +307,6 @@ HbProgressSlider::HbProgressSlider(QGraphicsItem *parent) : HbProgressBar(*new HbProgressSliderPrivate,parent) { - HbEffect::disable(this); Q_D( HbProgressSlider ); d->q_ptr = this; d->init(); @@ -334,8 +327,6 @@ else{ d->handle->setPos(0,boundingRect().height()); } - - HbEffect::disable(this); } @@ -347,7 +338,7 @@ HbProgressSlider::HbProgressSlider(HbProgressSliderPrivate &dd,QGraphicsItem *parent) : HbProgressBar( dd,parent) { - HbEffect::disable(this); + Q_D( HbProgressSlider ); d->init(); @@ -361,8 +352,6 @@ else{ d->handle->setPos(0,boundingRect().height()); } - - HbEffect::disable(this); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbprogressslider_p.h --- a/src/hbwidgets/sliders/hbprogressslider_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbprogressslider_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -44,9 +44,8 @@ void emitSliderReleased(); void setProgressValue(int value); void emitSliderMoved(int newValue); - void setEnableFlag(bool flag); + void setEnableFlag(bool flag); QRectF boundingRect() const; - HbStyle* style() const; QGraphicsItem* parentGraphicsItem() const; HbWidget* parentGraphicsWidget() const; int progressValue()const; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbprogresssliderhandle_p.cpp --- a/src/hbwidgets/sliders/hbprogresssliderhandle_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbprogresssliderhandle_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -60,7 +60,6 @@ q(parent), mHandleIcon() { - HbEffect::disable(this); mFlags = 0; mFlags |= TextVisible; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbprogresssliderhandle_p.h --- a/src/hbwidgets/sliders/hbprogresssliderhandle_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbprogresssliderhandle_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -35,14 +35,12 @@ class HbHandleParent { public: - virtual HbStyle* style() const = 0; virtual void emitSliderPressed() = 0; virtual void emitSliderMoved(int vlaue) = 0; virtual void emitSliderReleased() = 0; virtual QRectF boundingRect() const = 0; virtual QGraphicsItem* parentGraphicsItem() const = 0; virtual HbWidget* parentGraphicsWidget() const = 0; - virtual ~HbHandleParent(){}; virtual int progressValue()const = 0; virtual int maximum() const = 0; diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbratingslider.cpp --- a/src/hbwidgets/sliders/hbratingslider.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbratingslider.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -56,7 +56,9 @@ mLayoutItem(0), mUnratedIconName(""), mTouchArea(0), - mRatedIconName("") + mRatedIconName(""), + mToolTipText(""), + mToolTipArea(0) { } @@ -477,8 +479,8 @@ int rating=0; if(rect.contains(xVal,0 )) { rating = d->calculateProgressValue(xVal); - if(!toolTip().isNull()) { - HbToolTip::showText(toolTip(),this); + if(!mToolTipText.isNull()) { + HbToolTip::showText(mToolTipText,this); } setCurrentRating(rating); emit ratingChanged (d->mCurrentValue); @@ -519,8 +521,8 @@ int rating=0; if(rect.contains(xVal,0 )) { rating = d->calculateProgressValue(xVal); - if(!toolTip().isNull()) { - HbToolTip::showText(toolTip(),this); + if(!mToolTipText.isNull()) { + HbToolTip::showText(mToolTipText,this); } setCurrentRating(rating); if(d->mCurrentValue) { @@ -555,19 +557,20 @@ return; } if(event->gesture(Qt::TapGesture)) { - HbTapGesture *tap = qobject_cast(event->gesture(Qt::TapGesture)); - switch(tap->state()) { + HbTapGesture *tap = qobject_cast(event->gesture(Qt::TapGesture)); + switch(tap->state()) { case Qt::GestureStarted: - { + { qreal xVal = mapFromScene(event->mapToGraphicsScene(tap->position( ))).x(); int rating = d->calculateProgressValue(xVal); if(rating == -1) { + event->ignore(); return; } if(d->mReadOnly) { event->ignore(); return; - } + } QRectF rect = d->mTouchArea->boundingRect(); if(rect.contains(xVal,0 )) { HbWidgetFeedback::triggered(this, Hb::InstantPressed); @@ -575,142 +578,138 @@ updatePrimitives(); rating = d->calculateProgressValue(xVal); setCurrentRating(rating); + emit ratingChanged (d->mCurrentValue); + if(!d->mToolTipArea) + d->mToolTipArea = new HbTouchArea(d->mFrame); + d->mToolTipArea->setPos(xVal,0); + d->mToolTipArea->setSize(QSize(1,1)); + if(!d->mToolTipText.isNull()) { + HbToolTip::showText(d->mToolTipText,d->mToolTipArea); + } event->accept(); } else { event->ignore(); - } - - } - break; + } + } + break; case Qt::GestureFinished: // Reset state - { - qreal xVal = mapFromScene(event->mapToGraphicsScene(tap->position( ))).x(); - QRectF rect = d->mTouchArea->boundingRect(); - int rating=0; - if(rect.contains(xVal,0 )) { - if(d->mReadOnly) { - event->ignore(); - return; - } - - if(!d->mMousePressed){ - return; - } - - if(xVal <0) { - setCurrentRating(0); - emit ratingDone (d->mCurrentValue); - return; - } - - rating = d->calculateProgressValue(xVal); - - if(!toolTip().isNull()) { - HbToolTip::showText(toolTip(),this); - } - setCurrentRating(rating); - HbWidgetFeedback::triggered(this, Hb::InstantReleased); - if(d->mCurrentValue) { - emit ratingDone (d->mCurrentValue); - } - - event->accept(); - d->mMousePressed = false; - updatePrimitives(); - } - else { - - d->mMousePressed = false; - updatePrimitives(); - - if(xVal mCurrentValue); - } + { + qreal xVal = mapFromScene(event->mapToGraphicsScene(tap->position( ))).x(); + QRectF rect = d->mTouchArea->boundingRect(); + int rating=0; + if(rect.contains(xVal,0 )) { + if(d->mReadOnly) { + event->ignore(); + return; + } + + if(!d->mMousePressed){ + event->ignore(); + return; + } + if(xVal <0) { + setCurrentRating(0); + emit ratingDone (d->mCurrentValue); + return; + } + rating = d->calculateProgressValue(xVal); + setCurrentRating(rating); + HbWidgetFeedback::triggered(this, Hb::InstantReleased); + if(d->mCurrentValue) { + emit ratingDone (d->mCurrentValue); + } + event->accept(); + d->mMousePressed = false; + updatePrimitives(); + } + else { + d->mMousePressed = false; + updatePrimitives(); + if(xVal mCurrentValue); + } - } - - - - + } } break; default: break; } - }else if(event->gesture(Qt::PanGesture)) { - HbPanGesture *pan = qobject_cast(event->gesture(Qt::PanGesture)); - switch(pan->state()) { - case Qt::GestureUpdated: - { - if(!d->mMousePressed) { - return; - } - qreal xVal = mapFromScene(event->mapToGraphicsScene( pan->startPos()+pan->offset())).x(); - QRectF rect = d->mTouchArea->boundingRect(); - int rating=0; - if(rect.contains(xVal,0 )) { - if(d->mReadOnly) { - event->ignore(); - return; - } - - if(xVal <0) { - setCurrentRating(0); - return; - } + } + else if(event->gesture(Qt::PanGesture)) { + HbPanGesture *pan = qobject_cast(event->gesture(Qt::PanGesture)); + switch(pan->state()) { + case Qt::GestureUpdated: + { + if(!d->mMousePressed) { + return; + } + qreal xVal = mapFromScene(event->mapToGraphicsScene( pan->startPos()+pan->offset())).x(); + QRectF rect = d->mTouchArea->boundingRect(); + int rating=0; + if(rect.contains(xVal,0 )) { + if(d->mReadOnly) { + event->ignore(); + return; + } + if(xVal <0) { + setCurrentRating(0); + return; + } - rating = d->calculateProgressValue(xVal); - - if(!toolTip().isNull()) { - HbToolTip::showText(toolTip(),this); - } - setCurrentRating(rating); - HbWidgetFeedback::continuousTriggered(this, Hb::ContinuousDragged); - emit ratingChanged (d->mCurrentValue); - event->accept(); - } - else { - setCurrentRating(0); - } + rating = d->calculateProgressValue(xVal); + if(!d->mToolTipArea) + d->mToolTipArea = new HbTouchArea(d->mFrame); //Need to show the tooltip at the touch point + if(rating!=-1) { + d->mToolTipArea->setPos(xVal,0); + d->mToolTipArea->setSize(QSize(1,1)); + if(!d->mToolTipText.isNull()) { + HbToolTip::showText(d->mToolTipText,d->mToolTipArea); } - break; - case Qt::GestureFinished: // Reset state - { - qreal xVal = mapFromScene(event->mapToGraphicsScene( pan->startPos()+pan->offset())).x(); - QRectF rect = d->mTouchArea->boundingRect(); - d->mMousePressed = false; - updatePrimitives(); - int rating=0; - if(rect.contains(xVal,0 )) { - if(d->mReadOnly) { - event->ignore(); - return; - } - } - - if(xVal <0) { - setCurrentRating(0); - emit ratingDone (d->mCurrentValue); - return; - } - - rating = d->calculateProgressValue(xVal); - setCurrentRating(rating); - HbWidgetFeedback::triggered(this, Hb::InstantReleased); - if(d->mCurrentValue) { - emit ratingDone (d->mCurrentValue); - } - event->accept(); + } + setCurrentRating(rating); + HbWidgetFeedback::continuousTriggered(this, Hb::ContinuousDragged); + emit ratingChanged (d->mCurrentValue); + event->accept(); + } + else { + setCurrentRating(0); + } + } + break; + case Qt::GestureFinished: // Reset state + { + qreal xVal = mapFromScene(event->mapToGraphicsScene( pan->startPos()+pan->offset())).x(); + QRectF rect = d->mTouchArea->boundingRect(); + d->mMousePressed = false; + updatePrimitives(); + int rating=0; + if(rect.contains(xVal,0 )) { + if(d->mReadOnly) { + event->ignore(); + return; + } + } + if(xVal <0) { + setCurrentRating(0); + emit ratingDone (d->mCurrentValue); + return; + } + rating = d->calculateProgressValue(xVal); + setCurrentRating(rating); + HbWidgetFeedback::triggered(this, Hb::InstantReleased); + if(d->mCurrentValue) { + emit ratingDone (d->mCurrentValue); + } + event->accept(); - } - - - default: - break; - } + } + break; + default: + break; + } } } #endif @@ -728,6 +727,17 @@ /*! \reimp */ + +void HbRatingSlider::setToolTipText(const QString tooltip) +{ + Q_D(HbRatingSlider); + d->mToolTipText = tooltip; +} +QString HbRatingSlider::toolTipText() const +{ + Q_D(const HbRatingSlider); + return d->mToolTipText; +} void HbRatingSlider::initStyleOption(HbStyleOption *hboption) const { Q_D( const HbRatingSlider ); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbratingslider.h --- a/src/hbwidgets/sliders/hbratingslider.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbratingslider.h Fri Sep 17 08:32:10 2010 +0300 @@ -39,6 +39,7 @@ Q_PROPERTY(int currentRating READ currentRating WRITE setCurrentRating) Q_PROPERTY(QString unRatedIconName READ unRatedIconName WRITE setUnRatedIconName) Q_PROPERTY(QString ratedIconName READ ratedIconName WRITE setRatedIconName) + Q_PROPERTY(QString toolTipText READ toolTipText WRITE setToolTipText) public: explicit HbRatingSlider(QGraphicsItem *parent = 0); @@ -65,6 +66,9 @@ void setRatedIconName(const QString name); QString ratedIconName() const; + void setToolTipText(const QString tooltip); + QString toolTipText() const; + QGraphicsItem * primitive(HbStyle::Primitive primitive) const; void setGeometry(const QRectF &rect); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbratingslider_p.h --- a/src/hbwidgets/sliders/hbratingslider_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbratingslider_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -28,6 +28,7 @@ #include "hbwidget_p.h" #include +#include class HbRatingSliderPrivate :public HbWidgetPrivate { Q_DECLARE_PUBLIC( HbRatingSlider ) @@ -49,6 +50,8 @@ QString mUnratedIconName; QGraphicsItem *mTouchArea; QString mRatedIconName; + QString mToolTipText; + HbTouchArea *mToolTipArea; }; #endif //HBRATINGSLIDER_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbslider.cpp --- a/src/hbwidgets/sliders/hbslider.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbslider.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -965,8 +965,6 @@ if ( d->elements.contains( HbSlider::TextElement )) { d->elementWidget( HbSlider::TextElement ); } - // sets text for tooltip also - d->sliderControl->setToolTip( text ); } } @@ -1859,6 +1857,7 @@ */ void HbSlider::mousePressEvent( QGraphicsSceneMouseEvent *event ) { +#ifndef HB_GESTURE_FW Q_D( HbSlider ); HbWidget::mousePressEvent( event ); if( d->elementItemMap.contains (HbSlider::IncreaseElement) ) { @@ -1882,6 +1881,9 @@ return; } } +#else + Q_UNUSED(event); +#endif } @@ -1892,6 +1894,7 @@ */ void HbSlider::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) { +#ifndef HB_GESTURE_FW Q_D( HbSlider ); HbWidget::mouseReleaseEvent( event ); if( d->elementItemMap.contains(HbSlider::IncreaseElement) ) { @@ -1917,6 +1920,9 @@ } } d->stopRepeatAction( ); +#else + Q_UNUSED( event ) +#endif } /*! @@ -1932,22 +1938,70 @@ if (HbTapGesture *tap = qobject_cast(event->gesture(Qt::TapGesture))) { QPointF pos = event->mapToGraphicsScene(tap->position()); bool consumeEvent = false; - if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) { - if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) { - if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) { - consumeEvent = true; + switch( tap->state( ) ) { + case Qt::GestureStarted: { + if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + consumeEvent = true; + d->pressOnIncrement = true; + HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantPressed, Hb::ModifierSliderElement ); + event->accept( ); + // increment and start reapeat timer + d->startIncrementing( ); + } + } + } + if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + consumeEvent = true; + d->pressOnIncrement = false; + HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantPressed, Hb::ModifierSliderElement ); + event->accept( ); + //decrement and start decrement timer + d->startDecrementing( ); + + } } } } - if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) { - if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) { - if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) { - consumeEvent = true; + break; + case Qt::GestureCanceled: + case Qt::GestureFinished: + if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) { + if ( d->pressOnIncrement ) { + if( d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantReleased, Hb::ModifierSliderElement ); + } + #ifdef HB_EFFECTS + HbEffectInternal::add( HB_SLIDER_TYPE,"slidericon_release", "increaserelease" ); + HbEffect::start( d->elementItemMap[HbSlider::IncreaseElement].item, HB_SLIDER_TYPE, "increaserelease" ); + #endif + } } } - } - - if(!consumeEvent) { + if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) { + if( d->elementItemMap.contains(HbSlider::DecreaseElement) ) { + if ( !d->pressOnIncrement ) { + if( d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos) ) { + HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantReleased, Hb::ModifierSliderElement ); + } + #ifdef HB_EFFECTS + HbEffectInternal::add( HB_SLIDER_TYPE,"slidericon_release", "decreaserelease" ); + HbEffect::start( d->elementItemMap[HbSlider::DecreaseElement].item, HB_SLIDER_TYPE, "decreaserelease" ); + #endif + } + } + } + } + d->stopRepeatAction( ); + break; + default: break; + } + if(!consumeEvent) { event->ignore(); HbWidget::gestureEvent(event); } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbslidercontrol.cpp --- a/src/hbwidgets/sliders/hbslidercontrol.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbslidercontrol.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -36,11 +36,15 @@ #include #include #include +#include +#include #include #include #ifdef HB_GESTURE_FW #include "hbtapgesture.h" #include "hbpangesture.h" +#include "hbtapandholdgesture.h" + #endif #ifdef HB_EFFECTS @@ -63,7 +67,7 @@ groove( 0 ), //slider groove progressGroove( 0 ),//progress mask top of groove displayCurrValueToolTip( true ), // holds whether to show current value tooltip or not - toolTipAlignment( Qt::AlignTop|Qt::AlignRight ), // tooltip alignment + toolTipAlignment( Qt::AlignTop ), // tooltip alignment groovePressed( false ), // hold whether groove is pressed or not setDefault( false ), // holds whther default value for track press is set previousValue( 0 ), // default value for track press @@ -71,7 +75,9 @@ handleMoving( false ), grooveTouchArea ( 0 ), enableProgressTrack ( true ), - userDefinedTooltipAlign ( false ) + userDefinedTooltipAlign ( false ), + tooltipArea(0), + tooltipBorderHeight( 0 ) { majorLabel.clear(); @@ -99,14 +105,14 @@ // creating handle handle = createHandle(); - if(handle) { + if (handle) { HbStyle::setItemName( handle, "handle" ); } #if defined( QT_KEYPAD_NAVIGATION ) && !defined( Q_OS_SYMBIAN ) q->setFocusPolicy( Qt::FocusPolicy( ( qApp->style( ) )->styleHint( QStyle::SH_Button_FocusPolicy ) ) ); #endif groove = createGroove(); - if(groove) { + if (groove) { HbStyle::setItemName( groove, "groove" ); } #ifdef HB_GESTURE_FW @@ -116,20 +122,49 @@ //filled item top of groove if ( enableProgressTrack ) { progressGroove = createProgressGroove(); - if(progressGroove) { + if (progressGroove) { HbStyle::setItemName( progressGroove, "progressgroove"); } } + tooltipArea = new HbTouchArea(q); q->connect( hbInstance->theme( ), SIGNAL( changed( ) ), q, SLOT( updateTheme( ) ) ); - q->connect( q , SIGNAL( actionTriggered( int ) ), q , SLOT( showToolTip( ) ) ); + // q->connect( q , SIGNAL( actionTriggered( int ) ), q , SLOT( showToolTip( ) ) ); q->connect( q , SIGNAL( sliderReleased( ) ), q , SLOT( hideToolTip( ) ) ); #if defined( QT_KEYPAD_NAVIGATION ) && !defined( Q_OS_SYMBIAN ) q->setFlags( QGraphicsItem::ItemIsFocusable ); #endif } +int HbSliderControlPrivate::calculateSliderPosition(QPointF relativePos) +{ + Q_Q (HbSliderControl); + qreal span = 0; + qreal handlePos = 0; + QRectF bounds = q->boundingRect( ); + QRectF handleBounds = handle->boundingRect( ); + bounds.adjust( 0, 0, -handleBounds.width( ), -handleBounds.height( ) ); + // calculate handle position and span + switch ( q->orientation( ) ) { + case Qt::Horizontal: + handlePos = relativePos.x( ) - handleBounds.width( ) / 2; + span = bounds.width( ); + break; + case Qt::Vertical: + handlePos = relativePos.y( ) - handleBounds.height( ) / 2; + span = bounds.height( ); + break; + default: + break; + } + HbStyleOptionSlider opt; + q->initStyleOption( &opt ); + int pressValue = QStyle::sliderValueFromPosition( opt.minimum, opt.maximum, + static_cast( handlePos ),static_cast( span ),opt.upsideDown ); + return pressValue; +} + /*! \internal This is used to create the handle, it is virtual and can be overridden to create different handle. @@ -597,9 +632,18 @@ void HbSliderControl::showToolTip( ) { Q_D( HbSliderControl ); - if ( isSliderDown( ) && d->displayCurrValueToolTip ) { - HbToolTip::showText( toolTip( ) , d->handle->primitive((HbStyle::Primitive)HbStylePrivate::P_SliderElement_touchhandle) , d->toolTipAlignment ); - } + if ( d->displayCurrValueToolTip ) { + QRectF handleRect=d->handle->boundingRect(); + QRectF tooltipRect = handleRect; + tooltipRect.setHeight ( d->tooltipBorderHeight); + tooltipRect.moveBottom( d->handle->pos().ry()); + tooltipRect.moveLeft (d->handle->pos().rx()); + d->tooltipArea->setGeometry(tooltipRect); + //d->tooltipArea->update();*/ + HbToolTip::showText( toolTip( ) , d->tooltipArea, d->toolTipAlignment ); + } + + } /*! @@ -638,7 +682,7 @@ return; } event->accept( ); - if( d->onHandle( event->scenePos( ) ) ) { + if ( d->onHandle( event->scenePos( ) ) ) { HbWidgetFeedback::triggered( this, Hb::InstantPressed, Hb::ModifierSliderHandle ); setSliderDown( true ); d->handle->updatePrimitives( ); @@ -647,8 +691,8 @@ else { // effect #ifdef HB_EFFECTS - if( d->grooveTouchArea->sceneBoundingRect( ).contains( event->scenePos( ) ) ) { - if( orientation( ) == Qt::Horizontal ) { + if ( d->grooveTouchArea->sceneBoundingRect( ).contains( event->scenePos( ) ) ) { + if ( orientation( ) == Qt::Horizontal ) { // effect for horizontal track press HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackpress", "h_trackpress" ); HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "h_trackrpress" ); @@ -781,16 +825,45 @@ void HbSliderControl::gestureEvent(QGestureEvent *event) { Q_D(HbSliderControl); - if(HbTapGesture *tap = qobject_cast(event->gesture(Qt::TapGesture))) { - if( d->onHandle( event->mapToGraphicsScene(tap->position( ) ) ) ){ + if ( HbTapAndHoldGesture *tapandHold = qobject_cast ( event->gesture( Qt::TapAndHoldGesture ) ) ) { + if (tapandHold->state() == Qt::GestureStarted) { + QPointF relativePos = mapFromScene( event->mapToGraphicsScene(tapandHold->position( ) ) ); + int pressValue = d->calculateSliderPosition( relativePos ); + setToolTip(QString::number( pressValue ) ); + QRectF handleRect=d->handle->boundingRect(); + QRectF tooltipRect = handleRect; + QRectF touchPointRect=handleRect; + if (orientation() == Qt::Horizontal) { + touchPointRect.moveCenter(QPointF( boundingRect().width()/2,boundingRect( ).height()/2 ) ); + touchPointRect.moveLeft(relativePos.rx() - touchPointRect.width( )/2); + + } else { + touchPointRect.moveCenter(QPointF( boundingRect().width()/2,boundingRect( ).height()/2 ) ); + touchPointRect.moveTop( relativePos.ry() - touchPointRect.height()/2 ); + } + tooltipRect.setHeight ( d->tooltipBorderHeight); + tooltipRect.moveBottom( touchPointRect.top() ); + tooltipRect.moveLeft (touchPointRect.left( ) ); + d->tooltipArea->setGeometry(tooltipRect); + d->tooltipArea->setGeometry(tooltipRect); + d->tooltipArea->update(); + if ( d->displayCurrValueToolTip ) { + HbToolTip::showText( toolTip( ) , d->tooltipArea, d->toolTipAlignment ); + } + + return; + } + } + if ( HbTapGesture *tap = qobject_cast (event->gesture( Qt::TapGesture ) )) { + if ( d->onHandle( event->mapToGraphicsScene(tap->position( ) ) ) ) { event->ignore(); return; - } - switch(tap->state()) { + } + switch( tap->state( ) ) { case Qt::GestureStarted: { QRectF eventRect = d->grooveTouchArea->sceneBoundingRect( ); if ( !d->trackHandlingEnable || maximum( ) == minimum( ) || - !eventRect.contains( event->mapToGraphicsScene(tap->position( ) ) ) ){ + !eventRect.contains( event->mapToGraphicsScene(tap->position( ) ) ) ) { event->ignore( ); return; } @@ -803,12 +876,11 @@ event->accept( ); // effect #ifdef HB_EFFECTS - if( orientation( ) == Qt::Horizontal ) { + if ( orientation( ) == Qt::Horizontal ) { // effect for horizontal track press HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackpress", "h_trackpress" ); HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "h_trackrpress" ); - } - else { + } else { HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_v_trackpress", "v_trackpress" ); HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "v_trackpress" ); } @@ -826,32 +898,8 @@ event->ignore( ); return; } - qreal handlePos = 0; - qreal span = 0; - QRectF bounds = boundingRect( ); - QRectF handleBounds = d->handle->boundingRect( ); - bounds.adjust( 0, 0, -handleBounds.width( ), -handleBounds.height( ) ); QPointF relativePos = mapFromScene( event->mapToGraphicsScene(tap->position( ) ) ); - // calculate handle position and span - switch ( orientation( ) ) { - case Qt::Horizontal: - handlePos = relativePos.x( ) - handleBounds.width( ) / 2; - span = bounds.width( ); - break; - case Qt::Vertical: - handlePos = relativePos.y( ) - handleBounds.height( ) / 2; - span = bounds.height( ); - break; - default: - break; - } - HbStyleOptionSlider opt; - initStyleOption( &opt ); - - int pressValue = QStyle::sliderValueFromPosition( opt.minimum, opt.maximum, - static_cast( handlePos ),static_cast( span ),opt.upsideDown ); - - + int pressValue = d->calculateSliderPosition (relativePos); // if default is set then don't increment or decrement slider value // just set default value to slider setSliderPosition( pressValue ); @@ -860,7 +908,7 @@ HbWidgetFeedback::triggered( this, Hb::InstantReleased ); if ( d->groovePressed ) { #ifdef HB_EFFECTS - if( orientation( ) == Qt::Horizontal ) { + if ( orientation( ) == Qt::Horizontal ) { HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackrelease", "h_trackrelease" ); HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "h_trackrelease" ); } else { @@ -880,7 +928,7 @@ case Qt::GestureCanceled: { if ( d->groovePressed ) { #ifdef HB_EFFECTS - if( orientation( ) == Qt::Horizontal ) { + if ( orientation( ) == Qt::Horizontal ) { HbEffectInternal::add( HB_SLIDERCONTROL_TYPE,"slider_h_trackrelease", "h_trackrelease" ); HbEffect::start( d->groove, HB_SLIDERCONTROL_TYPE, "h_trackrelease" ); } else { @@ -901,51 +949,64 @@ break; } } - if (HbPanGesture *panGesture = qobject_cast(event->gesture(Qt::PanGesture))) { - switch(panGesture->state( )) { + if ( HbPanGesture *panGesture = qobject_cast (event->gesture(Qt::PanGesture) ) ) { + switch(panGesture->state( ) ) { case Qt::GestureStarted: case Qt::GestureUpdated:{ QPointF startPoint = event->mapToGraphicsScene(panGesture->offset()+panGesture->startPos( ) ); //if the position is on thumb , then start moving the thumb - if( ( d->onHandle( startPoint) && d->grooveTouchArea->sceneBoundingRect( ).contains( startPoint))||isSliderDown( ) ) { - qreal handlePos = 0; - qreal span = 0; - QRectF bounds = boundingRect( ); - QRectF handleBounds = d->handle->boundingRect( ); - bounds.adjust( 0, 0, -handleBounds.width( ), -handleBounds.height( ) ); - QPointF relativePos = mapFromScene( event->mapToGraphicsScene(panGesture->startPos( ) + panGesture->offset()) ); - // calculate handle position and span - switch ( orientation( ) ) { - case Qt::Horizontal: - handlePos = relativePos.x( ) - handleBounds.width( ) / 2; - span = bounds.width( ); - break; - case Qt::Vertical: - handlePos = relativePos.y( ) - handleBounds.height( ) / 2; - span = bounds.height( ); - break; - default: - break; - } - HbStyleOptionSlider opt; - initStyleOption( &opt ); - - int pressValue = QStyle::sliderValueFromPosition( opt.minimum, opt.maximum, - static_cast( handlePos ),static_cast( span ),opt.upsideDown ); + if ( ( d->onHandle( startPoint) && d->grooveTouchArea->sceneBoundingRect( ).contains( startPoint) )||isSliderDown( ) ) { + QPointF relativePos = mapFromScene( event->mapToGraphicsScene(panGesture->startPos( ) + panGesture->offset() ) ); + int pressValue = d->calculateSliderPosition (relativePos); setRepeatAction( SliderNoAction,static_cast( pressValue ) ); setSliderDown( true ); setSliderPosition( pressValue ); + setToolTip( QString::number( pressValue ) ); showToolTip( ); d->groovePressed = false; updatePrimitives(); d->handleMoving = true ; break; - } else if(d->grooveTouchArea->sceneBoundingRect().contains(startPoint) ){ + } else if (d->grooveTouchArea->sceneBoundingRect().contains(startPoint) ) { + QPointF relativePos = mapFromScene( event->mapToGraphicsScene(panGesture->startPos( ) + panGesture->offset() ) ); + int pressValue = d->calculateSliderPosition (relativePos); + setToolTip( QString::number( pressValue ) ); + QRectF handleRect=d->handle->boundingRect(); + QRectF tooltipRect = handleRect; + QRectF touchPointRect=handleRect; + if (orientation() == Qt::Horizontal) { + touchPointRect.moveCenter(QPointF( boundingRect().width()/2,boundingRect( ).height()/2 ) ); + touchPointRect.moveLeft(relativePos.rx() - touchPointRect.width( )/2); + } else { + touchPointRect.moveCenter(QPointF( boundingRect().width()/2,boundingRect( ).height()/2 ) ); + touchPointRect.moveTop( relativePos.ry() - touchPointRect.height()/2 ); + } + tooltipRect.setHeight ( d->tooltipBorderHeight); + tooltipRect.moveBottom( touchPointRect.top() ); + tooltipRect.moveLeft (touchPointRect.left( ) ); + d->tooltipArea->setGeometry(tooltipRect); + d->tooltipArea->setGeometry(tooltipRect); + d->tooltipArea->update(); + if ( d->displayCurrValueToolTip ) { + HbToolTip::showText( toolTip( ) , d->tooltipArea, d->toolTipAlignment ); + } + d->groovePressed = true; HbStyleOptionSlider opt; - d->groovePressed = true; initStyleOption( &opt ); HbStylePrivate::updatePrimitive( d->groove, HbStylePrivate::P_Slider_groove, &opt ); event->ignore(); + QPointF diffOffset = panGesture->offset() - panGesture->lastOffset(); + if (orientation() == Qt::Horizontal) { + if (qAbs(diffOffset.x() ) < qAbs(diffOffset.y())) { + HbAbstractSliderControl::gestureEvent(event); + + } + } else { + if (qAbs(diffOffset.y() ) < qAbs(diffOffset.x())) { + HbAbstractSliderControl::gestureEvent(event); + } + } + break; } else { setSliderDown( false ); @@ -961,15 +1022,21 @@ break; case Qt::GestureFinished: case Qt::GestureCanceled: { + QPointF startPoint = event->mapToGraphicsScene(panGesture->offset()+panGesture->startPos( ) ); setSliderDown( false ); d->groovePressed = false; updatePrimitives( ); d->handle->updatePrimitives(); d->handleMoving = false; - int pressValue = sliderPosition(); - setRepeatAction( SliderNoAction,static_cast( pressValue ) ); + if (d->grooveTouchArea->sceneBoundingRect().contains(startPoint) ) { + QPointF relativePos = mapFromScene( event->mapToGraphicsScene(panGesture->startPos( ) + panGesture->offset() ) ); + int pressValue = d->calculateSliderPosition (relativePos); + setRepeatAction( SliderNoAction,static_cast( pressValue ) ); + setSliderPosition( pressValue ); + setToolTip( QString::number( pressValue ) ); + showToolTip( ); + } event->ignore(); - HbWidgetFeedback::triggered(this, Hb::InstantReleased); HbAbstractSliderControl::gestureEvent(event); } break; @@ -1024,8 +1091,6 @@ { Q_D( HbSliderControl ); QGraphicsWidget::resizeEvent( event ); - // for Bug Fix::Ticks are not getting updated after - // element is added to slider updatePrimitives( ); repolish(); d->adjustHandle( ); @@ -1037,11 +1102,14 @@ void HbSliderControl::polish( HbStyleParameters& params ) { Q_D( HbSliderControl ); + params.addParameter("tooltip-border-height"); HbStyleOptionSlider option; initStyleOption( &option ); HbAbstractSliderControl::polish( params ); d->adjustHandle( ); updatePrimitives( ); + d->tooltipBorderHeight = params.value("tooltip-border-height").toReal(); + } /*! @@ -1162,17 +1230,6 @@ HbAbstractSliderControl::sliderChange( change ); d->adjustHandle( ); if ( change == SliderOrientationChange ) { - //Layout is not mirrored in vertical orientation with absolute ticks - if(d->orientation ==Qt::Horizontal) { - if (!d->userDefinedTooltipAlign) { - d->toolTipAlignment = ( Qt::AlignTop|Qt::AlignHCenter ); - } - } else { - if (!d->userDefinedTooltipAlign) { - // Bug in tooltip, cannot align it with top right - d->toolTipAlignment = ( Qt::AlignTop|Qt::AlignHCenter ); - } - } repolish( ); } } @@ -1333,7 +1390,9 @@ #ifdef HB_GESTURE_FW ungrabGesture(Qt::TapGesture); ungrabGesture(Qt::PanGesture); + ungrabGesture(Qt::TapAndHoldGesture); touchArea->grabGesture(Qt::TapGesture); + touchArea->grabGesture(Qt::TapAndHoldGesture); touchArea->grabGesture(Qt::PanGesture); #endif } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbslidercontrol_p_p.h --- a/src/hbwidgets/sliders/hbslidercontrol_p_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbslidercontrol_p_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -36,6 +36,7 @@ class HbToolTip; class QGraphicsItem; class HbSliderTickmarksLabel; +class HbTouchArea; class HbSliderControlPrivate : public HbAbstractSliderControlPrivate { @@ -52,6 +53,7 @@ virtual HbSliderHandle *createHandle(); virtual QGraphicsItem *createGroove(); virtual QGraphicsItem *createProgressGroove(); + int calculateSliderPosition( QPointF position ); HbSliderHandle *handle; @@ -80,7 +82,8 @@ QGraphicsItem *grooveTouchArea; bool enableProgressTrack; bool userDefinedTooltipAlign; - + HbTouchArea *tooltipArea; + qreal tooltipBorderHeight; private: // not to pollute HbSliderControl (which may become public in the future) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbsliderhandle.cpp --- a/src/hbwidgets/sliders/hbsliderhandle.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbsliderhandle.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -348,6 +348,7 @@ { if(HbTapAndHoldGesture *tapandHold= qobject_cast(event->gesture(Qt::TapAndHoldGesture))) { if(tapandHold->state() == Qt::GestureStarted) { + sliderControl->setToolTip(QString::number(sliderControl->sliderPosition())); sliderControl->showToolTip(); } } @@ -433,6 +434,7 @@ int pressValue= QStyle::sliderValueFromPosition(opt.minimum, opt.maximum, sliderPos, static_cast(span),opt.upsideDown); sliderControl->setSliderPosition(pressValue); + sliderControl->setToolTip(QString::number(pressValue)); sliderControl->showToolTip(); break; } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbslidertickmarks.cpp --- a/src/hbwidgets/sliders/hbslidertickmarks.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbslidertickmarks.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -133,7 +133,7 @@ { Q_UNUSED (event); HbWidget::resizeEvent( event ); - repolish(); + updateTicks(); } @@ -294,7 +294,7 @@ d->minorTickHeight = params.value("fixed-height-minor").toReal(); } else { HbWidget::polish(params); - updateTicks(); + //updateTicks(); } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbvolumeslider_p.cpp --- a/src/hbwidgets/sliders/hbvolumeslider_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbvolumeslider_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -34,6 +34,14 @@ #include #include #include +#ifdef HB_GESTURE_FW +#include +#endif +#ifdef HB_EFFECTS +#include "hbeffect.h" +#include "hbeffectinternal_p.h" +#define HB_SLIDER_TYPE "HB_SLIDER" +#endif /*! Example usage: @@ -134,6 +142,9 @@ if( currentValueVisible ) elements<grabGesture(Qt::TapGesture); +#endif // create element because HbSlider will not create element for NULL Icon // and volume slider Icon is set in style if ( !elementItemMap.contains(HbSlider::IncreaseElement) ) { @@ -347,6 +358,8 @@ */ void HbVolumeSlider::mousePressEvent( QGraphicsSceneMouseEvent *event ) { + +#ifndef HB_GESTURE_FW Q_D( HbVolumeSlider ); if( d->elementItemMap.contains(HbSlider::IncreaseElement) ) { if ( d->elementItemMap[HbSlider::IncreaseElement].touchItem->isUnderMouse( ) ) { @@ -394,6 +407,9 @@ } } HbSlider::mousePressEvent( event ); +#else + Q_UNUSED(event) +#endif } /*! @@ -402,12 +418,16 @@ */ void HbVolumeSlider::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) { +#ifndef HB_GESTURE_FW Q_D( HbVolumeSlider ); HbSlider::mouseReleaseEvent( event ); d->stopRepeatAction( ); setProperty("changeincrementState" ,false); setProperty("changedecrementState" ,false); setProperty("state", "normal"); +#else + Q_UNUSED(event) +#endif } /*! @@ -453,6 +473,92 @@ d->sliderControl->setFocus( ); } +/*! + \reimp + */ +void HbVolumeSlider::gestureEvent(QGestureEvent *event) +{ + Q_D(HbVolumeSlider); + //consume the event if gesture is on increment or decrement, + //if the slide ris muted and then on pressing on icrement/decrement value consider previous value as well + if (HbTapGesture *tap = qobject_cast(event->gesture(Qt::TapGesture))) { + QPointF pos = event->mapToGraphicsScene(tap->position()); + bool consumeEvent = false; + switch( tap->state( ) ) { + case Qt::GestureStarted: { + if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + consumeEvent = true; + d->pressOnIncrement = true; + HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantPressed, Hb::ModifierSliderElement ); + event->accept( ); + // if volume was mute + if( isIconChecked( ) ){ + // take to previous value and increase one step + setValue( d->previousValue+singleStep( ) ); + // start timer for repeat action + d->sliderControl->setRepeatAction( + HbAbstractSliderControl::SliderSingleStepAdd, d->sliderControl->maximum( ) ); + } else {// simply increase by one step + d->startIncrementing( ); + } + setProperty("changeincrementState" ,true); + setProperty("changedecrementState" ,false); + setProperty("state", "pressed"); + } + } + } + if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + consumeEvent = true; + d->pressOnIncrement = false; + HbWidgetFeedback::triggered( d->sliderControl, Hb::InstantPressed, Hb::ModifierSliderElement ); + event->accept( ); + if( isIconChecked( ) ){ + //set value to previous value and decrement by one step + setValue( d->previousValue-singleStep( ) ); + if( value( )==minimum( ) ){ + d->previousValue = value( ); + setIconEnabled( false ); + } + //start timer for repeat action + d->sliderControl->setRepeatAction( + HbAbstractSliderControl::SliderSingleStepSub, d->sliderControl->minimum( ) ); + } else { + d->startDecrementing( ); + } + setProperty("changeincrementState" ,false); + setProperty("changedecrementState" ,true); + setProperty("state", "pressed"); + + } + } + } + } + break; + case Qt::GestureCanceled: + case Qt::GestureFinished: + setProperty("changeincrementState" ,false); + setProperty("changedecrementState" ,false); + setProperty("state", "normal"); + consumeEvent = true; + HbSlider::gestureEvent(event); + break; + default: + break; + } + if(!consumeEvent) { + event->ignore(); + HbSlider::gestureEvent(event); + } + + + } + +} + #include "moc_hbvolumeslider_p.cpp" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbvolumeslider_p.h --- a/src/hbwidgets/sliders/hbvolumeslider_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbvolumeslider_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -48,6 +48,7 @@ bool isCurrentValueVisible()const; virtual void setToolTipVisible(bool); + virtual void gestureEvent(QGestureEvent *event); protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbzoomslider_p.cpp --- a/src/hbwidgets/sliders/hbzoomslider_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbzoomslider_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,6 +31,9 @@ #include "hbslidercontrol_p.h" #include #include +#ifdef HB_GESTURE_FW +#include +#endif /*! Example usage: @@ -123,6 +126,9 @@ << HbSlider::DecreaseElement << HbSlider::TextElement; setElements( elements ); +#ifdef HB_GESTURE_FW + q->grabGesture(Qt::TapGesture); +#endif // create element because HbSlider will not create element for NULL Icon // and zoom slider Icon is set in style @@ -249,6 +255,7 @@ */ void HbZoomSlider::mousePressEvent( QGraphicsSceneMouseEvent *event ) { +#ifndef HB_GESTURE_FW Q_D( HbZoomSlider ); if( d->elementItemMap.contains(HbSlider::IncreaseElement) ) { if ( d->elementItemMap[HbSlider::IncreaseElement].touchItem->isUnderMouse( ) ) { @@ -266,6 +273,9 @@ } HbSlider::mousePressEvent( event ); +#else + Q_UNUSED(event) +#endif } /*! @@ -274,12 +284,62 @@ */ void HbZoomSlider::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) { +#ifndef HB_GESTURE_FW Q_D( HbZoomSlider ); HbSlider::mouseReleaseEvent( event ); d->stopRepeatAction( ); setProperty("changeincrementState" ,false); setProperty("changedecrementState" ,false); setProperty("state", "normal"); +#else + Q_UNUSED (event) +#endif +} +/*! + \reimp + */ +void HbZoomSlider::gestureEvent(QGestureEvent *event) +{ + Q_D(HbZoomSlider); + //consume the event if gesture is on increment or decrement + if (HbTapGesture *tap = qobject_cast(event->gesture(Qt::TapGesture))) { + QPointF pos = event->mapToGraphicsScene(tap->position()); + switch( tap->state( ) ) { + case Qt::GestureStarted: { + if ( d->elementItemMap.contains (HbSlider::IncreaseElement ) ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem ) { + if (d->elementItemMap[HbSlider::IncreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + setProperty("changeincrementState" ,true); + setProperty("changedecrementState" ,false); + setProperty("state", "pressed"); + + } + } + } + if ( d->elementItemMap.contains (HbSlider::DecreaseElement ) ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem ) { + if (d->elementItemMap[HbSlider::DecreaseElement].touchItem->sceneBoundingRect().contains(pos)) { + setProperty("changeincrementState" ,false); + setProperty("changedecrementState" ,true); + setProperty("state", "pressed"); + } + } + } + } + break; + case Qt::GestureCanceled: + case Qt::GestureFinished: { + setProperty("changeincrementState" ,false); + setProperty("changedecrementState" ,false); + setProperty("state", "normal"); + } + default: + break; + + + } + } + HbSlider::gestureEvent(event); } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/sliders/hbzoomslider_p.h --- a/src/hbwidgets/sliders/hbzoomslider_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/sliders/hbzoomslider_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -47,6 +47,8 @@ void setDefaultZoomLevel(int value); virtual void setToolTipVisible(bool); + virtual void gestureEvent(QGestureEvent *event); + protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbcombobox.cpp --- a/src/hbwidgets/widgets/hbcombobox.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbcombobox.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1053,6 +1054,41 @@ /*! \reimp */ +void HbComboBox::polish( HbStyleParameters& params ) +{ + Q_D(HbComboBox); + params.addParameter( "max-rows-in-dropdown" ); + HbWidget::polish(params); + + //read the maximum rows in drop down for different orientation from css + if (isVisible()) { + if( mainWindow( )->orientation( ) == Qt::Horizontal ) { + if( d->mDropDownRowsInLandscape == -1 ) { + d->mDropDownRowsInLandscape = params.value( "max-rows-in-dropdown" ).toInt( ); + if( d->mDropDown && d->mDropDown->isVisible() ) { + //if drop dow is visible in one mode and then orientation is changed then + //drop down was not resized properly since positionDropDown is getting called + //before polish(). Hence forcing to position drop down again. + d->positionDropDown(); + } + } + } else if( mainWindow( )->orientation( ) == Qt::Vertical ) { + if( d->mDropDownRowsInPortrait == -1 ) { + d->mDropDownRowsInPortrait = params.value( "max-rows-in-dropdown" ).toInt( ); + if( d->mDropDown && d->mDropDown->isVisible() ) { + //if drop dow is visible in one mode and then orientation is changed then + //drop down was not resized properly since positionDropDown is getting called + //before polish(). Hence forcing to position drop down again. + d->positionDropDown(); + } + } + } + } +} + +/*! + \reimp + */ QVariant HbComboBox::itemChange( GraphicsItemChange change, const QVariant & value ) { Q_D( HbComboBox ); @@ -1083,7 +1119,6 @@ HbWidget::changeEvent( event ); } - // End of file diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbcombobox.h --- a/src/hbwidgets/widgets/hbcombobox.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbcombobox.h Fri Sep 17 08:32:10 2010 +0300 @@ -137,6 +137,7 @@ bool eventFilter( QObject *obj, QEvent *event ); QVariant itemChange ( GraphicsItemChange change, const QVariant & value ); void gestureEvent( QGestureEvent *event ); + void polish(HbStyleParameters ¶ms); private: Q_DECLARE_PRIVATE_D( d_ptr, HbComboBox ) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbcombobox_p.cpp --- a/src/hbwidgets/widgets/hbcombobox_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbcombobox_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -272,24 +272,10 @@ qreal totalHeightRequd = model->rowCount( ) * mListItemHeight; qreal maxPopupHeight = 0.0; - //read the maximum rows in drop down for different orientation from css + //calculate the maximum popup height for different orientation if( q->mainWindow( )->orientation( ) == Qt::Horizontal ) { - if( mDropDownRowsInLandscape == -1 ) { - HbStyleParameters params; - q->style()->parameters( params ); - params.addParameter( "max-rows-in-dropdown" ); - q->polish( params ); - mDropDownRowsInLandscape = params.value( "max-rows-in-dropdown" ).toInt( ); - } maxPopupHeight = mDropDownRowsInLandscape * mListItemHeight; } else if( q->mainWindow( )->orientation( ) == Qt::Vertical ) { - if( mDropDownRowsInPortrait == -1 ) { - HbStyleParameters params; - q->style()->parameters( params ); - params.addParameter( "max-rows-in-dropdown" ); - q->polish( params ); - mDropDownRowsInPortrait = params.value( "max-rows-in-dropdown" ).toInt( ); - } maxPopupHeight = mDropDownRowsInPortrait * mListItemHeight; } @@ -554,7 +540,6 @@ q->setHandlesChildEvents( false ); mLineEdit->setReadOnly( false ); mLineEdit->setCursorVisibility( Hb::TextCursorVisible ); - mLineEdit->setLongPressEnabled( ); q->repolish( ); q->connect( mLineEdit, SIGNAL( textChanged ( QString ) ), q, SLOT( _q_textChanged( QString ) ) ); @@ -564,7 +549,6 @@ q, SLOT( _q_textChanged( QString ) ) ); q->setHandlesChildEvents( true ); mLineEdit->setReadOnly( true ); - mLineEdit->setLongPressEnabled( false ); setCompletion( false ); mLineEdit->setCursorVisibility( Hb::TextCursorHidden ); if( mModel && mModel->rowCount( ) ) { diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbcombobox_p.h --- a/src/hbwidgets/widgets/hbcombobox_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbcombobox_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -142,14 +142,6 @@ ~HbCustomLineEdit() { } - void setLongPressEnabled( bool enable = true ) { - if( enable ) { - scrollArea( )->setLongPressEnabled( true ); - } else { - scrollArea( )->setLongPressEnabled( false ); - } - } - protected: void focusInEvent( QFocusEvent *event ) { HbEditorInterface editorInterface( this ); diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbcombodropdown_p.cpp --- a/src/hbwidgets/widgets/hbcombodropdown_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbcombodropdown_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -61,7 +61,6 @@ void HbComboDropDown::createList( ) { mList = new HbListView( this ); - mList->setLongPressEnabled( false ); HbComboListViewItem *protoType = new HbComboListViewItem( this ); mList->setItemPrototype( protoType ); HbStyle::setItemName( mList, "list" ); @@ -89,44 +88,6 @@ if ( isVisible( ) ) { switch( event->type( ) ) { - case QEvent::GraphicsSceneMousePress: - case QEvent::GraphicsSceneMouseDoubleClick: - { - if( !vkbOpened ) { - //if vkb is not opened and dropdown is not clicked then dismiss drop down - if( !( this->isUnderMouse( ) ) ) { - HbWidgetFeedback::triggered( this, Hb::InstantPopupClosed ); - setVisible( false ); - comboPrivate->q_ptr->setProperty("state","normal"); - backgroundPressed = true; - accepted = true; - } - } else { - //if vkb is opened then dismiss drop down only if click happened outside drop down and - //vkb area - if( comboPrivate->mEditable ) { - HbEditorInterface editorInterface( comboPrivate->q_ptr ); - HbVkbHost *host = editorInterface.vkbHost( ); - if( host ) { - //get the scene rect of vkb - QGraphicsWidget *vkbWidget = host->activeKeypad( )->asGraphicsWidget( ); - QRectF tmp = host->applicationArea( ); - QRectF vkbArea = vkbWidget->mapToScene( tmp ).boundingRect( ); - QGraphicsSceneMouseEvent *mouseEvent = - static_cast< QGraphicsSceneMouseEvent * >( event ); - if( !( this->isUnderMouse( ) ) && - !vkbArea.contains( mouseEvent->scenePos( ) ) ) { - HbWidgetFeedback::triggered( this, Hb::InstantPopupClosed ); - setVisible( false ); - comboPrivate->q_ptr->setProperty( "state", "normal" ); - backgroundPressed = true; - accepted = true; - } - } - } - } - } - break; case QEvent::Gesture: { if( !this->isUnderMouse( ) ) { @@ -135,10 +96,46 @@ //dropdown area if( QGestureEvent *gestureEvent = static_cast( event ) ) { HbTapGesture *tapGesture = qobject_cast(gestureEvent->gesture(Qt::TapGesture)); - if( !qobject_cast( - gestureEvent->gesture( Qt::PanGesture ) ) && - !(tapGesture && tapGesture->state() != Qt::GestureStarted)) { - accepted = true; + if( tapGesture && tapGesture->state() == Qt::GestureStarted ) { + if( !vkbOpened ) { + //if vkb is not opened and dropdown is not clicked then dismiss drop down + if( !( this->isUnderMouse( ) ) ) { + HbWidgetFeedback::triggered( this, Hb::InstantPopupClosed ); + setVisible( false ); + comboPrivate->q_ptr->setProperty("state","normal"); + backgroundPressed = true; + accepted = true; + } + } else { + //if vkb is opened then dismiss drop down only if click happened outside drop down and + //vkb area + if( comboPrivate->mEditable ) { + HbEditorInterface editorInterface( comboPrivate->q_ptr ); + HbVkbHost *host = editorInterface.vkbHost( ); + if( host ) { + //get the scene rect of vkb + QGraphicsWidget *vkbWidget = host->activeKeypad( )->asGraphicsWidget( ); + QRectF tmp = host->applicationArea( ); + QRectF vkbArea = vkbWidget->mapToScene( tmp ).boundingRect( ); + //QGraphicsSceneMouseEvent *mouseEvent = + // static_cast< QGraphicsSceneMouseEvent * >( event ); + if( !( this->isUnderMouse( ) ) && + !vkbArea.contains( /*mouseEvent->scenePos( )*/ tapGesture->sceneStartPos() ) ) { + HbWidgetFeedback::triggered( this, Hb::InstantPopupClosed ); + setVisible( false ); + comboPrivate->q_ptr->setProperty( "state", "normal" ); + backgroundPressed = true; + accepted = true; + } + } + } + } + } else { + if( !qobject_cast( + gestureEvent->gesture( Qt::PanGesture ) ) && + !(tapGesture && tapGesture->state() != Qt::GestureStarted)) { + accepted = true; + } } } } diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbdatetimepicker.cpp --- a/src/hbwidgets/widgets/hbdatetimepicker.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbdatetimepicker.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -26,6 +26,9 @@ #include "hbdatetimepicker.h" #include "hbdatetimepicker_p.h" #include "hbstyleoption_p.h" +#include "hbframeitem.h" +#include "hbstyleprimitivedata.h" +#include /*! @beta @@ -254,14 +257,20 @@ bool HbDateTimePicker::event(QEvent *e) -{ +{ + Q_D(HbDateTimePicker); + bool result = HbWidget::event(e); - if (e->type()==QEvent::LayoutRequest) { + if(e->type() == d->mFormatEventType){ + d->processFormatEvent(); + } + else if (e->type()==QEvent::LayoutRequest) { updatePrimitives(); } return result; } + /*! Destructor. */ @@ -331,10 +340,8 @@ if(d->isFormatValid(format)){ d->mFormat = format; - d->processDisplaySections(); - d->rearrangeTumbleViews(); - d->emitDateTimeChange(); - }//End If format is valid + d->postFormatEvent(); + } } /*! @@ -805,22 +812,56 @@ updatePrimitives(); } +void HbDateTimePicker::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidget::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + if(itemName == QLatin1String("background")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_bg"); + frameItem->frameType = HbFrameDrawer::NinePieces; + (const_cast (primitive))->setZValue(-5); + } + if(itemName == QLatin1String("frame")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_overlay"); + frameItem->frameType = HbFrameDrawer::NinePieces; + (const_cast (primitive))->setZValue(1); + + } + if(itemName == QLatin1String("highlight")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_highlight_pri"); + frameItem->frameType = HbFrameDrawer::ThreePiecesHorizontal; + (const_cast (primitive))->setZValue(-1); + + } + +} void HbDateTimePicker::updatePrimitives() { Q_D(HbDateTimePicker); - HbStyleOption option; - initStyleOption(&option); - if(d->mBackground) { - HbStylePrivate::updatePrimitive(d->mBackground,HbStylePrivate::P_DateTimePicker_background,&option); + HbWidget::updatePrimitives(); + + if(d->mBackground){ + HbStyleFramePrimitiveData data; + initPrimitiveData(&data,d->mBackground); + style()->updatePrimitive(d->mBackground,&data,this); } + if(d->mFrame) { - HbStylePrivate::updatePrimitive(d->mFrame,HbStylePrivate::P_DateTimePicker_frame,&option); + HbStyleFramePrimitiveData data; + initPrimitiveData(&data,d->mFrame); + style()->updatePrimitive(d->mFrame,&data,this); } if(d->mHighlight) { - HbStylePrivate::updatePrimitive(d->mHighlight,HbStylePrivate::P_TumbleView_highlight,&option); + HbStyleFramePrimitiveData data; + initPrimitiveData (&data,d->mHighlight); + style()->updatePrimitive(d->mHighlight,&data,this); } + } #include "moc_hbdatetimepicker.cpp" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbdatetimepicker.h --- a/src/hbwidgets/widgets/hbdatetimepicker.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbdatetimepicker.h Fri Sep 17 08:32:10 2010 +0300 @@ -111,6 +111,7 @@ protected: HbDateTimePicker(HbDateTimePickerPrivate &dd, QGraphicsItem *parent = 0); bool event(QEvent *e); + void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive); private: Q_DISABLE_COPY(HbDateTimePicker) diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbdatetimepicker_p.cpp --- a/src/hbwidgets/widgets/hbdatetimepicker_p.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbdatetimepicker_p.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -186,7 +186,7 @@ newDisplay |= AmPmSection; if (i + 1 < format.size() && format.at(i+1) == (cap ? QLatin1Char('P') : QLatin1Char('p'))) { - ++i; + ++i; } index = i + 1; } @@ -196,7 +196,7 @@ const int repeat = countRepeat(format, i, 4); if (repeat >= 2) { const SectionNode sn = { repeat == 4 ? YearSection : YearSection2Digits, - i - add, repeat == 4 ? 4 : 2 }; + i - add, repeat == 4 ? 4 : 2 }; newSectionNodes.append(sn); appendSeparator(&newSeparators, format, index, i - index, lastQuote); i += sn.count - 1; @@ -278,7 +278,7 @@ return mDisplayFormat.size() - sectionPos(sectionIndex) - mSeparators.last().size(); } else { return sectionPos(sectionIndex + 1) - sectionPos(sectionIndex) - - mSeparators.at(sectionIndex + 1).size(); + - mSeparators.at(sectionIndex + 1).size(); } } @@ -304,7 +304,7 @@ HbDateTimePickerPrivate::HbDateTimePickerPrivate() -:HbWidgetPrivate() + :HbWidgetPrivate() ,mDayPicker(0) ,mMonthPicker(0) ,mYearPicker(0) @@ -329,6 +329,7 @@ ,mDateTimeMode(QVariant::Date) //default is date mode ,mLayout(0) //,mFormat() //set the format again in init() + ,mFormatEventType(-1) //,mDisplaySecions() //is blank by default ,mParser() ,mYearFormat() @@ -339,10 +340,10 @@ ,mSecondFormat() ,mIs24HourFormat(false) ,mIsTwoDigitYearFormat(false) + ,mContent(0) + ,mIntervals() ,mBackground(0) ,mFrame(0) - ,mContent(0) - ,mIntervals() ,mHighlight(0) { mMinimumDate = HBDATETIMEPICKER_DATETIME_MIN; @@ -372,21 +373,16 @@ mDateTimeMode = dateTimeMode; mIntervals[QDateTimeEdit::MinuteSection]=1; - + mFormatEventType = QEvent::registerEventType(QEvent::User+1); //read the format from locale QString newFormat = localeDateTimeFormat(dateTimeMode); - - //parse the format and set the sections in order - if(isFormatValid(newFormat)) { - mFormat=newFormat; - processDisplaySections(); + if(isFormatValid(newFormat)){ + mFormat = newFormat; + postFormatEvent(); } - + //create primitives createPrimitives(); - - //recreate and rearrange depending on the format - rearrangeTumbleViews(); } /*! @@ -419,50 +415,50 @@ */ void HbDateTimePickerPrivate::processDisplaySections() { - for(int i=0;icount()) { - mLayout->removeAt(0); + mLayout->removeAt(0); } QPointer lastAdded; for(int i=0;i(mAmPmPicker->model()); - } - mLayout->addItem(mAmPmPicker); - lastAdded = mAmPmPicker; - break; + case HbDateTimeParser::AmPmSection: + if(!mAmPmPicker) { + mAmPmPicker = new VIEWER(q); + mAmPmModel = static_cast(mAmPmPicker->model()); + } + mLayout->addItem(mAmPmPicker); + lastAdded = mAmPmPicker; + break; case HbDateTimeParser::DaySection: case HbDateTimeParser::DayOfWeekSection: - if(!mDayPicker) { - mDayPicker = new VIEWER(q); - mDayModel = static_cast(mDayPicker->model()); - mDayPicker->setLoopingEnabled(true); - } - mLayout->addItem(mDayPicker); - lastAdded = mDayPicker; - break; + if(!mDayPicker) { + mDayPicker = new VIEWER(q); + mDayModel = static_cast(mDayPicker->model()); + mDayPicker->setLoopingEnabled(true); + } + mLayout->addItem(mDayPicker); + lastAdded = mDayPicker; + break; case HbDateTimeParser::MonthSection: - if(!mMonthPicker) { - mMonthPicker = new VIEWER(q); - mMonthModel = static_cast(mMonthPicker->model()); - mMonthPicker->setLoopingEnabled(true); - } - mLayout->addItem(mMonthPicker); - lastAdded = mMonthPicker; - break; + if(!mMonthPicker) { + mMonthPicker = new VIEWER(q); + mMonthModel = static_cast(mMonthPicker->model()); + mMonthPicker->setLoopingEnabled(true); + } + mLayout->addItem(mMonthPicker); + lastAdded = mMonthPicker; + break; case HbDateTimeParser::YearSection: case HbDateTimeParser::YearSection2Digits: - if(!mYearPicker) { - mYearPicker = new VIEWER(q); - mYearModel = static_cast(mYearPicker->model()); - mYearPicker->setLoopingEnabled(true); - } - mLayout->addItem(mYearPicker); - lastAdded = mYearPicker; - break; + if(!mYearPicker) { + mYearPicker = new VIEWER(q); + mYearModel = static_cast(mYearPicker->model()); + mYearPicker->setLoopingEnabled(true); + } + mLayout->addItem(mYearPicker); + lastAdded = mYearPicker; + break; case HbDateTimeParser::SecondSection: - if(!mSecondPicker) { - mSecondPicker = new VIEWER(q); - mSecondModel = static_cast(mSecondPicker->model()); - mSecondPicker->setLoopingEnabled(true); - } - mLayout->addItem(mSecondPicker); - lastAdded = mSecondPicker; - break; + if(!mSecondPicker) { + mSecondPicker = new VIEWER(q); + mSecondModel = static_cast(mSecondPicker->model()); + mSecondPicker->setLoopingEnabled(true); + } + mLayout->addItem(mSecondPicker); + lastAdded = mSecondPicker; + break; case HbDateTimeParser::MinuteSection: - if(!mMinutePicker) { - mMinutePicker = new VIEWER(q); - mMinuteModel = static_cast(mMinutePicker->model()); - mMinutePicker->setLoopingEnabled(true); - } - mLayout->addItem(mMinutePicker); - lastAdded = mMinutePicker; - break; + if(!mMinutePicker) { + mMinutePicker = new VIEWER(q); + mMinuteModel = static_cast(mMinutePicker->model()); + mMinutePicker->setLoopingEnabled(true); + } + mLayout->addItem(mMinutePicker); + lastAdded = mMinutePicker; + break; case HbDateTimeParser::Hour12Section: case HbDateTimeParser::Hour24Section: - if(!mHourPicker) { - mHourPicker = new VIEWER(q); - mHourModel = static_cast(mHourPicker->model()); - mHourPicker->setLoopingEnabled(true); - } - mLayout->addItem(mHourPicker); - lastAdded = mHourPicker; - break; + if(!mHourPicker) { + mHourPicker = new VIEWER(q); + mHourModel = static_cast(mHourPicker->model()); + mHourPicker->setLoopingEnabled(true); + } + mLayout->addItem(mHourPicker); + lastAdded = mHourPicker; + break; default: - break; + break; } if(lastAdded){ @@ -773,7 +769,7 @@ void HbDateTimePickerPrivate::setDateTimeRange(const QDateTime &startdt, - const QDateTime &enddt) + const QDateTime &enddt) { Q_Q(HbDateTimePicker); QDateTime start(startdt); @@ -892,7 +888,7 @@ index = newDateTime.time().minute()-mMinuteOffset; } #ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "setMinuteRange:selecting= " << index; + qDebug() << "setMinuteRange:selecting= " << index; #endif mMinutePicker->setSelected(index); } @@ -952,8 +948,8 @@ resizeModel(mYearModel, mYearOffset, - mYearOffset+mYearModel->rowCount()-1, start, - end, &HbDateTimePickerPrivate::localeYear); + mYearOffset+mYearModel->rowCount()-1, start, + end, &HbDateTimePickerPrivate::localeYear); mYearOffset = start; @@ -979,9 +975,9 @@ newIndex = end-start; } resizeModel(mMonthModel, - mMonthOffset,mMonthOffset+mMonthModel->rowCount()-1, - start,end, - &HbDateTimePickerPrivate::localeMonth); + mMonthOffset,mMonthOffset+mMonthModel->rowCount()-1, + start,end, + &HbDateTimePickerPrivate::localeMonth); mMonthOffset = start; mMonthPicker->setSelected(newIndex); @@ -1016,9 +1012,9 @@ } resizeModel(mDayModel, - mDayOffset,mDayOffset+mDayModel->rowCount()-1, - start,end, - &HbDateTimePickerPrivate::localeDay); + mDayOffset,mDayOffset+mDayModel->rowCount()-1, + start,end, + &HbDateTimePickerPrivate::localeDay); mDayOffset = start; mDayPicker->setSelected(newIndex); @@ -1054,9 +1050,9 @@ } resizeModel(mHourModel, - mHourOffset,mHourOffset+mHourModel->rowCount()-1, - start,end, - &HbDateTimePickerPrivate::localeHour); + mHourOffset,mHourOffset+mHourModel->rowCount()-1, + start,end, + &HbDateTimePickerPrivate::localeHour); mHourOffset = start; mHourPicker->setSelected(newIndex); @@ -1091,17 +1087,17 @@ } resizeModel(mMinuteModel, - mMinuteOffset,mMinuteModel->index(mMinuteModel->rowCount() - 1).data().toInt(), - start,end, - &HbDateTimePickerPrivate::localeMinute, - mIntervals[QDateTimeEdit::MinuteSection]); + mMinuteOffset,mMinuteModel->index(mMinuteModel->rowCount() - 1).data().toInt(), + start,end, + &HbDateTimePickerPrivate::localeMinute, + mIntervals[QDateTimeEdit::MinuteSection]); mMinuteOffset = start; //Select the nearest value when the range is set. int index = 0; for(int i=start;iinsertRows(rowCount,(newEnd-oldEnd)/interval); - for(int i=0;i<((newEnd-oldEnd)/interval);++i) { - QModelIndex index=model->index(i+rowCount,0); - if(index.isValid()) { - model->setData(index,(this->*localeFunc)(((i+1)*interval)+oldEnd)); -#ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:samesetData(" << ((i+1)*interval)+oldEnd << "," << (this->*localeFunc)((i+1)*interval+oldEnd) << ")"; -#endif - } - } - } - if(oldEnd>newEnd) { - //if the start offset is preset more items can fit at end - int stay=((newEnd-newStart)/interval)+1; - int count=model->rowCount()-stay; -#ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:removing(" <rowCount()-count << "," << count << ")" - << " data=" << model->index((model->rowCount()-count),0).data().toString(); + qDebug() << "resizeModel: oldStart=" << oldStart + << " oldEnd=" << oldEnd << " newStart=" + << newStart << " newEnd=" << newEnd + << " interval=" << interval; #endif - model->removeRows((model->rowCount()-count),count); - } - return;//optimizing inserts when interval is set - } else { - if(b1 && b2) { - model->removeRows(0,model->rowCount()); - oldStart = oldEnd = 0; - } - } - - if((model->rowCount() == 0) && (newEnd-newStart>=0)) { + bool b1=false,b2=false; + int oldinterval=model->rowCount()>1 ? (model->index(1,0).data().toInt(&b1)-model->index(0,0).data().toInt(&b2)):0; #ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:default addition inserting(0," << (newEnd-newStart+1)/interval << ")"; -#endif - - model->insertRows(0,((newEnd-newStart)/interval)+1); - for(int i=0;i<=((newEnd-newStart)/interval);++i) { - QString text=(this->*localeFunc)((i*interval)+newStart); -#ifdef HB_TEXT_MEASUREMENT_UTILITY - if ( localeFunc == &HbDateTimePickerPrivate::localeMonth && - HbFeatureManager::instance()->featureStatus( HbFeatureManager::TextMeasurement ) ) { - text.append(QChar(LOC_TEST_START)); - text.append("qtl_datetimepicker_popup_month_sec"); - text.append(QChar(LOC_TEST_END)); - } + qDebug() << "resizeModel:sameoldInterval=" << oldinterval; #endif - QModelIndex index=model->index(i,0); - if(index.isValid()) { - model->setData(index,text); -#ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:setData(" << i << "," << text << ")"; -#endif - } - } - return; - } - - if(newStartinsertRows(0,(oldStart-newStart)/interval); - for(int i=0;i<((oldStart-newStart)/interval);++i) { - QModelIndex index=model->index(i,0); - if(index.isValid()) { - model->setData(index,(this->*localeFunc)((i*interval)+newStart)); -#ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:setData(" << i << "," << (this->*localeFunc)((i*interval)+newStart) << ")"; -#endif - } - } - } - + if(b1 && b2 && (oldinterval == interval) && (newStart == oldStart)) { if(newEnd>oldEnd) { int rowCount=model->rowCount(); #ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:inserting(" << rowCount << "," <<(newEnd-oldEnd)/interval << ")"; + qDebug() << "resizeModel:sameinserting(" << rowCount << "," <<(newEnd-oldEnd)/interval << ")"; #endif model->insertRows(rowCount,(newEnd-oldEnd)/interval); for(int i=0;i<((newEnd-oldEnd)/interval);++i) { @@ -1346,51 +1265,125 @@ if(index.isValid()) { model->setData(index,(this->*localeFunc)(((i+1)*interval)+oldEnd)); #ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:setData(" << i << "," << (this->*localeFunc)((i+1)*interval+oldEnd) << ")"; + qDebug() << "resizeModel:samesetData(" << ((i+1)*interval)+oldEnd << "," << (this->*localeFunc)((i+1)*interval+oldEnd) << ")"; #endif } } } - if(newStart>oldStart) { + if(oldEnd>newEnd) { + //if the start offset is preset more items can fit at end + int stay=((newEnd-newStart)/interval)+1; + int count=model->rowCount()-stay; +#ifdef HBDATETIMEPICKER_DEBUG + qDebug() << "resizeModel:removing(" <rowCount()-count << "," << count << ")" + << " data=" << model->index((model->rowCount()-count),0).data().toString(); +#endif + model->removeRows((model->rowCount()-count),count); + } + return;//optimizing inserts when interval is set + } else { + if(b1 && b2) { + model->removeRows(0,model->rowCount()); + oldStart = oldEnd = 0; + } + } + + if((model->rowCount() == 0) && (newEnd-newStart>=0)) { #ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:removing(0," << (newStart-oldStart)/interval << ")" - << " data=" << model->index((newStart-oldStart)/interval,0).data().toString(); + qDebug() << "resizeModel:default addition inserting(0," << (newEnd-newStart+1)/interval << ")"; #endif - model->removeRows(0,(newStart-oldStart)/interval); + + model->insertRows(0,((newEnd-newStart)/interval)+1); + for(int i=0;i<=((newEnd-newStart)/interval);++i) { + QString text=(this->*localeFunc)((i*interval)+newStart); +#ifdef HB_TEXT_MEASUREMENT_UTILITY + if ( localeFunc == &HbDateTimePickerPrivate::localeMonth && + HbFeatureManager::instance()->featureStatus( HbFeatureManager::TextMeasurement ) ) { + text.append(QChar(LOC_TEST_START)); + text.append("qtl_datetimepicker_popup_month_sec"); + text.append(QChar(LOC_TEST_END)); + } +#endif + QModelIndex index=model->index(i,0); + if(index.isValid()) { + model->setData(index,text); +#ifdef HBDATETIMEPICKER_DEBUG + qDebug() << "resizeModel:setData(" << i << "," << text << ")"; +#endif + } } + return; + } - if(oldEnd>newEnd) { -//#ifdef HBDATETIMEPICKER_DEBUG -// qDebug() << "resizeModel:removing(" <rowCount()-((oldEnd-newEnd)/interval)<<"," << (oldEnd-newEnd)/interval << ")"; -//#endif -// model->removeRows((model->rowCount()-((oldEnd-newEnd)/interval)),(oldEnd-newEnd)/interval); - //if the start offset is preset more items can fit at end - int stay=((newEnd-newStart)/interval)+1; - int count=model->rowCount()-stay; + if(newStartinsertRows(0,(oldStart-newStart)/interval); + for(int i=0;i<((oldStart-newStart)/interval);++i) { + QModelIndex index=model->index(i,0); + if(index.isValid()) { + model->setData(index,(this->*localeFunc)((i*interval)+newStart)); +#ifdef HBDATETIMEPICKER_DEBUG + qDebug() << "resizeModel:setData(" << i << "," << (this->*localeFunc)((i*interval)+newStart) << ")"; +#endif + } + } + } + + if(newEnd>oldEnd) { + int rowCount=model->rowCount(); +#ifdef HBDATETIMEPICKER_DEBUG + qDebug() << "resizeModel:inserting(" << rowCount << "," <<(newEnd-oldEnd)/interval << ")"; +#endif + model->insertRows(rowCount,(newEnd-oldEnd)/interval); + for(int i=0;i<((newEnd-oldEnd)/interval);++i) { + QModelIndex index=model->index(i+rowCount,0); + if(index.isValid()) { + model->setData(index,(this->*localeFunc)(((i+1)*interval)+oldEnd)); #ifdef HBDATETIMEPICKER_DEBUG - qDebug() << "resizeModel:removing(" <rowCount()-count << "," << count << ")" - << " data=" << model->index((model->rowCount()-count),0).data().toString(); + qDebug() << "resizeModel:setData(" << i << "," << (this->*localeFunc)((i+1)*interval+oldEnd) << ")"; +#endif + } + } + } + if(newStart>oldStart) { +#ifdef HBDATETIMEPICKER_DEBUG + qDebug() << "resizeModel:removing(0," << (newStart-oldStart)/interval << ")" + << " data=" << model->index((newStart-oldStart)/interval,0).data().toString(); #endif - model->removeRows((model->rowCount()-count),count); - } + model->removeRows(0,(newStart-oldStart)/interval); + } + + if(oldEnd>newEnd) { + //#ifdef HBDATETIMEPICKER_DEBUG + // qDebug() << "resizeModel:removing(" <rowCount()-((oldEnd-newEnd)/interval)<<"," << (oldEnd-newEnd)/interval << ")"; + //#endif + // model->removeRows((model->rowCount()-((oldEnd-newEnd)/interval)),(oldEnd-newEnd)/interval); + //if the start offset is preset more items can fit at end + int stay=((newEnd-newStart)/interval)+1; + int count=model->rowCount()-stay; +#ifdef HBDATETIMEPICKER_DEBUG + qDebug() << "resizeModel:removing(" <rowCount()-count << "," << count << ")" + << " data=" << model->index((model->rowCount()-count),0).data().toString(); +#endif + model->removeRows((model->rowCount()-count),count); + } } void HbDateTimePickerPrivate::createPrimitives() -{ +{ Q_Q(HbDateTimePicker); - if(!mBackground) { - mBackground = HbStylePrivate::createPrimitive(HbStylePrivate::P_DateTimePicker_background,q); - HbStyle::setItemName(mBackground,"background"); + if (!mBackground) { + mBackground = q->style()->createPrimitive(HbStyle::PT_FrameItem,"background",q); } if(!mFrame) { - mFrame = HbStylePrivate::createPrimitive(HbStylePrivate::P_DateTimePicker_frame,q); - HbStyle::setItemName(mFrame,"frame"); + mFrame = q->style()->createPrimitive(HbStyle::PT_FrameItem,"frame",q); } - if(!mHighlight){ - mHighlight = HbStylePrivate::createPrimitive(HbStylePrivate::P_TumbleView_highlight,q); - HbStyle::setItemName(mHighlight,"highlight"); + if(!mHighlight) { + mHighlight = q->style()->createPrimitive(HbStyle::PT_FrameItem,"highlight",q); } } @@ -1472,7 +1465,7 @@ //set if dayrange changed if((start != mDayOffset) - ||(end !=mDayOffset+mDayModel->rowCount()-1)) { + ||(end !=mDayOffset+mDayModel->rowCount()-1)) { setDayRange(start,end); } } @@ -1529,7 +1522,7 @@ //set if range changed if((start != mMonthOffset) - || (end != mMonthModel->rowCount()-1)) { + || (end != mMonthModel->rowCount()-1)) { setMonthRange(start,end); } @@ -1552,7 +1545,7 @@ //set if dayrange changed if((start != mDayOffset) - ||(end !=mDayOffset+mDayModel->rowCount()-1)) { + ||(end !=mDayOffset+mDayModel->rowCount()-1)) { setDayRange(start,end); } } @@ -1600,7 +1593,7 @@ //set if range changed if((start != mMinuteOffset) - || (end != start+mMinuteModel->rowCount()-1)) { + || (end != start+mMinuteModel->rowCount()-1)) { setMinuteRange(start,end); } @@ -1623,7 +1616,7 @@ //set if seconds range changed if((start != mSecondOffset) - ||(end !=mSecondOffset+mSecondModel->rowCount()-1)) { + ||(end !=mSecondOffset+mSecondModel->rowCount()-1)) { setSecondRange(start,end); } } @@ -1683,7 +1676,7 @@ //set if seconds range changed if((start != mSecondOffset) - ||(end !=mSecondOffset+mSecondModel->rowCount()-1)) { + ||(end !=mSecondOffset+mSecondModel->rowCount()-1)) { setSecondRange(start,end); } } @@ -1749,3 +1742,20 @@ } } } +void HbDateTimePickerPrivate::processFormatEvent() +{ + QDateTime tempDate=mDateTime; + processDisplaySections(); + //recreate and rearrange depending on the format + rearrangeTumbleViews(); + setDateTime(tempDate); + emitDateTimeChange(); +} +void HbDateTimePickerPrivate::postFormatEvent() +{ + Q_Q(HbDateTimePicker); + + QCoreApplication::removePostedEvents(q,QEvent::Type(mFormatEventType)); + + QCoreApplication::postEvent(q,new QEvent(QEvent::Type(mFormatEventType))); +} diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbdatetimepicker_p.h --- a/src/hbwidgets/widgets/hbdatetimepicker_p.h Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbdatetimepicker_p.h Fri Sep 17 08:32:10 2010 +0300 @@ -101,6 +101,7 @@ const SectionNode §ionNode(int index) const; QString mDisplayFormat; + Sections mDisplaySections; QVector mSectionNodes; QStringList mSeparators; @@ -132,6 +133,8 @@ void setDateTime(const QDateTime &newDateTime); void setMinimumDateTime(const QDateTime &newMinDateTime); void setMaximumDateTime(const QDateTime &newMaxDateTime); + void postFormatEvent(); + void processFormatEvent(); //helpers void setYearRange(int start,int end); @@ -214,6 +217,7 @@ QGraphicsLinearLayout *mLayout; QString mFormat; + int mFormatEventType; HbDateTimeParser mParser; QList mDisplaySections; @@ -226,14 +230,13 @@ bool mIs24HourFormat; bool mIsTwoDigitYearFormat; - HbExtendedLocale mLocale; - - //graphics items/style items - QGraphicsItem *mBackground; - QGraphicsItem *mFrame; + HbExtendedLocale mLocale; HbWidget *mContent; QHash mIntervals; - QGraphicsItem *mHighlight; + //graphics items/style items + QGraphicsObject *mBackground; + QGraphicsObject *mFrame; + QGraphicsObject *mHighlight; }; #endif //HBDATETIMEPICKER_P_H diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbgroupbox.cpp --- a/src/hbwidgets/widgets/hbgroupbox.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbgroupbox.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -100,8 +100,10 @@ // set dynamic property based on type q->setProperty("groupBoxType",(int)type); - if ( mGroupBoxType == type ) + if ( mGroupBoxType == type ) { + q->updatePrimitives(); return; + } mGroupBoxType = type; @@ -303,6 +305,7 @@ if( d->mHeadingWidget ){ delete d->mHeadingWidget; d->mHeadingWidget = 0; + HbStyle::setItemName( d->mHeadingWidget, QString()); if( d->mContentWidget ) { d->setGroupBoxType( GroupBoxRichLabel ); }else{ @@ -310,7 +313,7 @@ } } } - repolish(); + //repolish(); } /*! @@ -524,11 +527,13 @@ void HbGroupBox::setContentWidget( HbWidget *widget ) { Q_D( HbGroupBox ); - - if(!d->mContentWidget) - d->createContentWidget(); + bool doPolish = false; if(widget){ + // create the mContentWidget if its not there. + if(!d->mContentWidget) + d->createContentWidget(); + doPolish = widget != d->mContentWidget->mContent; d->mContentWidget->setContentWidget(widget); if(d->mHeadingWidget){ d->setGroupBoxType(GroupBoxCollapsingContainer); @@ -539,15 +544,21 @@ d->mContentWidget->updatePrimitives(); }else{ - delete d->mContentWidget; - d->mContentWidget = 0; - if(d->mHeadingWidget){ - d->setGroupBoxType(GroupBoxSimpleLabel); - }else{ - d->setGroupBoxType(GroupBoxTypeUnknown); + // delete mContentWidget if widget is null. + if( d->mContentWidget ){ + delete d->mContentWidget; + d->mContentWidget = 0; + HbStyle::setItemName( d->mContentWidget, QString()); + if(d->mHeadingWidget){ + d->setGroupBoxType(GroupBoxSimpleLabel); + }else{ + d->setGroupBoxType(GroupBoxTypeUnknown); + } } } - repolish(); + if(doPolish){ + repolish(); + } } /*! diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hblabel.cpp --- a/src/hbwidgets/widgets/hblabel.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hblabel.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -38,6 +38,9 @@ #include "hbwidgetbase.h" #include "hblabel.h" #include "hbstyle_p.h" +#include "hbstyletextprimitivedata.h" +#include "hbstylerichtextprimitivedata.h" +#include "hbstyleiconprimitivedata.h" /*! @alpha @@ -90,46 +93,41 @@ Q_DECLARE_PUBLIC(HbLabel) public: - HbLabelPrivate (); - ~HbLabelPrivate (); + HbLabelPrivate(); + ~HbLabelPrivate(); void clearAll(); - void setText(const QString &text, HbStylePrivate::Primitive primitiveId); + void setText(const QString &text, HbStyle::PrimitiveType primitiveId); void setIcon(const HbIcon &icon); void updatePrimitives (); void createPrimitives (); //shared between icon and text - Qt::Alignment mAlignment; + HbStyleValue mAlignment; // text section - QString mText; - Qt::TextElideMode mElideMode; - Hb::TextWrapping mTextWrapping; - QColor mColor; - int mMaxLines; + HbStyleValue mText; + HbStyleValue mElideMode; + HbStyleValue mTextWrapping; + HbStyleValue mColor; + HbStyleValue mMaxLines; // icon section - HbIcon mIcon; - Qt::AspectRatioMode mAspectRatioMode; + HbStyleValue mIcon; + HbStyleValue mAspectRatioMode; // primitive handling - QGraphicsItem *mPrimitiveItem; - HbStylePrivate::Primitive mActivePrimitive; + QGraphicsObject *mPrimitiveItem; + + HbStyle::PrimitiveType mActivePrimitive; }; HbLabelPrivate::HbLabelPrivate() : HbWidgetPrivate(), - mAlignment(Qt::AlignLeft | Qt::AlignVCenter), - mText(QString()), - mElideMode(Qt::ElideRight), - mTextWrapping(Hb::TextNoWrap), - mMaxLines(0), - mAspectRatioMode(Qt::KeepAspectRatio), mPrimitiveItem(0), - mActivePrimitive(HbStylePrivate::P_None) + mActivePrimitive(HbStyle::PT_None) { } @@ -138,14 +136,14 @@ if (mPrimitiveItem) { delete mPrimitiveItem; mPrimitiveItem = 0; - mActivePrimitive = HbStylePrivate::P_None; + mActivePrimitive = HbStyle::PT_None; } mText.clear(); mIcon.clear(); } -void HbLabelPrivate::setText(const QString &text, HbStylePrivate::Primitive primitiveId) +void HbLabelPrivate::setText(const QString &text, HbStyle::PrimitiveType primitiveId) { Q_Q(HbLabel); @@ -158,7 +156,7 @@ clearAll(); } - if (mText != text || mText.isNull()) { + if (mText!=text) { mText = text; if (mActivePrimitive != primitiveId) { mActivePrimitive = primitiveId; @@ -178,15 +176,15 @@ return; } - if (mActivePrimitive != HbStylePrivate::P_Label_icon) { + if (mActivePrimitive != HbStyle::PT_IconItem) { clearAll(); } if (mIcon != icon) { mIcon = icon; - if (mActivePrimitive != HbStylePrivate::P_Label_icon) { - mActivePrimitive = HbStylePrivate::P_Label_icon; + if (mActivePrimitive != HbStyle::PT_IconItem) { + mActivePrimitive = HbStyle::PT_IconItem; createPrimitives(); q->repolish(); // reconecting new primitive to HbAnchorLayout so it is really needed! } @@ -204,8 +202,21 @@ Q_ASSERT(mPrimitiveItem==0); - if (mActivePrimitive != HbStylePrivate::P_None) { - mPrimitiveItem = HbStylePrivate::createPrimitive(mActivePrimitive, q); + switch (mActivePrimitive) { + case HbStyle::PT_None: + break; + + case HbStyle::PT_IconItem: + mPrimitiveItem = q->style()->createPrimitive(mActivePrimitive, QString("icon"),q); + break; + + case HbStyle::PT_TextItem: // no break + case HbStyle::PT_RichTextItem: + mPrimitiveItem = q->style()->createPrimitive(mActivePrimitive, QString("text"),q); + break; + + default: + Q_ASSERT(0); } } @@ -213,14 +224,68 @@ { Q_Q(HbLabel); - if (mActivePrimitive != HbStylePrivate::P_None) { - Q_ASSERT(mActivePrimitive == HbStylePrivate::P_Label_icon - || mActivePrimitive == HbStylePrivate::P_Label_richtext - || mActivePrimitive == HbStylePrivate::P_Label_text); + if (mActivePrimitive != HbStyle::PT_None) { + Q_ASSERT(mActivePrimitive == HbStyle::PT_IconItem + || mActivePrimitive == HbStyle::PT_RichTextItem + || mActivePrimitive == HbStyle::PT_TextItem); + + switch (mActivePrimitive) { + case HbStyle::PT_IconItem: { + HbStyleIconPrimitiveData data; + // set common data: + data.alignment = mAlignment; + + // set icon data: + data.aspectRatioMode = mAspectRatioMode; + data.icon = mIcon; + + q->style()->updatePrimitive(mPrimitiveItem, + &data); + } + break; + case HbStyle::PT_TextItem: { + HbStyleTextPrimitiveData data; + + // set common data: + data.alignment = mAlignment; + + // set text common data: + data.text = mText; + data.textColor = mColor; + data.textWrapping = mTextWrapping; - HbStyleOptionLabel option; - q->initStyleOption(&option); - HbStylePrivate::updatePrimitive(mPrimitiveItem, mActivePrimitive, &option); + // plain text specyfic: + data.elideMode = mElideMode; + data.maximumLines = mMaxLines; + + q->style()->updatePrimitive(mPrimitiveItem, + &data); + } + break; + + case HbStyle::PT_RichTextItem: { + HbStyleRichTextPrimitiveData data; + + // set common data: + data.alignment = mAlignment; + + // set text common data: + data.text = mText; + data.defaultColor = mColor; + data.textWrappingMode = mTextWrapping; + + q->style()->updatePrimitive(mPrimitiveItem, + &data); + } + break; + + case 0: { + } + break; + + default: + Q_ASSERT(0); + } } } @@ -312,7 +377,7 @@ Q_D(HbLabel); if (elideMode != d->mElideMode) { d->mElideMode = elideMode; - if (!d->mText.isNull()) { + if (d->mText.isSet()) { updatePrimitives(); } } @@ -327,7 +392,11 @@ Qt::TextElideMode HbLabel::elideMode() const { Q_D(const HbLabel); - return d->mElideMode; + if (d->mElideMode.isSet()) { + return d->mElideMode; + } else { + return Qt::ElideRight; + } } /*! @@ -341,7 +410,7 @@ Q_D(HbLabel); if (d->mTextWrapping != mode) { d->mTextWrapping = mode; - if (!d->mText.isNull()) { + if (d->mText.isSet()) { updatePrimitives(); } } @@ -349,14 +418,19 @@ /*! \return the label's current text wrapping mode. - Default value is NoWrap. + Default value is Hb::TextNoWrap. \sa setTextWrapping() */ Hb::TextWrapping HbLabel::textWrapping() const { Q_D(const HbLabel); - return d->mTextWrapping; + + if (d->mTextWrapping.isSet()) { + return d->mTextWrapping; + } else { + return Hb::TextNoWrap; + } } /*! @@ -381,7 +455,12 @@ HbIcon HbLabel::icon() const { Q_D(const HbLabel); - return d->mIcon; + + if (d->mIcon.isSet()) { + return d->mIcon; + } else { + return HbIcon(); + } } /*! @@ -406,7 +485,7 @@ Q_D(HbLabel); if (d->mAspectRatioMode != aspectRatioMode) { d->mAspectRatioMode = aspectRatioMode; - if (!d->mIcon.isNull()) { + if (d->mIcon.isSet()) { updatePrimitives(); } } @@ -421,7 +500,12 @@ Qt::AspectRatioMode HbLabel::aspectRatioMode() const { Q_D(const HbLabel); - return d->mAspectRatioMode; + + if (d->mAspectRatioMode.isSet()) { + return d->mAspectRatioMode; + } else { + return Qt::KeepAspectRatio; + } } /*! @@ -435,7 +519,7 @@ void HbLabel::setPlainText(const QString &text) { Q_D(HbLabel); - d->setText(text, HbStylePrivate::P_Label_text); + d->setText(text, HbStyle::PT_TextItem); } /*! @@ -449,7 +533,7 @@ void HbLabel::setHtml(const QString &text) { Q_D(HbLabel); - d->setText(text, HbStylePrivate::P_Label_richtext); + d->setText(text, HbStyle::PT_RichTextItem); } /*! @@ -463,21 +547,29 @@ Q_D(HbLabel); if (d->mAlignment != alignment) { d->mAlignment = alignment; - if (d->mActivePrimitive!=HbStylePrivate::P_None) { + if (alignment == 0) { + d->mAlignment.clear(); + } + if (d->mActivePrimitive!=HbStyle::PT_None) { updatePrimitives(); } } } /*! - \return the alignment. Default alignment is 'Qt::AlignLeft | Qt::AlignVCenter' + \return the alignment. Default alignment is '0' indicating that nothing was + set (so CSS cotrols alignment). \sa HbLabel::setAlignment() */ Qt::Alignment HbLabel::alignment() const { Q_D(const HbLabel); - return d->mAlignment; + if (d->mAlignment.isSet()) { + return d->mAlignment; + } else { + return 0; + } } /*! @@ -493,7 +585,7 @@ bool HbLabel::isEmpty() const { Q_D(const HbLabel); - return d->mActivePrimitive == HbStylePrivate::P_None; + return d->mActivePrimitive == HbStyle::PT_None; } /*! @@ -503,7 +595,7 @@ Returns a pointer to the QGraphicsItem primitive used by this label. \param primitive - the type of graphics primitive required. - HbLabel supports HbStylePrivate::P_Label_text and HbStylePrivate::P_Label_icon. + HbLabel supports HbStyle::PT_TextItem and HbStyle::PT_IconItem. \return the QGraphicsItem used by the label. It is 0 if type \a primitive not currently in use. It is also 0 if the text or icon object is empty. @@ -514,10 +606,29 @@ QGraphicsItem * HbLabel::primitive(HbStyle::Primitive primitive) const { Q_D(const HbLabel); - if ((HbStylePrivate::Primitive)primitive == d->mActivePrimitive) { + switch ((HbStylePrivate::Primitive)primitive) { + case HbStylePrivate::P_Label_icon: + if (d->mActivePrimitive != HbStyle::PT_IconItem) { + break; + } + return d->mPrimitiveItem; + + case HbStylePrivate::P_Label_text: + if (d->mActivePrimitive != HbStyle::PT_TextItem) { + break; + } return d->mPrimitiveItem; + + case HbStylePrivate::P_Label_richtext: + if (d->mActivePrimitive != HbStyle::PT_RichTextItem) { + break; + } + return d->mPrimitiveItem; + + default: + return HbWidget::primitive(primitive); } - return HbWidget::primitive(primitive); + return 0; } /*! @@ -534,7 +645,7 @@ option->alignment = d->mAlignment; - if (!d->mText.isNull()) { + if (d->mText.isSet()) { option->text = d->mText; option->elideMode = d->mElideMode; option->textWrapMode = d->mTextWrapping; @@ -542,7 +653,7 @@ option->maximumLines = d->mMaxLines; } - if (!d->mIcon.isNull()) { + if (d->mIcon.isSet()) { option->icon = d->mIcon; option->aspectRatioMode = d->mAspectRatioMode; } @@ -580,7 +691,7 @@ QString HbLabel::plainText() const { Q_D(const HbLabel); - if (d->mActivePrimitive == HbStylePrivate::P_Label_text) { + if (d->mActivePrimitive == HbStyle::PT_TextItem) { return d->mText; } return QString(); @@ -592,7 +703,7 @@ QString HbLabel::html() const { Q_D(const HbLabel); - if (d->mActivePrimitive == HbStylePrivate::P_Label_richtext) { + if (d->mActivePrimitive == HbStyle::PT_RichTextItem) { return d->mText; } return QString(); @@ -606,7 +717,7 @@ Q_D(HbLabel); if (d->mColor!=textColor) { d->mColor=textColor; - if (!d->mText.isNull()) { + if (d->mText.isSet()) { updatePrimitives(); } } @@ -618,7 +729,12 @@ QColor HbLabel::textColor() const { Q_D(const HbLabel); - return d->mColor; + + if (d->mColor.isSet()) { + return d->mColor; + } else { + return QColor(); + } } /*! @@ -635,7 +751,7 @@ maxLines = qMax(maxLines, 0); if (d->mMaxLines != maxLines) { d->mMaxLines = maxLines; - if (d->mActivePrimitive == HbStylePrivate::P_Label_text) { + if (d->mActivePrimitive == HbStyle::PT_TextItem) { updatePrimitives(); } } @@ -650,7 +766,13 @@ */ int HbLabel::maximumLines() const { - return d_func()->mMaxLines; + Q_D(const HbLabel); + + if (d->mMaxLines.isSet()) { + return d->mMaxLines; + } else { + return 0; + } } #include "moc_hblabel.cpp" diff -r e6ad4ef83b23 -r b7da29130b0e src/hbwidgets/widgets/hbpushbutton.cpp --- a/src/hbwidgets/widgets/hbpushbutton.cpp Thu Sep 02 20:44:51 2010 +0300 +++ b/src/hbwidgets/widgets/hbpushbutton.cpp Fri Sep 17 08:32:10 2010 +0300 @@ -258,13 +258,6 @@ q->grabGesture(Qt::TapGesture); } } - - if( !focusItem ) { - focusItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_PushButton_focus, q); - //focus primitive is will not be visible by default, - //only in case of keyboard focus events it will be Visible. - focusItem->setVisible( false ); - } } void HbPushButtonPrivate::_q_handleLongKeyPress( ) @@ -680,21 +673,31 @@ void HbPushButton::recreatePrimitives() { Q_D( HbPushButton ); - HbWidget::recreatePrimitives(); - - delete d->frameItem; - d->frameItem = 0; - delete d->iconItem; - d->iconItem = 0; - delete d->textItem; - d->textItem = 0; - delete d->touchArea; - d->touchArea = 0; - delete d->additionalTextItem; - d->additionalTextItem = 0; - delete d->focusItem; - d->focusItem = 0; - + HbWidget::recreatePrimitives(); + if ( d->frameItem ) { + delete d->frameItem; + d->frameItem = 0; + } + if ( d->iconItem ) { + delete d->iconItem; + d->iconItem = 0; + } + if ( d->textItem ) { + delete d->textItem ; + d->textItem = 0; + } + if ( d->touchArea ) { + delete d->touchArea ; + d->touchArea = 0; + } + if ( d->additionalTextItem ) { + delete d->additionalTextItem ; + d->additionalTextItem = 0; + } + if ( d->focusItem ) { + delete d->focusItem ; + d->focusItem = 0; + } d->createPrimitives( ); setFrameBackground( 0 ); } @@ -706,9 +709,25 @@ { Q_D( HbPushButton ); HbWidget::updatePrimitives( ); - HbStyleOptionPushButton buttonOption; initStyleOption(&buttonOption); + //update the button color property information + if ( d->checkable ) { + if ( d->checked ) { + setProperty( "state", "latched" ); + } + else { + setProperty( "state", "normal" ); + } + } + else{ + if ( d->down ) { + setProperty( "state", "pressed" ); + } + else { + setProperty( "state", "normal" ); + } + } if ( d->textItem ) { HbStylePrivate::updatePrimitive( d->textItem, HbStylePrivate::P_PushButton_text, &buttonOption ); } @@ -917,11 +936,11 @@ #ifdef HB_EFFECTS HbEffect::start( this, HB_PUSHBUTTON_TYPE, "pressed" ); #endif - if( d->checkable && !d->checked) { + /* if( d->checkable && !d->checked) { setProperty( "state", "latched" ); }else if(!d->checkable) { setProperty( "state", "pressed" ); - } + }*/ } break; case Qt::GestureUpdated: @@ -939,11 +958,11 @@ HbEffect::start( this, HB_PUSHBUTTON_TYPE, "released" ); #endif } - if( d->checkable && !d->checked) { + /*if( d->checkable && !d->checked) { setProperty( "state", "latched" ); }else { setProperty( "state", "normal" ); - } + }*/ break; default: break; @@ -985,15 +1004,15 @@ Q_D( HbPushButton ); if( ( event->reason() == Qt::TabFocusReason || event->reason() == Qt::BacktabFocusReason ) && ( d->navigationKeyPress ) ) { - if( d->focusItem ) { + if( !d->focusItem ) { + d->focusItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_PushButton_focus, this); + } else { d->focusItem->setVisible( true ); if( hasFocus() ) { HbStyleOptionPushButton buttonOption; initStyleOption( &buttonOption ); HbStylePrivate::updatePrimitive( d->focusItem,HbStylePrivate::P_PushButton_focus, &buttonOption ); - } - } else { - d->focusItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_PushButton_focus, this); + } } } HbAbstractButton::focusInEvent( event ); diff -r e6ad4ef83b23 -r b7da29130b0e src/platforms/symbian/configurations/hbtheme_confml/hbtheme_20022e82.crml Binary file src/platforms/symbian/configurations/hbtheme_confml/hbtheme_20022e82.crml has changed diff -r e6ad4ef83b23 -r b7da29130b0e src/src.pro --- a/src/src.pro Thu Sep 02 20:44:51 2010 +0300 +++ b/src/src.pro Fri Sep 17 08:32:10 2010 +0300 @@ -76,7 +76,7 @@ } # do not build host tools on symbian -!symbian:!contains(HB_NOMAKE_PARTS, hbtools) { +!symbian:!host_tools:!contains(HB_NOMAKE_PARTS, hbtools) { hbtools.depends = hbcore hbwidgets hbutils SUBDIRS *= hbcore hbwidgets hbutils SUBDIRS += hbtools