void CDefaultNumbersPopupList::DisplaySelection() { CALLSTACKITEM_N(_CL("CDefaultNumbersPopupList"), _CL("DisplaySelection")); CPbkSelectFieldDlg * dlg = new CPbkSelectFieldDlg; CleanupStack::PushL(dlg); CPbkFieldArray& fields = aItem->CardFields(); //original CPbkFieldArray * to_display = new CPbkFieldArray(); // with selected CleanupStack::PushL(to_display); TInt idx = iListbox->CurrentItemIndex(); TInt focus = -1; switch (idx) { case 0: //default phone { for( int i=0; i<fields.Count();i++ ) { if ( (fields.At(i)).FieldInfo().IsPhoneNumberField() ) { to_display->AppendL(fields.At(i)); if ( (fields.At(i)).DefaultPhoneNumberField() ) { focus = (to_display->Count() -1); } } } TPbkContactItemField * field = dlg->ExecuteLD(*to_display, R_SELECT_NONE_CBA,KNullDesC,focus ); if (!field) { aItem->RemoveDefaultPhoneNumberField(); } else { aItem->SetDefaultPhoneNumberFieldL(field); } break; } case 1: // default sms { for( int i=0; i<fields.Count();i++ ) { if ( (fields.At(i)).FieldInfo().IsPhoneNumberField() ) { to_display->AppendL(fields.At(i)); if ( (fields.At(i)).DefaultSmsField() ) { focus = (to_display->Count() -1); } } } TPbkContactItemField * field = dlg->ExecuteLD(*to_display, R_SELECT_NONE_CBA,KNullDesC,focus ); if (!field) { aItem->RemoveDefaultSmsField(); } else { aItem->SetDefaultSmsFieldL(field); } break; } case 2: //default mms { for( int i=0; i<fields.Count();i++ ) { if ( (fields.At(i)).FieldInfo().IsMmsField() ) { to_display->AppendL(fields.At(i)); if ( (fields.At(i)).DefaultMmsField() ) { focus = (to_display->Count() -1); } } } TPbkContactItemField * field = dlg->ExecuteLD(*to_display, R_SELECT_NONE_CBA,KNullDesC,focus ); if (!field) { aItem->RemoveDefaultMmsField(); } else { aItem->SetDefaultMmsFieldL(field); } break; } case 3: // default email { for( int i=0; i<fields.Count();i++ ) { if ( (fields.At(i)).FieldInfo().IsMmsField() && !(fields.At(i)).FieldInfo().IsPhoneNumberField() ) { to_display->AppendL(fields.At(i)); if ( (fields.At(i)).DefaultEmailField() ) { focus = (to_display->Count() -1); } } } TPbkContactItemField * field = dlg->ExecuteLD(*to_display, R_SELECT_NONE_CBA,KNullDesC, focus ); if (!field) { aItem->RemoveDefaultEmailField(); } else { aItem->SetDefaultEmailFieldL(field); } break; } default: break; } CleanupStack::PopAndDestroy(); //to_display CleanupStack::Pop(); // dlg Refresh(); }
TBool CProfileListDialog::OkToExitL(TInt aButtonId) { TBool okToExit = EFalse; CEikTextListBox *lbox = ((CEikTextListBox*)Control(EProfileListDlgProfileList)); // Buffers for current and new file names and a name HBufC *fileNameBuf = HBufC::NewLC(KMaxFileName); TPtr fileName = fileNameBuf->Des(); HBufC *nameBuf = HBufC::NewLC(KMaxFileName); TPtr name = nameBuf->Des(); switch ( aButtonId ) { case ECmdProfileListConnect: { // Connect to the selected profile TInt sel = lbox->CurrentItemIndex(); if ( sel == KDefaultProfileIndex ) { iProfileFile = iDefaultProfileFile; } else { iProfileFile = iProfileDirectory; iProfileFile.Append((*iProfileArray)[sel]); } okToExit = ETrue; break; } case ECmdProfileListEdit: { // Edit the selected profile TInt sel = lbox->CurrentItemIndex(); if ( sel == KDefaultProfileIndex ) { name = KDefaultProfileName; fileName = iDefaultProfileFile; } else { name = (*iProfileArray)[sel]; fileName = iProfileDirectory; fileName.Append(name); } // Edit settings iPutty->ReadConfigFileL(fileName); Config *cfg = iPutty->GetConfig(); CSettingsDialog *dlg = new (ELeave) CSettingsDialog(name, (sel == KDefaultProfileIndex), cfg, iPutty); switch ( dlg->ExecuteLD(R_SETTINGS_DIALOG) ) { case EEikBidOk: // Handle rename first if ( (sel != KDefaultProfileIndex) && (name.Compare((*iProfileArray)[sel]) != 0) ) { MakeNameLegal(name); // Delete current file so that we can rename to a file // that maps to the same name (e.g. changes in case) User::LeaveIfError( CEikonEnv::Static()->FsSession().Delete(fileName)); MakeNameUniqueL(name); fileName = iProfileDirectory; fileName.Append(name); // Update profile list and listbox iProfileArray->Delete(sel); iProfileArray->InsertL(sel, name); lbox->DrawNow(); } // Just write, the name can be an old one or a renamed one iPutty->WriteConfigFileL(fileName); break; case ECmdSettingsDelete: if ( sel != KDefaultProfileIndex ) { // Remove the profile from the list and update // listbox iProfileArray->Delete(sel); lbox->HandleItemRemovalL(); if ( sel >= iProfileArray->Count() ) { sel = iProfileArray->Count() - 1; } lbox->SetCurrentItemIndexAndDraw(sel); // Delete profile file User::LeaveIfError( CEikonEnv::Static()->FsSession().Delete(fileName)); } break; default: break; } okToExit = EFalse; break; } case ECmdProfileListNew: { // New profile -- start with defaults, but with a new name iPutty->ReadConfigFileL(iDefaultProfileFile); Config *cfg = iPutty->GetConfig(); name = KNewProfileName; MakeNameUniqueL(name); CSettingsDialog *dlg = new (ELeave) CSettingsDialog(name, EFalse, cfg, iPutty); if ( dlg->ExecuteLD(R_SETTINGS_DIALOG) == EEikBidOk ) { // Finalize name MakeNameLegal(name); MakeNameUniqueL(name); fileName = iProfileDirectory; fileName.Append(name); // Update the listbox iProfileArray->AppendL(name); lbox->HandleItemAdditionL(); lbox->SetCurrentItemIndexAndDraw(iProfileArray->Count() - 1); // Write out new settings iPutty->WriteConfigFileL(fileName); } okToExit = EFalse; break; } case ECmdProfileListClose: okToExit = ETrue; break; default: User::Invariant(); } CleanupStack::PopAndDestroy(2); //fileNameBuf, nameBuf return okToExit; }
void CPhotoListView::GetFolder() { TInt PopValue; //TBuf<150> msg; TInt count=0; CDesCArray* items = iPhotosAppUi->GetFolderList(); CDesCArray* foldernames = iPhotosAppUi->ReturnText(); if (items == NULL) { Count = 0; items = new (ELeave) CDesCArrayFlat(1); items->AppendL(foldernames->MdcaPoint(0)); } else { Count = items->MdcaCount(); items->AppendL(foldernames->MdcaPoint(0)); } foldernames->Reset(); CEikTextListBox* list = new( ELeave ) CAknSinglePopupMenuStyleListBox; CleanupStack::PushL( list ); CAknPopupList* popupList = CAknPopupList::NewL( list, R_AVKON_SOFTKEYS_SELECT_CANCEL, AknPopupLayouts::EMenuWindow); CleanupStack::PushL( popupList ); popupList->SetMaximumHeight(2); list->ConstructL( popupList, CEikListBox::ELeftDownInViewRect ); list->CreateScrollBarFrameL( ETrue ); list->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto ); CTextListBoxModel* model = list->Model(); model->SetItemTextArray( items ); model->SetOwnershipType( ELbmOwnsItemArray ); count = GetPhotoCount(); // TInt price; // TLex lex(iPhotosAppUi->iCharge); // lex.Val(price); // count = count * price; // TBuf<30> temp; // temp.AppendNum(count); // msg.Copy(_L("Charge ")); // msg.Append(temp); // msg.Append(_L(" pesos")); //msg.Copy(_L("Select Album:")); //msg.Copy(*(iEikonEnv->AllocReadResourceL(R_IMAGES_SELECT_ALBUM))); /*count = count / 3; temp.Copy(_L("")); temp.AppendNum(count); path = iPhotosAppUi->ImageFolderPath(); if(path == 0 || path == 1) msg.Append(_L(" Photos)")); else if(path == 2 || path == 3) msg.Append(_L(" Videos)"));*/ popupList->SetTitleL(*(iEikonEnv->AllocReadResourceL(R_IMAGES_SELECT_ALBUM))); PopValue = popupList->ExecuteLD(); if(PopValue==0) { iFolderStatus=-1; } else if(PopValue==1) { PopValue=list->CurrentItemIndex(); iFolderStatus=PopValue; TPtrC ptr1(items->MdcaPoint(PopValue)); comment.Copy(ptr1); } items->Reset(); CleanupStack::Pop(); // popupList CleanupStack::PopAndDestroy(); // list }