Added new shows list RCL_3
authorSebastian Brannstrom <sebastianb@symbian.org>
Sun, 14 Nov 2010 13:05:37 +0000
branchRCL_3
changeset 367 4b75876aa85a
parent 342 9441fb8fd60d
child 368 b131f7696342
Added new shows list
application/data/Podcast.rss
application/data/PodcastClient_english.rls
application/data/PodcastClient_spanish.rls
application/data/PodcastShowsView.ra
application/data/PodcastStrings.ra
application/data/images/download_all.svg
application/data/images/tab_new.svg
application/group/bld.inf
application/inc/Podcast.hrh
application/inc/PodcastAppui.h
application/inc/PodcastQueueView.h
application/inc/PodcastShowsView.h
application/inc/buildno.h
application/sis/buildno.txt
application/sis/podcatcher_udeb.pkg
application/sis/podcatcher_udeb.sis
application/sis/podcatcher_udeb_signed.sis
application/sis/podcatcher_urel.pkg
application/src/PodcastAppui.cpp
application/src/PodcastListView.cpp
application/src/PodcastQueueView.cpp
application/src/PodcastSearchView.cpp
application/src/PodcastSettingsView.cpp
application/src/PodcastShowsView.cpp
engine/BWINS/podcastengineu.def
engine/eabi/podcastengineu.def
engine/inc/PodcastModel.h
engine/src/FeedEngine.cpp
engine/src/PodcastModel.cpp
group/defines.h
--- a/application/data/Podcast.rss	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/data/Podcast.rss	Sun Nov 14 13:05:37 2010 +0000
@@ -95,16 +95,22 @@
     type = ENaviDecoratorControlTabGroup;
     control = TAB_GROUP
         {
-        tab_width = EAknTabWidthWithTwoTabs;
+        tab_width = EAknTabWidthWithThreeTabs;
         active = 0;
         tabs = {
-            TAB
-                {
-                id = EPodcastTabFeeds;
-                
+			TAB
+				{
+				id = EPodcastTabFeeds;
 				bmpfile = APPICON;
 				bmpid = EMbmPodcastTab_feeds;
 				bmpmask = EMbmPodcastTab_feeds_mask;
+				},
+            TAB
+                {
+                id = EPodcastTabNew;
+				bmpfile = APPICON;
+				bmpid = EMbmPodcastTab_new;
+				bmpmask = EMbmPodcastTab_new_mask;
                 },
             TAB
                 {
--- a/application/data/PodcastClient_english.rls	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/data/PodcastClient_english.rls	Sun Nov 14 13:05:37 2010 +0000
@@ -59,6 +59,7 @@
 rls_string STRING_r_podcast_setting_useiap "Select access point"
 rls_string STRING_r_podcast_setting_iaplist "Access points"
 rls_string STRING_r_podcast_select_folder "Select folder"
+//enable and disable automatic connections
 rls_string STRING_r_on "On"
 rls_string STRING_r_off "Off"
 rls_string STRING_r_podcast_setting_reset_db "Reset database"
@@ -107,8 +108,8 @@
 rls_string STRING_r_view_delete_feed_cmd "Remove feed"
 rls_string STRING_r_view_delete_feed_cmd_short "Remove"
 rls_string STRING_r_update_feed_cmd "Update feed"
-rls_string STRING_r_update_feed_short_cmd "Update"
-rls_string STRING_r_update_all_feeds_cmd "Update all"
+rls_string STRING_r_update_feed_short_cmd "Update feed"
+rls_string STRING_r_update_all_feeds_cmd "Update all feeds"
 rls_string STRING_r_update_all_feeds_short_cmd "Update"
 rls_string STRING_r_podcast_feeds_is_updating "Updating..."
 
@@ -127,10 +128,10 @@
 
 // Show view
 
-rls_string STRING_r_view_mark_as_played_cmd_short "Mark old"
-rls_string STRING_r_view_mark_as_unplayed_cmd_short "Mark new"
-rls_string STRING_r_view_download_show_cmd "Get"
-rls_string STRING_r_view_delete_show_cmd "Delete"
+rls_string STRING_r_view_mark_as_played_cmd_short "Mark show old"
+rls_string STRING_r_view_mark_as_unplayed_cmd_short "Mark show new"
+rls_string STRING_r_view_download_show_cmd "Download show"
+rls_string STRING_r_view_delete_show_cmd "Delete show"
 rls_string STRING_r_view_show_info_cmd "Info"
 rls_string STRING_r_error_playback_failed "Could not play show"
 
@@ -139,7 +140,7 @@
 rls_string STRING_r_view_resume_short_dls_cmd "Resume"
 rls_string STRING_r_view_stop_downloads_cmd "Suspend downloading"
 rls_string STRING_r_view_resume_downloads_cmd "Resume downloading"
-rls_string STRING_r_view_remove_all_downloads_cmd_short "Remove all"
+rls_string STRING_r_view_remove_all_downloads_cmd_short "Remove all downloads"
 rls_string STRING_r_view_remove_all_downloads_cmd "Remove all"
 rls_string STRING_r_clear_query "Remove all downloads?"
 rls_string STRING_r_view_remove_download_short_cmd "Remove"
@@ -152,7 +153,14 @@
 rls_string STRING_r_error_general "Error: General error %d"
 rls_string STRING_r_error_http "Error: HTTP error %d"
 rls_string STRING_r_error_disk_full "Error: Disk full"
+
 rls_string STRING_r_add_url_or_search "Add feed"
 rls_string STRING_r_add_url "Enter address"
 rls_string STRING_r_add_search "Search for feed"
 rls_string STRING_r_search_feed_prompt "Enter search terms:"
+rls_string STRING_r_new_shows "New shows"
+rls_string STRING_r_download_queue "Download queue"
+rls_string STRING_r_download_all_shows "Download all shows"
+rls_string STRING_r_mark_all_old_query "Mark all shows old?"
+rls_string STRING_r_download_all_query "Add all shows to download queue?"
+
--- a/application/data/PodcastClient_spanish.rls	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/data/PodcastClient_spanish.rls	Sun Nov 14 13:05:37 2010 +0000
@@ -146,6 +146,8 @@
 rls_string STRING_r_view_remove_all_downloads_cmd "Borrar la cola de descarga"
 rls_string STRING_r_clear_query "¿Quiere borrar la cola?"
 rls_string STRING_r_view_remove_download_short_cmd "Borrar"
+rls_string STRING_r_view_move_up_short_cmd "Move up"
+rls_string STRING_r_view_move_down_short_cmd "Move down"
 rls_string STRING_r_view_remove_download_cmd "Borrar descarga"
 
 rls_string STRING_r_error_notfound "Error: Servidor no fue hallado"
@@ -153,3 +155,9 @@
 rls_string STRING_r_error_general "Error: Error general %d"
 rls_string STRING_r_error_http "Error: error HTTP %d"
 rls_string STRING_r_error_disk_full "Error: No espacio en el disco"
+
+rls_string STRING_r_add_url_or_search "Add feed"
+rls_string STRING_r_add_url "Enter address"
+rls_string STRING_r_add_search "Search for feed"
+rls_string STRING_r_search_feed_prompt "Enter search terms:"
+
--- a/application/data/PodcastShowsView.ra	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/data/PodcastShowsView.ra	Sun Nov 14 13:05:37 2010 +0000
@@ -91,6 +91,25 @@
         TBAR_CTRL
             {
             type = EAknCtButton;
+            id = EPodcastUpdateAllFeeds;
+            control = AVKON_BUTTON
+                {
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = APPICON;
+                        bmpid = EMbmPodcastReload_all;
+                        bmpmask = EMbmPodcastReload_all_mask;
+                        //txt = STRING_r_update_feed_short_cmd;
+                        helptxt = STRING_r_update_all_feeds_cmd;
+                        }  
+                    };
+                };
+            },
+        TBAR_CTRL
+            {
+            type = EAknCtButton;
             id = EPodcastUpdateFeed;
             control = AVKON_BUTTON
                 {
@@ -145,6 +164,25 @@
                             };
                         };
                     },
+				TBAR_CTRL
+					 {
+					 type = EAknCtButton;
+					 id = EPodcastDownloadAll;
+					 control = AVKON_BUTTON
+						 {
+						 states =
+							 {
+							 AVKON_BUTTON_STATE
+								 {
+								 bmpfile = APPICON;
+								 bmpid = EMbmPodcastDownload_all;
+								 bmpmask = EMbmPodcastDownload_all_mask;
+								 //txt = STRING_r_cancel_update_all_feeds_short_cmd;
+								 helptxt = STRING_r_download_all_shows;
+								}  
+							 };
+						 };
+					 },
 // we keep the download toolbar button in S^3, but always disable it
 // because there are drawing issues with only one item in the toolbar
             TBAR_CTRL
--- a/application/data/PodcastStrings.ra	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/data/PodcastStrings.ra	Sun Nov 14 13:05:37 2010 +0000
@@ -78,3 +78,7 @@
 RESOURCE TBUF r_about_text {buf = STRING_r_about_text_s60;}
 RESOURCE TBUF r_error_playback_failed {buf = STRING_r_error_playback_failed; }
 RESOURCE TBUF r_podcast_searchfeed_prompt {buf = STRING_r_search_feed_prompt;}
+RESOURCE TBUF r_new_shows {buf = STRING_r_new_shows;}
+RESOURCE TBUF r_download_queue {buf = STRING_r_download_queue;}
+RESOURCE TBUF r_download_all_query {buf = STRING_r_download_all_query;}
+RESOURCE TBUF r_mark_all_old_query {buf = STRING_r_mark_all_old_query;}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/application/data/images/download_all.svg	Sun Nov 14 13:05:37 2010 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="32"
+   height="32"
+   viewBox="0 0 32 32"
+   id="svg3426"
+   xml:space="preserve"><metadata
+   id="metadata3064"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+   id="defs3062" />
+
+<g
+   transform="matrix(1.6922196,0,0,1.6922196,-1.3441909,-12.542473)"
+   id="g3095"><circle
+     cx="15.433"
+     cy="12.156"
+     r="1.226"
+     id="circle3097"
+     style="fill:#f1f2f2" /><circle
+     cx="15.433"
+     cy="16.646"
+     r="1.226"
+     id="circle3099"
+     style="fill:#f1f2f2" /><circle
+     cx="15.433"
+     cy="21.136999"
+     r="1.227"
+     id="circle3101"
+     style="fill:#f1f2f2" /></g><path
+   d="m 12.33319,25.01588 6.198938,-9.053726 c 0,0 0.359154,-0.512148 -0.08029,-0.64995 -0.330943,-0.107421 -2.445721,-0.112846 -3.251919,-0.111761 -0.26584,0.0022 -0.509978,-0.203991 -0.491532,-0.550125 0.202906,-3.892104 0.232203,-4.510587 0.307072,-8.2996103 -0.0065,-0.3396232 -0.135633,-0.541444 -0.36458,-0.5295084 -2.468507,0.027126 -3.592628,0.027126 -6.0611352,0 -0.2278622,-0.00977 -0.3569841,0.1920553 -0.3667497,0.5316786 0.071614,3.7890231 0.1074208,4.4064211 0.3027313,8.2996101 0.022786,0.348304 -0.2180967,0.55121 -0.4871912,0.54904 -0.8040281,-0.0043 -3.0587781,0.0043 -3.3886358,0.112846 -0.4416187,0.137802 -0.080294,0.648865 -0.080294,0.648865 l 6.1945966,9.052641 c 0.416662,0.602207 1.057931,0.657545 1.568994,0 z"
+   id="path3027"
+   style="fill:#f1f2f2" /></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/application/data/images/tab_new.svg	Sun Nov 14 13:05:37 2010 +0000
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1"
+	 id="svg3426" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:svg="http://www.w3.org/2000/svg" inkscape:version="0.47 r22583" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:cc="http://creativecommons.org/ns#" sodipodi:docname="Audio_downloading.svg"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px"
+	 viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
+<path fill="#F1F2F2" d="M19.475,11.701l-2.645-5.007c0,0-0.004,0-0.004-0.001l-0.58-1.1c-0.406-0.768-0.985-0.756-1.35,0.035
+	l-1.295,2.81l0,0l-1.597,3.469l-6.433,1.115l0,0L5.13,13.098c-0.854,0.149-0.997,0.65-0.359,1.24l0.601,0.554l0,0l4.527,4.176
+	l-0.414,2.888l-0.566,3.903c-0.124,0.857,0.397,1.216,1.154,0.791l0.64-0.36h0.002l3.183-1.784l0.146-0.082l0,0l2.018-1.132
+	l6.317,3.537c0.781,0.384,1.415-0.021,1.244-0.873l-1.646-7.218l5.325-5.193c0.604-0.624,0.336-1.27-0.523-1.373L19.475,11.701z"/>
+</svg>
--- a/application/group/bld.inf	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/group/bld.inf	Sun Nov 14 13:05:37 2010 +0000
@@ -63,6 +63,7 @@
 	-c16,1 remove.svg\
 	-c16,1 remove_all.svg\
 	-c16,1 download.svg\
+	-c16,1 download_all.svg\
 	-c16,1 markold.svg\
 	-c16,1 marknew.svg\
 	-c16,1 markold_all.svg\
@@ -70,5 +71,6 @@
 	-c16,1 tab_queue.svg\
 	-c16,1 tab_queue1.svg\
 	-c16,1 tab_queue2.svg\
-	-c16,1 tab_queue3.svg
+	-c16,1 tab_queue3.svg\
+	-c16,1 tab_new.svg
 END
--- a/application/inc/Podcast.hrh	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/inc/Podcast.hrh	Sun Nov 14 13:05:37 2010 +0000
@@ -53,6 +53,7 @@
 	EPodcastMarkAsPlayed,
 	EPodcastMarkAsUnplayed,
 	EPodcastShowInfo,
+	EPodcastDownloadAll,
 	// Common commands
 	EPodcastBack,
 	EPodcastSettings,
@@ -64,8 +65,9 @@
 	EPodcastAddSearchResult,
 	EPodcastResetDb,
 	EPodcastTabFeeds,
-	EPodcastTabQueue
-};
+	EPodcastTabQueue,
+	EPodcastTabNew
+	};
 
 enum TPodcastControl
 	{
--- a/application/inc/PodcastAppui.h	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/inc/PodcastAppui.h	Sun Nov 14 13:05:37 2010 +0000
@@ -41,8 +41,11 @@
 const TUid KUidPodcastSearchViewID = {0x00000004};
 const TUid KUidPodcastSettingsViewID = {0x00000005};
 
+const TUid KUidShowNewShows = {0x00000001};
+
 const TInt KTabIdFeeds = 0;
-const TInt KTabIdQueue = 1;
+const TInt KTabIdNew = 1;
+const TInt KTabIdQueue = 2;
 
 const TInt KTimeoutPrio = CActive::EPriorityStandard;
 
@@ -121,6 +124,7 @@
        void NaviSetTextL(TInt aResourceId);
        void NaviShowTabGroupL();
        void GetErrorTextL(TDes &aErrorMessage, TInt aErrorCode);
+       void SetTabsDimmed(TBool aDimmed);
 
     private:
         // From MEikMenuObserver
--- a/application/inc/PodcastQueueView.h	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/inc/PodcastQueueView.h	Sun Nov 14 13:05:37 2010 +0000
@@ -79,6 +79,7 @@
 	TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
 	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
 	
+	void UpdateViewTitleL();
 private:
 	TBool iDontUpdateList;
 	};
