diff -r c4687ff85147 -r 6757f1e2efd2 deviceupdatesui/deviceupdates/src/settingsdataformcustomitem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deviceupdatesui/deviceupdates/src/settingsdataformcustomitem.cpp Tue Aug 31 15:05:55 2010 +0300 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: This class provides custom list item for the + * DataForm + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +SettingsDataFormCustomItem::SettingsDataFormCustomItem(QGraphicsItem *parent) : +HbDataFormViewItem(parent),mLineEdit(NULL) +{ +} + +SettingsDataFormCustomItem::~SettingsDataFormCustomItem() +{ +} + +HbAbstractViewItem* SettingsDataFormCustomItem::createItem() +{ + return new SettingsDataFormCustomItem(*this); +} + +HbWidget* SettingsDataFormCustomItem::createCustomWidget() +{ + HbDataFormModelItem::DataItemType itemType = + static_cast + ( modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt() ); + switch (itemType) + { + case HbDataFormModelItem::CustomItemBase : + { + mLineEdit = new HbLineEdit(); + HbEditorInterface editorInterface(mLineEdit); + editorInterface.setMode(HbInputModeNumeric); + editorInterface.setInputConstraints(HbEditorConstraintFixedInputMode); + return mLineEdit; + } + default: + return 0; + } +} + + bool SettingsDataFormCustomItem::canSetModelIndex( const QModelIndex& aIndex ) const + { + int itemType = aIndex.data(HbDataFormModelItem::ItemTypeRole).toInt(); + return itemType == HbDataFormModelItem::CustomItemBase; + } + + void SettingsDataFormCustomItem::restore() + { + HbDataFormViewItem::restore(); + HbDataFormModelItem::DataItemType itemType = static_cast( + modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt()); + if( itemType == HbDataFormModelItem::CustomItemBase ) { + QModelIndex itemIndex = modelIndex(); + HbDataFormModelItem *modelItem = static_cast( + static_cast(itemView()->model())->itemFromIndex(itemIndex)); + QString port = modelItem->contentWidgetData("text").toString(); + qDebug("port is %d",port.toInt()); + mLineEdit->setText(port); + } + }