51 // |
50 // |
52 CXDMPluginSettinglist *CXDMPluginSettinglist::NewLC(CSettingsData &aData) |
51 CXDMPluginSettinglist *CXDMPluginSettinglist::NewLC(CSettingsData &aData) |
53 { |
52 { |
54 CXDMPluginSettinglist* self = new (ELeave) CXDMPluginSettinglist(aData); |
53 CXDMPluginSettinglist* self = new (ELeave) CXDMPluginSettinglist(aData); |
55 CleanupStack::PushL(self); |
54 CleanupStack::PushL(self); |
|
55 self->ConstructL(); |
56 return self; |
56 return self; |
|
57 } |
|
58 |
|
59 // ----------------------------------------------------------------------------- |
|
60 // CXDMPluginSettinglist::ConstructL() |
|
61 // ----------------------------------------------------------------------------- |
|
62 // |
|
63 void CXDMPluginSettinglist::ConstructL() |
|
64 { |
|
65 iCmManagerExt.OpenL(); |
57 } |
66 } |
58 |
67 |
59 // ----------------------------------------------------------------------------- |
68 // ----------------------------------------------------------------------------- |
60 // CXDMPluginSettinglist::CXDMPluginSettinglist(CSettingsData &aData) |
69 // CXDMPluginSettinglist::CXDMPluginSettinglist(CSettingsData &aData) |
61 // ----------------------------------------------------------------------------- |
70 // ----------------------------------------------------------------------------- |
232 // CXDMPluginSettinglist::EditAccessPoint() |
241 // CXDMPluginSettinglist::EditAccessPoint() |
233 // ----------------------------------------------------------------------------- |
242 // ----------------------------------------------------------------------------- |
234 // |
243 // |
235 void CXDMPluginSettinglist::EditAccessPointL() |
244 void CXDMPluginSettinglist::EditAccessPointL() |
236 { |
245 { |
237 // After dialog server for access point selection (RGenConAgentDialogServer) |
246 TCmSettingSelection selectionUid; |
238 // has deprecated wins emulator mode needs a different technique to show |
247 CCmApplicationSettingsUi* settingsUi = CCmApplicationSettingsUi::NewLC(); |
239 // emulator-lan access point. |
248 // All Connection Methods will be listed if bearerFilter array has no element. |
240 |
249 TBearerFilterArray bearerFilter; |
241 CCommsDatabase* commsDb = CCommsDatabase::NewL( EDatabaseTypeIAP ); |
250 CleanupClosePushL( bearerFilter ); |
242 CleanupStack::PushL(commsDb); |
251 settingsUi->RunApplicationSettingsL( selectionUid , |
243 CApUtils* aPUtils = CApUtils::NewLC( *commsDb ); |
252 CMManager::EShowConnectionMethods, |
244 |
253 bearerFilter ); |
245 CApSettingsHandler *apUi = CApSettingsHandler::NewLC( |
254 CleanupStack::PopAndDestroy( &bearerFilter ); |
246 ETrue, |
255 CleanupStack::PopAndDestroy( settingsUi ); |
247 EApSettingsSelListIsPopUp, |
256 |
248 EApSettingsSelMenuSelectNormal, |
257 if ( selectionUid.iResult == CMManager::EConnectionMethod ) |
249 KEApIspTypeAll, |
258 { |
250 EApBearerTypeAllBearers, |
259 iSettingsData.iAccessPoint = selectionUid.iId; |
251 KEApSortNameAscending, |
260 } |
252 EIPv4 | EIPv6 |
|
253 ); |
|
254 TUint32 id; |
|
255 |
|
256 TRAP_IGNORE(id = aPUtils->WapIdFromIapIdL(iSettingsData.iAccessPoint)); |
|
257 |
|
258 //err can also be in case this is new set, iSettingsData.iAccessPoint = -1 |
|
259 //so ignoring the error |
|
260 |
|
261 if ( apUi->RunSettingsL( id, id ) == KApUiEventSelected) |
|
262 { |
|
263 iSettingsData.iAccessPoint = aPUtils->IapIdFromWapIdL(id); |
|
264 } |
|
265 CleanupStack::PopAndDestroy(3, commsDb); //commsDb, aPUtils, apUi |
|
266 } |
261 } |
267 |
262 |
268 // ----------------------------------------------------------------------------- |
263 // ----------------------------------------------------------------------------- |
269 // CXDMPluginSettinglist::GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint) |
264 // CXDMPluginSettinglist::GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint) |
270 // ----------------------------------------------------------------------------- |
265 // ----------------------------------------------------------------------------- |
271 // |
266 // |
272 void CXDMPluginSettinglist::GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint) |
267 void CXDMPluginSettinglist::GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint) |
273 { |
268 { |
274 #if defined __WINS__ && defined _DEBUG // handled differently in wins+debug |
269 #ifdef _DEBUG |
275 if (aAP != KErrNotFound) // if access point is defined take a general name |
270 RDebug::Print( _L( "CXDMPluginSettinglist::GetAccessPointNameL - IN" ) ); |
276 StringLoader::Load ( aAccessPoint, R_STR_XDM_AP_NAME_FOR_DEBUG_ONLY); |
271 #endif |
277 #else |
272 if ( aAP > KErrNotFound ) |
278 CCommsDatabase* commsDb = CCommsDatabase::NewL( EDatabaseTypeIAP ); |
273 { |
279 CleanupStack::PushL(commsDb); |
274 RCmConnectionMethodExt connMethod = iCmManagerExt.ConnectionMethodL( aAP ); |
280 CApUtils* aPUtils = CApUtils::NewLC( *commsDb ); |
275 CleanupClosePushL( connMethod ); |
281 TInt err(KErrNone); |
276 |
282 // to remove id bug |
277 HBufC* connName = connMethod.GetStringAttributeL( CMManager::ECmName ); |
283 TRAP(err, aAP = aPUtils->WapIdFromIapIdL(aAP)); |
278 CleanupStack::PushL( connName ); |
284 TRAP(err, aPUtils->NameL(aAP, aAccessPoint)); |
279 |
285 // dont do anything if name not found or if some error occur |
280 if ( KMaxAccessPointNameLength >= connName->Des().Length() ) |
286 CleanupStack::PopAndDestroy(2); // commsDb, aPUtils |
281 { |
287 #endif |
282 aAccessPoint.Copy( connName->Des() ); |
|
283 } |
|
284 else |
|
285 { |
|
286 aAccessPoint.Copy( connName->Des().Left( KMaxAccessPointNameLength ) ); |
|
287 } |
|
288 |
|
289 CleanupStack::PopAndDestroy( connName ); |
|
290 CleanupStack::PopAndDestroy( &connMethod ); |
|
291 #ifdef _DEBUG |
|
292 RDebug::Print( _L( "CXDMPluginSettinglist::GetAccessPointNameL - Name: %S"), |
|
293 &aAccessPoint ); |
|
294 #endif |
|
295 } |
|
296 #ifdef _DEBUG |
|
297 RDebug::Print( _L( "CXDMPluginSettinglist::GetAccessPointNameL - OUT id: %d:" ), |
|
298 aAP ); |
|
299 #endif |
288 } |
300 } |
289 |
301 |
290 // ----------------------------------------------------------------------------- |
302 // ----------------------------------------------------------------------------- |
291 // CXDMPluginSettinglist::SetTitlePaneTextL( const TDesC& aTitleText ) const |
303 // CXDMPluginSettinglist::SetTitlePaneTextL( const TDesC& aTitleText ) const |
292 // ----------------------------------------------------------------------------- |
304 // ----------------------------------------------------------------------------- |