diff -r 4526337fb576 -r 3eca7e70b1b8 widgetmodel/alfwidgetmodel/src/alfwidgetimpl.cpp --- a/widgetmodel/alfwidgetmodel/src/alfwidgetimpl.cpp Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* -* Copyright (c) 2007 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: The private implementation of CAlfWidget. -* -*/ - - -#include "alfwidgetimpl.h" -#include -#include -#include -#include "alf/alfwidget.h" -#include "alf/alfattribute.h" -#include "alf/alfattributevaluetype.h" -#include -#include -#include - -#include "alfwidgetattributeownerimpl.h" - - -namespace Alf - { - -AlfWidgetImpl::AlfWidgetImpl() - { - mControl = NULL; - mModel = NULL; - mAttributeList.setAutoDelete(true); - mWidgets.setAutoDelete(false); - mTakesModelOwnership=false; - } - -AlfWidgetImpl::~AlfWidgetImpl() - { - setControl( NULL, true ); - - if (mTakesModelOwnership) - { - delete mModel; - mModel = NULL; - } - mAttributeList.clear(); - mWidgets.clear(); - } - -void AlfWidgetImpl::setWidgetName( const UString& aWidgetName ) - { - mWidgetName = aWidgetName; - } - -const UString& AlfWidgetImpl::widgetName() const - { - return mWidgetName; - } - - -CAlfWidgetControl* AlfWidgetImpl::control() - { - return mControl; - } - -void AlfWidgetImpl::setControl( CAlfWidgetControl* aControl,bool aDeletePreviousControl) - { - if ( mControl != aControl ) - { - if( mControl ) - { - if( mModel ) - { - // Remove model change observer from control - mModel->removeModelChangeObserver( *mControl ); - } - if( aDeletePreviousControl ) - { - // Delete control from possible control group to avoid double deletion - if(mControl->ControlGroup()) - { - mControl->ControlGroup()->Remove(mControl); - } - // Delete the control - delete mControl; - mControl = NULL; - } - } - - // Set the new control. - mControl = aControl; - - // Add the new control as an observer for model changes. - if( mControl ) - { - if( mModel ) - { - mModel->addModelChangeObserver( *mControl ); - } - mAttributeOwnerImpl.reset(new (EMM) AlfWidgetAttributeOwnerImpl(mControl)); - } - } - } - -IAlfModel* AlfWidgetImpl::model() - { - return mModel; - } - -void AlfWidgetImpl::setModel( IAlfModel* aModel,bool aTakeOwnerShip ) - { - if ( mModel != aModel ) - { - // Release the old model. - if (mTakesModelOwnership) - { - delete mModel; - } - - else if (mModel&&mControl) - { - mModel->removeModelChangeObserver(*mControl); - } - - // Set the new model. - mModel = aModel; - mTakesModelOwnership=aTakeOwnerShip; - // Add the control as an observer for model changes. - if ( mModel && mControl ) - { - mModel->addModelChangeObserver( *mControl ); - } - } - else // just copy the ownership flag - { - if (mModel != NULL) - { - mTakesModelOwnership=aTakeOwnerShip; - } - } - - } - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -void AlfWidgetImpl::addWidget(AlfWidget *aWidget) - { - for (int i=0 ; i< mWidgets.count(); i++ ) - { - if (mWidgets.findRef(aWidget) >=0) - { - //widget already there. - return; - } - } - mWidgets.resize(mWidgets.count()+1); - mWidgets.insert(mWidgets.count(),aWidget); - } - -int AlfWidgetImpl::widgetCount() - { - return mWidgets.count(); - } - -AlfWidget* AlfWidgetImpl::getWidget(int aIndex) - { - if (aIndex>=0 && aIndex < mWidgets.count()) - return mWidgets[aIndex]; - return 0; - } - -int AlfWidgetImpl::findWidget(AlfWidget* aWidget) - { - return mWidgets.findRef(aWidget); - } - -void AlfWidgetImpl::removeWidget(int aIndex) - { - if (aIndex >=0 and aIndex < mWidgets.count()) - mWidgets.remove(aIndex); - } - -// --------------------------------------------------------------------------- -// Returns attribute owner interface. -// --------------------------------------------------------------------------- -// -AlfWidgetAttributeOwnerImpl* AlfWidgetImpl::getAttributeOwner() - { - return mAttributeOwnerImpl.get(); - } - - } //namespace alf - - -