# HG changeset patch # User Sebastian Brannstrom # Date 1288652387 0 # Node ID 75a70f4a4f6d8284082ba530077f31aadb1ba90b # Parent b4560769586d3f2658657c6e352a4dfaa828f297 Fix for bug 2060 - added info view for feeds diff -r b4560769586d -r 75a70f4a4f6d application/data/PodcastFeedView.ra --- a/application/data/PodcastFeedView.ra Mon Nov 01 14:12:51 2010 +0000 +++ b/application/data/PodcastFeedView.ra Mon Nov 01 22:59:47 2010 +0000 @@ -59,6 +59,12 @@ }, MENU_ITEM { + txt = STRING_r_view_show_info_cmd; + command = EPodcastShowInfo; + flags = EEikMenuItemSpecific; + }, + MENU_ITEM + { txt = STRING_r_view_edit_feed_cmd_short; command = EPodcastEditFeed; flags = EEikMenuItemSpecific; diff -r b4560769586d -r 75a70f4a4f6d application/inc/PodcastFeedView.h --- a/application/inc/PodcastFeedView.h Mon Nov 01 14:12:51 2010 +0000 +++ b/application/inc/PodcastFeedView.h Mon Nov 01 22:59:47 2010 +0000 @@ -101,6 +101,7 @@ // from MImageHandlerCallback void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); + void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane); private: void FormatFeedInfoListBoxItemL(CFeedInfo& aFeedInfo, TBool aIsUpdating = EFalse); void HandleAddFeedL(); @@ -114,6 +115,7 @@ void GetFeedErrorText(TDes &aErrorMessage, TInt aErrorCode); void OpmlParsingCompleteL(TInt aError, TUint aNumFeedsImported); void LoadIcons(); + void DisplayFeedInfoDialogL(); private: CPodcastModel& iPodcastModel; TUint iFeedUpdating; diff -r b4560769586d -r 75a70f4a4f6d application/src/PodcastFeedView.cpp --- a/application/src/PodcastFeedView.cpp Mon Nov 01 14:12:51 2010 +0000 +++ b/application/src/PodcastFeedView.cpp Mon Nov 01 22:59:47 2010 +0000 @@ -33,6 +33,7 @@ #include #include #include "Podcatcher.pan" +#include const TInt KMaxFeedNameLength = 100; const TInt KMaxUnplayedFeedsLength =64; @@ -235,6 +236,7 @@ TInt index = iListContainer->Listbox()->CurrentItemIndex(); sortedItems = &iPodcastModel.FeedEngine().GetSortedFeeds(); + DP1("Desc: %S",&((*sortedItems)[index]->Description().Left(30))); if(index >= 0 && index < sortedItems->Count()) { iPodcastModel.SetActiveFeedInfo((*sortedItems)[index]); @@ -558,6 +560,9 @@ iPodcastModel.FeedEngine().CancelUpdateAllFeeds(); } }break; + case EPodcastShowInfo: + DisplayFeedInfoDialogL(); + break; default: CPodcastListView::HandleCommandL(aCommand); break; @@ -567,6 +572,40 @@ DP("CPodcastFeedView::HandleCommandL END"); } +void CPodcastFeedView::DisplayFeedInfoDialogL() + { + const RFeedInfoArray* sortedItems = NULL; + TInt index = iListContainer->Listbox()->CurrentItemIndex(); + sortedItems = &iPodcastModel.FeedEngine().GetSortedFeeds(); + + if(index >= 0 && index < sortedItems->Count()) + { + CFeedInfo *info = (*sortedItems)[index]; + HBufC* description = info->Description().AllocL(); + HBufC* title = info->Title().AllocL(); + CAknMessageQueryDialog* note = new ( ELeave ) CAknMessageQueryDialog( description, title ); + + note->PrepareLC( R_SHOW_INFO_NOTE ); // Adds to CleanupStack + note->RunLD(); + } + } + +void CPodcastFeedView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane) +{ + if(aResourceId == R_PODCAST_FEEDVIEW_MENU) + { + const RFeedInfoArray* sortedItems = NULL; + TInt index = iListContainer->Listbox()->CurrentItemIndex(); + sortedItems = &iPodcastModel.FeedEngine().GetSortedFeeds(); + + if(index >= 0 && index < sortedItems->Count()) + { + CFeedInfo *info = (*sortedItems)[index]; + aMenuPane->SetItemDimmed(EPodcastShowInfo, !info->Description().Length()); + } + } +} + void CPodcastFeedView::UpdateToolbar(TBool aVisible) { DP("CPodcastFeedView::UpdateToolbar BEGIN"); diff -r b4560769586d -r 75a70f4a4f6d engine/src/FeedEngine.cpp --- a/engine/src/FeedEngine.cpp Mon Nov 01 14:12:51 2010 +0000 +++ b/engine/src/FeedEngine.cpp Mon Nov 01 22:59:47 2010 +0000 @@ -982,7 +982,7 @@ const void *linkz = sqlite3_column_text16(st, 5); TPtrC16 link((const TUint16*)linkz); - feedInfo->SetDescriptionL(link); + feedInfo->SetLinkL(link); sqlite3_int64 built = sqlite3_column_int64(st, 6); TTime buildtime(built); @@ -1056,11 +1056,11 @@ const void *imagefilez = sqlite3_column_text16(st, 4); TPtrC16 imagefile((const TUint16*)imagefilez); - feedInfo->SetDescriptionL(imagefile); + feedInfo->SetImageFileNameL(imagefile, &iPodcastModel); const void *linkz = sqlite3_column_text16(st, 5); TPtrC16 link((const TUint16*)linkz); - feedInfo->SetDescriptionL(link); + feedInfo->SetLinkL(link); sqlite3_int64 built = sqlite3_column_int64(st, 6); TTime buildtime(built);