93
92
* a reference to the underlying data, which EditItemL() uses
94
93
* to edit and store the value.
96
CAknSettingItem* CSymbian_ua_guiSettingItemList::CreateSettingItemL( TInt aId )
100
// [[[ begin generated region: do not modify [Initializers]
101
case ESymbian_ua_guiSettingItemListViewEd_registrar:
103
CAknTextSettingItem* item = new ( ELeave )
106
iSettings.Ed_registrar() );
107
item->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
110
case ESymbian_ua_guiSettingItemListViewEd_user:
112
CAknTextSettingItem* item = new ( ELeave )
115
iSettings.Ed_user() );
116
item->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
119
case ESymbian_ua_guiSettingItemListViewEd_password:
121
CAknPasswordSettingItem* item = new ( ELeave )
122
CAknPasswordSettingItem(
124
CAknPasswordSettingItem::EAlpha,
125
iSettings.Ed_password() );
126
item->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
129
case ESymbian_ua_guiSettingItemListViewB_srtp:
131
CAknBinaryPopupSettingItem* item = new ( ELeave )
132
CAknBinaryPopupSettingItem(
134
iSettings.B_srtp() );
135
item->SetHidden( ETrue );
138
case ESymbian_ua_guiSettingItemListViewB_ice:
140
CAknBinaryPopupSettingItem* item = new ( ELeave )
141
CAknBinaryPopupSettingItem(
144
item->SetHidden( ETrue );
147
case ESymbian_ua_guiSettingItemListViewEd_stun_server:
149
CAknTextSettingItem* item = new ( ELeave )
152
iSettings.Ed_stun_server() );
153
item->SetHidden( ETrue );
156
// ]]] end generated region [Initializers]
95
CAknSettingItem* CSymbian_ua_guiSettingItemList::CreateSettingItemL (TInt aId)
98
// [[[ begin generated region: do not modify [Initializers]
99
case ESymbian_ua_guiSettingItemListViewEd_registrar: {
100
CAknTextSettingItem* item = new (ELeave)
101
CAknTextSettingItem (
103
iSettings.Ed_registrar());
104
item->SetSettingPageFlags (CAknTextSettingPage::EZeroLengthAllowed);
107
case ESymbian_ua_guiSettingItemListViewEd_user: {
108
CAknTextSettingItem* item = new (ELeave)
109
CAknTextSettingItem (
111
iSettings.Ed_user());
112
item->SetSettingPageFlags (CAknTextSettingPage::EZeroLengthAllowed);
115
case ESymbian_ua_guiSettingItemListViewEd_password: {
116
CAknPasswordSettingItem* item = new (ELeave)
117
CAknPasswordSettingItem (
119
CAknPasswordSettingItem::EAlpha,
120
iSettings.Ed_password());
121
item->SetSettingPageFlags (CAknTextSettingPage::EZeroLengthAllowed);
124
case ESymbian_ua_guiSettingItemListViewB_srtp: {
125
CAknBinaryPopupSettingItem* item = new (ELeave)
126
CAknBinaryPopupSettingItem (
129
item->SetHidden (ETrue);
132
case ESymbian_ua_guiSettingItemListViewB_ice: {
133
CAknBinaryPopupSettingItem* item = new (ELeave)
134
CAknBinaryPopupSettingItem (
137
item->SetHidden (ETrue);
140
case ESymbian_ua_guiSettingItemListViewEd_stun_server: {
141
CAknTextSettingItem* item = new (ELeave)
142
CAknTextSettingItem (
144
iSettings.Ed_stun_server());
145
item->SetHidden (ETrue);
148
// ]]] end generated region [Initializers]
164
156
* Edit the setting item identified by the given id and store
165
157
* the changes into the store.
168
160
* always show the edit page and interactively edit the item;
169
161
* false: change the item in place if possible, else show the edit page
171
void CSymbian_ua_guiSettingItemList::EditItemL ( TInt aIndex, TBool aCalledFromMenu )
173
CAknSettingItem* item = ( *SettingItemArray() )[aIndex];
174
switch ( item->Identifier() )
176
// [[[ begin generated region: do not modify [Editing Started Invoker]
177
// ]]] end generated region [Editing Started Invoker]
181
CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
183
TBool storeValue = ETrue;
184
switch ( item->Identifier() )
186
// [[[ begin generated region: do not modify [Editing Stopped Invoker]
187
// ]]] end generated region [Editing Stopped Invoker]
194
SaveSettingValuesL();
163
void CSymbian_ua_guiSettingItemList::EditItemL (TInt aIndex, TBool aCalledFromMenu)
165
CAknSettingItem* item = (*SettingItemArray()) [aIndex];
167
switch (item->Identifier()) {
168
// [[[ begin generated region: do not modify [Editing Started Invoker]
169
// ]]] end generated region [Editing Started Invoker]
173
CAknSettingItemList::EditItemL (aIndex, aCalledFromMenu);
175
TBool storeValue = ETrue;
177
switch (item->Identifier()) {
178
// [[[ begin generated region: do not modify [Editing Stopped Invoker]
179
// ]]] end generated region [Editing Stopped Invoker]
185
SaveSettingValuesL();
198
189
* Handle the "Change" option on the Options menu. This is an
199
190
* alternative to the Selection key that forces the settings page
200
191
* to come up rather than changing the value in place (if possible).
202
193
void CSymbian_ua_guiSettingItemList::ChangeSelectedItemL()
204
if ( ListBox()->CurrentItemIndex() >= 0 )
206
EditItemL( ListBox()->CurrentItemIndex(), ETrue );
195
if (ListBox()->CurrentItemIndex() >= 0) {
196
EditItemL (ListBox()->CurrentItemIndex(), ETrue);
211
201
* Load the initial contents of the setting items. By default,
212
202
* the setting items are populated with the default values from
213
203
* the design. You can override those values here.
215
* Note: this call alone does not update the UI.
205
* Note: this call alone does not update the UI.
216
206
* LoadSettingsL() must be called afterwards.
218
208
void CSymbian_ua_guiSettingItemList::LoadSettingValuesL()
220
// load values into iSettings
223
TFileName pathWithoutDrive;
224
CEikonEnv::Static()->FsSession().PrivatePath( pathWithoutDrive );
226
// Extract drive letter into appDrive:
210
// load values into iSettings
213
TFileName pathWithoutDrive;
214
CEikonEnv::Static()->FsSession().PrivatePath (pathWithoutDrive);
216
// Extract drive letter into appDrive:
228
path.Copy( _L("c:") );
218
path.Copy (_L ("c:"));
231
path.Copy( process.FileName().Left(2) );
221
path.Copy (process.FileName().Left (2));
234
path.Append( pathWithoutDrive );
235
path.Append( KtxDicFileName );
237
TFindFile AufFolder(CCoeEnv::Static()->FsSession());
238
if(KErrNone == AufFolder.FindByDir(path, KNullDesC))
240
CDictionaryFileStore* MyDStore = CDictionaryFileStore::OpenLC(CCoeEnv::Static()->FsSession(),AufFolder.File(), TUid::Uid(1));
243
FileUid.iUid = KRegistrar;
244
if(MyDStore->IsPresentL(FileUid))
246
RDictionaryReadStream in;
247
in.OpenLC(*MyDStore,FileUid);
248
in >> iSettings.Ed_registrar();
249
CleanupStack::PopAndDestroy(1);// in
252
FileUid.iUid = KUsername;
253
if(MyDStore->IsPresentL(FileUid))
255
RDictionaryReadStream in;
256
in.OpenLC(*MyDStore,FileUid);
257
in >> iSettings.Ed_user();
258
CleanupStack::PopAndDestroy(1);// in
261
FileUid.iUid = KPassword;
262
if(MyDStore->IsPresentL(FileUid))
264
RDictionaryReadStream in;
265
in.OpenLC(*MyDStore,FileUid);
266
in >> iSettings.Ed_password();
267
CleanupStack::PopAndDestroy(1);// in
270
FileUid.iUid = KStunServer;
271
if(MyDStore->IsPresentL(FileUid))
273
RDictionaryReadStream in;
274
in.OpenLC(*MyDStore,FileUid);
275
in >> iSettings.Ed_stun_server();
276
CleanupStack::PopAndDestroy(1);// in
279
FileUid.iUid = KSrtp;
280
if(MyDStore->IsPresentL(FileUid))
282
RDictionaryReadStream in;
283
in.OpenLC(*MyDStore,FileUid);
284
iSettings.SetB_srtp((TBool)in.ReadInt32L());
285
CleanupStack::PopAndDestroy(1);// in
289
if(MyDStore->IsPresentL(FileUid))
291
RDictionaryReadStream in;
292
in.OpenLC(*MyDStore,FileUid);
293
iSettings.SetB_ice((TBool)in.ReadInt32L());
294
CleanupStack::PopAndDestroy(1);// in
297
CleanupStack::PopAndDestroy(1);// Store
224
path.Append (pathWithoutDrive);
225
path.Append (KtxDicFileName);
227
TFindFile AufFolder (CCoeEnv::Static()->FsSession());
229
if (KErrNone == AufFolder.FindByDir (path, KNullDesC)) {
230
CDictionaryFileStore* MyDStore = CDictionaryFileStore::OpenLC (CCoeEnv::Static()->FsSession(),AufFolder.File(), TUid::Uid (1));
233
FileUid.iUid = KRegistrar;
235
if (MyDStore->IsPresentL (FileUid)) {
236
RDictionaryReadStream in;
237
in.OpenLC (*MyDStore,FileUid);
238
in >> iSettings.Ed_registrar();
239
CleanupStack::PopAndDestroy (1);// in
242
FileUid.iUid = KUsername;
244
if (MyDStore->IsPresentL (FileUid)) {
245
RDictionaryReadStream in;
246
in.OpenLC (*MyDStore,FileUid);
247
in >> iSettings.Ed_user();
248
CleanupStack::PopAndDestroy (1);// in
251
FileUid.iUid = KPassword;
253
if (MyDStore->IsPresentL (FileUid)) {
254
RDictionaryReadStream in;
255
in.OpenLC (*MyDStore,FileUid);
256
in >> iSettings.Ed_password();
257
CleanupStack::PopAndDestroy (1);// in
260
FileUid.iUid = KStunServer;
262
if (MyDStore->IsPresentL (FileUid)) {
263
RDictionaryReadStream in;
264
in.OpenLC (*MyDStore,FileUid);
265
in >> iSettings.Ed_stun_server();
266
CleanupStack::PopAndDestroy (1);// in
269
FileUid.iUid = KSrtp;
271
if (MyDStore->IsPresentL (FileUid)) {
272
RDictionaryReadStream in;
273
in.OpenLC (*MyDStore,FileUid);
274
iSettings.SetB_srtp ( (TBool) in.ReadInt32L());
275
CleanupStack::PopAndDestroy (1);// in
280
if (MyDStore->IsPresentL (FileUid)) {
281
RDictionaryReadStream in;
282
in.OpenLC (*MyDStore,FileUid);
283
iSettings.SetB_ice ( (TBool) in.ReadInt32L());
284
CleanupStack::PopAndDestroy (1);// in
287
CleanupStack::PopAndDestroy (1);// Store
303
293
* Save the contents of the setting items. Note, this is called
304
294
* whenever an item is changed and stored to the model, so it
305
295
* may be called multiple times or not at all.
307
297
void CSymbian_ua_guiSettingItemList::SaveSettingValuesL()
309
// store values from iSettings
312
TFileName pathWithoutDrive;
313
CEikonEnv::Static()->FsSession().PrivatePath( pathWithoutDrive );
315
// Extract drive letter into appDrive:
299
// store values from iSettings
302
TFileName pathWithoutDrive;
303
CEikonEnv::Static()->FsSession().PrivatePath (pathWithoutDrive);
305
// Extract drive letter into appDrive:
317
path.Copy( _L("c:") );
307
path.Copy (_L ("c:"));
320
path.Copy( process.FileName().Left(2) );
322
if(path.Compare(_L("c")) || path.Compare(_L("C")))
323
CEikonEnv::Static()->FsSession().CreatePrivatePath(EDriveC);
324
else if(path.Compare(_L("e")) || path.Compare(_L("E")))
325
CEikonEnv::Static()->FsSession().CreatePrivatePath(EDriveE);
310
path.Copy (process.FileName().Left (2));
312
if (path.Compare (_L ("c")) || path.Compare (_L ("C")))
313
CEikonEnv::Static()->FsSession().CreatePrivatePath (EDriveC);
314
else if (path.Compare (_L ("e")) || path.Compare (_L ("E")))
315
CEikonEnv::Static()->FsSession().CreatePrivatePath (EDriveE);
328
path.Append( pathWithoutDrive );
329
path.Append( KtxDicFileName );
331
TFindFile AufFolder(CCoeEnv::Static()->FsSession());
332
if(KErrNone == AufFolder.FindByDir(path, KNullDesC))
334
User::LeaveIfError(CCoeEnv::Static()->FsSession().Delete(AufFolder.File()));
337
CDictionaryFileStore* MyDStore = CDictionaryFileStore::OpenLC(CCoeEnv::Static()->FsSession(),path, TUid::Uid(1));
339
TUid FileUid = {0x0};
341
FileUid.iUid = KRegistrar;
342
RDictionaryWriteStream out1;
343
out1.AssignLC(*MyDStore,FileUid);
344
out1 << iSettings.Ed_registrar();
346
CleanupStack::PopAndDestroy(1);// out2
348
FileUid.iUid = KUsername;
349
RDictionaryWriteStream out2;
350
out2.AssignLC(*MyDStore,FileUid);
351
out2 << iSettings.Ed_user();
353
CleanupStack::PopAndDestroy(1);// out2
355
FileUid.iUid = KPassword;
356
RDictionaryWriteStream out3;
357
out3.AssignLC(*MyDStore,FileUid);
358
out3 << iSettings.Ed_password();
360
CleanupStack::PopAndDestroy(1);// out2
362
FileUid.iUid = KStunServer;
363
RDictionaryWriteStream out4;
364
out4.AssignLC(*MyDStore,FileUid);
365
out4 << iSettings.Ed_stun_server();
367
CleanupStack::PopAndDestroy(1);// out2
369
FileUid.iUid = KSrtp;
370
RDictionaryWriteStream out5;
371
out5.AssignLC(*MyDStore,FileUid);
372
out5.WriteInt32L(iSettings.B_srtp());
374
CleanupStack::PopAndDestroy(1);// out1
377
RDictionaryWriteStream out6;
378
out6.AssignLC(*MyDStore,FileUid);
379
out6.WriteInt32L(iSettings.B_ice());
381
CleanupStack::PopAndDestroy(1);// out1
384
CleanupStack::PopAndDestroy(1);// Store
319
path.Append (pathWithoutDrive);
320
path.Append (KtxDicFileName);
322
TFindFile AufFolder (CCoeEnv::Static()->FsSession());
324
if (KErrNone == AufFolder.FindByDir (path, KNullDesC)) {
325
User::LeaveIfError (CCoeEnv::Static()->FsSession().Delete (AufFolder.File()));
328
CDictionaryFileStore* MyDStore = CDictionaryFileStore::OpenLC (CCoeEnv::Static()->FsSession(),path, TUid::Uid (1));
330
TUid FileUid = {0x0};
332
FileUid.iUid = KRegistrar;
333
RDictionaryWriteStream out1;
334
out1.AssignLC (*MyDStore,FileUid);
335
out1 << iSettings.Ed_registrar();
337
CleanupStack::PopAndDestroy (1);// out2
339
FileUid.iUid = KUsername;
340
RDictionaryWriteStream out2;
341
out2.AssignLC (*MyDStore,FileUid);
342
out2 << iSettings.Ed_user();
344
CleanupStack::PopAndDestroy (1);// out2
346
FileUid.iUid = KPassword;
347
RDictionaryWriteStream out3;
348
out3.AssignLC (*MyDStore,FileUid);
349
out3 << iSettings.Ed_password();
351
CleanupStack::PopAndDestroy (1);// out2
353
FileUid.iUid = KStunServer;
354
RDictionaryWriteStream out4;
355
out4.AssignLC (*MyDStore,FileUid);
356
out4 << iSettings.Ed_stun_server();
358
CleanupStack::PopAndDestroy (1);// out2
360
FileUid.iUid = KSrtp;
361
RDictionaryWriteStream out5;
362
out5.AssignLC (*MyDStore,FileUid);
363
out5.WriteInt32L (iSettings.B_srtp());
365
CleanupStack::PopAndDestroy (1);// out1
368
RDictionaryWriteStream out6;
369
out6.AssignLC (*MyDStore,FileUid);
370
out6.WriteInt32L (iSettings.B_ice());
372
CleanupStack::PopAndDestroy (1);// out1
375
CleanupStack::PopAndDestroy (1);// Store
390
381
* Handle global resource changes, such as scalable UI or skin events (override)
392
void CSymbian_ua_guiSettingItemList::HandleResourceChange( TInt aType )
394
CAknSettingItemList::HandleResourceChange( aType );
395
SetRect( iAvkonViewAppUi->View( TUid::Uid( ESymbian_ua_guiSettingItemListViewId ) )->ClientRect() );
396
// [[[ begin generated region: do not modify [Generated Contents]
397
// ]]] end generated region [Generated Contents]
383
void CSymbian_ua_guiSettingItemList::HandleResourceChange (TInt aType)
385
CAknSettingItemList::HandleResourceChange (aType);
386
SetRect (iAvkonViewAppUi->View (TUid::Uid (ESymbian_ua_guiSettingItemListViewId))->ClientRect());
387
// [[[ begin generated region: do not modify [Generated Contents]
388
// ]]] end generated region [Generated Contents]
402
393
* Handle key event (override)
403
394
* @param aKeyEvent key event
404
395
* @param aType event code
405
396
* @return EKeyWasConsumed if the event was handled, else EKeyWasNotConsumed
407
TKeyResponse CSymbian_ua_guiSettingItemList::OfferKeyEventL(
408
const TKeyEvent& aKeyEvent,
411
// [[[ begin generated region: do not modify [Generated Contents]
412
// ]]] end generated region [Generated Contents]
414
if ( aKeyEvent.iCode == EKeyLeftArrow
415
|| aKeyEvent.iCode == EKeyRightArrow )
417
// allow the tab control to get the arrow keys
418
return EKeyWasNotConsumed;
421
return CAknSettingItemList::OfferKeyEventL( aKeyEvent, aType );
398
TKeyResponse CSymbian_ua_guiSettingItemList::OfferKeyEventL (
399
const TKeyEvent& aKeyEvent,
402
// [[[ begin generated region: do not modify [Generated Contents]
403
// ]]] end generated region [Generated Contents]
405
if (aKeyEvent.iCode == EKeyLeftArrow
406
|| aKeyEvent.iCode == EKeyRightArrow) {
407
// allow the tab control to get the arrow keys
408
return EKeyWasNotConsumed;
411
return CAknSettingItemList::OfferKeyEventL (aKeyEvent, aType);