Revision: 201025
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:10:28 +0300
changeset 31 8db05346071b
parent 30 96df3ab41000
child 32 9bd2e0ffe298
child 35 59575560d1e6
Revision: 201025 Kit: 2010127
locationdataharvester/bwins/geocodeupdateu.def
locationdataharvester/bwins/maptileserviceu.def
locationdataharvester/eabi/geocodeupdateu.def
locationdataharvester/eabi/maptileserviceu.def
locationdataharvester/geocodeupdate/inc/geocodeupdate.h
locationdataharvester/geocodeupdate/src/geocodeupdate.cpp
locationdataharvester/inc/mylocationsdefines.h
locationdataharvester/locationdatalookupdb/locationdatalookupdb.cpp
locationdataharvester/maptileservice/inc/maptiledblookuptable.h
locationdataharvester/maptileservice/inc/maptileservice.h
locationdataharvester/maptileservice/src/maptileservice.cpp
locationdataharvester/mylocationsengine/conf/maptilestatuspublisher.qcrml
locationdataharvester/mylocationsengine/inc/mylocationsengine.h
locationdataharvester/mylocationsengine/src/lookupmaptiledb.cpp
locationdataharvester/mylocationsengine/src/maptileinterface.cpp
locationdataharvester/mylocationsengine/src/mylocationsengine.cpp
locationpickerservice/inc/hgwidgetdatamodel.h
locationpickerservice/inc/locationpickerappwindow.h
locationpickerservice/inc/locationpickercollectioncontent.h
locationpickerservice/inc/locationpickercollectionlistcontent.h
locationpickerservice/inc/locationpickercontent.h
locationpickerservice/inc/locationpickerdatamanager.h
locationpickerservice/inc/locationpickerdatamanager_p.h
locationpickerservice/inc/locationpickerlandscapeview.h
locationpickerservice/inc/locationpickerpotraitview.h
locationpickerservice/inc/locationpickerproxymodel.h
locationpickerservice/inc/locationpickersearchview.h
locationpickerservice/inc/locationpickertypes.h
locationpickerservice/inc/locationpickerview.h
locationpickerservice/locationpickerservice.pro
locationpickerservice/resources/location.hgmediawall.css
locationpickerservice/resources/location.hgmediawall.widgetml
locationpickerservice/resources/locationpicker.qrc
locationpickerservice/resources/locationpickerlandscape.docml
locationpickerservice/resources/locationpickerpotrait.docml
locationpickerservice/resources/locationpickerview.docml
locationpickerservice/resources/popupdialog.docml
locationpickerservice/src/hgwidgetdatamodel.cpp
locationpickerservice/src/locationpickerappwindow.cpp
locationpickerservice/src/locationpickercollectioncontent.cpp
locationpickerservice/src/locationpickercollectionlistcontent.cpp
locationpickerservice/src/locationpickercontent.cpp
locationpickerservice/src/locationpickerdatamanager.cpp
locationpickerservice/src/locationpickerdatamanager_p.cpp
locationpickerservice/src/locationpickerdocumentloader.cpp
locationpickerservice/src/locationpickerlandscapeview.cpp
locationpickerservice/src/locationpickerpotraitview.cpp
locationpickerservice/src/locationpickerproxymodel.cpp
locationpickerservice/src/locationpickersearchview.cpp
locationpickerservice/src/locationpickerservice.cpp
locationpickerservice/src/locationpickerview.cpp
--- a/locationdataharvester/bwins/geocodeupdateu.def	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/bwins/geocodeupdateu.def	Tue Jul 06 14:10:28 2010 +0300
@@ -6,7 +6,7 @@
 	??1GeocodeUpdate@@UAE@XZ @ 5 NONAME ; GeocodeUpdate::~GeocodeUpdate(void)
 	?getStaticMetaObject@GeocodeUpdate@@SAABUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const & GeocodeUpdate::getStaticMetaObject(void)
 	?updateGeocodeToContactDB@GeocodeUpdate@@QAE_NIHNN@Z @ 7 NONAME ; bool GeocodeUpdate::updateGeocodeToContactDB(unsigned int, int, double, double)
-	?updateGeocodeToCalenderDB@GeocodeUpdate@@QAE_NKNN@Z @ 8 NONAME ; bool GeocodeUpdate::updateGeocodeToCalenderDB(unsigned long, double, double)
+	?updateGeocodeToCalenderDB@GeocodeUpdate@@QAE_NABKABN1@Z @ 8 NONAME ; bool GeocodeUpdate::updateGeocodeToCalenderDB(unsigned long const &, double const &, double const &)
 	??0GeocodeUpdate@@QAE@XZ @ 9 NONAME ; GeocodeUpdate::GeocodeUpdate(void)
 	?qt_metacall@GeocodeUpdate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10 NONAME ; int GeocodeUpdate::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?eventCompleted@GeocodeUpdate@@IAEXXZ @ 11 NONAME ; void GeocodeUpdate::eventCompleted(void)
@@ -16,4 +16,5 @@
 	?metaObject@GeocodeUpdate@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GeocodeUpdate::metaObject(void) const
 	?agendautilInstanceCreated@GeocodeUpdate@@AAEXH@Z @ 16 NONAME ; void GeocodeUpdate::agendautilInstanceCreated(int)
 	?qt_metacast@GeocodeUpdate@@UAEPAXPBD@Z @ 17 NONAME ; void * GeocodeUpdate::qt_metacast(char const *)
+	?isGeocodeNotAvailable@GeocodeUpdate@@QAE_NABK@Z @ 18 NONAME ; bool GeocodeUpdate::isGeocodeNotAvailable(unsigned long const &)
 
--- a/locationdataharvester/bwins/maptileserviceu.def	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/bwins/maptileserviceu.def	Tue Jul 06 14:10:28 2010 +0300
@@ -8,7 +8,7 @@
 	?trUtf8@MapTileService@@SA?AVQString@@PBD0H@Z @ 7 NONAME ; class QString MapTileService::trUtf8(char const *, char const *, int)
 	??1MapTileService@@UAE@XZ @ 8 NONAME ; MapTileService::~MapTileService(void)
 	??0MapTileService@@QAE@XZ @ 9 NONAME ; MapTileService::MapTileService(void)
-	?getMapTileImage@MapTileService@@QAEHHW4AddressType@1@AAVQString@@@Z @ 10 NONAME ; int MapTileService::getMapTileImage(int, enum MapTileService::AddressType, class QString &)
+	?getMapTileImage@MapTileService@@QAEHHW4AddressType@1@AAVQString@@V?$QFlags@W4Orientation@Qt@@@@@Z @ 10 NONAME ; int MapTileService::getMapTileImage(int, enum MapTileService::AddressType, class QString &, class QFlags<enum Qt::Orientation>)
 	?metaObject@MapTileService@@UBEPBUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const * MapTileService::metaObject(void) const
 	?setMaptileStatus@MapTileService@@QAEXXZ @ 12 NONAME ; void MapTileService::setMaptileStatus(void)
 	?tr@MapTileService@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString MapTileService::tr(char const *, char const *, int)
--- a/locationdataharvester/eabi/geocodeupdateu.def	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/eabi/geocodeupdateu.def	Tue Jul 06 14:10:28 2010 +0300
@@ -5,15 +5,16 @@
 	_ZN13GeocodeUpdate15createContactdbEv @ 4 NONAME
 	_ZN13GeocodeUpdate16staticMetaObjectE @ 5 NONAME DATA 16
 	_ZN13GeocodeUpdate19getStaticMetaObjectEv @ 6 NONAME
-	_ZN13GeocodeUpdate24updateGeocodeToContactDBEjidd @ 7 NONAME
-	_ZN13GeocodeUpdate25agendautilInstanceCreatedEi @ 8 NONAME
-	_ZN13GeocodeUpdate25updateGeocodeToCalenderDBEmdd @ 9 NONAME
-	_ZN13GeocodeUpdateC1Ev @ 10 NONAME
-	_ZN13GeocodeUpdateC2Ev @ 11 NONAME
-	_ZN13GeocodeUpdateD0Ev @ 12 NONAME
-	_ZN13GeocodeUpdateD1Ev @ 13 NONAME
-	_ZN13GeocodeUpdateD2Ev @ 14 NONAME
-	_ZNK13GeocodeUpdate10metaObjectEv @ 15 NONAME
-	_ZTI13GeocodeUpdate @ 16 NONAME
-	_ZTV13GeocodeUpdate @ 17 NONAME
+	_ZN13GeocodeUpdate21isGeocodeNotAvailableERKm @ 7 NONAME
+	_ZN13GeocodeUpdate24updateGeocodeToContactDBEjidd @ 8 NONAME
+	_ZN13GeocodeUpdate25agendautilInstanceCreatedEi @ 9 NONAME
+	_ZN13GeocodeUpdate25updateGeocodeToCalenderDBERKmRKdS3_ @ 10 NONAME
+	_ZN13GeocodeUpdateC1Ev @ 11 NONAME
+	_ZN13GeocodeUpdateC2Ev @ 12 NONAME
+	_ZN13GeocodeUpdateD0Ev @ 13 NONAME
+	_ZN13GeocodeUpdateD1Ev @ 14 NONAME
+	_ZN13GeocodeUpdateD2Ev @ 15 NONAME
+	_ZNK13GeocodeUpdate10metaObjectEv @ 16 NONAME
+	_ZTI13GeocodeUpdate @ 17 NONAME
+	_ZTV13GeocodeUpdate @ 18 NONAME
 
--- a/locationdataharvester/eabi/maptileserviceu.def	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/eabi/maptileserviceu.def	Tue Jul 06 14:10:28 2010 +0300
@@ -2,7 +2,7 @@
 	_ZN14MapTileService11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
 	_ZN14MapTileService11qt_metacastEPKc @ 2 NONAME
 	_ZN14MapTileService12publishValueEiNS_11AddressTypeEi @ 3 NONAME
-	_ZN14MapTileService15getMapTileImageEiNS_11AddressTypeER7QString @ 4 NONAME
+	_ZN14MapTileService15getMapTileImageEiNS_11AddressTypeER7QString6QFlagsIN2Qt11OrientationEE @ 4 NONAME
 	_ZN14MapTileService15publishCalEntryEi @ 5 NONAME
 	_ZN14MapTileService16setMaptileStatusEv @ 6 NONAME
 	_ZN14MapTileService16staticMetaObjectE @ 7 NONAME DATA 16
--- a/locationdataharvester/geocodeupdate/inc/geocodeupdate.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/geocodeupdate/inc/geocodeupdate.h	Tue Jul 06 14:10:28 2010 +0300
@@ -28,6 +28,7 @@
 #define GEOCODEUPDATE_EXPORT Q_DECL_IMPORT
 #endif
 
+class AgendaUtil;
 // CLASS DECLARATION
 
 /**
@@ -53,25 +54,41 @@
      * @param addressType contact address type.
      * @param latitude Latitude to be updated.
      * @param longitude longitude to be updated.
+	 * 
+	 * @return Returns true if successfule otherwise false.
      */
 
-      bool updateGeocodeToContactDB(const quint32 contactId,
-            const int addressType, const double latitude,
-            const double longitude);
+    bool updateGeocodeToContactDB(const quint32 contactId, const int addressType,
+        const double latitude, const double longitude);
     /**
      * Request to update latitude and longitude into calender db.    
      * @param calEntryId calender entry unique id
      * @param latitude Latitude to be updated.
      * @param longitude longitude to be updated.
+	 * 
+	 * @return Returns true if successfule otherwise false.
      */
 
-     bool updateGeocodeToCalenderDB(const ulong calEntryId,
-            const double latitude, const double longitude);
+    bool updateGeocodeToCalenderDB(const ulong& calEntryId, const double& latitude,
+        const double& longitude);
+
+    /**
+     * Request to check if geo-cordinate available or not.  
+     * @param calEntryId calender entry unique id
+     * @return true, if available otherwise false.
+     */
+    bool isGeocodeNotAvailable(const ulong& calEntryId);
+
 private slots:
     void agendautilInstanceCreated(int);
+	
 signals:
     void eventCompleted();
+	
+private:
 
+    AgendaUtil *mAgendaUtil;
+    bool mUtilInstanceCreated;
 };
 
 #endif // __GEOCODEUPDATE_H__ 
--- a/locationdataharvester/geocodeupdate/src/geocodeupdate.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/geocodeupdate/src/geocodeupdate.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -1,19 +1,19 @@
 /*
-* Copyright (c) 2010 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) 2010 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 <qcontactgeolocation.h>
 #include <qcontactmanager.h>
@@ -34,9 +34,12 @@
 // ----------------------------------------------------------------------------
 // GeocodeUpdate::GeocodeUpdate()
 // ----------------------------------------------------------------------------
-GeocodeUpdate::GeocodeUpdate()
+GeocodeUpdate::GeocodeUpdate() :
+    mAgendaUtil(NULL), mUtilInstanceCreated(false)
 {
-    
+    mAgendaUtil = new AgendaUtil();
+    connect(mAgendaUtil, SIGNAL(instanceViewCreationCompleted(int)), this,
+        SLOT(agendautilInstanceCreated(int)));
 }
 
 // ----------------------------------------------------------------------------
@@ -45,7 +48,9 @@
 GeocodeUpdate::~GeocodeUpdate()
 {
     __TRACE_CALLSTACK;
-    
+    if (mUtilInstanceCreated) {
+        delete mAgendaUtil;
+    }
 }
 
 // ----------------------------------------------------------------------------
@@ -63,9 +68,8 @@
 // CGeocodeUpdate::updateGeocodeToContactDB()
 // Geo-cordinate updation to contact db  
 // ----------------------------------------------------------------------------
-bool GeocodeUpdate::updateGeocodeToContactDB(const quint32 contactId,
-        const int addressType, const double latitude,
-        const double longitude)
+bool GeocodeUpdate::updateGeocodeToContactDB(const quint32 contactId, const int addressType,
+    const double latitude, const double longitude)
 
 {
     __TRACE_CALLSTACK;
@@ -75,11 +79,10 @@
     MYLOCLOGSTRING("contactManger object created .");
 
     MYLOCLOGSTRING("contactManger object is not null .");
-    QContact contact = contactManger->contact( contactId );
+    QContact contact = contactManger->contact(contactId);
     QContactGeoLocation location;
 
-    switch (addressType)
-    {
+    switch (addressType) {
         case ESourceContactsPref:
         {
             break;
@@ -96,14 +99,14 @@
         }
         default:
         {
-            return false;       
+            return false;
         }
     }
     location.setLongitude(longitude);
     location.setLatitude(latitude);
     contact.saveDetail(&location);
-    bool ret=false;
-    ret=contactManger->saveContact(&contact);
+    bool ret = false;
+    ret = contactManger->saveContact(&contact);
     delete contactManger;
     return ret;
 }
@@ -112,30 +115,49 @@
 // CGeocodeUpdate::updateGeocodeToCalenderDB()
 // Geo-cordinate updation to contact db  
 // ----------------------------------------------------------------------------
-bool GeocodeUpdate::updateGeocodeToCalenderDB(const ulong calEntryId,
-        const double latitude, const double longitude)
+bool GeocodeUpdate::updateGeocodeToCalenderDB(const ulong& calEntryId, const double& latitude,
+    const double& longitude)
 
 {
     __TRACE_CALLSTACK;
-    AgendaUtil agendaUtil ;    
-    connect(&agendaUtil , SIGNAL(instanceViewCreationCompleted(int)) ,this ,SLOT(agendautilInstanceCreated(int)));
-    QEventLoop loop;
-    connect(this,SIGNAL(eventCompleted()),&loop,SLOT(quit()));
-    loop.exec();
-    AgendaEntry agendaEntry (agendaUtil.fetchById(calEntryId));
-    MYLOCLOGSTRING("agenda entry created from calender id .");
-    AgendaGeoValue geoValue;
-    geoValue.setLatLong(latitude,longitude);
-    MYLOCLOGSTRING("latitude and longitude set to  AgendaGeoValue object.");
-    agendaEntry.setGeoValue(geoValue);
-    bool ret=false;
-    ret=agendaUtil.updateEntry(agendaEntry) ;
+    bool ret = false;
+    if (mUtilInstanceCreated) {
+        AgendaEntry agendaEntry(mAgendaUtil->fetchById(calEntryId));
+        MYLOCLOGSTRING("agenda entry created from calender id .");
+        AgendaGeoValue geoValue;
+        geoValue.setLatLong(latitude, longitude);
+        MYLOCLOGSTRING("latitude and longitude set to  AgendaGeoValue object.");
+        agendaEntry.setGeoValue(geoValue);
+        ret = mAgendaUtil->updateEntry(agendaEntry);
+    }    
     return ret;
 }
 
+// ----------------------------------------------------------------------------
+// CGeocodeUpdate::isGeocodeNotAvailable()
+// check if geo-cordinate are available for this specific entry id.
+// return true , for available otherwise false.
+// ----------------------------------------------------------------------------
+bool GeocodeUpdate::isGeocodeNotAvailable(const ulong& calEntryId)
+{
+    __TRACE_CALLSTACK;
+    bool ret = false;
+    if (mUtilInstanceCreated) {
+        AgendaEntry agendaEntry(mAgendaUtil->fetchById(calEntryId));
+        const AgendaGeoValue &geoValue = agendaEntry.geoValue();
+        ret = geoValue.isNull();
+    }
+    return ret;
+}
+
+// ----------------------------------------------------------------------------
+// CGeocodeUpdate::agendautilInstanceCreated()
+// call back on agendautil instance creation  
+// ----------------------------------------------------------------------------
 void GeocodeUpdate::agendautilInstanceCreated(int status)
 {
-    if (AgendaUtil::NoError == status){
+    if (AgendaUtil::NoError == status) {
+        mUtilInstanceCreated = true;
         emit eventCompleted();
     }
 }
--- a/locationdataharvester/inc/mylocationsdefines.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/inc/mylocationsdefines.h	Tue Jul 06 14:10:28 2010 +0300
@@ -121,6 +121,25 @@
 
 const TInt KBufSize=256;
 
+//Different Maptile sizes for different applications
+const int MapTileWidth = 614;
+const int MapTileHeight = 250;
+const int MaptilePortraitWidth = 334;
+const int MaptilePortraitHeight = 250;
+const int MaptileContactLandscapeWidth =  382;
+const int MaptileContactLandscapeHeight = 128;
+const int MaptileCalendarLandscapeWidth = 614;
+const int MaptileCalendarLandscapeHeight = 202;    
+const int MaptileHurriganesWidth = 228;    
+const int MaptileHurriganesHeight = 170;
+
+static const char*  MAPTILE_IMAGE_PORTRAIT = "_Vertical";
+static const char*  MAPTILE_IMAGE_LANDSCAPE = "_Horizontal";
+static const char*  MAPTILE_IMAGE_CALENDAR = "_Calendar";
+static const char*  MAPTILE_IMAGE_CONTACT  = "_Contact"; 
+static const char*  MAPTILE_IMAGE_HURRIGANES = "_Hurriganes";
+static const char*  MAPTILE_IMAGE_TYPE = "PNG";
+       
 #endif  // __MYLOCATIONSDEFINES_H__
 // End of file
 
--- a/locationdataharvester/locationdatalookupdb/locationdatalookupdb.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/locationdatalookupdb/locationdatalookupdb.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -25,7 +25,12 @@
 #include<locationservicedefines.h>
 
 // database name
+#ifdef LOCPICKER_UNIT_TEST
+const QString KLocationDataLookupDbName = "c:\\locationdatalookuptestdb.db"; 
+#else    
 const QString KLocationDataLookupDbName = "c:\\locationdatalookupdb.db"; 
+#endif
+
 
 // ================= MEMBER FUNCTIONS =======================
 //
--- a/locationdataharvester/maptileservice/inc/maptiledblookuptable.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/maptileservice/inc/maptiledblookuptable.h	Tue Jul 06 14:10:28 2010 +0300
@@ -23,55 +23,7 @@
 #include <f32file.h> //RFs
 #include <d32dbms.h>  //RDbNamedDatabase,RDbView 
 
-// maptile database column names
-_LIT( NCntColUid, "cntuid" );
-_LIT( NAppColFilePath, "filepath" );
-_LIT( NColSource, "source" );
-_LIT( NColMaptileStatus, "fetchingstatus" );
-
-// maptile lookup database name
-_LIT( KMapTileLookupDatabaseName, "mylocationsmaptilelookup.db" );
-
-// maptile database table name
-_LIT( KMapTileLookupTable, "cntmaptilelookuptable" );
-
-_LIT( KLookupDbPath, "c:\\mylocations\\" );
-
-// uid column number
-const TInt KColumnUid = 1;
-// source type column number
-const TInt KColumnSource = 2;
-// maptile image path column number
-const TInt KColumnFilePath = 3;
-// maptile status column number
-const TInt KColumnMapTileFetchingStatus = 4;
-
-
-/**
- *  Maptile database lookup entry
- */
-class TLookupItem                            
-{
-public:
-    // Uid of the source entry
-    TUint32 iUid; 
-    
-    // Source type
-    TUint32 iSource;
-    
-    // Landmark uid in the landmarks database
-    TUint32 iLmId;
-    
-    // Uid of the Application
-    TUint32 iAppUid; 
-    
-    // File Path
-    TFileName iFilePath;
-    
-    //MK  map tile fetching status
-    TUint32 iFetchingStatus;    
-};
-
+#include "mylocationsdefines.h"
 /**
  * CLookupMapTileDatabase class.
  * This class handles all the operations related to maptile lookup database.
--- a/locationdataharvester/maptileservice/inc/maptileservice.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/maptileservice/inc/maptileservice.h	Tue Jul 06 14:10:28 2010 +0300
@@ -116,10 +116,12 @@
     * @param contactId  app id     
     * @param sourceType Source address type( Preferred, Home , Work address )
     * @param imagePath  Maptile image path associated with the app id
+    * @param orientation Application current orientation.   
     *      
     * @return Returns the maptile fetching status.
     */
