XDMSettingsUI/src/XDMPluginSettinglist.cpp
changeset 12 e6a66db4e9d0
parent 0 c8caa15ef882
child 13 b7e70c0792e6
equal deleted inserted replaced
0:c8caa15ef882 12:e6a66db4e9d0
    20 
    20 
    21 // INCLUDE FILES
    21 // INCLUDE FILES
    22 #include "XDMExternalInterface.h"
    22 #include "XDMExternalInterface.h"
    23 
    23 
    24 #include <barsread.h>
    24 #include <barsread.h>
    25 #include <ApSettingsHandlerUI.h>
    25 #include <cmconnectionmethodext.h>
    26 #include <ApUtils.h>
    26 #include <cmapplicationsettingsui.h>
    27 #include <commdb.h>
       
    28 #include <avkon.loc>
    27 #include <avkon.loc>
    29 #include <StringLoader.h>
    28 #include <StringLoader.h>
    30 #include <akntitle.h>
    29 #include <akntitle.h>
    31 #include <eikspane.h>
    30 #include <eikspane.h>
    32 
    31 
    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 // -----------------------------------------------------------------------------
    70 // CXDMPluginSettinglist::~CXDMPluginSettinglist()
    79 // CXDMPluginSettinglist::~CXDMPluginSettinglist()
    71 // -----------------------------------------------------------------------------
    80 // -----------------------------------------------------------------------------
    72 // 
    81 // 
    73 CXDMPluginSettinglist::~CXDMPluginSettinglist()
    82 CXDMPluginSettinglist::~CXDMPluginSettinglist()
    74   {
    83   {
    75   // no specific destruction code required - no owned data
    84   iCmManagerExt.Close();
    76   }
    85   }
    77 
    86 
    78 // -----------------------------------------------------------------------------
    87 // -----------------------------------------------------------------------------
    79 // CXDMPluginSettinglist::SizeChanged()
    88 // CXDMPluginSettinglist::SizeChanged()
    80 // -----------------------------------------------------------------------------
    89 // -----------------------------------------------------------------------------
   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 // -----------------------------------------------------------------------------