Revision: 201035
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 17 Sep 2010 08:29:24 +0300
changeset 67 199e6e1e0b54
parent 61 743eb0b9959e
child 70 a91aa46552be
Revision: 201035 Kit: 201037
data/details.svg
data/detailsview.docml
data/fullscreenzoomin.fxml
data/fullscreenzoomout.fxml
engine/collectionframework/plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp
engine/collectionframework/plugins/glxcollectionpluginalbums/src/glxcollectionpluginalbums.cpp
inc/glxlocalisationstrings.h
inc/glxsymbianlocalisationstrings.h
main/main.cpp
package_definition.xml
package_map.xml
photos.qrc
ui/commandhandlers/bwins/glxcommandhandlerbaseu.def
ui/commandhandlers/bwins/glxcommoncommandhandlersu.def
ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h
ui/commandhandlers/commandhandlerbase/src/glxmodelcommandhandler.cpp
ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrename.h
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp
ui/commandhandlers/eabi/glxcommandhandlerbaseu.def
ui/commandhandlers/eabi/glxcommoncommandhandlersu.def
ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def
ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp
ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp
ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h
ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def
ui/inc/glxcommandhandlers.hrh
ui/inc/glxdocloaderdefs.h
ui/inc/glxmodelroles.h
ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
ui/uiengine/model/mediamodel/src/glxmediamodel.cpp
ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp
ui/viewmanagement/viewmanager/src/glxviewmanager.cpp
ui/views/detailsview/inc/glxdetailsview.h
ui/views/detailsview/inc/glxdetailsviewitemprototype.h
ui/views/detailsview/inc/glxdetailsviewmodelwrapper.h
ui/views/detailsview/src/glxdetailsview.cpp
ui/views/detailsview/src/glxdetailsviewitemprototype.cpp
ui/views/detailsview/src/glxdetailsviewmodelwrapper.cpp
ui/views/docloaders/src/glxviewdocloader.cpp
ui/views/fullscreenview/inc/glxcoverflow.h
ui/views/fullscreenview/src/glxcoverflow.cpp
ui/views/fullscreenview/src/glxfullscreenview.cpp
ui/views/slideshowview/src/glxslideshowwidget.cpp
ui/views/views.pro
ui/widgets/bwins/glxzoomwidgetu.def
ui/widgets/eabi/glxzoomwidgetu.def
ui/widgets/glxzoomwidget/inc/glxzoomwidget.h
ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/details.svg	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="800px" height="600px" viewBox="0 0 800 600" enable-background="new 0 0 800 600" xml:space="preserve">
+<rect x="0.445" y="0.86" fill="#030303" stroke="#3286B2" stroke-width="7" width="800" height="600"/>
+</svg>
--- a/data/detailsview.docml	Thu Sep 02 20:26:45 2010 +0300
+++ b/data/detailsview.docml	Fri Sep 17 08:29:24 2010 +0300
@@ -4,46 +4,42 @@
         <widget name="content" role="HbView:widget" type="HbWidget">
             <widget name="ImageIcon" type="HbLabel">
                 <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                <icon iconName="qtg_small_smiley_very_cool" name="icon"/>
-                <real name="z" value="1"/>
+                <real name="z" value="3"/>
                 <sizehint height="21.19403un" type="PREFERRED" width="39.55224un"/>
             </widget>
             <widget name="FavIcon" plugin="glxdetailscustomplugin" type="GlxDetailsIcon">
-                <real name="z" value="2"/>
+                <real name="z" value="3"/>
             </widget>
-            <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
+            <widget name="ShareButton" type="HbPushButton">
                 <real name="z" value="3"/>
-                <sizehint type="PREFERRED" width="44.92537un"/>
+                <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizehint type="PREFERRED" width="42.53731un"/>
+                <string locid="txt_photos_button_share" name="text"/>
             </widget>
-            <widget name="container" type="HbWidget">
-                <widget name="DateText" type="HbLabel">
-                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
-                    <string name="plainText" value="Label"/>
+            <widget name="DetailsViewList" type="HbListView">
+                <widget name="prototype" role="HbAbstractView:prototype" type="HbListViewItem">
+                    <string name="state" value="normal"/>
                 </widget>
-                <widget name="TimeText" type="HbLabel">
-                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
-                    <string name="plainText" value="Label"/>
-                </widget>
-                <widget name="SizeText" type="HbLabel">
-                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
-                    <string name="plainText" value="Label"/>
-                </widget>
-                <widget name="Descriptions" type="HbLabel">
-                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
-                    <string locid="txt_photos_formlabel_description" name="plainText" value="Description :"/>
-                </widget>
-                <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit"/>
-                <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                <bool name="itemRecycling" value="FALSE"/>
+                <real name="z" value="22"/>
+                <sizepolicy horizontalPolicy="Expanding" horizontalStretch="0" verticalPolicy="Expanding" verticalStretch="0"/>
+                <sizehint height="47.7612un" type="PREFERRED" width="expr(var(hb-param-screen-short-edge) )"/>
+            </widget>
+            <widget name="ImageBackGround" type="HbLabel">
+                <enums name="aspectRatioMode" value="IgnoreAspectRatio"/>
+                <real name="z" value="1"/>
             </widget>
             <layout type="anchor">
                 <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="1.64179un" src="" srcEdge="TOP"/>
                 <anchoritem dst="ImageIcon" dstEdge="RIGHT" spacing="-12.83582un" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="FavIcon" dstEdge="TOP" spacing="14.32836un" src="" srcEdge="TOP"/>
                 <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="-10.59702un" src="" srcEdge="RIGHT"/>
-                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="3.13433un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageName" dstEdge="TOP" spacing="25.52239un" src="" srcEdge="TOP"/>
-                <anchoritem dst="container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="container" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+                <anchoritem dst="ShareButton" dstEdge="LEFT" spacing="2.98507un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ShareButton" dstEdge="TOP" spacing="2.98507un" src="" srcEdge="TOP"/>
+                <anchoritem dst="DetailsViewList" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="DetailsViewList" dstEdge="TOP" spacing="11.26119un" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageBackGround" dstEdge="LEFT" spacing="4.32836un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageBackGround" dstEdge="TOP" spacing="4.47761un" src="" srcEdge="TOP"/>
             </layout>
         </widget>
         <string name="title" value="View"/>
@@ -53,46 +49,24 @@
         <widget name="view" type="HbView">
             <bool name="contentFullScreen" value="TRUE"/>
         </widget>
-        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-        </widget>
-        <widget name="SizeText" type="HbLabel">
-            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) + 6un +var(hb-param-margin-gene-bottom) )"/>
+        <widget name="ShareButton" type="HbPushButton">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="TimeText" type="HbLabel">
-            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
-            <real name="z" value="5"/>
-            <rect height="11.49254un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="29un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="11.49254un" type="FIXED" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="11.49254un" type="MINIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="11.49254un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint type="FIXED" width="31.95un"/>
+            <sizehint type="MINIMUM" width="31.95un"/>
+            <sizehint type="MAXIMUM" width="31.95un"/>
         </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
             <layout type="anchor">
-                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) + 0.5un)" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageName" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-screen) + 0.5un)" src="ImageIcon" srcEdge="BOTTOM"/>
-                <anchoritem dst="container" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="container" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-bottom) )" src="ImageName" srcEdge="BOTTOM"/>
                 <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="0un" src="ImageIcon" srcEdge="RIGHT"/>
                 <anchoritem dst="FavIcon" dstEdge="BOTTOM" spacing="0un" src="ImageIcon" srcEdge="BOTTOM"/>
-                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
+                <anchoritem dst="ShareButton" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-screen) + 0.5un)" src="ImageIcon" srcEdge="BOTTOM"/>
+                <anchoritem dst="ShareButton" dstEdge="CENTERH" spacing="expr(var(hb-param-screen-width)  /2px)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageBackGround" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageBackGround" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="0.5un" src="ImageBackGround" srcEdge="LEFT"/>
+                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="0.5un" src="ImageBackGround" srcEdge="TOP"/>
+                <anchoritem dst="DetailsViewList" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) -1un)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="DetailsViewList" dstEdge="TOP" spacing="12un" src="ImageBackGround" srcEdge="BOTTOM"/>
             </layout>
         </widget>
         <widget name="FavIcon" plugin="glxdetailscustomplugin" type="GlxDetailsIcon">
@@ -101,78 +75,53 @@
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
         </widget>
-        <widget name="DateText" type="HbLabel">
-            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="0un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="ImageIcon" type="HbLabel">
+        <widget name="ImageBackGround" type="HbLabel">
+            <enums name="aspectRatioMode" value="IgnoreAspectRatio"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
             <sizehint height="31.95un" type="FIXED" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
             <sizehint height="31.95un" type="MINIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
             <sizehint height="31.95un" type="MAXIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
         </widget>
-        <widget name="container" type="HbWidget">
+        <widget name="DetailsViewList" type="HbListView">
+            <bool name="itemRecycling" value="FALSE"/>
+            <bool name="longPressEnabled" value="FALSE"/>
+            <enums name="verticalScrollBarPolicy" value="ScrollBarAlwaysOff"/>
+            <bool name="uniformItemSizes" value="FALSE"/>
+            <enums name="horizontalScrollBarPolicy" value="ScrollBarAlwaysOff"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="40.74627un" type="FIXED" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-            <sizehint height="40.74627un" type="MINIMUM" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="39un" type="FIXED" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) + 2un)"/>
+            <sizehint height="39un" type="MINIMUM" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) + 2un)"/>
+            <sizehint height="39un" type="MAXIMUM" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) + 2un)"/>
         </widget>
-        <widget name="Descriptions" type="HbLabel">
-            <rect height="40.2" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+        <widget name="ImageIcon" type="HbLabel">
+            <enums name="aspectRatioMode" value="KeepAspectRatio"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string locid="txt_photos_formlabel_description" name="plainText"/>
+            <sizehint height="expr(31.95un - 1un)" type="FIXED" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 1un)"/>
+            <sizehint height="expr(31.95un - 1un)" type="MINIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 1un)"/>
+            <sizehint height="expr(31.95un - 1un)" type="MAXIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 1un)"/>
         </widget>
     </section>
     <section name="landscape">
         <widget name="view" type="HbView">
             <bool name="contentFullScreen" value="TRUE"/>
         </widget>
-        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="MINIMUM" width="31.95un"/>
-            <sizehint height="6un" type="MAXIMUM" width="31.95un"/>
-        </widget>
-        <widget name="SizeText" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) + 6un +var(hb-param-margin-gene-bottom) )"/>
+        <widget name="ShareButton" type="HbPushButton">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="56un"/>
-            <sizehint height="6un" type="MINIMUM" width="56un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="TimeText" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="55un"/>
-            <sizehint height="6un" type="MINIMUM" width="55un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
-            <real name="z" value="6"/>
-            <rect height="11.49254un" name="geometry" width="56un" x="0.5un" y="28.95522un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="11.49254un" type="FIXED" width="56un"/>
-            <sizehint height="11.49254un" type="MINIMUM" width="56un"/>
-            <sizehint height="11.49254un" type="MAXIMUM" width="56un"/>
+            <sizehint type="MINIMUM" width="31.95un"/>
+            <sizehint height="7.5un" type="MAXIMUM" width="31.95un"/>
         </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
             <layout type="anchor">
-                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageName" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-middle-vertical) )" src="ImageIcon" srcEdge="BOTTOM"/>
                 <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="0un" src="ImageIcon" srcEdge="RIGHT"/>
                 <anchoritem dst="FavIcon" dstEdge="BOTTOM" spacing="0un" src="ImageIcon" srcEdge="BOTTOM"/>
-                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
-                <anchoritem dst="container" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) + 31.95un + var(hb-param-margin-gene-left))" src="" srcEdge="LEFT"/>
-                <anchoritem dst="container" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
+                <anchoritem dst="ShareButton" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ShareButton" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-middle-vertical) )" src="ImageIcon" srcEdge="BOTTOM"/>
+                <anchoritem dst="DetailsViewList" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) + 31.95un + var(hb-param-margin-gene-left))" src="" srcEdge="LEFT"/>
+                <anchoritem dst="DetailsViewList" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageBackGround" dstEdge="LEFT" spacing="1.9403un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageBackGround" dstEdge="TOP" spacing="11.49254un" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="0.45un" src="ImageBackGround" srcEdge="LEFT"/>
+                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="0.45un" src="ImageBackGround" srcEdge="TOP"/>
             </layout>
         </widget>
         <widget name="FavIcon" plugin="glxdetailscustomplugin" type="GlxDetailsIcon">
@@ -181,38 +130,35 @@
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
         </widget>
-        <widget name="DateText" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="0un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint type="FIXED" width="56un"/>
-            <sizehint height="6un" type="MINIMUM" width="56un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="ImageIcon" type="HbLabel">
+        <widget name="ImageBackGround" type="HbLabel">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
             <sizehint height="31.95un" type="FIXED" width="31.95un"/>
             <sizehint height="31.95un" type="MINIMUM" width="31.95un"/>
             <sizehint height="31.95un" type="MAXIMUM" width="31.95un"/>
         </widget>
-        <widget name="container" type="HbWidget">
+        <widget name="DetailsViewList" type="HbListView">
+            <bool name="itemRecycling" value="FALSE"/>
+            <bool name="longPressEnabled" value="FALSE"/>
+            <enums name="verticalScrollBarPolicy" value="ScrollBarAlwaysOff"/>
+            <bool name="uniformItemSizes" value="FALSE"/>
+            <enums name="horizontalScrollBarPolicy" value="ScrollBarAlwaysOff"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="40.74627un" type="FIXED" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
-            <sizehint height="40.74627un" type="MINIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
-            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+            <sizehint height="40.74627un" type="FIXED" width="385.8"/>
+            <sizehint height="40.74627un" type="MINIMUM" width="385.8"/>
+            <sizehint height="40.74627un" type="MAXIMUM" width="385.8"/>
         </widget>
-        <widget name="Descriptions" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+        <widget name="ImageIcon" type="HbLabel">
+            <enums name="aspectRatioMode" value="KeepAspectRatio"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="56un"/>
-            <sizehint height="6un" type="MINIMUM" width="56un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
-            <string locid="txt_photos_formlabel_description" name="plainText"/>
+            <sizehint height="31un" type="FIXED" width="31un"/>
+            <sizehint height="31un" type="MINIMUM" width="31un"/>
+            <sizehint height="31.95un" type="MAXIMUM" width="31.95un"/>
         </widget>
     </section>
-    <metadata activeUIState="landscape" display="NHD-3.2-inch_landscape" unit="un">
+    <metadata activeUIState="portrait" display="NHD-3.2-inch_portrait" unit="un">
         <uistate name="Common ui state" sections="#common"/>
         <uistate name="portrait" sections="#common portrait"/>
         <uistate name="landscape" sections="#common landscape"/>
+        <dummydata objectName="DetailsViewList" section="#common" value="0"/>
     </metadata>
 </hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/fullscreenzoomin.fxml	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="scale_y" type="anim">
+			<style>linear</style>
+			<duration>0.4</duration>
+			<keyframe at="0.0">1.0</keyframe>
+			<keyframe at="1.0">0.1</keyframe>
+		</param>
+		<param name="scale_origin_x" ref="visual.width">0.5</param>
+		<param name="scale_origin_y" ref="visual.height">0.5</param>
+		<param name="scale_x" type="anim">
+			<style>linear</style>
+			<duration>0.4</duration>
+			<keyframe at="0.0">1.0</keyframe>
+			<keyframe at="1.0">0.1</keyframe>
+		</param>
+		<param name="opacity" type="anim">
+			<style>linear</style>
+			<duration>0.4</duration>
+			<keyframe at="0.0">1.0</keyframe>
+			<keyframe at="1.0">0.0</keyframe>
+		</param>
+	</visual>
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/fullscreenzoomout.fxml	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="scale_x" type="anim">
+			<style>linear</style>
+			<duration>0.4</duration>
+			<keyframe at="0.0">0.1</keyframe>
+			<keyframe at="1.0">1.0</keyframe>
+		</param>
+		<param name="scale_origin_x" ref="visual.width">0.5</param>
+		<param name="scale_origin_y" ref="visual.height">0.5</param>
+		<param name="scale_y" type="anim">
+			<style>linear</style>
+			<duration>0.4</duration>
+			<keyframe at="0.0">0.1</keyframe>
+			<keyframe at="1.0">1.0</keyframe>
+		</param>
+		<param name="opacity" type="anim">
+			<style>linear</style>
+			<duration>0.4</duration>
+			<keyframe at="0.0">0.0</keyframe>
+			<keyframe at="1.0">1.0</keyframe>
+		</param>
+	</visual>
+</layers>
\ No newline at end of file
--- a/engine/collectionframework/plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp	Thu Sep 02 20:26:45 2010 +0300
+++ b/engine/collectionframework/plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp	Fri Sep 17 08:29:24 2010 +0300
@@ -54,6 +54,7 @@
 SYSTEMINCLUDE   ../../../../../inc
 SYSTEMINCLUDE   ../../../../../gallery/loc
 SYSTEMINCLUDE   ../../../datasource/manager/inc
+SYSTEMINCLUDE	/epoc32/include/mw/hb/hbcore
 
 // System includes for epoc32/include
 
@@ -69,5 +70,6 @@
 LIBRARY         glxdatasourcemanager.lib
 LIBRARY         mpxcommon.lib
 LIBRARY         flogger.lib
+LIBRARY		HbCore.lib
 SMPSAFE
 // End of File
--- a/engine/collectionframework/plugins/glxcollectionpluginalbums/src/glxcollectionpluginalbums.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/engine/collectionframework/plugins/glxcollectionpluginalbums/src/glxcollectionpluginalbums.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -37,6 +37,7 @@
 #include <glxmediageneraldefs.h>
 #include <glxmediacollectioninternaldefs.h>
 #include <glxcollectiongeneraldefs.h>
+#include <hbtextresolversymbian.h>
 
 #include <glxpanic.h>
 #include <mglxdatasource.h>
@@ -214,24 +215,13 @@
             	}
             else
             	{
-            	if(0 == usageCount)
-            		{
-                	tempTitle = LoadLocalizedStringLC(KNoImages); 
+                tempTitle = HbTextResolverSymbian::LoadLC(KAlbumContainer, usageCount);
          
                 	
                 	// Set the title in the response.
             		aResponse->SetTextValueL(attr, *tempTitle);  
             		CleanupStack::PopAndDestroy(tempTitle);
             		continue;                	
-            		}            	
-            	else if (1 == usageCount)
-                	{
-                	tempTitle = LoadLocalizedStringLC(KResourceFile, R_ALBUM_ITEM_SUB_TITLE_SINGLE);
-                	}
-                else
-                	{
-                    tempTitle = LoadLocalizedStringLC(KResourceFile, R_ALBUM_ITEM_SUB_TITLE_MULTI);
-                	}
             	}
             
             TPtr formatString = tempTitle->Des();
@@ -279,13 +269,13 @@
 					{
 					if( TGlxMediaId(KCapturedAlbumId) == aMediaId )
 						{
-						 HBufC* title = LoadLocalizedStringLC(KCameraText);
+						 HBufC* title = HbTextResolverSymbian::LoadLC(KCameraText); 
 						 aResponse->SetTextValueL(attr, *title);  
 						 CleanupStack::PopAndDestroy(title);						
 						}
 					else if (TGlxMediaId(KFavoriteAlbumId) == aMediaId  )
 						{
-						HBufC* title = LoadLocalizedStringLC(KMyFavText);
+						HBufC* title = HbTextResolverSymbian::LoadLC(KMyFavText); 
 						aResponse->SetTextValueL(attr, *title);  
 						CleanupStack::PopAndDestroy(title);						
 						}
--- a/inc/glxlocalisationstrings.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/inc/glxlocalisationstrings.h	Fri Sep 17 08:29:24 2010 +0300
@@ -121,19 +121,25 @@
 #define GLX_ALBUM_NAME_COUNT_LABEL      "txt_photos_subhead_1_l2"
 
 //to show the total image count in grid view
-#define GLX_GRID_VIEW_COUNT_LABEL       "txt_photos_subtitle_ln_images" 
+#define GLX_GRID_VIEW_COUNT_LABEL       "txt_photos_subhead_all_l2" 
 
 //mark all label to be shown in marking mode view
-#define GLX_LABEL_MARK_ALL            hbTrId("txt_photos_list_mark_all")
+#define GLX_LABEL_MARK_ALL              hbTrId("txt_photos_list_mark_all")
 
 
 //mark all label to be shown in marking mode view
-#define GLX_LABEL_MARK_COUNT            hbTrId("txt_photos_list_lnln")
+#define GLX_LABEL_MARK_COUNT            "txt_photos_list_l1l2" 
+
+#define GLX_GRID_NO_IMAGE               hbTrId("txt_photos_info_no_content")
 
 //*******************************DETAILS VIEW**********************************************
 
-//Description field
-#define GLX_DETAILS_DESCRIPTION        hbTrId("txt_photos_formlabel_description")
+//Name Field inside the text editor in the Details View
+#define GLX_DETAILS_NAME              hbTrId("txt_photos_list_name")
+
+//Description Field inside the text editor in the Details View
+#define GLX_DETAILS_DESCRIPTION       hbTrId("txt_photos_list_description")
+
 //Details view "Date" Label to show the captured date of the image, where %1 is the date
 #define GLX_DETAILS_DATE               "txt_photos_list_date_1"
 
@@ -183,14 +189,21 @@
 // progressing not to be shown while removing selected images from an album
 #define GLX_REMOVE_IMAGES                hbTrId("txt_photos_info_removing_images")    
 
-#define GLX_DIALOG_NAME_PROMPT           hbTrId("txt_photos_title_enter_name")
+#define GLX_DIALOG_ALBUM_PROMPT           hbTrId("txt_photos_title_enter_name")
+
+//Name Prompt
+#define GLX_DIALOG_NAME_PROMPT            hbTrId("txt_photos_dialog_image_name")
+
+//Description Prompt
+#define GLX_DIALOG_DESCRIPTION            hbTrId("txt_photos_dialog_description")
+
 
 #define GLX_DIALOG_ALBUM_NAME_DEFAULT    hbTrId("txt_photos_dialog_enter_name_entry_album")
 
-#define GLX_DIALOG_DELETE_ONE_ITEM       hbTrId("txt_photos_info_deleting_1")
+#define GLX_DIALOG_DELETE_ONE_ITEM       hbTrId("txt_photos_info_delete_1")
 
 //Name already in use alert when user tries to name/reanme the album with an already existing album name
-#define GLX_NAME_ALREADY_EXIST           hbTrId("txt_photos_dpopinfo_name_1_already_in_use") 
+#define GLX_NAME_ALREADY_EXIST           "txt_photos_info_name_1_already_in_use" 
 
 #define GLX_PROCESSING                   hbTrId( "txt_common_info_processing" ) 
 
@@ -234,7 +247,6 @@
 #define GLX_ITEMS_MYFAV                "txt_photos_subtitle_ln_items"
 #define GLX_SUBTITLE_CAM_GRIDVIEW      hbTrId("txt_photos_subtitle_my_camera")
 #define GLX_SUBTITLE_MYFAV_GRIDVIEW    hbTrId("txt_photos_subtitle_my_favorites")
-#define GLX_GRID_NO_IMAGE              hbTrId("txt_photos_info_no_content")
 #define GLX_ALBUM_SELECTION_TITLE      hbTrId("txt_photos_dialog_select_album") 
 #define GLX_IMAGE_VIEWER               hbTrId("txt_photos_title_image_viewer")  
 
--- a/inc/glxsymbianlocalisationstrings.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/inc/glxsymbianlocalisationstrings.h	Fri Sep 17 08:29:24 2010 +0300
@@ -19,7 +19,7 @@
 #define GLXSYMBIANLOCALISATIONSTRINGS_H_
 
 //SYMBIAN RELATED LOCALISATION STRINGS
-_LIT(KNoImages,"txt_photos_grid_no_images"); 
+_LIT(KAlbumContainer,"txt_photos_dblist_val_ln_images"); 
 _LIT(KCameraText,"txt_photos_dblist_my_camera");
 _LIT(KMyFavText,"txt_photos_dblist_my_favorites");	
 
--- a/main/main.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/main/main.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -43,7 +43,7 @@
     OstTraceExt3( TRACE_NORMAL, DUP1__MAIN, "::main Time at Launch HHMMSS =%d::%d::%d",
             localTime.hour(), localTime.minute(), localTime.second() );
 
-    GlxApplication app(argc, argv, Hb::NoSplash);	
+    GlxApplication app(argc, argv, XQServiceUtil::isService(argc, argv) ? Hb::NoSplash : Hb::DefaultApplicationFlags);	
     bool loaded(false);	
     QTranslator translator;
     QString path = "Z:/resource/qt/translations/";
@@ -59,7 +59,7 @@
     OstTraceEventStart0( EVENT_DUP1__MAIN_START, "launch" );
 
     if(!XQServiceUtil::isService()){
-        HbSplashScreen::start();
+        
         stateMgr = new GlxStateManager();
         app.setApplicationName( GLX_TITLE );
         stateMgr->launchApplication();  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_definition.xml	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SystemDefinition schema="3.0.0" xmlns:qt="http://www.nokia.com/qt">
+ <package id="photos" name="Photos" levels="util support ui app">
+  <collection id="photos_group" name="Photos Group" level="support">
+   <component id="photos_group_build" filter="s60" name="Photos Group Build" introduced="^4">
+    <!--<unit bldFile="group" qt:proFile="group.pro"/> -->
+   </component>
+  </collection>
+  <collection id="photos_loggers" name="Photos Loggers" level="util">
+   <component id="photos_loggerqt" filter="s60" name="Photos Logger Qt" introduced="^4">
+    <!--<unit bldFile="loggers/loggerqt" qt:proFile="loggerqt.pro"/> -->
+   </component>
+  </collection>
+  <collection id="photos_commonutilities" name="Photos Common Utilities" level="util">
+   <component id="photos_externalutility" filter="s60" name="Photos External Utility" introduced="^4">
+    <!--<unit bldFile="commonutilities/externalutility" qt:proFile="externalutility.pro"/> -->
+   </component>
+   <component id="imagedecoderwrapper" filter="s60" name="Image Decoder Wrapper" introduced="^4">
+    <!--<unit bldFile="commonutilities/imagedecoderwrapper" qt:proFile="imagedecoderwrapper.pro"/> -->
+   </component>
+  </collection>
+  <collection id="photos_ui" name="Photos UI" level="ui">
+	<!-- need to move exports from ui.pro into separate .pro or bld.inf -->
+   <component id="detailscustomwidget " filter="s60" name="Details Custom Widget" introduced="^4">
+    <!--<unit bldFile="ui/detailscustomwidget " qt:proFile="detailscustomwidget.pro"/> -->
+   </component>
+   <component id="photos_uiengine" filter="s60" name="Photos UI Engine" introduced="^4">
+    <!--<unit bldFile="ui/uiengine" qt:proFile="uiengine.pro"/> -->
+   </component>
+   <component id="photos_commandhandlers" filter="s60" name="Photos Command Handlers" introduced="^4">
+    <!--<unit bldFile="ui/commandhandlers" qt:proFile="commandhandlers.pro"/> -->
+   </component>
+   <component id="photos_viewutilities" filter="s60" name="Photos View Utilities" introduced="^4">
+    <!--<unit bldFile="ui/viewutilities" qt:proFile="commandhandlers.pro"/> -->
+   </component>
+   <component id="photos_widgets" filter="s60" name="Photos Widgets" introduced="^4">
+    <!--<unit bldFile="ui/widgets" qt:proFile="widgets.pro"/> -->
+   </component>
+   <component id="photos_views" filter="s60" name="Photos Views" introduced="^4">
+    <!--<unit bldFile="ui/views" qt:proFile="views.pro"/> -->
+   </component>
+   <component id="photos_viewmanagement" filter="s60" name="Photos View Management" introduced="^4">
+    <!--<unit bldFile="ui/viewmanagement" qt:proFile="viewmanagement.pro"/> -->
+   </component>
+  </collection>
+  <collection id="photos_main" name="Photos Main" level="support">
+   <component id="photos_main_build" filter="s60" name="Photos Main Build" introduced="^4">
+    <!--<unit bldFile="main" qt:proFile="main.pro"/> -->
+   </component>
+  </collection>
+  <collection id="gallery" name="Gallery" level="ui">
+   <component id="gallery_build" filter="s60" name="Gallery Build" introduced="^4">
+    <!--<unit bldFile="gallery" qt:proFile="gallery.pro"/> -->
+   </component>
+  </collection>
+  <collection id="imageviewerapp" name="Image Viewer App" level="support">
+   <component id="imageviewerapp_build" filter="s60" name="Image Viewer App Build" introduced="^4">
+    <!--<unit bldFile="imageviewerapp" qt:proFile="imageviewerapp.pro"/> -->
+   </component>
+  </collection>
+  <collection id="photos_info" name="Photos Info" level="support">
+   <component id="photos_build" filter="s60" name="Photos Build" introduced="^4">
+    <!--  split this up into the above components  -->
+    <unit bldFile="." qt:proFile="photos.pro"/>
+   </component>
+  </collection>
+ </package>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,1 @@
+<PackageMap root="sf" layer="app"/>
--- a/photos.qrc	Thu Sep 02 20:26:45 2010 +0300
+++ b/photos.qrc	Fri Sep 17 08:29:24 2010 +0300
@@ -9,6 +9,8 @@
         <file>data/opacity_deactivate.fxml</file>
         <file>data/zoomin.fxml</file>
         <file>data/zoomout.fxml</file>
+        <file>data/fullscreenzoomin.fxml</file>
+        <file>data/fullscreenzoomout.fxml</file>
         <file>data/helix.fxml</file>
         <file>data/fadein.fxml</file>  
         <file>data/uphide.fxml</file>
@@ -21,10 +23,10 @@
         <file>data/rotatefslandscape.fxml</file>
         <file>data/rotatefsprotrait.fxml</file>
         <file>data/photos.css</file>
-        <file>data/listview.docml</file>
-        <file>data/fullscreen.docml</file>
-        <file>data/slideshow.docml</file>
-        <file>data/detailsview.docml</file>
+	<file alias="data/listview.docml">data/listview.docml</file>
+	<file alias="data/fullscreen.docml">data/fullscreen.docml</file>
+	<file alias="data/slideshow.docml">data/slideshow.docml</file>
+	<file alias="data/detailsview.docml">data/detailsview.docml</file>
         <file>data/Wait/qgn_graf_ring_wait_01.svg</file>
         <file>data/Wait/qgn_graf_ring_wait_02.svg</file>
         <file>data/Wait/qgn_graf_ring_wait_03.svg</file>
@@ -35,5 +37,6 @@
         <file>data/Wait/qgn_graf_ring_wait_08.svg</file>
         <file>data/Wait/qgn_graf_ring_wait_09.svg</file>
         <file>data/Wait/qgn_graf_ring_wait_10.svg</file>
+	<file>data/details.svg</file>
     </qresource>
 </RCC>
--- a/ui/commandhandlers/bwins/glxcommandhandlerbaseu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/bwins/glxcommandhandlerbaseu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -13,9 +13,9 @@
 	?ProgressTextL@GlxMpxCommandHandler@@MBE?AVQString@@XZ @ 12 NONAME ; class QString GlxMpxCommandHandler::ProgressTextL(void) const
 	?HandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 13 NONAME ; void GlxMpxCommandHandler::HandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
 	?metaObject@GlxMpxCommandHandler@@UBEPBUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const * GlxMpxCommandHandler::metaObject(void) const
-	?TryExitL@GlxMpxCommandHandler@@AAEXH@Z @ 15 NONAME ; void GlxMpxCommandHandler::TryExitL(int)
-	?HandleMediaL@GlxMpxCommandHandler@@MAEXHPAVMGlxMediaList@@@Z @ 16 NONAME ; void GlxMpxCommandHandler::HandleMediaL(int, class MGlxMediaList *)
-	?HandleErrorL@GlxMpxCommandHandler@@MAEXH@Z @ 17 NONAME ; void GlxMpxCommandHandler::HandleErrorL(int)
+	?commandCancelled@GlxMpxCommandHandler@@QAEXXZ @ 15 NONAME ; void GlxMpxCommandHandler::commandCancelled(void)
+	?TryExitL@GlxMpxCommandHandler@@AAEXH@Z @ 16 NONAME ; void GlxMpxCommandHandler::TryExitL(int)
+	?HandleMediaL@GlxMpxCommandHandler@@MAEXHPAVMGlxMediaList@@@Z @ 17 NONAME ; void GlxMpxCommandHandler::HandleMediaL(int, class MGlxMediaList *)
 	??0GlxModelCommandHandler@@QAE@XZ @ 18 NONAME ; GlxModelCommandHandler::GlxModelCommandHandler(void)
 	?CreateMediaListL@GlxMpxCommandHandler@@AAEXHHW4TGlxFilterItemType@@@Z @ 19 NONAME ; void GlxMpxCommandHandler::CreateMediaListL(int, int, enum TGlxFilterItemType)
 	?executeMpxCommand@GlxMpxCommandHandler@@AAEX_N@Z @ 20 NONAME ; void GlxMpxCommandHandler::executeMpxCommand(bool)
@@ -44,6 +44,7 @@
 	??0GlxMpxCommandHandler@@QAE@XZ @ 43 NONAME ; GlxMpxCommandHandler::GlxMpxCommandHandler(void)
 	??_EGlxMpxCommandHandler@@UAE@I@Z @ 44 NONAME ; GlxMpxCommandHandler::~GlxMpxCommandHandler(unsigned int)
 	?HandleItemModifiedL@GlxMpxCommandHandler@@MAEXABV?$RArray@H@@PAVMGlxMediaList@@@Z @ 45 NONAME ; void GlxMpxCommandHandler::HandleItemModifiedL(class RArray<int> const &, class MGlxMediaList *)
-	??_EGlxModelCommandHandler@@UAE@I@Z @ 46 NONAME ; GlxModelCommandHandler::~GlxModelCommandHandler(unsigned int)
-	?DoHandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 47 NONAME ; void GlxMpxCommandHandler::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	?HandleErrorL@GlxMpxCommandHandler@@MBEXH@Z @ 46 NONAME ; void GlxMpxCommandHandler::HandleErrorL(int) const
+	??_EGlxModelCommandHandler@@UAE@I@Z @ 47 NONAME ; GlxModelCommandHandler::~GlxModelCommandHandler(unsigned int)
+	?DoHandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 48 NONAME ; void GlxMpxCommandHandler::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
 
--- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -1,89 +1,89 @@
 EXPORTS
 	??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 1 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int)
-	?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 2 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>)
-	?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 4 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const
-	??0GlxCommandHandlerRename@@QAE@XZ @ 5 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void)
-	??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 6 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void)
-	?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void)
-	?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 8 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short)
-	?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 9 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const
-	??_EGlxCommandHandlerSend@@UAE@I@Z @ 10 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int)
-	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *)
-	?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 12 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int)
-	?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 13 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const
-	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 14 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int)
-	?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 15 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &)
-	?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 16 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const
-	?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const
-	?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const
-	?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
-	??0GlxCommandHandlerComment@@QAE@XZ @ 22 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void)
-	?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 23 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const
-	??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 24 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void)
-	??_EGlxCommandHandlerEditImage@@UAE@I@Z @ 25 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(unsigned int)
-	?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 26 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *)
-	??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 27 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void)
-	?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 28 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
-	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *)
-	?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 30 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const
-	?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 31 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void)
-	??_EGlxCommandHandlerComment@@UAE@I@Z @ 32 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int)
-	??1GlxCommandHandlerRotate@@UAE@XZ @ 33 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void)
-	?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 34 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const
-	??1GlxCommandHandlerNewMedia@@UAE@XZ @ 35 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void)
-	??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 36 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int)
-	?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 37 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const
-	??_EGlxCommandHandlerDelete@@UAE@I@Z @ 38 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int)
-	?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 39 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const
-	?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const
-	?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 41 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject
-	?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 42 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void)
-	??0GlxCommandHandlerDelete@@QAE@XZ @ 43 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void)
-	??1GlxCommandHandlerRename@@UAE@XZ @ 44 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void)
-	??0GlxCommandHandlerSend@@QAE@XZ @ 45 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void)
-	?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 46 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int)
-	??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 47 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void)
-	??_EGlxCommandHandlerRename@@UAE@I@Z @ 48 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int)
-	?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 49 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const
-	?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 50 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int)
-	?doHandleUserAction@GlxCommandHandlerEditImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 51 NONAME ; void GlxCommandHandlerEditImage::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
-	??_EGlxCommandHandlerRotate@@UAE@I@Z @ 52 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int)
-	?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@AAVQString@@@Z @ 53 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &, class QString &)
-	?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 54 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const
-	??1GlxCommandHandlerComment@@UAE@XZ @ 55 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void)
-	??0GlxCommandHandlerEditImage@@QAE@XZ @ 56 NONAME ; GlxCommandHandlerEditImage::GlxCommandHandlerEditImage(void)
-	??1GlxCommandHandlerSend@@UAE@XZ @ 57 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void)
-	?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const
-	??0GlxCommandHandlerNewMedia@@QAE@XZ @ 59 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void)
-	?executeCommand@GlxCommandHandlerEditImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 60 NONAME ; void GlxCommandHandlerEditImage::executeCommand(int, int, class QList<class QModelIndex>)
-	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 61 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int)
-	?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 62 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
-	??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 63 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int)
-	?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 64 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const
-	?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 65 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 66 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 67 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const
-	?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 68 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const
-	??1GlxCommandHandlerEditImage@@UAE@XZ @ 69 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(void)
-	?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 70 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short)
-	?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 71 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>)
-	??1GlxCommandHandlerDelete@@UAE@XZ @ 72 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void)
-	?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 73 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const
-	??0GlxCommandHandlerRotate@@QAE@XZ @ 74 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void)
-	?qt_metacast@GlxCommandHandlerEditImage@@UAEPAXPBD@Z @ 75 NONAME ; void * GlxCommandHandlerEditImage::qt_metacast(char const *)
-	?staticMetaObject@GlxCommandHandlerEditImage@@2UQMetaObject@@B @ 76 NONAME ; struct QMetaObject const GlxCommandHandlerEditImage::staticMetaObject
-	?clearMediaModel@GlxCommandHandlerEditImage@@AAEXXZ @ 77 NONAME ; void GlxCommandHandlerEditImage::clearMediaModel(void)
-	?metaObject@GlxCommandHandlerEditImage@@UBEPBUQMetaObject@@XZ @ 78 NONAME ; struct QMetaObject const * GlxCommandHandlerEditImage::metaObject(void) const
-	?handleOk@GlxCommandHandlerEditImage@@QAEXABVQVariant@@@Z @ 79 NONAME ; void GlxCommandHandlerEditImage::handleOk(class QVariant const &)
-	?getStaticMetaObject@GlxCommandHandlerEditImage@@SAABUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const & GlxCommandHandlerEditImage::getStaticMetaObject(void)
-	?trUtf8@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString GlxCommandHandlerEditImage::trUtf8(char const *, char const *)
-	?storeItems@GlxCommandHandlerEditImage@@QAEXABVQModelIndex@@HH@Z @ 82 NONAME ; void GlxCommandHandlerEditImage::storeItems(class QModelIndex const &, int, int)
-	?tr@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString GlxCommandHandlerEditImage::tr(char const *, char const *, int)
-	?qt_metacall@GlxCommandHandlerEditImage@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 84 NONAME ; int GlxCommandHandlerEditImage::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?handleError@GlxCommandHandlerEditImage@@QAEXHABVQString@@@Z @ 85 NONAME ; void GlxCommandHandlerEditImage::handleError(int, class QString const &)
-	?trUtf8@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString GlxCommandHandlerEditImage::trUtf8(char const *, char const *, int)
-	?tr@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString GlxCommandHandlerEditImage::tr(char const *, char const *)
+	?qt_metacast@GlxCommandHandlerEditImage@@UAEPAXPBD@Z @ 2 NONAME ; void * GlxCommandHandlerEditImage::qt_metacast(char const *)
+	?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 3 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>)
+	?staticMetaObject@GlxCommandHandlerEditImage@@2UQMetaObject@@B @ 4 NONAME ; struct QMetaObject const GlxCommandHandlerEditImage::staticMetaObject
+	?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 6 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const
+	??0GlxCommandHandlerRename@@QAE@XZ @ 7 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void)
+	??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 8 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void)
+	?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void)
+	?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 10 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short)
+	?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 11 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const
+	??_EGlxCommandHandlerSend@@UAE@I@Z @ 12 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int)
+	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *)
+	?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 14 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const
+	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int)
+	?clearMediaModel@GlxCommandHandlerEditImage@@AAEXXZ @ 16 NONAME ; void GlxCommandHandlerEditImage::clearMediaModel(void)
+	?metaObject@GlxCommandHandlerEditImage@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxCommandHandlerEditImage::metaObject(void) const
+	?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &)
+	?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 19 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const
+	?handleOk@GlxCommandHandlerEditImage@@QAEXABVQVariant@@@Z @ 20 NONAME ; void GlxCommandHandlerEditImage::handleOk(class QVariant const &)
+	?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const
+	?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 22 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 23 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 24 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const
+	?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 25 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	??0GlxCommandHandlerComment@@QAE@XZ @ 26 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void)
+	?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 27 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const
+	??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 28 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void)
+	??_EGlxCommandHandlerEditImage@@UAE@I@Z @ 29 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(unsigned int)
+	?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 30 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *)
+	??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 31 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void)
+	?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 32 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
+	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 33 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *)
+	?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 34 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const
+	?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 35 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void)
+	??_EGlxCommandHandlerComment@@UAE@I@Z @ 36 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int)
+	?getStaticMetaObject@GlxCommandHandlerEditImage@@SAABUQMetaObject@@XZ @ 37 NONAME ; struct QMetaObject const & GlxCommandHandlerEditImage::getStaticMetaObject(void)
+	?HandleErrorL@GlxCommandHandlerRename@@EBEXH@Z @ 38 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) const
+	??1GlxCommandHandlerRotate@@UAE@XZ @ 39 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void)
+	?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 40 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??1GlxCommandHandlerNewMedia@@UAE@XZ @ 41 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void)
+	??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 42 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int)
+	?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 43 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const
+	?trUtf8@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxCommandHandlerEditImage::trUtf8(char const *, char const *)
+	??_EGlxCommandHandlerDelete@@UAE@I@Z @ 45 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int)
+	?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 46 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const
+	?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 47 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const
+	?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 48 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject
+	?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 49 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void)
+	??0GlxCommandHandlerDelete@@QAE@XZ @ 50 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void)
+	??1GlxCommandHandlerRename@@UAE@XZ @ 51 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void)
+	??0GlxCommandHandlerSend@@QAE@XZ @ 52 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void)
+	?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 53 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int)
+	??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 54 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void)
+	??_EGlxCommandHandlerRename@@UAE@I@Z @ 55 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int)
+	?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 56 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const
+	?doHandleUserAction@GlxCommandHandlerEditImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 57 NONAME ; void GlxCommandHandlerEditImage::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
+	?storeItems@GlxCommandHandlerEditImage@@QAEXABVQModelIndex@@HH@Z @ 58 NONAME ; void GlxCommandHandlerEditImage::storeItems(class QModelIndex const &, int, int)
+	??_EGlxCommandHandlerRotate@@UAE@I@Z @ 59 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int)
+	?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@AAVQString@@@Z @ 60 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &, class QString &)
+	?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 61 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const
+	??1GlxCommandHandlerComment@@UAE@XZ @ 62 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void)
+	??0GlxCommandHandlerEditImage@@QAE@XZ @ 63 NONAME ; GlxCommandHandlerEditImage::GlxCommandHandlerEditImage(void)
+	?tr@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0H@Z @ 64 NONAME ; class QString GlxCommandHandlerEditImage::tr(char const *, char const *, int)
+	??1GlxCommandHandlerSend@@UAE@XZ @ 65 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void)
+	?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 66 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const
+	??0GlxCommandHandlerNewMedia@@QAE@XZ @ 67 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void)
+	?executeCommand@GlxCommandHandlerEditImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 68 NONAME ; void GlxCommandHandlerEditImage::executeCommand(int, int, class QList<class QModelIndex>)
+	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 69 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int)
+	?qt_metacall@GlxCommandHandlerEditImage@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 70 NONAME ; int GlxCommandHandlerEditImage::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 71 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
+	??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 72 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int)
+	?handleError@GlxCommandHandlerEditImage@@QAEXHABVQString@@@Z @ 73 NONAME ; void GlxCommandHandlerEditImage::handleError(int, class QString const &)
+	?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 74 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const
+	?trUtf8@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0H@Z @ 75 NONAME ; class QString GlxCommandHandlerEditImage::trUtf8(char const *, char const *, int)
+	?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 76 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 77 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 78 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const
+	?tr@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0@Z @ 79 NONAME ; class QString GlxCommandHandlerEditImage::tr(char const *, char const *)
+	?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 80 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??1GlxCommandHandlerEditImage@@UAE@XZ @ 81 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(void)
+	?HandleErrorL@GlxCommandHandlerNewMedia@@IAEXH@Z @ 82 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int)
+	?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 83 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short)
+	?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 84 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>)
+	??1GlxCommandHandlerDelete@@UAE@XZ @ 85 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void)
+	?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 86 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??0GlxCommandHandlerRotate@@QAE@XZ @ 87 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void)
 