--- a/application/inc/PodcastShowsView.h	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/inc/PodcastShowsView.h	Sun Nov 14 13:05:37 2010 +0000
@@ -108,6 +108,7 @@
 	void HandleDeleteShow();
 	void UpdateViewTitleL();
 	void GetShowErrorText(TDes &aErrorMessage, TInt aErrorCode);
+	void HandleDownloadAllL();
 
 protected:
 	
@@ -115,6 +116,7 @@
 	TBool iProgressAdded;	
 	TInt iLastImageHandlerError;
 	TBool iSetTitlebarImage;
+	TBool iShowNewShows;
 	};
 
 #endif // PODCASTSHOWSVIEWH
--- a/application/inc/buildno.h	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/inc/buildno.h	Sun Nov 14 13:05:37 2010 +0000
@@ -1,2 +1,2 @@
 // Build number generated by increment_buildno.py, do not edit manually
-#define BUILD_NO 9
\ No newline at end of file
+#define BUILD_NO 12
\ No newline at end of file
--- a/application/sis/buildno.txt	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/sis/buildno.txt	Sun Nov 14 13:05:37 2010 +0000
@@ -1,1 +1,1 @@
-9
\ No newline at end of file
+12
\ No newline at end of file
--- a/application/sis/podcatcher_udeb.pkg	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/sis/podcatcher_udeb.pkg	Sun Nov 14 13:05:37 2010 +0000
@@ -1,7 +1,7 @@
 &EN,SP
 :"Symbian Foundation"
 %{"Podcatcher","Podcatcher"}