-    int getMapTileImage( int Id, AddressType sourceType, QString& imagePath  );  
+    int getMapTileImage( int Id, AddressType sourceType, 
+             QString& imagePath, Qt::Orientations orientation = Qt::Vertical  );  
     
 public slots: 
     /**
--- a/locationdataharvester/maptileservice/src/maptileservice.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/maptileservice/src/maptileservice.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -21,6 +21,7 @@
 #include <locationservicedefines.h>
 #include <qvaluespacepublisher.h>
 #include <qvaluespacesubscriber.h>
+#include <qfile.h>
 #include "mylocationlogger.h"
 
 #include "maptileservice.h"
@@ -123,7 +124,8 @@
 // Gets the maptile image path associated with a contact.
 // -----------------------------------------------------------------------------
 //
-int MapTileService::getMapTileImage( int id, AddressType sourceType, QString& imagePath )    
+int MapTileService::getMapTileImage( int id, AddressType sourceType, 
+             QString& imagePath, Qt::Orientations orientation )    
 {
     __TRACE_CALLSTACK;
     
@@ -138,15 +140,42 @@
     if ( KErrNone == error  )
     {
      
-        //Get the image path
-        QString imageFile((QChar*)lookupItem.iFilePath.Ptr(),
-                    lookupItem.iFilePath.Length());
-        imagePath = imageFile;
-            
         maptileStatus = lookupItem.iFetchingStatus;
         MYLOCLOGSTRING1("getMapTileImage maptileStatus  - %d ", maptileStatus );
-
-        if( maptileStatus == MapTileFetchingNetworkError ||
+        
+        if( maptileStatus == MapTileFetchingCompleted )
+        {
+            //Get the image path
+	          QString imageFile((QChar*)lookupItem.iFilePath.Ptr(),
+	                    lookupItem.iFilePath.Length());
+	          imagePath = imageFile;
+	        
+	          if( orientation == Qt::Vertical )
+	          {
+	              imagePath.append( MAPTILE_IMAGE_PORTRAIT ); 
+	          }
+	          else
+	          {
+	              if( sourceType == AddressPlain )
+	              {
+	                  imagePath.append( MAPTILE_IMAGE_CALENDAR );
+	              }
+	              else if ( sourceType == AddressHome || 
+	                   sourceType == AddressPreference || sourceType == AddressWork )
+	              {
+	                  imagePath.append( MAPTILE_IMAGE_CONTACT );
+	              }
+	              imagePath.append( MAPTILE_IMAGE_LANDSCAPE );
+	          }
+	          
+	          //Check if file exist
+	          if( !QFile::exists( imagePath ) )
+	          {
+	              imagePath.clear();
+	           		maptileStatus = MapTileFetchingUnknownError;
+	          }
+	      }
+        else if( maptileStatus == MapTileFetchingNetworkError ||
                     maptileStatus == MapTileFetchingInProgress )
         {
             switch(sourceType)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationdataharvester/mylocationsengine/conf/maptilestatuspublisher.qcrml	Tue Jul 06 14:10:28 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<repository target="RProperty" version="" uidName="repo" uidValue="0x2002680A">
+<key ref="/maptilestatuspublisher/name" int="0x1"/>
+</repository>
\ No newline at end of file
--- a/locationdataharvester/mylocationsengine/inc/mylocationsengine.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/mylocationsengine/inc/mylocationsengine.h	Tue Jul 06 14:10:28 2010 +0300
@@ -40,6 +40,7 @@
 #include "lookupmaptiledb.h"
 #include "calendernotification.h"
 #include "mylocationgeotagtimerao.h"
+class GeocodeUpdate;
 class CContactSubscriber;
 class CCalendarSubscriber;
 using namespace QTM_NAMESPACE;
@@ -61,7 +62,7 @@
     CPosLandmark* iLandmarkInfo;
     //single row address.
     HBufC* iAddressDetails;
-    //Contact id
+    //entry id
     TInt32 iUId;
     //Address type 
     TInt32 iAddressType;
@@ -192,11 +193,6 @@
 	void TriggerMaptileRequestL(  TContactDbObserverEvent& aEvent  );
 			
     /** 
-     * Process the contact database event and updates the landmark database
-     * @param aEvent  Provides information about the change event.   
-     */      
-	void HandlelandmarkDatabaseL( TContactDbObserverEvent& aEvent );
-    /** 
     * Process the maptile database event and updates the maptile database
     * @param aEventType  Provides information about the type of request address.
     * @param aLookupItem Provides information about single address of contact.  
@@ -284,6 +280,17 @@
      * maptile database manipulation.
      */
     void ManipulateMapTileDataBaseL(TLookupItem& aLookupItem);
+    
+    /**
+     * Crop and create multiple maptile images for different applications requirements.
+     */
+    void CreateMultipleMaptiles( const TDesC& aMaptilePath );
+    
+    /**
+     * Crop the maptile image and save the different files.
+     */
+    void CropAndSaveImage( QString filePath, int width, 
+                               int height, QString appType, QString orientationType );
      
 public:  //From MMapTileObserver
     
@@ -371,6 +378,9 @@
     //Subscribe from calendar
     CCalendarSubscriber *iCalendarSubscriber;
     
+    //Geo-code class instance
+    GeocodeUpdate *iGeocodeUpdate;
+       
     //Last viewed contact id
     TInt iLastContactId;
     
--- a/locationdataharvester/mylocationsengine/src/lookupmaptiledb.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/mylocationsengine/src/lookupmaptiledb.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -14,6 +14,8 @@
 * Description: Maptile database lookup table source implementation.
 *
 */
+#include <QString>
+#include <QFile>
 
 #include <bautils.h>
 #include "mylocationlogger.h"
@@ -380,7 +382,28 @@
     // Delete if no reference to maptile
     if (!myView.AtRow())
     {
-        ret = iFsSession.Delete(aLookupItem.iFilePath);     
+        QString filePath =  QString::fromUtf16( aLookupItem.iFilePath.Ptr(), aLookupItem.iFilePath.Length() );
+        //delete all releted  maptile 
+        QString temp=filePath;
+        temp.append(MAPTILE_IMAGE_PORTRAIT);       
+        QFile file;
+        file.remove(temp);
+        
+        temp=filePath;
+        temp.append(MAPTILE_IMAGE_CONTACT);
+        temp.append(MAPTILE_IMAGE_LANDSCAPE);
+        file.remove(temp);
+        
+        temp=filePath;
+        temp.append(MAPTILE_IMAGE_CALENDAR);
+        temp.append(MAPTILE_IMAGE_LANDSCAPE);
+        file.remove(temp);
+        
+        temp=filePath;
+        temp.append(MAPTILE_IMAGE_HURRIGANES);         
+        file.remove(temp);
+         
+       // ret = iFsSession.Delete(aLookupItem.iFilePath);     
     }
         
     CleanupStack::PopAndDestroy(&myView); // myView
--- a/locationdataharvester/mylocationsengine/src/maptileinterface.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/mylocationsengine/src/maptileinterface.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -32,8 +32,6 @@
 const TReal KInvalidLatitudeLongitude =  200.0f;
 const TInt KStreetLvelZoom = 16;
 const TInt KCityLevelZoom = 11;
-const TInt KMapTileWidth= 330;
-const TInt KMapTileHeight= 128;
 const TInt KImagePathSize=36;
 const TInt KMapTileWidthHeight = 256 ;
 _LIT(KFileExtn, ".png");
@@ -155,7 +153,7 @@
         zoom = KStreetLvelZoom;
     }
     iStreetAvailable = EFalse;
-    TMapTileParam mapTileparam(aLatitude, aLongitude, zoom, KMapTileWidth, KMapTileHeight );
+    TMapTileParam mapTileparam(aLatitude, aLongitude, zoom, MapTileWidth,MapTileHeight );
     iMaptileGeocoder->GetMapTileByGeoCodeL( mapTileparam, *iFilePath );
 }
 
--- a/locationdataharvester/mylocationsengine/src/mylocationsengine.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationdataharvester/mylocationsengine/src/mylocationsengine.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -17,6 +17,7 @@
 */
 
 // INCLUDE FILES
+#include <QFile>
 #include <f32file.h>
 #include <calchangecallback.h> 
 #include <cntitem.h>
@@ -30,7 +31,6 @@
 #include "contactsubscriber.h"
 #include "calendarsubscriber.h"
 #include "mylocationsengine.h"
-#include "mylocationsdefines.h"
 #include "geocodeupdate.h" //header for GeocodeUpdate class
 //handle for CMyLocationsHistoryDbObserver class
 #include "mylocationlogger.h"
@@ -91,6 +91,7 @@
 
     MYLOCLOGSTRING("Maptile Db instance created ");
 	
+    iGeocodeUpdate = new GeocodeUpdate();
     iMyLocationThreeAMTimer = CLocationGeoTagTimerAO::NewL(*this);
   
     iMyLocationThreeAMTimer->StartTimer();
@@ -233,6 +234,7 @@
             iContactManager(NULL),
             iContactSubscriber(NULL),
             iCalendarSubscriber(NULL),
+            iGeocodeUpdate(NULL),
             iLastContactId( -1 ) ,
             iLastCalendarId( 0 )
 {
@@ -276,7 +278,8 @@
 
     delete iCalendarSubscriber;
     
-	//free the allocated memory
+    delete iGeocodeUpdate;
+    
     for( TInt index = 0; index < iAddressInfo.Count(); index++ )
     {
         delete iAddressInfo[index];
@@ -499,8 +502,7 @@
 {
     __TRACE_CALLSTACK;
    
-    GeocodeUpdate geocodeUpdate;
-    geocodeUpdate.createContactdb();
+    iGeocodeUpdate->createContactdb();
     iContactsDb = CContactDatabase::OpenL();
     // Create CContactChangeNotifier object with 'this' object. 
     iContactChangeNotifier = CContactChangeNotifier::NewL(*iContactsDb,this);
@@ -620,27 +622,30 @@
     CCalEntry* calEntry = NULL;
     calEntry = iCalView->FetchL(entryId);
     CleanupStack::PushL(calEntry);
-    TPtrC address(calEntry->LocationL());
-    if (iMyLocationsDatabaseManager->CheckIfAddressChanged(address, entryId,
-            ESourceCalendar))
-    {
-        lookupItem.iFilePath.Zero();
-        lookupItem.iFetchingStatus = EMapTileFetchingInProgress;
-        TRAP_IGNORE( iMaptileDatabase->ReSetEntryL(lookupItem) );
-        if (address.Length() > 0)
+    if(iGeocodeUpdate->isGeocodeNotAvailable(entryId))
+    {        
+        TPtrC address(calEntry->LocationL());
+        if (iMyLocationsDatabaseManager->CheckIfAddressChanged(address, entryId,
+                ESourceCalendar))
         {
-            RequestMapTileImageL(address, ESourceCalendar, entryId , EChangeModify);
-        }
-        else
-        {
-            UpdateDatabaseL(NULL, entryId, ESourceCalendar, EEntryDeleted);
-        }
-        if ( lookupItem.iFilePath.Length() > 0 )
-        {
-            iMaptileDatabase->DeleteMapTileL(lookupItem);
-        }
-
-    }
+            lookupItem.iFilePath.Zero();
+            lookupItem.iFetchingStatus = EMapTileFetchingInProgress;
+            TRAP_IGNORE( iMaptileDatabase->ReSetEntryL(lookupItem) );
+            if (address.Length() > 0)
+            {
+                RequestMapTileImageL(address, ESourceCalendar, entryId , EChangeModify);
+            }
+            else
+            {
+                UpdateDatabaseL(NULL, entryId, ESourceCalendar, EEntryDeleted);
+            }
+            if ( lookupItem.iFilePath.Length() > 0 )
+            {
+                iMaptileDatabase->DeleteMapTileL(lookupItem);
+            }
+    
+        }        
+    }   
     CleanupStack::PopAndDestroy(calEntry);
 }
 
@@ -658,169 +663,8 @@
     {
         TriggerMaptileRequestL(aEvent);
     }
-    
-    HandlelandmarkDatabaseL(aEvent);
 }
 
-// -----------------------------------------------------------------------------
-// CMyLocationsEngine::HandlelandmarkDatabaseL()
-// Process the contact database event and updates the landmark database
-// -----------------------------------------------------------------------------
-//
-void CMyLocationsEngine::HandlelandmarkDatabaseL(
-        TContactDbObserverEvent& aEvent)
-{
-    __TRACE_CALLSTACK;// If contact is modified or added, update the mylocations db
-    if (aEvent.iType == EContactDbObserverEventContactChanged || aEvent.iType
-            == EContactDbObserverEventContactAdded)
-    {
-       
-        CPosLandmark *preferedAddressLm = NULL;
-        CPosLandmark *workAddressLm = NULL;
-        CPosLandmark *homeAddressLm = NULL;
-        
-        QContact contactInfo = iContactManager->contact( aEvent.iContactId );
-         
-        //Get the contact name details
-        QContactName name = contactInfo.detail( QContactName::DefinitionName );
-        QString firstName = name.firstName();
-        QString lastName = name.lastName();
-        TPtrC16 tempPtr1(reinterpret_cast<const TUint16*>(firstName.utf16()));
-        TPtrC16 tempPtr2( reinterpret_cast <const TUint16*>(lastName.utf16()));
-        
-        TBuf<KBufSize> landmarkName;
-        landmarkName.Append( tempPtr1 );
-        landmarkName.Append( tempPtr2 );
-        
-        TInt itemCount = 0;
-        
-  
-        double longitude, latitude;
-        
-        foreach ( QContactAddress address, contactInfo.details<QContactAddress>() )
-        {
-          QStringList context = address.contexts();
-          if ( context.isEmpty() ) // no context
-          {
-              //check whether geocordinate available
-              TBool geoField = IsGeoCoordinateAvailable( 
-                       contactInfo, NULL , latitude, longitude );
-              if( geoField )
-              {
-                  // Get the default/prefered address details
-                  preferedAddressLm = GetContactAddressDetailsLC( address );
-                  TLocality loc( TCoordinate( latitude, longitude ), 0 );
-                  // Fill the location details into the landmark object
-                  preferedAddressLm->SetPositionL(loc);
-                  preferedAddressLm->SetLandmarkNameL( landmarkName );
-                  itemCount++;
-
-              }
-          }
-          else if (context.first() == QContactAddress::ContextHome  )
-          {
-              //check whether geocordinate available
-              TBool geoField = IsGeoCoordinateAvailable( 
-                               contactInfo, QContactAddress::ContextHome, latitude, longitude );
-              if( geoField )
-              {
-                  // Get the home address details
-                  homeAddressLm = GetContactAddressDetailsLC( address );
-                  TLocality loc(TCoordinate( latitude,longitude ), 0);
-                  homeAddressLm->SetPositionL(loc);
-                  homeAddressLm->SetLandmarkNameL( landmarkName );
-                  itemCount++;
-              }
-          }
-          else if (context.first() == QContactAddress::ContextWork )
-          {
-              //check whether geocordinate available
-              TBool geoField = IsGeoCoordinateAvailable( 
-                        contactInfo, QContactAddress::ContextWork, latitude, longitude );
-              if( geoField )
-              {
-                  // Get the work address details
-                  workAddressLm = GetContactAddressDetailsLC( address );
-                  TLocality loc(TCoordinate( latitude, longitude ), 0);
-                  // Fill the location details into the landmark object
-                  workAddressLm->SetPositionL(loc);
-                  workAddressLm->SetLandmarkNameL( landmarkName );
-                  itemCount++;
-              }
-        
-          }
-        }
-
-        // if the contact item has no validated address (preferef, home or work)
-        if (!preferedAddressLm && !workAddressLm && !homeAddressLm)
-        {
-            if (aEvent.iType == EContactDbObserverEventContactChanged)
-            {
-                // If the contact is a modified one and it might already exist in
-                // mylocations db, so delete it
-                UpdateDatabaseL(NULL,
-                        aEvent.iContactId, ESourceContactsPref,
-                        EEntryDeleted);
-                
-                UpdateDatabaseL(NULL,
-                                 aEvent.iContactId, ESourceContactsHome,
-                                 EEntryDeleted);
-                  
-                UpdateDatabaseL(NULL,
-                        aEvent.iContactId, ESourceContactsWork,
-                        EEntryDeleted);
-            }
-        }
-        else
-        {
-            // There is atleast one valid address present.       
-
-            // Get the TEntryChangeType for contacts.
-            TEntryChangeType changeType = MapChangeType(
-                    ESourceContactsPref, aEvent.iType);
-
-            // if prefered address available, update Mylocations.  
-            if (preferedAddressLm)
-            {
-                UpdateDatabaseL(
-                        preferedAddressLm, aEvent.iContactId,
-                        ESourceContactsPref, changeType);
-            }
-            // if home address available, update Mylocations.  
-            if (homeAddressLm)
-            {
-                UpdateDatabaseL(homeAddressLm,
-                        aEvent.iContactId, ESourceContactsHome, changeType);
-            }
-
-            // if work address available, update Mylocations.  
-            if (workAddressLm)
-            {
-                UpdateDatabaseL(workAddressLm,
-                        aEvent.iContactId, ESourceContactsWork, changeType);
-            }
-
-            CleanupStack::PopAndDestroy( itemCount );
-        }  
-
-    }
-    else if (aEvent.iType == EContactDbObserverEventContactDeleted)
-    {
-        // the contact is deleted, so delete the corresponding entries from database.
-
-        // delete prefered address in database
-        UpdateDatabaseL(NULL, aEvent.iContactId,
-                ESourceContactsPref, EEntryDeleted);
-
-        // delete work address in database
-        UpdateDatabaseL(NULL, aEvent.iContactId,
-                ESourceContactsWork, EEntryDeleted);
-
-        // delete home address in database
-        UpdateDatabaseL(NULL, aEvent.iContactId,
-                ESourceContactsHome, EEntryDeleted);
-    }
-}
 
 // -----------------------------------------------------------------------------
 // CMyLocationsEngine::TriggerMaptileRequestL()
@@ -835,6 +679,7 @@
     // If contact is deleted delete from mylocations db
     if (aEvent.iType == EContactDbObserverEventContactDeleted)
     {        
+        //Delete the entries from maptile database
         lookupItem.iSource = ESourceContactsPref;
         TRAP_IGNORE( ManipulateMapTileDataBaseL(lookupItem));
 
@@ -844,6 +689,16 @@
         lookupItem.iSource = ESourceContactsHome;
         TRAP_IGNORE( ManipulateMapTileDataBaseL(lookupItem));
               
+        // Delete entries from  mylocation database
+        TRAP_IGNORE( UpdateDatabaseL( NULL, aEvent.iContactId,
+                     ESourceContactsPref, EEntryDeleted ));
+       
+        TRAP_IGNORE( UpdateDatabaseL( NULL, aEvent.iContactId,
+               ESourceContactsHome, EEntryDeleted ));
+
+        TRAP_IGNORE( UpdateDatabaseL( NULL, aEvent.iContactId,
+                               ESourceContactsWork, EEntryDeleted ) );  
+        
         MYLOCLOGSTRING("EContactDbObserverEventContactDeleted ");
         return;
     }
@@ -852,7 +707,17 @@
     iEventType = aEvent.iType;
     QContact contactInfo = iContactManager->contact( aEvent.iContactId );
     
-  
+    //Get the contact name details
+    QContactName name = contactInfo.detail( QContactName::DefinitionName );
+    QString firstName = name.firstName();
+    QString lastName = name.lastName();
+    TPtrC16 tempPtr1(reinterpret_cast<const TUint16*>(firstName.utf16()));
+    TPtrC16 tempPtr2( reinterpret_cast <const TUint16*>(lastName.utf16()));
+    
+    TBuf<KBufSize> landmarkName;
+    landmarkName.Append( tempPtr1 );
+    landmarkName.Append( tempPtr2 );
+            
     CPosLandmark *preferedAddressLm = NULL;
     CPosLandmark *workAddressLm = NULL;
     CPosLandmark *homeAddressLm = NULL;