--- a/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h	Fri Sep 17 08:29:24 2010 +0300
@@ -42,7 +42,7 @@
 
 public slots:
     void messageDialogClose(HbAction* action);
-
+    void commandCancelled();
 protected: // From MGlxMediaListObserver    
     /// See @ref MGlxMediaListObserver::HandleItemAddedL
     void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList);
@@ -81,7 +81,7 @@
 
     virtual CMPXCommand* CreateCommandL(TInt aCommandId, MGlxMediaList& aMediaList, TBool& aConsume) const = 0;
 	virtual void DoExecuteCommandL(TInt aCommandId, MGlxMediaList& aMediaList, TBool& aConsume);
-	virtual void HandleErrorL(TInt aErrorCode);
+	virtual void HandleErrorL(TInt aErrorCode) const;
 	virtual QString CompletionTextL() const;
 	virtual QString ProgressTextL() const;        
     virtual QString ConfirmationTextL(bool multiSelection = false) const; 
--- a/ui/commandhandlers/commandhandlerbase/src/glxmodelcommandhandler.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/src/glxmodelcommandhandler.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -12,6 +12,7 @@
 
 void GlxModelCommandHandler::executeCommand(int commandId, int collectionId,QList<QModelIndex> indexList)
     {
+    Q_UNUSED(commandId);
     GlxModelParm modelParm (collectionId, 0);
     GlxMediaModel* mediaModel = new GlxMediaModel (modelParm);
     doHandleUserAction(mediaModel,indexList);
--- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -349,6 +349,7 @@
         {
         // @todo error received. Close progress note 
         DismissProgressNoteL();
+        MGlxMediaList::UnmarkAllL(*iMediaList);
         iMediaList->RemoveMediaListObserver(this);
         iMediaList->Close();
         iMediaList = NULL;
@@ -371,19 +372,9 @@
 // Default implementation shows an error note
 // -----------------------------------------------------------------------------
 //	
-void GlxMpxCommandHandler::HandleErrorL(TInt aErrorCode)
+void GlxMpxCommandHandler::HandleErrorL(TInt aErrorCode) const
     {
     OstTraceFunctionEntry0( GLXMPXCOMMANDHANDLER_HANDLEERRORL_ENTRY );
-    // show error note
-    // TextResolver instance for error resolving.
-    CTextResolver* textresolver = CTextResolver::NewLC();
-    // Resolve the error text
-    const TDesC& text = textresolver->ResolveErrorString(aErrorCode);
-
-    QString qtText = QString::fromUtf16(text.Ptr(), text.Length());
-
-	HbNotificationDialog::launchDialog(qtText);
-    CleanupStack::PopAndDestroy(textresolver);
     OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_HANDLEERRORL_EXIT );
     }
 
@@ -410,6 +401,7 @@
     {
     mProgressDialog = new HbProgressDialog(HbProgressDialog::WaitDialog);
     mProgressDialog->setText(ProgressTextL());
+    connect ( mProgressDialog, SIGNAL (cancelled()), this, SLOT(commandCancelled()));
     mProgressDialog->show();
     }
 
@@ -525,3 +517,11 @@
     {
     return QString();
     }
+
+void GlxMpxCommandHandler::commandCancelled()
+    {
+    disconnect ( mProgressDialog, SIGNAL (cancelled()), this, SLOT(commandCancelled()));
+    mProgressDialog = NULL;
+    iMediaList->CancelCommand();
+    TryExitL(KErrCancel);
+    }
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Fri Sep 17 08:29:24 2010 +0300
@@ -53,6 +53,7 @@
     mutable bool mNewMediaAdded ;
     mutable CMPXCollectionPath* mTargetContainers ;
     mutable QString mAlbumName;
+    mutable bool mIsAddtoFavCmd;
 };
 
 class GlxAlbumSelectionPopup: public QObject
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrename.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrename.h	Fri Sep 17 08:29:24 2010 +0300
@@ -36,7 +36,11 @@
 private:
     QString CompletionTextL() const;
     QString GetName(MGlxMediaList& aMediaList) const;
-	void HandleErrorL(TInt aErrorCode);
+	void HandleErrorL(TInt aErrorCode) const;
+	
+public :
+	//Stores the Name of the Album or File.
+	mutable QString mMediaTitle;
 	};
 
 #endif // GLXCOMMANDHANDLERRENAME_H
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -108,7 +108,7 @@
 }
 
 GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer() :
-    mNewMediaAdded(false),mAlbumName(QString())
+    mNewMediaAdded(false),mAlbumName(QString()),mIsAddtoFavCmd(false)
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_GLXCOMMANDHANDLERADDTOCONTAINER_ENTRY );
     mTargetContainers = NULL;
@@ -128,8 +128,10 @@
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL_ENTRY );
     CMPXCommand* command = NULL;
     mAlbumName.clear();
+    mIsAddtoFavCmd = false;
     if(aCommandId == EGlxCmdAddToFav)
         {
+           mIsAddtoFavCmd = TRUE;
 		   mAlbumName = GLX_ALBUM_FAV;
            CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL();
            CleanupStack::PushL(targetCollection);
@@ -241,7 +243,8 @@
 
     while (error == KErrAlreadyExists)
         {
-        HbMessageBox::warning(GLX_NAME_ALREADY_EXIST);
+        QString stringToDisplay = hbTrId(GLX_NAME_ALREADY_EXIST).arg(newTitle);
+        HbMessageBox::warning(stringToDisplay);
         error = KErrNone;
         error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle);
         }
@@ -264,7 +267,7 @@
 
 QString GlxCommandHandlerAddToContainer::CompletionTextL() const
     {
-    if(!mAlbumName.isNull()){
+    if(!mAlbumName.isNull() && mIsAddtoFavCmd == false){
         return (hbTrId(GLX_IMAGES_ADDED).arg(mAlbumName)); 
         }
 	return 	QString();
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -15,7 +15,6 @@
 *
 */
 
-#include <hbmessagebox.h>
 #include <hblabel.h>
 
 #include <mpxcollectionpath.h>
@@ -44,7 +43,7 @@
     
     CMPXCommand* command = NULL;
     QString mainPane = GetName(aMediaList);
-    QString title(GLX_DETAILS_DESCRIPTION);
+    QString title(GLX_DIALOG_DESCRIPTION);
     QString mediaTitle = NULL;
     bool ok = false;    
     GlxTextInputDialog* dlg = new GlxTextInputDialog(false);
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -67,7 +67,7 @@
     bool ok = false;
 	QString mediaTitle = NULL;
     GlxTextInputDialog* dlg = new GlxTextInputDialog();
-    mediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok);
+    mediaTitle = dlg->getText(GLX_DIALOG_ALBUM_PROMPT, mainPane, &ok);
     delete dlg;
     iNewMediaCreationError = KErrNone;
     if (ok == true)
@@ -182,9 +182,12 @@
 void GlxCommandHandlerNewMedia::HandleErrorL(TInt aErrorCode)
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERNEWMEDIA_HANDLEERRORL_ENTRY );
-    if (aErrorCode == KErrAlreadyExists && !mShowConfirmation)
+    if (aErrorCode == KErrAlreadyExists && !mShowConfirmation && iNewMediaItemTitle)
         {
-        HbMessageBox::warning("Album Already Exist!!!" );
+        QString albumName = QString::fromUtf16(iNewMediaItemTitle->Des().Ptr(),
+            iNewMediaItemTitle->Length());
+        QString stringToDisplay = hbTrId(GLX_NAME_ALREADY_EXIST).arg(albumName);
+        HbMessageBox::warning(stringToDisplay);
         }
     OstTraceFunctionExit0( GLXCOMMANDHANDLERNEWMEDIA_HANDLEERRORL_EXIT );
     }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -1,32 +1,39 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: 
+ *
+ */
 
-#include <hbmessagebox.h>
-#include <hblabel.h>
+//Includes Qt/Symbian
+#include <QFile>
+#include <caf/manager.h>
 
+//Includes Orbit
+#include <hblabel.h>
+#include <hbmessagebox.h>
+
+//User Includes
+#include <mglxmedialist.h>
+#include <glxcommondialogs.h>
 #include <mpxcollectionpath.h>
-#include <mglxmedialist.h>
 #include <glxcommandfactory.h>
-#include <glxcommandhandlerrename.h>
 #include <glxattributecontext.h>
+#include <glxcommandhandlers.hrh>
 #include <glxattributeretriever.h>
+#include "glxlocalisationstrings.h"
 #include <glxfetchcontextremover.h>
-#include <glxcommondialogs.h>
-#include "glxlocalisationstrings.h"
+#include <glxcommandhandlerrename.h>   
 
 GlxCommandHandlerRename::GlxCommandHandlerRename()
     {
@@ -42,29 +49,88 @@
     Q_UNUSED(aCommandId);
     Q_UNUSED(aConsume);
     
+    bool ok = false;
     CMPXCommand* command = NULL;
+    CMPXCollectionPath* path = NULL;
     QString mainPane = GetName(aMediaList);
-    QString mediaTitle = NULL;
-    bool ok = false;    
     GlxTextInputDialog* dlg = new GlxTextInputDialog();
-    mediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok);
+
+    if (aCommandId == EGlxCmdRenameFile)
+        {
+        mMediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok);
+        }
+    else
+        {
+        mMediaTitle = dlg->getText(GLX_DIALOG_ALBUM_PROMPT, mainPane, &ok);
+        }
     delete dlg;
 
     if(ok == true)
         {
-        TPtrC16 newMediaItemTitleDes
-            = (reinterpret_cast<const TUint16*> (mediaTitle.utf16()));
-
+        TPtrC16 newMediaItemTitleDes =
+                (reinterpret_cast<const TUint16*> (mMediaTitle.utf16()));
         HBufC* newMediaItemTitle = newMediaItemTitleDes.Alloc();
         CleanupStack::PushL(newMediaItemTitle);
 
-        CMPXCollectionPath* path = aMediaList.PathLC(
-                NGlxListDefs::EPathFocusOrSelection);
-        command = 
-            TGlxCommandFactory::RenameCommandLC(*newMediaItemTitle,*path);
-        CleanupStack::Pop(command);
-        CleanupStack::PopAndDestroy(path);
-        CleanupStack::PopAndDestroy(newMediaItemTitle);
+        if (aCommandId == EGlxCmdRenameFile)
+            {
+            TDesC& aTitleText = *newMediaItemTitle;
+            TInt index = aMediaList.FocusIndex();
+            const TGlxMedia& media = aMediaList.Item(index);
+            TParsePtrC parsePtr(media.Uri());
+
+            //Constructs the File Name with complete Path
+            TFileName destinationFileName;
+            destinationFileName.Append(parsePtr.DriveAndPath());
+            destinationFileName.Append(aTitleText);
+            destinationFileName.Append(parsePtr.Ext());
+
+            HBufC* modifiedName = destinationFileName.AllocLC();
+            QString fileName = QString::fromUtf16(modifiedName->Ptr(),
+                    modifiedName->Length());
+
+            ContentAccess::CManager *manager =
+                    ContentAccess::CManager::NewL();
+            CleanupStack::PushL(manager);
+
+            QFile filePath(fileName);
+            bool isFileExist = filePath.exists();
+
+            if (!isFileExist)
+                {
+                //rename the media
+                TInt error = manager->RenameFile(media.Uri(), *modifiedName);
+
+                if (error == KErrNone)
+                    {
+                    path = aMediaList.PathLC(
+                            NGlxListDefs::EPathFocusOrSelection);
+                    command = TGlxCommandFactory::RenameCommandLC(
+                            *newMediaItemTitle, *path);
+                    CleanupStack::Pop(command);
+                    CleanupStack::PopAndDestroy(path);
+                    }
+                }
+            else
+                {
+                //The Name of the file name already exists, display an message .
+                HandleErrorL(KErrAlreadyExists);
+                }
+            CleanupStack::PopAndDestroy(manager);
+            CleanupStack::PopAndDestroy(modifiedName);
+            CleanupStack::PopAndDestroy(newMediaItemTitle);
+            }
+        else
+            {
+            //Rename of Album
+            CMPXCollectionPath* path = aMediaList.PathLC(
+                    NGlxListDefs::EPathFocusOrSelection);
+            command = TGlxCommandFactory::RenameCommandLC(*newMediaItemTitle,
+                    *path);
+            CleanupStack::Pop(command);
+            CleanupStack::PopAndDestroy(path);
+            CleanupStack::PopAndDestroy(newMediaItemTitle);
+            }
         }
     return command;
     }
@@ -146,12 +212,13 @@
     return title;
     }
 