-#{"Podcatcher","Podcatcher"},(0xA0009D00), 1, 00, 9, TYPE=SA
+#{"Podcatcher","Podcatcher"},(0xA0009D00), 1, 00, 12, TYPE=SA
 
 ;Supports Symbian^3
 [0x20022E6D], 0, 0, 0, {"Series60ProductID","Series60ProductID"}
Binary file application/sis/podcatcher_udeb.sis has changed
Binary file application/sis/podcatcher_udeb_signed.sis has changed
--- a/application/sis/podcatcher_urel.pkg	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/sis/podcatcher_urel.pkg	Sun Nov 14 13:05:37 2010 +0000
@@ -1,7 +1,7 @@
 &EN,SP
 :"Symbian Foundation"
 %{"Podcatcher","Podcatcher"}
-#{"Podcatcher","Podcatcher"},(0xA0009D00), 0, 90, 9, TYPE=SA
+#{"Podcatcher","Podcatcher"},(0xA0009D00), 0, 90, 12, TYPE=SA
 
 ;Supports Symbian^3
 [0x20022E6D], 0, 0, 0, {"Series60ProductID","Series60ProductID"}
--- a/application/src/PodcastAppui.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/src/PodcastAppui.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -210,10 +210,16 @@
 	{
 	iTabGroup = STATIC_CAST(CAknTabGroup*, iNaviPane->ResourceDecorator()->DecoratedControl());
 	iTabGroup->SetObserver(this); 
+
 	iNaviStyle = ENaviTabGroup;
 	UpdateQueueTabL(iPodcastModel->ShowEngine().GetNumDownloadingShows());
 	}
 
