diff -r 1fc85118c3ae -r 870918037e16 locationpickerservice/src/locationpickerappwindow.cpp --- a/locationpickerservice/src/locationpickerappwindow.cpp Tue Aug 31 15:09:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +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: LocationPickerAppWindow implementation -* -*/ - -#include "locationpickerappwindow.h" - -#include "qlocationpickeritem.h" - -#include "locationpickersearchview.h" -#include "locationpickerview.h" -#include "locationpickerservice.h" -#include "locationpickerdatamanager.h" -#include "locationpickerdocumentloader.h" -#include "locationpickercontent.h" - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::LocationPickerAppWindow() -// ---------------------------------------------------------------------------- -LocationPickerAppWindow::LocationPickerAppWindow( QWidget *parent, Hb::WindowFlags windowFlags ) - :HbMainWindow(parent, windowFlags), - mLocationPickerSearchView(NULL), - mLocationPickerDocumentLoader(NULL), - mLocationPickerView(NULL), - mLocationPickerContent(NULL), - mService(NULL) -{ - // create the service object; - mService = new LocationPickerService(this); - mLocationPickerContent = new LocationPickerContent(); - - //create document loader object - mLocationPickerDocumentLoader = new LocationPickerDocumentLoader(); - bool ok = false; - //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("LocationPickerView"); - Q_ASSERT_X((locationPickerWidget != 0), "locationpickerservice", "invalid DocML file"); - mLocationPickerView = qobject_cast(locationPickerWidget); - bool populated = mLocationPickerContent->populateModel(); - connectSlots(); - if(!populated) - { - mLocationPickerView->disableTabs(); - addView(mLocationPickerView); - setCurrentView(mLocationPickerView); - } - else - { - //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())); - - } -} - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::~LocationPickerAppWindow() -// ---------------------------------------------------------------------------- -LocationPickerAppWindow::~LocationPickerAppWindow() -{ - delete mService; - delete mLocationPickerSearchView; - delete mLocationPickerDocumentLoader; - delete mLocationPickerView; - delete mLocationPickerContent; -} - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::itemSelected() -// ---------------------------------------------------------------------------- -void LocationPickerAppWindow::itemSelected( quint32 aLmid ) -{ - QLocationPickerItem item; - LocationPickerDataManager::getInstance()->getLocationItem(aLmid, item); - // complete the request - mService->complete(item); -} - -void LocationPickerAppWindow::serviceComplete() -{ - // Other views request complete with a valid location picker item - QLocationPickerItem item; - item.mIsValid = false; - mService->complete(item); -} -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::activateSearchView() -// ---------------------------------------------------------------------------- -void LocationPickerAppWindow::activateSearchView() -{ - //load the LocationPickerSearchView - bool ok = false; - if(!mLocationPickerSearchView) - { - mLocationPickerDocumentLoader->load(":/locationpickersearchview.docml", &ok); - Q_ASSERT_X(ok, "locationpickerService", "invalid DocML file"); - //find the LocationPickerSearchView - QGraphicsWidget *locationPickerSearchWidget = mLocationPickerDocumentLoader->findWidget("LocationPickerSearchView"); - Q_ASSERT_X((locationPickerSearchWidget != 0), "locationpickerService", "invalid DocML file"); - mLocationPickerSearchView = qobject_cast(locationPickerSearchWidget); - Q_ASSERT_X((mLocationPickerSearchView != 0), "mLocationPickerSearchView", - "qobject cast failure"); - //initialize the action items and connect to slots - 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); - -} - - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::activateLocationPickerView() -// ---------------------------------------------------------------------------- -void LocationPickerAppWindow::activateLocationPickerView() -{ - mLocationPickerView->setViewType( ELocationPickerContent ); - //check the orientation and load view accordingly - if(this->orientation() == Qt::Horizontal) - { - mLocationPickerView->manageHgWidget(); - } - else - { - mLocationPickerView->manageListView(); - } - setCurrentView(mLocationPickerView); -} - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::changeOrientation() -// ---------------------------------------------------------------------------- -void LocationPickerAppWindow::changeOrientation( Qt::Orientation ) -{ - //check the orientation and load view accordingly - if(mLocationPickerView->getViewType()== ELocationPickerCollectionContent || - mLocationPickerView->getViewType()== ELocationPickerContent ) - { - if(this->orientation() == Qt::Vertical) - { - mLocationPickerView->manageListView(); - - } - - else if(this->orientation() == Qt::Horizontal) - { - mLocationPickerView->manageHgWidget(); - } - } -} - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::closeDetailsDialog() -// ---------------------------------------------------------------------------- -void LocationPickerAppWindow::closeDetailsDialog() -{ - mLocationPickerView->closeDetailsDialog(); -} - -// ---------------------------------------------------------------------------- -// LocationPickerAppWindow::connectSlots() -// ---------------------------------------------------------------------------- -void LocationPickerAppWindow::connectSlots() -{ - 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)