locationpickerservice/src/locationpickerlandscapeview.cpp
changeset 31 8db05346071b
parent 30 96df3ab41000
child 32 9bd2e0ffe298
child 35 59575560d1e6
--- 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);
-}