@@ -900,6 +765,7 @@
             lookupItem.iSource = ESourceContactsPref;
             if (preferedAddressLm)
             {
+                preferedAddressLm->SetLandmarkNameL( landmarkName );
                 MYLOCLOGSTRING("preferedAddressLm address changed" );
 
                 if ( iMyLocationsDatabaseManager->CheckIfAddressChanged(*preferedAddressLm,
@@ -931,6 +797,7 @@
             lookupItem.iSource = ESourceContactsHome;
             if (homeAddressLm)
             {
+                homeAddressLm->SetLandmarkNameL( landmarkName );
                 MYLOCLOGSTRING("homeAddressLm address changed" );
                 if ( iMyLocationsDatabaseManager->CheckIfAddressChanged(*homeAddressLm,
                         aEvent.iContactId, ESourceContactsHome) )
@@ -959,6 +826,7 @@
             lookupItem.iSource = ESourceContactsWork;
             if (workAddressLm)
             {
+                workAddressLm->SetLandmarkNameL( landmarkName );
                 MYLOCLOGSTRING("workAddressLm address changed" );
                 if ( iMyLocationsDatabaseManager->CheckIfAddressChanged(*workAddressLm,
                         aEvent.iContactId, ESourceContactsWork) )
@@ -995,6 +863,7 @@
             MYLOCLOGSTRING("EContactDbObserverEventContactAdded" );
             if (preferedAddressLm)
             {
+                preferedAddressLm->SetLandmarkNameL( landmarkName );
                 //create entry in the data base and maintain a fetching state.
                 lookupItem.iSource = ESourceContactsPref;
                 iMaptileDatabase->CreateEntryL(lookupItem);
@@ -1003,6 +872,7 @@
             }
             if (homeAddressLm)
             {
+                homeAddressLm->SetLandmarkNameL( landmarkName );
                 lookupItem.iSource = ESourceContactsHome;
                 iMaptileDatabase->CreateEntryL(lookupItem);
                 RequestMapTileImageL(*homeAddressLm, ESourceContactsHome,
@@ -1010,6 +880,7 @@
             }
             if (workAddressLm)
             {
+                workAddressLm->SetLandmarkNameL( landmarkName );
                 lookupItem.iSource = ESourceContactsWork;
                 iMaptileDatabase->CreateEntryL(lookupItem);
                 RequestMapTileImageL(*workAddressLm, ESourceContactsWork,
@@ -1475,6 +1346,14 @@
     }    
 }
 
+
+
+
+// -----------------------------------------------------------------------------
+// CMyLocationsEngine::MyLocationThreeAMTimerExpiredL()
+// Triggers the maptile fetching at 3.00 for the network failure cases.
+// -----------------------------------------------------------------------------
+//
 void CMyLocationsEngine::MyLocationThreeAMTimerExpiredL()
 {
     //Forward the event for maptile fetching only if maptile plugin available
@@ -1494,6 +1373,18 @@
                 case ESourceContactsPref:
                      { 
                         QContact contactInfo = iContactManager->contact( iItem.iUid );
+                        
+                        //Get the contact name details
+                        QContactName name = contactInfo.detail( QContactName::DefinitionName );
+                        QString firstName = name.firstName();
+                        QString lastName = name.lastName();
+                        TPtrC16 tempPtr1(reinterpret_cast<const TUint16*>(firstName.utf16()));
+                        TPtrC16 tempPtr2( reinterpret_cast <const TUint16*>(lastName.utf16()));
+                       
+                        TBuf<KBufSize> landmarkName;
+                        landmarkName.Append( tempPtr1 );
+                        landmarkName.Append( tempPtr2 );
+                        
                         CPosLandmark *addressLm = NULL;
     
                         foreach ( QContactAddress address, contactInfo.details<QContactAddress>() )
@@ -1509,6 +1400,7 @@
                                 addressLm = GetContactAddressDetailsLC( address );
                                 if( addressLm ) 
                                 {
+                                    addressLm->SetLandmarkNameL( landmarkName );
                                     RequestMapTileImageL( *addressLm,
                                            ( TUidSourceType )iItem.iSource, iItem.iUid, EContactDbObserverEventContactChanged );
                                     CleanupStack::PopAndDestroy( addressLm );
@@ -1571,6 +1463,7 @@
        
         if ( aErrCode == KErrNone )
         {           
+            CreateMultipleMaptiles( aMapTilePath );
             lookupItem.iFilePath.Copy(aMapTilePath);
             lookupItem.iFetchingStatus = EMapTileFectchingCompleted;
  
@@ -1669,8 +1562,27 @@
             iMaptileDatabase->CreateEntryL(aLookupItem);
         }
     }
-    iMyLocationsDatabaseManager->UpdateMapTilePath( aLookupItem.iUid, aLookupItem.iSource, 
-                                            aLookupItem.iFilePath );    
+    if (aLookupItem.iFetchingStatus == EMapTileFetchingUnknownError
+            || aLookupItem.iFetchingStatus == EMapTileFetchingNetworkError)
+    {
+        TRAP_IGNORE( UpdateDatabaseL( NULL,
+                        aLookupItem.iUid, aLookupItem.iSource, EEntryDeleted ) );
+
+    }
+    else
+    {      
+        TPtrC8 ptr(reinterpret_cast<const TUint8*>(MAPTILE_IMAGE_HURRIGANES));   
+        HBufC* buffer = NULL;
+        buffer=HBufC::NewLC(ptr.Length());
+        buffer->Des().Copy(ptr);
+        if(buffer)
+        {
+            aLookupItem.iFilePath.Append(*buffer);
+        }
+        CleanupStack::PopAndDestroy(buffer);
+        iMyLocationsDatabaseManager->UpdateMapTilePath(aLookupItem.iUid,
+                aLookupItem.iSource, aLookupItem.iFilePath);
+    }
 }
 
 // -----------------------------------------------------------------------------
@@ -1690,7 +1602,9 @@
         {
         //TODO:
         case ESourceCalendar:
-        {                   
+        {           
+            iGeocodeUpdate->updateGeocodeToCalenderDB(iMapTileRequestQueue[0]->iUId,
+                    aLatitude,aLongitude);                    
             CPosLandmark *landmark = NULL;
             landmark = iMapTileInterface->GetLandMarkDetails();
             if (NULL != landmark)
@@ -1708,17 +1622,23 @@
         case ESourceContactsWork:
         case ESourceContactsHome:
         {
-            GeocodeUpdate geocodeUpdate;
-            geocodeUpdate.updateGeocodeToContactDB(
+            iGeocodeUpdate->updateGeocodeToContactDB(
                     iMapTileRequestQueue[0]->iUId,
                     iMapTileRequestQueue[0]->iAddressType, aLatitude,
                     aLongitude);
+            //Update mylocation database 
+            TRAP_IGNORE( UpdateDatabaseL( 
+                    iMapTileRequestQueue[0]->iLandmarkInfo, 
+                    iMapTileRequestQueue[0]->iUId,
+                    iMapTileRequestQueue[0]->iAddressType,
+                    MapChangeType( 
+                        static_cast<TUidSourceType>( iMapTileRequestQueue[0]->iAddressType ), 
+                                                  iMapTileRequestQueue[0]->iEventType )));
+            
             MYLOCLOGSTRING("Geo-codinate updated to contact db");
             break;
         }
         };
-
-        
     }
 
 }
@@ -1757,5 +1677,71 @@
     }            
 }
 
+
+// -----------------------------------------------------------------------------
+// CMyLocationsEngine::CreateMultipleMaptiles()
+// -----------------------------------------------------------------------------
+//
+void CMyLocationsEngine::CreateMultipleMaptiles( const TDesC& aMaptilePath )
+{
+    __TRACE_CALLSTACK;
+    QString filePath =  QString::fromUtf16( aMaptilePath.Ptr(), aMaptilePath.Length() );
+    
+    //Portrait image , common for contacts/calendar/context menu
+    CropAndSaveImage( filePath, 
+                      MaptilePortraitWidth, 
+                      MaptilePortraitHeight, 
+                      QString(),
+                      QString( MAPTILE_IMAGE_PORTRAIT ) );
+    
+    //Landscape image for contacts
+    CropAndSaveImage( filePath, 
+                      MaptileContactLandscapeWidth, 
+                      MaptileContactLandscapeHeight,
+                      QString( MAPTILE_IMAGE_CONTACT ),
+                      QString( MAPTILE_IMAGE_LANDSCAPE ) );
+    
+    //Ladscape image for calendar
+    CropAndSaveImage( filePath, 
+                      MaptileCalendarLandscapeWidth, 
+                      MaptileCalendarLandscapeHeight,
+                      QString( MAPTILE_IMAGE_CALENDAR ),
+                      QString( MAPTILE_IMAGE_LANDSCAPE ) );
+    
+    //Image for hurriganes
+    CropAndSaveImage( filePath, 
+                      MaptileHurriganesWidth, 
+                      MaptileHurriganesHeight,
+                      QString( MAPTILE_IMAGE_HURRIGANES ),
+                      QString() );
+    QFile file(filePath);
+    file.remove();   
+}
+
+
+// -----------------------------------------------------------------------------
+// CMyLocationsEngine::CropAndSaveImage()
+// -----------------------------------------------------------------------------
+//
+void CMyLocationsEngine::CropAndSaveImage( QString filePath, int width, 
+                                   int height, QString appType, QString orientationType )
+{    
+     __TRACE_CALLSTACK;
+     QImage SourcePNG( filePath );
+     QImage sourcePixmap( SourcePNG.convertToFormat(QImage::Format_Indexed8));     
+     QImage targetPixmap( sourcePixmap.copy( 
+                               ( MapTileWidth - width )/2, 
+                               ( MapTileHeight - height )/2 , 
+                               width, 
+                               height ) );
+         
+     QString targetImage;
+     targetImage.append( filePath );
+     targetImage.append( appType );
+     targetImage.append( orientationType );
+     targetPixmap.save( targetImage, MAPTILE_IMAGE_TYPE  );
+             
+}
+
 //End of file
 
--- a/locationpickerservice/inc/hgwidgetdatamodel.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/hgwidgetdatamodel.h	Tue Jul 06 14:10:28 2010 +0300
@@ -51,7 +51,11 @@
     //reset the model with new data
     void resetModel( LocationPickerProxyModel *aProxyModel );
 
+#ifdef LOCPICKER_UNIT_TEST
+public:
+#else    
 private:
+#endif
 	//Image Type
     TImageType                       mImageType;
     //default Image type
--- a/locationpickerservice/inc/locationpickerappwindow.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickerappwindow.h	Tue Jul 06 14:10:28 2010 +0300
@@ -24,10 +24,9 @@
 // Forward declarations
 class LocationPickerSearchView;
 class LocationPickerDocumentLoader;
-class LocationPickerPotraitView;
+class LocationPickerView;
 class LocationPickerService;
 class LocationPickerProxyModel;
-class LocationPickerLandscapeView;
 class LocationPickerContent;
 
 class LocationPickerAppWindow: public HbMainWindow
@@ -41,19 +40,22 @@
     // destructor
     ~LocationPickerAppWindow();
 
-private:
-    //Loads the Potrait View
-    void loadPotrait();
-    //Loads landscape View
-    void loadLandscape();
+#ifdef LOCPICKER_UNIT_TEST
+public slots:
+#else    
+private slots:
+#endif
     //Connect the slots for Potrait view
-    void connectPotraitSlots();
-    //Connect the slots for Landscape view
-    void connectLandscapeSlots();
+    void connectSlots();
 public slots:
     // a list item is selected
     void itemSelected( quint32 aLm );
+#ifdef LOCPICKER_UNIT_TEST
+public slots:
+#else    
 private slots:
+#endif
+
     //activate search view
     void activateSearchView();
     //activate locationpicker view
@@ -62,28 +64,23 @@
     void changeOrientation( Qt::Orientation );
     //complete the service
     void serviceComplete();
-    //sets the category ID during orientation change in collection content
-    void setCategoryId( quint32 acategoryId );
-    //handles orientation change in collection list
-    void handleCollectionList();
-    //handle all List
-    void allListHandle();
-    //clear content models
-    void clearContentModels();
+    //slot to close details dialog (if open)
+    void closeDetailsDialog();
+
+#ifdef LOCPICKER_UNIT_TEST
+public:
+#else    
 private:
+#endif
     // search view
     LocationPickerSearchView* mLocationPickerSearchView;
     //document loader
     LocationPickerDocumentLoader* mLocationPickerDocumentLoader;
     //location picker potrait view
-    LocationPickerPotraitView* mLocationPickerPotraitView;
-    //location picker landscape view
-    LocationPickerLandscapeView* mLocationPickerLandscapeView;
+    LocationPickerView* mLocationPickerView;
 	//locationpicker content
     LocationPickerContent* mLocationPickerContent;
     //location picker service;
     LocationPickerService *mService;
-    //View Type
-    TViewType mviewType;
 };
 #endif // LOCATIONPICKERAPPWINDOW_H
--- a/locationpickerservice/inc/locationpickercollectioncontent.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickercollectioncontent.h	Tue Jul 06 14:10:28 2010 +0300
@@ -29,19 +29,16 @@
 {
 public:
     // constructor
-    LocationPickerCollectionContent( Qt::Orientations aOrientation , quint32 aCollectionid );
+    LocationPickerCollectionContent( quint32 aCollectionid );
     //Destructor
     ~LocationPickerCollectionContent();
     //get proxy model
     LocationPickerProxyModel* getProxyModel();
-    //get standard model
-    QStandardItemModel* getStandardModel();
     // gets the data pointed to by index and copies to the aValue
     void getData( QModelIndex aIndex, quint32& aValue );
     //return true if location entry is found
     bool locationFound();
 private:
-    Qt::Orientations mOrientation;
     LocationPickerProxyModel *mProxyModel;
     QStandardItemModel *mModel;
     LocationPickerDataManager *mDataManager;
--- a/locationpickerservice/inc/locationpickercollectionlistcontent.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickercollectionlistcontent.h	Tue Jul 06 14:10:28 2010 +0300
@@ -29,7 +29,7 @@
 public:
 
     // constructor
-    LocationPickerCollectionListContent( Qt::Orientation aOrientation );
+    LocationPickerCollectionListContent();
 
     // destructor
     ~LocationPickerCollectionListContent();
@@ -39,7 +39,6 @@
     void getData( QModelIndex aIndex, quint32& aValue );
 
 private:
-    Qt::Orientation mOrientation;
     //standard Item Model
     QStandardItemModel *mModel;
     //datamanager
--- a/locationpickerservice/inc/locationpickercontent.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickercontent.h	Tue Jul 06 14:10:28 2010 +0300
@@ -39,20 +39,16 @@
     // destructor
     ~LocationPickerContent();
     
-    //get standard List Model
-    QStandardItemModel* getStandardListModel();
-    
     //get standard Grid Model
     QStandardItemModel* getStandardModel();
     
     void createNoEntryDisplay( QStandardItemModel *aModel );
     
-    bool populateModel( Qt::Orientation aOrientation );
+    bool populateModel();
 
 private:
     Qt::Orientations mOrientation;
     LocationPickerDataManager *mDataManager;
-    QStandardItemModel *mListModel;
     QStandardItemModel *mStandardModel;
     
 };
--- a/locationpickerservice/inc/locationpickerdatamanager.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickerdatamanager.h	Tue Jul 06 14:10:28 2010 +0300
@@ -40,7 +40,7 @@
 public:
     // populates the model with data
     bool populateModel( QStandardItemModel &aModel, TViewType aViewType, 
-            Qt::Orientations aOrientation,quint32 aCollectionId = 0);
+            quint32 aCollectionId = 0);
 
     // gets the location item
     void getLocationItem( quint32 aLmId, QLocationPickerItem &aItem );
--- a/locationpickerservice/inc/locationpickerdatamanager_p.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickerdatamanager_p.h	Tue Jul 06 14:10:28 2010 +0300
@@ -39,7 +39,7 @@
     
     // populates the model with data
     bool populateModel( QStandardItemModel &aModel, TViewType aViewType, 
-            const Qt::Orientations aOrientation, quint32 aCollectionId = 0 );
+            quint32 aCollectionId = 0 );
     
     // gets the location item
     void getLocationItem( quint32 aLmId, QLocationPickerItem &aItem );
@@ -51,7 +51,6 @@
     void populateCollections( QList<int>& aCount );
 
 private:
-    Qt::Orientations mOrientation;
     QStandardItemModel *mModel;
     TViewType mViewType;
     LocationDataLookupDb *mDb; 
--- a/locationpickerservice/inc/locationpickerlandscapeview.h	Wed Jun 23 18:07:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
-* Copyright (c) 2010 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: LocationPickerLandscapeView declaration
-*
-*/
-
-#ifndef LOCATIONPICKERLANDSCAPEVIEW_H_
-#define LOCATIONPICKERLANDSCAPEVIEW_H_
-
-
-
-#include <HbView>
-#include <hbdocumentloader.h>
-#include "locationpickertypes.h"
-
-//forward declarations
-class HbListView;
-class QStandardItemModel;
-class HbAction;
-class QGraphicsLinearLayout;
-class HbLabel;
-class HgWidgetDataModel;
-class HbTextItem;
-class HgMediawall;
-class QPoint;
-class HbMenu;
-
-class LocationPickerProxyModel;
-class LocationPickerCollectionContent;
-class LocatipnPickerProxyModel;
-
-
-
-/**  
- * Class defines the location picker view
- */
-class LocationPickerLandscapeView : public HbView
-{
-
-    Q_OBJECT
-public:
-    // constructor
-    LocationPickerLandscapeView( HbDocumentLoader* aLoader );
-    // destructor
-    ~LocationPickerLandscapeView();
-public:
-    //get the items from docml and connect to respective slots
-    void init( Qt::Orientation aOrientation, QStandardItemModel *aModel );
-    //Set the appropriate model on hgwidget
-    void manageHgWidget();
-    //Create collection list and sets to list view
-    void setCollectionData( quint32 aCategoryId );
-    //Set Ctegory ID
-    void setCategoryID( quint32 aCategoryId  );
-    //Get the view type
-    TViewType getViewType();
-    //set the view type
-    void setViewType( TViewType aViewType );
-    //clear collection content
-    void clearContentModel();
-private slots:
-    //slot to handle list item actions     
-    void handleActivated( const QModelIndex &aIndex );
-    //slots to handle menu action items     
-    void sortDescending();
-    void sortAscending();
-    void backButtonTriggered();
-    //slot to handle search tab
-    void searchTabTriggered();
-	//launch context menu
-    void launchPopUpMenu(const QModelIndex &aIndex, const QPointF &aPoint);
-	//handle long press
-    void handleLongPress();
-public slots:
-    //slot to handle all tab
-    void allTabTriggered();
-    //slot to handle collection tab
-    void colectionTabTriggered();
-signals:
-    void switchToSearchView();
-    void handleCollectionList();
-    void selectItem( quint32 aLm );
-    void completeService();
-    void sendCategoryID( quint32 acategoryId );
-    void collectionContentExited();
-private:
-    //document loader
-    HbDocumentLoader* mDocumentLoader;
-    //locationPickerProxyModel
-    LocationPickerProxyModel *mProxyModel;
-    QStandardItemModel *mStandardModel;
-    //actions
-    HbAction *mAllAction;
-    HbAction *mCollectionAction;
-    HbAction *mSearchAction;
-    HbAction *mAscendingAction;
-    HbAction *mDescendingAction;
-    //secondary back action
-    HbAction *mLandscapeBackAction;
-    //collection content 
-    LocationPickerCollectionContent *mCollectionContent;
-    //view type
-    TViewType mViewType ;
-    //get the collection/category id
-    quint32 mCategoryId;
-	//model for hurriganes
-    HgWidgetDataModel       *mModel;
-	//hurriganes 
-    HgMediawall                *mWidget;
-	//Linear layout
-    QGraphicsLinearLayout   *mLayout;
-	//text Item to display No Entry
-    HbTextItem*             mEmptyLabel;
-    QModelIndex mIndex;
-    //context menu
-    HbMenu* mLongPressMenu;
-};
-
-#endif /* LOCATIONPICKERLANDSCAPEVIEW_H_ */
--- a/locationpickerservice/inc/locationpickerpotraitview.h	Wed Jun 23 18:07:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2010 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: LocationPickerPotraitView declaration
-*
-*/
-
-#ifndef LOCATIONPICKERPOTRAITVIEW_H
-#define LOCATIONPICKERPOTRAITVIEW_H
-
-
-#include <HbView>
-#include <hbdocumentloader.h>
-#include "locationpickertypes.h"
-#include <QGraphicsLinearLayout>
-
-#include <HbLabel>
-
-//forward declarations
-class HbListView;
-class QStandardItemModel;
-class LocationPickerProxyModel;
-class LocationPickerCollectionListContent;
-class LocationPickerCollectionContent;
-class HbListViewItem;
-class HbAction;
-class HbAbstractViewItem;
-class HbMenu;
-class QPoint;
-/**  
- * Class defines the location picker view
- */
-class LocationPickerPotraitView : public HbView
-{
-    Q_OBJECT
-public:
-    // constructor
-    LocationPickerPotraitView( HbDocumentLoader* aLoader );
-    // destructor
-    ~LocationPickerPotraitView();
-public:
-    //disable the tabs
-    void disableTabs( QStandardItemModel *aModel );
-    //get the items from docml and connect to respective slots
-    void init( bool aPopulated, Qt::Orientation aOrientation, QStandardItemModel *aModel );
-    //Set the appropriate model on list view
-    void manageListView();
-    //Create collection list and sets to list view
-    void setCollectionData( quint32 acategoryId );
-    //Set Ctegory ID
-    void setCategoryID( quint32 acategoryId  );
-    //Get the view type
-    TViewType getViewType();
-    //set the view type
-    void setViewType( TViewType aViewType );
-    //clear collection Model
-    void clearContentModel();
-private slots:
-    //slot to handle list item actions     
-    void handleActivated( const QModelIndex &aIndex );
-    //slots to handle menu action items     
-    void sortDescending();
-    void sortAscending();
-    void backTriggered();
-    //slot to handle search tab
-    void searchTabTriggered();
-	//launch context menu
-    void launchPopUpMenu(HbAbstractViewItem *aItem, const QPointF &aPoint);
-	//handle long press
-    void handleLongPress();
-public slots:
-    //slot to handle all tab
-    void allTabTriggered();
-    //slot to handle collection tab
-    void colectionTabTriggered();
-signals:
-    void switchToSearchView();
-    void selectItem( quint32 aLm );
-    void completeService();
-    void sendCategoryID( quint32 aCategoryId );
-    void handleAllList();
-    void collectionContentExited();
-private:
-    //document loader
-    HbDocumentLoader* mDocumentLoader;
-    // collection list content
-    LocationPickerCollectionListContent* mLocationPickerCollectionListContent;
-    //locationPickerProxyModel
-    LocationPickerProxyModel *mProxyModel;
-	//standard model
-    QStandardItemModel *mModel;
-    //actions
-    HbAction *mAllAction;
-    HbAction *mCollectionAction;
-    HbAction *mSearchAction;
-    HbAction *mAscendingAction;
-    HbAction *mDescendingAction;
-    //secondary back action
-    HbAction *mPotraitBackAction;
-    // list view
-    HbListView  *mListView;
-    //list item
-    HbListViewItem *mListItem;
-    //collection content 
-    LocationPickerCollectionContent *mCollectionContent;
-    //ViewType
-    TViewType mViewType ;
-    // get the collection/category id
-    quint32 mCategoryId;
-    //label to show current view
-    QModelIndex mIndex;
-    //linear Layout
-    QGraphicsLinearLayout *mLinerLayout;
-	//label to show detail of view
-    HbLabel *mColllabel;
-    //context menu
-    HbMenu* mLongPressMenu;
-};
-
-
-#endif // LOCATIONPICKERPOTRAITVIEW_H
--- a/locationpickerservice/inc/locationpickerproxymodel.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickerproxymodel.h	Tue Jul 06 14:10:28 2010 +0300
@@ -31,7 +31,7 @@
 
 public:
     // constructor
-    LocationPickerProxyModel( Qt::Orientations aOrientation , QObject *parent = 0 );
+    LocationPickerProxyModel( QObject *parent = 0 );
 
     // used to
     void filterParameterChanged( QString aSearchText );
@@ -45,7 +45,6 @@
 private:
     // search string
     QString mSearchText;
-    Qt::Orientations mOrientation;
 };
  
  
--- a/locationpickerservice/inc/locationpickersearchview.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickersearchview.h	Tue Jul 06 14:10:28 2010 +0300
@@ -48,7 +48,11 @@
     void init( QStandardItemModel *aModel );
 private:
     void getData( QModelIndex aIndex, quint32& aValue );
+#ifdef LOCPICKER_UNIT_TEST
+public slots:
+#else    
 private slots:
+#endif
     // slot to perform search
     void doSearch( QString aCriteria );
     // slot to handle select event on a list item
@@ -59,12 +63,18 @@
     void launchPopUpMenu(HbAbstractViewItem *aItem, const QPointF &aPoint);
 	//handle long press
     void handleLongPress();
+    //delete context menu
+    void deleteMenu();
 signals:
     //signals to switch current view
     void switchView();
     //signals when any item is selected
     void selectItem( quint32 aLm );
+#ifdef LOCPICKER_UNIT_TEST
+public:
+#else    
 private:
+#endif
     //proxymodel used for sort and filter
     LocationPickerProxyModel *mProxyModel;
     // model for the view
@@ -82,6 +92,8 @@
     QModelIndex mIndex;
     //context menu
     HbMenu* mLongPressMenu;
+    //select action
+    HbAction* mSelectAction;
 };
 
 
--- a/locationpickerservice/inc/locationpickertypes.h	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/inc/locationpickertypes.h	Tue Jul 06 14:10:28 2010 +0300
@@ -41,8 +41,6 @@
 //Places collection icon
 const QString KCollectionsPlaces("qtg_small_favorite");
 
-//Contacts type prefered icon
-const QString KContactPrefIcon("qtg_mono_favourites");
 //Contacts type home icon
 const QString KContactHomeIcon("qtg_mono_home");
 //Contacts type work icon
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationpickerservice/inc/locationpickerview.h	Tue Jul 06 14:10:28 2010 +0300
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2010 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: LocationPickerView declaration
+*
+*/
+
+#ifndef LOCATIONPICKERVIEW_H
+#define LOCATIONPICKERVIEW_H
+
+
+#include <HbView>
+#include <hbdocumentloader.h>
+#include "locationpickertypes.h"
+#include <QGraphicsLinearLayout>
+#include <hgwidgets/hgmediawall.h>
+
+#include <HbLabel>
+#include <HbTextItem>
+//forward declarations
+class HbListView;
+class QStandardItemModel;
+class LocationPickerProxyModel;
+class LocationPickerCollectionListContent;
+class LocationPickerCollectionContent;
+class HgWidgetDataModel;
+class HbListViewItem;
+class HbAction;
+class HbAbstractViewItem;
+class QPoint;
+class HbDialog;
+class HbLabel;
+/**  
+ * Class defines the location picker view
+ */
+class LocationPickerView : public HbView
+{
+    Q_OBJECT
+public:
+    // constructor
+    LocationPickerView( HbDocumentLoader* aLoader );
+    // destructor
+    ~LocationPickerView();
+public:
+    //disable the tabs
+    void disableTabs();
+    //get the items from docml and connect to respective slots
+    void init( Qt::Orientation aOrientation, QStandardItemModel *aModel );
+    //Set the appropriate model on list view
+    void manageListView();
+    //create hurriganes widget
+    void createHurriganesWidget();
+    //manage hurriganes view
+    void manageHgWidget();
+    //Create collection list and sets to list view
+    void setCollectionData( quint32 acategoryId );
+    //Get the view type
+    TViewType getViewType();
+    //set the view type
+    void setViewType( TViewType aViewType );
+    //clear collection Model
+    void clearContentModel();
+    void removeDetailsLabel();
+    //close the popupdialog
+    void closeDetailsDialog();
+#ifdef LOCPICKER_UNIT_TEST
+public:
+#else    
+private:
+#endif
+    void displayNoEntries();
+#ifdef LOCPICKER_UNIT_TEST
+public slots:
+#else    
+private slots:
+#endif
+    //slot to handle list item actions     
+    void handleActivated( const QModelIndex &aIndex );
+    //slots to handle menu action items     
+    void sortDescending();
+    void sortAscending();
+    //handle secondary back action
+    void backTriggered();
+    //slot to handle search tab
+    void searchTabTriggered();
+    //context menu
+    void launchPopUpMenu( HbAbstractViewItem *aItem, const QPointF &aPoint );
+    //launch context menu
+    void launchPopUpMenu( const QModelIndex &aIndex, const QPointF &aPoint );
+    //handle select event
+    void handleSelect();
+    //handle details event
+    void handleDetails();
+    //slot to handle all tab
+    void allTabTriggered();
+    //slot to handle collection tab
+    void colectionTabTriggered();
+    //delete context menu
+    void deleteMenu();
+signals:
+    void switchToSearchView();
+    void selectItem( quint32 aLm );
+    void completeService();
+#ifdef LOCPICKER_UNIT_TEST
+public:
+#else    
+private:
+#endif
+    //document loader
+    HbDocumentLoader* mDocumentLoader;
+    // collection list content
+    LocationPickerCollectionListContent* mLocationPickerCollectionListContent;
+    //locationPickerProxyModel
+    LocationPickerProxyModel *mProxyModel;
+	//standard model
+    QStandardItemModel *mModel;
+    //actions
+    HbAction *mAllAction;
+    HbAction *mCollectionAction;
+    HbAction *mSearchAction;
+    HbAction *mAscendingAction;
+    HbAction *mDescendingAction;
+    //secondary back action
+    HbAction *mBackAction;
+    // list view
+    HbListView  *mListView;
+    //list item
+    HbListViewItem *mListItem;
+    //collection content 
+    LocationPickerCollectionContent *mCollectionContent;
+    //ViewType
+    TViewType mViewType ;
+    // get the collection/category id
+    quint32 mCategoryId;
+    //label to show current view
+    QModelIndex mIndex;
+    //linear Layout
+    QGraphicsLinearLayout *mLinerLayout;
+    //model for hurriganes
+    HgWidgetDataModel       *mHgModel;
+    //hurriganes 
+    HgWidget                *mWidget;
+    // label to show view details
+    HbLabel *mColllabel;
+    //text item to show no entries
+    HbTextItem*             mEmptyLabel;
+    //pop up dialog to show details
+    HbDialog* mDialog;
+    HbLabel* mMapIconLabel;
+    HbLabel* mTitleLabel;
+    HbLabel* mAddressMiddle;
+    HbLabel* mAddressBottom;
+    HbAction* mDone;
+    HbMenu* mLongPressMenu;
+    HbAction* mSelectAction; 
+    HbAction* mDetailsAction; 
+    bool mPopulated;
+};
+
+
+#endif // LOCATIONPICKERVIEW_H
--- a/locationpickerservice/locationpickerservice.pro	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/locationpickerservice.pro	Tue Jul 06 14:10:28 2010 +0300
@@ -66,8 +66,7 @@
     src/locationpickerservice.cpp \
     src/locationpickerdatamanager.cpp \
     src/locationpickerdatamanager_p.cpp \
-    src/locationpickerpotraitview.cpp \
-    src/locationpickerlandscapeview.cpp \
+    src/locationpickerview.cpp \
     src/locationpickerdocumentloader.cpp \
     src/hgwidgetdatamodel.cpp
     
@@ -84,8 +83,7 @@
     inc/locationpickerservice.h \
     inc/locationpickerdatamanager.h \
     inc/locationpickerdatamanager_p.h \
-    inc/locationpickerpotraitview.h \
-    inc/locationpickerlandscapeview.h \
+    inc/locationpickerview.h \
     inc/locationpickerdocumentloader.h \
     inc/hgwidgetdatamodel.h
 
--- a/locationpickerservice/resources/location.hgmediawall.css	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/resources/location.hgmediawall.css	Tue Jul 06 14:10:28 2010 +0300
@@ -1,18 +1,18 @@
 HgMediawall#location[scrollBarPolicy="ScrollBarAlwaysOff"]
 {
     layout:layout-noscrollbar;
-    front-cover-elevation-factor:0.7;
+    front-cover-elevation-factor:0.5;
 }
 
 HgMediawall#location[!scrollBarPolicy="ScrollBarAlwaysOff"]
 {
     layout:layout-scrollbar;
-    front-cover-elevation-factor:0.7;
+    front-cover-elevation-factor:0.5;
 }
 
 HgMediawall#location::title
 {
-	font-variant:primary;
+	font-variant:secondary;
     text-align: center center;
 	left:-var(hb-param-margin-gene-screen);
 	right:var(hb-param-margin-gene-screen);
--- a/locationpickerservice/resources/location.hgmediawall.widgetml	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/resources/location.hgmediawall.widgetml	Tue Jul 06 14:10:28 2010 +0300
@@ -21,10 +21,10 @@
     <meshitem src="content" srcEdge="LEFT" dst="" dstEdge="LEFT" />
     <meshitem src="description" srcEdge="BOTTOM" dst="content" dstEdge="BOTTOM" />
     <meshitem src="description" srcEdge="CENTERH" dst="content" dstEdge="CENTERH" />
-    <meshitem src="title" srcEdge="BOTTOM" dst="description" dstEdge="TOP" />
+    <meshitem src="title" srcEdge="TOP" dst="content" dstEdge="TOP" />
     <meshitem src="title" srcEdge="CENTERH" dst="content" dstEdge="CENTERH" />
-    <meshitem src="centeritem" srcEdge="BOTTOM" dst="title" dstEdge="TOP" />
-    <meshitem src="centeritem" srcEdge="TOP" dst="content" dstEdge="TOP" />
+    <meshitem src="centeritem" srcEdge="BOTTOM" dst="content" dstEdge="BOTTOM" />
+    <meshitem src="centeritem" srcEdge="TOP" dst="title" dstEdge="BOTTOM" />
 	<meshitem src="centeritem" srcEdge="RIGHT" dst="content" dstEdge="RIGHT" />
     <meshitem src="centeritem" srcEdge="LEFT" dst="content" dstEdge="LEFT" />
   </layout>
--- a/locationpickerservice/resources/locationpicker.qrc	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/resources/locationpicker.qrc	Tue Jul 06 14:10:28 2010 +0300
@@ -1,8 +1,8 @@
 <RCC>
     <qresource>
-        <file>locationpickerpotrait.docml</file>
-        <file>locationpickerlandscape.docml</file>
+        <file>locationpickerview.docml</file>
         <file>locationpickersearchview.docml</file>
+        <file>popupdialog.docml</file>
         <file>location.hgmediawall.widgetml</file>
         <file>location.hgmediawall.css</file>
     </qresource>
--- a/locationpickerservice/resources/locationpickerlandscape.docml	Wed Jun 23 18:07:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="1.0">
-    <object name="allAction" type="HbAction">
-        <bool name="checkable" value="TRUE"/>
-        <icon iconName="qtg_mono_location" name="icon"/>
-        <string name="text"/>
-    </object>
-    <object name="collectionAction" type="HbAction">
-        <bool name="checkable" value="TRUE"/>
-        <icon iconName="qtg_mono_location_collection" name="icon"/>
-        <string name="text"/>
-    </object>
-    <object name="searchAction" type="HbAction">
-        <icon iconName="qtg_mono_search" name="icon"/>
-        <string name="text"/>
-    </object>
-    <object name="ascendingAction" type="HbAction">
-        <string name="iconText" value="txt_lint_list_ascending‘txt_lint_list_ascending’"/>
-        <string locid="txt_lint_list_ascending" name="text" value="Ascending"/>
-        <string name="toolTip" value="txt_lint_list_ascending‘txt_lint_list_ascending’"/>
-    </object>
-    <object name="descendingAction" type="HbAction">
-        <string locid="txt_lint_list_descending" name="text" value="Descending"/>
-    </object>
-    <widget name="LocationPickerLandscapeView" type="HbView">
-        <widget name="content" role="HbView:widget" type="HbWidget">
-            <widget name="vertical" type="HbWidget">
-                <real name="z" value="1"/>
-                <sizehint height="23.8806un" type="PREFERRED" width="11.9403un"/>
-                <layout orientation="Vertical" type="linear"/>
-            </widget>
-            <layout type="anchor">
-                <anchoritem dst="vertical" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="vertical" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                <anchoritem dst="vertical" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
-                <anchoritem dst="vertical" dstEdge="BOTTOM" spacing="expr(-var(hb-param-margin-gene-screen) /2)" src="" srcEdge="BOTTOM"/>
-            </layout>
-        </widget>
-        <widget name="viewMenu" role="HbView:menu" type="HbMenu">
-            <widget name="sortByMenu" role="HbMenu:menu" type="HbMenu">
-                <ref object="ascendingAction" role="HbMenu:addAction"/>
-                <ref object="descendingAction" role="HbMenu:addAction"/>
-                <string locid="txt_lint_list_sort_by" name="title" value="Sort By"/>
-            </widget>
-        </widget>
-        <string locid="txt_lint_title_select_location" name="title" value="Select Location"/>
-    </widget>
-    <metadata activeUIState="Common ui state" display="NHD landscape" unit="un">
-        <uistate name="Common ui state" sections="#common"/>
-    </metadata>
-</hbdocument>
--- a/locationpickerservice/resources/locationpickerpotrait.docml	Wed Jun 23 18:07:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
-    <object name="allAction" type="HbAction">
-        <bool name="checkable" value="TRUE"/>
-        <icon iconName="qtg_mono_location" name="icon"/>
-        <string name="text" value=""/>
-    </object>
-    <object name="collectionAction" type="HbAction">
-        <bool name="checkable" value="TRUE"/>
-        <icon iconName="qtg_mono_location_collection" name="icon"/>
-        <string name="text" value=""/>
-    </object>
-    <object name="searchAction" type="HbAction">
-        <icon iconName="qtg_mono_search" name="icon"/>
-        <string name="text" value=""/>
-    </object>
-    <object name="ascendingAction" type="HbAction">
-        <string locid="txt_lint_list_ascending" name="text" value="Ascending"/>
-    </object>
-    <object name="descendingAction" type="HbAction">
-        <string locid="txt_lint_list_descending" name="text" value="Descending"/>
-    </object>
-    <widget name="LocationPickerPotraitView" type="HbView">
-        <widget name="content" role="HbView:widget" type="HbWidget">
-            <widget name="ListView" type="HbListView">
-                <widget name="listItemPrototype" role="HbListView:prototype" type="HbListViewItem">
-                    <string name="state" value="normal"/>
-                </widget>
-                <real name="z" value="1"/>
-                <sizehint height="48.0597un" type="PREFERRED" width="35.8209un"/>
-            </widget>
-            <layout orientation="Vertical" type="linear">
-                <linearitem itemname="ListView"/>
-            </layout>
-        </widget>
-        <widget name="viewMenu" role="HbView:menu" type="HbMenu">
-            <widget name="sortByMenu" role="HbMenu:menu" type="HbMenu">
-                <ref object="ascendingAction" role="HbMenu:addAction"/>
-                <ref object="descendingAction" role="HbMenu:addAction"/>
-                <string locid="txt_lint_list_sort_by" name="title" value="Sort By"/>
-            </widget>
-        </widget>
-        <string locid="txt_lint_title_select_location" name="title"/>
-    </widget>
-    <metadata activeUIState="Common ui state" display="NHD-3.2-inch_portrait" unit="un">
-        <uistate name="Common ui state" sections="#common"/>
-        <dummydata objectName="ListView" section="#common" value="0"/>
-    </metadata>
-</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationpickerservice/resources/locationpickerview.docml	Tue Jul 06 14:10:28 2010 +0300
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.9">
+    <object name="allAction" type="HbAction">
+        <bool name="checkable" value="TRUE"/>
+        <icon iconName="qtg_mono_location" name="icon"/>
+        <string name="text" value=""/>
+    </object>
+    <object name="collectionAction" type="HbAction">
+        <bool name="checkable" value="TRUE"/>
+        <icon iconName="qtg_mono_location_collection" name="icon"/>
+        <string name="text" value=""/>
+    </object>
+    <object name="searchAction" type="HbAction">
+        <icon iconName="qtg_mono_search" name="icon"/>
+        <string name="text" value=""/>
+    </object>
+    <object name="ascendingAction" type="HbAction">
+        <string locid="txt_lint_list_ascending" name="text" value="Ascending"/>
+    </object>
+    <object name="descendingAction" type="HbAction">
+        <string locid="txt_lint_list_descending" name="text" value="Descending"/>
+    </object>
+    <widget name="LocationPickerView" type="HbView">
+        <widget name="content" role="HbView:widget" type="HbWidget">
+            <layout orientation="Vertical" type="linear"/>
+        </widget>
+        <widget name="viewToolbar" role="HbView:toolBar" type="HbToolBar">
+            <ref object="allAction" role="HbToolBar:addAction"/>
+            <ref object="collectionAction" role="HbToolBar:addAction"/>
+            <ref object="searchAction" role="HbToolBar:addAction"/>
+        </widget>
+        <widget name="viewMenu" role="HbView:menu" type="HbMenu">
+            <widget name="sortByMenu" role="HbMenu:menu" type="HbMenu">
+                <ref object="ascendingAction" role="HbMenu:addAction"/>
+                <ref object="descendingAction" role="HbMenu:addAction"/>
+                <string locid="txt_lint_list_sort_by" name="title" value="Sort By"/>
+            </widget>
+        </widget>
+        <string locid="txt_lint_title_select_location" name="title"/>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationpickerservice/resources/popupdialog.docml	Tue Jul 06 14:10:28 2010 +0300
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="1.0">
+    <object name="action" type="HbAction">
+        <string name="role" value="HbDialog:primaryAction"/>
+        <string locid="txt_lint_button_done" name="text"/>
+    </object>
+    <widget name="dialog" type="HbDialog">
+        <widget name="container" role="HbDialog:contentWidget" type="HbWidget">
+            <widget name="mapLabel" type="HbLabel">
+                <real name="z" value="3"/>
+                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                <sizehint height="expr((var(hb-param-screen-width)-(2*var(hb-param-margin-gene-popup))-(2*var(hb-param-margin-gene-screen)))*3/4)" type="FIXED" width="expr(var(hb-param-screen-width)-(2*var(hb-param-margin-gene-popup))-(2*var(hb-param-margin-gene-screen)))"/>
+                <sizehint height="expr((var(hb-param-screen-width)-(2*var(hb-param-margin-gene-popup))-(2*var(hb-param-margin-gene-screen)))*3/4)" type="MINIMUM" width="expr(var(hb-param-screen-width)-(2*var(hb-param-margin-gene-popup))-(2*var(hb-param-margin-gene-screen)))"/>
+                <sizehint height="expr((var(hb-param-screen-width)-(2*var(hb-param-margin-gene-popup))-(2*var(hb-param-margin-gene-screen)))*3/4)" type="MAXIMUM" width="expr(var(hb-param-screen-width)-(2*var(hb-param-margin-gene-popup))-(2*var(hb-param-margin-gene-screen)))"/>
+                <bool name="visible" value="TRUE"/>
+            </widget>
+            <widget name="titleLabel" type="HbLabel">
+                <string name="plainText"/>
+            </widget>
+            <widget name="addressMiddle" type="HbLabel">
+                <string name="plainText"/>
+            </widget>
+            <widget name="addressBottom" type="HbLabel">
+                <string name="plainText"/>
+            </widget>
+            <real name="z" value="0"/>
+            <layout spacing="var(hb-param-margin-gene-popup)" type="grid">
+                <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
+                <griditem column="0" itemname="mapLabel" row="0"/>
+                <griditem column="0" itemname="titleLabel" row="1"/>
+                <griditem column="0" itemname="addressMiddle" row="2"/>
+                <griditem column="0" itemname="addressBottom" row="3"/>
+            </layout>
+        </widget>
+        <rect height="67.31343un" name="geometry" width="46.71642un" x="3.28358un" y="14.02985un"/>
+        <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+        <ref object="action" role="HbDialog:primaryAction"/>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
--- a/locationpickerservice/src/hgwidgetdatamodel.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/hgwidgetdatamodel.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -76,7 +76,6 @@
 // ----------------------------------------------------------------------------
 QVariant HgWidgetDataModel::data(const QModelIndex &aIndex, int aRole) const
 {   
-    Q_ASSERT(aIndex.row()>=0);
     int row= aIndex.row();
     int col = aIndex.column();
     //get proxy model index
@@ -102,23 +101,24 @@
         case Qt::DisplayRole:
         {
             QStringList displayText;
-            QString adressDetail = mProxyModel->data(proxyModelIndex,Qt::DisplayRole).toString();
+            QStringList adressDetail = mProxyModel->data(proxyModelIndex,Qt::DisplayRole).toStringList();
+            QString displayString = adressDetail[0]+KSeparator+KSpace+adressDetail[1];
             QString text("");
-            displayText <<adressDetail<<text;
+            displayText <<displayString<<text;
             returnValue = displayText;
             break;
         }
         case Qt::DecorationRole:
         {
             //get icon name from data model
-            QString iconName =  mProxyModel->data(proxyModelIndex,Qt::DecorationRole).toString();
-            if (iconName.isNull()) 
+            QString iconName =  mProxyModel->data(proxyModelIndex,Qt::UserRole+1).toString();
+            if (iconName.isEmpty()) 
             {
                 returnValue = mDefaultImage;
             }
             else 
             {   
-                QString adressType =  mProxyModel->data(proxyModelIndex,Qt::UserRole+1).toString();
+                QString adressType =  mProxyModel->data(proxyModelIndex,Qt::UserRole+2).toString();
                 QPixmap mapPixmap(iconName);
                 int mapWidth = mapPixmap.width();
                 int mapHeight = mapPixmap.height();
--- a/locationpickerservice/src/locationpickerappwindow.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickerappwindow.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -20,11 +20,10 @@
 #include "qlocationpickeritem.h"
 
 #include "locationpickersearchview.h"
-#include "locationpickerpotraitview.h"
+#include "locationpickerview.h"
 #include "locationpickerservice.h"
 #include "locationpickerdatamanager.h"
 #include "locationpickerdocumentloader.h"
-#include "locationpickerlandscapeview.h"
 #include "locationpickercontent.h"
 
 // ----------------------------------------------------------------------------
@@ -34,11 +33,9 @@
 	:HbMainWindow(parent, windowFlags),
 	mLocationPickerSearchView(NULL),
     mLocationPickerDocumentLoader(NULL),
-	mLocationPickerPotraitView(NULL),
-	mLocationPickerLandscapeView(NULL),
+	mLocationPickerView(NULL),
 	mLocationPickerContent(NULL),
-    mService(NULL),
-	mviewType(ELocationPickerContent)
+    mService(NULL)
 {
     // create the service object;
     mService = new LocationPickerService(this);
@@ -46,47 +43,32 @@
     
     //create document loader object
     mLocationPickerDocumentLoader = new LocationPickerDocumentLoader();
-   
     bool ok = false;
-    //load the Locationpicker portrait view
-    mLocationPickerDocumentLoader->load(":/locationpickerpotrait.docml", &ok);
+    //load the Locationpicker view
+    mLocationPickerDocumentLoader->load(":/locationpickerview.docml", &ok);
     Q_ASSERT_X(ok, "locationpickerservice", "invalid DocML file");
     //find graphics location picker potrait view
-    QGraphicsWidget *locationPickerWidget = mLocationPickerDocumentLoader->findWidget("LocationPickerPotraitView");
+    QGraphicsWidget *locationPickerWidget = mLocationPickerDocumentLoader->findWidget("LocationPickerView");
     Q_ASSERT_X((locationPickerWidget != 0), "locationpickerservice", "invalid DocML file");
-    mLocationPickerPotraitView = qobject_cast<LocationPickerPotraitView*>(locationPickerWidget);
-    bool populated = mLocationPickerContent->populateModel(Qt::Vertical);
-    //initialize potrait widgets and connect to respective signals 
-    mLocationPickerPotraitView->init(populated, Qt::Vertical, mLocationPickerContent->getStandardListModel());
-    connectPotraitSlots();
+    mLocationPickerView = qobject_cast<LocationPickerView*>(locationPickerWidget);
+    bool populated = mLocationPickerContent->populateModel();
+    connectSlots();
     if(!populated)
     {
-        mLocationPickerPotraitView->disableTabs(mLocationPickerContent->getStandardListModel());
-        addView( mLocationPickerPotraitView );
-        setCurrentView(mLocationPickerPotraitView);
+        mLocationPickerView->disableTabs();
+        addView(mLocationPickerView);
+        setCurrentView(mLocationPickerView);
     }
     else
-    {
-        addView( mLocationPickerPotraitView );
-
-        mLocationPickerDocumentLoader->reset();
-
-        //load the Locationpicker landscape view
-        mLocationPickerDocumentLoader->load(":/locationpickerlandscape.docml", &ok);
-        Q_ASSERT_X(ok, "locationpickerservice", "invalid DocML file");
-        //find graphics location picker landscape view
-        locationPickerWidget = mLocationPickerDocumentLoader->findWidget("LocationPickerLandscapeView");
-        Q_ASSERT_X((locationPickerWidget != 0), "locationpickerservice", "invalid DocML file");
-        mLocationPickerLandscapeView = qobject_cast<LocationPickerLandscapeView*>(locationPickerWidget);
-        mLocationPickerContent->populateModel(Qt::Horizontal);
-        //initialize widgets and connect to respective signals 
-        mLocationPickerLandscapeView->init(Qt::Horizontal, mLocationPickerContent->getStandardModel());
-        connectLandscapeSlots();
-        addView(mLocationPickerLandscapeView);
-        //connect to orientationChanged signal
-   	    connect(this, SIGNAL(orientationChanged(Qt::Orientation)),this, SLOT(changeOrientation(Qt::Orientation)));
-        //launch the view in current orientation
-        changeOrientation(this->orientation());
+    {    
+    //initialize potrait widgets and connect to respective signals 
+    mLocationPickerView->init( this->orientation(), mLocationPickerContent->getStandardModel());
+    addView( mLocationPickerView );
+    setCurrentView(mLocationPickerView);
+    //connect to orientationChanged signal
+     connect(this, SIGNAL(orientationChanged(Qt::Orientation)),this, SLOT(changeOrientation(Qt::Orientation)));
+    connect(this, SIGNAL(aboutToChangeOrientation()),this, SLOT(closeDetailsDialog()));
+     
     }
 }
 
@@ -98,8 +80,7 @@
     delete mService;
     delete mLocationPickerSearchView;
     delete mLocationPickerDocumentLoader;
-    delete mLocationPickerPotraitView;
-    delete mLocationPickerLandscapeView;
+    delete mLocationPickerView;
     delete mLocationPickerContent;
 }
 
@@ -139,35 +120,33 @@
         Q_ASSERT_X((mLocationPickerSearchView != 0), "mLocationPickerSearchView", 
             "qobject cast failure");
         //initialize the action items and connect to slots
-        mLocationPickerSearchView->init(mLocationPickerContent->getStandardListModel());
+        mLocationPickerSearchView->init(mLocationPickerContent->getStandardModel());
         connect(mLocationPickerSearchView,SIGNAL(switchView()),this,SLOT(activateLocationPickerView()));
         connect(mLocationPickerSearchView,SIGNAL(selectItem( quint32 )),this,SLOT(itemSelected( quint32 )));
         addView(mLocationPickerSearchView);
     }
     //set LocationPickerSearchview as current view
     setCurrentView(mLocationPickerSearchView);
-    mviewType = ELocationPickerSearchView;
+   
 }
 
+
 // ----------------------------------------------------------------------------
 // LocationPickerAppWindow::activateLocationPickerView()
 // ----------------------------------------------------------------------------
 void LocationPickerAppWindow::activateLocationPickerView()
 { 
-    mviewType = ELocationPickerContent;
+    mLocationPickerView->setViewType( ELocationPickerContent );
     //check the orientation and load view accordingly 
     if(this->orientation() == Qt::Horizontal)
     {
-        mLocationPickerLandscapeView->setViewType( ELocationPickerContent );
-        mLocationPickerLandscapeView->manageHgWidget();
-        setCurrentView(mLocationPickerLandscapeView);
+        mLocationPickerView->manageHgWidget();
     }
     else
     { 
-        mLocationPickerPotraitView->setViewType( ELocationPickerContent );
-        mLocationPickerPotraitView->manageListView();
-        setCurrentView( mLocationPickerPotraitView );
+        mLocationPickerView->manageListView();
     }
+    setCurrentView(mLocationPickerView);
 }
 
 // ----------------------------------------------------------------------------
@@ -176,129 +155,38 @@
 void LocationPickerAppWindow::changeOrientation( Qt::Orientation )
 {   
     //check the orientation and load view accordingly 
-    if( orientation() == (Qt::Horizontal ))
-    {
-        loadLandscape();
-    }
-    else
+    if(mLocationPickerView->getViewType()== ELocationPickerCollectionContent || 
+            mLocationPickerView->getViewType()== ELocationPickerContent )
     {
-        loadPotrait();
-    }
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerAppWindow::loadPotrait()
-// ----------------------------------------------------------------------------
-void LocationPickerAppWindow::loadPotrait()
-{   
-	//load potrait view except for search view
-    if(mviewType != ELocationPickerSearchView)
-	  {
-        if(mLocationPickerLandscapeView->getViewType() == ELocationPickerContent)
-        {
-        mLocationPickerPotraitView->setViewType(ELocationPickerContent);
-        }
-    	mLocationPickerPotraitView->manageListView();
-    	setCurrentView( mLocationPickerPotraitView );
+        if(this->orientation() == Qt::Vertical)
+       {
+            mLocationPickerView->manageListView();
+      
+       }
+       
+   else if(this->orientation() == Qt::Horizontal)
+       {
+           mLocationPickerView->manageHgWidget();
+       }
     }
 }
 
 // ----------------------------------------------------------------------------
-// LocationPickerAppWindow::loadLandscape()
-// ----------------------------------------------------------------------------
-void LocationPickerAppWindow::loadLandscape()
-{   
-    if(mviewType != ELocationPickerSearchView)
-	 {
-         //load landscape view in current potrait content
-         mLocationPickerLandscapeView->setViewType( mLocationPickerPotraitView->getViewType() );
-         //load landscape for all content except collectionlistcontent
-    	 if(mLocationPickerPotraitView->getViewType() != ELocationPickerCollectionListContent)
-    	 {
-             mLocationPickerLandscapeView->manageHgWidget();
-    		 setCurrentView(mLocationPickerLandscapeView);
-		 }
-	 }
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerAppWindow::loadLandscape()
+// LocationPickerAppWindow::closeDetailsDialog()
 // ----------------------------------------------------------------------------
-void LocationPickerAppWindow::connectPotraitSlots()
+void LocationPickerAppWindow::closeDetailsDialog()
 {
-     connect(mLocationPickerPotraitView,SIGNAL(switchToSearchView()),this,SLOT(activateSearchView()));
-     connect(mLocationPickerPotraitView,SIGNAL(selectItem( quint32 )),this,SLOT(itemSelected( quint32 )));
-     connect(mLocationPickerPotraitView,SIGNAL(completeService()),this,SLOT(serviceComplete()));
-     connect(mLocationPickerPotraitView,SIGNAL(sendCategoryID( quint32 )),this,SLOT(setCategoryId( quint32 )));
-     connect(mLocationPickerPotraitView,SIGNAL(handleAllList()),this,SLOT(allListHandle()));
-    connect(mLocationPickerPotraitView,SIGNAL(collectionContentExited()),this,SLOT(clearContentModels()));
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerAppWindow::loadLandscape()
-// ----------------------------------------------------------------------------
-void LocationPickerAppWindow::connectLandscapeSlots()
-{   
-    connect(mLocationPickerLandscapeView,SIGNAL(switchToSearchView()),this,SLOT(activateSearchView()));
-    connect(mLocationPickerLandscapeView,SIGNAL(selectItem( quint32 )),this,SLOT(itemSelected( quint32 )));
-    connect(mLocationPickerLandscapeView,SIGNAL(completeService()),this,SLOT(serviceComplete()));
-    connect(mLocationPickerLandscapeView,SIGNAL(sendCategoryID( quint32 )),this,SLOT(setCategoryId( quint32 )));
-    connect(mLocationPickerLandscapeView,SIGNAL(handleCollectionList()),this,SLOT(handleCollectionList()));
-    connect(mLocationPickerLandscapeView,SIGNAL(collectionContentExited()),this,SLOT(clearContentModels()));
+    mLocationPickerView->closeDetailsDialog();
 }
 
 // ----------------------------------------------------------------------------
-// LocationPickerAppWindow::setCategoryId()
-// ----------------------------------------------------------------------------
-void LocationPickerAppWindow::setCategoryId( quint32 acategoryId )
-{
-    //set the same category id to both views
-    mLocationPickerPotraitView->setCategoryID(acategoryId);
-    mLocationPickerLandscapeView->setCategoryID(acategoryId);
-    //Load the collectioncontent in appropriate orientation
-    if(orientation() == Qt::Vertical)
-    {
-        mviewType = ELocationPickerCollectionContent;
-        mLocationPickerPotraitView->manageListView();
-        setCurrentView( mLocationPickerPotraitView );
-    }
-    else
-    {   
-        mviewType = ELocationPickerCollectionContent;
-        loadLandscape();        
-    }
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerAppWindow::handleCollectionList()
+// LocationPickerAppWindow::connectSlots()
 // ----------------------------------------------------------------------------
-void LocationPickerAppWindow::handleCollectionList()
-{  
-    //In collection List both view should look same(list)
-    mLocationPickerPotraitView->setViewType( ELocationPickerCollectionListContent );
-    mviewType = ELocationPickerCollectionListContent;
-    mLocationPickerPotraitView->manageListView();
-    setCurrentView( mLocationPickerPotraitView );
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerAppWindow::allListHandle()
-// ----------------------------------------------------------------------------
-void LocationPickerAppWindow::allListHandle()
+void LocationPickerAppWindow::connectSlots()
 {
-    //all list after collection list in horizontal orientation
-    mLocationPickerLandscapeView->setViewType( ELocationPickerContent );
-    mLocationPickerLandscapeView->manageHgWidget();
-    setCurrentView(mLocationPickerLandscapeView);
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerAppWindow::clearContentModels()
-// ----------------------------------------------------------------------------
-void LocationPickerAppWindow::clearContentModels()
-{
-    mLocationPickerLandscapeView->clearContentModel();
-    mLocationPickerPotraitView->clearContentModel();
+    connect(mLocationPickerView,SIGNAL(switchToSearchView()),this,SLOT(activateSearchView()));
+    connect(mLocationPickerView,SIGNAL(selectItem( quint32 )),this,SLOT(itemSelected( quint32 )));
+    connect(mLocationPickerView,SIGNAL(completeService()),this,SLOT(serviceComplete()));
 }
 
 Q_IMPLEMENT_USER_METATYPE(QLocationPickerItem)
--- a/locationpickerservice/src/locationpickercollectioncontent.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickercollectioncontent.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -27,40 +27,36 @@
 // ----------------------------------------------------------------
 // LocationPickerCollectionContent::LocationPickerCollectionContent()
 // -----------------------------------------------------------------
-LocationPickerCollectionContent::LocationPickerCollectionContent( Qt::Orientations aOrientation , quint32 aCollectionId )
-    :mOrientation(aOrientation),
-	 mProxyModel(NULL),
+LocationPickerCollectionContent::LocationPickerCollectionContent( quint32 aCollectionId )
+    :mProxyModel(NULL),
     mModel(NULL),
     mDataManager(NULL),
 	mLocationFound(false)
 {
     // Create a standard model for the view list
     mModel = new QStandardItemModel( this );
-    if(mModel)
+    // create data manager to manage data in the model
+    mDataManager = LocationPickerDataManager::getInstance();
+    if( mDataManager->populateModel( *mModel, ELocationPickerCollectionContent, aCollectionId ) )
     {
-        // create data manager to manage data in the model
-        mDataManager = LocationPickerDataManager::getInstance();
-        if( mDataManager->populateModel( *mModel, ELocationPickerCollectionContent, mOrientation , aCollectionId ) )
-        {
-            // Create the proxy model.
-            mProxyModel = new LocationPickerProxyModel(mOrientation);
-            mProxyModel->setSourceModel(mModel);
-            mProxyModel->setDynamicSortFilter(TRUE);
-            mProxyModel->setSortRole(Qt::DisplayRole);
-            mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
-            // sort
-            mProxyModel->sort(0, Qt::AscendingOrder);
-            mLocationFound = true;
-        }
-        else
-        {
-            // no locations to display.
-            QStandardItem *modelItem = new QStandardItem();
-            modelItem->setData(QVariant(hbTrId("txt_lint_list_no_location_entries_present")), Qt::DisplayRole);
-            mModel->appendRow( modelItem );
-            mLocationFound = false;
-        }
+        // Create the proxy model.
+        mProxyModel = new LocationPickerProxyModel();
+        mProxyModel->setSourceModel(mModel);
+        mProxyModel->setDynamicSortFilter(TRUE);
+        mProxyModel->setSortRole(Qt::DisplayRole);
+        mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
+        // sort
+        mProxyModel->sort(0, Qt::AscendingOrder);
+        mLocationFound = true;
     }
+    else
+    {
+        // no locations to display.
+        QStandardItem *modelItem = new QStandardItem();
+        modelItem->setData(QVariant(hbTrId("txt_lint_list_no_location_entries_present")), Qt::DisplayRole);
+        mModel->appendRow( modelItem );
+        mLocationFound = false;
+     }
 }
 
 // ----------------------------------------------------------------
@@ -80,14 +76,6 @@
     return mProxyModel;
 }
 
-// ----------------------------------------------------------------
-// LocationPickerCollectionContent::getStandardModel
-// -----------------------------------------------------------------
-QStandardItemModel* LocationPickerCollectionContent::getStandardModel()
-{
-    return mModel;
-}
-
 // ----------------------------------------------------------------------------
 // LocationPickerCollectionContent::getData()
 // ----------------------------------------------------------------------------
--- a/locationpickerservice/src/locationpickercollectionlistcontent.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickercollectionlistcontent.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -25,9 +25,8 @@
 // ----------------------------------------------------------------------
 // LocationPickerCollectionListContent::LocationPickerCollectionListContent()
 // ----------------------------------------------------------------------
-LocationPickerCollectionListContent::LocationPickerCollectionListContent( Qt::Orientation aOrientation )
-    :mOrientation(aOrientation),
-    mModel(NULL),
+LocationPickerCollectionListContent::LocationPickerCollectionListContent()
+    :mModel(NULL),
     mDataManager(NULL)
 {
     // Create a standard model for the view list
@@ -36,7 +35,7 @@
     {
         // create data manager to manage data in the model
         mDataManager = LocationPickerDataManager::getInstance();
-        bool populated = mDataManager->populateModel( *mModel, ELocationPickerCollectionListContent, mOrientation );
+        bool populated = mDataManager->populateModel( *mModel, ELocationPickerCollectionListContent);
         if(!populated)
         {
         qFatal("Error creating collection");
@@ -56,9 +55,9 @@
 // LocationPickerCollectionListContent::getStandardModel
 // -----------------------------------------------------------------
 QStandardItemModel* LocationPickerCollectionListContent::getStandardModel()
-    {
+{
     return mModel;
-    }
+}
 
 // ----------------------------------------------------------------------------
 // LocationPickerCollectionListContent::getData()
--- a/locationpickerservice/src/locationpickercontent.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickercontent.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -29,7 +29,6 @@
 // -----------------------------------------------------------------------------
 LocationPickerContent::LocationPickerContent()
 	:mDataManager(NULL),
-	mListModel(NULL),
 	mStandardModel(NULL)
 {
     // create data manager to manage data in the model
@@ -40,37 +39,19 @@
 // -----------------------------------------------------------------------------
 // LocationPickerContent::populateModel()
 // -----------------------------------------------------------------------------
-bool LocationPickerContent::populateModel( Qt::Orientation aOrientation )
+bool LocationPickerContent::populateModel()
 {
     bool locationsFound;
-    if(aOrientation == Qt::Vertical)
+    // Create a standard model for the list view
+    mStandardModel = new QStandardItemModel( this );
+    if( mDataManager->populateModel( *mStandardModel, ELocationPickerContent ) )
     {
-        // Create a standard model for the list view
-        mListModel = new QStandardItemModel( this );
-        if( mDataManager->populateModel( *mListModel, ELocationPickerContent, aOrientation) )
-        {
-            locationsFound = true;
-        }
-        else
-        {
-            createNoEntryDisplay(mListModel);
-            locationsFound = false;
-        }
+        locationsFound = true;
     }
-    //for landscape view
     else
     {
-        // Create a standard model for the landscape view
-        mStandardModel = new QStandardItemModel( this );
-        if( mDataManager->populateModel(*mStandardModel, ELocationPickerContent, aOrientation) )
-        {
-            locationsFound = true;
-        }
-        else
-        {
-            createNoEntryDisplay(mStandardModel);
-            locationsFound = false;
-        }
+        createNoEntryDisplay(mStandardModel);
+        locationsFound = false;
     }
     return locationsFound;
 }
@@ -80,17 +61,9 @@
 // -----------------------------------------------------------------------------
 LocationPickerContent::~LocationPickerContent()
 {
-    delete mListModel;
     delete mStandardModel;
 }
 
-// -----------------------------------------------------------------------------
-// LocationPickerContent::getStandardListModel()
-// -----------------------------------------------------------------------------
-QStandardItemModel* LocationPickerContent::getStandardListModel()
-{
-    return mListModel;
-}
 
 // -----------------------------------------------------------------------------
 // LocationPickerContent::getStandardModel()
--- a/locationpickerservice/src/locationpickerdatamanager.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickerdatamanager.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -50,10 +50,10 @@
 // LocationPickerDataManager::populateModel()
 // ----------------------------------------------------------------------------
 bool LocationPickerDataManager::populateModel( QStandardItemModel &aModel, TViewType aViewType, 
-        Qt::Orientations aOrientation, quint32 aCollectionId )
+        quint32 aCollectionId )
 {   
     Q_D( LocationPickerDataManager);
-    return( d->populateModel( aModel, aViewType, aOrientation, aCollectionId) );
+    return( d->populateModel( aModel, aViewType, aCollectionId) );
 }
 
 // ----------------------------------------------------------------------------
--- a/locationpickerservice/src/locationpickerdatamanager_p.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickerdatamanager_p.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -16,9 +16,6 @@
 */
 
 #include <HbIcon>
-#include <QPixmap>  
-#include <QPainter>
-#include <QIcon>
 #include <locationdatalookupdb.h>
 #include <QFile>
 #include "locationpickerdatamanager_p.h"
@@ -56,11 +53,10 @@
 // LocationPickerDataManagerPrivate::populateModel()
 // ----------------------------------------------------------------------------
 bool LocationPickerDataManagerPrivate::populateModel(  QStandardItemModel &aModel, 
-        TViewType aViewType, const Qt::Orientations aOrientation, quint32 aCollectionId )
+        TViewType aViewType, quint32 aCollectionId )
 {
     mModel = &aModel;
     mViewType = aViewType;
-    mOrientation = aOrientation;
 
     if( !mDb )
     {
@@ -112,9 +108,15 @@
     }
     QString lmAddressLine1;
     QString lmAddressLine2;
+    QString contextAddress;
+    QString contextAddressCountry;
     
     for( int i = 0; i < aItemArray.count(); i++ )
     {
+        contextAddress.clear();
+        contextAddressCountry.clear();
+        lmAddressLine1.clear();
+        lmAddressLine2.clear();
     
         if( !aItemArray[i].mIsDuplicate )
         {
@@ -175,6 +177,7 @@
                     }
                 }
             }
+            contextAddress = lmAddressLine2;
             if( !aItemArray[i].mCountry.isEmpty() )
             {
                 if( !addressEmtpy )
@@ -188,79 +191,59 @@
                     lmAddressLine2 = aItemArray[i].mCountry;
                     addressEmtpy = EFalse;
                 }
+                contextAddressCountry = aItemArray[i].mCountry;
             }
             // set icons based on contact address type
             QVariantList icons;
-            
+            HbIcon adressTypeIcon;
             QString adressType;
             bool adressIconPresent = false;
             if( aItemArray[i].mSourceType == ESourceContactsHome )
             {
+                adressTypeIcon = HbIcon(KContactHomeIcon);
                 adressType = KContactHomeIcon;
                 adressIconPresent = true;
             }
             else if( aItemArray[i].mSourceType == ESourceContactsWork )
             {
+                adressTypeIcon = HbIcon(KContactWorkIcon);
                 adressType = KContactWorkIcon;
                 adressIconPresent = true;
             }
-            else if( aItemArray[i].mSourceType == ESourceContactsPref )
-            {
-                adressType = KContactPrefIcon;
-                adressIconPresent = true;
-            }
         
             // create a list item and set to model
             QStringList addressData;
-            //create model for grid view in landscape mode
-            if( mOrientation == Qt::Horizontal && ( mViewType == ELocationPickerCollectionContent || 
-                mViewType == ELocationPickerContent ) )
-            {   
-                addressData.clear();
-            
-                QString landscapeIconPath;
-            
-                if( QFile::exists( aItemArray[i].mMapTilePath ) )
-                { 
-                    //draw maptile Icon            
-           
-                    landscapeIconPath = QString( QString( aItemArray[i].mMapTilePath ) );
-                }
-                else
-                {
-                    //draw dummy icon
-                    landscapeIconPath = QString("");
-                }
+            QString landscapeIconPath;
 
-                icons<<landscapeIconPath;
-                QStandardItem *modelItem = new QStandardItem();
-                lmAddressLine1 = lmAddressLine1.append(KSeparator);
-                lmAddressLine1 = lmAddressLine1.append(KSpace);
-                QString landMark = lmAddressLine1.append(lmAddressLine2);
-                addressData <<landMark;
-                modelItem->setData(QVariant(addressData), Qt::DisplayRole);
-                modelItem->setData( icons[0], Qt::DecorationRole );
-                modelItem->setData( aItemArray[i].mId, Qt::UserRole );
-                modelItem->setData(adressType,Qt::UserRole+1);
-                mModel->appendRow( modelItem );
+            if( QFile::exists( aItemArray[i].mMapTilePath ) )
+            { 
+                //draw maptile Icon            
+                landscapeIconPath = QString( aItemArray[i].mMapTilePath );
             }
             else
-            {   
-                //create model for list view in potrait mode
-                addressData.clear();
-                HbIcon potraitIcon( KDummyImage );
-                icons<<potraitIcon;
-                if(adressIconPresent)
-                {
-                    icons<<adressType;
-                }
-                QStandardItem *modelItem = new QStandardItem();
-                addressData << lmAddressLine1 << lmAddressLine2;
-                modelItem->setData(QVariant(addressData), Qt::DisplayRole);
-                modelItem->setData( icons, Qt::DecorationRole );
-                modelItem->setData( aItemArray[i].mId, Qt::UserRole );
-                mModel->appendRow( modelItem );
+            {
+                //draw dummy icon
+                landscapeIconPath = QString("");
+            }
+            addressData.clear();
+            HbIcon potraitIcon( KDummyImage );
+            icons<<potraitIcon;
+            if(adressIconPresent)
+            {
+                icons<<adressTypeIcon;
             }
+            QStringList contextList;
+            contextList<<lmAddressLine1<<contextAddress<<contextAddressCountry;
+            QStandardItem *modelItem = new QStandardItem();
+            addressData << lmAddressLine1 << lmAddressLine2;
+            modelItem->setData(QVariant(addressData), Qt::DisplayRole);
+            modelItem->setData( icons, Qt::DecorationRole );
+            modelItem->setData( aItemArray[i].mId, Qt::UserRole );
+            modelItem->setData(landscapeIconPath,Qt::UserRole+1);
+            modelItem->setData(adressType,Qt::UserRole+2);
+            modelItem->setData(QVariant(contextList), Qt::UserRole+3);
+            
+            mModel->appendRow( modelItem );
          }
    }
     
@@ -281,16 +264,9 @@
     contactCollectionNum.append(" items");
     QString contactCollectionName( hbTrId("txt_lint_list_contact_addresses") );
  
-    if( mOrientation  == Qt::Vertical)
-    {
-        QStringList contact = (QStringList()<<contactCollectionName<<contactCollectionNum);
-        modelItemContact->setData( QVariant( contact ), Qt::DisplayRole );
-    }
-    else
-    {
-        QString contact =  contactCollectionName.append(contactCollectionNum);
-        modelItemContact->setData( QVariant( contact ), Qt::DisplayRole );
-    }
+
+    QStringList contact = (QStringList()<<contactCollectionName<<contactCollectionNum);
+    modelItemContact->setData( QVariant( contact ), Qt::DisplayRole );
       
     modelItemContact->setData( HbIcon ( KCollectionsContacts ), Qt::DecorationRole );
     modelItemContact->setData( ESourceLandmarksContactsCat, Qt::UserRole );
--- a/locationpickerservice/src/locationpickerdocumentloader.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickerdocumentloader.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -16,9 +16,8 @@
 */
 
 #include "locationpickerdocumentloader.h"
-#include "locationpickerpotraitview.h"
+#include "locationpickerview.h"
 #include "locationpickersearchview.h"
-#include "locationpickerlandscapeview.h"
 
 // ---------------------------------------------------------------------------
 // LocationPickerDocumentLoader::LocationPickerDocumentLoader()
@@ -42,17 +41,10 @@
 //
 QObject *LocationPickerDocumentLoader::createObject( const QString& type, const QString &name )
 {   
-    //for locationpickerpotraitview
-    if ( name == LocationPickerPotraitView::staticMetaObject.className() )
+    //for locationpickerview
+    if ( name == LocationPickerView::staticMetaObject.className() )
     {
-        QObject *object = new LocationPickerPotraitView(this);
-        object->setObjectName( name );
-        return object;
-    }
-    //for locationpickerlandscapeview
-    if ( name == LocationPickerLandscapeView::staticMetaObject.className() )
-    {
-        QObject *object = new LocationPickerLandscapeView(this);
+        QObject *object = new LocationPickerView(this);
         object->setObjectName( name );
         return object;
     }
--- a/locationpickerservice/src/locationpickerlandscapeview.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,449 +0,0 @@
-/*
-* Copyright (c) 2010 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: LocationPickerLandscapeView implementation
-*
-*/
-
-#include "locationpickerlandscapeview.h"
-
-#include <qstandarditemmodel.h>
-#include <HbMainWindow>
-#include <HbStyleLoader>
-#include <HbAction>
-#include <HbMenu>
-#include <HbToolBar>
-#include <QGraphicsLinearLayout>
-#include <HbLabel>
-#include <HbTextItem>
-#include <hgwidgets/hgmediawall.h>
-
-#include "hgwidgetdatamodel.h"
-#include "locationpickerproxymodel.h"
-#include "locationpickerdatamanager.h"
-#include "locationpickercollectionlistcontent.h"
-#include "locationpickercollectioncontent.h"
-
-
-
-// ----------------------------------------------------
-// LocationPickerLandscapeView::LocationPickerLandscapeView()
-// ----------------------------------------------------
-LocationPickerLandscapeView::LocationPickerLandscapeView(HbDocumentLoader* aLoader)
-    :mDocumentLoader(aLoader),
-    mAllAction(NULL),
-    mCollectionAction(NULL),
-    mSearchAction(NULL),
-    mAscendingAction(NULL),
-    mDescendingAction(NULL),
-    mCollectionContent(NULL),
-    mViewType(ELocationPickerContent),
-    mModel(NULL),
-    mWidget(NULL),
-    mLayout(NULL),
-    mEmptyLabel(NULL),
-	mLongPressMenu(NULL)
-{       
-    // create back action
-    mLandscapeBackAction = new HbAction(Hb::BackNaviAction);
-    setNavigationAction(mLandscapeBackAction);
-    connect(mLandscapeBackAction, SIGNAL(triggered()), this,
-            SLOT(backButtonTriggered()));
-    
-
-}
-// ----------------------------------------------------
-// LocationPickerLandscapeView::~LocationPickerLandscapeView()
-// ----------------------------------------------------
-LocationPickerLandscapeView::~LocationPickerLandscapeView()
-{
-    delete mCollectionContent;
-    delete mAllAction;
-    delete mCollectionAction;
-    delete mAscendingAction;
-    delete mDescendingAction;
-    delete mWidget;
-    delete mModel;
-    delete mLongPressMenu;
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerLandscapeView::backButtonTriggered()
-// ----------------------------------------------------------------------------
-void LocationPickerLandscapeView::backButtonTriggered()
-{
-    //if current model is collection content, go back to collectionlist content  
-    if(mViewType == ELocationPickerCollectionContent)
-    {
-        colectionTabTriggered();
-        emit collectionContentExited(); 
-    }
-    else
-    {
-        //complete the service
-        emit completeService();
-    } 
-}
-
-
-// ----------------------------------------------------
-// LocationPickerLandscapeView::init()
-// ----------------------------------------------------
-void LocationPickerLandscapeView::init(Qt::Orientation aOrientation, QStandardItemModel *aModel )
-{   
-      mStandardModel = aModel;      
-      //create proxy model
-      mProxyModel = new LocationPickerProxyModel( aOrientation , this  );
-      mProxyModel->setSourceModel(aModel);
-      // set sort properties
-      mProxyModel->setDynamicSortFilter(TRUE);
-      mProxyModel->setSortRole(Qt::DisplayRole);
-      mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
-      // sort in ascending order
-      mProxyModel->sort(0, Qt::AscendingOrder);    
-      
-     //Get HbAction items
-	 HbToolBar* toolbar = new HbToolBar();
-	//Create Action Items
-	 mAllAction = new HbAction();
-	 mAllAction->setIcon(QString("qtg_mono_location"));
-	 mAllAction->setCheckable(true);
-	 mCollectionAction =new HbAction();
-	 mCollectionAction->setIcon(QString("qtg_mono_location_collection"));
-	 mCollectionAction->setCheckable(true);
-	 mSearchAction = new HbAction();
-	 mSearchAction->setIcon(QString("qtg_mono_search"));
-
-	 toolbar->addAction(mAllAction);
-	 toolbar->addAction(mCollectionAction);
-	 toolbar->addAction(mSearchAction);
-	 this->setToolBar(toolbar);
-	 
-      mAscendingAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
-              QString("ascendingAction")));
-      mDescendingAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
-              QString("descendingAction")));
-      if( !mAllAction || !mCollectionAction || !mSearchAction || !mAscendingAction || !mDescendingAction)
-      {
-          qFatal("Error Reading Docml");
-      }
-
-      //connect to slots
-      connect(mAscendingAction, SIGNAL(triggered()), this, SLOT(sortAscending()));
-      connect(mDescendingAction, SIGNAL(triggered()), this,
-              SLOT(sortDescending()));
-      //connect all action Items to respective slots
-      connect(mAllAction, SIGNAL(triggered()), this, SLOT(allTabTriggered()));
-      connect(mCollectionAction, SIGNAL(triggered()), this,SLOT(colectionTabTriggered()));
-      connect(mSearchAction, SIGNAL(triggered()), this,
-              SLOT(searchTabTriggered()));
-      
-      //hurrriganes widget
-      QGraphicsWidget *widget = NULL;
-      widget = mDocumentLoader->findWidget(QString("vertical"));
-      mLayout =  static_cast<QGraphicsLinearLayout*>(widget->layout());
-      
-      mModel = new HgWidgetDataModel( mProxyModel, this );
-      mModel->setImageDataType(HgWidgetDataModel::ETypeQImage);
-      //create MediaWall Object
-      mWidget = new HgMediawall();
-      HbIcon defaultIcon(KDummyImage);
-      QImage defaultImage = defaultIcon.pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
-      mWidget->setDefaultImage(defaultImage);
-      mWidget->setObjectName("location");
-      HbStyleLoader::registerFilePath(":/location.hgmediawall.widgetml");
-      HbStyleLoader::registerFilePath(":/location.hgmediawall.css");
-      mWidget->enableReflections(false);
-      mWidget->setFontSpec(HbFontSpec(HbFontSpec::Primary));
-      mWidget->setItemSize(QSize(4.6,2));
-      connect(this->mainWindow(), SIGNAL(orientationChanged(Qt::Orientation)),mWidget,
-	   SLOT(orientationChanged(Qt::Orientation)));
-      
-      mWidget->setAcceptTouchEvents(true);
-      connect(mWidget, SIGNAL(activated(const QModelIndex &)),this, SLOT(handleActivated(const QModelIndex &)));
-      connect(mWidget, SIGNAL(longPressed(const QModelIndex &, const QPointF &)),this, 
-              SLOT(launchPopUpMenu(const QModelIndex &, const QPointF &)));
-      mLayout->addItem(mWidget);
-      mWidget->setModel(mModel);
-      mWidget->setLongPressEnabled(true);
-      mWidget->scrollTo(mWidget->currentIndex());
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::manageHgWidget()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::manageHgWidget()
-{
-    //set the appropriate model
-    switch(mViewType)
-    {
-        case ELocationPickerContent:
-        {  
-            mModel->resetModel(mProxyModel);
-            mAllAction->setChecked(true);
-            mCollectionAction->setChecked(false);
-        }
-        break;
-        case ELocationPickerCollectionContent:
-        {
-            setCollectionData(mCategoryId);
-            mCollectionAction->setChecked(true);
-            mAllAction->setChecked(false);
-        }
-        break;
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::handleActivated()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::handleActivated(const QModelIndex &aIndex)
-{   
-    //handle the activated signal according to model set
-    int row= aIndex.row();
-    int col = aIndex.column();
-    switch(mViewType)
-    { 
-        case ELocationPickerContent:
-        {
-            QModelIndex proxyModelIndex = mProxyModel->index(row,col);
-            QModelIndex  index = mProxyModel->mapToSource(
-                    proxyModelIndex);
-            quint32 lm = 0;
-            QStandardItem* item = mStandardModel->item( index.row(), index.column() );
-            QVariant var = item->data( Qt::UserRole );
-            lm = var.toUInt();
-            //item selected, complete request
-            emit selectItem( lm );
-        }
-        break;
-        case ELocationPickerCollectionContent:
-        {
-            if(!mCollectionContent->getProxyModel())
-            {
-                break;
-            }
-            QModelIndex proxyModelIndex = mCollectionContent->getProxyModel()->index(row,col);
-            QModelIndex   index = mCollectionContent->getProxyModel()->mapToSource(
-                    proxyModelIndex);
-            quint32 lm = 0;
-            mCollectionContent->getData(index, lm);
-            emit selectItem(lm);
-        }
-        break;
-        default:
-            break;
-    }
-}
-
-
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::sortAscending()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::sortAscending()
-{   
-    //check the model set and do sorting accordingly
-    if (mViewType == ELocationPickerContent)
-    {
-        mProxyModel->sort(0,Qt::AscendingOrder);
-        mModel->resetModel(mProxyModel);
-    }
-    else
-    {
-        mCollectionContent->getProxyModel()->sort(0,Qt::AscendingOrder);
-        mModel->resetModel(mCollectionContent->getProxyModel());
-    }
-
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::sortDescending()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::sortDescending()
-{   
-    //check the model set and do sorting accordingly
-    if (mViewType == ELocationPickerContent)
-    {
-        mProxyModel->sort(0,Qt::DescendingOrder);
-        mModel->resetModel(mProxyModel);
-    }
-    else
-    {
-        mCollectionContent->getProxyModel()->sort(0,Qt::DescendingOrder);
-        mModel->resetModel(mCollectionContent->getProxyModel());
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::handleAllTab()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::allTabTriggered()
-{
-    //execute only if tab is not pressed
-    if (mAllAction->isChecked())
-    {   
-        if(mEmptyLabel)
-        {
-            mLayout->removeItem(mEmptyLabel);
-            mEmptyLabel->hide();
-            mLayout->insertItem(0,mWidget);
-            mWidget->setVisible(true);
-            delete mEmptyLabel;
-            mEmptyLabel = NULL;
-        }
-        mModel->resetModel(mProxyModel);
-    }
-    mAscendingAction->setEnabled(true);
-    mDescendingAction->setEnabled(true);
-    mCollectionAction->setChecked(false);
-    mViewType = ELocationPickerContent;
-    //delete mCollectionContent if coming back from collectioncontent
-    if (mCollectionContent)
-    {
-        delete mCollectionContent;
-        mCollectionContent = NULL;
-    }
-    else
-    {
-        //Keep the tab pressed
-        mAllAction->setChecked(true);
-    }
-
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::handleCollectionTab()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::colectionTabTriggered()
-{
-    //execute only if tab is not pressed
-    if (mCollectionAction->isChecked())
-    {   
-        mAscendingAction->setDisabled(true);
-        mDescendingAction->setDisabled(true);
-        mViewType = ELocationPickerCollectionListContent;
-    	emit handleCollectionList();
-    }
-    else
-    {
-	    //Keep the tab pressed
-        mCollectionAction->setChecked(true);
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::searchTabTriggered()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::searchTabTriggered()
-{
-    emit switchToSearchView();
-}
-
-void LocationPickerLandscapeView::setCollectionData( quint32 aCategoryId )
-{   
-    if(mEmptyLabel)
-    {   
-        mLayout->removeItem(mEmptyLabel);
-        mEmptyLabel->hide();
-        mLayout->insertItem(0,mWidget);
-        mWidget->show();
-        delete mEmptyLabel;
-        mEmptyLabel = NULL;
-    }
-    if(!mCollectionContent)
-    {
-        mCollectionContent = new LocationPickerCollectionContent(Qt::Horizontal , aCategoryId);
-    }
-    if(mCollectionContent->locationFound())
-    {
-        mModel->resetModel(mCollectionContent->getProxyModel());
-        //Enable the options
-        mAscendingAction->setEnabled(true);
-        mDescendingAction->setEnabled(true);
-    }
-    else
-    {
-    if(!mEmptyLabel)
-    {
-        mEmptyLabel =  new HbTextItem(hbTrId("txt_lint_list_no_location_entries_present"));
-    }
-    mEmptyLabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
-    mEmptyLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary));
-    mLayout->removeItem(mWidget);
-    mWidget->setVisible(false);
-    mLayout->insertItem(0, mEmptyLabel);
-    }
-
-    mViewType = ELocationPickerCollectionContent;
-    
-    mCollectionAction->setChecked(true);
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::setCategoryID()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::setCategoryID( quint32 aCategoryId  )
-{
-    mCategoryId = aCategoryId;
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::getViewType()
-// -----------------------------------------------------------------------------
-TViewType LocationPickerLandscapeView::getViewType()
-{
-    return mViewType;
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::setViewType()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::setViewType(TViewType aViewType)
-{
-    mViewType = aViewType;
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::clearContentModel()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::clearContentModel()
-{
-   if(mCollectionContent)
-   {
-   delete mCollectionContent;
-   mCollectionContent = NULL;
-   }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::launchPopUpMenu()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::launchPopUpMenu(const QModelIndex &aIndex, const QPointF &aPoint)
-{
-    mLongPressMenu = new HbMenu();
-    mLongPressMenu->setTimeout(HbMenu::NoTimeout);
-    HbAction* selectAction  = mLongPressMenu->addAction(hbTrId("Select"));
-    mIndex = aIndex;
-    connect(selectAction, SIGNAL(triggered()), this, SLOT(handleLongPress()));
-    mLongPressMenu->setPreferredPos(aPoint);
-    mLongPressMenu->open();
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerLandscapeView::handleLongPress()
-// -----------------------------------------------------------------------------
-void LocationPickerLandscapeView::handleLongPress()
-{
-    handleActivated(mIndex);
-}
--- a/locationpickerservice/src/locationpickerpotraitview.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +0,0 @@
-/*
-* Copyright (c) 2010 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: LocationPickerView implementation
-*
-*/
-
-#include "locationpickerpotraitview.h"
-
-#include <HbMainWindow>
-#include <qstandarditemmodel.h>
-#include <HbListView>
-#include <HbListViewItem>
-#include <HbAction>
-#include <HbMenu>
-#include <HbToolBar>
-#include <QGraphicsLinearLayout>
-
-#include "locationpickerproxymodel.h"
-#include "locationpickerdatamanager.h"
-#include "locationpickercontent.h" 
-#include "locationpickercollectionlistcontent.h"
-#include "locationpickercollectioncontent.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ----------------------------------------------------
-// LocationPickerPotraitView::LocationPickerView()
-// ----------------------------------------------------
-LocationPickerPotraitView::LocationPickerPotraitView( HbDocumentLoader* aLoader )
-    :mDocumentLoader(aLoader),
-    mLocationPickerCollectionListContent(NULL),
-    mProxyModel(NULL),
-    mAllAction(NULL),
-    mCollectionAction(NULL),
-    mSearchAction(NULL),
-    mAscendingAction(NULL),
-    mDescendingAction(NULL),
-    mListView(NULL),
-    mCollectionContent(NULL),
-    mViewType(ELocationPickerContent),
-    mLinerLayout(NULL),
-    mColllabel(NULL),
-    mLongPressMenu(NULL)
-{   
-    // create back action
-    mPotraitBackAction = new HbAction(Hb::BackNaviAction);
-    // add back key action
-    setNavigationAction(mPotraitBackAction);
-    //connect to slots
-     connect(mPotraitBackAction, SIGNAL(triggered()), this,
-            SLOT(backTriggered()));     
-    //create list item  
-    mListItem = new HbListViewItem();
-    //set the graphics size
-    mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
-}
-// ----------------------------------------------------
-// LocationPickerPotraitView::~LocationPickerView()
-// ----------------------------------------------------
-LocationPickerPotraitView::~LocationPickerPotraitView()
-{
-    delete mCollectionContent;
-    delete mLocationPickerCollectionListContent;
-    delete mAllAction;
-    delete mCollectionAction;
-    delete mAscendingAction;
-    delete mDescendingAction;
-    delete mListView;
-    delete mLongPressMenu;
-}
-
-// ----------------------------------------------------------------------------
-// LocationPickerPotraitView::backButtonTriggered()
-// ----------------------------------------------------------------------------
-void LocationPickerPotraitView::backTriggered()
-{
-    //if current model is collection content, go back to collectionlist content  
-    if(mViewType == ELocationPickerCollectionContent)
-    {
-        colectionTabTriggered();
-        emit collectionContentExited(); 
-    }
-    else
-    {
-        //complete the service
-        emit completeService();
-    } 
-    if (mLinerLayout && mColllabel)
-       {
-            mColllabel->setPlainText("");
-           mLinerLayout->removeItem(mColllabel);
-           mLinerLayout->updateGeometry();           
-           update();
-       }
-}
-
-
-// ----------------------------------------------------
-// LocationPickerPotraitView::init()
-// ----------------------------------------------------
-void LocationPickerPotraitView::init( bool aPopulated, Qt::Orientation aOrientation, QStandardItemModel *aModel )
-{   
-    mModel = aModel;
-    if(aPopulated)
-    {
-    // Create Collection List Content
-    mLocationPickerCollectionListContent = new LocationPickerCollectionListContent(aOrientation);
-    //create proxy model
-    mProxyModel = new LocationPickerProxyModel( aOrientation , this  );
-    mProxyModel->setSourceModel(aModel);
-    // set sort properties
-    mProxyModel->setDynamicSortFilter(TRUE);
-    mProxyModel->setSortRole(Qt::DisplayRole);
-    mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
-    // sort in ascending order
-    mProxyModel->sort(0, Qt::AscendingOrder); 
-    }
-    //Get HbAction items
-    mListView = qobject_cast<HbListView*> (mDocumentLoader->findObject(QString(
-                   "ListView")));
-    HbToolBar* toolbar = new HbToolBar();
-    //Create Action Items
-    mAllAction = new HbAction();
-    mAllAction->setIcon(QString("qtg_mono_location"));
-    mAllAction->setCheckable(true);
-    mCollectionAction =new HbAction();
-    mCollectionAction->setIcon(QString("qtg_mono_location_collection"));
-    mCollectionAction->setCheckable(true);
-    mSearchAction = new HbAction();
-    mSearchAction->setIcon(QString("qtg_mono_search"));
-    
-    toolbar->addAction(mAllAction);
-    toolbar->addAction(mCollectionAction);
-    toolbar->addAction(mSearchAction);
-    this->setToolBar(toolbar);
-    mAscendingAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
-            QString("ascendingAction")));
-    mDescendingAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
-            QString("descendingAction")));
-    if( !mAllAction || !mCollectionAction || !mSearchAction || !mAscendingAction || !mDescendingAction || !mListView)
-    {
-        qFatal("Error Reading Docml");
-    }
-
-    mColllabel =  new HbLabel();
-      
-    //connect to slots
-    connect(mAscendingAction, SIGNAL(triggered()), this, SLOT(sortAscending()));
-    connect(mDescendingAction, SIGNAL(triggered()), this,
-            SLOT(sortDescending()));
-    //connect all action Items to respective slots
-    connect(mAllAction, SIGNAL(triggered()), this, SLOT(allTabTriggered()));
-    connect(mCollectionAction, SIGNAL(triggered()), this,SLOT(colectionTabTriggered()));
-    connect(mSearchAction, SIGNAL(triggered()), this,
-            SLOT(searchTabTriggered()));
-    // connect the signal of the list activated to a slot.
-    connect(mListView, SIGNAL(activated(const QModelIndex &)), this, SLOT(handleActivated(const QModelIndex &)));
-    connect(mListView,SIGNAL(longPressed(HbAbstractViewItem*, const QPointF &)),this,
-            SLOT(launchPopUpMenu(HbAbstractViewItem*, const QPointF &)));
-}
-
-// ----------------------------------------------------
-// LocationPickerPotraitView::manageListView()
-// ----------------------------------------------------
-void LocationPickerPotraitView::manageListView()
-{   
-    //set the appropriate model
-    switch(mViewType)
-    {
-        case ELocationPickerContent:
-        {   
-            mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
-            mListView->setModel(mProxyModel,mListItem);
-            mAllAction->setChecked(true);
-            mCollectionAction->setChecked(false);
-            mViewType = ELocationPickerContent;
-        }
-        break;
-        case ELocationPickerCollectionListContent:
-        {
-            mListItem->setGraphicsSize(HbListViewItem::MediumIcon);
-            mListView->setModel(mLocationPickerCollectionListContent->getStandardModel(),mListItem);
-            mCollectionAction->setChecked(true);
-            mAllAction->setChecked(false);
-            if(mAscendingAction->isEnabled())
-            {
-                mAscendingAction->setDisabled(true);
-                mDescendingAction->setDisabled(true);
-            }
-            mViewType = ELocationPickerCollectionListContent;
-        }
-        break;
-        case ELocationPickerCollectionContent:
-        {
-            setCollectionData(mCategoryId);
-            mCollectionAction->setChecked(true);
-            mAllAction->setChecked(false);
-            mViewType = ELocationPickerCollectionContent;
-        }
-        break;
-        default:
-            break;
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::disableTabs()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::disableTabs( QStandardItemModel *aModel )
-{
-    //if no location entries present
-    mListView->setModel(aModel,mListItem);
-    mAllAction->setDisabled(true);
-    mCollectionAction->setDisabled(true);
-    mSearchAction->setDisabled(true);
-    mAscendingAction->setDisabled(true);
-    mDescendingAction->setDisabled(true);
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::handleActivated()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::handleActivated(const QModelIndex &aIndex)
-{
-    //handle the activated signal according to model set
-    switch(mViewType)
-    {
-        case ELocationPickerContent:
-        {   
-            if(!mProxyModel)
-            {
-            break;
-            }
-            QModelIndex   index = mProxyModel->mapToSource(
-                    aIndex);
-            quint32 lm = 0;
-            QStandardItem* item = mModel->item( index.row(), index.column() );
-            QVariant var = item->data( Qt::UserRole );
-            lm = var.toUInt();
-            //item selected, complete request
-            emit selectItem( lm );
-        }
-            break;
-        case ELocationPickerCollectionListContent:
-        {
-            mLocationPickerCollectionListContent->getData(
-                    aIndex, mCategoryId );
-            mViewType = ELocationPickerCollectionContent;
-            //send categoryID to set the collection content
-            emit sendCategoryID(mCategoryId);
-        }
-            break;
-        case ELocationPickerCollectionContent:
-        {
-            if(!mCollectionContent->getProxyModel())
-            {
-                break;
-            }
-            QModelIndex  index = mCollectionContent->getProxyModel()->mapToSource(
-                    aIndex);
-            quint32 lm = 0;
-            mCollectionContent->getData(index, lm);
-            //item selected, complete request
-            emit selectItem(lm);
-        }
-            break;
-        default:
-            break;
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::sortAscending()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::sortAscending()
-{   
-    //check the model set and do sorting accordingly
-    if (mViewType == ELocationPickerContent)
-    {
-        mProxyModel->sort(0, Qt::AscendingOrder);
-    }
-    else
-    {
-        mCollectionContent->getProxyModel()->sort(0, Qt::AscendingOrder);
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::sortDescending()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::sortDescending()
-{
-    //check the model set and do sorting accordingly
-    if (mViewType == ELocationPickerContent)
-    {
-        mProxyModel->sort(0, Qt::DescendingOrder);
-    }
-    else
-    {
-        mCollectionContent->getProxyModel()->sort(0, Qt::DescendingOrder);
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::handleAllTab()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::allTabTriggered()
-{
-    if (mLinerLayout && mColllabel)
-        {
-            mColllabel->setPlainText("");
-            mLinerLayout->removeItem(mColllabel);
-            mLinerLayout->updateGeometry();
-            update();
-        }
-    //execute only if tab is not pressed
-    if (mAllAction->isChecked())
-    {    
-        mViewType = ELocationPickerContent;
-        if(this->mainWindow()->orientation() == Qt::Horizontal)
-        {
-            //if in landscape send signal to launch grid view
-            emit handleAllList();
-        }
-        else
-        {
-            mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
-            mListView->setModel(mProxyModel,mListItem);
-            mCollectionAction->setChecked(false);
-        }
-        mAscendingAction->setEnabled(true);
-        mDescendingAction->setEnabled(true);
-        //delete mCollectionContent if coming back from collectioncontent
-        if (mCollectionContent)
-        {
-            delete mCollectionContent;
-            mCollectionContent = NULL;
-        }
-    }
-    else
-    {
-        //Keep the tab pressed
-        mAllAction->setChecked(true);
-    }
-    
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::handleCollectionTab()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::colectionTabTriggered()
-{
-    if (mLinerLayout  && (mViewType != ELocationPickerCollectionContent) && mColllabel )
-    {
-        mColllabel->setPlainText("");
-        mLinerLayout->removeItem(mColllabel);
-        mLinerLayout->updateGeometry();
-        update();
-    }
-    //execute only if tab is not pressed
-    if (mCollectionAction->isChecked())
-    {   
-        mListItem->setGraphicsSize(HbListViewItem::MediumIcon);
-        mListView->setModel(mLocationPickerCollectionListContent->getStandardModel(),mListItem);
-        mAscendingAction->setDisabled(true);
-        mDescendingAction->setDisabled(true);
-        mAllAction->setChecked(false);
-        mViewType = ELocationPickerCollectionListContent;
-    }
-    else
-    {
-        //Keep the tab pressed
-        mCollectionAction->setChecked(true);
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::searchTabTriggered()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::searchTabTriggered()
-{
-    emit switchToSearchView();
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::setCollectionData()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::setCollectionData( quint32 acategoryId )
-{
-    QString categoryname;
-    
-    switch(acategoryId)
-        {
-        
-        case 1: categoryname = "Landmarks";
-                break;
-        case 8: categoryname = "Contacts";     
-                break;
-        case 9: categoryname = "Calender";
-               break;
-			   
-        }
-    if(!mCollectionContent)
-    {
-        mCollectionContent
-        = new LocationPickerCollectionContent(Qt::Vertical , acategoryId);
-    }
-    mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
-    if(mCollectionContent->locationFound())
-    {
-        mListView->setModel(mCollectionContent->getProxyModel(),mListItem);
-        //Enable the options
-        mAscendingAction->setEnabled(true);
-        mDescendingAction->setEnabled(true);
-    }
-    else
-    {
-        mListView->setModel(mCollectionContent->getStandardModel(),mListItem);
-    }
-    mViewType = ELocationPickerCollectionContent;
-    
-    mCollectionAction->setChecked(true);
-    mLinerLayout = static_cast<QGraphicsLinearLayout*>(widget()->layout());
-
-    if(mColllabel)
-    {
-        mLinerLayout->insertItem(0,mColllabel);
-        mColllabel->setPlainText(categoryname);   
-        mLinerLayout->updateGeometry();
-        update();
-     }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::setCategoryID()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::setCategoryID( quint32 aCategoryId  )
-{
-    mCategoryId = aCategoryId;
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::getViewType()
-// -----------------------------------------------------------------------------
-TViewType LocationPickerPotraitView::getViewType()
-{
-    return mViewType;
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::setViewType()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::setViewType(TViewType aViewType)
-{
-    mViewType = aViewType;
-}
-
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::clearContentModel()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::clearContentModel()
-{
-    if(mCollectionContent)
-    {
-    delete mCollectionContent;
-    mCollectionContent = NULL;
-    }
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::launchPopUpMenu()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::launchPopUpMenu(HbAbstractViewItem *aItem, const QPointF &aPoint)
-{
-    mLongPressMenu = new HbMenu();
-    mLongPressMenu->setTimeout(HbMenu::NoTimeout);
-    HbAction* selectAction  = mLongPressMenu->addAction(hbTrId("Select"));
-    mIndex = aItem->modelIndex();
-    connect(selectAction, SIGNAL(triggered()), this, SLOT(handleLongPress()));
-    mLongPressMenu->setPreferredPos(aPoint);
-    mLongPressMenu->open();
-}
-
-// -----------------------------------------------------------------------------
-// LocationPickerPotraitView::handleLongPress()
-// -----------------------------------------------------------------------------
-void LocationPickerPotraitView::handleLongPress()
-{
-    handleActivated(mIndex);
-}
--- a/locationpickerservice/src/locationpickerproxymodel.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickerproxymodel.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -22,9 +22,8 @@
 // LocationPickerProxyModel::LocationPickerProxyModel()
 // ----------------------------------------------------
 
-LocationPickerProxyModel::LocationPickerProxyModel( Qt::Orientations aOrientation , QObject *parent )
-     :QSortFilterProxyModel(parent),
-     mOrientation( aOrientation )
+LocationPickerProxyModel::LocationPickerProxyModel( QObject *parent )
+     :QSortFilterProxyModel(parent)
 {
 }
 
@@ -36,26 +35,16 @@
 {
      // get left and right items data and implement sort logic
      // return true if left is less than right
-	 QVariant leftData = sourceModel()->data(left);
+     QVariant leftData = sourceModel()->data(left);
      QVariant rightData = sourceModel()->data(right);
 
-    if( mOrientation == Qt::Vertical )
-    {
-        QStringList leftStringList = leftData.toStringList();
+     QStringList leftStringList = leftData.toStringList();
 
-        QStringList rightStringList = rightData.toStringList();
+     QStringList rightStringList = rightData.toStringList();
 
-        return QString::compare( QString( leftStringList[0] + " " + leftStringList[1] ),
-                                            QString( rightStringList[0] + " " + rightStringList[1] ), Qt::CaseInsensitive ) < 0;
-    }
-    else
-    {
-        QString leftString = leftData.toString();
+     return QString::compare( QString( leftStringList[0] + " " + leftStringList[1] ),
+             QString( rightStringList[0] + " " + rightStringList[1] ), Qt::CaseInsensitive ) < 0;
 
-        QString rightString = rightData.toString();
-
-        return QString::compare( leftString, rightString, Qt::CaseInsensitive ) < 0;
-    }
 }
 
  // ----------------------------------------------------
@@ -65,8 +54,7 @@
 bool LocationPickerProxyModel::filterAcceptsRow( int sourceRow,
         const QModelIndex &sourceParent ) const
 {
-    if( mOrientation == Qt::Vertical)
-    {
+
     // implement logic for search.
     QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
 
@@ -74,9 +62,7 @@
     QString fullString = " " + stringList[0] + " " + stringList[1];
 
     return (fullString.contains(mSearchText, Qt::CaseInsensitive));
-    }
-    else
-    return true;
+
 }
 
  // ----------------------------------------------------
--- a/locationpickerservice/src/locationpickersearchview.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickersearchview.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -42,7 +42,8 @@
     mEmptyLabel(NULL),
     mVerticalLayout(NULL),
     mDocumentLoader(aLoader),
-	mLongPressMenu(NULL)
+	mLongPressMenu(NULL),
+	mSelectAction(NULL)
 {
 
 }
@@ -53,7 +54,6 @@
 {
     delete mProxyModel;
     delete mEmptyLabel;
-    delete mLongPressMenu;
 }
 
 // ----------------------------------------------------
@@ -86,7 +86,7 @@
     mListView->setItemPrototype( hbListItem );
 
     // Create the proxy model.
-    mProxyModel = new LocationPickerProxyModel( Qt ::Vertical );
+    mProxyModel = new LocationPickerProxyModel();
     mProxyModel->setSourceModel(mModel);
     mListView->setModel(mProxyModel);
 
@@ -172,7 +172,6 @@
     aValue = var.toUInt();
 }
 
-
 // -----------------------------------------------------------------------------
 // LocationPickerSearchView::launchPopUpMenu()
 // -----------------------------------------------------------------------------
@@ -180,10 +179,11 @@
 {
     mLongPressMenu = new HbMenu();
     mLongPressMenu->setTimeout(HbMenu::NoTimeout);
-    HbAction* selectAction  = mLongPressMenu->addAction(hbTrId("Select"));
+    mSelectAction  = mLongPressMenu->addAction(hbTrId("Select"));
     mIndex = aItem->modelIndex();
-    connect(selectAction, SIGNAL(triggered()),this, SLOT(handleLongPress()));
+    connect(mSelectAction, SIGNAL(triggered()),this, SLOT(handleLongPress()));
     mLongPressMenu->setPreferredPos(aPoint);
+    connect(mLongPressMenu,SIGNAL(aboutToClose ()),this,SLOT(deleteMenu()));
     mLongPressMenu->open();
 }
 
@@ -194,3 +194,14 @@
 {
     handleActivated(mIndex);
 }
+
+// -----------------------------------------------------------------------------
+// LocationPickerSearchView::deleteMenu()
+// -----------------------------------------------------------------------------
+void LocationPickerSearchView::deleteMenu()
+{
+    mLongPressMenu->deleteLater();
+    mLongPressMenu = NULL;
+    mSelectAction->deleteLater();
+    mSelectAction = NULL;
+}
--- a/locationpickerservice/src/locationpickerservice.cpp	Wed Jun 23 18:07:15 2010 +0300
+++ b/locationpickerservice/src/locationpickerservice.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -51,11 +51,6 @@
         bool ok = completeRequest(mAsyncReqId,mReturn);
 		mAsyncReqId = 0;
     }
-    else
-    {
-        qApp->quit();
-        
-    }
 }
 // ----------------------------------------------------------------------------
 // isActive()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationpickerservice/src/locationpickerview.cpp	Tue Jul 06 14:10:28 2010 +0300
@@ -0,0 +1,770 @@
+/*
+* Copyright (c) 2010 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: LocationPickerView implementation
+*
+*/
+
+#include "locationpickerview.h"
+
+#include <HbMainWindow>
+#include <qstandarditemmodel.h>
+#include <HbListView>
+#include <HbListViewItem>
+#include <HbAction>
+#include <HbMenu>
+#include <HbToolBar>
+#include <HbStyleLoader>
+#include <QGraphicsLinearLayout>
+#include <HbDialog>
+
+#include "hgwidgetdatamodel.h"
+#include "locationpickerproxymodel.h"
+#include "locationpickerdatamanager.h"
+#include "locationpickercontent.h" 
+#include "locationpickercollectionlistcontent.h"
+#include "locationpickercollectioncontent.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ----------------------------------------------------
+// LocationPickerView::LocationPickerView()
+// ----------------------------------------------------
+LocationPickerView::LocationPickerView( HbDocumentLoader* aLoader )
+    :mDocumentLoader(aLoader),
+    mLocationPickerCollectionListContent(NULL),
+    mProxyModel(NULL),
+    mAllAction(NULL),
+    mCollectionAction(NULL),
+    mSearchAction(NULL),
+    mAscendingAction(NULL),
+    mDescendingAction(NULL),
+    mListView(NULL),
+    mCollectionContent(NULL),
+    mViewType(ELocationPickerContent),
+    mLinerLayout(NULL),
+    mColllabel(NULL),
+    mEmptyLabel(NULL),
+    mDialog(NULL),
+    mMapIconLabel(NULL),
+    mTitleLabel(NULL),
+    mAddressMiddle(NULL),
+    mAddressBottom(NULL),
+    mLongPressMenu(NULL),
+    mSelectAction(NULL),
+    mDetailsAction(NULL),
+    mPopulated(false)
+{   
+    //Create Action Items
+    mAllAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
+            QString("allAction")));
+    mCollectionAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
+            QString("collectionAction")));
+    mSearchAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
+            QString("searchAction")));
+    mAscendingAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
+            QString("ascendingAction")));
+    mDescendingAction = qobject_cast<HbAction*> (mDocumentLoader->findObject(
+            QString("descendingAction")));
+    if( !mAllAction || !mCollectionAction || !mSearchAction || !mAscendingAction || !mDescendingAction )
+    {
+        qFatal("Error Reading Docml");
+    }
+    // create back action
+    mBackAction = new HbAction(Hb::BackNaviAction);
+    // add back key action
+    setNavigationAction(mBackAction);
+    //connect to slots
+     connect(mBackAction, SIGNAL(triggered()), this,
+            SLOT(backTriggered()));     
+    //create list item  
+    mListItem = new HbListViewItem();
+    //set the graphics size
+    mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
+}
+// ----------------------------------------------------
+// LocationPickerView::~LocationPickerView()
+// ----------------------------------------------------
+LocationPickerView::~LocationPickerView()
+{
+    delete mListItem;
+    delete mBackAction;
+    if(mPopulated)
+    {
+    	mLinerLayout->removeItem(mListView);
+    	mLinerLayout->removeItem(mWidget);
+    	delete mCollectionContent;
+    	delete mLocationPickerCollectionListContent;
+    	delete mListView;
+    	delete mWidget;
+    	delete mHgModel;
+    	delete mProxyModel;
+    	delete mColllabel;
+    }
+}
+
+// ----------------------------------------------------------------------------
+// LocationPickerView::backButtonTriggered()
+// ----------------------------------------------------------------------------
+void LocationPickerView::backTriggered()
+{
+    //if current model is collection content, go back to collectionlist content  
+    if(mViewType == ELocationPickerCollectionContent)
+    {
+        removeDetailsLabel();
+        colectionTabTriggered();
+        clearContentModel();
+    }
+    else
+    {
+        //complete the service
+        emit completeService();
+    } 
+    
+}
+
+
+// ----------------------------------------------------
+// LocationPickerView::init()
+// ----------------------------------------------------
+void LocationPickerView::init( Qt::Orientation aOrientation, QStandardItemModel *aModel )
+{   
+    mPopulated = true;
+    // Create Collection List Content
+    mLocationPickerCollectionListContent = new LocationPickerCollectionListContent();
+    mModel = aModel;        
+    // Create Collection List Content
+    mLocationPickerCollectionListContent = new LocationPickerCollectionListContent();
+    //create proxy model
+    mProxyModel = new LocationPickerProxyModel( this  );
+    mProxyModel->setSourceModel(aModel);
+    // set sort properties
+    mProxyModel->setDynamicSortFilter(TRUE);
+    mProxyModel->setSortRole(Qt::DisplayRole);
+    mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
+    // sort in ascending order
+    mProxyModel->sort(0, Qt::AscendingOrder); 
+    mLinerLayout = static_cast<QGraphicsLinearLayout*>(widget()->layout());
+    //Get HbAction items
+    mListView = new HbListView();
+    mColllabel =  new HbLabel();
+    createHurriganesWidget();  
+    mWidget->setModel(mHgModel);
+    //connect to slots
+    connect(mAscendingAction, SIGNAL(triggered()), this, SLOT(sortAscending()));
+    connect(mDescendingAction, SIGNAL(triggered()), this,
+            SLOT(sortDescending()));
+    //connect all action Items to respective slots
+    connect(mAllAction, SIGNAL(triggered()), this, SLOT(allTabTriggered()));
+    connect(mCollectionAction, SIGNAL(triggered()), this,SLOT(colectionTabTriggered()));
+    connect(mSearchAction, SIGNAL(triggered()), this,
+            SLOT(searchTabTriggered()));
+    // connect the signal of the list activated to a slot.
+    connect(mListView, SIGNAL(activated(const QModelIndex &)), this, SLOT(handleActivated(const QModelIndex &)));
+    connect(mListView,SIGNAL(longPressed(HbAbstractViewItem*, const QPointF &)),this,
+            SLOT(launchPopUpMenu(HbAbstractViewItem*, const QPointF &)));
+    //set widget according to orientation
+    if(aOrientation == Qt::Horizontal)
+    {
+        manageHgWidget();
+    }
+    else
+    {
+        manageListView();
+    }
+}
+
+
+void LocationPickerView::createHurriganesWidget()
+{
+    //hurrriganes widget
+    mHgModel = new HgWidgetDataModel( mProxyModel, this );
+    mHgModel->setImageDataType(HgWidgetDataModel::ETypeQImage);
+    //create MediaWall Object
+    mWidget = new HgMediawall();
+    HbIcon defaultIcon(KDummyImage);
+    QImage defaultImage = defaultIcon.pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
+    mWidget->setDefaultImage(defaultImage);
+    HgMediawall* mediawall = qobject_cast<HgMediawall*>( mWidget );
+    mediawall->setObjectName("location");
+    HbStyleLoader::registerFilePath(":/location.hgmediawall.widgetml");
+    HbStyleLoader::registerFilePath(":/location.hgmediawall.css");
+    mediawall->enableReflections(false);
+    mediawall->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+    mediawall->setItemSize(QSize(4,3));
+    connect(this->mainWindow(), SIGNAL(orientationChanged(Qt::Orientation)),mWidget,
+            SLOT(orientationChanged(Qt::Orientation)));
+
+    mWidget->setAcceptTouchEvents(true);
+    connect(mWidget, SIGNAL(activated(const QModelIndex &)),this, SLOT(handleActivated(const QModelIndex &)));
+    connect(mWidget, SIGNAL(longPressed(const QModelIndex &, const QPointF &)),this, 
+            SLOT(launchPopUpMenu(const QModelIndex &, const QPointF &)));
+    mWidget->setLongPressEnabled(true);
+    mWidget->scrollTo(mWidget->currentIndex());
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::manageHgWidget()
+// -----------------------------------------------------------------------------
+void LocationPickerView::manageHgWidget()
+{   
+    removeDetailsLabel();
+    mLinerLayout->removeItem(mListView);
+    mListView->hide();
+    mWidget->show();
+    mLinerLayout->updateGeometry();
+    //set the appropriate model
+    switch(mViewType)
+    {
+        case ELocationPickerContent:
+        {  
+            mHgModel->resetModel(mProxyModel);
+            mAllAction->setChecked(true);
+            mCollectionAction->setChecked(false);
+            mLinerLayout->insertItem(1,mWidget);
+        }
+        break;
+        case ELocationPickerCollectionContent:
+        {
+            setCollectionData(mCategoryId);
+            mCollectionAction->setChecked(true);
+            mAllAction->setChecked(false);
+        }
+        break;
+    }
+}
+
+// ----------------------------------------------------
+// LocationPickerView::manageListView()
+// ----------------------------------------------------
+void LocationPickerView::manageListView()
+{   
+    if(mEmptyLabel)
+    {
+        removeDetailsLabel();
+    }
+    else
+    {
+        mLinerLayout->removeItem(mWidget);
+        mWidget->hide();   
+    }
+    mLinerLayout->insertItem(1,mListView);
+    mListView->show();
+    //set the appropriate model
+    switch(mViewType)
+    {
+        case ELocationPickerContent:
+        {   
+            mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
+            mListView->setModel(mProxyModel,mListItem);
+            mAllAction->setChecked(true);
+            mCollectionAction->setChecked(false);
+            mViewType = ELocationPickerContent;
+        }
+        break;
+        case ELocationPickerCollectionListContent:
+        {
+            mListView->setModel(mLocationPickerCollectionListContent->getStandardModel(),mListItem);
+            mCollectionAction->setChecked(true);
+            mAllAction->setChecked(false);
+            if(mAscendingAction->isEnabled())
+            {
+                mAscendingAction->setDisabled(true);
+                mDescendingAction->setDisabled(true);
+            }
+            mViewType = ELocationPickerCollectionListContent;
+        }
+        break;
+        case ELocationPickerCollectionContent:
+        {
+            mCollectionAction->setChecked(true);
+            mAllAction->setChecked(false);
+            mViewType = ELocationPickerCollectionContent;
+            setCollectionData(mCategoryId);
+        }
+        break;
+        default:
+            break;
+    }
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::disableTabs()
+// -----------------------------------------------------------------------------
+void LocationPickerView::disableTabs()
+{
+    //if no location entries present
+    mLinerLayout = static_cast<QGraphicsLinearLayout*>(widget()->layout());
+    mEmptyLabel =  new HbTextItem( hbTrId( "txt_lint_list_no_location_entries_present" ) );
+    mEmptyLabel->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding );
+    mEmptyLabel->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
+    mEmptyLabel->setAlignment( Qt::AlignCenter );
+    mLinerLayout->insertItem( 1, mEmptyLabel );
+    mAllAction->setDisabled( true );
+    mCollectionAction->setDisabled( true );
+    mSearchAction->setDisabled( true );
+    mAscendingAction->setDisabled( true );
+    mDescendingAction->setDisabled( true );
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::handleActivated()
+// -----------------------------------------------------------------------------
+void LocationPickerView::handleActivated( const QModelIndex &aIndex )
+{
+    QModelIndex  index;
+    QStandardItem* item;
+    int row= aIndex.row();
+    int col = aIndex.column();
+    //handle the activated signal according to model set
+    switch(mViewType)
+    {    
+        case ELocationPickerContent:
+        {   
+            if(mainWindow()->orientation() == Qt::Vertical)
+            {
+                index = mProxyModel->mapToSource(
+                    aIndex);
+                item = mModel->item( index.row(), index.column() );
+            }
+            else
+            {
+                QModelIndex proxyModelIndex = mProxyModel->index(row,col);
+                index = mProxyModel->mapToSource(
+                        proxyModelIndex);
+                item = mModel->item( index.row(), index.column() );
+            }
+            QVariant var = item->data( Qt::UserRole );
+            quint32 lm = var.toUInt();
+            //item selected, complete request
+            emit selectItem( lm );
+        }
+            break;
+        case ELocationPickerCollectionListContent:
+        {
+            mLocationPickerCollectionListContent->getData(
+                    aIndex, mCategoryId );
+            setCollectionData(mCategoryId);
+            mViewType = ELocationPickerCollectionContent;
+        }
+            break;
+        case ELocationPickerCollectionContent:
+        {
+            if(mainWindow()->orientation() == Qt::Vertical)
+            {
+                index = mCollectionContent->getProxyModel()->mapToSource(
+                    aIndex);
+            }
+            else
+            {
+                QModelIndex proxyModelIndex = mCollectionContent->getProxyModel()->index(row,col);
+                index = mCollectionContent->getProxyModel()->mapToSource(
+                        proxyModelIndex);
+            }
+            quint32 lm = 0;
+            mCollectionContent->getData(index, lm);
+            //item selected, complete request
+            emit selectItem(lm);
+        }
+            break;
+        default:
+            break;
+    }
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::sortAscending()
+// -----------------------------------------------------------------------------
+void LocationPickerView::sortAscending()
+{   
+    //check the model set and do sorting accordingly
+    if (mViewType == ELocationPickerContent)
+    {
+        mProxyModel->sort( 0, Qt::AscendingOrder );
+        if(mainWindow()->orientation()==Qt::Horizontal)
+            mHgModel->resetModel(mProxyModel);
+    }
+    else
+    {
+        mCollectionContent->getProxyModel()->sort( 0, Qt::AscendingOrder );
+        if(mainWindow()->orientation()==Qt::Horizontal)
+                    mHgModel->resetModel(mCollectionContent->getProxyModel());
+    }
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::sortDescending()
+// -----------------------------------------------------------------------------
+void LocationPickerView::sortDescending()
+{
+    //check the model set and do sorting accordingly
+    if (mViewType == ELocationPickerContent)
+    {
+        mProxyModel->sort(0, Qt::DescendingOrder);
+        if(mainWindow()->orientation()==Qt::Horizontal)
+                    mHgModel->resetModel(mProxyModel);
+    }
+    else
+    {
+        mCollectionContent->getProxyModel()->sort( 0, Qt::DescendingOrder );
+        if(mainWindow()->orientation()==Qt::Horizontal)
+                    mHgModel->resetModel(mCollectionContent->getProxyModel());
+    }
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::allTabTriggered()
+// -----------------------------------------------------------------------------
+void LocationPickerView::allTabTriggered()
+{
+    removeDetailsLabel();
+    //execute only if tab is not pressed
+    if (mAllAction->isChecked())
+    {    
+        mViewType = ELocationPickerContent;
+        mCollectionAction->setChecked(false);
+        mAscendingAction->setEnabled(true);
+        mDescendingAction->setEnabled(true);
+        //delete mCollectionContent if coming back from collectioncontent
+        if (mCollectionContent)
+        {
+            delete mCollectionContent;
+            mCollectionContent = NULL;
+        }
+        if(mainWindow()->orientation() == Qt::Vertical)
+        {
+            manageListView();
+        }
+        else
+        {
+            manageHgWidget();
+        }
+    }
+    else
+    {
+        //Keep the tab pressed
+        mAllAction->setChecked(true);
+    }
+    
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::colectionTabTriggered()
+// -----------------------------------------------------------------------------
+void LocationPickerView::colectionTabTriggered()
+{
+    mListItem->setGraphicsSize(HbListViewItem::MediumIcon);
+    removeDetailsLabel();
+    //execute only if tab is not pressed
+    if (mCollectionAction->isChecked())
+    {           
+        mAscendingAction->setDisabled(true);
+        mDescendingAction->setDisabled(true);
+        mAllAction->setChecked(false);
+        mViewType = ELocationPickerCollectionListContent;
+        manageListView();
+    }
+    else
+    {
+        //Keep the tab pressed
+        mCollectionAction->setChecked(true);
+    }
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::searchTabTriggered()
+// -----------------------------------------------------------------------------
+void LocationPickerView::searchTabTriggered()
+{
+    emit switchToSearchView();
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::setCollectionData()
+// -----------------------------------------------------------------------------
+void LocationPickerView::setCollectionData( quint32 acategoryId )
+{
+    if(!mCollectionContent)
+    {
+        mCollectionContent
+        = new LocationPickerCollectionContent( acategoryId );
+    }
+    
+    if(mainWindow()->orientation() == Qt::Vertical)
+    {
+        QString categoryname;
+        removeDetailsLabel();    
+        switch(acategoryId)
+        {
+
+            case 1: categoryname = "Landmarks";
+            break;
+            case 8: categoryname = "Contacts";     
+            break;
+            case 9: categoryname = "Calender";
+            break;
+        }
+        if(mCollectionContent->locationFound())
+        {
+            mListView->setModel( mCollectionContent->getProxyModel(),mListItem );
+            //Enable the options
+            mAscendingAction->setEnabled(true);
+            mDescendingAction->setEnabled(true);
+            mListItem->setGraphicsSize(HbListViewItem::Thumbnail);
+        }
+        else
+        {
+            displayNoEntries();
+        }
+        mCollectionAction->setChecked(true);
+
+        if(mColllabel)
+        {
+            mLinerLayout->insertItem(0,mColllabel);
+            mColllabel->setPlainText(categoryname);   
+            mColllabel->show();
+        }
+    }
+    else
+    {
+           if(mCollectionContent->locationFound())
+           {
+               mHgModel->resetModel( mCollectionContent->getProxyModel() );
+               //Enable the options
+               mAscendingAction->setEnabled(true);
+               mDescendingAction->setEnabled(true);
+               mLinerLayout->removeItem(mListView);
+               mListView->hide();
+               mLinerLayout->insertItem(1,mWidget);
+               mWidget->show();
+               mLinerLayout->updateGeometry();
+           }
+           else
+           {
+               displayNoEntries();
+           }
+    }
+    mViewType = ELocationPickerCollectionContent;
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::getViewType()
+// -----------------------------------------------------------------------------
+TViewType LocationPickerView::getViewType()
+{
+    return mViewType;
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::setViewType()
+// -----------------------------------------------------------------------------
+void LocationPickerView::setViewType( TViewType aViewType )
+{
+    mViewType = aViewType;
+}
+
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::clearContentModel()
+// -----------------------------------------------------------------------------
+void LocationPickerView::clearContentModel()
+{
+    if(mCollectionContent)
+    {
+    	delete mCollectionContent;
+    	mCollectionContent = NULL;
+    }
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::launchPopUpMenu()
+// -----------------------------------------------------------------------------
+void LocationPickerView::launchPopUpMenu( HbAbstractViewItem *aItem, const QPointF &aPoint )
+{
+    mLongPressMenu = new HbMenu();
+    mLongPressMenu->setTimeout(HbMenu::NoTimeout);
+    connect(mLongPressMenu,SIGNAL(aboutToClose ()),this,SLOT(deleteMenu()));
+    mSelectAction  = mLongPressMenu->addAction(hbTrId("Select"));
+    if( mViewType == ELocationPickerCollectionContent || mViewType == ELocationPickerContent )
+    {
+        mDetailsAction  = mLongPressMenu->addAction(hbTrId("txt_lint_list_details"));
+        connect(mDetailsAction, SIGNAL(triggered()), this, SLOT(handleDetails()));
+    }
+    mIndex = aItem->modelIndex();
+    connect(mSelectAction, SIGNAL(triggered()), this, SLOT(handleSelect()));
+    mLongPressMenu->setPreferredPos(aPoint);
+    mLongPressMenu->open();
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::launchPopUpMenu()
+// -----------------------------------------------------------------------------
+void LocationPickerView::launchPopUpMenu( const QModelIndex &aIndex, const QPointF &aPoint )
+{
+    mLongPressMenu = new HbMenu();
+    mLongPressMenu->setTimeout(HbMenu::NoTimeout);
+    connect(mLongPressMenu,SIGNAL(aboutToClose ()),this,SLOT(deleteMenu()));
+    mSelectAction  = mLongPressMenu->addAction(hbTrId("Select"));
+    mIndex = aIndex;
+    connect(mSelectAction, SIGNAL(triggered()), this, SLOT(handleSelect()));
+    mLongPressMenu->setPreferredPos(aPoint);
+    mLongPressMenu->open();
+}
+// -----------------------------------------------------------------------------
+// LocationPickerView::handleSelect()
+// -----------------------------------------------------------------------------
+void LocationPickerView::handleSelect()
+{
+    handleActivated(mIndex);
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::deleteMenu()
+// -----------------------------------------------------------------------------
+void LocationPickerView::deleteMenu()
+{
+    mLongPressMenu->deleteLater();
+    mLongPressMenu = NULL;
+    mSelectAction->deleteLater();
+    mSelectAction = NULL;
+    mDetailsAction->deleteLater();
+    mDetailsAction = NULL;
+    
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::handleSelect()
+// -----------------------------------------------------------------------------
+void LocationPickerView::handleDetails()
+{
+    HbDocumentLoader* loader = new HbDocumentLoader();
+
+    bool ok = false;
+    //load the popup dialog
+    loader->load(":/popupdialog.docml", &ok);
+    Q_ASSERT_X(ok,"locationpickerservice","invalid DocML file");
+    //find graphics popup dialog
+    QGraphicsWidget *popUpDialog = loader->findWidget("dialog");
+    Q_ASSERT_X((popUpDialog != 0), "locationpickerservice", "invalid DocML file");
+    mDialog = qobject_cast<HbDialog*>(popUpDialog);
+    mMapIconLabel = qobject_cast<HbLabel*>(loader->findWidget("mapLabel"));
+    mTitleLabel = qobject_cast<HbLabel*>(loader->findWidget("titleLabel"));
+    mAddressMiddle = qobject_cast<HbLabel*>(loader->findWidget("addressMiddle"));
+    mAddressBottom = qobject_cast<HbLabel*>(loader->findWidget("addressBottom"));
+    mDone = qobject_cast<HbAction*>(loader->findObject(QString("action")));
+    mTitleLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+    mDialog->setDismissPolicy(HbDialog::NoDismiss);
+    mDialog->setTimeout(HbDialog::NoTimeout);
+    connect(mDone, SIGNAL(triggered()), this, SLOT(closeDetailsDialog()));
+    QStringList adressDetail;
+    QString iconName;
+    mMapIconLabel->setAlignment(Qt::AlignCenter);
+    if(mViewType == ELocationPickerContent)
+    {
+        adressDetail = mProxyModel->data(mIndex,Qt::UserRole+3).toStringList();
+        iconName =  mProxyModel->data(mIndex,Qt::UserRole+1).toString();
+    }
+    else
+    {
+        adressDetail = mCollectionContent->getProxyModel()->data(mIndex,Qt::UserRole+3).toStringList();
+        iconName =  mCollectionContent->getProxyModel()->data(mIndex,Qt::UserRole+1).toString();
+    }
+    if(iconName.isEmpty())
+    {
+        mMapIconLabel->setIcon(KDummyImage); 
+    }
+    else
+    {
+        mMapIconLabel->setIcon(HbIcon(iconName)); 
+    }
+
+    if(adressDetail[0].isEmpty() && adressDetail[1].isEmpty())
+    {
+        mTitleLabel->setPlainText(adressDetail[2]);
+        mAddressMiddle->setPlainText(QString(""));
+        mAddressBottom->setPlainText(QString(""));
+    }
+    else if(adressDetail[0].isEmpty())
+    {
+        mTitleLabel->setPlainText(adressDetail[1]);
+        mAddressMiddle->setPlainText(adressDetail[2]);
+        mAddressBottom->setPlainText(QString(""));
+    }
+    else if (adressDetail[1].isEmpty())
+    {
+        mTitleLabel->setPlainText(adressDetail[0]);
+        mAddressMiddle->setPlainText(adressDetail[2]);
+        mAddressBottom->setPlainText(QString(""));
+    }
+    else
+    {
+        mTitleLabel->setPlainText(adressDetail[0]);
+        mAddressMiddle->setPlainText(adressDetail[1]);
+        mAddressBottom->setPlainText(adressDetail[2]);
+    }
+ 
+    mDialog->open();
+    delete loader;
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::closeDetailsDialog()
+// -----------------------------------------------------------------------------
+void LocationPickerView::closeDetailsDialog()
+{
+    if(mDialog)
+    {
+        mDialog->close();
+        delete mDialog;
+        mDialog = NULL;
+    }
+}
+// -----------------------------------------------------------------------------
+// LocationPickerView::displayNoEntries()
+// -----------------------------------------------------------------------------
+void LocationPickerView::displayNoEntries()
+{
+    if(!mEmptyLabel)
+    {
+        mEmptyLabel =  new HbTextItem(hbTrId("txt_lint_list_no_location_entries_present"));
+        mEmptyLabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
+        mEmptyLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+        mEmptyLabel->setAlignment(Qt::AlignCenter);
+        mLinerLayout->removeItem(mListView);
+        mListView->hide();
+        mWidget->setVisible(false);
+        mLinerLayout->insertItem(0, mEmptyLabel);
+    }
+    
+}
+
+// -----------------------------------------------------------------------------
+// LocationPickerView::removeDetailsLabel()
+// -----------------------------------------------------------------------------
+void LocationPickerView::removeDetailsLabel()
+{
+    if (mLinerLayout && mColllabel)
+    {
+        mColllabel->setPlainText("");
+        mLinerLayout->removeItem(mColllabel);
+        mColllabel->hide();
+    }
+    if(mEmptyLabel)
+    {   
+        mLinerLayout->removeItem(mEmptyLabel);
+        mEmptyLabel->hide();
+        delete mEmptyLabel;
+        mEmptyLabel = NULL;
+    }
+}
+