-void GlxCommandHandlerRename::HandleErrorL(TInt aErrorCode)
+void GlxCommandHandlerRename::HandleErrorL(TInt aErrorCode) const
 	{
     if(aErrorCode == KErrAlreadyExists)
         {
-        HbMessageBox::warning("Name Already Exist!!!", new HbLabel(
-                "Rename"));
+        QString stringToDisplay = hbTrId(GLX_NAME_ALREADY_EXIST).arg(
+                mMediaTitle);
+        HbMessageBox::warning(stringToDisplay);
         }
 	else{
 		GlxMpxCommandHandler::HandleErrorL(aErrorCode);
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -19,6 +19,7 @@
 
 #include <hbaction.h>
 #include <QEventLoop>
+const int MAXSTRINGLENGHT = 256; 
 
 GlxTextInputDialog::GlxTextInputDialog(bool disableOkForEmptyText) 
     : mDialog ( NULL ),
@@ -42,6 +43,7 @@
     mDialog->setPromptText(label);
     mDialog->setInputMode(HbInputDialog::TextInput);
     mDialog->setValue(text);
+    mDialog->lineEdit(0)->setMaxLength(MAXSTRINGLENGHT);
     if(mDisableOkForEmptyText){
         connect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
                 this, SLOT( textChanged (const QString &)));
--- a/ui/commandhandlers/eabi/glxcommandhandlerbaseu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/eabi/glxcommandhandlerbaseu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -6,13 +6,13 @@
 	_ZN20GlxMpxCommandHandler11HandleErrorEi @ 5 NONAME
 	_ZN20GlxMpxCommandHandler11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
 	_ZN20GlxMpxCommandHandler11qt_metacastEPKc @ 7 NONAME
-	_ZN20GlxMpxCommandHandler12HandleErrorLEi @ 8 NONAME
-	_ZN20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 9 NONAME
-	_ZN20GlxMpxCommandHandler13ProgressNoteLEi @ 10 NONAME
-	_ZN20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 11 NONAME
-	_ZN20GlxMpxCommandHandler14executeCommandEii5QListI11QModelIndexE @ 12 NONAME
-	_ZN20GlxMpxCommandHandler16CreateMediaListLEii18TGlxFilterItemType @ 13 NONAME
-	_ZN20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 14 NONAME
+	_ZN20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 8 NONAME
+	_ZN20GlxMpxCommandHandler13ProgressNoteLEi @ 9 NONAME
+	_ZN20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 10 NONAME
+	_ZN20GlxMpxCommandHandler14executeCommandEii5QListI11QModelIndexE @ 11 NONAME
+	_ZN20GlxMpxCommandHandler16CreateMediaListLEii18TGlxFilterItemType @ 12 NONAME
+	_ZN20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 13 NONAME
+	_ZN20GlxMpxCommandHandler16commandCancelledEv @ 14 NONAME
 	_ZN20GlxMpxCommandHandler16staticMetaObjectE @ 15 NONAME DATA 16
 	_ZN20GlxMpxCommandHandler17ConfirmationNoteLER13MGlxMediaList @ 16 NONAME
 	_ZN20GlxMpxCommandHandler17DoExecuteCommandLEiR13MGlxMediaListRi @ 17 NONAME
@@ -41,24 +41,25 @@
 	_ZN22GlxModelCommandHandlerD1Ev @ 40 NONAME
 	_ZN22GlxModelCommandHandlerD2Ev @ 41 NONAME
 	_ZNK20GlxMpxCommandHandler10metaObjectEv @ 42 NONAME
-	_ZNK20GlxMpxCommandHandler13ProgressTextLEv @ 43 NONAME
-	_ZNK20GlxMpxCommandHandler15CompletionNoteLEv @ 44 NONAME
-	_ZNK20GlxMpxCommandHandler15CompletionTextLEv @ 45 NONAME
-	_ZNK20GlxMpxCommandHandler17ConfirmationTextLEb @ 46 NONAME
-	_ZTI17GlxCommandHandler @ 47 NONAME
-	_ZTI20GlxMpxCommandHandler @ 48 NONAME
-	_ZTI22GlxModelCommandHandler @ 49 NONAME
-	_ZTV17GlxCommandHandler @ 50 NONAME
-	_ZTV20GlxMpxCommandHandler @ 51 NONAME
-	_ZTV22GlxModelCommandHandler @ 52 NONAME
-	_ZThn8_N20GlxMpxCommandHandler11HandleErrorEi @ 53 NONAME
-	_ZThn8_N20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 54 NONAME
-	_ZThn8_N20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 55 NONAME
-	_ZThn8_N20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 56 NONAME
-	_ZThn8_N20GlxMpxCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 57 NONAME
-	_ZThn8_N20GlxMpxCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 58 NONAME
-	_ZThn8_N20GlxMpxCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 59 NONAME
-	_ZThn8_N20GlxMpxCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 60 NONAME
-	_ZThn8_N20GlxMpxCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 61 NONAME
-	_ZThn8_N20GlxMpxCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 62 NONAME
+	_ZNK20GlxMpxCommandHandler12HandleErrorLEi @ 43 NONAME
+	_ZNK20GlxMpxCommandHandler13ProgressTextLEv @ 44 NONAME
+	_ZNK20GlxMpxCommandHandler15CompletionNoteLEv @ 45 NONAME
+	_ZNK20GlxMpxCommandHandler15CompletionTextLEv @ 46 NONAME
+	_ZNK20GlxMpxCommandHandler17ConfirmationTextLEb @ 47 NONAME
+	_ZTI17GlxCommandHandler @ 48 NONAME
+	_ZTI20GlxMpxCommandHandler @ 49 NONAME
+	_ZTI22GlxModelCommandHandler @ 50 NONAME
+	_ZTV17GlxCommandHandler @ 51 NONAME
+	_ZTV20GlxMpxCommandHandler @ 52 NONAME
+	_ZTV22GlxModelCommandHandler @ 53 NONAME
+	_ZThn8_N20GlxMpxCommandHandler11HandleErrorEi @ 54 NONAME
+	_ZThn8_N20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 55 NONAME
+	_ZThn8_N20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 56 NONAME
+	_ZThn8_N20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 57 NONAME
+	_ZThn8_N20GlxMpxCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 58 NONAME
+	_ZThn8_N20GlxMpxCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 59 NONAME
+	_ZThn8_N20GlxMpxCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 60 NONAME
+	_ZThn8_N20GlxMpxCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 61 NONAME
+	_ZThn8_N20GlxMpxCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 62 NONAME
+	_ZThn8_N20GlxMpxCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 63 NONAME
 
--- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -9,111 +9,111 @@
 	_ZN23GlxCommandHandlerDeleteD0Ev @ 8 NONAME
 	_ZN23GlxCommandHandlerDeleteD1Ev @ 9 NONAME
 	_ZN23GlxCommandHandlerDeleteD2Ev @ 10 NONAME
-	_ZN23GlxCommandHandlerRename12HandleErrorLEi @ 11 NONAME
-	_ZN23GlxCommandHandlerRenameC1Ev @ 12 NONAME
-	_ZN23GlxCommandHandlerRenameC2Ev @ 13 NONAME
-	_ZN23GlxCommandHandlerRenameD0Ev @ 14 NONAME
-	_ZN23GlxCommandHandlerRenameD1Ev @ 15 NONAME
-	_ZN23GlxCommandHandlerRenameD2Ev @ 16 NONAME
-	_ZN23GlxCommandHandlerRotate12RotateImageLE4TBufILi256EE @ 17 NONAME
-	_ZN23GlxCommandHandlerRotate17DestroyExifWriterEv @ 18 NONAME
-	_ZN23GlxCommandHandlerRotate17DoExecuteCommandLEiR13MGlxMediaListRi @ 19 NONAME
-	_ZN23GlxCommandHandlerRotate20SetImageOrientationLEt @ 20 NONAME
-	_ZN23GlxCommandHandlerRotate21InitializeExifWriterLE4TBufILi256EE @ 21 NONAME
-	_ZN23GlxCommandHandlerRotate21ReadImageOrientationLEv @ 22 NONAME
-	_ZN23GlxCommandHandlerRotate26CalculateFinalOrientationLEt @ 23 NONAME
-	_ZN23GlxCommandHandlerRotateC1Ev @ 24 NONAME
-	_ZN23GlxCommandHandlerRotateC2Ev @ 25 NONAME
-	_ZN23GlxCommandHandlerRotateD0Ev @ 26 NONAME
-	_ZN23GlxCommandHandlerRotateD1Ev @ 27 NONAME
-	_ZN23GlxCommandHandlerRotateD2Ev @ 28 NONAME
-	_ZN24GlxCommandHandlerCommentC1Ev @ 29 NONAME
-	_ZN24GlxCommandHandlerCommentC2Ev @ 30 NONAME
-	_ZN24GlxCommandHandlerCommentD0Ev @ 31 NONAME
-	_ZN24GlxCommandHandlerCommentD1Ev @ 32 NONAME
-	_ZN24GlxCommandHandlerCommentD2Ev @ 33 NONAME
-	_ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 34 NONAME
-	_ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 35 NONAME
-	_ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 36 NONAME
-	_ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 37 NONAME
-	_ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 38 NONAME
-	_ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 39 NONAME DATA 16
-	_ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 40 NONAME
-	_ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 41 NONAME
-	_ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaIdR7QString @ 42 NONAME
-	_ZN25GlxCommandHandlerNewMediaC1Ev @ 43 NONAME
-	_ZN25GlxCommandHandlerNewMediaC2Ev @ 44 NONAME
-	_ZN25GlxCommandHandlerNewMediaD0Ev @ 45 NONAME
-	_ZN25GlxCommandHandlerNewMediaD1Ev @ 46 NONAME
-	_ZN25GlxCommandHandlerNewMediaD2Ev @ 47 NONAME
-	_ZN26GlxCommandHandlerEditImage14executeCommandEii5QListI11QModelIndexE @ 48 NONAME
-	_ZN26GlxCommandHandlerEditImageC1Ev @ 49 NONAME
-	_ZN26GlxCommandHandlerEditImageC2Ev @ 50 NONAME
-	_ZN26GlxCommandHandlerEditImageD0Ev @ 51 NONAME
-	_ZN26GlxCommandHandlerEditImageD1Ev @ 52 NONAME
-	_ZN26GlxCommandHandlerEditImageD2Ev @ 53 NONAME
-	_ZN27GlxCommandHandlerRemoveFromC1Ev @ 54 NONAME
-	_ZN27GlxCommandHandlerRemoveFromC2Ev @ 55 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD0Ev @ 56 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD1Ev @ 57 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD2Ev @ 58 NONAME
-	_ZN31GlxCommandHandlerAddToContainerC1Ev @ 59 NONAME
-	_ZN31GlxCommandHandlerAddToContainerC2Ev @ 60 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD0Ev @ 61 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD1Ev @ 62 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD2Ev @ 63 NONAME
-	_ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 64 NONAME
-	_ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 65 NONAME
-	_ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 66 NONAME
-	_ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 67 NONAME
-	_ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 68 NONAME
-	_ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME
-	_ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 70 NONAME
-	_ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 71 NONAME
-	_ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME
-	_ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 73 NONAME
-	_ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 74 NONAME
-	_ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 75 NONAME
-	_ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 76 NONAME
-	_ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 77 NONAME
-	_ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME
-	_ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 79 NONAME
-	_ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 80 NONAME
-	_ZNK26GlxCommandHandlerEditImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 81 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 82 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 83 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 84 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 85 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 86 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 87 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 88 NONAME
-	_ZTI21GlxCommandHandlerSend @ 89 NONAME
-	_ZTI23GlxCommandHandlerDelete @ 90 NONAME
-	_ZTI23GlxCommandHandlerRename @ 91 NONAME
-	_ZTI23GlxCommandHandlerRotate @ 92 NONAME
-	_ZTI24GlxCommandHandlerComment @ 93 NONAME
-	_ZTI25GlxCommandHandlerNewMedia @ 94 NONAME
-	_ZTI26GlxCommandHandlerEditImage @ 95 NONAME
-	_ZTI27GlxCommandHandlerRemoveFrom @ 96 NONAME
-	_ZTI31GlxCommandHandlerAddToContainer @ 97 NONAME
-	_ZTV21GlxCommandHandlerSend @ 98 NONAME
-	_ZTV23GlxCommandHandlerDelete @ 99 NONAME
-	_ZTV23GlxCommandHandlerRename @ 100 NONAME
-	_ZTV23GlxCommandHandlerRotate @ 101 NONAME
-	_ZTV24GlxCommandHandlerComment @ 102 NONAME
-	_ZTV25GlxCommandHandlerNewMedia @ 103 NONAME
-	_ZTV26GlxCommandHandlerEditImage @ 104 NONAME
-	_ZTV27GlxCommandHandlerRemoveFrom @ 105 NONAME
-	_ZTV31GlxCommandHandlerAddToContainer @ 106 NONAME
-	_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 107 NONAME
-	_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 108 NONAME
-	_ZN26GlxCommandHandlerEditImage10storeItemsERK11QModelIndexii @ 109 NONAME
-	_ZN26GlxCommandHandlerEditImage11handleErrorEiRK7QString @ 110 NONAME
-	_ZN26GlxCommandHandlerEditImage11qt_metacallEN11QMetaObject4CallEiPPv @ 111 NONAME
-	_ZN26GlxCommandHandlerEditImage11qt_metacastEPKc @ 112 NONAME
-	_ZN26GlxCommandHandlerEditImage15clearMediaModelEv @ 113 NONAME
-	_ZN26GlxCommandHandlerEditImage16staticMetaObjectE @ 114 NONAME DATA 16
-	_ZN26GlxCommandHandlerEditImage19getStaticMetaObjectEv @ 115 NONAME
-	_ZN26GlxCommandHandlerEditImage8handleOkERK8QVariant @ 116 NONAME
-	_ZNK26GlxCommandHandlerEditImage10metaObjectEv @ 117 NONAME
+	_ZN23GlxCommandHandlerRenameC1Ev @ 11 NONAME
+	_ZN23GlxCommandHandlerRenameC2Ev @ 12 NONAME
+	_ZN23GlxCommandHandlerRenameD0Ev @ 13 NONAME
+	_ZN23GlxCommandHandlerRenameD1Ev @ 14 NONAME
+	_ZN23GlxCommandHandlerRenameD2Ev @ 15 NONAME
+	_ZN23GlxCommandHandlerRotate12RotateImageLE4TBufILi256EE @ 16 NONAME
+	_ZN23GlxCommandHandlerRotate17DestroyExifWriterEv @ 17 NONAME
+	_ZN23GlxCommandHandlerRotate17DoExecuteCommandLEiR13MGlxMediaListRi @ 18 NONAME
+	_ZN23GlxCommandHandlerRotate20SetImageOrientationLEt @ 19 NONAME
+	_ZN23GlxCommandHandlerRotate21InitializeExifWriterLE4TBufILi256EE @ 20 NONAME
+	_ZN23GlxCommandHandlerRotate21ReadImageOrientationLEv @ 21 NONAME
+	_ZN23GlxCommandHandlerRotate26CalculateFinalOrientationLEt @ 22 NONAME
+	_ZN23GlxCommandHandlerRotateC1Ev @ 23 NONAME
+	_ZN23GlxCommandHandlerRotateC2Ev @ 24 NONAME
+	_ZN23GlxCommandHandlerRotateD0Ev @ 25 NONAME
+	_ZN23GlxCommandHandlerRotateD1Ev @ 26 NONAME
+	_ZN23GlxCommandHandlerRotateD2Ev @ 27 NONAME
+	_ZN24GlxCommandHandlerCommentC1Ev @ 28 NONAME
+	_ZN24GlxCommandHandlerCommentC2Ev @ 29 NONAME
+	_ZN24GlxCommandHandlerCommentD0Ev @ 30 NONAME
+	_ZN24GlxCommandHandlerCommentD1Ev @ 31 NONAME
+	_ZN24GlxCommandHandlerCommentD2Ev @ 32 NONAME
+	_ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 33 NONAME
+	_ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 34 NONAME
+	_ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 35 NONAME
+	_ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 36 NONAME
+	_ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 37 NONAME
+	_ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 38 NONAME DATA 16
+	_ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 39 NONAME
+	_ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 40 NONAME
+	_ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaIdR7QString @ 41 NONAME
+	_ZN25GlxCommandHandlerNewMediaC1Ev @ 42 NONAME
+	_ZN25GlxCommandHandlerNewMediaC2Ev @ 43 NONAME
+	_ZN25GlxCommandHandlerNewMediaD0Ev @ 44 NONAME
+	_ZN25GlxCommandHandlerNewMediaD1Ev @ 45 NONAME
+	_ZN25GlxCommandHandlerNewMediaD2Ev @ 46 NONAME
+	_ZN26GlxCommandHandlerEditImage10storeItemsERK11QModelIndexii @ 47 NONAME
+	_ZN26GlxCommandHandlerEditImage11handleErrorEiRK7QString @ 48 NONAME
+	_ZN26GlxCommandHandlerEditImage11qt_metacallEN11QMetaObject4CallEiPPv @ 49 NONAME
+	_ZN26GlxCommandHandlerEditImage11qt_metacastEPKc @ 50 NONAME
+	_ZN26GlxCommandHandlerEditImage14executeCommandEii5QListI11QModelIndexE @ 51 NONAME
+	_ZN26GlxCommandHandlerEditImage15clearMediaModelEv @ 52 NONAME
+	_ZN26GlxCommandHandlerEditImage16staticMetaObjectE @ 53 NONAME DATA 16
+	_ZN26GlxCommandHandlerEditImage19getStaticMetaObjectEv @ 54 NONAME
+	_ZN26GlxCommandHandlerEditImage8handleOkERK8QVariant @ 55 NONAME
+	_ZN26GlxCommandHandlerEditImageC1Ev @ 56 NONAME
+	_ZN26GlxCommandHandlerEditImageC2Ev @ 57 NONAME
+	_ZN26GlxCommandHandlerEditImageD0Ev @ 58 NONAME
+	_ZN26GlxCommandHandlerEditImageD1Ev @ 59 NONAME
+	_ZN26GlxCommandHandlerEditImageD2Ev @ 60 NONAME
+	_ZN27GlxCommandHandlerRemoveFromC1Ev @ 61 NONAME
+	_ZN27GlxCommandHandlerRemoveFromC2Ev @ 62 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD0Ev @ 63 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD1Ev @ 64 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD2Ev @ 65 NONAME
+	_ZN31GlxCommandHandlerAddToContainerC1Ev @ 66 NONAME
+	_ZN31GlxCommandHandlerAddToContainerC2Ev @ 67 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD0Ev @ 68 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD1Ev @ 69 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD2Ev @ 70 NONAME
+	_ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 71 NONAME
+	_ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 72 NONAME
+	_ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 73 NONAME
+	_ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 74 NONAME
+	_ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 75 NONAME
+	_ZNK23GlxCommandHandlerRename12HandleErrorLEi @ 76 NONAME
+	_ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 77 NONAME
+	_ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 78 NONAME
+	_ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 79 NONAME
+	_ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 80 NONAME
+	_ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 81 NONAME
+	_ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 82 NONAME
+	_ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 83 NONAME
+	_ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 84 NONAME
+	_ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 85 NONAME
+	_ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 86 NONAME
+	_ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 87 NONAME
+	_ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 88 NONAME
+	_ZNK26GlxCommandHandlerEditImage10metaObjectEv @ 89 NONAME
+	_ZNK26GlxCommandHandlerEditImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 90 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 91 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 92 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 93 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 94 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 95 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 96 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 97 NONAME
+	_ZTI21GlxCommandHandlerSend @ 98 NONAME
+	_ZTI23GlxCommandHandlerDelete @ 99 NONAME
+	_ZTI23GlxCommandHandlerRename @ 100 NONAME
+	_ZTI23GlxCommandHandlerRotate @ 101 NONAME
+	_ZTI24GlxCommandHandlerComment @ 102 NONAME
+	_ZTI25GlxCommandHandlerNewMedia @ 103 NONAME
+	_ZTI26GlxCommandHandlerEditImage @ 104 NONAME
+	_ZTI27GlxCommandHandlerRemoveFrom @ 105 NONAME
+	_ZTI31GlxCommandHandlerAddToContainer @ 106 NONAME
+	_ZTV21GlxCommandHandlerSend @ 107 NONAME
+	_ZTV23GlxCommandHandlerDelete @ 108 NONAME
+	_ZTV23GlxCommandHandlerRename @ 109 NONAME
+	_ZTV23GlxCommandHandlerRotate @ 110 NONAME
+	_ZTV24GlxCommandHandlerComment @ 111 NONAME
+	_ZTV25GlxCommandHandlerNewMedia @ 112 NONAME
+	_ZTV26GlxCommandHandlerEditImage @ 113 NONAME
+	_ZTV27GlxCommandHandlerRemoveFrom @ 114 NONAME
+	_ZTV31GlxCommandHandlerAddToContainer @ 115 NONAME
+	_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 116 NONAME
+	_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 117 NONAME
 
--- a/ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -1,22 +1,22 @@
 EXPORTS
-	?focusInEvent@GlxDetailsTextEdit@@MAEXPAVQFocusEvent@@@Z @ 1 NONAME ; void GlxDetailsTextEdit::focusInEvent(class QFocusEvent *)
-	??1GlxDetailsIcon@@UAE@XZ @ 2 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(void)
-	??1GlxDetailsTextEdit@@UAE@XZ @ 3 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(void)
-	?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *, int)
-	?labelPressed@GlxDetailsTextEdit@@IAEXXZ @ 5 NONAME ; void GlxDetailsTextEdit::labelPressed(void)
-	?qt_metacall@GlxDetailsIcon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6 NONAME ; int GlxDetailsIcon::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?metaObject@GlxDetailsIcon@@UBEPBUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const * GlxDetailsIcon::metaObject(void) const
-	?tr@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 8 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *, int)
-	?staticMetaObject@GlxDetailsIcon@@2UQMetaObject@@B @ 9 NONAME ; struct QMetaObject const GlxDetailsIcon::staticMetaObject
-	??_EGlxDetailsTextEdit@@UAE@I@Z @ 10 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(unsigned int)
-	?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *)
-	?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *)
+	??1GlxDetailsIcon@@UAE@XZ @ 1 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(void)
+	??1GlxDetailsTextEdit@@UAE@XZ @ 2 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(void)
+	?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *, int)
+	?qt_metacall@GlxDetailsIcon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4 NONAME ; int GlxDetailsIcon::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?metaObject@GlxDetailsIcon@@UBEPBUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const * GlxDetailsIcon::metaObject(void) const
+	?tr@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *, int)
+	?staticMetaObject@GlxDetailsIcon@@2UQMetaObject@@B @ 7 NONAME ; struct QMetaObject const GlxDetailsIcon::staticMetaObject
+	??_EGlxDetailsTextEdit@@UAE@I@Z @ 8 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(unsigned int)
+	?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *)
+	?gestureEvent@GlxDetailsTextEdit@@MAEXPAVQGestureEvent@@@Z @ 10 NONAME ; void GlxDetailsTextEdit::gestureEvent(class QGestureEvent *)
+	?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *)
+	?setTextItemReadOnly@GlxDetailsTextEdit@@QAEX_N@Z @ 12 NONAME ; void GlxDetailsTextEdit::setTextItemReadOnly(bool)
 	?getStaticMetaObject@GlxDetailsTextEdit@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & GlxDetailsTextEdit::getStaticMetaObject(void)
 	?updateFavourites@GlxDetailsIcon@@IAEXXZ @ 14 NONAME ; void GlxDetailsIcon::updateFavourites(void)
 	?mousePressEvent@GlxDetailsIcon@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 15 NONAME ; void GlxDetailsIcon::mousePressEvent(class QGraphicsSceneMouseEvent *)
 	?staticMetaObject@GlxDetailsTextEdit@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const GlxDetailsTextEdit::staticMetaObject
-	?setItemText@GlxDetailsTextEdit@@QAEXABVQString@@@Z @ 17 NONAME ; void GlxDetailsTextEdit::setItemText(class QString const &)
-	?tr@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *)
+	?tr@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *)
+	?setItemText@GlxDetailsTextEdit@@QAEXABVQString@@@Z @ 18 NONAME ; void GlxDetailsTextEdit::setItemText(class QString const &)
 	?getStaticMetaObject@GlxDetailsIcon@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & GlxDetailsIcon::getStaticMetaObject(void)
 	?qt_metacall@GlxDetailsTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 20 NONAME ; int GlxDetailsTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?trUtf8@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 21 NONAME ; class QString GlxDetailsTextEdit::trUtf8(char const *, char const *, int)
@@ -24,11 +24,11 @@
 	?qt_metacast@GlxDetailsIcon@@UAEPAXPBD@Z @ 23 NONAME ; void * GlxDetailsIcon::qt_metacast(char const *)
 	??_EGlxDetailsIcon@@UAE@I@Z @ 24 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(unsigned int)
 	?trUtf8@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString GlxDetailsTextEdit::trUtf8(char const *, char const *)
-	?metaObject@GlxDetailsTextEdit@@UBEPBUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const * GlxDetailsTextEdit::metaObject(void) const
-	?qt_metacast@GlxDetailsTextEdit@@UAEPAXPBD@Z @ 27 NONAME ; void * GlxDetailsTextEdit::qt_metacast(char const *)
-	?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 28 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *, int)
-	??0GlxDetailsIcon@@QAE@PAVQGraphicsItem@@@Z @ 29 NONAME ; GlxDetailsIcon::GlxDetailsIcon(class QGraphicsItem *)
-	?focusOutEvent@GlxDetailsTextEdit@@MAEXPAVQFocusEvent@@@Z @ 30 NONAME ; void GlxDetailsTextEdit::focusOutEvent(class QFocusEvent *)
+	?editorTapped@GlxDetailsTextEdit@@IAEXXZ @ 26 NONAME ; void GlxDetailsTextEdit::editorTapped(void)
+	?metaObject@GlxDetailsTextEdit@@UBEPBUQMetaObject@@XZ @ 27 NONAME ; struct QMetaObject const * GlxDetailsTextEdit::metaObject(void) const
+	?qt_metacast@GlxDetailsTextEdit@@UAEPAXPBD@Z @ 28 NONAME ; void * GlxDetailsTextEdit::qt_metacast(char const *)
+	?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *, int)
+	??0GlxDetailsIcon@@QAE@PAVQGraphicsItem@@@Z @ 30 NONAME ; GlxDetailsIcon::GlxDetailsIcon(class QGraphicsItem *)
 	??0GlxDetailsTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 31 NONAME ; GlxDetailsTextEdit::GlxDetailsTextEdit(class QGraphicsItem *)
 	?setItemIcon@GlxDetailsIcon@@QAEXABVHbIcon@@@Z @ 32 NONAME ; void GlxDetailsIcon::setItemIcon(class HbIcon const &)
 
