diff -r e7f64b6bf69e -r 831068540b07 usbuis/usbsettingsapp/src/usbsettingsapp.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbuis/usbsettingsapp/src/usbsettingsapp.cpp Mon May 17 11:03:15 2010 +0300 @@ -0,0 +1,131 @@ +/* +* 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 "usbsettingsapp.h" +#include +#include +#include +#include +#include +#include +#include +#include "usbuisettingmodel.h" +#include "usbdebug.h" + +#define DOCML ":/xml/usbsettingsapp.docml" + +USBSettingsApp::USBSettingsApp(QWidget *parent) + : HbMainWindow(parent), mView(NULL), mListViewItem(NULL) +{ + myDebug() << ">>> USBSettingsApp::USBSettingsApp"; + //Init the document loader and we load the view + mModel = new UsbUiSettingModel(this); + mSelectionModel = new QItemSelectionModel(mModel); + mDocumentLoader = new HbDocumentLoader(); + connect(this, SIGNAL(orientationChanged(Qt::Orientation)), + this,SLOT(setOrientation(Qt::Orientation))); + load(orientation()); + myDebug() << "<<< USBSettingsApp::USBSettingsApp"; +} + +USBSettingsApp::~USBSettingsApp() +{ + myDebug() << ">>> USBSettingsApp::~USBSettingsApp"; + delete mView; + delete mModel; + delete mDocumentLoader; + myDebug() << "<<< USBSettingsApp::~USBSettingsApp"; +} +/*! +loads the DOCML and build the view by finding the widgets from it +*/ +void USBSettingsApp::load(Qt::Orientation orientation) +{ + myDebug() << ">>> USBSettingsApp::load"; + bool loaded = true; + + //Sets loader to initial state + mDocumentLoader->reset(); + //Load the common section + mDocumentLoader->load(DOCML, &loaded); + + //Loads the view + if ( loaded ) { + myDebug() << " USBSettingsApp::load DOCML loaded"; + QGraphicsWidget *widget = mDocumentLoader->findWidget(QString("view")); + if (widget) { + myDebug() << " USBSettingsApp::load view found"; + mView = qobject_cast(widget); + this->addView(mView); + this->setCurrentView(mView); + } + QGraphicsWidget *listViewWidget = mDocumentLoader->findWidget(QString("listView")); + if (listViewWidget) { + myDebug() << " USBSettingsApp::load listView found"; + HbListView *listView = qobject_cast(listViewWidget); + listView->setModel(mModel); + listView->setSelectionMode(HbAbstractItemView::SingleSelection); + listView->setSelectionModel(mSelectionModel); + mModel -> setSelectionModel(mSelectionModel); + HbStyleLoader::registerFilePath(":/"); + listView->setLayoutName("usb"); + //scroll to the selected index, if not hidden personality + QModelIndexList indexList = mSelectionModel->selectedIndexes(); + if ( !indexList.isEmpty() ) { + myDebug() << " USBSettingsApp::load scrollTo " << indexList[0].row(); + myDebug() << " USBSettingsApp::load scrollTo disabled"; + //listView->scrollTo(indexList[0]); + } + } + + QGraphicsWidget *listViewItemWidget = mDocumentLoader->findWidget(QString("listItemPrototype")); + if (listViewItemWidget) { + myDebug() << " USBSettingsApp::load mListViewItem found"; + mListViewItem = qobject_cast(listViewItemWidget); + mListViewItem->setGraphicsSize(HbListViewItem::LargeIcon); + setOrientation(orientation); + } + + QGraphicsWidget *groupBoxWidget = mDocumentLoader->findWidget(QString("groupBox")); + if (groupBoxWidget) { + myDebug() << " USBSettingsApp::load groupBox found"; + HbGroupBox *groupBox = qobject_cast(groupBoxWidget); + groupBox->setHeading(QString(hbTrId("txt_usb_subhead_select_connection_type"))); + } + } + myDebug() << "<<< USBSettingsApp::load"; +} +/*! + Handles the orientation change +*/ +void USBSettingsApp::setOrientation(Qt::Orientation orientation) +{ + myDebug() << ">>> USBSettingsApp::setOrientation"; + if (mListViewItem) { + switch (orientation) { + case Qt::Horizontal: + mListViewItem->setSecondaryTextRowCount(KUSBLandscapeMinLine, KUSBLandscapeMaxLine); + break; + case Qt::Vertical: + mListViewItem->setSecondaryTextRowCount(KUSBPortrateMinLine, KUSBPortrateMaxLine); + break; + default: + break; + } + } + myDebug() << "<<< USBSettingsApp::setOrientation"; +} +