30 //</cmail> |
30 //</cmail> |
31 #include <eikmenup.h> |
31 #include <eikmenup.h> |
32 #include <coemain.h> |
32 #include <coemain.h> |
33 #include <gulicon.h> |
33 #include <gulicon.h> |
34 #include <AknsUtils.h> |
34 #include <AknsUtils.h> |
35 #include <FavouritesDb.h> |
35 #include <favouritesdb.h> |
36 #include <apgtask.h> |
36 #include <apgtask.h> |
37 #include <apgcli.h> |
37 #include <apgcli.h> |
38 #include <AknQueryDialog.h> |
38 #include <AknQueryDialog.h> |
39 #include <aknnotewrappers.h> |
39 #include <aknnotewrappers.h> |
40 #include <FeatMgr.h> |
40 #include <featmgr.h> |
41 // for intranet application opening |
41 // for intranet application opening |
42 #include <AiwServiceHandler.h> |
42 #include <AiwServiceHandler.h> |
43 #include <data_caging_path_literals.hrh> |
43 #include <data_caging_path_literals.hrh> |
44 #include <publicruntimeids.hrh> |
44 #include <publicruntimeids.hrh> |
45 |
45 |
85 // --------------------------------------------------------------------------- |
85 // --------------------------------------------------------------------------- |
86 // CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler |
86 // CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler |
87 // --------------------------------------------------------------------------- |
87 // --------------------------------------------------------------------------- |
88 // |
88 // |
89 CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler( |
89 CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler( |
90 CFscContactActionMenu& aContactActionMenu ) : |
90 CFscContactActionMenu& aContactActionMenu ) : |
91 iContactActionMenu( aContactActionMenu ) |
91 iContactActionMenu( aContactActionMenu ) |
92 { |
92 { |
93 FUNC_LOG; |
93 FUNC_LOG; |
94 // Do nothing |
94 // Do nothing |
95 } |
95 } |
101 CESMRContactMenuUrlHandler* CESMRContactMenuUrlHandler::NewL( |
101 CESMRContactMenuUrlHandler* CESMRContactMenuUrlHandler::NewL( |
102 CFscContactActionMenu& aContactActionMenu ) |
102 CFscContactActionMenu& aContactActionMenu ) |
103 { |
103 { |
104 FUNC_LOG; |
104 FUNC_LOG; |
105 CESMRContactMenuUrlHandler* self = |
105 CESMRContactMenuUrlHandler* self = |
106 new (ELeave) CESMRContactMenuUrlHandler( aContactActionMenu ); |
106 new (ELeave) CESMRContactMenuUrlHandler( aContactActionMenu ); |
107 return self; |
107 return self; |
108 } |
108 } |
109 |
109 |
110 // --------------------------------------------------------------------------- |
110 // --------------------------------------------------------------------------- |
111 // CESMRContactMenuUrlHandler::~CESMRContactMenuUrlHandler( ) |
111 // CESMRContactMenuUrlHandler::~CESMRContactMenuUrlHandler( ) |
145 // --------------------------------------------------------------------------- |
145 // --------------------------------------------------------------------------- |
146 // CESMRContactMenuUrlHandler::CreateMenuItemL |
146 // CESMRContactMenuUrlHandler::CreateMenuItemL |
147 // --------------------------------------------------------------------------- |
147 // --------------------------------------------------------------------------- |
148 // |
148 // |
149 void CESMRContactMenuUrlHandler::CreateMenuItemL( |
149 void CESMRContactMenuUrlHandler::CreateMenuItemL( |
150 TInt aResourceId, |
150 TInt aResourceId, |
151 TUid aCommandUid ) |
151 TUid aCommandUid ) |
152 { |
152 { |
153 FUNC_LOG; |
153 FUNC_LOG; |
154 CGulIcon* itemIcon = CreateIconL(aCommandUid); |
154 CGulIcon* itemIcon = CreateIconL(aCommandUid); |
155 //ownership transferred |
155 //ownership transferred |
156 CleanupStack::PushL( itemIcon ); |
156 CleanupStack::PushL( itemIcon ); |
157 iIconArray.AppendL( itemIcon ); |
157 iIconArray.AppendL( itemIcon ); |
158 CleanupStack::Pop( itemIcon ); |
158 CleanupStack::Pop( itemIcon ); |
159 |
159 |
160 HBufC* text = CCoeEnv::Static()->AllocReadResourceLC( aResourceId ); |
160 HBufC* text = CCoeEnv::Static()->AllocReadResourceLC( aResourceId ); |
161 CFscContactActionMenuItem* newItem = |
161 CFscContactActionMenuItem* newItem = |
162 iContactActionMenu.Model().NewMenuItemL( *text, |
162 iContactActionMenu.Model().NewMenuItemL( *text, |
163 itemIcon, |
163 itemIcon, |
164 1, |
164 1, |
165 EFalse, |
165 EFalse, |
166 aCommandUid ); |
166 aCommandUid ); |
167 |
167 |
168 CleanupStack::PopAndDestroy( text ); |
168 CleanupStack::PopAndDestroy( text ); |
224 // --------------------------------------------------------------------------- |
224 // --------------------------------------------------------------------------- |
225 // CESMRContactMenuUrlHandler::InitOptionsMenuL |
225 // CESMRContactMenuUrlHandler::InitOptionsMenuL |
226 // --------------------------------------------------------------------------- |
226 // --------------------------------------------------------------------------- |
227 // |
227 // |
228 void CESMRContactMenuUrlHandler::InitOptionsMenuL( |
228 void CESMRContactMenuUrlHandler::InitOptionsMenuL( |
229 CEikMenuPane* aActionMenuPane ) |
229 CEikMenuPane* aActionMenuPane ) |
230 { |
230 { |
231 FUNC_LOG; |
231 FUNC_LOG; |
232 CEikMenuPaneItem::SData data; |
232 CEikMenuPaneItem::SData data; |
233 data.iFlags = 0; |
233 data.iFlags = 0; |
234 data.iCascadeId = 0; |
234 data.iCascadeId = 0; |
237 TInt command = EESMRCmdActionMenuFirst; |
237 TInt command = EESMRCmdActionMenuFirst; |
238 |
238 |
239 data.iCommandId = command; |
239 data.iCommandId = command; |
240 command++;//dynamic command ids |
240 command++;//dynamic command ids |
241 CCoeEnv::Static()->ReadResourceL( |
241 CCoeEnv::Static()->ReadResourceL( |
242 data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB ); |
242 data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB ); |
243 aActionMenuPane->AddMenuItemL( data ); |
243 aActionMenuPane->AddMenuItemL( data ); |
244 |
244 |
245 if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) && |
245 if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) && |
246 FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) ) |
246 FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) ) |
247 { |
247 { |
248 data.iCommandId = command; |
248 data.iCommandId = command; |
249 command++;//dynamic command ids |
249 command++;//dynamic command ids |
250 CCoeEnv::Static()->ReadResourceL( |
250 CCoeEnv::Static()->ReadResourceL( |
251 data.iText, R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA ); |
251 data.iText, R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA ); |
252 aActionMenuPane->AddMenuItemL( data ); |
252 aActionMenuPane->AddMenuItemL( data ); |
253 } |
253 } |
254 |
254 |
255 data.iCommandId = command; |
255 data.iCommandId = command; |
256 CCoeEnv::Static()->ReadResourceL( |
256 CCoeEnv::Static()->ReadResourceL( |
257 data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK ); |
257 data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK ); |
258 aActionMenuPane->AddMenuItemL( data ); |
258 aActionMenuPane->AddMenuItemL( data ); |
259 } |
259 } |
260 |
260 |
261 // --------------------------------------------------------------------------- |
261 // --------------------------------------------------------------------------- |
262 // CESMRContactMenuUrlHandler::IsServiceAvailableL |
262 // CESMRContactMenuUrlHandler::IsServiceAvailableL |
324 iIconArray.ResetAndDestroy(); |
324 iIconArray.ResetAndDestroy(); |
325 iContactActionMenu.Model().RemoveAll(); |
325 iContactActionMenu.Model().RemoveAll(); |
326 |
326 |
327 //fill list |
327 //fill list |
328 CreateMenuItemL( R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB, |
328 CreateMenuItemL( R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB, |
329 KUidOpenInBrowser); |
329 KUidOpenInBrowser); |
330 |
330 |
331 if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) && |
331 if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) && |
332 FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) ) |
332 FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) ) |
333 { |
333 { |
334 CreateMenuItemL( R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA, |
334 CreateMenuItemL( R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA, |
335 KUidOpenInIntranet); |
335 KUidOpenInIntranet); |
336 } |
336 } |
337 |
337 |
338 CreateMenuItemL(R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK, KUidBookmark); |
338 CreateMenuItemL(R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK, KUidBookmark); |
339 |
339 |
340 //show list |
340 //show list |
373 CleanupClosePushL( appArcSession ); |
373 CleanupClosePushL( appArcSession ); |
374 // connect to AppArc server |
374 // connect to AppArc server |
375 User::LeaveIfError( appArcSession.Connect() ); |
375 User::LeaveIfError( appArcSession.Connect() ); |
376 TThreadId id; |
376 TThreadId id; |
377 User::LeaveIfError( appArcSession.StartDocument ( |
377 User::LeaveIfError( appArcSession.StartDocument ( |
378 *param, KUidBrowser, id ) ); |
378 *param, KUidBrowser, id ) ); |
379 CleanupStack::PopAndDestroy( &appArcSession ); |
379 CleanupStack::PopAndDestroy( &appArcSession ); |
380 } |
380 } |
381 CleanupStack::PopAndDestroy( param ); |
381 CleanupStack::PopAndDestroy( param ); |
382 } |
382 } |
383 |
383 |
394 TAiwGenericParam inParam(EGenericParamURL, TAiwVariant(*eightBitUrl)); |
394 TAiwGenericParam inParam(EGenericParamURL, TAiwVariant(*eightBitUrl)); |
395 CAiwGenericParamList& inParamList = ServiceHandlerL().InParamListL(); |
395 CAiwGenericParamList& inParamList = ServiceHandlerL().InParamListL(); |
396 inParamList.AppendL( inParam ); |
396 inParamList.AppendL( inParam ); |
397 |
397 |
398 ServiceHandlerL().ExecuteServiceCmdL( |
398 ServiceHandlerL().ExecuteServiceCmdL( |
399 KAiwCmdView, |
399 KAiwCmdView, |
400 inParamList, |
400 inParamList, |
401 ServiceHandlerL().OutParamListL() ); |
401 ServiceHandlerL().OutParamListL() ); |
402 CleanupStack::PopAndDestroy( eightBitUrl ); |
402 CleanupStack::PopAndDestroy( eightBitUrl ); |
403 } |
403 } |
404 |
404 |
405 // --------------------------------------------------------------------------- |
405 // --------------------------------------------------------------------------- |
406 // CESMRContactMenuUrlHandler::BookmarkUrlL( ) |
406 // CESMRContactMenuUrlHandler::BookmarkUrlL( ) |
414 item->SetParentFolder( KFavouritesRootUid ); |
414 item->SetParentFolder( KFavouritesRootUid ); |
415 item->SetType( CFavouritesItem::EItem ); |
415 item->SetType( CFavouritesItem::EItem ); |
416 |
416 |
417 // Read default name from resources |
417 // Read default name from resources |
418 HBufC* defaultName =CCoeEnv::Static()->AllocReadResourceLC ( |
418 HBufC* defaultName =CCoeEnv::Static()->AllocReadResourceLC ( |
419 R_QTN_CALENDAR_DEFAULT_BOOKMARK ); |
419 R_QTN_CALENDAR_DEFAULT_BOOKMARK ); |
420 |
420 |
421 TBuf<KMaxBookmarkNameLength> retName; |
421 TBuf<KMaxBookmarkNameLength> retName; |
422 retName.Copy( defaultName->Des() ); |
422 retName.Copy( defaultName->Des() ); |
423 |
423 |
424 // Query bookmark name from user |
424 // Query bookmark name from user |
428 { |
428 { |
429 // User press cancel - do not add bookmark |
429 // User press cancel - do not add bookmark |
430 CleanupStack::PopAndDestroy ( 2, item ); // item, defaultName |
430 CleanupStack::PopAndDestroy ( 2, item ); // item, defaultName |
431 } |
431 } |
432 else |
432 else |
433 { |
433 { |
434 item->SetNameL( retName ); |
434 item->SetNameL( retName ); |
435 item->SetUrlL( *iUrl ); |
435 item->SetUrlL( *iUrl ); |
436 |
436 |
437 RFavouritesSession sess; // codescanner::resourcenotoncleanupstack |
437 RFavouritesSession sess; // codescanner::resourcenotoncleanupstack |
438 RFavouritesDb db; // codescanner::resourcenotoncleanupstack |
438 RFavouritesDb db; // codescanner::resourcenotoncleanupstack |
439 |
439 |
440 User::LeaveIfError( sess.Connect() ); |
440 User::LeaveIfError( sess.Connect() ); |
441 CleanupClosePushL<RFavouritesSession> ( sess ); |
441 CleanupClosePushL<RFavouritesSession> ( sess ); |
442 User::LeaveIfError( db.Open( sess, KBrowserBookmarks ) ); |
442 User::LeaveIfError( db.Open( sess, KBrowserBookmarks ) ); |
443 CleanupClosePushL<RFavouritesDb> ( db ); |
443 CleanupClosePushL<RFavouritesDb> ( db ); |
444 |
444 |
445 // add item |
445 // add item |
446 db.Add( *item, ETrue ); |
446 db.Add( *item, ETrue ); |
447 // Close the database. |
447 // Close the database. |
448 db.Close(); |
448 db.Close(); |
449 |
449 |
450 HBufC * msgBuffer = CCoeEnv::Static()->AllocReadResourceLC( |
450 HBufC * msgBuffer = CCoeEnv::Static()->AllocReadResourceLC( |
451 R_QTN_CALENDAR_BOOKMARK_SAVED ); |
451 R_QTN_CALENDAR_BOOKMARK_SAVED ); |
452 CAknConfirmationNote* note = new(ELeave)CAknConfirmationNote( ETrue ); |
452 CAknConfirmationNote* note = new(ELeave)CAknConfirmationNote( ETrue ); |
453 note->ExecuteLD ( *msgBuffer ); |
453 note->ExecuteLD ( *msgBuffer ); |
454 |
454 |
455 // item, db, sess, defaultName, msgBuffer |
455 // item, db, sess, defaultName, msgBuffer |
456 CleanupStack::PopAndDestroy ( 5, item ); // codescanner::magicnumbers |
456 CleanupStack::PopAndDestroy ( 5, item ); // codescanner::magicnumbers |
457 } |
457 } |
458 } |
458 } |
459 |
459 |
460 // --------------------------------------------------------------------------- |
460 // --------------------------------------------------------------------------- |
461 // CESMRContactMenuUrlHandler::ServiceHandlerL |
461 // CESMRContactMenuUrlHandler::ServiceHandlerL |
462 // --------------------------------------------------------------------------- |
462 // --------------------------------------------------------------------------- |