+void CPodcastAppUi::SetTabsDimmed(TBool aDimmed)
+	{
+	iTabGroup->SetDimmed(aDimmed);
+	}
+
 void CPodcastAppUi::TabChangedL (TInt aIndex)
 	{
 	DP("CPodcastListView::TabChangedL ");
@@ -227,12 +233,18 @@
 			if (iFeedView->ViewingShows())
 				{
 				newview = KUidPodcastShowsViewID;
+				messageUid = TUid::Uid(2);
 				}
 			else
 				{
 				newview = KUidPodcastFeedViewID;
 				}
 			} 
+		else if (aIndex == KTabIdNew)
+			{
+			newview = KUidPodcastShowsViewID;
+			messageUid = KUidShowNewShows;
+			}
 		else if (aIndex == KTabIdQueue)
 			{
 			newview = KUidPodcastQueueViewID;
--- a/application/src/PodcastListView.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/src/PodcastListView.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -214,10 +214,12 @@
 
 CPodcastListContainer::~CPodcastListContainer()
 {
+	DP("CPodcastListContainer::~CPodcastListContainer BEGIN");
 	iListboxLandscape->ItemDrawer()->ColumnData()->SetIconArray(NULL);
 	delete iListboxPortrait;
 	delete iListboxLandscape;
 	delete iBgContext;
+	DP("CPodcastListContainer::~CPodcastListContainer END");
 }
 
 void CPodcastListContainer::SetEmptyText(const TDesC &aText)
@@ -477,3 +479,4 @@
 		}
 	return EKeyWasNotConsumed;
 	}
