📄 esimitemengine.cpp
字号:
// ----------------------------------------------------
//
void CESIMItemEngine::UserReadL( RReadStream& aStream )
{
TInt count = aStream.ReadInt16L();
for ( TInt index = 0; index < count; ++index )
{
CESIMUserItem* item = CESIMUserItem::NewL();
CleanupStack::PushL( item );
item->InternalizeL( aStream );
User::LeaveIfError( iUserItemList.Append( item ) );
CleanupStack::Pop( item );
}
}
// ----------------------------------------------------
// CESIMItemEngine::GroupReadL( RWriteStream& aStream)
// ----------------------------------------------------
//
void CESIMItemEngine::GroupReadL( RReadStream& aStream )
{
TInt count = aStream.ReadInt16L();
for ( TInt index = 0; index < count; ++index )
{
CESIMGroupItem* item = CESIMGroupItem::NewL();
CleanupStack::PushL( item );
item->InternalizeL( aStream );
User::LeaveIfError( iGroupItemList.Append( item ) );
CleanupStack::Pop( item );
}
}
// ----------------------------------------------------
// CESIMItemEngine::AddUserToGroupL(TInt aUserIndex, TInt aGroupIndex)
// ----------------------------------------------------
//
void CESIMItemEngine::AddUserToGroupL(TInt aUserIndex, TInt aGroupIndex)
{
if(aUserIndex > iUserItemList.Count()||aGroupIndex > iGroupItemList.Count())
return;
TInt j;
for(TInt i=0; i<(static_cast<CESIMGroupItem*>(iGroupItemList[aGroupIndex]))->ItemList().Count(); i++)
{
if( (*((static_cast<CESIMGroupItem*>(iGroupItemList[aGroupIndex]))->ItemList())[i]->SipAddress()).Compare(*(static_cast<CESIMUserItem*>(iUserItemList[aUserIndex])->SipAddress())) == 0)
{
CESIMAppUi::ShowConformationNote(_L("The User has been added to the Group !"));
return;
}
}
CESIMUserItem* item = CESIMUserItem::NewL();
//item = static_cast<CESIMUserItem*>(iUserItemList[aUserIndex]);
item->SetNameL(static_cast<CESIMUserItem*>(iUserItemList[aUserIndex])->Name()->AllocL());
item->SetSipAddressL(static_cast<CESIMUserItem*>(iUserItemList[aUserIndex])->SipAddress()->AllocL());
// item->SetMessageL(static_cast<CESIMUserItem*>(iUserItemList[aUserIndex])->Message()->AllocL());
(static_cast<CESIMGroupItem*>(iGroupItemList[aGroupIndex]))->ItemList().Append(item);
}
// ----------------------------------------------------
// CESIMItemEngine::RemoveUserFromGroup(TInt aUserIndex, TInt aGroupIndex)
// ----------------------------------------------------
//
void CESIMItemEngine::RemoveUserFromGroup(TInt aUserIndex, TInt aGroupIndex)
{
if(aGroupIndex > iGroupItemList.Count()||aUserIndex > iGroupItemList[aGroupIndex]->ItemList().Count())
return;
CESIMUserItem* item = static_cast<CESIMUserItem*>(iGroupItemList[aGroupIndex]->ItemList()[aUserIndex]);
iGroupItemList[aGroupIndex]->ItemList().Remove(aUserIndex);
delete item;
}
// ----------------------------------------------------
// CESIMItemEngine::NewUserFormL()
// ----------------------------------------------------
//
void CESIMItemEngine::NewUserFormL()
{
CESIMUserItem* item = CESIMUserItem::NewL();
TBool saveState = EFalse;
CESIMUserItemForm* form = CESIMUserItemForm::NewL(*item, saveState);
form->ExecuteLD(R_OPPONENTFORM_FORM_DIALOG);
if(saveState)
{
for(TInt i=0;i<iUserItemList.Count();i++)
{
CESIMUserItem* tmp = static_cast<CESIMUserItem*>(iUserItemList[i]);
if((*tmp->SipAddress()).Compare(*item->SipAddress()) == 0)
{
CESIMAppUi::ShowConformationNote(_L("The User has exist !"));
delete item;
return;
}
}
iUserItemList.Append(item);
}
}
void CESIMItemEngine::NewGroupFormL()
{
CESIMGroupItem* item = CESIMGroupItem::NewL();
TBool saveState = EFalse;
CESIMGroupItemForm* form = CESIMGroupItemForm::NewL(*item, saveState);
form->ExecuteLD(R_ESIM_GROUP_FORM_DIALOG);
if(saveState)
{
for(TInt i=0;i<iGroupItemList.Count();i++)
{
CESIMGroupItem* tmp = static_cast<CESIMGroupItem*>(iGroupItemList[i]);
if((*tmp->SipAddress()).Compare(*item->SipAddress()) == 0)
{
CESIMAppUi::ShowConformationNote(_L("The Group has exist !"));
delete item;
return;
}
}
iGroupItemList.Append(item);
}
}
// ----------------------------------------------------
// CESIMItemEngine::EditUserFormL()
// ----------------------------------------------------
//
void CESIMItemEngine::EditUserFormL(TInt aIndex)
{
if(aIndex > iUserItemList.Count())
return;
CESIMUserItem* item = iUserItemList[aIndex];
TBool saveState = EFalse;
CESIMUserItemForm* form = CESIMUserItemForm::NewL(*item, saveState);
form->ExecuteLD(R_OPPONENTFORM_FORM_DIALOG);
}
void CESIMItemEngine::EditGroupFormL(TInt aIndex)
{
if(aIndex > iGroupItemList.Count())
return;
CESIMGroupItem* item = iGroupItemList[aIndex];
TBool saveState = EFalse;
CESIMGroupItemForm* form = CESIMGroupItemForm::NewL(*item, saveState);
form->ExecuteLD(R_ESIM_GROUP_FORM_DIALOG);
}
// ----------------------------------------------------
// CESIMItemEngine::CreateGroupL()
// ----------------------------------------------------
//
void CESIMItemEngine::CreateGroupL()
{
HBufC* groupName = HBufC::NewLC( KMaxGroupNameLength );
TPtr ptr( groupName->Des() );
HBufC* prompt = StringLoader::LoadLC( R_ESIM_CREATE_GROUP_MESSAGE );
CAknTextQueryDialog* dlg = new (ELeave) CAknTextQueryDialog( ptr,
CAknQueryDialog::ENoTone );
CleanupStack::PushL( dlg );
dlg->SetPromptL( *prompt );
dlg->SetMaxLength( KMaxTextLength );
if( dlg->ExecuteLD( R_ESIM_TEXTBOX_QUERY ) )
{
//Create contactGroup
CESIMGroupItem* groupItem = CESIMGroupItem::NewL();
groupItem->SetNameL(groupName->Alloc());
iGroupItemList.Append(groupItem);
}
CleanupStack::Pop( dlg );
CleanupStack::PopAndDestroy( prompt );
CleanupStack::PopAndDestroy( groupName ); // pbkContactEng
}
// ----------------------------------------------------------------------------
// CESIMItemEngine::OpenTextBoxQueryL()
// Display of Data Query.
// ----------------------------------------------------------------------------
//
//TBool CESIMItemEngine::OpenTextBoxQueryL(const TInt aTextResourceId,
// TPtr aTextData,
// TInt aTextLength)
// {
// HBufC* prompt = StringLoader::LoadLC( aTextResourceId );
// // aTextData is smaller than 40 so this does not crash
// TBuf<KMaxTextBoxQueryLength> text = aTextData;
//
// CAknTextQueryDialog* dlg = new (ELeave) CAknTextQueryDialog( text,
// CAknQueryDialog::ENoTone );
//
// CleanupStack::PushL( dlg );
// dlg->SetPromptL( *prompt );
// dlg->SetMaxLength( aTextLength );
//
// TBool answer( dlg->ExecuteLD( R_ESIM_TEXTBOX_QUERY ) );
// CleanupStack::Pop( dlg );
// CleanupStack::PopAndDestroy( prompt );
// aTextData = text;
// return answer;
// }
// ----------------------------------------------------
// CESIMItemEngine::GetUsersFromSelectedGroupL()
// ----------------------------------------------------
//
RPointerArray<CESIMUserItem>& CESIMItemEngine::GetUsersFromSelectedGroupL()
{
return iGroupItemList[iCurrentGroupIndex]->ItemList();
}
// ----------------------------------------------------
// CESIMItemEngine::GetUsersFromSelectedGroupL()
// ----------------------------------------------------
//
void CESIMItemEngine::SetCurrentGroupIndex(TInt aIndex)
{
iCurrentGroupIndex = aIndex;
}
// ----------------------------------------------------
// CESIMItemEngine::GetUsersFromSelectedGroupL()
// ----------------------------------------------------
//
TInt CESIMItemEngine::GetCurrentGrouuIndex( )
{
return iCurrentGroupIndex;
}
void CESIMItemEngine::SetCurrentUserIndex(TInt aIndex)
{
iCurrentUserIndex = aIndex;
}
TInt CESIMItemEngine::GetCurrentUserIndex( )
{
return iCurrentUserIndex;
}
// ----------------------------------------------------
// CESIMItemEngine::GetUsersFromSelectedGroupL()
// ----------------------------------------------------
//
void CESIMItemEngine::SetCurrentGroupName( TInt aIndex )
{
iGroupName = iGroupItemList[aIndex]->Name()->Des();
}
// ----------------------------------------------------
// CESIMItemEngine::GetUsersFromSelectedGroupL()
// ----------------------------------------------------
//
TDes& CESIMItemEngine::ReturnCurrentGroupName()
{
return iGroupName;
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -