diff -r 3fec62e6e7fc -r 90fe62538f66 controlpanelui/src/cpcategorymodel/src/cpcategorysettingformitemdata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/controlpanelui/src/cpcategorymodel/src/cpcategorysettingformitemdata.cpp Tue Aug 31 15:15:28 2010 +0300 @@ -0,0 +1,112 @@ +/* +* Copyright (c) 2009 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: An extension to CpSettingFormItemData, can be filled with model items comes from controlpanel plugins. +* +*/ +#include "cpcategorysettingformitemdata.h" +#include +#include "cpcategorymodelutility.h" + +/* + * Private implementation + */ +class CpCategorySettingFormItemDataPrivate +{ +public: + CpCategorySettingFormItemDataPrivate(const QString &configFile) : + mInitialized(false), + mConfigFile(configFile) + { + } + + ~CpCategorySettingFormItemDataPrivate() + { + } + +public: + bool mInitialized; + QString mConfigFile; +}; + +/* + * Constructor + */ +CpCategorySettingFormItemData::CpCategorySettingFormItemData( + HbDataFormModelItem::DataItemType type, + const QString &label, + const QString &configFile, + const HbDataFormModelItem *parent /*= 0*/) : + CpSettingFormItemData(type,label,parent), + d(new CpCategorySettingFormItemDataPrivate(configFile)) +{ +} + +/* + * Overloaded constructor + */ +CpCategorySettingFormItemData::CpCategorySettingFormItemData( + const QString &configFile /*= QString()*/, + const HbDataFormModelItem *parent /*= 0*/) : + CpSettingFormItemData(parent), + d(new CpCategorySettingFormItemDataPrivate(configFile)) +{ +} + +/* + * Desctructor + */ +CpCategorySettingFormItemData::~CpCategorySettingFormItemData() +{ + delete d; +} + +/* + * Initialize + */ +void CpCategorySettingFormItemData::initialize(CpItemDataHelper &itemDataHelper) +{ + //avoid to be called twice + if (!d->mInitialized) { + //give derived class a chance do their special things before loading config plugins + beforeLoadingConfigPlugins(itemDataHelper); + + int pluginItemStartPosition = childCount(); + //give derived class a chance do their special things after loading config plugins + afterLoadingConfigPlugins(itemDataHelper); + + //load plugins which are configured + CpCategoryModelUtility::buildConfigPluginItems( + this, + d->mConfigFile, + itemDataHelper, + pluginItemStartPosition); + + d->mInitialized = true; + } +} + +/* + * Derived class can override this function to do some specific work before loading config plugins + */ +void CpCategorySettingFormItemData::beforeLoadingConfigPlugins(CpItemDataHelper &/*itemDataHelper*/) +{ +} +/* + * Derived class can override this function to do some specific work before loading config plugins + */ +void CpCategorySettingFormItemData::afterLoadingConfigPlugins(CpItemDataHelper &/*itemDataHelper*/) +{ +} + +//End of File