--- a/homescreen_plat/hs_renderingplugin_api/inc/xnextrenderingpluginadapter.h Tue May 11 16:02:39 2010 +0300
+++ b/homescreen_plat/hs_renderingplugin_api/inc/xnextrenderingpluginadapter.h Tue May 25 12:29:32 2010 +0300
@@ -35,9 +35,52 @@
* process. Power save mode must be obeyed in order to maximize
* the standby times of the device.
*
- *
* @code
- *
+ * // External rendering plug-in mandatory functions
+ * T_RenderingPlugin* T_RenderingPlugin::NewL()
+ * {
+ * T_RenderingPlugin* self = T_RenderingPlugin::NewLC();
+ * CleanupStack::Pop( self );
+ * return self;
+ * }
+ * //
+ * T_RenderingPlugin* T_RenderingPlugin::NewLC()
+ * {
+ * T_RenderingPlugin* self = new( ELeave ) T_RenderingPlugin();
+ * CleanupStack::PushL( self );
+ * self->ConstructL();
+ * return self;
+ * }
+ * //
+ * T_RenderingPlugin::~T_RenderingPlugin()
+ * {
+ * }
+ * //
+ * T_RenderingPlugin::T_RenderingPlugin()
+ * {
+ * // Do nothing
+ * }
+ * //
+ * void T_RenderingPlugin::ConstructL()
+ * {
+ * }
+ * //
+ * const TImplementationProxy KImplementationTable[] =
+ * {
+ * #ifdef __EABI__
+ * IMPLEMENTATION_PROXY_ENTRY( 0x22334455, T_RenderingPlugin::NewL )
+ * #else
+ * { { 0x22334455 }, T_RenderingPlugin::NewL }
+ * #endif
+ * };
+ * //
+ * EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+ * TInt& aTableCount )
+ * {
+ * aTableCount = sizeof( KImplementationTable ) / sizeof( TImplementationProxy );
+ * return KImplementationTable;
+ * }
+ *
* @endcode
*
* @lib extrenderingplugin.lib
--- a/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="rootconfiguration.xml" target="\private\200159c0\install\root_2001f482\hsps\00\">
<setting ref="HSViews/MaxPages"/>
<setting ref="HSViews/Views"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Tue May 25 12:29:32 2010 +0300
@@ -1,97 +1,56 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration xmlns="http://www.s60.com/xml/confml/1" name="Homescreen 1" version="1">
- <feature ref="HomescreenPlugins_1" name="Homescreen 1 widgets">
- <setting ref="MaxWidgets" name="Max Widgets" type="string">
+<configuration name="Homescreen 1" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <feature name="Homescreen 1 widgets" ref="HomescreenPlugins_1">
+ <setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 1 page. Customizable</desc>
</setting>
- <setting ref="UseEmptyWidgets" readOnly="true" name="Use Empty Widgets" type="boolean">
+ <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+ <desc>Not customizable!</desc>
+ </setting>
+ <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="ItemIdEmptyWidgets" readOnly="true" name="Item id for empty widgets definition in view" type="string">
- <desc>Not customizable!</desc>
- </setting>
- <setting ref="PropertyEmptyWidgets" readOnly="true" name="Property name for empty widgets definition in view" type="string">
+ <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="BackGroundPath" name="background path" type="string">
+ <setting name="background path" ref="BackGroundPath" type="string">
<desc>Path of the Wallpaper resource. Customizable. </desc>
</setting>
- <setting ref="ItemIdWallpaper" readOnly="true" name="Item id wallpaper" type="string">
+ <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="WallpaperPropertyName" readOnly="true" name="Wallpaper property name" type="string">
+ <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Plugins" name="Widgets" type="sequence">
+ <setting name="Widgets" ref="Plugins" type="sequence">
<desc>Widgets in the Homescreen 1</desc>
- <setting ref="Uid" name="Widget" type="selection">
- <desc>Widget name</desc>
- <!-- S60 Native Widgets -->
- <option name="Empty" value="0x2001f47f"/>
- <option name="PhoneSetup" value="0x20021195"/>
- <option name="ContactsBar" value="0x20022eba"/>
- <option name="Shortcut" value="0x2001f483"/>
- <option name="Shortcut2" value="0x2001f484"/>
- <option name="Desktop" value="0x20026f4f"/>
- <option name="Topcontacts" value="0x200184cd"/>
- <option name="Topcontacts2" value="0x200184c9"/>
- <option name="ShareOnlineAI3" value="0x20010980"/>
- <option name="wsfwidget" value="0x20026f45"/>
- <option name="Organizer" value="0x2001f481"/>
- <option name="MusicWidget" value="0x10207c18"/>
- <option name="Fmtx" value="0x20021189"/>
- <option name="EmailWidget" value="0x2001e272"/>
- <option name="Profile" value="0x2001cb7c"/>
- <option name="ServiceWidget" value="0x20021383"/>
- <option name="SocialMixer" value="0x2002699f"/>
- <!-- S60WRT on eMMC -->
- <option name="Accuweather eMMC" value="0x2000dd2a"/>
- <option name="Ap News eMMC" value="0x2000dd2b"/>
- <option name="Facebook eMMC" value="0x2000dd2c"/>
- <option name="Bloomberg eMMC" value="0x2000dd2d"/>
- <option name="Amazon eMMC" value="0x2000dd2e"/>
- <option name="Hi5 eMMC" value="0x2000dd2f"/>
- <option name="Reuters eMMC" value="0x2000dd30"/>
- <option name="CNN Video eMMC" value="0x2000dd31"/>
- <option name="E! eMMC" value="0x2000dd32"/>
- <option name="Movie Teasers eMMC" value="0x2000dd33"/>
- <option name="Nat Geo eMMC" value="0x2000dd34"/>
- <option name="Chat eMMC" value="0x2000dd35"/>
- <option name="Web TV Demo eMMC" value="0x2000dd36"/>
- <option name="Communities eMMC" value="0x2000dd37"/>
- <option name="Ovi Files eMMC" value="0x2000dd38"/>
- <option name="YLE Areena eMMC" value="0x2000dd39"/>
-
- <!-- S60WRT on eMMC -->
- <option name="SSOUI eMMC" value="0x2000de24"/>
- <option name="Timer.A eMMC" value="0x2000de25"/>
-
+ <setting name="Widget" ref="Uid" type="selection">
+ <desc>Widget name</desc>
+ <!-- S60 Native Widgets -->
+ <option name="Empty" value="0x2001f47f"/>
+ <option name="PhoneSetup" value="0x20021195"/>
+ <option name="ContactsBar" value="0x20022eba"/>
+ <option name="Shortcut" value="0x2001f483"/>
+ <option name="Shortcut2" value="0x2001f484"/>
+ <option name="Desktop" value="0x20026f4f"/>
+ <option name="Topcontacts" value="0x200184cd"/>
+ <option name="Topcontacts2" value="0x200184c9"/>
+ <option name="ShareOnlineAI3" value="0x20010980"/>
+ <option name="wsfwidget" value="0x20026f45"/>
+ <option name="Organizer" value="0x2001f481"/>
+ <option name="MusicWidget" value="0x10207c18"/>
+ <option name="Fmtx" value="0x20021189"/>
+ <option name="EmailWidget" value="0x2001e272"/>
+ <option name="Profile" value="0x2001cb7c"/>
+ <option name="ServiceWidget" value="0x20021383"/>
+ <option name="SocialMixer" value="0x2002699f"/>
+ <!-- Automatic option listing of WRTs on the release -->
+ <option map="DFSFeatures/HomescreenWidgets"></option>
</setting>
- <setting ref="BundleIdentifier" name="Bundle Identifier" type="selection">
+ <setting name="Bundle Identifier" ref="BundleIdentifier" type="selection">
<desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
- <!-- Bundle names of WRT -->
- <option name="None" value="0"/>
- <option name="AccuWeather" value="com.accuweather.widget.touchNG"/>
- option name="Ap News" value="com.nokia.apnews.widget"/>
- <option name="Facebook" value="com.nokia.facebook.widget.S605th"/>
- <option name="Bloomberg" value="com.bloomberg.nokia.mobile"/>
- <option name="Amazon" value="com.nokia.widget.amazon"/>
- <option name="Hi5" value="com.nokia.widget.s605.hi5"/>
- <option name="Reuters" value="com.reuters.widget.news"/>
- <option name="CNN Video" value="com.cnn"/>
- <option name="E!" value="com.moderati.eonline"/>
- <option name="Movie Teasers" value="com.movieteasers"/>
- <option name="Nat Geo" value="com.natgeo"/>
- <option name="Chat" value="com.nokia.ChatClient"/>
- <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
- <option name="Communities" value="com.nokia.socialmixer.v1"/>
- <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
- <option name="YLE Areena" value="com.tieto.yle"/>
- <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
- <option name="Timer.A" value="com.nokia.wgt.TIMER.A"/>
-
- </setting>
- <setting ref="TemplateIdentifier" name="Template Identifier" type="selection">
+ <option name="None / Automatic" value="0" />
+ </setting>
+ <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
<desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
<option name="None" value="0"/>
<option name="wideimage" value="0x2001f489"/>
@@ -100,130 +59,130 @@
<option name="tworows" value="0x2001f488"/>
<option name="onerow" value="0x2001f480"/>
</setting>
- <setting ref="LockingStatus" name="locking Status" type="selection">
+ <setting name="locking Status" ref="LockingStatus" type="selection">
<desc>Locking status for the widget 1 in Homescreen 1 page</desc>
<option name="None" value="none"/>
<option name="Locked" value="locked"/>
</setting>
- <setting ref="ShortcutWidget" name="Customize Shortcut widget" type="selection">
+ <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
<desc>Customize enabler for desktop/shortcut widget</desc>
<option name="Not Customize desktop Widget" value="0"/>
<option name="Customize desktop widget" value="1"/>
</setting>
- <setting ref="Customize1Shortcut" name="Customize 1st Shortcut" type="selection">
+ <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
<desc>Customize 1st item in desktop widget</desc>
<option name="Not Customize 1st shortcut" value="0"/>
<option name="Customize 1st shortcut" value="1"/>
</setting>
- <setting ref="Shortcut1Type" name="1st Shortcut type" type="selection">
+ <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
<option name="Application" value="application"/>
<option name="Bookmark" value="bookmark"/>
<option name="Shortcut" value="shortcut"/>
</setting>
- <setting ref="Shortcut1Uid" name="1st Shortcut Uid" type="string">
+ <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
<desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
</setting>
- <setting ref="Shortcut1View" name="1st Shortcut View" type="string">
+ <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting ref="Shortcut1Param" name="1st Shortcut Param" type="string">
+ <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
<desc>Params for shortcut. For example: messaging:msg</desc>
</setting>
- <setting ref="Customize2Shortcut" name="Customize 2nd Shortcut" type="selection">
+ <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
<desc>Customize 2nd item in desktop widget</desc>
<option name="Not Customize 2nd shortcut" value="0"/>
<option name="Customize 2nd shortcut" value="1"/>
</setting>
- <setting ref="Shortcut2Type" name="2nd Shortcut Application" type="selection">
+ <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
<option name="Application" value="application"/>
<option name="Bookmark" value="bookmark"/>
<option name="Shortcut" value="shortcut"/>
</setting>
- <setting ref="Shortcut2Uid" name="2nd Shortcut Uid" type="string">
+ <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
<desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
</setting>
- <setting ref="Shortcut2View" name="2nd Shortcut View" type="string">
+ <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting ref="Shortcut2Param" name="2nd Shortcut Param" type="string">
+ <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
<desc>Params for shortcut. messaging:msg</desc>
</setting>
- <setting ref="Customize3Shortcut" name="Customize 3rd Shortcut" type="selection">
+ <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
<desc>Customize 3rd item in desktop widget</desc>
<option name="Not Customize 3rd shortcut" value="0"/>
<option name="Customize 3rd shortcut" value="1"/>
</setting>
- <setting ref="Shortcut3Type" name="3rd Shortcut Application" type="selection">
+ <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
<option name="Application" value="application"/>
<option name="Bookmark" value="bookmark"/>
<option name="Shortcut" value="shortcut"/>
</setting>
- <setting ref="Shortcut3Uid" name="3rd Shortcut Uid" type="string">
+ <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
<desc>Uid for the application,Menu content Uid for the bookmarks and shortcuts.</desc>
</setting>
- <setting ref="Shortcut3View" name="3rd Shortcut View" type="string">
+ <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting ref="Shortcut3Param" name="3rd Shortcut Param" type="string">
+ <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
<desc>Params for shortcut. messaging:msg</desc>
</setting>
- <setting ref="Customize4Shortcut" name="Customize 4th Shortcut" type="selection">
+ <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
<desc>Customize 4th item in desktop widget</desc>
- <option name="Not Customize 4th shortcut" value="0"/>
- <option name="Customize 4th shortcut" value="1"/>
+ <option name="Not Customize 4th shortcut" value="0" />
+ <option name="Customize 4th shortcut" value="1" />
</setting>
- <setting ref="Shortcut4Type" name="4th ShortCut Application" type="selection">
+ <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
- <option name="Application" value="application"/>
- <option name="Bookmark" value="bookmark"/>
- <option name="Shortcut" value="shortcut"/>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
</setting>
- <setting ref="Shortcut4Uid" name="4th Shortcut Uid" type="string">
+ <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
<desc>Uid for the application, Menu content ids for the bookmarks and shortcuts </desc>
</setting>
- <setting ref="Shortcut4View" name="4th Shortcut View" type="string">
+ <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting ref="Shortcut4Param" name="4th Shortcut Param" type="string">
+ <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
<desc>Params for shortcut. messaging:msg</desc>
</setting>
- <setting ref="Shortcut1ItemId" readOnly="true" name="Shortcut1 ItemId" type="string">
+ <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut1ItemName" readOnly="true" name="Shortcut1 ItemName" type="string">
+ <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut2ItemId" readOnly="true" name="Shortcut2 ItemId" type="string">
+ <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut2ItemName" readOnly="true" name="Shortcut2 ItemName" type="string">
+ <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut3ItemId" readOnly="true" name="Shortcut3 ItemId" type="string">
+ <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut3ItemName" readOnly="true" name="Shortcut3 ItemName" type="string">
+ <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut4ItemId" readOnly="true" name="Shortcut4 ItemId" type="string">
+ <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="Shortcut4ItemName" readOnly="true" name="Shortcut4 ItemName" type="string">
+ <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="ShortcutPropertyNameType" readOnly="true" name="Shortcut PropertyNameType" type="string">
+ <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="ShortcutPropertyNameUid" readOnly="true" name="Shortcut PropertyNameUid" type="string">
+ <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="ShortcutPropertyNameView" readOnly="true" name="Shortcut PropertyNameView" type="string">
+ <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting ref="ShortcutPropertyNameParam" readOnly="true" name="Shortcut PropertyNameParam" type="string">
+ <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
<desc>Not customizable!</desc>
</setting>
</setting>
@@ -236,13 +195,241 @@
<PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
<ItemIdWallpaper>wallpaper</ItemIdWallpaper>
<WallpaperPropertyName>path</WallpaperPropertyName>
- <BackGroundPath></BackGroundPath>
- <Plugins extensionPolicy="replace"><Uid>0x2001cb7c</Uid><BundleIdentifier>0</BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>locked</LockingStatus><ShortcutWidget>0</ShortcutWidget><Customize1Shortcut></Customize1Shortcut><Shortcut1Type></Shortcut1Type><Shortcut1Uid></Shortcut1Uid><Shortcut1View></Shortcut1View><Shortcut1Param></Shortcut1Param><Customize2Shortcut></Customize2Shortcut><Shortcut2Type></Shortcut2Type><Shortcut2Uid></Shortcut2Uid><Shortcut2View></Shortcut2View><Shortcut2Param></Shortcut2Param><Customize3Shortcut></Customize3Shortcut><Shortcut3Type></Shortcut3Type><Shortcut3Uid></Shortcut3Uid><Shortcut3View></Shortcut3View><Shortcut3Param></Shortcut3Param><Customize4Shortcut></Customize4Shortcut><Shortcut4Type></Shortcut4Type><Shortcut4Uid></Shortcut4Uid><Shortcut4View></Shortcut4View><Shortcut4Param></Shortcut4Param><Shortcut1ItemId>first</Shortcut1ItemId><Shortcut1ItemName>Shortcut1</Shortcut1ItemName><Shortcut2ItemId>second</Shortcut2ItemId><Shortcut2ItemName>Shortcut2</Shortcut2ItemName><Shortcut3ItemId>third</Shortcut3ItemId><Shortcut3ItemName>Shortcut3</Shortcut3ItemName><Shortcut4ItemId>fourth</Shortcut4ItemId><Shortcut4ItemName>Shortcut4</Shortcut4ItemName><ShortcutPropertyNameType>type</ShortcutPropertyNameType><ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid><ShortcutPropertyNameView>view</ShortcutPropertyNameView><ShortcutPropertyNameParam>param</ShortcutPropertyNameParam></Plugins>
- <Plugins><Uid>0x20026f4f</Uid><BundleIdentifier>0</BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus><ShortcutWidget>0</ShortcutWidget><Customize1Shortcut>0</Customize1Shortcut><Shortcut1Type></Shortcut1Type><Shortcut1Uid></Shortcut1Uid><Shortcut1View></Shortcut1View><Shortcut1Param></Shortcut1Param><Customize2Shortcut></Customize2Shortcut><Shortcut2Type></Shortcut2Type><Shortcut2Uid></Shortcut2Uid><Shortcut2View></Shortcut2View><Shortcut2Param></Shortcut2Param><Customize3Shortcut></Customize3Shortcut><Shortcut3Type></Shortcut3Type><Shortcut3Uid></Shortcut3Uid><Shortcut3View></Shortcut3View><Shortcut3Param></Shortcut3Param><Customize4Shortcut></Customize4Shortcut><Shortcut4Type></Shortcut4Type><Shortcut4Uid></Shortcut4Uid><Shortcut4View></Shortcut4View><Shortcut4Param></Shortcut4Param><Shortcut1ItemId>first</Shortcut1ItemId><Shortcut1ItemName>Shortcut1</Shortcut1ItemName><Shortcut2ItemId>second</Shortcut2ItemId><Shortcut2ItemName>Shortcut2</Shortcut2ItemName><Shortcut3ItemId>third</Shortcut3ItemId><Shortcut3ItemName>Shortcut3</Shortcut3ItemName><Shortcut4ItemId>fourth</Shortcut4ItemId><Shortcut4ItemName>Shortcut4</Shortcut4ItemName><ShortcutPropertyNameType>type</ShortcutPropertyNameType><ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid><ShortcutPropertyNameView>view</ShortcutPropertyNameView><ShortcutPropertyNameParam>param</ShortcutPropertyNameParam></Plugins>
- <Plugins><Uid>0x10207c18</Uid><BundleIdentifier>0</BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus><ShortcutWidget>0</ShortcutWidget><Customize1Shortcut>0</Customize1Shortcut><Shortcut1Type></Shortcut1Type><Shortcut1Uid></Shortcut1Uid><Shortcut1View></Shortcut1View><Shortcut1Param></Shortcut1Param><Customize2Shortcut></Customize2Shortcut><Shortcut2Type></Shortcut2Type><Shortcut2Uid></Shortcut2Uid><Shortcut2View></Shortcut2View><Shortcut2Param></Shortcut2Param><Customize3Shortcut></Customize3Shortcut><Shortcut3Type></Shortcut3Type><Shortcut3Uid></Shortcut3Uid><Shortcut3View></Shortcut3View><Shortcut3Param></Shortcut3Param><Customize4Shortcut></Customize4Shortcut><Shortcut4Type></Shortcut4Type><Shortcut4Uid></Shortcut4Uid><Shortcut4View></Shortcut4View><Shortcut4Param></Shortcut4Param><Shortcut1ItemId>first</Shortcut1ItemId><Shortcut1ItemName>Shortcut1</Shortcut1ItemName><Shortcut2ItemId>second</Shortcut2ItemId><Shortcut2ItemName>Shortcut2</Shortcut2ItemName><Shortcut3ItemId>third</Shortcut3ItemId><Shortcut3ItemName>Shortcut3</Shortcut3ItemName><Shortcut4ItemId>fourth</Shortcut4ItemId><Shortcut4ItemName>Shortcut4</Shortcut4ItemName><ShortcutPropertyNameType>type</ShortcutPropertyNameType><ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid><ShortcutPropertyNameView>view</ShortcutPropertyNameView><ShortcutPropertyNameParam>param</ShortcutPropertyNameParam></Plugins>
- <Plugins><Uid>0x2001f481</Uid><BundleIdentifier>0</BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus><ShortcutWidget>0</ShortcutWidget><Customize1Shortcut>0</Customize1Shortcut><Shortcut1Type></Shortcut1Type><Shortcut1Uid></Shortcut1Uid><Shortcut1View></Shortcut1View><Shortcut1Param></Shortcut1Param><Customize2Shortcut></Customize2Shortcut><Shortcut2Type></Shortcut2Type><Shortcut2Uid></Shortcut2Uid><Shortcut2View></Shortcut2View><Shortcut2Param></Shortcut2Param><Customize3Shortcut></Customize3Shortcut><Shortcut3Type></Shortcut3Type><Shortcut3Uid></Shortcut3Uid><Shortcut3View></Shortcut3View><Shortcut3Param></Shortcut3Param><Customize4Shortcut></Customize4Shortcut><Shortcut4Type></Shortcut4Type><Shortcut4Uid></Shortcut4Uid><Shortcut4View></Shortcut4View><Shortcut4Param></Shortcut4Param><Shortcut1ItemId>first</Shortcut1ItemId><Shortcut1ItemName>Shortcut1</Shortcut1ItemName><Shortcut2ItemId>second</Shortcut2ItemId><Shortcut2ItemName>Shortcut2</Shortcut2ItemName><Shortcut3ItemId>third</Shortcut3ItemId><Shortcut3ItemName>Shortcut3</Shortcut3ItemName><Shortcut4ItemId>fourth</Shortcut4ItemId><Shortcut4ItemName>Shortcut4</Shortcut4ItemName><ShortcutPropertyNameType>type</ShortcutPropertyNameType><ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid><ShortcutPropertyNameView>view</ShortcutPropertyNameView><ShortcutPropertyNameParam>param</ShortcutPropertyNameParam></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier>0</BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus><ShortcutWidget>0</ShortcutWidget><Customize1Shortcut>0</Customize1Shortcut><Shortcut1Type></Shortcut1Type><Shortcut1Uid></Shortcut1Uid><Shortcut1View></Shortcut1View><Shortcut1Param></Shortcut1Param><Customize2Shortcut></Customize2Shortcut><Shortcut2Type></Shortcut2Type><Shortcut2Uid></Shortcut2Uid><Shortcut2View></Shortcut2View><Shortcut2Param></Shortcut2Param><Customize3Shortcut></Customize3Shortcut><Shortcut3Type></Shortcut3Type><Shortcut3Uid></Shortcut3Uid><Shortcut3View></Shortcut3View><Shortcut3Param></Shortcut3Param><Customize4Shortcut></Customize4Shortcut><Shortcut4Type></Shortcut4Type><Shortcut4Uid></Shortcut4Uid><Shortcut4View></Shortcut4View><Shortcut4Param></Shortcut4Param><Shortcut1ItemId>first</Shortcut1ItemId><Shortcut1ItemName>Shortcut1</Shortcut1ItemName><Shortcut2ItemId>second</Shortcut2ItemId><Shortcut2ItemName>Shortcut2</Shortcut2ItemName><Shortcut3ItemId>third</Shortcut3ItemId><Shortcut3ItemName>Shortcut3</Shortcut3ItemName><Shortcut4ItemId>fourth</Shortcut4ItemId><Shortcut4ItemName>Shortcut4</Shortcut4ItemName><ShortcutPropertyNameType>type</ShortcutPropertyNameType><ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid><ShortcutPropertyNameView>view</ShortcutPropertyNameView><ShortcutPropertyNameParam>param</ShortcutPropertyNameParam></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier>0</BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus><ShortcutWidget>0</ShortcutWidget><Customize1Shortcut>0</Customize1Shortcut><Shortcut1Type></Shortcut1Type><Shortcut1Uid></Shortcut1Uid><Shortcut1View></Shortcut1View><Shortcut1Param></Shortcut1Param><Customize2Shortcut></Customize2Shortcut><Shortcut2Type></Shortcut2Type><Shortcut2Uid></Shortcut2Uid><Shortcut2View></Shortcut2View><Shortcut2Param></Shortcut2Param><Customize3Shortcut></Customize3Shortcut><Shortcut3Type></Shortcut3Type><Shortcut3Uid></Shortcut3Uid><Shortcut3View></Shortcut3View><Shortcut3Param></Shortcut3Param><Customize4Shortcut></Customize4Shortcut><Shortcut4Type></Shortcut4Type><Shortcut4Uid></Shortcut4Uid><Shortcut4View></Shortcut4View><Shortcut4Param></Shortcut4Param><Shortcut1ItemId>first</Shortcut1ItemId><Shortcut1ItemName>Shortcut1</Shortcut1ItemName><Shortcut2ItemId>second</Shortcut2ItemId><Shortcut2ItemName>Shortcut2</Shortcut2ItemName><Shortcut3ItemId>third</Shortcut3ItemId><Shortcut3ItemName>Shortcut3</Shortcut3ItemName><Shortcut4ItemId>fourth</Shortcut4ItemId><Shortcut4ItemName>Shortcut4</Shortcut4ItemName><ShortcutPropertyNameType>type</ShortcutPropertyNameType><ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid><ShortcutPropertyNameView>view</ShortcutPropertyNameView><ShortcutPropertyNameParam>param</ShortcutPropertyNameParam></Plugins>
+ <BackGroundPath />
+ <Plugins extensionPolicy="replace">
+ <Uid>0x2001cb7c</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>locked</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut />
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x20026f4f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x10207c18</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f481</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
</HomescreenPlugins_1>
</data>
</configuration>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+
+ <ruleml xmlns="http://www.s60.com/xml/ruleml/3">
+ <rule>True configures ${HomescreenPlugins_1.Plugins} = {% mapBundleIds(@{DFSFeatures.HomescreenWidgets}, @{HomescreenPlugins_1.Plugins}) %}</rule>
+<eval_globals>
+import logging
+#logger = logging.getLogger('cone.homescreen3')
+def mapBundleIds(dfswidgets, plugins):
+ # create a uid-bundle dictionary
+ dict = {}
+ #logger.debug('ws %s' % dfswidgets.value)
+ for widget in dfswidgets.value:
+ dict[widget[dfswidgets._order.index('Uid')].lower()] = widget[dfswidgets._order.index('Bundle')]
+
+ #logger.debug('d %s' % dict)
+ new_plugins = []
+ for plugin in plugins.value:
+ # update bundle only if it's 0 or None
+ if plugin[plugins._order.index('Uid')] is not None and (plugin[plugins._order.index('BundleIdentifier')] == '0' or plugin[plugins._order.index('BundleIdentifier')] == None):
+ bundle = dict.get(plugin[plugins._order.index('Uid')].lower())
+ if bundle is not None:
+ #logger.debug('Bundle id updated %s' % bundle)
+ plugin[plugins._order.index('BundleIdentifier')] = bundle
+ new_plugins.append(plugin)
+
+ return new_plugins
+</eval_globals>
+ </ruleml>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_2001f48b\hsps\00\">
<setting ref="HomescreenPlugins_1/MaxWidgets"/>
<setting ref="HomescreenPlugins_1/UseEmptyWidgets"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_2001f48b\hsps\00\">
<setting ref="Homescreen1manifest/PackageVersion"/>
<setting ref="Homescreen1manifest/DeviceFamily"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_2001f48b\xuikon\">
<setting ref="Homescreen1XuikonFolder/FolderCFG"/>
<xsl:stylesheet version="1.0"
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+
+ <ruleml xmlns="http://www.s60.com/xml/ruleml/3">
+ <rule>True configures ${HomescreenPlugins_2.Plugins} = {% mapBundleIds(@{DFSFeatures.HomescreenWidgets}, @{HomescreenPlugins_2.Plugins}) %}</rule>
+<eval_globals>
+import logging
+#logger = logging.getLogger('cone.homescreen3')
+def mapBundleIds(dfswidgets, plugins):
+ # create a uid-bundle dictionary
+ dict = {}
+ #logger.debug('ws %s' % dfswidgets.value)
+ for widget in dfswidgets.value:
+ dict[widget[dfswidgets._order.index('Uid')].lower()] = widget[dfswidgets._order.index('Bundle')]
+
+ #logger.debug('d %s' % dict)
+ new_plugins = []
+ for plugin in plugins.value:
+ # update bundle only if it's 0 or None
+ if plugin[plugins._order.index('Uid')] is not None and (plugin[plugins._order.index('BundleIdentifier')] == '0' or plugin[plugins._order.index('BundleIdentifier')] == None):
+ bundle = dict.get(plugin[plugins._order.index('Uid')].lower())
+ if bundle is not None:
+ #logger.debug('Bundle id updated %s' % bundle)
+ plugin[plugins._order.index('BundleIdentifier')] = bundle
+ new_plugins.append(plugin)
+
+ return new_plugins
+</eval_globals>
+ </ruleml>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286e4\hsps\00\">
<setting ref="HomescreenPlugins_2/MaxWidgets"/>
<setting ref="HomescreenPlugins_2/UseEmptyWidgets"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286e4\hsps\00\">
<setting ref="Homescreen2manifest/PackageVersion"/>
<setting ref="Homescreen2manifest/DeviceFamily"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286e4\xuikon\">
<setting ref="Homescreen2XuikonFolder/FolderCFG"/>
<xsl:stylesheet version="1.0"
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+
+ <ruleml xmlns="http://www.s60.com/xml/ruleml/3">
+ <rule>True configures ${HomescreenPlugins_3.Plugins} = {% mapBundleIds(@{DFSFeatures.HomescreenWidgets}, @{HomescreenPlugins_3.Plugins}) %}</rule>
+<eval_globals>
+import logging
+#logger = logging.getLogger('cone.homescreen3')
+def mapBundleIds(dfswidgets, plugins):
+ # create a uid-bundle dictionary
+ dict = {}
+ #logger.debug('ws %s' % dfswidgets.value)
+ for widget in dfswidgets.value:
+ dict[widget[dfswidgets._order.index('Uid')].lower()] = widget[dfswidgets._order.index('Bundle')]
+
+ #logger.debug('d %s' % dict)
+ new_plugins = []
+ for plugin in plugins.value:
+ # update bundle only if it's 0 or None
+ if plugin[plugins._order.index('Uid')] is not None and (plugin[plugins._order.index('BundleIdentifier')] == '0' or plugin[plugins._order.index('BundleIdentifier')] == None):
+ bundle = dict.get(plugin[plugins._order.index('Uid')].lower())
+ if bundle is not None:
+ #logger.debug('Bundle id updated %s' % bundle)
+ plugin[plugins._order.index('BundleIdentifier')] = bundle
+ new_plugins.append(plugin)
+
+ return new_plugins
+</eval_globals>
+ </ruleml>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286e5\hsps\00\">
<setting ref="HomescreenPlugins_3/MaxWidgets"/>
<setting ref="HomescreenPlugins_3/UseEmptyWidgets"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286e5\hsps\00\">
<setting ref="Homescreen3manifest/PackageVersion"/>
<setting ref="Homescreen3manifest/DeviceFamily"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Tue May 25 12:29:32 2010 +0300
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286e5\xuikon\">
<setting ref="Homescreen3XuikonFolder/FolderCFG"/>
<xsl:stylesheet version="1.0"
--- a/idlehomescreen/sapiwrapper/cpswrapper/inc/cpsconst.h Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/cpswrapper/inc/cpsconst.h Tue May 25 12:29:32 2010 +0300
@@ -38,6 +38,9 @@
_LIT( KDelete16, "delete" );
_LIT8( KAdd, "add" );
_LIT( KAdd16, "add" );
+ _LIT( KUpdate16, "update" );
+ _LIT8( KUpdate, "update" );
+ _LIT8( KAddUpdateDelete , "add:update:delete" );
_LIT8( KRequestNotification, "RequestNotification" );
_LIT8( KType, "type" );
_LIT8( KGetList, "GetList" );
--- a/idlehomescreen/sapiwrapper/cpswrapper/inc/cpswrapper.h Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/cpswrapper/inc/cpswrapper.h Tue May 25 12:29:32 2010 +0300
@@ -61,6 +61,11 @@
* Callback methot for registered widget notify.
*/
virtual void NotifyWidgetRegisteredL() = 0;
+
+ /**
+ * Callback method for updated widget notify.
+ */
+ virtual void NotifyWidgetUpdatedL() = 0;
};
/**
--- a/idlehomescreen/sapiwrapper/cpswrapper/src/cpswrapper.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/cpswrapper/src/cpswrapper.cpp Tue May 25 12:29:32 2010 +0300
@@ -386,17 +386,11 @@
//
void CCpsWrapper::StartListeningPublisherRegistryL()
{
- // Start Listening all the HS template using widgets unregistration
- RequestForNotificationL( KAll, KHSTemplate, KAll, KDelete, KPublisher16 );
-
- // Start Listening all the WRT widgets unregistration
- RequestForNotificationL( KAll, KWRTTemplate, KAll, KDelete, KPublisher16 );
-
// Start Listening all the WRT widgets registrations
- RequestForNotificationL( KAll, KWRTTemplate, KAll, KAdd, KPublisher16 );
+ RequestForNotificationL( KAll, KWRTTemplate, KAll, KAddUpdateDelete, KPublisher16 );
// Start Listening all the HS template widgets registrations
- RequestForNotificationL( KAll, KHSTemplate, KAll, KAdd, KPublisher16 );
+ RequestForNotificationL( KAll, KHSTemplate, KAll, KAddUpdateDelete , KPublisher16 );
}
// -----------------------------------------------------------------------
@@ -414,6 +408,10 @@
{
iObserver.NotifyWidgetRegisteredL();
}
+ else if ( aOperation == KUpdate16 )
+ {
+ iObserver.NotifyWidgetUpdatedL();
+ }
}
}
--- a/idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def Tue May 25 12:29:32 2010 +0300
@@ -66,9 +66,9 @@
?ItemId@CItemMap@hspswrapper@@QBEABVTDesC8@@XZ @ 65 NONAME ; class TDesC8 const & hspswrapper::CItemMap::ItemId(void) const
?GetAppConfigurationL@CHspsWrapper@hspswrapper@@QAEPAVCHspsConfiguration@2@XZ @ 66 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsWrapper::GetAppConfigurationL(void)
?NewL@CItemMap@hspswrapper@@SAPAV12@XZ @ 67 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewL(void)
- ?SetPathL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 68 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetPathL(class TDesC8 const &)
- ?PluginId@CAddPluginResult@hspswrapper@@QBEABVTDesC8@@XZ @ 69 NONAME ; class TDesC8 const & hspswrapper::CAddPluginResult::PluginId(void) const
- ?RestoreRootL@CHspsWrapper@hspswrapper@@QAEHXZ @ 70 NONAME ; int hspswrapper::CHspsWrapper::RestoreRootL(void)
+ ?RestoreRomConfL@CHspsWrapper@hspswrapper@@QAEHXZ @ 68 NONAME ; int hspswrapper::CHspsWrapper::RestoreRomConfL(void)
+ ?SetPathL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 69 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetPathL(class TDesC8 const &)
+ ?PluginId@CAddPluginResult@hspswrapper@@QBEABVTDesC8@@XZ @ 70 NONAME ; class TDesC8 const & hspswrapper::CAddPluginResult::PluginId(void) const
??1CAddPluginResult@hspswrapper@@UAE@XZ @ 71 NONAME ; hspswrapper::CAddPluginResult::~CAddPluginResult(void)
?NewLC@CPluginMap@hspswrapper@@SAPAV12@XZ @ 72 NONAME ; class hspswrapper::CPluginMap * hspswrapper::CPluginMap::NewLC(void)
?ReplacePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0@Z @ 73 NONAME ; int hspswrapper::CHspsWrapper::ReplacePluginL(class TDesC8 const &, class TDesC8 const &)
@@ -76,8 +76,8 @@
?MaxChild@CPluginInfo@hspswrapper@@QBEABJXZ @ 75 NONAME ; long const & hspswrapper::CPluginInfo::MaxChild(void) const
?SetLockingStatusL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 76 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetLockingStatusL(class TDesC8 const &)
?ServiceHandler@CHspsWrapper@hspswrapper@@QBEPAVCLiwServiceHandler@@XZ @ 77 NONAME ; class CLiwServiceHandler * hspswrapper::CHspsWrapper::ServiceHandler(void) const
- ?Interface@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 78 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Interface(void) const
- ?SetActivePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 79 NONAME ; int hspswrapper::CHspsWrapper::SetActivePluginL(class TDesC8 const &)
+ ?SetActivePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 78 NONAME ; int hspswrapper::CHspsWrapper::SetActivePluginL(class TDesC8 const &)
+ ?Interface@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 79 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Interface(void) const
?SetDescriptionL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 80 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetDescriptionL(class TDesC8 const &)
?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0H@Z @ 81 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &, int)
?SetPluginIdL@CAddPluginResult@hspswrapper@@QAEXABVTDesC8@@@Z @ 82 NONAME ; void hspswrapper::CAddPluginResult::SetPluginIdL(class TDesC8 const &)
@@ -85,18 +85,19 @@
?SetTagL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 84 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetTagL(class TDesC8 const &)
?NewLC@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 85 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewLC(void)
?SetNameL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 86 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetNameL(class TDesC8 const &)
- ?SetMediaTypeL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 87 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetMediaTypeL(class TDesC8 const &)
- ?Tag@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 88 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::Tag(void) const
- ?SetItemIdL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 89 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemIdL(class TDesC8 const &)
- ?NewLC@CItemMap@hspswrapper@@SAPAV12@XZ @ 90 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewLC(void)
- ?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC16@@@Z @ 91 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC16 const &)
- ?SetInterfaceL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 92 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetInterfaceL(class TDesC8 const &)
- ?AddPluginMapL@CHspsConfiguration@hspswrapper@@QAEAAV12@PAVCPluginMap@2@@Z @ 93 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::AddPluginMapL(class hspswrapper::CPluginMap *)
- ?RemovePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 94 NONAME ; int hspswrapper::CHspsWrapper::RemovePluginL(class TDesC8 const &)
- ?LockingStatus@CPluginMap@hspswrapper@@QBEABVTDesC8@@XZ @ 95 NONAME ; class TDesC8 const & hspswrapper::CPluginMap::LockingStatus(void) const
+ ?RestoreViewsL@CHspsWrapper@hspswrapper@@QAEHXZ @ 87 NONAME ; int hspswrapper::CHspsWrapper::RestoreViewsL(void)
+ ?SetMediaTypeL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 88 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetMediaTypeL(class TDesC8 const &)
+ ?Tag@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 89 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::Tag(void) const
+ ?SetItemIdL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 90 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemIdL(class TDesC8 const &)
+ ?NewLC@CItemMap@hspswrapper@@SAPAV12@XZ @ 91 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewLC(void)
+ ?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC16@@@Z @ 92 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC16 const &)
+ ?SetInterfaceL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 93 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetInterfaceL(class TDesC8 const &)
+ ?AddPluginMapL@CHspsConfiguration@hspswrapper@@QAEAAV12@PAVCPluginMap@2@@Z @ 94 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::AddPluginMapL(class hspswrapper::CPluginMap *)
+ ?RemovePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 95 NONAME ; int hspswrapper::CHspsWrapper::RemovePluginL(class TDesC8 const &)
?SetActivationStateL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 96 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetActivationStateL(class TDesC8 const &)
- ?Type@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 97 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Type(void) const
- ?SetConfIdL@CHspsConfiguration@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 98 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::SetConfIdL(class TDesC8 const &)
- ?NewLC@CPropertyMap@hspswrapper@@SAPAV12@XZ @ 99 NONAME ; class hspswrapper::CPropertyMap * hspswrapper::CPropertyMap::NewLC(void)
- ??0CAddPluginResult@hspswrapper@@AAE@XZ @ 100 NONAME ; hspswrapper::CAddPluginResult::CAddPluginResult(void)
+ ?LockingStatus@CPluginMap@hspswrapper@@QBEABVTDesC8@@XZ @ 97 NONAME ; class TDesC8 const & hspswrapper::CPluginMap::LockingStatus(void) const
+ ?Type@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 98 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Type(void) const
+ ?SetConfIdL@CHspsConfiguration@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 99 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::SetConfIdL(class TDesC8 const &)
+ ?NewLC@CPropertyMap@hspswrapper@@SAPAV12@XZ @ 100 NONAME ; class hspswrapper::CPropertyMap * hspswrapper::CPropertyMap::NewLC(void)
+ ??0CAddPluginResult@hspswrapper@@AAE@XZ @ 101 NONAME ; hspswrapper::CAddPluginResult::CAddPluginResult(void)
--- a/idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def Tue May 25 12:29:32 2010 +0300
@@ -36,100 +36,101 @@
_ZN11hspswrapper12CHspsWrapper10AddPluginLERK6TDesC8S3_i @ 35 NONAME
_ZN11hspswrapper12CHspsWrapper11GetPluginsLER13RPointerArrayINS_11CPluginInfoEERK6TDesC8S7_ @ 36 NONAME
_ZN11hspswrapper12CHspsWrapper12MovePluginsLERK6TDesC8RK11MDesC8Array @ 37 NONAME
- _ZN11hspswrapper12CHspsWrapper12RestoreRootLEv @ 38 NONAME
- _ZN11hspswrapper12CHspsWrapper13RemovePluginLERK6TDesC8 @ 39 NONAME
+ _ZN11hspswrapper12CHspsWrapper13RemovePluginLERK6TDesC8 @ 38 NONAME
+ _ZN11hspswrapper12CHspsWrapper13RestoreViewsLEv @ 39 NONAME
_ZN11hspswrapper12CHspsWrapper13SetConfStateLERK6TDesC8S3_i @ 40 NONAME
_ZN11hspswrapper12CHspsWrapper14ReplacePluginLERK6TDesC8S3_ @ 41 NONAME
- _ZN11hspswrapper12CHspsWrapper16SetActivePluginLERK6TDesC8 @ 42 NONAME
- _ZN11hspswrapper12CHspsWrapper18SetPluginSettingsLERK6TDesC8RK13RPointerArrayINS_8CItemMapEE @ 43 NONAME
- _ZN11hspswrapper12CHspsWrapper19RestoreDefaultConfLEv @ 44 NONAME
- _ZN11hspswrapper12CHspsWrapper20GetAppConfigurationLEv @ 45 NONAME
- _ZN11hspswrapper12CHspsWrapper20SetAppConfigurationLERK6TDesC8 @ 46 NONAME
- _ZN11hspswrapper12CHspsWrapper21GetAppConfigurationsLER13RPointerArrayINS_11CPluginInfoEE @ 47 NONAME
- _ZN11hspswrapper12CHspsWrapper23GetPluginConfigurationLERK6TDesC8 @ 48 NONAME
- _ZN11hspswrapper12CHspsWrapper4NewLERK6TDesC8PNS_20MHspsWrapperObserverE @ 49 NONAME
- _ZN11hspswrapper12CHspsWrapper5NewLCERK6TDesC8PNS_20MHspsWrapperObserverE @ 50 NONAME
- _ZN11hspswrapper12CHspsWrapperD0Ev @ 51 NONAME
- _ZN11hspswrapper12CHspsWrapperD1Ev @ 52 NONAME
- _ZN11hspswrapper12CHspsWrapperD2Ev @ 53 NONAME
- _ZN11hspswrapper12CPropertyMap4NewLEv @ 54 NONAME
- _ZN11hspswrapper12CPropertyMap5NewLCEv @ 55 NONAME
- _ZN11hspswrapper12CPropertyMap8SetNameLERK6TDesC8 @ 56 NONAME
- _ZN11hspswrapper12CPropertyMap9SetValueLERK6TDesC8 @ 57 NONAME
- _ZN11hspswrapper12CPropertyMapD0Ev @ 58 NONAME
- _ZN11hspswrapper12CPropertyMapD1Ev @ 59 NONAME
- _ZN11hspswrapper12CPropertyMapD2Ev @ 60 NONAME
- _ZN11hspswrapper16CAddPluginResult12SetPluginIdLERK6TDesC8 @ 61 NONAME
- _ZN11hspswrapper16CAddPluginResult4NewLEv @ 62 NONAME
- _ZN11hspswrapper16CAddPluginResult9SetStatusEi @ 63 NONAME
- _ZN11hspswrapper16CAddPluginResultC1Ev @ 64 NONAME
- _ZN11hspswrapper16CAddPluginResultC2Ev @ 65 NONAME
- _ZN11hspswrapper16CAddPluginResultD0Ev @ 66 NONAME
- _ZN11hspswrapper16CAddPluginResultD1Ev @ 67 NONAME
- _ZN11hspswrapper16CAddPluginResultD2Ev @ 68 NONAME
- _ZN11hspswrapper18CHspsConfiguration10PluginInfoEv @ 69 NONAME
- _ZN11hspswrapper18CHspsConfiguration10PluginMapsEv @ 70 NONAME
- _ZN11hspswrapper18CHspsConfiguration10SetConfIdLERK6TDesC8 @ 71 NONAME
- _ZN11hspswrapper18CHspsConfiguration11AddItemMapLEPNS_8CItemMapE @ 72 NONAME
- _ZN11hspswrapper18CHspsConfiguration13AddObjectMapLEPNS_10CObjectMapE @ 73 NONAME
- _ZN11hspswrapper18CHspsConfiguration13AddPluginMapLEPNS_10CPluginMapE @ 74 NONAME
- _ZN11hspswrapper18CHspsConfiguration4NewLEv @ 75 NONAME
- _ZN11hspswrapper18CHspsConfiguration5NewLCEv @ 76 NONAME
- _ZN11hspswrapper18CHspsConfiguration8SettingsEv @ 77 NONAME
- _ZN11hspswrapper18CHspsConfiguration9ResourcesEv @ 78 NONAME
- _ZN11hspswrapper18CHspsConfigurationD0Ev @ 79 NONAME
- _ZN11hspswrapper18CHspsConfigurationD1Ev @ 80 NONAME
- _ZN11hspswrapper18CHspsConfigurationD2Ev @ 81 NONAME
- _ZN11hspswrapper8CItemMap10SetItemIdLERK6TDesC8 @ 82 NONAME
- _ZN11hspswrapper8CItemMap12SetItemNameLERK6TDesC8 @ 83 NONAME
- _ZN11hspswrapper8CItemMap15AddPropertyMapLEPNS_12CPropertyMapE @ 84 NONAME
- _ZN11hspswrapper8CItemMap4NewLEv @ 85 NONAME
- _ZN11hspswrapper8CItemMap5NewLCEv @ 86 NONAME
- _ZN11hspswrapper8CItemMapD0Ev @ 87 NONAME
- _ZN11hspswrapper8CItemMapD1Ev @ 88 NONAME
- _ZN11hspswrapper8CItemMapD2Ev @ 89 NONAME
- _ZNK11hspswrapper10CObjectMap3TagEv @ 90 NONAME
- _ZNK11hspswrapper10CObjectMap4PathEv @ 91 NONAME
- _ZNK11hspswrapper10CObjectMap5NameLEv @ 92 NONAME
- _ZNK11hspswrapper10CObjectMap9MediaTypeEv @ 93 NONAME
- _ZNK11hspswrapper10CPluginMap13LockingStatusEv @ 94 NONAME
- _ZNK11hspswrapper10CPluginMap15ActivationStateEv @ 95 NONAME
- _ZNK11hspswrapper10CPluginMap8PluginIdEv @ 96 NONAME
- _ZNK11hspswrapper10CPluginMap9PluginUidEv @ 97 NONAME
- _ZNK11hspswrapper11CPluginInfo11DescriptionEv @ 98 NONAME
- _ZNK11hspswrapper11CPluginInfo13MultiInstanceEv @ 99 NONAME
- _ZNK11hspswrapper11CPluginInfo18ConfigurationStateEv @ 100 NONAME
- _ZNK11hspswrapper11CPluginInfo3UidEv @ 101 NONAME
- _ZNK11hspswrapper11CPluginInfo4NameEv @ 102 NONAME
- _ZNK11hspswrapper11CPluginInfo4TypeEv @ 103 NONAME
- _ZNK11hspswrapper11CPluginInfo8LogoIconEv @ 104 NONAME
- _ZNK11hspswrapper11CPluginInfo8MaxChildEv @ 105 NONAME
- _ZNK11hspswrapper11CPluginInfo9InterfaceEv @ 106 NONAME
- _ZNK11hspswrapper12CHspsWrapper11HspsServiceEv @ 107 NONAME
- _ZNK11hspswrapper12CHspsWrapper13HspsInterfaceEv @ 108 NONAME
- _ZNK11hspswrapper12CHspsWrapper14ServiceHandlerEv @ 109 NONAME
- _ZNK11hspswrapper12CPropertyMap4NameEv @ 110 NONAME
- _ZNK11hspswrapper12CPropertyMap5ValueEv @ 111 NONAME
- _ZNK11hspswrapper16CAddPluginResult6StatusEv @ 112 NONAME
- _ZNK11hspswrapper16CAddPluginResult8PluginIdEv @ 113 NONAME
- _ZNK11hspswrapper18CHspsConfiguration6ConfIdEv @ 114 NONAME
- _ZNK11hspswrapper8CItemMap10PropertiesEv @ 115 NONAME
- _ZNK11hspswrapper8CItemMap6ItemIdEv @ 116 NONAME
- _ZNK11hspswrapper8CItemMap8ItemNameEv @ 117 NONAME
- _ZTIN11hspswrapper10CObjectMapE @ 118 NONAME
- _ZTIN11hspswrapper10CPluginMapE @ 119 NONAME
- _ZTIN11hspswrapper11CPluginInfoE @ 120 NONAME
- _ZTIN11hspswrapper12CHspsWrapperE @ 121 NONAME
- _ZTIN11hspswrapper12CPropertyMapE @ 122 NONAME
- _ZTIN11hspswrapper16CAddPluginResultE @ 123 NONAME
- _ZTIN11hspswrapper18CHspsConfigurationE @ 124 NONAME
- _ZTIN11hspswrapper8CItemMapE @ 125 NONAME
- _ZTVN11hspswrapper10CObjectMapE @ 126 NONAME
- _ZTVN11hspswrapper10CPluginMapE @ 127 NONAME
- _ZTVN11hspswrapper11CPluginInfoE @ 128 NONAME
- _ZTVN11hspswrapper12CHspsWrapperE @ 129 NONAME
- _ZTVN11hspswrapper12CPropertyMapE @ 130 NONAME
- _ZTVN11hspswrapper16CAddPluginResultE @ 131 NONAME
- _ZTVN11hspswrapper18CHspsConfigurationE @ 132 NONAME
- _ZTVN11hspswrapper8CItemMapE @ 133 NONAME
+ _ZN11hspswrapper12CHspsWrapper15RestoreRomConfLEv @ 42 NONAME
+ _ZN11hspswrapper12CHspsWrapper16SetActivePluginLERK6TDesC8 @ 43 NONAME
+ _ZN11hspswrapper12CHspsWrapper18SetPluginSettingsLERK6TDesC8RK13RPointerArrayINS_8CItemMapEE @ 44 NONAME
+ _ZN11hspswrapper12CHspsWrapper19RestoreDefaultConfLEv @ 45 NONAME
+ _ZN11hspswrapper12CHspsWrapper20GetAppConfigurationLEv @ 46 NONAME
+ _ZN11hspswrapper12CHspsWrapper20SetAppConfigurationLERK6TDesC8 @ 47 NONAME
+ _ZN11hspswrapper12CHspsWrapper21GetAppConfigurationsLER13RPointerArrayINS_11CPluginInfoEE @ 48 NONAME
+ _ZN11hspswrapper12CHspsWrapper23GetPluginConfigurationLERK6TDesC8 @ 49 NONAME
+ _ZN11hspswrapper12CHspsWrapper4NewLERK6TDesC8PNS_20MHspsWrapperObserverE @ 50 NONAME
+ _ZN11hspswrapper12CHspsWrapper5NewLCERK6TDesC8PNS_20MHspsWrapperObserverE @ 51 NONAME
+ _ZN11hspswrapper12CHspsWrapperD0Ev @ 52 NONAME
+ _ZN11hspswrapper12CHspsWrapperD1Ev @ 53 NONAME
+ _ZN11hspswrapper12CHspsWrapperD2Ev @ 54 NONAME
+ _ZN11hspswrapper12CPropertyMap4NewLEv @ 55 NONAME
+ _ZN11hspswrapper12CPropertyMap5NewLCEv @ 56 NONAME
+ _ZN11hspswrapper12CPropertyMap8SetNameLERK6TDesC8 @ 57 NONAME
+ _ZN11hspswrapper12CPropertyMap9SetValueLERK6TDesC8 @ 58 NONAME
+ _ZN11hspswrapper12CPropertyMapD0Ev @ 59 NONAME
+ _ZN11hspswrapper12CPropertyMapD1Ev @ 60 NONAME
+ _ZN11hspswrapper12CPropertyMapD2Ev @ 61 NONAME
+ _ZN11hspswrapper16CAddPluginResult12SetPluginIdLERK6TDesC8 @ 62 NONAME
+ _ZN11hspswrapper16CAddPluginResult4NewLEv @ 63 NONAME
+ _ZN11hspswrapper16CAddPluginResult9SetStatusEi @ 64 NONAME
+ _ZN11hspswrapper16CAddPluginResultC1Ev @ 65 NONAME
+ _ZN11hspswrapper16CAddPluginResultC2Ev @ 66 NONAME
+ _ZN11hspswrapper16CAddPluginResultD0Ev @ 67 NONAME
+ _ZN11hspswrapper16CAddPluginResultD1Ev @ 68 NONAME
+ _ZN11hspswrapper16CAddPluginResultD2Ev @ 69 NONAME
+ _ZN11hspswrapper18CHspsConfiguration10PluginInfoEv @ 70 NONAME
+ _ZN11hspswrapper18CHspsConfiguration10PluginMapsEv @ 71 NONAME
+ _ZN11hspswrapper18CHspsConfiguration10SetConfIdLERK6TDesC8 @ 72 NONAME
+ _ZN11hspswrapper18CHspsConfiguration11AddItemMapLEPNS_8CItemMapE @ 73 NONAME
+ _ZN11hspswrapper18CHspsConfiguration13AddObjectMapLEPNS_10CObjectMapE @ 74 NONAME
+ _ZN11hspswrapper18CHspsConfiguration13AddPluginMapLEPNS_10CPluginMapE @ 75 NONAME
+ _ZN11hspswrapper18CHspsConfiguration4NewLEv @ 76 NONAME
+ _ZN11hspswrapper18CHspsConfiguration5NewLCEv @ 77 NONAME
+ _ZN11hspswrapper18CHspsConfiguration8SettingsEv @ 78 NONAME
+ _ZN11hspswrapper18CHspsConfiguration9ResourcesEv @ 79 NONAME
+ _ZN11hspswrapper18CHspsConfigurationD0Ev @ 80 NONAME
+ _ZN11hspswrapper18CHspsConfigurationD1Ev @ 81 NONAME
+ _ZN11hspswrapper18CHspsConfigurationD2Ev @ 82 NONAME
+ _ZN11hspswrapper8CItemMap10SetItemIdLERK6TDesC8 @ 83 NONAME
+ _ZN11hspswrapper8CItemMap12SetItemNameLERK6TDesC8 @ 84 NONAME
+ _ZN11hspswrapper8CItemMap15AddPropertyMapLEPNS_12CPropertyMapE @ 85 NONAME
+ _ZN11hspswrapper8CItemMap4NewLEv @ 86 NONAME
+ _ZN11hspswrapper8CItemMap5NewLCEv @ 87 NONAME
+ _ZN11hspswrapper8CItemMapD0Ev @ 88 NONAME
+ _ZN11hspswrapper8CItemMapD1Ev @ 89 NONAME
+ _ZN11hspswrapper8CItemMapD2Ev @ 90 NONAME
+ _ZNK11hspswrapper10CObjectMap3TagEv @ 91 NONAME
+ _ZNK11hspswrapper10CObjectMap4PathEv @ 92 NONAME
+ _ZNK11hspswrapper10CObjectMap5NameLEv @ 93 NONAME
+ _ZNK11hspswrapper10CObjectMap9MediaTypeEv @ 94 NONAME
+ _ZNK11hspswrapper10CPluginMap13LockingStatusEv @ 95 NONAME
+ _ZNK11hspswrapper10CPluginMap15ActivationStateEv @ 96 NONAME
+ _ZNK11hspswrapper10CPluginMap8PluginIdEv @ 97 NONAME
+ _ZNK11hspswrapper10CPluginMap9PluginUidEv @ 98 NONAME
+ _ZNK11hspswrapper11CPluginInfo11DescriptionEv @ 99 NONAME
+ _ZNK11hspswrapper11CPluginInfo13MultiInstanceEv @ 100 NONAME
+ _ZNK11hspswrapper11CPluginInfo18ConfigurationStateEv @ 101 NONAME
+ _ZNK11hspswrapper11CPluginInfo3UidEv @ 102 NONAME
+ _ZNK11hspswrapper11CPluginInfo4NameEv @ 103 NONAME
+ _ZNK11hspswrapper11CPluginInfo4TypeEv @ 104 NONAME
+ _ZNK11hspswrapper11CPluginInfo8LogoIconEv @ 105 NONAME
+ _ZNK11hspswrapper11CPluginInfo8MaxChildEv @ 106 NONAME
+ _ZNK11hspswrapper11CPluginInfo9InterfaceEv @ 107 NONAME
+ _ZNK11hspswrapper12CHspsWrapper11HspsServiceEv @ 108 NONAME
+ _ZNK11hspswrapper12CHspsWrapper13HspsInterfaceEv @ 109 NONAME
+ _ZNK11hspswrapper12CHspsWrapper14ServiceHandlerEv @ 110 NONAME
+ _ZNK11hspswrapper12CPropertyMap4NameEv @ 111 NONAME
+ _ZNK11hspswrapper12CPropertyMap5ValueEv @ 112 NONAME
+ _ZNK11hspswrapper16CAddPluginResult6StatusEv @ 113 NONAME
+ _ZNK11hspswrapper16CAddPluginResult8PluginIdEv @ 114 NONAME
+ _ZNK11hspswrapper18CHspsConfiguration6ConfIdEv @ 115 NONAME
+ _ZNK11hspswrapper8CItemMap10PropertiesEv @ 116 NONAME
+ _ZNK11hspswrapper8CItemMap6ItemIdEv @ 117 NONAME
+ _ZNK11hspswrapper8CItemMap8ItemNameEv @ 118 NONAME
+ _ZTIN11hspswrapper10CObjectMapE @ 119 NONAME
+ _ZTIN11hspswrapper10CPluginMapE @ 120 NONAME
+ _ZTIN11hspswrapper11CPluginInfoE @ 121 NONAME
+ _ZTIN11hspswrapper12CHspsWrapperE @ 122 NONAME
+ _ZTIN11hspswrapper12CPropertyMapE @ 123 NONAME
+ _ZTIN11hspswrapper16CAddPluginResultE @ 124 NONAME
+ _ZTIN11hspswrapper18CHspsConfigurationE @ 125 NONAME
+ _ZTIN11hspswrapper8CItemMapE @ 126 NONAME
+ _ZTVN11hspswrapper10CObjectMapE @ 127 NONAME
+ _ZTVN11hspswrapper10CPluginMapE @ 128 NONAME
+ _ZTVN11hspswrapper11CPluginInfoE @ 129 NONAME
+ _ZTVN11hspswrapper12CHspsWrapperE @ 130 NONAME
+ _ZTVN11hspswrapper12CPropertyMapE @ 131 NONAME
+ _ZTVN11hspswrapper16CAddPluginResultE @ 132 NONAME
+ _ZTVN11hspswrapper18CHspsConfigurationE @ 133 NONAME
+ _ZTVN11hspswrapper8CItemMapE @ 134 NONAME
--- a/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h Tue May 25 12:29:32 2010 +0300
@@ -235,21 +235,30 @@
* @return Operation status. KErrNone (success), KErrNotFound
*/
IMPORT_C TInt SetActivePluginL(const TDesC8& aPluginId);
-
- /**
- * Removes all but one view and removes all plugins from it.
- *
- * @return Operation status. KErrNone (success), KErrNotFound
- */
- IMPORT_C TInt RestoreRootL();
-
+
/**
- * Restore (re-install) default configuration from ROM.
+ * Restores plug-in configurations from eMMC, UDA and ROM drives.
*
* @return Operation status. KErrNone (success), KErrNotFound
*/
IMPORT_C TInt RestoreDefaultConfL();
-
+
+ /**
+ * Restores plug-in configurations from ROM only. To be used if content
+ * in UDA and eMMC drives is causing panics.
+ *
+ * @return Operation status. KErrNone (success), KErrNotFound
+ */
+ IMPORT_C TInt RestoreRomConfL();
+
+ /**
+ * Restores active application configuration by removing all extra views,
+ * all plug-ins will be removed also.
+ *
+ * @return Operation status. KErrNone (success), KErrNotFound
+ */
+ IMPORT_C TInt RestoreViewsL();
+
/**
* Replace plugin in the active configuration.
*
--- a/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp Tue May 25 12:29:32 2010 +0300
@@ -68,8 +68,9 @@
_LIT8( KRequestNotification, "RequestNotification" );
_LIT8( KHSPSCommandRestoreConfigurations, "RestoreConfigurations" );
_LIT8( KRestore, "restore" );
-_LIT8( KActive, "active" );
-_LIT8( KAll, "all" );
+_LIT8( KRestoreDefault, "default" );
+_LIT8( KRestoreRom, "rom" );
+_LIT8( KRestoreViews, "views" );
_LIT8( K0, "0" );
_LIT8( K1, "1" );
_LIT8( KPluginIdNotSet, "-1" );
@@ -785,14 +786,50 @@
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
-EXPORT_C TInt CHspsWrapper::RestoreRootL()
+EXPORT_C TInt CHspsWrapper::RestoreViewsL()
{
CLiwGenericParamList& inParamList = iServiceHandler->InParamListL();
CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL();
// Compose Liw message
TLiwGenericParam restoreTypeParam;
- restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KAll ) );
+ restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KRestoreViews ) );
+ restoreTypeParam.PushL();
+ inParamList.AppendL( restoreTypeParam );
+ CleanupStack::Pop( &restoreTypeParam );
+ restoreTypeParam.Reset();
+
+ iHspsInterface->ExecuteCmdL( KHSPSCommandRestoreConfigurations,
+ inParamList,
+ outParamList );
+
+ inParamList.Reset();
+
+ // check success
+ const TLiwGenericParam* outParam = NULL;
+ TInt pos(0);
+ outParam = outParamList.FindFirst( pos, KOutKeyStatus );
+ TInt status(KErrGeneral);
+
+ if ( outParam )
+ {
+ status = outParam->Value().AsTInt32();
+ }
+ outParamList.Reset();
+ return status;
+ }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CHspsWrapper::RestoreRomConfL()
+ {
+ CLiwGenericParamList& inParamList = iServiceHandler->InParamListL();
+ CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL();
+
+ // Compose Liw message
+ TLiwGenericParam restoreTypeParam;
+ restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KRestoreRom ) );
restoreTypeParam.PushL();
inParamList.AppendL( restoreTypeParam );
CleanupStack::Pop( &restoreTypeParam );
@@ -828,7 +865,7 @@
// Compose Liw message
TLiwGenericParam restoreTypeParam;
- restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KActive ) );
+ restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KRestoreDefault ) );
restoreTypeParam.PushL();
inParamList.AppendL( restoreTypeParam );
CleanupStack::Pop( &restoreTypeParam );
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Tue May 25 12:29:32 2010 +0300
@@ -1224,8 +1224,17 @@
if ( iFindbox && !iFindPaneIsVisible &&
iWidgetsList->Model()->NumberOfItems() > KMinWidgets )
{
- // reset focus
- ResetFocus();
+ // set focus
+ if ( iWidgetsList->ItemDrawer()->Flags()
+ & CListItemDrawer::ESingleClickDisabledHighlight )
+ {
+ ResetFocus();
+ }
+ else
+ {
+ iWidgetsList->SetFocus( ETrue, EDrawNow );
+ }
+
// set column filter flag
TBitFlags32 bitFlag;
@@ -1296,7 +1305,16 @@
m->RemoveFilter();
}
- ResetFocus();
+ //set focus
+ if ( iWidgetsList->ItemDrawer()->Flags()
+ & CListItemDrawer::ESingleClickDisabledHighlight )
+ {
+ ResetFocus();
+ }
+ else
+ {
+ iWidgetsList->SetFocus( ETrue, EDrawNow );
+ }
iFindbox->MakeVisible( EFalse );
iFindPaneIsVisible = EFalse;
@@ -1488,6 +1506,19 @@
{
AddWidgetToHomeScreenL();
}
+ else
+ {
+ if ( iWidgetsList->ItemDrawer()->Flags()
+ & CListItemDrawer::ESingleClickDisabledHighlight )
+ {
+ ResetFocus();
+ }
+ else
+ {
+ iWidgetsList->SetFocus( ETrue, EDrawNow );
+ UpdateFocusMode();
+ }
+ }
}
}
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h Tue May 25 12:29:32 2010 +0300
@@ -281,9 +281,9 @@
RPointerArray< CHsContentInfo >& aWidgets );
/**
- * Resets runtime cache.
+ * Resets pluging configurations and templated publishers.
*/
- void ResetCache();
+ void ResetPluginsAndPublishers();
/**
* Retrieves native application configuration plugins from HSPS
@@ -311,6 +311,9 @@
*/
TBool IsViewFull( CXnViewData& aViewData );
+ /** callback for notify widget launcher */
+ static TInt WidgetListChangedCallBack( TAny* aSelf );
+
private:
// from MXnViewObserver
@@ -336,6 +339,8 @@
void NotifyWidgetRegisteredL();
+ void NotifyWidgetUpdatedL();
+
private:
// from MHspsWrapperObserver
@@ -362,9 +367,12 @@
TBool iWidgetsVisibilityState;
/** Central repository , to choose plugin, owned*/
CRepository* iRepository;
- /** Plugins cache, owned */
- RPointerArray< hspswrapper::CPluginInfo > iPluginsCache;
+ /** Widget/template plugin configurations, owned */
+ RPointerArray< hspswrapper::CPluginInfo > iPluginConfigurations;
+ /** Oom handler, owned. */
CXnOomSysHandler* iOomSysHandler;
+ /** Launcher for notifying widget updates */
+ CPeriodic* iNotifyWidgetUpdate;
};
#endif // C_XNEDITOR_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnpopupcontroladapter.h Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnpopupcontroladapter.h Tue May 25 12:29:32 2010 +0300
@@ -102,11 +102,15 @@
*/
void HandleScreenDeviceChangedL();
+ /*
+ * Closes stylus popup menu if it is open
+ */
+ void HideMenuL();
+
private:
// New functions
void PopulateMenuL( CXnPluginData& aPlugin, CXnNode* aItem );
void ShowMenuL( CXnPluginData& aPlugin, TPoint aPosition );
- void HideMenuL();
private:
// Data
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Tue May 25 12:29:32 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description: View control adater.
+* Description: View control adapter
*
*/
@@ -27,9 +27,7 @@
// Forward declarations
class CXnNodePluginIf;
-class CXnBackgroundManager;
class CXnAppUiAdapter;
-class CXnViewFlicker;
// Class declaration
/**
@@ -75,18 +73,12 @@
// new functions
/**
- * Resets grabbing
+ * Resets pointer grabbing
*
* @since S60 5.2
*/
void ResetGrabbing();
-
-private:
- // new functions
-
- void RemoveGrabbingControL(
- const CCoeControl* aControl, const TPointerEvent& aEvent ) const;
-
+
private:
// from MXnUiStateObserver
@@ -125,10 +117,8 @@
CXnNodePluginIf& iNode;
/** AppUi */
CXnAppUiAdapter& iAppUi;
- /** stored point of EButton1Down */
- TPoint iHitpoint;
};
-#endif // _XNVIEWCONTROLADAPTER_H
+#endif // _XNVIEWCONTROLADAPTER_H
// End of File
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Tue May 25 12:29:32 2010 +0300
@@ -3791,12 +3791,22 @@
{
CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >(
appui.ViewManager().ActiveViewData().ViewNode()->Control() );
-
- control->IgnoreEventsUntilNextPointerUp();
+
control->ResetGrabbing();
+
+#ifdef RD_TACTILE_FEEDBACK
+ MTouchFeedback* feedback( MTouchFeedback::Instance() );
+
+ if ( feedback )
+ {
+ feedback->InstantFeedback( iAdapter, ETouchFeedbackBasic,
+ ETouchFeedbackVibra, TPointerEvent() );
+
+ }
+#endif
}
- // Indicate long tap has taken place
+ // Indicate long tap has taken place
iLongtap = ETrue;
CXnNode* hold = BuildTriggerNodeL( *engine,
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Tue May 25 12:29:32 2010 +0300
@@ -57,6 +57,7 @@
#include "xnviewdata.h"
#include "xnwallpaperview.h"
#include "xnbackgroundmanager.h"
+#include "xnpopupcontroladapter.h"
#include "xneditor.h"
#include "xnpanic.h"
@@ -92,6 +93,8 @@
ECanBeRemoved
};
+const TInt KNotifyWidgetUpdateDelay( 1000000 ); //1sec
+
// ====================== LOCAL FUNTION PROTOTYPES ============================
static void DeletePluginInfos( TAny* aObject );
static void DeleteItemMaps( TAny* aObject );
@@ -309,6 +312,7 @@
iHspsWrapper = CHspsWrapper::NewL( aUid, this );
iRepository= CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) );
iOomSysHandler = CXnOomSysHandler::NewL();
+ iNotifyWidgetUpdate = CPeriodic::New( CActive::EPriorityIdle );
}
// ---------------------------------------------------------------------------
@@ -317,10 +321,16 @@
//
CXnEditor::~CXnEditor()
{
+ if ( iNotifyWidgetUpdate->IsActive() )
+ {
+ iNotifyWidgetUpdate->Cancel();
+ }
+ delete iNotifyWidgetUpdate;
+
iViewManager.RemoveObserver( *this );
- if( iPluginsCache.Count() )
+ if( iPluginConfigurations.Count() )
{
- iPluginsCache.ResetAndDestroy();
+ iPluginConfigurations.ResetAndDestroy();
}
delete iCpsWrapper;
delete iHspsWrapper;
@@ -609,6 +619,18 @@
}
if( ui )
{
+ CXnNode* popup( iViewManager.UiEngine().StylusPopupNode() );
+ if ( popup )
+ {
+ CXnPopupControlAdapter* control =
+ static_cast< CXnPopupControlAdapter* >(
+ popup->Control() );
+
+ if ( control )
+ {
+ control->HideMenuL();
+ }
+ }
ui->SetContentController( this );
ui->Activate();
@@ -872,11 +894,10 @@
void CXnEditor::CpsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets )
{
// Get publishers from CPS
+ delete iPublisherMap;
+ iPublisherMap = NULL;
- if( !iPublisherMap )
- {
- iPublisherMap = iCpsWrapper->GetTemplatedPublishersL();
- }
+ iPublisherMap = iCpsWrapper->GetTemplatedPublishersL();
RPointerArray< CPublisherInfo >& publisherInfo( iPublisherMap->PublisherInfo() );
@@ -885,13 +906,13 @@
{
CPublisherInfo* info( publisherInfo[i] );
- for ( TInt j = 0; j < iPluginsCache.Count(); j++ )
+ for ( TInt j = 0; j < iPluginConfigurations.Count(); j++ )
{
- if( iPluginsCache[j]->Name().Length() > 0 )
+ if( iPluginConfigurations[j]->Name().Length() > 0 )
{
// 8 to 16bit conv
- HBufC* nameBuf = HBufC::NewLC( iPluginsCache[j]->Name().Length() );
- nameBuf->Des().Copy( iPluginsCache[j]->Name() );
+ HBufC* nameBuf = HBufC::NewLC( iPluginConfigurations[j]->Name().Length() );
+ nameBuf->Des().Copy( iPluginConfigurations[j]->Name() );
TBool matchingNames = ( nameBuf->Des() == info->TemplateType() );
CleanupStack::PopAndDestroy();
if ( matchingNames )
@@ -903,8 +924,8 @@
contentInfo->SetNameL( info->WidgetName() );
contentInfo->SetPublisherIdL( info->PublisherId() );
contentInfo->SetMaxWidgets( info->MaxWidgets() );
- contentInfo->SetUidL( iPluginsCache[j]->Uid() );
- contentInfo->SetTypeL( iPluginsCache[j]->Type() );
+ contentInfo->SetUidL( iPluginConfigurations[j]->Uid() );
+ contentInfo->SetTypeL( iPluginConfigurations[j]->Type() );
contentInfo->SetDescriptionL( info->Description() );
contentInfo->SetIconPathL( info->LogoIcon() );
contentInfo->SetIsWrt( info->ContentType() == KWRTTemplate() );
@@ -1328,7 +1349,7 @@
//
void CXnEditor::NotifyWidgetUnregisteredL( const TDesC& aPublisher )
{
- ResetCache();
+ ResetPluginsAndPublishers();
RemoveUnRegisteredWidgetL( aPublisher );
WidgetListChanged();
}
@@ -1339,11 +1360,46 @@
//
void CXnEditor::NotifyWidgetRegisteredL()
{
- ResetCache();
+ ResetPluginsAndPublishers();
WidgetListChanged();
}
// ---------------------------------------------------------------------------
+// CXnEditor::NotifyWidgetUpdatedL
+// ---------------------------------------------------------------------------
+//
+void CXnEditor::NotifyWidgetUpdatedL()
+ {
+ if ( iNotifyWidgetUpdate->IsActive() )
+ {
+ iNotifyWidgetUpdate->Cancel();
+ }
+ // start waiting for widget updates (wait time is 1sec).
+ // if no new updates, notify views about changes. otherwise
+ // start waiting for new updates again.
+ iNotifyWidgetUpdate->Start(
+ KNotifyWidgetUpdateDelay,
+ KNotifyWidgetUpdateDelay,
+ TCallBack( WidgetListChangedCallBack, this ) );
+ }
+
+// ---------------------------------------------------------------------------
+// CXnEditor::WidgetListChangedCallBack
+// ---------------------------------------------------------------------------
+//
+TInt CXnEditor::WidgetListChangedCallBack( TAny* aSelf )
+ {
+ CXnEditor* editor = static_cast<CXnEditor*>( aSelf );
+ if ( editor && editor->iNotifyWidgetUpdate->IsActive() )
+ {
+ // prevent multiple events
+ editor->iNotifyWidgetUpdate->Cancel();
+ editor->WidgetListChanged();
+ }
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
// CXnEditor::NotifyViewDeactivatedL
// ---------------------------------------------------------------------------
//
@@ -1403,7 +1459,7 @@
{
if ( aEvent == KEventPluginUnInstalled )
{
- ResetCache();
+ ResetPluginsAndPublishers();
CHsContentInfo* info = CHsContentInfo::NewLC();
@@ -1422,13 +1478,13 @@
}
else if ( aEvent == KEventPluginInstalled )
{
- ResetCache();
+ ResetPluginsAndPublishers();
WidgetListChanged();
}
else if ( aEvent == KEventPluginUpdated )
{
- ResetCache();
+ ResetPluginsAndPublishers();
// If the plugin is in use then reload the widget
if ( aPluginId.Length() > 0 )
@@ -1540,13 +1596,13 @@
}
// -----------------------------------------------------------------------------
-// CXnEditor::ResetCache
+// CXnEditor::ResetPluginsAndPublishers
// -----------------------------------------------------------------------------
//
-void CXnEditor::ResetCache()
+void CXnEditor::ResetPluginsAndPublishers()
{
// Force loading of widget/template plugin configurations
- iPluginsCache.ResetAndDestroy();
+ iPluginConfigurations.ResetAndDestroy();
// Forece reloading of CPS publishers
delete iPublisherMap;
@@ -1596,19 +1652,19 @@
__ASSERT_DEBUG( aWidgets.Count() == 0, User::Leave( KErrGeneral ) );
// If widget/template plugins haven't been fetched yet
- if( iPluginsCache.Count() == 0 )
+ if( iPluginConfigurations.Count() == 0 )
{
// Fetch the plugins into the runtime cache
TRAPD( err, DoHspsWidgetPluginsL() );
if( err )
{
- ResetCache();
+ ResetPluginsAndPublishers();
User::LeaveIfError( err );
}
}
// Append plugins to the content info array
- AppendPluginsL( iPluginsCache, aWidgets );
+ AppendPluginsL( iPluginConfigurations, aWidgets );
}
// -----------------------------------------------------------------------------
@@ -1617,8 +1673,8 @@
//
void CXnEditor::DoHspsWidgetPluginsL()
{
- iHspsWrapper->GetPluginsL( iPluginsCache, KPluginInterface, KKeyWidget );
- iHspsWrapper->GetPluginsL( iPluginsCache, KPluginInterface, KKeyTemplate );
+ iHspsWrapper->GetPluginsL( iPluginConfigurations, KPluginInterface, KKeyWidget );
+ iHspsWrapper->GetPluginsL( iPluginConfigurations, KPluginInterface, KKeyTemplate );
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Tue May 25 12:29:32 2010 +0300
@@ -19,7 +19,6 @@
#include <e32base.h>
#include <e32const.h>
#include <coecntrl.h>
-#include <AknUtils.h>
#include <aknstyluspopupmenu.h>
// User includes
@@ -145,6 +144,8 @@
iNode = &aNode.Node();
iUiEngine = iNode->UiEngine();
+
+ iMenuShown = EFalse;
}
// -----------------------------------------------------------------------------
@@ -341,17 +342,9 @@
CXnNode* plugin( aPlugin.Owner()->LayoutNode() );
iUiEngine->Editor()->SetTargetPlugin( plugin );
-
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iStylusPopupMenu->SetPosition( aPosition,
- CAknStylusPopUpMenu::EPositionTypeRightBottom );
- }
- else
- {
- iStylusPopupMenu->SetPosition( aPosition,
- CAknStylusPopUpMenu::EPositionTypeLeftBottom );
- }
+
+ iStylusPopupMenu->SetPosition( aPosition,
+ CAknStylusPopUpMenu::EPositionTypeRightBottom );
iStylusPopupMenu->ShowMenu();
iMenuShown = ETrue;
@@ -375,4 +368,5 @@
}
}
+
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue May 25 12:29:32 2010 +0300
@@ -591,6 +591,17 @@
CXnNode* node( aContainer.Node()->LayoutNode() );
+ CXnDomStringPool* sp( node->DomNode()->StringPool() );
+
+ CXnProperty* prop = CXnProperty::NewL(
+ XnPropertyNames::style::common::KDisplay,
+ XnPropertyNames::style::common::display::KBlock,
+ CXnDomPropertyValue::EString, *sp );
+ CleanupStack::PushL( prop );
+
+ node->SetPropertyWithoutNotificationL( prop );
+ CleanupStack::Pop( prop );
+
node->ReportXuikonEventL( *iActivate );
if ( iFlags.IsSet( EIsInCall ) )
@@ -731,15 +742,26 @@
// Run controls to powersave mode
ChangeControlsStateL( EFalse );
+ CXnNode* node( iContainer->Node()->LayoutNode() );
+
+ CXnDomStringPool* sp( node->DomNode()->StringPool() );
+
+ CXnProperty* prop = CXnProperty::NewL(
+ XnPropertyNames::style::common::KDisplay,
+ XnPropertyNames::style::common::display::KNone,
+ CXnDomPropertyValue::EString, *sp );
+ CleanupStack::PushL( prop );
+
+ node->SetPropertyWithoutNotificationL( prop );
+ CleanupStack::Pop( prop );
+
if ( !iDeactivate )
{
iDeactivate = BuildDeactivateTriggerL( iAppUiAdapter.UiEngine() );
}
-
- CXnNode* node( iContainer->Node()->LayoutNode() );
-
+
node->ReportXuikonEventL( *iDeactivate );
-
+
if ( aHide )
{
node->Control()->MakeVisible( EFalse );
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Tue May 25 12:29:32 2010 +0300
@@ -11,29 +11,53 @@
*
* Contributors:
*
-* Description: Implementation for wrapper for a box
+* Description: View control adapter
*
*/
// System includes
-#include <gfxtranseffect/gfxtranseffect.h>
-#include <akntransitionutils.h>
// User includes
#include "xnappuiadapter.h"
#include "xnuiengine.h"
+#include "xnnodepluginif.h"
#include "xnnode.h"
+
+#include "xndomdocument.h"
#include "xndomnode.h"
-#include "xnnodepluginif.h"
#include "xnproperty.h"
-#include "xnviewadapter.h"
-#include "xnbackgroundmanager.h"
-#include "xnviewdata.h"
-#include "xnviewmanager.h"
+
#include "xnviewcontroladapter.h"
// Constants
+// ============================ LOCAL FUNCTIONS ================================
+// -----------------------------------------------------------------------------
+// ResetGrabbingL
+// Removes recursively grabbing controls
+// -----------------------------------------------------------------------------
+//
+static void ResetGrabbingL( CXnControlAdapter* aControl,
+ const TPointerEvent& aEvent )
+ {
+ if ( aControl )
+ {
+ CCoeControl* grabber( aControl->GrabbingComponent() );
+
+ if ( grabber )
+ {
+ grabber->IgnoreEventsUntilNextPointerUp();
+
+ aControl->CCoeControl::HandlePointerEventL( aEvent );
+
+ CXnControlAdapter* adapter =
+ dynamic_cast< CXnControlAdapter* >( grabber );
+
+ ResetGrabbingL( adapter, aEvent );
+ }
+ }
+ }
+
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -77,6 +101,18 @@
SetComponentsToInheritVisibility( ETrue );
iAppUi.UiStateListener().AddObserver( *this );
+
+ // By default all views are invisible during construction phase
+ CXnDomStringPool* sp( aNode.Node().DomNode()->StringPool() );
+
+ CXnProperty* prop = CXnProperty::NewL(
+ XnPropertyNames::style::common::KDisplay,
+ XnPropertyNames::style::common::display::KNone,
+ CXnDomPropertyValue::EString, *sp );
+ CleanupStack::PushL( prop );
+
+ aNode.SetPropertyWithoutNotificationL( prop );
+ CleanupStack::Pop( prop );
}
// -----------------------------------------------------------------------------
@@ -85,8 +121,7 @@
// -----------------------------------------------------------------------------
//
CXnViewControlAdapter::CXnViewControlAdapter( CXnNodePluginIf& aNode )
- : iNode( aNode ), iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) ),
- iHitpoint( TPoint( -1,-1 ) )
+ : iNode( aNode ), iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) )
{
}
@@ -146,14 +181,9 @@
//
void CXnViewControlAdapter::HandlePointerEventL(
const TPointerEvent& aPointerEvent )
- {
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
- {
- iHitpoint = aPointerEvent.iPosition;
- }
-
+ {
iAppUi.UiEngine().DisableRenderUiLC();
-
+
CXnControlAdapter::HandlePointerEventL( aPointerEvent );
iAppUi.UiEngine().RenderUIL();
@@ -169,33 +199,13 @@
void CXnViewControlAdapter::ResetGrabbing()
{
TPointerEvent event;
+
+ event.iModifiers = 0;
+ event.iPosition = TPoint();
+ event.iParentPosition = TPoint();
event.iType = TPointerEvent::EButton1Up;
- TRAP_IGNORE( RemoveGrabbingControL( this, event ) );
-
- iHitpoint.SetXY( -1, -1 );
- }
-
-// -----------------------------------------------------------------------------
-// CXnViewControlAdapter::RemoveGrabbingControL()
-// Removes recursively grabbing controls
-// -----------------------------------------------------------------------------
-//
-void CXnViewControlAdapter::RemoveGrabbingControL( const CCoeControl* aControl,
- const TPointerEvent& aEvent ) const
- {
- TInt count( aControl->CountComponentControls() );
-
- for( TInt i = 0; i < count; i++ )
- {
- CCoeControl* child( aControl->ComponentControl( i ) );
-
- if( child && child->Rect().Contains( iHitpoint ) )
- {
- child->CCoeControl::HandlePointerEventL( aEvent );
- RemoveGrabbingControL( child, aEvent );
- }
- }
+ TRAP_IGNORE( ResetGrabbingL( this, event ) );
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Tue May 11 16:02:39 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp Tue May 25 12:29:32 2010 +0300
@@ -66,7 +66,8 @@
const TInt KStabilityInterval( 60000000 ); // 1 minute
const TInt KActivationCompleteInterval( 2000000 ); // 2s
const TInt KCrashRestoreDefaultThreshold( 3 );
-const TInt KCrashRestoreAllTreshold( 4 );
+const TInt KCrashRestoreRomTreshold( 4 );
+const TInt KCrashRestoreViewsTreshold( 5 );
// ============================ LOCAL FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -1791,10 +1792,14 @@
query->RunLD();
}
- else if( crashCount >= KCrashRestoreAllTreshold )
- {
- iHspsWrapper->RestoreRootL();
-
+ else if( crashCount == KCrashRestoreRomTreshold )
+ {
+ iHspsWrapper->RestoreRomConfL();
+ }
+ else if( crashCount >= KCrashRestoreViewsTreshold )
+ {
+ iHspsWrapper->RestoreViewsL();
+
ResetCrashCount();
return;
}
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdvalueimage.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdvalueimage.cpp Tue May 25 12:29:32 2010 +0300
@@ -278,11 +278,25 @@
{
DEBUG16(("_MM_: CHnMdValueImage::FindMatchigMifFileL IN"));
+ _LIT( KGridRootMif, "gridroot.mif" );
+
// whole path to the mif file was not specified
TDriveList driveList;
HBufC* ret = NULL;
- if ( KErrNone == aFs.DriveList( driveList ) )
+ if ( aFileName == KGridRootMif )
+ {
+ ret = HBufC::NewL(
+ 1 + KRscPath().Length() + // 1 - drive letter len.
+ aFileName.Length() );
+ TPtr ptr( ret->Des() );
+ TChar driveLetter;
+ aFs.DriveToChar( EDriveZ, driveLetter );
+ ptr.Append( driveLetter );
+ ptr.Append( KRscPath );
+ ptr.Append( aFileName );
+ }
+ else if ( KErrNone == aFs.DriveList( driveList ) )
{
TInt driveNumber( EDriveY ); // start with drive Y
do // iterates through drives: Y, X, W, ..., C, B, A, Z
@@ -336,15 +350,18 @@
CleanupClosePushL( tmpBuf );
TInt errCode = HnLiwUtils::GetStringL( *iParamList, iMifFile8, iPos, tmpBuf );
- if ( !BaflUtils::FileExists( iCmnPtrs->iFs, tmpBuf ) && tmpBuf.Length() )
+ if ( tmpBuf.Length() )
{
- // fileName was retrieved but corresponding file was not found
- ret = FindMatchigMifFileL( iCmnPtrs->iFs, tmpBuf );
- }
- else if ( tmpBuf.Length() )
- {
- // return fileName as it is
- ret = tmpBuf.AllocL();
+ if ( BaflUtils::FileExists( iCmnPtrs->iFs, tmpBuf ) )
+ {
+ // return fileName as it is
+ ret = tmpBuf.AllocL();
+ }
+ else
+ {
+ // fileName was retrieved but corresponding file was not found
+ ret = FindMatchigMifFileL( iCmnPtrs->iFs, tmpBuf );
+ }
}
// clean up
--- a/menufw/hierarchynavigator/hnpresentationmodel/inc/hnextbmpiconholder.h Tue May 11 16:02:39 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/inc/hnextbmpiconholder.h Tue May 25 12:29:32 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -26,7 +26,7 @@
/**
* This is an extended version of @c CHnIconHolder which holds a CGulIcon that does
* not own the bitmaps and CLiwBitmapBuffer objects that do.
- *
+ *
* Such class was needed because some of the bitmaps for icons are obtained from
* CLiwBitmapBuffer objects and there is no way to transfer ownership of that
* bitmaps from them. It is not possible to make copies of that bitmaps either,
@@ -40,26 +40,32 @@
* This method should be called only once. If you want to store another icon
* simply call Close() on this icon holder and then create a new icon holder
* to store the new icon.
- *
+ *
* @param aGulIcon Icon to store in this icon holder.
* @param aBmpBuffer The buffer that owns the primary bitmap.
- * @param aMaskBuffer The buffer that owns the mask bitmap.
+ * @param aMaskBuffer The buffer that owns the mask bitmap.
*/
IMPORT_C void SetGulIcon( CGulIcon* aGulIcon, CLiwBitmapBuffer* aBmpBuffer, CLiwBitmapBuffer* aMaskBuffer );
-
+
+ /**
+ * Clean both liw bitmap buffer and liw maskbitmap buffer.
+ * Allows set new mask and new bitmap for the icon.
+ */
+ virtual void CleanBmpBuffer();
+
/**
* Standard C++ virtual destructor.
*/
virtual ~CHnExtBmpIconHolder();
private: // data
-
+
/**
* Liw bitmap buffer that owns the primary bitmap for the icon.
* Co-owns (CLiwBitmapBuffer are ref-counted).
*/
CLiwBitmapBuffer* iBmpBuffer;
-
+
/**
* Liw bitmap buffer that owns the mask bitmap for the icon.
* Co-owns (CLiwBitmapBuffer are ref-counted).
--- a/menufw/hierarchynavigator/hnpresentationmodel/inc/hniconholder.h Tue May 11 16:02:39 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/inc/hniconholder.h Tue May 25 12:29:32 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -39,25 +39,25 @@
* This method should be called only once. If you want to store another icon
* simply call Close() on this icon holder and then create a new icon holder
* to store the new icon.
- *
+ *
* @param aGulIcon Icon to store in this icon holder.
*/
IMPORT_C void SetGulIcon( CGulIcon* aGulIcon );
-
+
/**
* Returns the icon held by this icon holder.
- *
+ *
* @return Icon held by this object (NULL value possible).
*/
IMPORT_C CGulIcon* GetGulIcon() const;
-
+
/**
* Standard C++ destructor.
*/
~CHnIconHolder();
-
+
private: // data
-
+
/**
* A CGulIcon object owned by this icon holder.
* Can possibly be NULL.
--- a/menufw/hierarchynavigator/hnpresentationmodel/src/hnextbmpiconholder.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/src/hnextbmpiconholder.cpp Tue May 25 12:29:32 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -28,10 +28,10 @@
CLiwBitmapBuffer* aBmpBuffer, CLiwBitmapBuffer* aMaskBuffer )
{
__ASSERT_DEBUG( aGulIcon && aBmpBuffer, User::Invariant() );
-
+
if ( aGulIcon )
{
- __ASSERT_DEBUG( aGulIcon->BitmapsOwnedExternally(), User::Invariant() );
+ __ASSERT_DEBUG( aGulIcon->BitmapsOwnedExternally(), User::Invariant() );
CHnIconHolder::SetGulIcon( aGulIcon );
aGulIcon->SetBitmapsOwnedExternally( ETrue );
if ( aBmpBuffer )
@@ -56,9 +56,27 @@
if ( iBmpBuffer )
{
iBmpBuffer->DecRef();
- }
+ }
if ( iMaskBuffer )
{
iMaskBuffer->DecRef();
}
}
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CHnExtBmpIconHolder::CleanBmpBuffer()
+ {
+ if ( iBmpBuffer )
+ {
+ iBmpBuffer->DecRef();
+ iBmpBuffer = NULL;
+ }
+ if ( iMaskBuffer )
+ {
+ iMaskBuffer->DecRef();
+ iMaskBuffer = NULL;
+ }
+ }
--- a/menufw/hierarchynavigator/hnpresentationmodel/src/hniconholder.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/src/hniconholder.cpp Tue May 25 12:29:32 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -37,7 +37,7 @@
{
return iGulIcon;
}
-
+
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
--- a/menufw/menufwui/matrixmenu/src/mmappui.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp Tue May 25 12:29:32 2010 +0300
@@ -12,8 +12,8 @@
* Contributors:
*
* Description: Application UI class
-* Version : %version: MM_176.1.28.1.75 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_176.1.28.1.75 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.78 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.78 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -46,7 +46,7 @@
#include <AknDlgShut.h>
#include <mmenuinternalPSkeys.h>
#include <aknstyluspopupmenu.h> //stylus popup for long tap event
-#include <APGWGNAM.H>
+#include <apgwgnam.h>
#include "mmgui.hrh"
#include "mmguiconstants.h"
@@ -332,10 +332,13 @@
{
//make dummy container visible when returning
//to menu by AppKey
- iDummyContainer->MakeVisible( ETrue );
- RefreshUiPanesL( ETrue );
- iCurrentContainer->MakeVisible( EFalse );
- iDummyContainer->DrawNow();
+ if( iDummyContainer && iCurrentContainer )
+ {
+ iDummyContainer->MakeVisible( ETrue );
+ RefreshUiPanesL( ETrue );
+ iCurrentContainer->MakeVisible( EFalse );
+ iDummyContainer->DrawNow();
+ }
CleanupForExitL( EExitKeyApplication );
User::LeaveIfError( iCoeEnv->WsSession().SetWindowGroupOrdinalPosition(
CEikonEnv::Static()->RootWin().Identifier(), 0 ) );
@@ -1448,9 +1451,9 @@
RefreshCbaL();
iGarbage.ResetAndDestroy();
ResetContainerMap();
- iCurrentSuiteModel = NULL;
- iCurrentContainer = NULL;
- }
+ iCurrentSuiteModel = NULL;
+ iCurrentContainer = NULL;
+ }
TRAPD( err, iHNInterface->LoadSuitesFromUriL( aMessage ) );
@@ -1806,9 +1809,10 @@
iToolbar->SetToolbarVisibility( EFalse );
}
+ TBool scrollView( EFalse );
if( iCurrentContainer != aWidgetContainer )
{
- // During open new folder cancel longTap.
+ // During open new folder cancel longTap.
if( iCurrentContainer && iCurrentContainer->IsEditMode() )
iCurrentContainer->EnableLongTapAnimation( EFalse );
@@ -1827,26 +1831,7 @@
{
iCurrentContainer->SetHighlightVisibilityL( ETrue );
}
-
- // force scroll view to highlighted item in case we've been backing back
- // and change presentation mode (to list view) had been done.
- if( iCurrentContainer->WidgetType() == EListWidget )
- {
- TInt offsetBottom =
- iCurrentContainer->Widget()->View()->ItemPos(
- iCurrentSuiteModel->GetSuiteHighlight() ).iY
- + iCurrentContainer->Widget()->ItemHeight()
- - iCurrentContainer->Widget()->View()->ViewRect().Height();
- TInt offsetTop = iCurrentContainer->Widget()->View()->ItemPos(
- iCurrentSuiteModel->GetSuiteHighlight() ).iY;
- TBool takeTop = Abs( offsetTop ) < Abs( offsetBottom );
- TInt offset = ( takeTop ) ? offsetTop : offsetBottom;
- if( offset != 0 )
- {
- iCurrentContainer->Widget()->HandlePhysicsScrollEventL(
- offset );
- }
- }
+ scrollView = ETrue;
}
else
{
@@ -1896,6 +1881,16 @@
// restore the correct widget position
iCurrentContainer->RestoreWidgetPosition();
+ // force scroll view to highlighted item in case we've been backing back
+ // and change presentation mode (to list view) had been done.
+ if( scrollView && iCurrentContainer->WidgetType() == EListWidget
+ && iCurrentSuiteModel->GetSuiteHighlight() > KErrNotFound
+ && !iCurrentContainer->ItemIsFullyVisible(
+ iCurrentSuiteModel->GetSuiteHighlight() ))
+ {
+ iCurrentContainer->ScrollToItemL(
+ iCurrentSuiteModel->GetSuiteHighlight() );
+ }
}
// refresh changed items only
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxitemdrawer.h Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxitemdrawer.h Tue May 25 12:29:32 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmListBoxItemDrawer
-* Version : %version: MM_38.1.17 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_38.1.18 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -65,12 +65,12 @@
* @param aFormattedCellData Cell data.
* @param aWidgetType Widget type.
*/
- static CMmListBoxItemDrawer* NewL(
- CMmListBoxModel* aMmListBoxModel,
- const CFont* aFont,
- CFormattedCellListBoxData* aFormattedCellData,
- TMmWidgetType aWidgetType,
- CMmTemplateLibrary* aTemplateLibrary );
+ static CMmListBoxItemDrawer* NewL(
+ CMmListBoxModel* aMmListBoxModel,
+ const CFont* aFont,
+ CFormattedCellListBoxData* aFormattedCellData,
+ TMmWidgetType aWidgetType,
+ CMmTemplateLibrary* aTemplateLibrary );
/**
* Two-phased constructor.
@@ -81,12 +81,12 @@
* @param aFormattedCellData Cell data.
* @param aWidgetType Widget type.
*/
- static CMmListBoxItemDrawer* NewLC(
- CMmListBoxModel* aMmListBoxModel,
- const CFont* aFont,
- CFormattedCellListBoxData* aFormattedCellData,
- TMmWidgetType aWidgetType,
- CMmTemplateLibrary* aTemplateLibrary );
+ static CMmListBoxItemDrawer* NewLC(
+ CMmListBoxModel* aMmListBoxModel,
+ const CFont* aFont,
+ CFormattedCellListBoxData* aFormattedCellData,
+ TMmWidgetType aWidgetType,
+ CMmTemplateLibrary* aTemplateLibrary );
/**
* Destructor.
@@ -226,8 +226,8 @@
* @since S60 5.0
* @param aBgContext Background context.
*/
- void SetBgContext(
- CAknsBasicBackgroundControlContext* aBgContext );
+ void SetBgContext(
+ CAknsBasicBackgroundControlContext* aBgContext );
/**
* Sets condition if background should be redrawn.
@@ -458,7 +458,7 @@
* @since S60 v3.0
* @param aIsRunning Is scrollbar event running.
*/
- void SetScrollbarEventRunning( TBool aIsRunning );
+ void SetScrollbarEventRunning( TBool aIsRunning );
/**
* Sets number of columns in view.
@@ -466,16 +466,16 @@
* @since S60 v3.0
* @param aNumberOfColumns Number of columns in view.
*/
- void SetNumberOfColsInView( TInt aNumberOfColumns );
+ void SetNumberOfColsInView( TInt aNumberOfColumns );
- /**
- * Used in non-touch edit mode to block drawing of move indicators and highlight
- * to clean screen for animation.
- *
- * @since S60 v3.0
- * @param aDrawn Should highlight and move indicators be drawn.
- */
- void SetHighlightShown( TBool aDrawn );
+ /**
+ * Used in non-touch edit mode to block drawing of move indicators and highlight
+ * to clean screen for animation.
+ *
+ * @since S60 v3.0
+ * @param aDrawn Should highlight and move indicators be drawn.
+ */
+ void SetHighlightShown( TBool aDrawn );
/**
* Draws background.
@@ -512,8 +512,8 @@
* @param aItemIsSelected Is item selected.
*/
void DrawItemText( TInt aItemIndex, const TRect& aItemTextRect,
- TBool aItemIsCurrent, TBool aViewIsEmphasized,
- TBool aItemIsSelected ) const;
+ TBool aItemIsCurrent, TBool aViewIsEmphasized,
+ TBool aItemIsSelected ) const;
/**
* Draws the actual item contents for the specified item in the specified
* rectangle.
@@ -526,8 +526,8 @@
* @param aItemIsSelected @c ETrue if the item is selected.
*/
void DrawActualItem(TInt aItemIndex, const TRect& aActualItemRect,
- TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed,
- TBool aItemIsSelected) const;
+ TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed,
+ TBool aItemIsSelected) const;
/**
* Sets up item currently drawn item subcells.
@@ -660,7 +660,7 @@
* @param aSubcellIncrement Is incremented if backdrop subcell template is appended.
*/
void SetupBackdropSubcellL(
- RArray<TTemplateChild>& aTemplateChildArray, TInt aItemIndex,
+ RArray<TTemplateChild>& aTemplateChildArray, TInt aItemIndex,
RBuf& aItemText, TInt& aSubcellIncrement ) const;
/**
@@ -674,8 +674,8 @@
* @param aSubcellIncrement Is incremented if backdrop subcell template is appended.
*/
void SetupIconSubcellL(
- RArray<TTemplateChild>& aTemplateChildArray, TInt aChildIndex, TInt aItemIndex,
- RBuf& aItemText, TInt& aSubcellIncrement ) const;
+ RArray<TTemplateChild>& aTemplateChildArray, TInt aChildIndex, TInt aItemIndex,
+ RBuf& aItemText, TInt& aSubcellIncrement ) const;
/**
* Determines whether a bitmap of given size needs scaling to be displayed
@@ -711,8 +711,8 @@
* @param aChildIndex Index of a template child.
*/
void SetupTextSubcellL(
- RArray<TTemplateChild>& aTemplateChildArray, TInt aChildIndex, TInt aItemIndex,
- RBuf& aItemText, TInt& aSubcellIncrement ) const;
+ RArray<TTemplateChild>& aTemplateChildArray, TInt aChildIndex, TInt aItemIndex,
+ RBuf& aItemText, TInt& aSubcellIncrement ) const;
/**
* Appends text if there is enough free memory.
@@ -742,7 +742,7 @@
* @return ETrue if highlight is drawn for the actually drawn item.
*/
TBool GetHighlightVisibility( TInt aItemIndex,
- TBool aItemIsCurrent, TBool aAllowHighlightForNonDraggedItem ) const;
+ TBool aItemIsCurrent, TBool aAllowHighlightForNonDraggedItem ) const;
/**
* Returns backdrop visibility.
@@ -943,6 +943,11 @@
*/
mutable TBool iLastDrawnItemWasFloating;
- };
+ /**
+ * ETrue if the drawing item is floating item of swap transition type.
+ */
+ mutable TBool iIsSwapFloating;
+
+ };
#endif // MMLISTBOXITEMDRAWER_H
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxmodel.h Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxmodel.h Tue May 25 12:29:32 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmListBoxItemModel
-* Version : %version: MM_18.1.4 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_18.1.5 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -43,133 +43,133 @@
NONSHARABLE_CLASS( CMmListBoxModel ):
public CAknFilteredTextListBoxModel,
public MHnSuiteObserver
- {
+ {
public:
- // Constructors and destructor
+ // Constructors and destructor
- /**
- * Destructor.
- */
- ~CMmListBoxModel();
+ /**
+ * Destructor.
+ */
+ ~CMmListBoxModel();
- /**
- * Two-phased constructor.
- */
- static CMmListBoxModel* NewL( );
+ /**
+ * Two-phased constructor.
+ */
+ static CMmListBoxModel* NewL( );
- /**
- * Two-phased constructor.
- */
- static CMmListBoxModel* NewLC( );
-
- /**
- * Gets the text attribute for a specific item by the name of the attribute.
- *
- * @since S60 v3.0
- * @param aIndex The index of the item for which the text is requested.
- * @param aAttributeName The name of the text attribute to be returned.
- * @return Size of item.
- */
- const TDesC8& GetAttributeAsText( TInt aIndex, const TDesC8 & aAttributeName );
-
+ /**
+ * Two-phased constructor.
+ */
+ static CMmListBoxModel* NewLC( );
+
+ /**
+ * Gets the text attribute for a specific item by the name of the attribute.
+ *
+ * @since S60 v3.0
+ * @param aIndex The index of the item for which the text is requested.
+ * @param aAttributeName The name of the text attribute to be returned.
+ * @return Size of item.
+ */
+ const TDesC8& GetAttributeAsText( TInt aIndex, const TDesC8 & aAttributeName );
+
/**
* Gets the graphical attribute for a specific item by the name of the attribute.
* The attribute is returned as an icon holder. Please see @c CHnIconHolder for
* infomation on what icon holder is and what
* it is useful for.
- *
+ *
* @param aIndex The index of the item for which the graphic is requested.
* @param aAttributeName The name of the graphical attribute to be returned.
- * @param aDesiredIconSize The desired icon size.
+ * @param aDesiredIconSize The desired icon size.
* @return An icon holder object.
*/
CHnIconHolder* GetAttributeAsRefCountedGraphics( TInt aIndex,
const TDesC8& aAttributeName, TSize* aDesiredIconSize = NULL );
-
- /**
- * Sets the suite model. This method is used by matrix menu application when suite is loaded.
- *
- * @since S60 v3.0
- * @param aSuiteModel The suite model to be set.
- */
- void SetSuiteModelL( CHnSuiteModel * aSuiteModel );
-
- /**
- * Gets the suite model of the currently visible suite.
- *
- * @since S60 v3.0
- * @return The current suite model.
- */
- CHnSuiteModel* GetSuiteModel();
-
- /**
- * Reorders the model when item positions are edited in edit mode.
- *
- * @since S60 v3.0
- * @param aFromIndex The starting index of items to be shifted.
- * @param aToIndex The end index of items to be shifted.
- */
- void ReorderModelL(TInt aFromIndex, TInt aToIndex);
-
- /**
- * Handle event triggered by suite.
- *
- * @since S60 v3.0
- * @param aCustomSuiteEvent Type of suite event.
- * @param aModel The suite model that the event concerns.
- */
- void HandleSuiteEventL( THnCustomSuiteEvent aCustomSuiteEvent,
+
+ /**
+ * Sets the suite model. This method is used by matrix menu application when suite is loaded.
+ *
+ * @since S60 v3.0
+ * @param aSuiteModel The suite model to be set.
+ */
+ void SetSuiteModelL( CHnSuiteModel * aSuiteModel );
+
+ /**
+ * Gets the suite model of the currently visible suite.
+ *
+ * @since S60 v3.0
+ * @return The current suite model.
+ */
+ CHnSuiteModel* GetSuiteModel();
+
+ /**
+ * Reorders the model when item positions are edited in edit mode.
+ *
+ * @since S60 v3.0
+ * @param aFromIndex The starting index of items to be shifted.
+ * @param aToIndex The end index of items to be shifted.
+ */
+ void ReorderModelL(TInt aFromIndex, TInt aToIndex);
+
+ /**
+ * Handle event triggered by suite.
+ *
+ * @since S60 v3.0
+ * @param aCustomSuiteEvent Type of suite event.
+ * @param aModel The suite model that the event concerns.
+ */
+ void HandleSuiteEventL( THnCustomSuiteEvent aCustomSuiteEvent,
CHnSuiteModel* aModel );
-
+
/**
* Determines the number of item-specific menu items for given item.
- *
+ *
* @since S60 v3.0
* @param aItemIndex Item index.
* @return Number of item-specific menu items.
*/
TInt GetNumberOfSpecificMenuItemsL( TInt aItemIndex );
-
+
private:
- /**
- * Gets the attribute by name.
- *
- * @since S60 v3.0
- * @param aIndex The index of the item for which the attribute is requested.
- * @param aAttributeName The name of the requested attribute.
- * @return Size of item.
- */
+ /**
+ * Gets the attribute by name.
+ *
+ * @since S60 v3.0
+ * @param aIndex The index of the item for which the attribute is requested.
+ * @param aAttributeName The name of the requested attribute.
+ * @return Size of item.
+ */
CHnAttributeBase* GetAttribute( TInt aIndex, const TDesC8 & aAttributeName );
-
- /**
- * Updates the item text array when model is reordered or new model is loaded.
- * It is important that the number of elements in the array is the same
- * as number of items in the suite.
- *
- * @since S60 v3.0
- */
- void UpdateDummyArrayDataL();
+
+ /**
+ * Updates the item text array when model is reordered or new model is loaded.
+ * It is important that the number of elements in the array is the same
+ * as number of items in the suite.
+ *
+ * @since S60 v3.0
+ */
+ void UpdateDummyArrayDataL();
-
+
/**
- * Constructor for performing 1st stage construction
- */
- CMmListBoxModel( );
+ * Constructor for performing 1st stage construction
+ */
+ CMmListBoxModel( );
- /**
- * Default symbian 2nd stage constructor.
- */
- void ConstructL();
+ /**
+ * Default symbian 2nd stage constructor.
+ */
+ void ConstructL();
private:
-
+
/**
* Not own. Suite model being the container for the data.
*/
CHnSuiteModel* iSuiteModel;
-
- };
+
+ };
#endif // CMMLISTBOXMODEL_H
--- a/menufw/menufwui/mmwidgets/src/mmgrid.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmgrid.cpp Tue May 25 12:29:32 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_103 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_104 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -277,7 +277,7 @@
{
TBool highlightWasVisible = parent->IsHighlightVisible();
CAknGrid::HandlePointerEventL( aPointerEvent );
- // Tricky: Do not allow the base class implementation of HandlePointerEventL
+ // Tricky: Do not allow the base class implementation of HandlePointerEventL
// to remove the highlight on EButton1Up event when context menu
// is displayed for an item
if ( aPointerEvent.iType == TPointerEvent::EButton1Up &&
@@ -293,19 +293,19 @@
if ( CurrentItemIndex() != itemUnderPointerIndex )
{
CMmWidgetContainer* parent = static_cast<CMmWidgetContainer*>( Parent() );
- if ( parent->IsNoItemDragged() )
- {
- if ( ItemDrawer()->Flags() & CListItemDrawer::EPressedDownState )
- {
- ItemDrawer()->ClearFlags( CListItemDrawer::EPressedDownState );
- iView->DrawItem( CurrentItemIndex() );
- }
- }
- else
- {
- iView->SetCurrentItemIndex( itemUnderPointerIndex );
- iView->DrawItem(itemUnderPointerIndex);
- }
+ if ( parent->IsNoItemDragged() )
+ {
+ if ( ItemDrawer()->Flags() & CListItemDrawer::EPressedDownState )
+ {
+ ItemDrawer()->ClearFlags( CListItemDrawer::EPressedDownState );
+ iView->DrawItem( CurrentItemIndex() );
+ }
+ }
+ else
+ {
+ iView->SetCurrentItemIndex( itemUnderPointerIndex );
+ iView->DrawItem(itemUnderPointerIndex);
+ }
}
}
@@ -389,23 +389,23 @@
++totalNumberOfRows;
}
const TInt topItemRowIndex = TopItemIndex() / numOfCols;
-
+
// desired view position relative to the first item in grid (always positive)
TInt desiredViewPosition = rowHeight * topItemRowIndex - VerticalItemOffset();
-
+
desiredViewPosition += distanceInPixels;
-
+
const TInt viewPositionMin = 0;
- const TInt viewPositionMax =
- Max( 0, ( totalNumberOfRows * rowHeight ) - view->ViewRect().Height() );
-
+ const TInt viewPositionMax =
+ Max( 0, ( totalNumberOfRows * rowHeight ) - view->ViewRect().Height() );
+
desiredViewPosition = Min( desiredViewPosition, viewPositionMax );
desiredViewPosition = Max( desiredViewPosition, viewPositionMin );
-
+
ASSERT( desiredViewPosition >= 0 );
-
+
TInt newTopItemIndex = ( desiredViewPosition / rowHeight ) * numOfCols;
- TInt newVerticalOffset = -( desiredViewPosition % rowHeight );
+ TInt newVerticalOffset = -( desiredViewPosition % rowHeight );
SetTopItemIndex( newTopItemIndex );
SetVerticalItemOffset( newVerticalOffset );
}
@@ -420,43 +420,43 @@
TInt nextScrollDelay = 0;
TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
- && iMmDrawer->GetFloatingItemCount() != 0;
+ && iMmDrawer->GetFloatingItemCount() != 0;
- if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
- {
- // scroll up by one row
- TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView();
+ if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
+ {
+ // scroll up by one row
+ TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView();
if ( newCurrentItemIndex < 0 )
{
newCurrentItemIndex = CurrentItemIndex();
}
nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
+ Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
- if ( readyForScrolling )
- {
- ScrollWithoutRedraw( -iItemHeight );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- }
- }
- else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
- {
- TInt newCurrentItemIndex = CurrentItemIndex() + view->NumberOfColsInView();
- if ( newCurrentItemIndex > iModel->NumberOfItems() - 1 )
- {
- newCurrentItemIndex = CurrentItemIndex();
- }
-
- nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
- Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
+ if ( readyForScrolling )
+ {
+ ScrollWithoutRedraw( -iItemHeight );
+ View()->SetCurrentItemIndex( newCurrentItemIndex );
+ }
+ }
+ else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
+ {
+ TInt newCurrentItemIndex = CurrentItemIndex() + view->NumberOfColsInView();
+ if ( newCurrentItemIndex > iModel->NumberOfItems() - 1 )
+ {
+ newCurrentItemIndex = CurrentItemIndex();
+ }
- if ( readyForScrolling )
- {
- ScrollWithoutRedraw( iItemHeight );
- View()->SetCurrentItemIndex( newCurrentItemIndex );
- }
- }
+ nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
+ Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
+
+ if ( readyForScrolling )
+ {
+ ScrollWithoutRedraw( iItemHeight );
+ View()->SetCurrentItemIndex( newCurrentItemIndex );
+ }
+ }
return nextScrollDelay;
}
@@ -691,12 +691,18 @@
TInt topRow = TopItemIndex() / numOfCols;
- if ( !( TopItemIndex() % numOfCols == 0 &&
- topRow <= maxPossibleTopRow ) )
+ if( !( TopItemIndex() % numOfCols == 0
+ && topRow <= maxPossibleTopRow ) )
{
topRow = Min( topRow, maxPossibleTopRow );
SetTopItemIndex( topRow * numOfCols );
}
+ else if( ( (CMmWidgetContainer* ) Parent() )->IsEditMode()
+ && ( Abs(maxPossibleTopRow - topRow) == 1) // prevention scrolling both scrollbar and view too much rows
+ && !View()->ItemIsPartiallyVisible(TopItemIndex())) // prevention scrolling view during remove item via menu
+ {
+ SetTopItemIndex( maxPossibleTopRow * numOfCols );
+ }
// prevent problems with view being scrolled up beyond limits
if ( topRow == maxPossibleTopRow && VerticalItemOffset() < 0 )
@@ -924,13 +930,13 @@
//
// -----------------------------------------------------------------------------
//
-void CMmGrid::ProcessScrollEventL( CEikScrollBar* aScrollBar,
+void CMmGrid::ProcessScrollEventL( CEikScrollBar* aScrollBar,
TEikScrollEvent aEventType )
{
CAknGrid::HandleScrollEventL( aScrollBar, aEventType );
iCurrentTopItemIndex = TopItemIndex();
- // setting default highligh in order not to overwrite the top item index
+ // setting default highlight in order not to overwrite the top item index
// set before in the SetLayout method
CMmWidgetContainer* parent = static_cast< CMmWidgetContainer* > ( Parent() );
if (!parent->IsHighlightVisible())
@@ -964,7 +970,7 @@
}
iSkippedScrollbarEventsCount = 0;
}
-
+
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
@@ -983,37 +989,37 @@
// -----------------------------------------------------------------------------
//
void CMmGrid::SetVerticalItemOffset(TInt aOffset)
- {
- static_cast<CMmGridView*> (View())->SetItemOffsetInPixels(aOffset);
- UpdateScrollBarThumbs();
- }
+ {
+ static_cast<CMmGridView*> (View())->SetItemOffsetInPixels(aOffset);
+ UpdateScrollBarThumbs();
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
TInt CMmGrid::VerticalItemOffset() const
- {
- return static_cast<CMmGridView*> (View())->VerticalItemOffset();
- }
+ {
+ return static_cast<CMmGridView*> (View())->VerticalItemOffset();
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CMmGrid::SetItemHeight( TInt aItemHeight )
- {
- iItemHeight = aItemHeight;
- }
+ {
+ iItemHeight = aItemHeight;
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CMmGrid::UpdateScrollBarThumbs()
- {
- CAknGrid::UpdateScrollBarThumbs();
- }
+ {
+ CAknGrid::UpdateScrollBarThumbs();
+ }
// -----------------------------------------------------------------------------
//
@@ -1023,9 +1029,9 @@
{
TInt componentControls(0);
if ( !iDisableChildComponentDrawing )
- {
+ {
componentControls = CAknGrid::CountComponentControls();
- }
+ }
return componentControls;
}
// -----------------------------------------------------------------------------
--- a/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Tue May 25 12:29:32 2010 +0300
@@ -12,8 +12,8 @@
* Contributors:
*
* Description:
-* Version : %version: MM_74 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_74 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_75 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_75 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -92,9 +92,9 @@
// -----------------------------------------------------------------------------
//
THnSuiteWidgetType CMmGridContainer::WidgetType()
- {
- return EGridWidget;
- }
+ {
+ return EGridWidget;
+ }
// -----------------------------------------------------------------------------
// CMmGridContainer::ConstructL()
// 2nd phase constructor
@@ -125,15 +125,15 @@
CMmGrid* CMmGridContainer::CreateGridL( CMmTemplateLibrary* aTemplateLibrary )
{
iGrid = CMmGrid::NewL( this,
- EAknListBoxSelectionList | EAknListBoxLoopScrolling | EAknListBoxDisableHighlight , aTemplateLibrary );
+ EAknListBoxSelectionList | EAknListBoxLoopScrolling | EAknListBoxDisableHighlight , aTemplateLibrary );
iGrid->SetContainerWindowL( *this );
iGrid->CreateScrollBarFrameL( ETrue );
iGrid->SetPrimaryScrollingType(
- CAknGridView::EScrollFollowsItemsAndLoops );
+ CAknGridView::EScrollFollowsItemsAndLoops );
iGrid->SetSecondaryScrollingType(
- CAknGridView::EScrollFollowsGrid );
+ CAknGridView::EScrollFollowsGrid );
iGrid->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EAuto, CEikScrollBarFrame::EAuto );
+ CEikScrollBarFrame::EAuto, CEikScrollBarFrame::EAuto );
iGrid->ScrollBarFrame()->DrawBackground( EFalse, EFalse );
return iGrid;
}
@@ -146,7 +146,7 @@
{
CMmWidgetContainer::SizeChanged();
if ( iGrid )
- {
+ {
// iGrid->SetRect( Rect() );
iGrid->SetupLayout();
}
@@ -157,34 +157,34 @@
//
void CMmGridContainer::SetEditModeL( TBool aIsEditMode )
{
- if (aIsEditMode && !AknLayoutUtils::PenEnabled() )
- {
- iGrid->SetPrimaryScrollingType(
- CAknGridView::EScrollStops );
- iGrid->SetSecondaryScrollingType(
- CAknGridView::EScrollStops );
+ if (aIsEditMode && !AknLayoutUtils::PenEnabled() )
+ {
+ iGrid->SetPrimaryScrollingType(
+ CAknGridView::EScrollStops );
+ iGrid->SetSecondaryScrollingType(
+ CAknGridView::EScrollStops );
}
else
- {
- iGrid->SetPrimaryScrollingType(
- CAknGridView::EScrollFollowsItemsAndLoops );
- iGrid->SetSecondaryScrollingType(
- CAknGridView::EScrollFollowsGrid );
+ {
+ iGrid->SetPrimaryScrollingType(
+ CAknGridView::EScrollFollowsItemsAndLoops );
+ iGrid->SetSecondaryScrollingType(
+ CAknGridView::EScrollFollowsGrid );
- }
+ }
- // In EditMode we allow Avkon to redraw scrollbar background
- // to prevent scrollbar flicking.
- // When edit mode is disabled, this redrawing causes performance problems
- // (and disabling it does not produce erroneous side-effects).
- if( aIsEditMode )
- {
- iGrid->ScrollBarFrame()->DrawBackground( EFalse, ETrue );
- }
- else
- {
- iGrid->ScrollBarFrame()->DrawBackground( EFalse, EFalse );
- }
+ // In EditMode we allow Avkon to redraw scrollbar background
+ // to prevent scrollbar flicking.
+ // When edit mode is disabled, this redrawing causes performance problems
+ // (and disabling it does not produce erroneous side-effects).
+ if( aIsEditMode )
+ {
+ iGrid->ScrollBarFrame()->DrawBackground( EFalse, ETrue );
+ }
+ else
+ {
+ iGrid->ScrollBarFrame()->DrawBackground( EFalse, EFalse );
+ }
CMmWidgetContainer::SetEditModeL( aIsEditMode );
}
@@ -214,18 +214,18 @@
// -----------------------------------------------------------------------------
//
TInt CMmGridContainer::DefaultHighlightOffset()
- {
- TInt topVisibleItemIndex = iGrid->View()->TopItemIndex();
- TInt hiddenPixels = -iGrid->View()->ItemOffsetInPixels();
+ {
+ TInt topVisibleItemIndex = iGrid->View()->TopItemIndex();
+ TInt hiddenPixels = -iGrid->View()->ItemOffsetInPixels();
- if ( iGrid->View()->ItemIsPartiallyVisible( topVisibleItemIndex )
- && hiddenPixels > iGrid->View()->ItemSize().iHeight / 2 )
- {
- topVisibleItemIndex += ColumnsInCurrentView();
- }
+ if ( iGrid->View()->ItemIsPartiallyVisible( topVisibleItemIndex )
+ && hiddenPixels > iGrid->View()->ItemSize().iHeight / 2 )
+ {
+ topVisibleItemIndex += ColumnsInCurrentView();
+ }
- return topVisibleItemIndex;
- }
+ return topVisibleItemIndex;
+ }
// -----------------------------------------------------------------------------
//
@@ -243,10 +243,10 @@
// -----------------------------------------------------------------------------
//
void CMmGridContainer::SetItemDrawerAndViewBgContext(
- CAknsBasicBackgroundControlContext * aBgContext )
- {
- iGrid->SetItemDrawerAndViewBgContext (aBgContext);
- }
+ CAknsBasicBackgroundControlContext * aBgContext )
+ {
+ iGrid->SetItemDrawerAndViewBgContext (aBgContext);
+ }
// -----------------------------------------------------------------------------
//
@@ -254,10 +254,10 @@
// -----------------------------------------------------------------------------
//
void CMmGridContainer::SetupWidgetLayoutL()
- {
- User::LeaveIfNull( iGrid );
- iGrid->SetupLayout();
- }
+ {
+ User::LeaveIfNull( iGrid );
+ iGrid->SetupLayout();
+ }
// -----------------------------------------------------------------------------
//
@@ -286,9 +286,9 @@
// ---------------------------------------------------------------------------
//
void CMmGridContainer::HandleItemAdditionL()
- {
- iGrid->HandleItemAdditionL();
- }
+ {
+ iGrid->HandleItemAdditionL();
+ }
// ---------------------------------------------------------------------------
@@ -296,47 +296,49 @@
// ---------------------------------------------------------------------------
//
void CMmGridContainer::HandleItemRemovalL()
- {
+ {
- GetMmModel()->HandleSuiteEventL( ESuiteItemsRemoved, GetMmModel()->GetSuiteModel() );
- ValidateWidgetCurrentItemIndex();
- iDrawer->RemoveFloatingItems();
- if( IsEditMode() )
- {
- iDrawer->GetAnimator()->SetNextRedrawToWholeScreen();
- }
+ GetMmModel()->HandleSuiteEventL( ESuiteItemsRemoved, GetMmModel()->GetSuiteModel() );
+ ValidateWidgetCurrentItemIndex();
+ iDrawer->RemoveFloatingItems();
+ if( IsEditMode() )
+ {
+ iDrawer->GetAnimator()->SetNextRedrawToWholeScreen();
+ }
- CacheWidgetPosition();
- iGrid->HandleItemRemovalL();
- RestoreWidgetPosition();
- CacheWidgetPosition();
+ CacheWidgetPosition();
+ iGrid->View()->SetDisableRedraw( ETrue ); //prevention scroll view
+ iGrid->HandleItemRemovalL();
+ iGrid->View()->SetDisableRedraw( EFalse );
+ RestoreWidgetPosition();
+ CacheWidgetPosition();
- if ( iCurrentHighlight != iGrid->CurrentItemIndex() )
- {
- iCurrentHighlight = iGrid->CurrentItemIndex();
- if( !iCurrentHighlight && !iGrid->Model()->NumberOfItems() )
- {
- iCurrentHighlight = KErrNotFound ;
- }
- CHnSuiteModel* suiteModel = GetSuiteModelL();
- if ( suiteModel )
- {
- suiteModel->SetSuiteHighlightL( iCurrentHighlight );
- }
- }
- static_cast<CMmListBoxItemDrawer*>( iGrid->ItemDrawer() )->TrimCacheSize(
+ if ( iCurrentHighlight != iGrid->CurrentItemIndex() )
+ {
+ iCurrentHighlight = iGrid->CurrentItemIndex();
+ if( !iCurrentHighlight && !iGrid->Model()->NumberOfItems() )
+ {
+ iCurrentHighlight = KErrNotFound ;
+ }
+ CHnSuiteModel* suiteModel = GetSuiteModelL();
+ if ( suiteModel )
+ {
+ suiteModel->SetSuiteHighlightL( iCurrentHighlight );
+ }
+ }
+ static_cast<CMmListBoxItemDrawer*>( iGrid->ItemDrawer() )->TrimCacheSize(
GetMmModel()->NumberOfItems() );
- }
+ }
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
TInt CMmGridContainer::ColumnsInCurrentView()
- {
- CAknGridView* view ( (CAknGridView*) iGrid->View() );
- return view->NumberOfColsInView();
- }
+ {
+ CAknGridView* view ( (CAknGridView*) iGrid->View() );
+ return view->NumberOfColsInView();
+ }
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
@@ -361,27 +363,27 @@
// -----------------------------------------------------------------------------
//
void CMmGridContainer::SetVerticalItemOffset( TInt aOffset )
- {
- iGrid->SetVerticalItemOffset( aOffset );
- }
+ {
+ iGrid->SetVerticalItemOffset( aOffset );
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
TInt CMmGridContainer::VerticalItemOffset() const
- {
- return iGrid->VerticalItemOffset();
- }
+ {
+ return iGrid->VerticalItemOffset();
+ }
//----------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
void CMmGridContainer::UpdateViewScrollBarThumbs()
- {
- iGrid->UpdateScrollBarThumbs();
- }
+ {
+ iGrid->UpdateScrollBarThumbs();
+ }
// -----------------------------------------------------------------------------
//
--- a/menufw/menufwui/mmwidgets/src/mmlistbox.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmlistbox.cpp Tue May 25 12:29:32 2010 +0300
@@ -705,20 +705,20 @@
// -----------------------------------------------------------------------------
//
void CMmListBox::UpdateScrollBarsNoRedrawL()
- {
- HandleScrollbarVisibilityChangeL();
- if ( ScrollBarFrame()->VerticalScrollBar()->IsVisible() )
{
- CMmListBoxView* view = static_cast<CMmListBoxView*>( View() );
- view->DisableScrollToItem( ETrue );
- TScrollToItemEnabler reverter = { view };
- CleanupClosePushL( reverter );
- CEikFormattedCellListBoxTypedef::UpdateScrollBarsL();
- CleanupStack::PopAndDestroy( &reverter );
- iMmDrawer->TemplateLibrary()->SetScrollbarWidthL(
- ScrollBarFrame()->VerticalScrollBar()->Rect().Width() );
+ HandleScrollbarVisibilityChangeL();
+ if ( ScrollBarFrame()->VerticalScrollBar()->IsVisible() )
+ {
+ CMmListBoxView* view = static_cast<CMmListBoxView*>( View() );
+ view->DisableScrollToItem( ETrue );
+ TScrollToItemEnabler reverter = { view };
+ CleanupClosePushL( reverter );
+ CEikFormattedCellListBoxTypedef::UpdateScrollBarsL();
+ CleanupStack::PopAndDestroy( &reverter );
+ iMmDrawer->TemplateLibrary()->SetScrollbarWidthL(
+ ScrollBarFrame()->VerticalScrollBar()->Rect().Width() );
+ }
}
- }
// -----------------------------------------------------------------------------
//
--- a/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Tue May 25 12:29:32 2010 +0300
@@ -29,6 +29,7 @@
#include <AknBidiTextUtils.h>
#include <AknDef.hrh>
#include <AknLayoutFont.h>
+#include <avkon.mbg>
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
#include <aknlistloadertfx.h>
@@ -53,6 +54,7 @@
#include "mmwidgetcontainer.h"
#include "hnsuitemodel.h"
#include "menudebug.h"
+#include "hnextbmpiconholder.h"
// -----------------------------------------------------------------------------
//
@@ -77,6 +79,7 @@
// this is needed to get iColors initialized on first use:
iLastDrawnItemWasFloating = ETrue;
SetFlags( CListItemDrawer::EDisableHighlight );
+ iIsSwapFloating = EFalse;
}
// -----------------------------------------------------------------------------
@@ -314,13 +317,13 @@
iZoomIconIndex = iFloatingItems[i].GetDrawnItemIndex();
iIconAnimationZoomRatio = iFloatingItems[i].GetCurrentZoomRatio();
- if ( ItemHasFloatingType( drawnItemIndex, EDrag) ||
- ItemHasFloatingType( drawnItemIndex, EDragTransition) )
+ if ( ItemHasFloatingType( drawnItemIndex, EDrag) ||
+ ItemHasFloatingType( drawnItemIndex, EDragTransition) )
{
ClearFlags( CListItemDrawer::EPressedDownState );
}
-
- DrawActualItem( drawnItemIndex, rect, ETrue, EFalse, EFalse, EFalse );
+ type == ESwapTransition ? iIsSwapFloating = ETrue : iIsSwapFloating = EFalse;
+ DrawActualItem( drawnItemIndex, rect, ETrue, EFalse, EFalse, EFalse );
iIconAnimationZoomRatio = tempZoomRatio;
iZoomIconIndex = tempZoomIconIndex;
}
@@ -399,6 +402,7 @@
}
}
+ iIsSwapFloating = EFalse;
DrawActualItem(aItemIndex, actualItemRect, aItemIsCurrent, aViewIsEmphasized,
aViewIsDimmed, aItemIsSelected);
const_cast<CMmListBoxItemDrawer*>(this)->iLeftOverAreaUnderAnimatedItem = EFalse;
@@ -505,7 +509,7 @@
}
#endif
- if( iDrawSeparatorLines )
+ if( iDrawSeparatorLines && !iIsSwapFloating )
{
CMmListBoxView* view = static_cast<CMmListBoxView*>( iWidget->View() );
if( aItemIndex != ( view->ModelItemsCount() - 1 ))
@@ -1183,30 +1187,65 @@
{
CFbsBitmap* bitmap = icon->Bitmap();
ASSERT( bitmap );
+ TInt errTooBig( KErrNone );
//resize the item if it is a move indicator
if( iIsIndicatorItem )
{
- AknIconUtils::SetSize( bitmap, child.iRectAccordingToParent.Size(),
+ errTooBig = AknIconUtils::SetSize( bitmap,
+ child.iRectAccordingToParent.Size(),
EAspectRatioNotPreserved );
}
else
{
- TSize bmpSize = bitmap->SizeInPixels();
- TBool setSizeRequired = bitmap->DisplayMode() == ENone;
- if ( targetSize.iWidth && targetSize.iHeight &&
- ( setSizeRequired || !BitmapFitsIntoTarget( bmpSize, targetSize ) ) )
- {
+ TSize bmpSize = bitmap->SizeInPixels();
+ TBool setSizeRequired = bitmap->DisplayMode() == ENone;
+ if ( targetSize.iWidth && targetSize.iHeight &&
+ ( setSizeRequired || !BitmapFitsIntoTarget( bmpSize, targetSize ) ) )
+ {
CFbsBitmap* mask = icon->Mask();
if( mask )
{
- __ASSERT_DEBUG( bmpSize == mask->SizeInPixels(), User::Invariant() );
- AknIconUtils::SetSize( mask, targetSize, EAspectRatioPreservedAndUnusedSpaceRemoved );
- }
- AknIconUtils::SetSize( bitmap, targetSize, EAspectRatioPreservedAndUnusedSpaceRemoved );
+ __ASSERT_DEBUG( bmpSize == mask->SizeInPixels(), User::Invariant() );
+ errTooBig = AknIconUtils::SetSize( mask, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ }
+ if( !errTooBig )
+ errTooBig = AknIconUtils::SetSize( bitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
}
}
- TInt iconIndex = iItemsDataCache->GetItemCacheL( aItemIndex )->AppendIconL( iconHolder );
+ if( errTooBig == KErrTooBig )
+ {
+ // If icon is not created, try to create default application icon
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ CFbsBitmap* bitmap( NULL );
+ CFbsBitmap* maskBitmap( NULL );
+ TRAPD( err,
+ {
+ AknsUtils::CreateIconLC( skin,
+ KAknsIIDQgnMenuUnknownLst, bitmap, maskBitmap,
+ AknIconUtils::AvkonIconFileName(),
+ EMbmAvkonQgn_menu_unknown_lst,
+ EMbmAvkonQgn_menu_unknown_lst_mask );
+ CleanupStack::Pop( 2 ); // for trap
+ }
+ );
+ if( !err )
+ {
+ if( maskBitmap)
+ AknIconUtils::SetSize( maskBitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ AknIconUtils::SetSize( bitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ static_cast<CHnExtBmpIconHolder*>(iconHolder)->CleanBmpBuffer();
+ icon->SetBitmap(bitmap);
+ icon->SetMask(maskBitmap);
+ icon->SetBitmapsOwnedExternally(EFalse);
+ }
+ }
+
+ TInt iconIndex = iItemsDataCache->GetItemCacheL( aItemIndex )->AppendIconL( iconHolder );
HBufC8* number = HnConvUtils::NumToStr8LC( iconIndex );
const TInt newLength = aItemText.Length() + number->Length();
@@ -1322,7 +1361,8 @@
{
TSize itemSize = GetItemSize( aItemIndex,
aItemIndex == iWidget->View()->CurrentItemIndex() );
- CHnIconHolder* iconHolder = iMmModel->GetAttributeAsRefCountedGraphics( aItemIndex, child.iData, &itemSize );
+ CHnIconHolder* iconHolder = iMmModel->GetAttributeAsRefCountedGraphics(
+ aItemIndex, child.iData, &itemSize );
icon = iconHolder ? iconHolder->GetGulIcon() : NULL;
if( icon )
{
@@ -1331,7 +1371,8 @@
TPoint( itemSize.iWidth, itemSize.iHeight ) );
AknIconUtils::SetSize( bitmap, itemSize,
EAspectRatioNotPreserved );
- TInt iconIndex = iItemsDataCache->GetItemCacheL( aItemIndex )->AppendIconL( iconHolder );
+ TInt iconIndex = iItemsDataCache->GetItemCacheL( aItemIndex )->
+ AppendIconL( iconHolder );
HBufC8* number = HnConvUtils::NumToStr8LC( iconIndex );
TInt newLength = aItemText.Length() + number->Length();
@@ -1399,10 +1440,13 @@
//Backdrop icon as first element to draw
TInt subcellIncrement( 0 );
- if( GetBackdropVisibility( aItemIndex, aItemIsCurrent ) )
+ if( ( GetBackdropVisibility( aItemIndex, aItemIsCurrent )
+ || ItemHasFloatingType( aItemIndex, ESwapTransition ) )
+ && !iIsSwapFloating )
{
SetupBackdropSubcellL( templateChildArray, aItemIndex, itemText, subcellIncrement );
iItemHasBackdrop = ETrue;
+ iIsSwapFloating = EFalse;
}
else
{
@@ -1519,9 +1563,9 @@
TBool highlightVisibility( EFalse );
if( !iItemHasBackdrop && !iLeftOverAreaUnderAnimatedItem ) //never draw highlight when item has backdrop or when left over area under animated item
{
- TBool currentlyDraggedItem =
- ItemHasFloatingType( aItemIndex, EDrag ) ||
- ItemHasFloatingType( aItemIndex, EDragTransition );
+ TBool currentlyDraggedItem =
+ ItemHasFloatingType( aItemIndex, EDrag ) ||
+ ItemHasFloatingType( aItemIndex, EDragTransition );
if( ( STATIC_CAST(CMmWidgetContainer*,Widget()->Parent())->IsHighlightVisible()
&& aItemIsCurrent && aAllowHighlightForNonDraggedItem )
@@ -1540,7 +1584,7 @@
TBool CMmListBoxItemDrawer::GetBackdropVisibility( TInt aItemIndex,
TBool aItemIsCurrent ) const
{
- TBool currentlyDraggedItem =
+ TBool currentlyDraggedItem =
ItemHasFloatingType( aItemIndex, EDrag ) ||
ItemHasFloatingType( aItemIndex, EDragTransition );
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Tue May 11 16:02:39 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Tue May 25 12:29:32 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_71.1.17.1.64 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_71.1.17.1.65 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -1745,6 +1745,9 @@
SetHighlightVisibilityL( EFalse );
if( aChange == EItemsAdded )
{
+ // force update scrollbar to go down
+ if( WidgetType() == EGridWidget && NumberOfItems() > 0)
+ Widget()->SetCurrentItemIndex( NumberOfItems() - 1 );
HandleItemAdditionL();
}
else if( aChange == EItemsRemoved )
Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h Tue May 25 12:29:32 2010 +0300
@@ -94,11 +94,6 @@
CTsFsWidgetList* Widgets();
/**
- * Set flag iTaskListDirty;
- */
- void SetDirty();
-
- /**
* Set flag iAppDataRefreshNeeded
*/
void SetAppDataRefreshNeeded();
@@ -122,7 +117,7 @@
* Moves entry on given window app/widget id to
* the first position on conten data list
*/
- void MoveEntryAtStart( TInt aAppId, TBool aWidget );
+ TBool MoveEntryAtStart( TInt aAppId, TBool aWidget );
/**
* If application uid exists in the contained CTsFsAlwaysShownAppList
@@ -266,6 +261,19 @@
*/
TBool CheckIfExists( const CTsFswEntry& aEntry,
const RTsFswArray& aNewList ) const;
+
+ /**
+ * Set flag iTaskListDirty;
+ * @param aDirty new flag value.
+ */
+ void SetDirty( TBool aDirty );
+
+ /**
+ * Removes the screenshot handle from content entry.
+ * Reverts to parental screenshot, if previously was set to embeded.
+ * @param aBmpHandle handle of removed screenshot.
+ */
+ TBool RemoveScreenshotFromParent( TInt aBmpHandle );
private:
CTsFswEngine& iEngine;
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp Tue May 25 12:29:32 2010 +0300
@@ -28,7 +28,8 @@
#include <featmgr.h>
#include <apgwgnam.h>
-
+// Special case: ovi store secure widget UID
+const TUid KTsOviStoreSecureWidgetUid = { 0x2001A93E };
// ================= MEMBER FUNCTIONS =======================
@@ -113,7 +114,8 @@
if ( iTaskListDirty )
{
CollectTasksL();
- // dirty flag is cleared in the above call
+ // clear dirty flag
+ SetDirty(EFalse);
}
// Get app icon for entries without screenshot,
@@ -153,8 +155,7 @@
TBool CTsFswDataList::CollectTasksL()
{
// clear dirty flag
- iTaskListDirty = EFalse;
- TBool changed = EFalse;
+ TBool changed = iTaskListDirty;
RTsFswArray newAppsList;
RTsFswArray newWidgetsList;
@@ -206,9 +207,9 @@
// CTsFswDataList::SetDirty()
// --------------------------------------------------------------------------
//
-void CTsFswDataList::SetDirty()
+void CTsFswDataList::SetDirty(TBool aDirty)
{
- iTaskListDirty = ETrue;
+ iTaskListDirty = aDirty;
}
// --------------------------------------------------------------------------
@@ -252,15 +253,19 @@
{
TBool changed = EFalse;
CFbsBitmap** bmp = iScreenshots.Find( aId );
+
if ( bmp )
{
+ changed |= AssignScreenshotHandle( aId, 0 );
+ changed |= RemoveScreenshotFromParent( (*bmp)->Handle());
delete *bmp;
iScreenshots.Remove( aId );
- changed = AssignScreenshotHandle( aId, 0 );
}
return changed;
}
+
+
// --------------------------------------------------------------------------
// CTsFswDataList::FindScreenshotByWgId
// --------------------------------------------------------------------------
@@ -276,10 +281,11 @@
// CTsFswDataList::MoveEntryAtStart
// --------------------------------------------------------------------------
//
-void CTsFswDataList::MoveEntryAtStart(TInt aAppId, TBool aWidget)
+TBool CTsFswDataList::MoveEntryAtStart(TInt aAppId, TBool aWidget)
{
TSLOG_CONTEXT( MoveEntryAtStart, TSLOG_LOCAL );
+ TBool wasMoved(EFalse);
TInt appId(0);
//check embeded case
if( !aWidget )
@@ -302,15 +308,19 @@
for ( TInt i = 0; i < iData.Count(); ++i )
{
- if( iData[i]->AppUid().iUid == appId && iData[i]->Widget() == aWidget)
+ if( iData[i]->AppUid().iUid == appId &&
+ ((iData[i]->Widget() == aWidget) || (iData[i]->AppUid() == KTsOviStoreSecureWidgetUid )))
{
CTsFswEntry* entry = iData[i];
iData.Remove(i);
iData.Insert(entry, 0);
+ SetDirty(ETrue);
+ wasMoved = ETrue;
break;
}
}
TSLOG_OUT();
+ return wasMoved;
}
// --------------------------------------------------------------------------
@@ -629,13 +639,14 @@
aAsigned = EFalse;
for (TInt i = 0, ie = iData.Count(); i != ie; ++i)
{
- if (iData[i]->Widget())
+ if (iData[i]->Widget() || iData[i]->AppUid() == KTsOviStoreSecureWidgetUid )
{
TInt widgetId = iData[i]->AppUid().iUid;
if (widgetId == aWgIdForScreenshot)
{
iData[i]->SetScreenshotHandle(aBitmapHandle);
aAsigned = ETrue;
+ SetDirty(ETrue);
break;
}
continue;
@@ -645,6 +656,7 @@
{
iData[i]->SetScreenshotHandle(aBitmapHandle);
aAsigned = ETrue;
+ SetDirty(ETrue);
break;
}
}
@@ -800,4 +812,24 @@
return appUid;
}
+// --------------------------------------------------------------------------
+// CTsFswDataList::RemoveScreenshotFromParent
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::RemoveScreenshotFromParent( TInt aBmpHandle )
+ {
+ TBool changed(EFalse);
+ for( TInt i = 0; i < iData.Count(); ++i)
+ {
+ if ( !iData[i]->Widget() && iData[i]->ScreenshotHandle() == aBmpHandle )
+ {
+ changed = ETrue;
+ iData[i]->SetScreenshotHandle(
+ LookupScreenshotHandle( iData[i]->WgId()) );
+ }
+ }
+ return changed;
+ }
+
+
// end of file
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp Tue May 25 12:29:32 2010 +0300
@@ -238,20 +238,19 @@
TSLOG_CONTEXT( UpdateTaskList, TSLOG_LOCAL );
TSLOG_IN();
+ // screenshot taking support - call Register and Unregister when needed
+ UpdatePreviewContent();
+
+ // get the foreground app uid and publish it to CFW if different than before
+ TRAP_IGNORE( PublishFgAppUidL() );
+
// There can be many calls in a row, use a timer to prevent degrading
// device performance.
- iDataList->SetDirty();
if ( !iUpdateStarter->IsActive() )
{
iUpdateStarter->Start( KContentRefreshDelay, 0,
TCallBack( UpdateStarterCallback, this ) );
}
-
- // screenshot taking support - call Register and Unregister when needed
- UpdatePreviewContent();
-
- // get the foreground app uid and publish it to CFW if different than before
- TRAP_IGNORE( PublishFgAppUidL() );
TSLOG_OUT();
}
@@ -316,6 +315,11 @@
{
iFgAppUid = newUid;
iDataList->MoveEntryAtStart(newUid.iUid, EFalse);
+ TBool change( iDataList->MoveEntryAtStart(newUid.iUid, EFalse) );
+ if( change )
+ {
+ iObserver.FswDataChanged();
+ }
}
TSLOG_OUT();
@@ -755,10 +759,9 @@
{
TSLOG_CONTEXT( HandleWidgetUpdateL, TSLOG_LOCAL );
- iDataList->MoveEntryAtStart(aWidgetId, ETrue);
+ TBool contentChanged( iDataList->MoveEntryAtStart(aWidgetId, ETrue) );
CFbsBitmap* bmp = 0;
- TBool contentChanged(EFalse);
if( aBitmapHandle )
{
TRAPD( err, bmp = CopyBitmapL( aBitmapHandle, EFalse ) );
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Tue May 25 12:29:32 2010 +0300
@@ -161,12 +161,6 @@
* Handling short/long app key.
*/
void HandleAppKey(TInt aType);
-
- /*
- * Updates components visibility, used to switch off
- * grid scrollbar visibility for transition effects
- */
- void UpdateComponentVisibility();
private:
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Tue May 25 12:29:32 2010 +0300
@@ -254,7 +254,6 @@
TBool /*aLayers*/,
TUint aSubCom )
{
- TRAP_IGNORE( RequestPopUpL() );
const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
GfxTransEffect::Abort(iAppView);
GfxTransEffect::Begin( iAppView, aTranstionId );
@@ -286,7 +285,6 @@
else
{
// App start animation
- TRAP_IGNORE( RequestPopUpL() );
const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
GfxTransEffect::Abort(iAppView);
TInt groupId = GfxTransEffect::BeginGroup();
@@ -312,13 +310,9 @@
// CTsAppUi::TransitionFinished
// -----------------------------------------------------------------------------
//
-void CTsAppUi::TransitionFinished(const CCoeControl* aControl,
+void CTsAppUi::TransitionFinished(const CCoeControl* /*aControl*/,
TUint /*aAction*/)
{
- if ( aControl == iAppView )
- {
- TRAP_IGNORE( DisablePopUpL() );
- }
}
// -----------------------------------------------------------------------------
@@ -697,6 +691,7 @@
{
SetOrientationL(EAppUiOrientationPortrait);
}
+ SetFullScreenApp(EFalse);
iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
}
TSLOG_OUT();
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Tue May 25 12:29:32 2010 +0300
@@ -446,7 +446,6 @@
// Forward event to interested controls
iFastSwapArea->HandleSwitchToForegroundEvent();
- iFastSwapArea->UpdateComponentVisibility();
// Check for layout updates
CTsAppUi* appUi = static_cast<CTsAppUi*>(iCoeEnv->AppUi());
@@ -483,7 +482,6 @@
MakeVisible( ETrue );
}
- iFastSwapArea->UpdateComponentVisibility();
DrawDeferred();
TSLOG_OUT();
@@ -601,8 +599,6 @@
{
iEvtHandler->EnableEventHandling(ETrue);
iExitOnPointerUp = EFalse;
- LaunchFeedback(ETouchFeedbackBasic, TTouchFeedbackType(
- ETouchFeedbackVibra | ETouchFeedbackAudio), aPointerEvent);
if( !DragArea().Contains(aPointerEvent.iParentPosition) ||
!iFastSwapArea->Count() )
@@ -615,6 +611,13 @@
iExitOnPointerUp = ETrue;
}
}
+ else if ( !iAppsHeading->Rect().Contains( aPointerEvent.iParentPosition ) ||
+ !iFastSwapArea->Count() )
+ {
+ // Feedback only on "active" areas of UI
+ LaunchFeedback(ETouchFeedbackBasic, TTouchFeedbackType(
+ ETouchFeedbackVibra | ETouchFeedbackAudio), aPointerEvent);
+ }
}
else if( TPointerEvent::EButton1Up == aPointerEvent.iType && iExitOnPointerUp )
{
@@ -623,6 +626,8 @@
!iAppsHeading->Rect().Contains(aPointerEvent.iParentPosition) ) ||
!iFastSwapArea->Count() )
{
+ LaunchFeedback(ETouchFeedbackBasic, TTouchFeedbackType(
+ ETouchFeedbackVibra | ETouchFeedbackAudio), aPointerEvent);
iEikonEnv->EikAppUi()->HandleCommandL(EAknSoftkeyExit);
}
}
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Tue May 11 16:02:39 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Tue May 25 12:29:32 2010 +0300
@@ -394,7 +394,7 @@
HandleFswContentChanged();
iGrid->SetCurrentDataIndex(selIdx);
UpdateGrid(ETrue, EFalse);
- DrawDeferred();
+ iGrid->DrawDeferred();
// Order full redraw after switch
if(iRedrawTimer)
@@ -413,14 +413,14 @@
//
void CTsFastSwapArea::Draw( const TRect& /*aRect*/ ) const
{
- CWindowGc& gc = SystemGc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
- AknsDrawUtils::Background( skin,
- cc,
- this,
- gc,
- Rect() );
+// CWindowGc& gc = SystemGc();
+// MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+// MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+// AknsDrawUtils::Background( skin,
+// cc,
+// this,
+// gc,
+// Rect() );
}
// --------------------------------------------------------------------------
@@ -720,7 +720,7 @@
static_cast<CTsAppView*>(&iParent)->EnableDragEvents(EFalse);
}
- for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i )
+ for ( TInt i = 0; i < iArray.Count(); ++i )
{
const TDesC& appName( iArray[i]->AppName() );
const TInt formatLen = 3 + 2;
@@ -785,18 +785,18 @@
iGrid->SetCloseItemsL(closeItemArray);
iGrid->SetStrokeItemsL(strokeItemArray);
+ // Update scrollbar visibility
+ if( iGrid->ScrollBarFrame() )
+ {
+ iGrid->SetScrollBarFrame(NULL,CEikListBox::EOwnedExternally);
+ }
+
// Cleanup
CleanupStack::PopAndDestroy(&strokeItemArray);
CleanupStack::PopAndDestroy(&closeItemArray);
CleanupStack::Pop(textArray);
CleanupStack::Pop(iconArray);
- if( iGrid->ScrollBarFrame() )
- {
- iGrid->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff);
- }
-
// refresh the items in the grid
iEvtHandler.ReInitPhysicsL( GridWorldSize(), ViewSize(), ETrue );
UpdateGrid( ETrue, !aSuppressAnimation );
@@ -868,6 +868,8 @@
iGrid->HideHighlight();
}
CancelLongTapAnimation();
+ iGrid->MakeVisible(EFalse);
+ iGrid->DrawNow();
}
// -----------------------------------------------------------------------------
@@ -915,12 +917,12 @@
iRedrawTimer->Cancel();
iRedrawTimer->After(KRedrawTime);
- itemDrawer->SetRedrawBackground(EFalse);
-
// give feedback
LaunchPopupFeedback();
iPrevAppCount = iArray.Count();
+
+ iGrid->MakeVisible(ETrue);
TSLOG_OUT();
}
@@ -959,6 +961,14 @@
CancelLongTapAnimation();
iKeyEvent = ETrue;
+
+ //do not forward the event until item is higlighted
+ TKeyResponse response = ShowHighlightOnKeyEvent(aKeyEvent, aType);
+ if( response == EKeyWasConsumed )
+ {
+ return EKeyWasConsumed;
+ }
+
// handle the 'clear' key
if ( aType == EEventKey && aKeyEvent.iCode == EKeyBackspace )
{
@@ -970,13 +980,6 @@
return EKeyWasConsumed;
}
- //do not forward the event until item is higlighted
- TKeyResponse response = ShowHighlightOnKeyEvent(aKeyEvent, aType);
- if( response == EKeyWasConsumed )
- {
- return EKeyWasConsumed;
- }
-
// pass the event to grid
// do not pass down and up arrow key events
if ( aKeyEvent.iScanCode != EStdKeyUpArrow &&
@@ -1022,8 +1025,11 @@
TKeyResponse retVal(EKeyWasNotConsumed);
if (aKeyEvent.iScanCode == EStdKeyLeftArrow ||
- aKeyEvent.iScanCode == EStdKeyRightArrow)
- {
+ aKeyEvent.iScanCode == EStdKeyRightArrow ||
+ aKeyEvent.iScanCode == EStdKeyDevice3 ||
+ aKeyEvent.iScanCode == EStdKeyBackspace ||
+ aKeyEvent.iScanCode == EStdKeyEnter )
+ {
if (!iGrid->IsHighlightVisible())
{
if (aType == EEventKey)
@@ -1075,6 +1081,7 @@
CancelLongTapAnimation( EFalse );
if( iActivateOnPointerRelease != TPoint() )
{
+ iHandlePointerCandidate = ETrue;
TapL(iActivateOnPointerRelease);
iActivateOnPointerRelease = TPoint();
}
@@ -1433,7 +1440,8 @@
if(visibleItem != SelectedIndex())
{
iGrid->SetCurrentDataIndex( visibleItem );
- DrawDeferred();
+ iParent.DrawDeferred();
+ iGrid->DrawDeferred();
}
}
@@ -1516,12 +1524,6 @@
//
void CTsFastSwapArea::MoveOffset(const TPoint& aPoint, TBool aDrawNow)
{
- TSLOG_CONTEXT( CTsFastSwapArea::MoveOffset, TSLOG_LOCAL );
- TSLOG2_IN("Old position x: %d, y:%d", ViewPos().iX, ViewPos().iY);
- TSLOG2_IN("New position x: %d, y:%d", aPoint.iX, aPoint.iY);
- TSLOG_OUT();
-
-
if( iHandlePointerCandidate )
{
//pointer was pressed and it's being waiting for handling
@@ -1548,7 +1550,8 @@
// Center view
gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2;
}
- DrawDeferred();
+ //iParent.DrawDeferred();
+ iGrid->DrawDeferred();
iGrid->SetRect( gridViewRect );
iLogicalViewPosOffset = 0;
}
@@ -1650,7 +1653,7 @@
void CTsFastSwapArea::Stop()
{
CenterItem( KUpdateGridTime );
- DrawNow();
+ DrawDeferred();
}
// -----------------------------------------------------------------------------
@@ -1789,22 +1792,33 @@
}
else
{
+ TInt retItemPosX(0);
TInt offsetCheck = GridWorldSize().iWidth;
// View inside of grid world rect
for ( TInt i = 0 ; i < GridItemCount(); i++ )
{
- TInt offset = aViewPos.iX - ItemViewPosition( i ).iX;
+ TInt itemPosX = ItemViewPosition( i ).iX;
+ TInt offset = aViewPos.iX - itemPosX;
if ( Abs( offset ) <= offsetCheck )
{
offsetCheck = Abs( offset );
retVal = i;
+ retItemPosX = itemPosX;
}
else
{
break;
}
}
+ // Check if item is fully visible. If not
+ // return next one if possible
+ if ( retItemPosX - iGridItemWidth / 2 < absViewPos.iX &&
+ retVal + 1 < GridItemCount() )
+ {
+ retVal++;
+ }
}
+
return retVal;
}
@@ -1836,22 +1850,6 @@
// -----------------------------------------------------------------------------
-// CTsFastSwapArea::UpdateComponentVisibility
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapArea::UpdateComponentVisibility()
- {
- // Switch off scrollbars
- CEikScrollBarFrame* scrollBar = iGrid->ScrollBarFrame();
- if(scrollBar)
- {
- TRAP_IGNORE( scrollBar->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EOff));
- }
- }
-
-
-// -----------------------------------------------------------------------------
// CTsFastSwapArea::GetCurrentScreenOrientation
// -----------------------------------------------------------------------------
//
@@ -1916,12 +1914,13 @@
{
TBool retVal(EFalse);
TInt appCount = iArray.Count();
+
+ TApaTaskList taskList( iEikonEnv->WsSession() );
+ TApaTask task = taskList.FindApp( KTsHomescreenUid );
+ TInt homescrWgId = task.WgId();
+
if ( iPrevAppCount != appCount )
{
- TApaTaskList taskList( iEikonEnv->WsSession() );
- TApaTask task = taskList.FindApp( KTsHomescreenUid );
- TInt homescrWgId = task.WgId();
-
for ( TInt i = 0; i < iArray.Count(); i++ )
{
TInt wgId = iArray[i]->WgId();
@@ -1932,6 +1931,10 @@
}
}
}
+ else if ( aWgId == homescrWgId )
+ {
+ retVal = ETrue;
+ }
iPrevAppCount = appCount;
return retVal;
}
@@ -1966,13 +1969,11 @@
{
if ( Rect().Contains(aHitPoint) )
{
- for ( TInt i = 0; i < GridItemCount(); i++ )
+ TInt itemIdx;
+ TBool isItemHit = iGrid->GridView()->XYPosToItemIndex( aHitPoint, itemIdx );
+ if ( isItemHit && ( CanClose( itemIdx ) || CanCloseAll( itemIdx ) ) )
{
- TBool isItemHit = iGrid->GridView()->XYPosToItemIndex( aHitPoint, i );
- if ( isItemHit && ( CanClose( i ) || CanCloseAll( i ) ) )
- {
- return ETrue;
- }
+ return ETrue;
}
}
return EFalse;