--- a/ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -50,7 +50,7 @@
   stackedLayout->addItem( mFavIcon );
   setLayout( stackedLayout );
   
-  mFavIcon->setOpacity(0.7);
+  mFavIcon->setOpacity(0.9);
   HbFrameItem* frame = new HbFrameItem(this);
   frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
   frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
--- a/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -1,60 +1,62 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description:   This is custom widget for details view in photos for displaying the description of image .
-*
-*/
- 
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ *  Description:   This is custom widget for details view in photos for displaying the description of image .
+ *
+ */
 
+#include <QDebug>
+#include <QEvent>
+#include <QInputContext>
+#include <QGraphicsObject>
+
+#include <hbeditorinterface>
+#include <hbtapgesture.h>
+#include <hbapplication.h>
 
 #include "glxdetailstextedit.h"
-#include <hbeditorinterface>
-#include <QEvent>
-
-
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-//focusInEvent
+//gestureEvent
 //--------------------------------------------------------------------------------------------------------------------------------------------
-void  GlxDetailsTextEdit::focusInEvent (QFocusEvent *event)
-    {
-    if(event->reason() == Qt::MouseFocusReason )
-        {
-          event->setAccepted(TRUE);
-          emit labelPressed();
+void GlxDetailsTextEdit::gestureEvent(QGestureEvent* event)
+{
+    HbLineEdit::gestureEvent(event);
+    HbTapGesture *tap = qobject_cast<HbTapGesture *> (event->gesture(Qt::TapGesture));
+    if (tap && (tap->state() == Qt::GestureFinished || tap->state() == Qt::GestureUpdated)) {
+        QInputContext *ic = qApp->inputContext();
+        if (ic) {
+            QEvent *openEvent = new QEvent(QEvent::CloseSoftwareInputPanel);
+            ic->filterEvent(openEvent);
+            delete openEvent;
+
+            if (!mEditorReadOnly && tap->state() == Qt::GestureFinished) {
+                //Only emit the signal in case of editor is not ready only
+                emit editorTapped();
+            }
         }
-    
     }
-    
-    
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//focusOutEvent
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void  GlxDetailsTextEdit::focusOutEvent (QFocusEvent *event) 
-    {
-     event->setAccepted(TRUE);    
-    }
-
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //GlxDetailsTextEdit
 //--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsTextEdit::GlxDetailsTextEdit(QGraphicsItem *parent) : HbTextEdit( parent )
+GlxDetailsTextEdit::GlxDetailsTextEdit(QGraphicsItem *parent) :
+    HbLineEdit(parent), mEditorReadOnly(0)
 {
-   setAlignment(Qt::AlignLeft);
-   mDesc = new HbEditorInterface(this);
-   clearContextMenuFlag(Hb::ShowTextContextMenuOnLongPress);
-   mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus);
+    setAlignment(Qt::AlignLeft);
+    clearContextMenuFlag(Hb::ShowTextContextMenuOnLongPress);
+    grabGesture(Qt::TapGesture);
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -62,14 +64,21 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 GlxDetailsTextEdit::~GlxDetailsTextEdit()
 {
-  delete mDesc;
-   mDesc = NULL;
+    mEditorReadOnly = FALSE;
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setItemText
 //--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsTextEdit::setItemText( const QString &text )
+void GlxDetailsTextEdit::setItemText(const QString &text)
 {
-    setPlainText( text );
+    setPlainText(text);
 }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setTextItemReadOnly
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsTextEdit::setTextItemReadOnly(bool value)
+{
+    mEditorReadOnly = value;
+}
--- a/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h	Fri Sep 17 08:29:24 2010 +0300
@@ -1,24 +1,24 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description:   This is custom widget for details view in photos for displaying the description of image .
-*
-*/
- 
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ *  Description:   This is custom widget for details view in photos for displaying the description of image .
+ *
+ */
+
 #ifndef GlXDETAILSDESCEDIT_H
 #define GlXDETAILSDESCEDIT_H
 
-#include <hbtextedit.h>
+#include <hblineedit.h>
 
 #ifdef BUILD_DETAILSCUSTOM
 #define MY_EXPORT Q_DECL_EXPORT
@@ -26,25 +26,26 @@
 #define MY_EXPORT Q_DECL_IMPORT
 #endif
 
-class HbEditorInterface;
-class MY_EXPORT GlxDetailsTextEdit : public HbTextEdit 
-{	
-    Q_OBJECT
-    
+class MY_EXPORT GlxDetailsTextEdit: public HbLineEdit 
+{
+Q_OBJECT
+
 public:
     GlxDetailsTextEdit(QGraphicsItem *parent = NULL);
-    ~GlxDetailsTextEdit();    	
-    void setItemText( const QString &text );
-		
+    ~GlxDetailsTextEdit();
+    void setItemText(const QString &text);
+    void setTextItemReadOnly(bool value);
+
 protected:
-    void  focusInEvent (QFocusEvent *event) ;
-    void  focusOutEvent (QFocusEvent *event) ;
+    void gestureEvent(QGestureEvent* event);
+
+signals :
+    void editorTapped();
 
-    
-signals :
-     void labelPressed();
 private:
-     HbEditorInterface *mDesc;     
+    //flag to set if the editor should emit signal or not for edit.
+    bool mEditorReadOnly;
+
 };
 
 #endif // GlXDETAILSDESCEDIT_H
--- a/ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -15,11 +15,11 @@
 	_ZN18GlxDetailsTextEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 14 NONAME
 	_ZN18GlxDetailsTextEdit11qt_metacastEPKc @ 15 NONAME
 	_ZN18GlxDetailsTextEdit11setItemTextERK7QString @ 16 NONAME
-	_ZN18GlxDetailsTextEdit12focusInEventEP11QFocusEvent @ 17 NONAME
-	_ZN18GlxDetailsTextEdit12labelPressedEv @ 18 NONAME
-	_ZN18GlxDetailsTextEdit13focusOutEventEP11QFocusEvent @ 19 NONAME
-	_ZN18GlxDetailsTextEdit16staticMetaObjectE @ 20 NONAME DATA 16
-	_ZN18GlxDetailsTextEdit19getStaticMetaObjectEv @ 21 NONAME
+	_ZN18GlxDetailsTextEdit12editorTappedEv @ 17 NONAME
+	_ZN18GlxDetailsTextEdit12gestureEventEP13QGestureEvent @ 18 NONAME
+	_ZN18GlxDetailsTextEdit16staticMetaObjectE @ 19 NONAME DATA 16
+	_ZN18GlxDetailsTextEdit19getStaticMetaObjectEv @ 20 NONAME
+	_ZN18GlxDetailsTextEdit19setTextItemReadOnlyEb @ 21 NONAME
 	_ZN18GlxDetailsTextEditC1EP13QGraphicsItem @ 22 NONAME
 	_ZN18GlxDetailsTextEditC2EP13QGraphicsItem @ 23 NONAME
 	_ZN18GlxDetailsTextEditD0Ev @ 24 NONAME
@@ -39,8 +39,6 @@
 	_ZThn8_N14GlxDetailsIcon17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 38 NONAME
 	_ZThn8_N14GlxDetailsIconD0Ev @ 39 NONAME
 	_ZThn8_N14GlxDetailsIconD1Ev @ 40 NONAME
-	_ZThn8_N18GlxDetailsTextEdit12focusInEventEP11QFocusEvent @ 41 NONAME
-	_ZThn8_N18GlxDetailsTextEdit13focusOutEventEP11QFocusEvent @ 42 NONAME
-	_ZThn8_N18GlxDetailsTextEditD0Ev @ 43 NONAME
-	_ZThn8_N18GlxDetailsTextEditD1Ev @ 44 NONAME
+	_ZThn8_N18GlxDetailsTextEditD0Ev @ 41 NONAME
+	_ZThn8_N18GlxDetailsTextEditD1Ev @ 42 NONAME
 
--- a/ui/inc/glxcommandhandlers.hrh	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/inc/glxcommandhandlers.hrh	Fri Sep 17 08:29:24 2010 +0300
@@ -59,6 +59,7 @@
     EGlxCmdSelectSlideshow,  //play the slide show with selected item
     EGlxCmdAlbumSlideShow,   //play the slide show for a album
     EGlxCmdRename,
+    EGlxCmdRenameFile,
     EGlxCmdAddToFav,
     EGlxCmdRemoveFromFav,
     EGlxCmdPlay,
--- a/ui/inc/glxdocloaderdefs.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/inc/glxdocloaderdefs.h	Fri Sep 17 08:29:24 2010 +0300
@@ -50,18 +50,15 @@
 #define  GLX_LISTVIEW_DOCMLPATH  ":/data/listview.docml"
 
 //DETAILS VIEW
-#define GLX_DETAILSVIEW_DOCMLPATH  ":/data/detailsview.docml"
-#define GLX_DETAILSVIEW_VIEW       "view"
-#define GLX_DETAILSVIEW_IMAGE      "ImageIcon"
-#define GLX_DETAILSVIEW_FAVICON    "FavIcon"    
-#define GLX_DETAILSVIEW_IMGNAME    "ImageName"
-#define GLX_DETAILSVIEW_DATETEXT   "DateText"
-#define GLX_DETAILSVIEW_SIZETEXT   "SizeText"
-#define GLX_DETAILSVIEW_TIMETEXT   "TimeText"
-#define GLX_DETAILSVIEW_DESCRPTION "Descriptions"
-#define GLX_DETAILSVIEW_DESCRPTIONTEXT "DescriptionsText"
-#define  GLX_DETAILSVIEW_LSSECTION   "landscape"
-#define  GLX_DETAILSVIEW_PTSECTION   "portrait"
+#define GLX_DETAILSVIEW_DOCMLPATH    ":/data/detailsview.docml"
+#define GLX_DETAILSVIEW_VIEW         "view"
+#define GLX_DETAILSVIEW_IMGBCKGROUND "ImageBackGround"
+#define GLX_DETAILSVIEW_IMAGE        "ImageIcon"
+#define GLX_DETAILSVIEW_FAVICON      "FavIcon"    
+#define GLX_DETAILSVIEW_SHAREBUTTON  "ShareButton"
+#define GLX_DETAILSVIEW_LISTWIDGET   "DetailsViewList"
+#define GLX_DETAILSVIEW_LSSECTION    "landscape"
+#define GLX_DETAILSVIEW_PTSECTION    "portrait"
 
 
 #endif /* GLXDOCLOADERDEFS_H */
--- a/ui/inc/glxmodelroles.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/inc/glxmodelroles.h	Fri Sep 17 08:29:24 2010 +0300
@@ -47,7 +47,8 @@
 	GlxRemoveContextRole,                 //to remove the context
 	GlxTempVisualWindowIndex,              //to store the visual index obtained from AM temporarily
 	GlxImageCorruptRole,                 //To get the corrupt image status
-	GlxPaintPageFlag
+	GlxPaintPageFlag,
+	GlxImageTitle                        //to fetch the title of the image
 };
 
 
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -1315,9 +1315,10 @@
     //QImage share the memory occupied by data
     QImage image(data, aBitmap->SizeInPixels().iWidth, aBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16);
         
-    QPixmap pixmap = QPixmap::fromImage(image);
-    pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio );
-  
+    QPixmap pixmap = QPixmap::fromImage(image);    
+    if ( aBitmap->SizeInPixels().iWidth > itemWidth || aBitmap->SizeInPixels().iHeight > itemHeight ) {
+        pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio );
+    }  
     
     aBitmap->UnlockHeap();
     HbIcon* targetIcon = new HbIcon( QIcon( pixmap ) );
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -302,6 +302,10 @@
         return (mMLWrapper->retrieveItemUri(itemIndex));
     }
     
+	 if (role == GlxImageTitle) {
+           return mMLWrapper->retrieveListTitle(itemIndex);
+    }
+			
     if(role == GlxDimensionsRole) {
         return (mMLWrapper->retrieveItemDimension(itemIndex));
     }
--- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -51,6 +51,7 @@
 		case EGlxCmdSend : cmdHandler = new GlxCommandHandlerSend();  
 	         break;
 
+		case EGlxCmdRenameFile:     
         case EGlxCmdRename: cmdHandler = new GlxCommandHandlerRename();
            break;
            
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -241,8 +241,8 @@
     static int i = 0;
     HbIcon icon;
     User::ResetInactivityTime();  
+    QString text( GLX_REFRESHING );
 
-    //To:Do temp code remove later
     if ( mProgressDialog ) {
         i = ++i % 10;
         icon = HbIcon( QString( ":/data/Wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) );
@@ -255,13 +255,16 @@
         }
         
         if ( currentValue < 0 ) {
-            mProgressDialog->setText( QString( GLX_REFRESHING ) ); //To:Do string will change later
+            mProgressDialog->setText( text ); 
             mProgressDialog->setProgressValue( 0 );
+            mProgressDialog->setProgressDialogType( HbProgressDialog::WaitDialog );
         }
         else {
             int value = max - currentValue;
             mProgressDialog->setProgressValue( value );
-            mProgressDialog->setText( QString( " %1 " ).arg( currentValue ) );
+            text.append( QString( "\n  %1 " ).arg( currentValue ) );
+            mProgressDialog->setText( text );
+            mProgressDialog->setProgressDialogType( HbProgressDialog::ProgressDialog );
         }
     }
 }
--- a/ui/views/detailsview/inc/glxdetailsview.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/detailsview/inc/glxdetailsview.h	Fri Sep 17 08:29:24 2010 +0300
@@ -1,47 +1,57 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
- 
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   ?Description
+ *
+ */
+
 #ifndef GLXDETAILSVIEW_H
 #define GLXDETAILSVIEW_H
 
+//Includes
 #include <glxview.h>
-
+#include <QAbstractItemModel>
 
-class GlxMediaModel;
-class QAbstractItemModel;
-class HbIconItem;
-
-class GlxFavMediaModel;
-class HbDocumentLoader;
+//Orbit/Qt forward declartion
+class HbIcon;
 class HbLabel;
+class HbIconItem;
+class HbListView;
 class HbPushButton;
+
+//User Defined forward declartion
+class GlxDetailsIcon;
+class GlxFavMediaModel;
 class GlxDetailsTextEdit;
-class GlxDetailsIcon;
-
 class GlxDetailsViewDocLoader;
+class GlxDetailsViewModelWrapper;
 
-class GlxDetailsView : public GlxView  
-{
+/**
+ * Class Description
+ * This is Details view class .The functionality of details view is to show the detail of the image like
+ * Name of the image ,Date the image was created , time the image was modified , size of the image
+ * and show the description of the image.here in this view , the name of the image and description can be changed. 
+ */
+class GlxDetailsView : public GlxView
+    {
 
-    Q_OBJECT
+Q_OBJECT
 
 public:
+
     /*
      * class constructor.
+     * @param - HbMainWindow object
      */
     GlxDetailsView(HbMainWindow *window);
     /*
@@ -50,143 +60,193 @@
     ~GlxDetailsView();
 
     /*
+     * From GlxView
+     * This is called from the view manager before the view is going to Activated.
+     */
+    void initializeView(QAbstractItemModel *model, GlxView *preView);
+
+    /**
+     * From GlxView
      * This is called from the view manager when the view is going to be activated.
      */
-    void activate() ;
+    void activate();
 
     /*
-     * This is called from the view manager when the view is going to be de-activated.
-     */
-    void deActivate();
-
-    /*
-     * This is called from the view manager before the view is going to Activated.
-     */
-    void initializeView( QAbstractItemModel *model, GlxView *preView );
-
-    /*
+     * From GlxView
      * This is called from the view manager before the view is going to de-activated.
      */
     void resetView();
 
     /*
-     * Sets the model corresponding to this view.
+     * From GlxView 
+     * This is called from the view manager when the view is going to be de-activated.
      */
-    void setModel (QAbstractItemModel *model);
+    void deActivate();
+
     /*
+     * From GlxView
+     * Sets the model corresponding to this view.
+     * This is called from the view manager before the view is going to Activated.
+     * @Param - model is of type GlxMediaModel
+     */
+    void setModel(QAbstractItemModel *model);
+
+    /*
+     * //From GlxView
+     * This is called from the view manager before the view is going to Activated.
      * return the view item for animation
-     */    
+     */
     QGraphicsItem * getAnimationItem(GlxEffect transtionEffect);
 
-
-public slots:
-    void updateLayout(Qt::Orientation);
-    void rowsRemoved(const QModelIndex &parent, int start, int end);
-    void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
-    void modelDestroyed();
-    void updateFavourites();
-    void UpdateDescription();
-    void FillDetails();
-    
 private:
 
     /*
-     * Retrieves the image from the model and shows the image
+     * cleanUp()
+     * cleans up the resources used.
+     */
+    void cleanUp();
+
+    /*
+     * showImage()
+     * Retrieves the image from the model and displays the image
      */
     void showImage();
 
     /*
-     * Sets the Date to the label recieved from MDS
+     * setFavModel
+     * This Function creates the favourite model, to determine if the image is added to favourite.
      */
-    void setImageName();
-    
-    void setDesc();
+    void setFavModel();
 
     /*
-     * Sets the Date to the label received from MDS
-     */
-    void setDate();
-    
-    /*
-     * Sets the time to the label received from MDS
-     */
-    void setTime();
-    
-    /*
-     * Sets the size to the label received from MDS
-     */
-    void setSize();    
-    
-    /*
-     * create the favourite model
-     */
-    void setFavModel();
-    
-    /*
-     * Add all the model releted connection and data
+     * initializeNewModel()
+     * Add all the model related connection and data
      */
     void initializeNewModel();
+
     /*
+     * clearCurrentModel()
      * clear all the model releted connection and data
      */
     void clearCurrentModel();
-    
-    /*
-     * cleans up the resources used.
-     */
-    void cleanUp();
-    
-    QString sizeinStrings(int size);
 
     /*
+     * setConnections()
      * connects the items to slot to respective signals
      */
     void setConnections();
 
     /*
+     * clearConnections()
      * clear the connections
      */
     void clearConnections();
-    
+
+    /**
+     * getSubState()
+     * This Function retrieves the state of the details view, whether it launched from the Photos app
+     * or whether it was launched from other app like File Manager, MMS , Camera ...
+     */
     int getSubState();
+
+private slots:
+
+    /**
+     * updateLayout()
+     * This Loads the View/Section corresponding to the  Orientation.
+     * @Param - Orientation , specifies the current Orientation.
+     */
+    void updateLayout(Qt::Orientation);
+
+    /**
+     * rowsRemoved()
+     * This Slot is called when the item is removed from the model.
+     * @Param - parent is of type QModelIndex.
+     * @Param - start, this specifies the starting index of the item being removed. 
+     * @Param - end ,this specifies the ending  index of the item being removed.
+     */
+    void rowsRemoved(const QModelIndex &parent, int start, int end);
+
+    /**
+     * modelDestroyed()
+     * This Slot is called whenever the model is deleted.
+     */
+    void modelDestroyed();
+
+    /**
+     * dataChanged()
+     * This Slot is called whenever the data in an existing item changes.
+     * @Param - startIndex, this specifies the starting index of the  affected items.  
+     * @Param - endIndex ,this specifies the ending  index of the  affected items .
+     */
+    void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
+
+    /**
+     * refreshDetailsview()
+     * This Slot is called  when the data shown in details view has to be refreshed.
+     */
+    void refreshDetailsview();
+
+    /**
+     * triggerTheCommand()
+     * This Slot is called when the file details has to be changed like file name and description
+     * @param - row, The Row specifies the row index of the widget in the list widget of details view.
+     */
+    void triggerTheCommand(int row);
+
+    /**
+     * updateFavourites()
+     * This Slot is called whenever the image is added to Favourites
+     */
+    void updateFavourites();
+
+    /**
+     * launchShareDialog()
+     * This Slot is called  when the image has to be sent via services like MMS, Bluetooth,Email...
+     */
+    void launchShareDialog();
+
 private:
-    
+
+    //Contains the thumbnail shown in teh details view.
+    HbLabel *mImageBackGround;
+
     //Contains the thumbnail shown in teh details view.
     HbLabel *mDetailsIcon;
+
+    //contains the view instance 
+    HbView *mView;
     
     //Contains the favourite icon which adds or removes the image to favourite folder
     GlxDetailsIcon *mFavIcon;
-   
+
     //The media Model to acess the attributes; not owned,dont delete.
-    QAbstractItemModel *mModel; 
-    
+    QAbstractItemModel *mModel;
+
     //The media Model to acess the attributes whether image is in favourite folder or not;owned by this view
-    GlxFavMediaModel *mFavModel;    
- 
+    GlxFavMediaModel *mFavModel;
+
     //The reference to the Main Window
     HbMainWindow *mWindow;
-     
+
     int mSelIndex;
-    
-   //Document Loader  
+
+    //custom Document Loader to load the details view  
     GlxDetailsViewDocLoader *mDocLoader;
-  
-    //Shows the Images
-    GlxDetailsTextEdit *mImageName;
-	
-	//Shows the descriptions
-    GlxDetailsTextEdit *mDescriptions;
-	
-	//Shows the Date 
-    HbLabel *mDateLabel;
-	
-	//Shows the size of the image
-    HbLabel *mSizeLabel;
-	
-	//Shows the time 
-    HbLabel *mTimeLabel;    
-    
+
+    //Contains the disabled favourite icon 
     HbIcon mFavIconEnabled;
+
+    //Contains the enabled favourite icon 
     HbIcon mFavIconDisabled;
-};
+
+    //Contains the List view
+    HbListView *mListView;
+
+    //Contains the List model
+    GlxDetailsViewModelWrapper *mListModel;
+
+    //holds the share button
+    HbPushButton *mShareButton;
+    };
 #endif //GLXDETAILSVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/inc/glxdetailsviewitemprototype.h	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   ?Description
+ *
+ */
+
+#ifndef GLXDETAILSVIEWITEMPROTOTYPE_H
+#define GLXDETAILSVIEWITEMPROTOTYPE_H
+
+//Includes
+#include <hblistviewitem.h>
+
+//Orbit/Qt forward declartion
+class HbLabel;
+
+//User Defined forward declartion
+class GlxDetailsTextEdit;
+
+/**
+ * Class Description
+ * This is Custom widget class to create custom widgets in the list widget of the details view 
+ */
+class GlxDetailsViewItemProtoType : public HbListViewItem
+    {
+Q_OBJECT
+
+public:
+    /*
+     * The Enum here corresponds to the the custom widget's indexes occuring in the List Widget
+     */
+    enum WidgetIndex
+        {
+        widgetNameIndex = 0,
+        widgetDateIndex,
+        widgetTimeIndex,
+        widgetSizeIndex,
+        widgetDescriptionIndex
+        };
+
+    /*
+     * Constructor
+     * @param - parent of this widget
+     */
+    GlxDetailsViewItemProtoType(QGraphicsItem* parent = 0);
+
+    /*
+     * Destructor
+     */
+    virtual ~GlxDetailsViewItemProtoType();
+
+    /**
+     * createItem()
+     * From HbAbstractViewItem
+     * Creates a new item.     
+     */
+    HbAbstractViewItem* createItem();
+
+    /**
+     * updateChildItems()
+     * From HbAbstractViewItem
+     * Creates the custom widget corresponding to the widget index retrived through the model    
+     */
+    void updateChildItems();
+
+private slots:
+
+    /**
+     * forwardSignalsToView()
+     * This slot is called when the rename or description has to be changed
+     */
+    void forwardSignalsToView();
+
+    /**
+     * updateWidgetValues()
+     * This slot is called when there is a change in the model data 
+     */
+    void updateWidgetValues();
+
+signals:
+
+    /**
+     * signalFromCustomWidget : This signal is emitted to the details view, to update or launch dialogs 
+     * like description field editing or renaming of the image file name  
+     * @param - row , specifies the widget index in the list widget
+     */
+    void signalFromCustomWidget(int row);
+
+private:
+    //Image Name Editor:To display the Image Name
+    GlxDetailsTextEdit *mImageNameEditor;
+    
+    //Description Editor:To display the Description/comments of the image 
+    GlxDetailsTextEdit *mDescriptionEditor;
+        
+    //Displays the Date of the image 
+    HbLabel *mDateLabel;
+    
+    //Displays the time of the image 
+    HbLabel *mTimeLabel;
+    
+    //Displays the size of the image 
+    HbLabel *mSizeLabel;
+    };
+
+#endif // GLXDETAILSVIEWITEMPROTOTYPE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/inc/glxdetailsviewmodelwrapper.h	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   ?Description
+ *
+ */
+
+#ifndef GLXDETAILSVIEWMODELWRAPPER
+#define GLXDETAILSVIEWMODELWRAPPER
+
+//Includes
+#include <QAbstractItemModel>
+
+/**
+ * Class Description
+ * This is Wrapper class,which access the model [GlxMediaModel] for the widgets created in the details view
+ * Here it specifies the no:of custom widgets to be created in the list view for the details view
+ */
+
+class GlxDetailsViewModelWrapper : public QAbstractItemModel
+    {
+Q_OBJECT
+public:
+
+    /**
+     * Constructor
+     * @param - QAbstractItemModel object, this object is passed from the details view, while creating this
+     *          class object 
+     */
+    GlxDetailsViewModelWrapper(QAbstractItemModel *model);
+
+    /**
+     * Destructor
+     */
+    ~GlxDetailsViewModelWrapper();
+
+    /**
+     * From QAbstractItemModel
+     * This Function specifies the no:of custom widgets to be created as well
+     * the no:of custom widgets present.
+     */
+    int rowCount(const QModelIndex &parent = QModelIndex()) const;
+
+    /**
+     * From QAbstractItemModel
+     */
+    int columnCount(const QModelIndex &parent = QModelIndex()) const;
+
+    /**
+     * From QAbstractItemModel
+     */
+    QModelIndex parent(const QModelIndex &child) const;
+
+    /**
+     * From QAbstractItemModel
+     * This Function returns the data fetched from the Model corresponding to the role passed
+     */
+    QVariant data(const QModelIndex &index, int role) const;
+
+    /**
+     * From QAbstractItemModel
+     * This Function verifies if the index passed is valid or not.
+     */
+    QModelIndex index(int row, int column, const QModelIndex &parent =
+            QModelIndex()) const;
+
+    /**
+     * This Function Emits the Signal for the Custom widgets to refresh  thier data shown
+     */
+    void refreshCustomWidget();
+
+private:
+    
+    /**
+     * This Function returns the size in standard form like Bytes,KB,MB,GB
+     * @param :size , specified in Bytes 
+     */
+    QString sizeinStrings(int size) const;
+
+signals:
+    /*
+     * This Signal Specifies Custom widgets to refresh  thier data shown as there is change in data in the model 
+     */
+    void updateCustomWidgets();
+private:
+
+    //This variable is initialised with model passed by the view, while creating this class object
+    QAbstractItemModel *mModel;
+    };
+
+#endif //GLXDETAILSVIEWMODELWRAPPER_H
--- a/ui/views/detailsview/src/glxdetailsview.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/detailsview/src/glxdetailsview.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -5,7 +5,6 @@
  * under the terms of "Eclipse Public License v1.0"
  * which accompanies this distribution, and is available
  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
  * Initial Contributors:
  * Nokia Corporation - initial contribution.
  *
@@ -15,76 +14,46 @@
  *
  */
 
-//--------------------------------------------------------------------------------------------------------------------------------------------
-
+//Includes Qt
 
 #include <QModelIndex>
-#include <qdatetime.h>
 #include <QDebug>
-#include <HbAnchorLayout.h>
-//--------------------------------------------------------------------------------------------------------------------------------------------
 
+//Includes Orbit
 #include <hblabel.h>
-#include <hbdataform.h>
 #include <hbinstance.h>
-#include <hbiconitem.h>
-#include <hbframeitem.h>
+#include <hblistview.h>
 #include <hbpushbutton.h>
-#include <hbdataformmodel.h>
-#include <hbdocumentloader.h>
-#include <hbdataformmodelitem.h>
-#include <hbdataformviewitem.h>
 #include <hbparameterlengthlimiter.h>
-//--------------------------------------------------------------------------------------------------------------------------------------------
-#include "glxviewids.h"
+
+//User Includes
+#include "glxlog.h"      //contains the declaration of GLX LOGS
+#include "glxviewids.h"  //contains view ids used here 
 #include "glxicondefs.h" //Contains the icon names/Ids
-#include "glxmodelparm.h"
-#include "glxmediamodel.h"
-#include "glxdetailsview.h"
-#include "glxfavmediamodel.h"
-#include "glxdocloaderdefs.h"
-#include <glxcommandhandlers.hrh>
-#include  "glxlocalisationstrings.h"
-#include "glxdetailstextedit.h"
-#include "glxdetailsicon.h"
-
-
-#include "glxviewdocloader.h"
-#include <glxcollectionpluginalbums.hrh>
-
-#include "glxlog.h"
-#include "glxloggerenabler.h"
-
-
+#include "glxmodelparm.h" //contains the declaration of GlxModelParm used to check for favourites 
+#include "shareuidialog.h" //contains the declaration for share ui/send dialogs
+#include "glxdetailsicon.h" //contains the declaration of glxdetailsicon to show the image
+#include "glxdetailsview.h" //contains the declaration of this file/class
+#include "glxviewdocloader.h" //contains the declaration of GlxDetailsViewDocLoader
+#include "glxfavmediamodel.h" //contains the declaration of GlxFavMediaModel,used to check for favourites
+#include "glxdocloaderdefs.h" //contains the #define/constants of docml constants 
+#include "glxcommandhandlers.hrh" //contains the declaration of rename and description command
+#include "glxlocalisationstrings.h" //contains the localisation strings
+#include "glxdetailsviewmodelwrapper.h" //contains the model wrapper for the media model of list widget
+#include "glxdetailsviewitemprototype.h" //contains the custom widgets prototype decalaration
+#include "glxcollectionpluginalbums.hrh" //contains declaration of KGlxCollectionPluginFavoritesAlbumId
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxdetailsviewTraces.h"
 #endif
 
-//SIZE OF THE IMAGE , LAYOUTS TEAM NEED TO GIVER THE SIZE IN UNITS
-#define GLX_IMAGE_WIDTH 333
-#define GLX_IMAGE_HEIGHT 215 
-const int KBytesInKB = 1024;
-const int KBytesInMB = 1024 * 1024;
-const int KBytesInGB = 1024 * 1024 * 1024;
-
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //GlxDetailsView
 //--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsView::GlxDetailsView(HbMainWindow *window) 
-    : GlxView( GLX_DETAILSVIEW_ID ),
-      mDetailsIcon( NULL ),
-      mFavIcon( NULL ), 
-      mModel( NULL ), 
-      mFavModel( NULL ),
-      mWindow( window ),
-      mSelIndex( 0 ),
-      mDocLoader( NULL ),
-      mImageName( NULL ),
-      mDescriptions( NULL ),
-      mDateLabel( NULL ),
-      mSizeLabel( NULL ),
-      mTimeLabel( NULL )
+GlxDetailsView::GlxDetailsView(HbMainWindow *window) :
+    GlxView(GLX_DETAILSVIEW_ID), mImageBackGround(NULL), mDetailsIcon(NULL), mView(NULL), mFavIcon(
+        NULL), mModel(NULL), mFavModel(NULL), mWindow(window), mSelIndex(0), mDocLoader(NULL),
+        mListView(NULL), mListModel(NULL), mShareButton(NULL)
 {
     GLX_LOG_INFO("GlxDetailsView::GlxDetailsView");
     OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY );
@@ -98,161 +67,203 @@
 GlxDetailsView::~GlxDetailsView()
 {
     OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" );
-    
+
+    delete mDetailsIcon;
+    mDetailsIcon = NULL;
+
+    delete mImageBackGround;
+    mImageBackGround = NULL;
+
+    delete mView;
+    mView = NULL;
+
+    mDocLoader->reset();
     delete mDocLoader;
-    mDocLoader = NULL;
+    mDocLoader = NULL;   
+
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//initializeView
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::initializeView(QAbstractItemModel *model, GlxView *preView)
+{
+    Q_UNUSED( preView )
+    OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY );
+    bool loaded = false;
+
+    if (!mDocLoader) {
+        mDocLoader = new GlxDetailsViewDocLoader();
+    }
+    mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, &loaded);
+
+    if (!mView) {
+
+        mView = static_cast<HbView*> (mDocLoader->findWidget(GLX_DETAILSVIEW_VIEW));
+        mImageBackGround = static_cast<HbLabel*> (mDocLoader->findWidget(
+            GLX_DETAILSVIEW_IMGBCKGROUND));
+        mDetailsIcon = static_cast<HbLabel*> (mDocLoader->findWidget(GLX_DETAILSVIEW_IMAGE));
+    }
+
+    mFavIcon = static_cast<GlxDetailsIcon*> (mDocLoader->findWidget(GLX_DETAILSVIEW_FAVICON));
+
+    mShareButton = static_cast<HbPushButton*> (mDocLoader->findWidget(GLX_DETAILSVIEW_SHAREBUTTON));
+
+    mListView = static_cast<HbListView*> (mDocLoader->findWidget(GLX_DETAILSVIEW_LISTWIDGET));
+
+    //Set the Model
+    mModel = model;
+
+    //Set the Layout Correspondingly.
+    updateLayout(mWindow->orientation());
+        
+    GlxDetailsViewItemProtoType *prototype = new GlxDetailsViewItemProtoType(mListView);
+    mListView->setItemPrototype(prototype);
+    mListModel = new GlxDetailsViewModelWrapper(mModel);
+    mListView->setModel(mListModel);
+
+    mImageBackGround->show();
+    mDetailsIcon->show();
     
-    cleanUp();
+    setWidget(mView);
+
+    
+
+    OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //activate
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::activate()
-    {
+{
     OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY );
-    //create and set the Favourite Model
-    if(getSubState() != IMAGEVIEWER_DETAIL_S) {
-       setFavModel();
+
+    mFavIconEnabled = HbIcon(GLXICON_ADD_TO_FAV);
+    mFavIconDisabled = HbIcon(GLXICON_REMOVE_FAV);
+
+    if (getSubState() != IMAGEVIEWER_DETAIL_S) {
+        //set the favorite model to check if this image is in favourites folder or not
+        setFavModel();
+        mFavIcon->setItemIcon(mFavIconDisabled);
     }
-    
-    //fill the data
-    FillDetails();
-    
-    //Initialze the Model
-    initializeNewModel();
-    
-    //make the connections
-    setConnections();
-        
-    //Set context mode to fetch descriptions
-    mModel->setData(QModelIndex(), (int) GlxContextComment, GlxContextRole);    
-    
-    OstTraceFunctionExit0( GLXDETAILSVIEW_ACTIVATE_EXIT );
+    else {
+        mFavIcon->hide();
     }
 
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//initializeView
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::initializeView( QAbstractItemModel *model, GlxView *preView)
-{
-    Q_UNUSED( preView )
-    OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY );
-    bool loaded = false;
+    //Initialze the Model
+    initializeNewModel();
 
-    if(!mDocLoader)
-        {
-         mDocLoader = new GlxDetailsViewDocLoader();
-        }
-
-    //Load the docml
-    mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, &loaded);     
-
-    HbView *mView = static_cast<HbView*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_VIEW));
-    
-    mDetailsIcon = static_cast<HbLabel*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_IMAGE));
-    mFavIcon = static_cast<GlxDetailsIcon*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_FAVICON));
-
+    //make the connections
+    setConnections();
 