+
--- a/application/src/PodcastQueueView.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/src/PodcastQueueView.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -31,6 +31,7 @@
 #include <barsread.h>
 #include <aknnotedialog.h>
 #include <aknmessagequerydialog.h>
+#include <akntitle.h>
 
 #define KMaxMessageLength 200
 
@@ -115,7 +116,7 @@
 	
 	CPodcastListView::DoActivateL(aPrevViewId, aCustomMessageId, aCustomMessage);
 	iPreviousView = aPrevViewId;
-	
+	UpdateViewTitleL();
 	UpdateFeedUpdateStateL();
 	UpdateToolbar();
 	DP("CPodcastQueueView::DoActivateL END");
@@ -144,6 +145,7 @@
 
 void CPodcastQueueView::UpdateListboxItemsL()
 	{
+	DP("CPodcastQueueView::UpdateListboxItemsL BEGIN");
 	if (iListContainer->IsVisible() && !iDontUpdateList)
 		{
 		TListItemProperties itemProps;
@@ -213,6 +215,7 @@
 				}				
 			}
 		}
+	DP("CPodcastQueueView::UpdateListboxItemsL END");
 	}
 
 /** 
@@ -370,3 +373,13 @@
 		toolbar->SetItemDimmed(EPodcastRemoveDownload, itemCnt == 0, ETrue);		
 		}
 	}
+
+void CPodcastQueueView::UpdateViewTitleL()
+	{
+	 CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
+		      ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+		 
+	HBufC *title = iEikonEnv->AllocReadResourceLC(R_DOWNLOAD_QUEUE);
+	titlePane->SetTextL(*title);
+	CleanupStack::PopAndDestroy(title);
+	}
--- a/application/src/PodcastSearchView.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/src/PodcastSearchView.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -118,6 +118,7 @@
 	titlePane->SetTextL(*text , ETrue );
 	CleanupStack::PopAndDestroy(text);
 	UpdateListboxItemsL();
+	((CPodcastAppUi*)AppUi())->SetTabsDimmed(ETrue);
 }
 
 void CPodcastSearchView::DoDeactivate()
@@ -128,6 +129,7 @@
 			  ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
 		
 	titlePane->SetTextToDefaultL();
+	((CPodcastAppUi*)AppUi())->SetTabsDimmed(EFalse);
 }
 
 
--- a/application/src/PodcastSettingsView.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/src/PodcastSettingsView.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -24,6 +24,7 @@
 #include <aknnavide.h> 
 #include <podcast.rsg>
 #include "SettingsEngine.h"
+#include <akntitle.h>
 
 #include <akncommondialogsdynmem.h> 
 #include <pathinfo.h>
@@ -487,10 +488,13 @@
 	DP("Creating navipane");
 	iNaviPane =( CAknNavigationControlContainer * ) StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) );
 		
-	HBufC *titleBuffer = iEikonEnv->AllocReadResourceL(R_SETTINGS_TITLE);
-	iNaviDecorator  = iNaviPane->CreateNavigationLabelL(*titleBuffer);
-	delete titleBuffer;
-
+	CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
+			  ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+		 
+	HBufC *titleBuffer = iEikonEnv->AllocReadResourceLC(R_SETTINGS_TITLE);
+	titlePane->SetTextL(*titleBuffer);
+	CleanupStack::PopAndDestroy(titleBuffer);
+	
 	DP("Updating listbox");
 	AppUi()->AddToStackL(*this, iListbox);
 	iListbox->UpdateSettingVisibility();
@@ -503,6 +507,7 @@
 		iNaviPane->PushL(*iNaviDecorator);
 		}
 
+	((CPodcastAppUi*)AppUi())->SetTabsDimmed(ETrue);
 	DP("CPodcastSettingsView::DoActivateL END");
 }
 
@@ -522,6 +527,8 @@
 		delete iNaviDecorator;
 		iNaviDecorator = NULL;
 		}
+	
+	((CPodcastAppUi*)AppUi())->SetTabsDimmed(EFalse);
 	DP("CPodcastSettingsView::DoDeactivate END");
 	}
 
--- a/application/src/PodcastShowsView.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/application/src/PodcastShowsView.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -207,6 +207,21 @@
 	
 	iPreviousView = TVwsViewId(KUidPodcast, KUidPodcastFeedViewID);
 	
+	iShowNewShows = (aCustomMessageId.iUid == 1);
+	
+	if (iShowNewShows)
+		{
+		CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
+		cba->SetCommandSetL(R_PODCAST_CBA);
+		cba->DrawDeferred();
+		}
+	else
+		{
+		CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
+		cba->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_BACK);
+		cba->DrawDeferred();		
+		}
+	
 	UpdateViewTitleL();
 	UpdateFeedUpdateStateL();
 	UpdateToolbar();
@@ -495,13 +510,21 @@
 
 void CPodcastShowsView::UpdateListboxItemsL()
 	{
+	DP("CPodcastShowsView::UpdateListboxItemsL BEGIN");
 	if (iListContainer->IsVisible())
 		{
 		TListItemProperties itemProps;
 		TInt len = 0;
 
-		iPodcastModel.GetShowsByFeedL(iPodcastModel.ActiveFeedInfo()->Uid());
-
+		if (iShowNewShows)
+			{
+			iPodcastModel.GetNewShowsL();
+			}
+		else
+			{
+			iPodcastModel.GetShowsByFeedL(iPodcastModel.ActiveFeedInfo()->Uid());
+			}
+		
 		RShowInfoArray &fItems = iPodcastModel.ActiveShowList();
 		len = fItems.Count();
 
@@ -565,6 +588,7 @@
 				}				
 			}
 		}
+	DP("CPodcastShowsView::UpdateListboxItemsL END");
 	}
 
 /** 
@@ -578,17 +602,32 @@
 		{
 		case EPodcastMarkAsPlayed:
 			HandleSetShowPlayedL(ETrue);
+			if (iShowNewShows) UpdateListboxItemsL();
 			break;
 		case EPodcastMarkAsUnplayed:
 			HandleSetShowPlayedL(EFalse);
+			if (iShowNewShows) UpdateListboxItemsL();
 			break;
 		case EPodcastMarkAllPlayed:
+			{
+			if (iShowNewShows) {
+				TBuf<KMaxMessageLength> msg;
+				iEikonEnv->ReadResourceL(msg, R_MARK_ALL_OLD_QUERY);
+				if (!ShowQueryMessageL(msg))
+					{
+					break;
+					}
+			}
 			iPodcastModel.MarkSelectionPlayedL();
 			UpdateListboxItemsL();
+			}
 			break;
 		case EPodcastDeleteShow:
 			HandleDeleteShowL();
 			break;
+		case EPodcastDownloadAll:
+			HandleDownloadAllL();
+			break;
 		case EPodcastDownloadShow:
 			{
 			TInt index = iListContainer->Listbox()->CurrentItemIndex();
@@ -617,6 +656,11 @@
 				}
 			}
 			break;
+		case EPodcastUpdateAllFeeds:
+			{
+			iPodcastModel.FeedEngine().UpdateAllFeedsL();
+			UpdateToolbar();
+			}break;
 		case EPodcastCancelUpdateAllFeeds:
 			iPodcastModel.FeedEngine().CancelUpdateAllFeeds();
 			break;
@@ -683,26 +727,44 @@
 	
 		TBool updatingState = iPodcastModel.FeedEngine().ClientState() != EIdle && iPodcastModel.ActiveFeedInfo() && 
 				iPodcastModel.FeedEngine().ActiveClientUid() == iPodcastModel.ActiveFeedInfo()->Uid();
-	
-		toolbar->HideItem(EPodcastUpdateFeed, updatingState, ETrue ); 
+
+		if (iShowNewShows)
+			{
+			updatingState = iPodcastModel.FeedEngine().ClientState();
+			toolbar->HideItem(EPodcastUpdateFeed, ETrue, ETrue ); 
+			toolbar->HideItem(EPodcastUpdateAllFeeds, updatingState, ETrue ); 
+			}
+		else
+			{
+			toolbar->HideItem(EPodcastUpdateFeed, updatingState, ETrue ); 
+			toolbar->HideItem(EPodcastUpdateAllFeeds, ETrue, ETrue ); 
+			}
+
 		toolbar->HideItem(EPodcastCancelUpdateAllFeeds, !updatingState, ETrue );
+		
 		// there seems to be drawing bugs in the toolbar if there is only
 		// one or two buttons defined in the resource, so we have download
 		// there but always hidden
 		toolbar->HideItem(EPodcastDownloadShow, ETrue, ETrue );
+		toolbar->HideItem(EPodcastDownloadAll, !iShowNewShows, ETrue);
 		
 		TBool showMarkAllPlayed = EFalse;
+		TBool showDownloadAll = EFalse;
 		for (int i=0;i<iPodcastModel.ActiveShowList().Count();i++)
 			{
 			CShowInfo* info = iPodcastModel.ActiveShowList()[i];
 			if (info->PlayState() == ENeverPlayed)
 				{
 				showMarkAllPlayed = ETrue;
-				break;
+				}
+			if (info->DownloadState() == ENotDownloaded)
+				{
+				showDownloadAll = ETrue;
 				}
-			
 			}
+
 		toolbar->SetItemDimmed(EPodcastMarkAllPlayed, !showMarkAllPlayed, ETrue);
+		toolbar->SetItemDimmed(EPodcastDownloadAll, !showDownloadAll, ETrue);
 	}
 }
 
@@ -748,6 +810,27 @@
 		}
 	}
 
+void CPodcastShowsView::HandleDownloadAllL()
+	{
+	
+	TBuf<KMaxMessageLength> msg;
+	iEikonEnv->ReadResourceL(msg, R_DOWNLOAD_ALL_QUERY);
+	if (!ShowQueryMessageL(msg))
+		{
+		return;
+		}
+		
+	for (int i=0;i<iPodcastModel.ActiveShowList().Count();i++)
+		{
+		CShowInfo* info = iPodcastModel.ActiveShowList()[i];
+
+		if (info->DownloadState() == ENotDownloaded)
+			{
+			TRAP_IGNORE(iPodcastModel.ShowEngine().AddDownloadL(*info));
+			}
+		}
+	}
+
 void CPodcastShowsView::DownloadQueueUpdatedL(TInt aDownloadingShows, TInt aQueuedShows)
 	{
 	((CPodcastAppUi*)AppUi())->UpdateQueueTabL(aDownloadingShows+aQueuedShows);
@@ -766,7 +849,7 @@
 	 CAknTitlePane* titlePane = static_cast<CAknTitlePane*>
 		      ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
 		 
-		TBool updatingState = iPodcastModel.FeedEngine().ClientState() != EIdle && 
+		TBool updatingState = iPodcastModel.FeedEngine().ClientState() != EIdle && iPodcastModel.ActiveFeedInfo() &&
 				iPodcastModel.FeedEngine().ActiveClientUid() == iPodcastModel.ActiveFeedInfo()->Uid();
 
 		if (updatingState) {
@@ -775,7 +858,13 @@
 			SetEmptyTextL(R_PODCAST_EMPTY_LIST);
 		}
 		
-		if(iPodcastModel.ActiveFeedInfo())
+		if(iShowNewShows)
+			{
+			HBufC *title = iEikonEnv->AllocReadResourceLC(R_NEW_SHOWS);
+			titlePane->SetTextL(*title);
+			CleanupStack::PopAndDestroy(title);
+			}
+		else if(iPodcastModel.ActiveFeedInfo())
 			{
 			if (iPodcastModel.ActiveFeedInfo()->Title() != KNullDesC)
 				{
--- a/engine/BWINS/podcastengineu.def	Sat Nov 13 11:50:23 2010 +0000
+++ b/engine/BWINS/podcastengineu.def	Sun Nov 14 13:05:37 2010 +0000
@@ -166,4 +166,7 @@
 	?MoveDownloadUpL@CShowEngine@@QAEXI@Z @ 165 NONAME ; void CShowEngine::MoveDownloadUpL(unsigned int)
 	?MoveDownloadDownL@CShowEngine@@QAEXI@Z @ 166 NONAME ; void CShowEngine::MoveDownloadDownL(unsigned int)
 	?RemoveObserver@CConnectionEngine@@QAEXPAVMConnectionObserver@@@Z @ 167 NONAME ; void CConnectionEngine::RemoveObserver(class MConnectionObserver *)
+	?FeedFileSize@CFeedInfo@@QBEHXZ @ 168 NONAME ; int CFeedInfo::FeedFileSize(void) const
+	?SetFeedFileSize@CFeedInfo@@QAEXH@Z @ 169 NONAME ; void CFeedInfo::SetFeedFileSize(int)
+	?GetNewShowsL@CPodcastModel@@QAEXXZ @ 170 NONAME ; void CPodcastModel::GetNewShowsL(void)
 
--- a/engine/eabi/podcastengineu.def	Sat Nov 13 11:50:23 2010 +0000
+++ b/engine/eabi/podcastengineu.def	Sun Nov 14 13:05:37 2010 +0000
@@ -205,4 +205,7 @@
 	_ZN13CPodcastModelD1Ev @ 204 NONAME
 	_ZN13CPodcastModelD2Ev @ 205 NONAME
 	_ZN17CConnectionEngine14RemoveObserverEP19MConnectionObserver @ 206 NONAME
+	_ZN13CPodcastModel12GetNewShowsLEv @ 207 NONAME
+	_ZN9CFeedInfo15SetFeedFileSizeEi @ 208 NONAME
+	_ZNK9CFeedInfo12FeedFileSizeEv @ 209 NONAME
 
--- a/engine/inc/PodcastModel.h	Sat Nov 13 11:50:23 2010 +0000
+++ b/engine/inc/PodcastModel.h	Sun Nov 14 13:05:37 2010 +0000
@@ -91,6 +91,7 @@
 	
 	IMPORT_C void GetShowsDownloadingL();
 	IMPORT_C void GetShowsByFeedL(TUint aFeedUid);
+	IMPORT_C void GetNewShowsL();
 	IMPORT_C void MarkSelectionPlayedL();
 	
 	TInt FindActiveShowByUid(TUint aUid);
@@ -105,8 +106,7 @@
 	void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel);	
 
 private:  // Functions from base classes
-
-   /**
+    /**
      * From MAknServerAppExitObserver.
      * Handles the exit of a connected server application.
      */ 
--- a/engine/src/FeedEngine.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/engine/src/FeedEngine.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -677,7 +677,6 @@
 				// now the image has been downloaded, so we set it again in the FeedInfo to start
 				// converting it
 				HBufC *fileNameCopy = iActiveFeed->ImageFileName().AllocLC();
-				DP1("fnc=%S", fileNameCopy);
 				TRAP_IGNORE(iActiveFeed->SetImageFileNameL(*fileNameCopy, &iPodcastModel));
 				CleanupStack::PopAndDestroy(fileNameCopy);
 				}
--- a/engine/src/PodcastModel.cpp	Sat Nov 13 11:50:23 2010 +0000
+++ b/engine/src/PodcastModel.cpp	Sun Nov 14 13:05:37 2010 +0000
@@ -351,8 +351,7 @@
 	TFileName dbFileName;
 	dbFileName.Copy(iSettingsEngine->PrivatePath());
 	dbFileName.Append(KDBFileName);
-	
-	DP1("dbFileName=%S", &dbFileName);
+		
 	if (!BaflUtils::FileExists(iFsSession, dbFileName))
 		{
 		User::Leave(KErrNotFound);
@@ -479,6 +478,12 @@
 	iShowEngine->GetShowsByFeedL(iActiveShowList, aFeedUid);
 	}
 
+EXPORT_C void CPodcastModel::GetNewShowsL()
+	{
+	iActiveShowList.ResetAndDestroy();
+	iShowEngine->GetNewShowsL(iActiveShowList);
+	}
+
 EXPORT_C void CPodcastModel::MarkSelectionPlayedL()
 	{
 	for (int i=0;i<iActiveShowList.Count();i++) {
--- a/group/defines.h	Sat Nov 13 11:50:23 2010 +0000
+++ b/group/defines.h	Sun Nov 14 13:05:37 2010 +0000
@@ -2,6 +2,6 @@
 #define DEFINES_H_
 
 // MPX integration can not be enabled for self signed versions 
-#define ENABLE_MPX_INTEGRATION
+//#define ENABLE_MPX_INTEGRATION
 
 #endif /* DEFINES_H_ */