-    mDescriptions = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_DESCRPTIONTEXT));
-    
-    mImageName = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_IMGNAME));
-    
-    mDateLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_DATETEXT));
-    
-    mTimeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_TIMETEXT));
-    
-    mSizeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
-            GLX_DETAILSVIEW_SIZETEXT));
+    //Set context mode to fetch descriptions
+    mModel->setData(QModelIndex(), (int) GlxContextComment, GlxContextRole);
 
-    mFavIconEnabled  =  HbIcon(GLXICON_ADD_TO_FAV);
-    mFavIconDisabled =  HbIcon(GLXICON_REMOVE_FAV);   
-        
-    //Set the Model
-    mModel = model;  
-   if(getSubState() == IMAGEVIEWER_DETAIL_S) {
-       mFavIcon->hide();
-    }
-    else
-    {
-       mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV));
-     }	
-	 
-	setWidget(mView);
-	
-    //Set the Layout Correspondingly.
-    updateLayout(mWindow->orientation());
-
-    OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
-    }
+    OstTraceFunctionExit0( GLXDETAILSVIEW_ACTIVATE_EXIT );
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //resetView
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::resetView()
-    {
+{
     GLX_LOG_INFO("GlxDetailsView::resetView");
+
+    //Remove the context created to update details
+    if (mModel) {
+        mModel->setData(QModelIndex(), (int) GlxContextComment, GlxRemoveContextRole);
+    }
+
+    //clear the connections
+    clearConnections();
+    //clear the model
+    clearCurrentModel();
+
+    delete mFavIcon;
+    mFavIcon = NULL;
+
+    delete mFavModel;
+    mFavModel = NULL;
+
+    delete mShareButton;
+    mShareButton = NULL;
+
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_RESETVIEW, "GlxDetailsView::resetView" );
-    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //deActivate
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::deActivate()
-    {
+{
     GLX_LOG_INFO("GlxDetailsView::deActivate");
     OstTraceFunctionEntry0( GLXDETAILSVIEW_DEACTIVATE_ENTRY );
 
-    //Remove the context created to update details
-    mModel->setData(QModelIndex(), (int) GlxContextComment,
-            GlxRemoveContextRole);
+    mImageBackGround->hide();
+    mDetailsIcon->hide();
     cleanUp();
-    
+
     OstTraceFunctionExit0( GLXDETAILSVIEW_DEACTIVATE_EXIT );
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setModel(QAbstractItemModel *model)
+{
+    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETMODEL, "GlxDetailsView::setModel" );
+    if (mModel == model) {
+        return;
     }
+    clearCurrentModel();
+    mModel = model;
+    initializeNewModel();
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//getAnimationItem
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QGraphicsItem * GlxDetailsView::getAnimationItem(GlxEffect transtionEffect)
+{
+    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_GETANIMATIONITEM, "GlxDetailsView::getAnimationItem" );
+    if (transtionEffect == FULLSCREEN_TO_DETAIL || transtionEffect == DETAIL_TO_FULLSCREEN) {
+        return this;
+    }
+    return NULL;
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //cleanUp
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::cleanUp()
-    {
-    qDebug("GlxDetailsView::cleanUp Enter");
-	//clear the connections
-    clearConnections();   
-    
-    clearCurrentModel();
+{
+    delete mListModel;
+    mListModel = NULL;
+
+    delete mListView;
+    mListView = NULL;
 
-    delete mFavModel;
-    mFavModel = NULL;
-       
-    delete mFavIcon;
-    mFavIcon = NULL;
+    takeWidget();
+}
 
-    delete mDetailsIcon;
-    mDetailsIcon = NULL;
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//showImage
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::showImage()
+{
+    QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole);
+    if (variant.isValid() && variant.canConvert<int> ()) {
+        mSelIndex = variant.value<int> ();
     }
 
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setModel
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::setModel(QAbstractItemModel *model)
-    {
-    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETMODEL, "GlxDetailsView::setModel" );
-    if (mModel == model)
-        {
-        return;
-        }
-    clearCurrentModel();
-    mModel = model;
-    initializeNewModel();
+    variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole);
+
+    if (variant.isValid() && variant.canConvert<HbIcon> ()) {
+        mDetailsIcon->setIcon(variant.value<HbIcon> ());
+        mImageBackGround->setIcon(HbIcon(":/data/details.svg"));
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setFavModel
@@ -260,9 +271,8 @@
 void GlxDetailsView::setFavModel()
 {
     GlxModelParm modelParm;
-    QString imagePath = (mModel->data(mModel->index(mModel->data(
-            mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
-            GlxUriRole)).value<QString> ();
+    QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
+        GlxFocusIndexRole).value<int> (), 0), GlxUriRole)).value<QString> ();
 
     if (mFavModel == NULL) {
         modelParm.setCollection(KGlxCollectionPluginFavoritesAlbumId);
@@ -278,11 +288,12 @@
 void GlxDetailsView::initializeNewModel()
 {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_INITIALIZENEWMODEL, "GlxDetailsView::initializeNewModel" );
-    
+
     if (mModel) {
-        connect( mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
-        connect( mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-        connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
+        connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
+            SLOT(rowsRemoved(QModelIndex,int,int)));
+        connect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( refreshDetailsview() ));
+        connect(mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ));
     }
 }
 
@@ -294,9 +305,10 @@
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_CLEARCURRENTMODEL, "GlxDetailsView::clearCurrentModel" );
 
     if (mModel) {
-        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
-        disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-        disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
+        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
+            SLOT(rowsRemoved(QModelIndex,int,int)));
+        disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( refreshDetailsview() ));
+        disconnect(mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ));
         mModel = NULL;
     }
 }
@@ -306,17 +318,25 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::setConnections()
 {
+
     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
-            SLOT(updateLayout(Qt::Orientation)));
-    
-    if(getSubState() != IMAGEVIEWER_DETAIL_S) {    
-    connect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
-    
-    connect(mDescriptions, SIGNAL(labelPressed()), this,
-            SLOT(UpdateDescription()));
-    
-    connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
-                   this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+        SLOT(updateLayout(Qt::Orientation)));
+
+    connect(mShareButton, SIGNAL(clicked()), this, SLOT(launchShareDialog()));
+
+    if (getSubState() != IMAGEVIEWER_DETAIL_S) {
+
+        connect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
+
+        connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this,
+            SLOT( dataChanged(QModelIndex,QModelIndex) ));
+
+        //Connect the signals only in case of details view launched from photos app
+        // and dont connect the signals if the details view is launched from MMS,File Manager
+        // or other apps.
+        connect((mListView->itemPrototypes()).at(0), SIGNAL(signalFromCustomWidget(int)), this,
+            SLOT(triggerTheCommand(int)));
+
     }
 }
 
@@ -325,318 +345,158 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::clearConnections()
 {
-    
-    qDebug("GlxDetailsView:: clearConnections");
+    GLX_LOG_INFO("GlxDetailsView::clearConnections ");
+
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
-            SLOT(updateLayout(Qt::Orientation)));
-           
-    if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
-    disconnect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
-    disconnect(mDescriptions, SIGNAL(labelPressed()), this,
-            SLOT(UpdateDescription()));
-    disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
-                    this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+        SLOT(updateLayout(Qt::Orientation)));
+
+    if (mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
+
+        disconnect((mListView->itemPrototypes()).at(0), SIGNAL(signalFromCustomWidget(int)), this,
+            SLOT(triggerTheCommand(int)));
+
+        disconnect(mShareButton, SIGNAL(released()), this, SLOT(launchShareDialog()));
+
+        disconnect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
+
+        disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this,
+            SLOT( dataChanged(QModelIndex,QModelIndex) ));
     }
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-//getAnimationItem
+//getSubState
 //--------------------------------------------------------------------------------------------------------------------------------------------
-QGraphicsItem * GlxDetailsView::getAnimationItem(GlxEffect transtionEffect)
-    {
-    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_GETANIMATIONITEM, "GlxDetailsView::getAnimationItem" );
-    if (transtionEffect == FULLSCREEN_TO_DETAIL || transtionEffect
-            == DETAIL_TO_FULLSCREEN)
-        {
-    return this;
+int GlxDetailsView::getSubState()
+{
+    int substate = NO_DETAIL_S;
+
+    if (mModel) {
+        QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole);
+
+        if (variant.isValid() && variant.canConvert<int> ()) {
+            substate = variant.value<int> ();
         }
-    return NULL;
     }
+    return substate;
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //updateLayout
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::updateLayout(Qt::Orientation orient)
-    {
-    OstTrace1( TRACE_NORMAL, GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout;orient=%d", orient );
+{
     GLX_LOG_INFO("GlxDetailsView::updateLayout ");
     bool loaded = false;
     QString section;
 
     //Load the widgets accroding to the current Orientation
-    if (orient == Qt::Horizontal)
-        {
+    if (orient == Qt::Horizontal) {
         section = GLX_DETAILSVIEW_LSSECTION;
-        }
-    else
-        {
+    }
+    else {
         section = GLX_DETAILSVIEW_PTSECTION;
-        }
+    }
 
     //Load the Sections
     mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, section, &loaded);
 
     showImage();
-	//This is just to over come the bug in docloader,once that is fixed we can remove the 
-    //below lines of code
-    FillDetails();
-    
+
     GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded);
-    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //rowsRemoved
 //--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::rowsRemoved(const QModelIndex &parent, int start,
-        int end)
-    {
+void GlxDetailsView::rowsRemoved(const QModelIndex &parent, int start, int end)
+{
     Q_UNUSED(parent);
     Q_UNUSED(start);
     Q_UNUSED(end);
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_ROWSREMOVED, "GlxDetailsView::rowsRemoved" );
 
-    if (mModel->rowCount() <= 0)
-        {
+    if (mModel->rowCount() <= 0) {
         return emit actionTriggered(EGlxCmdEmptyData);
-        }
-
-    if (start <= mSelIndex && end >= mSelIndex)
-        {
-        return emit actionTriggered(EGlxCmdBack);
-        }
     }
 
+    if (start <= mSelIndex && end >= mSelIndex) {
+        return emit actionTriggered(EGlxCmdBack);
+    }
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//modelDestroyed
+//--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::modelDestroyed()
 {
     mModel = NULL;
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-//FillData
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::FillDetails()
-    {
-    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETFORMDATA, "GlxDetailsView::setFormData" );
-
-    qDebug("GlxDetailsView::FillDetails");
-    //Call to set the Image Name
-    setImageName();
-
-    //Call to set the description
-    setDesc();
-
-    //Call to set the date in the from
-    setDate();
-
-    //Call to set the time
-    setTime();
-
-    //Call to set the size
-    setSize();
-
-    }
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//showImage
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::showImage()
- {
-    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" );
-
-    QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole);
-    if (variant.isValid() && variant.canConvert<int> ())
-        {
-        mSelIndex = variant.value<int> ();
-        }
-
-    variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole);
-    
-    if (variant.isValid() && variant.canConvert<HbIcon> ())
-        {
-         mDetailsIcon->setIcon(variant.value<HbIcon> ());
-        }
-   }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setImageName
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::setImageName()
-    {
-    OstTraceFunctionEntry0( GLXDETAILSVIEW_SETIMAGENAME_ENTRY );
-    QString imagePath = (mModel->data(mModel->index(mModel->data(
-            mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
-            GlxUriRole)).value<QString> ();
-    QString imageName = imagePath.section('\\', -1);
-    
-    mImageName->setItemText(imageName);    
-    OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT );
-    }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setImageName
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::setDesc()
-    {
-    
-    //This is a hack , Initialize to some characters and then set the text
-    //as of know if the description text is Null , we cant see the Description edit box
-    //The issue has been informed to Application designer team.
-    mDescriptions->setItemText("a");
-    QString description = (mModel->data(mModel->index(mModel->data(
-            mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
-            GlxDescRole)).value<QString> ();
-     mDescriptions->setItemText(description);       
-    }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setDate
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::setDate()
-    {
-    OstTraceFunctionEntry0( GLXDETAILSVIEW_SETDATE_ENTRY );
-
-    QString datestring;
-    QString dateFormat("dd.MM.yyyy");
-    QDate date = (mModel->data(mModel->index(mModel->data(
-            mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
-            GlxDateRole)).value<QDate> ();
-        
-    if (date.isNull() == FALSE)
-        {
-        OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
-        QString dateStringValue = date.toString(dateFormat);
-        datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue);
-        }
-
-    mDateLabel->setPlainText(datestring);
-
-    OstTraceFunctionExit0( GLXDETAILSVIEW_SETDATE_EXIT );
-    }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setTime
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::setTime()
-    {
-    QString timestring;
-    QString timeFormat("h:m ap");
-    QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index(
-            0, 0), GlxFocusIndexRole).value<int> (), 0), GlxTimeRole)).value<
-            QTime> ();
-        
-    if (timevalue.isNull() == FALSE)
-        {
-        QString timeStringValue = timevalue.toString(timeFormat);
-        timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
-        }
-     mTimeLabel->setPlainText(timestring);
-    }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setSize
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::setSize()
-    {
-    int size = 0;
-    size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
-            GlxFocusIndexRole).value<int> (), 0), GlxSizeRole)).value<int> ();
-    
-    QString sizeString;
-    sizeString = sizeinStrings(size);
-    mSizeLabel->setPlainText(sizeString);
-    
-   }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
 //dataChanged
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
-    {
+{
     Q_UNUSED(endIndex);
 
     QVariant variant = mFavModel->data(startIndex, GlxFavorites);
-    if (variant.isValid() && variant.canConvert<bool> ())
-        {
-        if (variant.value<bool> ())
-            {
+    if (variant.isValid() && variant.canConvert<bool> ()) {
+        if (variant.value<bool> ()) {
             mFavIcon->setItemIcon(mFavIconEnabled);
-            }
-        else
-            {
+        }
+        else {
             mFavIcon->setItemIcon(mFavIconDisabled);
-            }
         }
     }
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//refreshDetailsview
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::refreshDetailsview()
+{
+    GLX_LOG_INFO("GlxDetailsView::refreshDetailsview ");
+    mListModel->refreshCustomWidget();
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-//UpdateDescription
+//triggerTheCommand
 //--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::UpdateDescription()
-    {
-    GLX_LOG_INFO("GlxDetailsView::UpdateDescription ");
-    qDebug("GlxDetailsView::UpdateDescription");
-    emit actionTriggered(EGlxCmdComment);
+void GlxDetailsView::triggerTheCommand(int row)
+{
+    GLX_LOG_INFO("GlxDetailsView::triggerTheCommand ");
+
+    if (row == GlxDetailsViewItemProtoType::widgetNameIndex) {
+        emit actionTriggered(EGlxCmdRenameFile);
     }
+    else {
+        emit actionTriggered(EGlxCmdComment);
+    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //updateFavourites
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::updateFavourites()
-    {
+{
     QVariant variant = mFavModel->data(mFavModel->index(0, 0), GlxFavorites);
-    if (variant.isValid() && variant.canConvert<bool> ())
-        {
-        if (variant.value<bool> ())
-            {
+    if (variant.isValid() && variant.canConvert<bool> ()) {
+        if (variant.value<bool> ()) {
             emit actionTriggered(EGlxCmdRemoveFromFav);
-            }
-        else
-            {
+        }
+        else {
             emit actionTriggered(EGlxCmdAddToFav);
-            }
         }
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-//sizeinStrings
+//launchShareDialog
 //--------------------------------------------------------------------------------------------------------------------------------------------
-QString GlxDetailsView::sizeinStrings(int size)
-    {
-    QString sizeString;
-    if (size >= KBytesInGB)
-        {
-        int gbSize = size / KBytesInGB; // Size in GB
-        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize);         
-        }
-    else if (size >= KBytesInMB)
-        {
-        int mbSize = size / KBytesInMB; // Size in MB
-        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize);         
-        }
-    else if (size >= KBytesInKB)
-        {
-        int kbSize = size / KBytesInKB; // Size in KB
-        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize);
-        }
-    else
-        {
-         sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size);
-        }
-    return sizeString;
-    }
+void GlxDetailsView::launchShareDialog()
+{
+    GLX_LOG_INFO("GlxDetailsView::launchShareDialog ");
+    emit actionTriggered(EGlxCmdSend);
+}
 
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//getSubState
-//--------------------------------------------------------------------------------------------------------------------------------------------
-int GlxDetailsView::getSubState()
-  {
-    int substate = NO_DETAIL_S;
-
-    if (mModel) {
-      QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole);
-
-      if (variant.isValid() && variant.canConvert<int> ()) {
-           substate = variant.value<int> ();
-      }
-    } 
-    return substate;
- }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/src/glxdetailsviewitemprototype.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,298 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   ?Description
+ *
+ */
+
+//Includes
+#include <QDebug>
+#include <hblabel.h>
+#include <QGraphicsLinearLayout>
+
+//User Includes
+#include "glxviewids.h"
+#include "glxmodelroles.h"  //Contains the declaration of the roles used to retrieve the data from model
+#include "glxdetailstextedit.h"  //Contains the declaration of the custom widget glxdetailstextedit
+#include "glxlocalisationstrings.h" //contains the localisation strings
+#include "glxdetailsviewmodelwrapper.h" //Contains the declaration of the modelwrapper
+#include "glxdetailsviewitemprototype.h" //contains the declaration of this file/class
+
+#define CONTENTMARGINS  5
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//GlxDetailsViewItemProtoType
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsViewItemProtoType::GlxDetailsViewItemProtoType(QGraphicsItem* parent) :
+    HbListViewItem(parent)
+{
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//~GlxDetailsViewItemProtoType
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsViewItemProtoType::~GlxDetailsViewItemProtoType()
+{
+    int widgetIndex = modelIndex().row();
+    switch (widgetIndex) {
+
+    case widgetNameIndex:
+    {
+        delete mImageNameEditor;
+        mImageNameEditor = NULL;
+        break;
+    }
+
+    case widgetDateIndex:
+    {
+        delete mDateLabel;
+        mDateLabel = NULL;
+        break;
+    }
+
+    case widgetTimeIndex:
+    {
+        delete mDateLabel;
+        mDateLabel = NULL;
+        break;
+    }
+
+    case widgetSizeIndex:
+    {
+        delete mSizeLabel;
+        mSizeLabel = NULL;
+        break;
+    }
+
+    case widgetDescriptionIndex:
+    {
+        delete mDescriptionEditor;
+        mDescriptionEditor = NULL;
+        break;
+    }
+
+    default:
+        break;
+    }
+
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//createItem
+//--------------------------------------------------------------------------------------------------------------------------------------------
+HbAbstractViewItem* GlxDetailsViewItemProtoType::createItem()
+{
+    return new GlxDetailsViewItemProtoType(*this);
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//updateChildItems
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsViewItemProtoType::updateChildItems()
+{
+
+    switch (modelIndex().row()) {
+
+    case widgetNameIndex:
+    {
+        //create the editor
+        mImageNameEditor = new GlxDetailsTextEdit(this);        
+        mImageNameEditor->setMaxRows(1);
+        
+        //retrieve the name from the model
+        QString nameString(GLX_DETAILS_NAME);
+        QVariant nameData = modelIndex().data(GlxUriRole).toString();
+        if (nameData.isValid()) {
+            if (nameData.canConvert<QString> ()) {
+                nameString.append(nameData.toString());
+            }
+        }
+        mImageNameEditor->setItemText(nameString);
+
+        //Get the sub state of the details view
+        int substate = modelIndex().data(GlxSubStateRole).toInt();
+        if (substate != IMAGEVIEWER_DETAIL_S) {
+            connect(mImageNameEditor, SIGNAL(editorTapped()), this, SLOT(forwardSignalsToView()));
+        }
+        else {
+            mImageNameEditor->setTextItemReadOnly(TRUE);
+        }
+
+        //Connect the Signals
+        const QAbstractItemModel *model = (modelIndex().model());
+        connect(model, SIGNAL(updateCustomWidgets()), this, SLOT(updateWidgetValues()));
+
+        //Add the Layout
+        QGraphicsLinearLayout *widgetLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
+        widgetLayout->setContentsMargins(CONTENTMARGINS,CONTENTMARGINS,CONTENTMARGINS,CONTENTMARGINS);
+        widgetLayout->addItem(mImageNameEditor);
+        setLayout(widgetLayout);
+        break;
+    }
+
+    case widgetDateIndex:
+    {
+        //retrieve the date from the model
+        QString dateString;
+        QVariant dateData = modelIndex().data(GlxDateRole).toString();    
+        if (dateData.isValid()) {
+            if (dateData.canConvert<QString> ()) {
+                dateString = dateData.toString();
+            }
+        }
+        
+        //create the label and set the data
+        mDateLabel = new HbLabel(this);
+        mDateLabel->setPlainText(dateString);
+        mDateLabel->setMinimumHeight(size().height() + 50);
+        
+        QGraphicsLinearLayout *widgetLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
+        widgetLayout->setContentsMargins(CONTENTMARGINS, CONTENTMARGINS, CONTENTMARGINS, CONTENTMARGINS);
+        widgetLayout->addItem(mDateLabel);        
+        setLayout(widgetLayout);
+        break;
+
+    }
+    case widgetTimeIndex:
+    {
+        //retrieve the time from the model
+        QString timeString;
+        QVariant timeData = modelIndex().data(GlxTimeRole).toString();
+        if (timeData.isValid()) {
+            if (timeData.canConvert<QString> ()) {
+                timeString = timeData.toString();
+            }
+        }
+
+        //create the label and set the data
+        mTimeLabel = new HbLabel(this);
+        mTimeLabel->setPlainText(timeString);
+        mTimeLabel->setMinimumHeight(size().height() + 50);
+        
+        //Add the Layout
+        QGraphicsLinearLayout *widgetLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
+        widgetLayout->setContentsMargins(CONTENTMARGINS, CONTENTMARGINS, CONTENTMARGINS, CONTENTMARGINS);
+        widgetLayout->addItem(mTimeLabel);
+        setLayout(widgetLayout);
+        break;
+    }
+
+    case widgetSizeIndex:
+    {
+        //retrieve the size from the model
+        QString sizeString;
+        QVariant sizeData = modelIndex().data(GlxSizeRole).toString();
+        if (sizeData.isValid()) {
+            if (sizeData.canConvert<QString> ()) {
+                sizeString = sizeData.toString();
+            }
+        }
+
+        //create the label and set the data
+        mSizeLabel = new HbLabel(this);
+        mSizeLabel->setPlainText(sizeString);
+        mSizeLabel->setMinimumHeight(size().height() + 50);
+                
+        //Add the Layout
+        QGraphicsLinearLayout *widgetLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);     
+        widgetLayout->setContentsMargins(CONTENTMARGINS, CONTENTMARGINS, CONTENTMARGINS, CONTENTMARGINS);
+        widgetLayout->addItem(mSizeLabel);
+        setLayout(widgetLayout);
+        break;
+    }
+
+    case widgetDescriptionIndex:
+    {
+        //create the editor
+        mDescriptionEditor = new GlxDetailsTextEdit(this);              
+        mDescriptionEditor->setMaxRows(5);
+        
+        //retrieve the size from the model
+        QString descString(GLX_DETAILS_DESCRIPTION);
+        QVariant descData = modelIndex().data(GlxDescRole).toString();
+        if (descData.isValid()) {
+            if (descData.canConvert<QString> ()) {
+                descString.append(descData.toString());
+            }
+        }
+        mDescriptionEditor->setItemText(descString);
+
+        //Get the sub state of the details view
+        int substate = modelIndex().data(GlxSubStateRole).toInt();
+        if (substate != IMAGEVIEWER_DETAIL_S) {
+            connect(mDescriptionEditor, SIGNAL(editorTapped()), this, SLOT(forwardSignalsToView()));
+        }
+        else {
+            mDescriptionEditor->setTextItemReadOnly(TRUE);
+        }
+
+        //Connect the Signals
+        const QAbstractItemModel *model = (modelIndex().model());
+        connect(model, SIGNAL(updateCustomWidgets()), this, SLOT(updateWidgetValues()));
+        
+        //Add the Layout
+        QGraphicsLinearLayout *widgetLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
+        widgetLayout->setContentsMargins(CONTENTMARGINS,CONTENTMARGINS,CONTENTMARGINS,CONTENTMARGINS);
+        widgetLayout->addItem(mDescriptionEditor);
+        setLayout(widgetLayout);
+        break;
+    }
+
+    default:
+        break;
+    }
+
+    HbListViewItem::updateChildItems();
+
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//forwardSignalsToView
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsViewItemProtoType::forwardSignalsToView()
+{
+    int widgetIndex = modelIndex().row();
+    emit static_cast<GlxDetailsViewItemProtoType*> (prototype())->signalFromCustomWidget(
+        widgetIndex);
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//updateWidgetValues
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsViewItemProtoType::updateWidgetValues()
+{
+    int widgetIndex = modelIndex().row();
+    if (widgetIndex == GlxDetailsViewItemProtoType::widgetNameIndex) {
+
+        QString nameString(GLX_DETAILS_NAME);
+        QVariant nameData = modelIndex().data(GlxUriRole).toString();
+
+        if (nameData.isValid()) {
+            if (nameData.canConvert<QString> ()) {
+                nameString.append(nameData.toString());
+            }
+        }
+        mImageNameEditor->setItemText(nameString);
+    }
+    else {
+        QString descString(GLX_DETAILS_DESCRIPTION);
+        QVariant descData = modelIndex().data(GlxDescRole).toString();
+
+        if (descData.isValid()) {
+            if (descData.canConvert<QString> ()) {
+                descString.append(descData.toString());
+            }
+        }
+        mDescriptionEditor->setItemText(descString);
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/src/glxdetailsviewmodelwrapper.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   ?Description
+ *
+ */
+
+//Includes
+#include <QDebug>
+#include <QModelIndex>
+#include <qdatetime.h>
+#include <hbparameterlengthlimiter.h>
+
+//User Includes
+#include "glxmodelroles.h"  //Contains the declaration of the roles used to retrieve the data from model
+#include "glxlocalisationstrings.h" //contains the localisation strings
+#include "glxdetailsviewmodelwrapper.h" //contains the declaration of this file/class
+//Constants
+const int KBytesInKB = 1024;
+const int KBytesInMB = 1024 * 1024;
+const int KBytesInGB = 1024 * 1024 * 1024;
+const int TOTAL_NO_FIELDS_LIST = 5;
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//GlxDetailsViewModelWrapper
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsViewModelWrapper::GlxDetailsViewModelWrapper(QAbstractItemModel *model) :
+    mModel(model)
+{
+
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//~GlxDetailsViewModelWrapper
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsViewModelWrapper::~GlxDetailsViewModelWrapper()
+{
+
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//rowCount
+//--------------------------------------------------------------------------------------------------------------------------------------------
+int GlxDetailsViewModelWrapper::rowCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent);
+    return TOTAL_NO_FIELDS_LIST;
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//columnCount
+//--------------------------------------------------------------------------------------------------------------------------------------------
+int GlxDetailsViewModelWrapper::columnCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent);
+    return 1;
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//parent
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QModelIndex GlxDetailsViewModelWrapper::parent(const QModelIndex &child) const
+{
+    Q_UNUSED(child);
+
+    //returns always invalid model index
+    return QModelIndex();
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//data
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QVariant GlxDetailsViewModelWrapper::data(const QModelIndex &index, int role) const
+{
+    int rowIndex = index.row();
+
+    qDebug
+        ("GlxDetailsViewModelWrapper::data index %d role %d", rowIndex, role);
+
+    if ((!index.isValid()) || (rowIndex >= rowCount())) {
+        return QVariant();
+    }
+
+    switch (role) {
+
+    case GlxUriRole:
+    {
+        QString imageName = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
+            GlxFocusIndexRole).toInt(), 0), GlxImageTitle)).toString();
+        return imageName;
+    }
+
+    case GlxDateRole:
+    {
+        QString datestring;
+        QString dateFormat("dd.MM.yyyy");
+        QDate date = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
+            GlxFocusIndexRole).toInt(), 0), GlxDateRole)).value<QDate> ();
+
+        if (date.isNull() == FALSE) {
+
+            QString dateStringValue = date.toString(dateFormat);
+            datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue);
+        }
+        return datestring;
+    }
+
+    case GlxTimeRole:
+    {
+        QString timestring;
+        QString timeFormat("h:m ap");
+        QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
+            GlxFocusIndexRole).toInt(), 0), GlxTimeRole)).value<QTime> ();
+
+        if (timevalue.isNull() == FALSE) {
+            QString timeStringValue = timevalue.toString(timeFormat);
+            timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
+        }
+        return timestring;
+    }
+
+    case GlxSizeRole:
+    {
+        int size = 0;
+        QString sizeString;
+        size = (mModel->data(mModel->index(
+            mModel->data(mModel->index(0, 0), GlxFocusIndexRole).toInt(), 0), GlxSizeRole)).toInt();
+
+        sizeString = sizeinStrings(size);
+
+        return sizeString;
+    }
+
+    case GlxDescRole:
+    {
+        QString description = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
+            GlxFocusIndexRole).toInt(), 0), GlxDescRole)).toString();
+
+        return description;
+    }
+
+    case GlxSubStateRole:
+    {
+        int substate = 0;
+
+        if (mModel) {
+            QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole);
+
+            if (variant.isValid() && variant.canConvert<int> ()) {
+                substate = variant.value<int> ();
+            }
+        }
+        return substate;
+    }
+
+    default:
+        return QVariant();
+    }
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//index
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QModelIndex GlxDetailsViewModelWrapper::index(int row, int column, const QModelIndex & /*parent*/) const
+{
+    //Q_UNUSED(parent)
+    qDebug
+        (" GlxDetailsViewModelWrapper::index row index %d column index %d", row, column);
+
+    if ((row < 0) || (row >= rowCount()) || (column < 0) || (column >= columnCount())) {
+        return QModelIndex();
+    }
+
+    return QAbstractItemModel::createIndex(row, column);
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//refreshCustomWidget
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsViewModelWrapper::refreshCustomWidget()
+{
+    emit updateCustomWidgets();
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//sizeinStrings
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QString GlxDetailsViewModelWrapper::sizeinStrings(int size) const
+{
+    QString sizeString;
+    if (size >= KBytesInGB) {
+        int gbSize = size / KBytesInGB; // Size in GB
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize);
+    }
+    else if (size >= KBytesInMB) {
+        int mbSize = size / KBytesInMB; // Size in MB
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize);
+    }
+    else if (size >= KBytesInKB) {
+        int kbSize = size / KBytesInKB; // Size in KB
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize);
+    }
+    else {
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size);
+    }
+    return sizeString;
+}
--- a/ui/views/docloaders/src/glxviewdocloader.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/docloaders/src/glxviewdocloader.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -107,26 +107,7 @@
 QObject* GlxDetailsViewDocLoader::createObject(const QString &type, const QString &name)
     {
     qDebug() <<"GlxDetailsViewDocLoader::createObject -->";
-
-
-    if (GLX_DETAILSVIEW_IMGNAME == name)
-        {
-        qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_IMGNAME -->";
-
-        QObject *object = new GlxDetailsTextEdit();
-        object->setObjectName(name);
-        return object;
-        }
-    
-    if (GLX_DETAILSVIEW_DESCRPTIONTEXT == name)
-        {
-        qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_DESCRPTIONTEXT -->";
-
-        QObject *object = new GlxDetailsTextEdit();
-        object->setObjectName(name);
-        return object;
-        }
-    
+   
     if (GLX_DETAILSVIEW_FAVICON == name)
         {
         qDebug() << "GlxDetailsViewDocLoader::createObject:ICON -->";
--- a/ui/views/fullscreenview/inc/glxcoverflow.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h	Fri Sep 17 08:29:24 2010 +0300
@@ -335,6 +335,20 @@
      * @return - return the uri of the image.
      */
     QString getUri( int index );
+
+    /**
+     * getImageDimension - To get the dimension of the image.
+     * @param - image index.
+     * @return - return the dimension of the image.
+     */    
+    QSize getImageDimension( int index );
+    
+    /**
+     * getImageSize() - To get the image size.
+     * @param - image index.
+     * @return - return the size of the image.
+     */
+    int getImageSize( int index ); 
     
     /**
      * isAnimatedImage() - To get the GIF file info of the image
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -34,6 +34,8 @@
 #define GLX_COVERFLOW_SPEED  32
 #define GLX_BOUNCEBACK_SPEED 16
 #define GLX_BOUNCEBACK_DELTA 8
+#define MAX_GIF_DIMENSION    640
+const int KBytesInMB = 1024 * 1024;
 
 GlxCoverFlow::GlxCoverFlow( QGraphicsItem *parent ) 
      : HbWidget( parent ), 
@@ -76,6 +78,7 @@
         mIconItem[i]->setBrush( QBrush( Qt::black ) );
         mIconItem[i]->setSize( QSize( 0, 0 ) );
         mIconItem[i]->setAlignment( Qt::AlignCenter );
+        mIconItem[i]->setIconScaling( false );
         mIconItem[i]->setObjectName( QString( "Cover%1" ).arg( i ) );
     }
     
@@ -199,7 +202,6 @@
         index = calculateIndex( mSelIndex + i - 2 );
         if ( index == startIndex.row() ) {
             index = ( mSelItemIndex + i - 2 + NBR_ICON_ITEM ) % NBR_ICON_ITEM;
-            qDebug("GlxCoverFlow::dataChanged index = %d mSelItemIndex = %d ", index, mSelItemIndex );
             mIconItem[ index ]->setIcon( getIcon( startIndex.row() ) );
             if ( index == mSelItemIndex ) {
                 playAnimation( );
@@ -614,6 +616,25 @@
     return QString();
 }
 
+QSize GlxCoverFlow::getImageDimension( int index )
+{
+    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxDimensionsRole );
+    if ( variant.isValid() && variant.canConvert< QSize > () ){
+        return variant.value< QSize > () ;
+    }
+    return QSize();    
+}
+
+int GlxCoverFlow::getImageSize( int index )
+{
+    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxSizeRole );
+    if ( variant.isValid() && variant.canConvert< int > () ){
+        return variant.value< int > () ;
+    }
+    return 0;     
+}
+
+
 bool GlxCoverFlow::isAnimatedImage( int index )
 {
     int frameCount = 0;
@@ -621,5 +642,14 @@
     if ( variant.isValid() && variant.canConvert< int > () ) {
          frameCount = variant.value< int > () ;
     }
-    return frameCount > 1 ? true : false ;
+    
+    if ( frameCount > 1 ) {
+        int size = getImageSize( index );
+        QSize dimn = getImageDimension( index );
+        
+        if ( size <=  KBytesInMB  && dimn.width() <= MAX_GIF_DIMENSION && dimn.height() <= MAX_GIF_DIMENSION  ) {
+            return true;
+        }
+    }
+    return false ;
 }
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -74,8 +74,8 @@
     
     HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) );
     HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) );
-    HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) );
-    HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) );
+    HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.fxml" ), QString( "SelectShow" ) );
     HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
     HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
     
@@ -742,6 +742,7 @@
 	if( mCoverFlow && mZoomWidget ) {
 		disconnect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) );
 		disconnect(mZoomWidget,SIGNAL( zoomWidgetMovedBackground(int) ), mCoverFlow, SLOT( zoomFinished(int) ) );
+        disconnect( mCoverFlow, SIGNAL( doubleTapEventReceived( QPointF ) ), mZoomWidget, SLOT( animateZoomIn( QPointF ) ) );
 	}
     
 	disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
@@ -783,8 +784,8 @@
     
     HbEffect::remove( QString("HbGridView"), QString(":/data/transitionup.fxml"), QString( "TapShow" ));
     HbEffect::remove( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" ));
-    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) );
-    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.fxml" ), QString( "SelectShow" ) );
     HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
     HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
         
@@ -803,6 +804,7 @@
             mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 );
             mIconItems[ i ]->setPos( 0, 0 );
             mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+            mIconItems[ i ]->setIconScaling( false );
         }        
     }
 }
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -75,6 +75,7 @@
     mBackGroundItem->setBrush( QBrush( Qt::black ) );
     mAnimItem = new HbIconItem( this );
     mAnimItem->setAlignment( Qt::AlignCenter );
+    mAnimItem->setIconScaling( false );
     
     // Now load the view and the contents.
     // and then set the play icon to the button
@@ -87,6 +88,7 @@
         mSelIndex[ i ] = -1;
         mIconItems[ i ] = new HbIconItem( this );
         mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+        mIconItems[ i ]->setIconScaling( false );
         mIconItems[ i ]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) );
     }    
     
--- a/ui/views/views.pro	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/views/views.pro	Fri Sep 17 08:29:24 2010 +0300
@@ -69,6 +69,8 @@
            fullscreenview/inc/glxcoverflow.h \
            fullscreenview/inc/glxfullscreenview.h \
            detailsview/inc/glxdetailsview.h  \
+           detailsview/inc/glxdetailsviewitemprototype.h \
+           detailsview/inc/glxdetailsviewmodelwrapper.h \
            gridview/inc/glxgridview.h \
            slideshowsettingsview/inc/glxslideshowsettingsview.h \
            listview/inc/glxlistview.h \
@@ -80,7 +82,9 @@
 SOURCES += viewbase/src/glxview.cpp \
            fullscreenview/src/glxcoverflow.cpp \
            fullscreenview/src/glxfullscreenview.cpp \
-	   detailsview/src/glxdetailsview.cpp \
+	   	   detailsview/src/glxdetailsview.cpp \
+	   	   detailsview/src/glxdetailsviewitemprototype.cpp \
+	   	   detailsview/src/glxdetailsviewmodelwrapper.cpp \
            gridview/src/glxgridview.cpp \
            slideshowsettingsview/src/glxslideshowsettingsview.cpp \
            listview/src/glxlistview.cpp \
--- a/ui/widgets/bwins/glxzoomwidgetu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/widgets/bwins/glxzoomwidgetu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -10,37 +10,38 @@
 	?tr@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *, int)
 	?sceneEvent@GlxZoomWidget@@MAE_NPAVQEvent@@@Z @ 10 NONAME ; bool GlxZoomWidget::sceneEvent(class QEvent *)
 	?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
-	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 13 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
-	?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 14 NONAME ; void GlxZoomWidget::animateDoubleTap(void)
-	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 15 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
-	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 16 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
-	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 17 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
-	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 18 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
-	?activate@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::activate(void)
-	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
-	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 21 NONAME ; void GlxZoomWidget::indexChanged(int)
-	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 22 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
-	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
-	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 24 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
-	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 25 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
-	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 27 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
-	?indexChanged@GlxZoomWidget@@QAEXXZ @ 28 NONAME ; void GlxZoomWidget::indexChanged(void)
-	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 29 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
-	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 30 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
-	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 31 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
-	?stepZoom@GlxZoomWidget@@IAEXXZ @ 32 NONAME ; void GlxZoomWidget::stepZoom(void)
-	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 33 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
-	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 34 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
-	??_EGlxZoomWidget@@UAE@I@Z @ 35 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
-	??1GlxZoomWidget@@UAE@XZ @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
-	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 37 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
-	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 38 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
-	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::setZoomParams(void)
-	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 40 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
-	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 41 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
-	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 42 NONAME ; void GlxZoomWidget::modelDestroyed(void)
-	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
+	?resetDecoder@GlxZoomWidget@@AAEXXZ @ 12 NONAME ; void GlxZoomWidget::resetDecoder(void)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
+	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 14 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
+	?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 15 NONAME ; void GlxZoomWidget::animateDoubleTap(void)
+	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 16 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
+	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 17 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
+	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 18 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
+	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 19 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
+	?activate@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::activate(void)
+	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 21 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
+	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 22 NONAME ; void GlxZoomWidget::indexChanged(int)
+	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 23 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
+	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
+	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 25 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
+	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 26 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
+	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 28 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
+	?indexChanged@GlxZoomWidget@@QAEXXZ @ 29 NONAME ; void GlxZoomWidget::indexChanged(void)
+	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 30 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
+	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 31 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
+	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 32 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
+	?stepZoom@GlxZoomWidget@@IAEXXZ @ 33 NONAME ; void GlxZoomWidget::stepZoom(void)
+	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 34 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
+	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 35 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
+	??_EGlxZoomWidget@@UAE@I@Z @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
+	??1GlxZoomWidget@@UAE@XZ @ 37 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
+	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 38 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
+	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 39 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
+	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 40 NONAME ; void GlxZoomWidget::setZoomParams(void)
+	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 41 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
+	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 42 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
+	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 43 NONAME ; void GlxZoomWidget::modelDestroyed(void)
+	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
 
--- a/ui/widgets/eabi/glxzoomwidgetu.def	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/widgets/eabi/glxzoomwidgetu.def	Fri Sep 17 08:29:24 2010 +0300
@@ -6,47 +6,48 @@
 	_ZN13GlxZoomWidget11qt_metacastEPKc @ 5 NONAME
 	_ZN13GlxZoomWidget12indexChangedEi @ 6 NONAME
 	_ZN13GlxZoomWidget12indexChangedEv @ 7 NONAME
-	_ZN13GlxZoomWidget13animateZoomInE7QPointF @ 8 NONAME
-	_ZN13GlxZoomWidget13setWindowSizeE5QSize @ 9 NONAME
-	_ZN13GlxZoomWidget13setZoomParamsEv @ 10 NONAME
-	_ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 11 NONAME
-	_ZN13GlxZoomWidget14modelDestroyedEv @ 12 NONAME
-	_ZN13GlxZoomWidget15getFocusedImageEv @ 13 NONAME
-	_ZN13GlxZoomWidget15setMinMaxZValueEii @ 14 NONAME
-	_ZN13GlxZoomWidget16animateDoubleTapEv @ 15 NONAME
-	_ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 16 NONAME
-	_ZN13GlxZoomWidget16staticMetaObjectE @ 17 NONAME DATA 16
-	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 18 NONAME
-	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 19 NONAME
-	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 20 NONAME
-	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 21 NONAME
-	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 22 NONAME
-	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 23 NONAME
-	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 24 NONAME
-	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 25 NONAME
-	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 26 NONAME
-	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 27 NONAME
-	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 28 NONAME
-	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 29 NONAME
-	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 30 NONAME
-	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 31 NONAME
-	_ZN13GlxZoomWidget7cleanUpEv @ 32 NONAME
-	_ZN13GlxZoomWidget8activateEv @ 33 NONAME
-	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 34 NONAME
-	_ZN13GlxZoomWidget8stepZoomEv @ 35 NONAME
-	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 36 NONAME
-	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 37 NONAME
-	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 38 NONAME
-	_ZN13GlxZoomWidgetD0Ev @ 39 NONAME
-	_ZN13GlxZoomWidgetD1Ev @ 40 NONAME
-	_ZN13GlxZoomWidgetD2Ev @ 41 NONAME
-	_ZNK13GlxZoomWidget10metaObjectEv @ 42 NONAME
-	_ZTI13GlxZoomWidget @ 43 NONAME
-	_ZTV13GlxZoomWidget @ 44 NONAME
-	_ZThn16_N13GlxZoomWidgetD0Ev @ 45 NONAME
-	_ZThn16_N13GlxZoomWidgetD1Ev @ 46 NONAME
-	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 47 NONAME
-	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 48 NONAME
-	_ZThn8_N13GlxZoomWidgetD0Ev @ 49 NONAME
-	_ZThn8_N13GlxZoomWidgetD1Ev @ 50 NONAME
+	_ZN13GlxZoomWidget12resetDecoderEv @ 8 NONAME
+	_ZN13GlxZoomWidget13animateZoomInE7QPointF @ 9 NONAME
+	_ZN13GlxZoomWidget13setWindowSizeE5QSize @ 10 NONAME
+	_ZN13GlxZoomWidget13setZoomParamsEv @ 11 NONAME
+	_ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 12 NONAME
+	_ZN13GlxZoomWidget14modelDestroyedEv @ 13 NONAME
+	_ZN13GlxZoomWidget15getFocusedImageEv @ 14 NONAME
+	_ZN13GlxZoomWidget15setMinMaxZValueEii @ 15 NONAME
+	_ZN13GlxZoomWidget16animateDoubleTapEv @ 16 NONAME
+	_ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 17 NONAME
+	_ZN13GlxZoomWidget16staticMetaObjectE @ 18 NONAME DATA 16
+	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 19 NONAME
+	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 20 NONAME
+	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 21 NONAME
+	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 22 NONAME
+	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 23 NONAME
+	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 24 NONAME
+	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 25 NONAME
+	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 26 NONAME
+	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 27 NONAME
+	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 28 NONAME
+	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 29 NONAME
+	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 30 NONAME
+	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 31 NONAME
+	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 32 NONAME
+	_ZN13GlxZoomWidget7cleanUpEv @ 33 NONAME
+	_ZN13GlxZoomWidget8activateEv @ 34 NONAME
+	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 35 NONAME
+	_ZN13GlxZoomWidget8stepZoomEv @ 36 NONAME
+	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 37 NONAME
+	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 38 NONAME
+	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 39 NONAME
+	_ZN13GlxZoomWidgetD0Ev @ 40 NONAME
+	_ZN13GlxZoomWidgetD1Ev @ 41 NONAME
+	_ZN13GlxZoomWidgetD2Ev @ 42 NONAME
+	_ZNK13GlxZoomWidget10metaObjectEv @ 43 NONAME
+	_ZTI13GlxZoomWidget @ 44 NONAME
+	_ZTV13GlxZoomWidget @ 45 NONAME
+	_ZThn16_N13GlxZoomWidgetD0Ev @ 46 NONAME
+	_ZThn16_N13GlxZoomWidgetD1Ev @ 47 NONAME
+	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 48 NONAME
+	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 49 NONAME
+	_ZThn8_N13GlxZoomWidgetD0Ev @ 50 NONAME
+	_ZThn8_N13GlxZoomWidgetD1Ev @ 51 NONAME
 
--- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Fri Sep 17 08:29:24 2010 +0300
@@ -101,6 +101,8 @@
     void setZoomParams();
 
     bool isFocussedItemCorrupt();
+    //Reset the decoder and the associated flags
+    void resetDecoder();
     //data members
 private:
     //to be in sync with the model
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Thu Sep 02 20:26:45 2010 +0300
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Fri Sep 17 08:29:24 2010 +0300
@@ -66,8 +66,7 @@
 
 GlxZoomWidget::~GlxZoomWidget()
 {
-    //disconnect all existing signals
-    disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) );
+   
     //AA
     disconnect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap()));
     //no Null checks required
@@ -76,10 +75,16 @@
     delete mBlackBackgroundItem;
     //reset the decoder to cancel pending tasks
     if(mImageDecoder) {
-        mImageDecoder->resetDecoder();
+        resetDecoder();
         delete mImageDecoder;
     }
 }
+void GlxZoomWidget::resetDecoder()
+{
+        mImageDecoder->resetDecoder();
+        mImageDecodeRequestSend = false;
+        mDecodedImageAvailable = false;
+}
 
 void GlxZoomWidget::setModel (QAbstractItemModel *model)
 {
@@ -113,7 +118,7 @@
     emit zoomWidgetMovedBackground(mFocusIndex);
     //this actually resets the ZoomWidget and decoder
     if(mImageDecoder) {
-        mImageDecoder->resetDecoder();
+        resetDecoder();
     }
     retreiveFocusedImage();
 
@@ -122,22 +127,21 @@
 void GlxZoomWidget::indexChanged(int index)
 {
     if(mFocusIndex != index) {
-        mImageDecoder->resetDecoder();//reset the decoder first to cancel pending tasks
-        mImageDecodeRequestSend = false;
-        mDecodedImageAvailable = false;
+        resetDecoder();          //reset the decoder first to cancel pending tasks
         retreiveFocusedImage();  //Update mZoomItem with focused Image
     }
 }
 
 void GlxZoomWidget::cleanUp()
 {
+    disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) );
     if(mModel) {
         disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
         disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
         mModel = NULL;
     }
     if(mImageDecoder) {
-        mImageDecoder->resetDecoder();
+        resetDecoder();
     }
     mZoomItem->setPixmap(QPixmap());
 }
@@ -222,11 +226,14 @@
        if (pinchG->state() == Qt::GestureStarted) {
            emit pinchGestureReceived(mFocusIndex);
            //bring the zoom widget to foreground
+           if(zValue()!=mMaxZValue)
+           {
             setZValue(mMaxZValue);
             //show the black background
             mBlackBackgroundItem->setParentItem(parentItem());
             mBlackBackgroundItem->setZValue(mMaxZValue - 1);
             mBlackBackgroundItem->show();
+           }
        }
 
        if (pinchG->state() == Qt::GestureFinished) {