# HG changeset patch # User Lars Persson # Date 1270039833 -7200 # Node ID bbf5c520484442b63877e529f83b04f32e846d16 # Parent dc142c8740ebdff1fdddbd29531a865854420e0f We always build the static version of sqlite for now. Further improvements for signaling when icons has been generated so these can be used in the feedview diff -r dc142c8740eb -r bbf5c5204844 application/inc/PodcastFeedView.h --- a/application/inc/PodcastFeedView.h Wed Mar 31 08:41:07 2010 +0200 +++ b/application/inc/PodcastFeedView.h Wed Mar 31 14:50:33 2010 +0200 @@ -95,7 +95,7 @@ void DialogDismissedL(TInt aButtonId); // from MImageHandlerCallback - void ImageOperationCompleteL(TInt aError, TUint aHandle); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); void HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation); diff -r dc142c8740eb -r bbf5c5204844 application/inc/PodcastShowsView.h --- a/application/inc/PodcastShowsView.h Wed Mar 31 08:41:07 2010 +0200 +++ b/application/inc/PodcastShowsView.h Wed Mar 31 14:50:33 2010 +0200 @@ -109,7 +109,7 @@ * @param aError Error code given by the CImageHandler or 0 (zero) if the * image was loaded successfully. */ - virtual void ImageOperationCompleteL(TInt aError, TUint aHandle); + virtual void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); void HandleSetShowPlayed(TBool aPlayed); void HandleDeleteShow(); void UpdateViewTitleL(); diff -r dc142c8740eb -r bbf5c5204844 application/src/PodcastFeedView.cpp --- a/application/src/PodcastFeedView.cpp Wed Mar 31 08:41:07 2010 +0200 +++ b/application/src/PodcastFeedView.cpp Wed Mar 31 14:50:33 2010 +0200 @@ -378,28 +378,26 @@ } } CArrayPtr* icons = iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->IconArray(); - - /*if (aFeedInfo.FeedIconIndex() != -1) { - iconIndex = aFeedInfo.FeedIconIndex(); - } else*/ { - if(aFeedInfo.FeedIcon() != NULL && - aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && - aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) - { - // Hopefully temporary haxx to prevent double delete. I would prefer if - // this could be solved with a little better design. - CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap; - CleanupStack::PushL(bmpCopy); - bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); - icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); - CleanupStack::Pop(bmpCopy); - } - else { - + + if(aFeedInfo.FeedIcon() != NULL && + aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && + aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) + { + // Hopefully temporary haxx to prevent double delete. I would prefer if + // this could be solved with a little better design. + CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap; + CleanupStack::PushL(bmpCopy); + bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); + icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); + CleanupStack::Pop(bmpCopy); + iconIndex = icons->Count()-1; + } + else + { iconIndex = 0; } - } - + + if (unplayedShows.Length() > 0) { unplayedShows.Insert(0,_L(", ")); } @@ -407,11 +405,11 @@ iListboxFormatbuffer.Format(KFeedFormat(), iconIndex, &(aFeedInfo.Title()), &updatedDate, &unplayedShows); } -void CPodcastFeedView::ImageOperationCompleteL(TInt aError, TUint aHandle) +void CPodcastFeedView::ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& /*aPodcastModel*/) { if (aError == KErrNone) { - UpdateFeedInfoStatusL(aHandle, EFalse); - } + UpdateFeedInfoStatusL(aHandle, EFalse); + } } void CPodcastFeedView::UpdateFeedInfoDataL(CFeedInfo* aFeedInfo, TInt aIndex, TBool aIsUpdating ) diff -r dc142c8740eb -r bbf5c5204844 application/src/PodcastShowsView.cpp --- a/application/src/PodcastShowsView.cpp Wed Mar 31 08:41:07 2010 +0200 +++ b/application/src/PodcastShowsView.cpp Wed Mar 31 14:50:33 2010 +0200 @@ -628,7 +628,7 @@ } } -void CPodcastShowsView::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/) +void CPodcastShowsView::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/, CPodcastModel& /*aPodcastModel*/) { iLastImageHandlerError = aError; if(iSetTitlebarImage) diff -r dc142c8740eb -r bbf5c5204844 engine/BWINS/podcastengineu.def --- a/engine/BWINS/podcastengineu.def Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/BWINS/podcastengineu.def Wed Mar 31 14:50:33 2010 +0200 @@ -76,12 +76,12 @@ ?MarkSelectionPlayed@CPodcastModel@@QAEXXZ @ 75 NONAME ; void CPodcastModel::MarkSelectionPlayed(void) ?MetaDataReader@CShowEngine@@QAEAAVCMetaDataReader@@XZ @ 76 NONAME ; class CMetaDataReader & CShowEngine::MetaDataReader(void) ?NewL@CFeedInfo@@SAPAV1@XZ @ 77 NONAME ; class CFeedInfo * CFeedInfo::NewL(void) - ?NewL@CImageHandler@@SAPAV1@AAVRFs@@@Z @ 78 NONAME ; class CImageHandler * CImageHandler::NewL(class RFs &) + ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 78 NONAME ; class TDesC16 const & CShowInfo::Url(void) const ?NewL@CPodcastModel@@SAPAV1@XZ @ 79 NONAME ; class CPodcastModel * CPodcastModel::NewL(void) ?NewL@CShowEngine@@SAPAV1@AAVCPodcastModel@@@Z @ 80 NONAME ; class CShowEngine * CShowEngine::NewL(class CPodcastModel &) ?NewL@CShowInfo@@SAPAV1@I@Z @ 81 NONAME ; class CShowInfo * CShowInfo::NewL(unsigned int) ?NewLC@CFeedInfo@@SAPAV1@XZ @ 82 NONAME ; class CFeedInfo * CFeedInfo::NewLC(void) - ?NewLC@CImageHandler@@SAPAV1@AAVRFs@@@Z @ 83 NONAME ; class CImageHandler * CImageHandler::NewLC(class RFs &) + ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 83 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &) ?NewLC@CShowInfo@@SAPAV1@I@Z @ 84 NONAME ; class CShowInfo * CShowInfo::NewLC(unsigned int) ?NotifyShowListUpdatedL@CShowEngine@@QAEXXZ @ 85 NONAME ; void CShowEngine::NotifyShowListUpdatedL(void) ?OpmlParsingComplete@CFeedEngine@@QAEXHI@Z @ 86 NONAME ; void CFeedEngine::OpmlParsingComplete(int, unsigned int) @@ -170,6 +170,147 @@ ?UpdateSNAPListL@CPodcastModel@@QAEXXZ @ 169 NONAME ; void CPodcastModel::UpdateSNAPListL(void) ?UpdateShow@CShowEngine@@QAEXAAVCShowInfo@@@Z @ 170 NONAME ; void CShowEngine::UpdateShow(class CShowInfo &) ?Url@CFeedInfo@@QBEABVTDesC16@@XZ @ 171 NONAME ; class TDesC16 const & CFeedInfo::Url(void) const - ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 172 NONAME ; class TDesC16 const & CShowInfo::Url(void) const - ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 173 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &) + ?NewL@CImageHandler@@SAPAV1@AAVRFs@@AAVCPodcastModel@@@Z @ 172 NONAME ; class CImageHandler * CImageHandler::NewL(class RFs &, class CPodcastModel &) + ?NewLC@CImageHandler@@SAPAV1@AAVRFs@@AAVCPodcastModel@@@Z @ 173 NONAME ; class CImageHandler * CImageHandler::NewLC(class RFs &, class CPodcastModel &) + sqlite3_aggregate_context @ 174 NONAME + sqlite3_aggregate_count @ 175 NONAME + sqlite3_auto_extension @ 176 NONAME + sqlite3_bind_blob @ 177 NONAME + sqlite3_bind_double @ 178 NONAME + sqlite3_bind_int @ 179 NONAME + sqlite3_bind_int64 @ 180 NONAME + sqlite3_bind_null @ 181 NONAME + sqlite3_bind_parameter_count @ 182 NONAME + sqlite3_bind_parameter_index @ 183 NONAME + sqlite3_bind_parameter_name @ 184 NONAME + sqlite3_bind_text @ 185 NONAME + sqlite3_bind_text16 @ 186 NONAME + sqlite3_bind_value @ 187 NONAME + sqlite3_bind_zeroblob @ 188 NONAME + sqlite3_blob_bytes @ 189 NONAME + sqlite3_blob_close @ 190 NONAME + sqlite3_blob_open @ 191 NONAME + sqlite3_blob_read @ 192 NONAME + sqlite3_blob_write @ 193 NONAME + sqlite3_busy_handler @ 194 NONAME + sqlite3_busy_timeout @ 195 NONAME + sqlite3_changes @ 196 NONAME + sqlite3_clear_bindings @ 197 NONAME + sqlite3_close @ 198 NONAME + sqlite3_collation_needed @ 199 NONAME + sqlite3_collation_needed16 @ 200 NONAME + sqlite3_column_blob @ 201 NONAME + sqlite3_column_bytes @ 202 NONAME + sqlite3_column_bytes16 @ 203 NONAME + sqlite3_column_count @ 204 NONAME + sqlite3_column_decltype @ 205 NONAME + sqlite3_column_decltype16 @ 206 NONAME + sqlite3_column_double @ 207 NONAME + sqlite3_column_int @ 208 NONAME + sqlite3_column_int64 @ 209 NONAME + sqlite3_column_name @ 210 NONAME + sqlite3_column_name16 @ 211 NONAME + sqlite3_column_text @ 212 NONAME + sqlite3_column_text16 @ 213 NONAME + sqlite3_column_type @ 214 NONAME + sqlite3_column_value @ 215 NONAME + sqlite3_commit_hook @ 216 NONAME + sqlite3_complete @ 217 NONAME + sqlite3_complete16 @ 218 NONAME + sqlite3_create_collation @ 219 NONAME + sqlite3_create_collation16 @ 220 NONAME + sqlite3_create_collation_v2 @ 221 NONAME + sqlite3_create_function @ 222 NONAME + sqlite3_create_function16 @ 223 NONAME + sqlite3_create_module @ 224 NONAME + sqlite3_create_module_v2 @ 225 NONAME + sqlite3_data_count @ 226 NONAME + sqlite3_db_handle @ 227 NONAME + sqlite3_declare_vtab @ 228 NONAME + sqlite3_enable_load_extension @ 229 NONAME + sqlite3_enable_shared_cache @ 230 NONAME + sqlite3_errcode @ 231 NONAME + sqlite3_errmsg @ 232 NONAME + sqlite3_errmsg16 @ 233 NONAME + sqlite3_exec @ 234 NONAME + sqlite3_expired @ 235 NONAME + sqlite3_extended_result_codes @ 236 NONAME + sqlite3_file_control @ 237 NONAME + sqlite3_finalize @ 238 NONAME + sqlite3_free @ 239 NONAME + sqlite3_free_table @ 240 NONAME + sqlite3_get_autocommit @ 241 NONAME + sqlite3_get_auxdata @ 242 NONAME + sqlite3_get_table @ 243 NONAME + sqlite3_global_recover @ 244 NONAME + sqlite3_interrupt @ 245 NONAME + sqlite3_last_insert_rowid @ 246 NONAME + sqlite3_libversion @ 247 NONAME + sqlite3_libversion_number @ 248 NONAME + sqlite3_load_extension @ 249 NONAME + sqlite3_malloc @ 250 NONAME + sqlite3_memory_alarm @ 251 NONAME + sqlite3_memory_highwater @ 252 NONAME + sqlite3_memory_used @ 253 NONAME + sqlite3_mprintf @ 254 NONAME + sqlite3_open @ 255 NONAME + sqlite3_open16 @ 256 NONAME + sqlite3_open_v2 @ 257 NONAME + sqlite3_overload_function @ 258 NONAME + sqlite3_prepare @ 259 NONAME + sqlite3_prepare16 @ 260 NONAME + sqlite3_prepare16_v2 @ 261 NONAME + sqlite3_prepare_v2 @ 262 NONAME + sqlite3_profile @ 263 NONAME + sqlite3_progress_handler @ 264 NONAME + sqlite3_realloc @ 265 NONAME + sqlite3_release_memory @ 266 NONAME + sqlite3_reset @ 267 NONAME + sqlite3_reset_auto_extension @ 268 NONAME + sqlite3_result_blob @ 269 NONAME + sqlite3_result_double @ 270 NONAME + sqlite3_result_error @ 271 NONAME + sqlite3_result_error16 @ 272 NONAME + sqlite3_result_error_nomem @ 273 NONAME + sqlite3_result_error_toobig @ 274 NONAME + sqlite3_result_int @ 275 NONAME + sqlite3_result_int64 @ 276 NONAME + sqlite3_result_null @ 277 NONAME + sqlite3_result_text @ 278 NONAME + sqlite3_result_text16 @ 279 NONAME + sqlite3_result_text16be @ 280 NONAME + sqlite3_result_text16le @ 281 NONAME + sqlite3_result_value @ 282 NONAME + sqlite3_result_zeroblob @ 283 NONAME + sqlite3_rollback_hook @ 284 NONAME + sqlite3_set_authorizer @ 285 NONAME + sqlite3_set_auxdata @ 286 NONAME + sqlite3_sleep @ 287 NONAME + sqlite3_snprintf @ 288 NONAME + sqlite3_soft_heap_limit @ 289 NONAME + sqlite3_sql @ 290 NONAME + sqlite3_step @ 291 NONAME + sqlite3_thread_cleanup @ 292 NONAME + sqlite3_threadsafe @ 293 NONAME + sqlite3_total_changes @ 294 NONAME + sqlite3_trace @ 295 NONAME + sqlite3_transfer_bindings @ 296 NONAME + sqlite3_update_hook @ 297 NONAME + sqlite3_user_data @ 298 NONAME + sqlite3_value_blob @ 299 NONAME + sqlite3_value_bytes @ 300 NONAME + sqlite3_value_bytes16 @ 301 NONAME + sqlite3_value_double @ 302 NONAME + sqlite3_value_int @ 303 NONAME + sqlite3_value_int64 @ 304 NONAME + sqlite3_value_numeric_type @ 305 NONAME + sqlite3_value_text @ 306 NONAME + sqlite3_value_text16 @ 307 NONAME + sqlite3_value_text16be @ 308 NONAME + sqlite3_value_text16le @ 309 NONAME + sqlite3_value_type @ 310 NONAME + sqlite3_vfs_find @ 311 NONAME + sqlite3_vfs_register @ 312 NONAME + sqlite3_vfs_unregister @ 313 NONAME + sqlite3_vmprintf @ 314 NONAME diff -r dc142c8740eb -r bbf5c5204844 engine/inc/FeedEngine.h --- a/engine/inc/FeedEngine.h Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/inc/FeedEngine.h Wed Mar 31 14:50:33 2010 +0200 @@ -95,6 +95,7 @@ IMPORT_C const RFeedInfoArray& GetSearchResults(); IMPORT_C void OpmlParsingComplete(TInt aError, TUint aNumFeedsAdded); + void NotifyFeedUpdateComplete(TInt aFeedUid, TInt aError); protected: static TInt CompareFeedsByTitle(const CFeedInfo &a, const CFeedInfo &b); @@ -117,7 +118,7 @@ void GetFeedImageL(CFeedInfo *aFeedInfo); void UpdateNextFeedL(); - void NotifyFeedUpdateComplete(TInt aError); + void NotifyFeedUpdateComplete(TInt aError); void NotifyOpmlParsingComplete(TInt aError, TUint aNumFeedsAdded); diff -r dc142c8740eb -r bbf5c5204844 engine/inc/FeedInfo.h --- a/engine/inc/FeedInfo.h Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/inc/FeedInfo.h Wed Mar 31 14:50:33 2010 +0200 @@ -76,7 +76,7 @@ private: CFeedInfo(); void ConstructL(); - void ImageOperationCompleteL(TInt aError, TUint aHandle); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); private: HBufC* iUrl; HBufC* iTitle; diff -r dc142c8740eb -r bbf5c5204844 engine/inc/ImageHandler.h --- a/engine/inc/ImageHandler.h Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/inc/ImageHandler.h Wed Mar 31 14:50:33 2010 +0200 @@ -22,6 +22,7 @@ #include #include #include +class CPodcastModel; /** * Listener interface that can be used to listen for image loading operation @@ -42,8 +43,10 @@ * Called by CImageHandler when an image has been loaded. * @param aError Error code given by the CImageHandler or 0 (zero) if the * image was loaded successfully. + * @param image handle + * @param reference to podcast model */ - virtual void ImageOperationCompleteL(TInt aError, TUint aHandle) = 0; + virtual void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel) = 0; }; // ============================================================================ @@ -65,27 +68,22 @@ public: // Constructors and destructor /** * Factory method that constructs a CImageHandler by using the NewLC method - * and then cleans the cleanup stack. - * @param aBitmap Bitmap where the image data is loaded to. - * @param aScaledBitmap Bitmap where the scaled image data is loaded to. + * and then cleans the cleanup stack. * @param aFs File server reference that is used to load the image data. - * @param aCallback Listener interface implementation that is notified + * @param Reference to podcast model * when an image has been loaded. * @return pointer to created CImageHandler-object */ - IMPORT_C static CImageHandler* NewL(RFs& aFs); + IMPORT_C static CImageHandler* NewL(RFs& aFs,CPodcastModel& aPodcastModel); /** * Factory method that constructs a CImageHandler and leaves it to the * cleanup stack. - * @param aBitmap Bitmap where the image data is loaded to. - * @param aScaledBitmap Bitmap where the scaled image data is loaded to. * @param aFs File server reference that is used to load the image data. - * @param aCallback Listener interface implementation that is notified - * when an image has been loaded. + * @param Reference to podcast model * @return pointer to created CImageHandler-object */ - IMPORT_C static CImageHandler* NewLC(RFs& aFs); + IMPORT_C static CImageHandler* NewLC(RFs& aFs,CPodcastModel& aPodcastModel); /** * Desctructor. Destroys the CImageDecoder used by the image handler. */ @@ -142,13 +140,12 @@ protected: /** * C++ default constructor. Just stores the given parameters to - * corresponding attributes. - * @param aScaledBitmap Bitmap where the scaled image data is loaded to. + * corresponding attributes. * @param aFs File server reference that is used to load the image data. - * @param aCallback Listener interface implementation that is notified + * @param Reference to podcast model * when an image has been loaded. */ - CImageHandler(RFs& aFs); + CImageHandler(RFs& aFs, CPodcastModel& aPodcastModel); /** * 2nd phase constructor. Adds this object to the active scheduler. */ @@ -182,6 +179,9 @@ /* Handle passed back to caller */ TUint iHandle; + + /** Reference to the podcast model used for callbacks to be able to notify*/ + CPodcastModel& iPodcastModel; }; #endif diff -r dc142c8740eb -r bbf5c5204844 engine/inc/PodcastModel.h --- a/engine/inc/PodcastModel.h Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/inc/PodcastModel.h Wed Mar 31 14:50:33 2010 +0200 @@ -102,7 +102,7 @@ CPodcastModel(); void ConstructL(); // From ImageHandler - void ImageOperationCompleteL(TInt aError, TUint aHandle); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); private: CShowInfo* iPlayingPodcast; diff -r dc142c8740eb -r bbf5c5204844 engine/src/FeedEngine.cpp --- a/engine/src/FeedEngine.cpp Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/src/FeedEngine.cpp Wed Mar 31 14:50:33 2010 +0200 @@ -647,6 +647,15 @@ } } +void CFeedEngine::NotifyFeedUpdateComplete(TInt aFeedUid, TInt aError) + { + DP("CFeedEngine::NotifyFeedUpdateComplete"); + for (TInt i=0;iFeedDownloadFinishedL(MFeedEngineObserver::EFeedAutoUpdate, aFeedUid, aError)); + } + } + void CFeedEngine::Disconnected(CHttpClient* /*aClient*/) { } diff -r dc142c8740eb -r bbf5c5204844 engine/src/FeedInfo.cpp --- a/engine/src/FeedInfo.cpp Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/src/FeedInfo.cpp Wed Mar 31 14:50:33 2010 +0200 @@ -17,6 +17,8 @@ */ #include "FeedInfo.h" +#include "FeedEngine.h" +#include "PodcastModel.h" #include #include #include @@ -209,7 +211,7 @@ { iFeedIcon = CEikonEnv::Static()->CreateBitmapL(cacheFileName, 0); } - } + } EXPORT_C TBool CFeedInfo::CustomTitle() const { @@ -241,9 +243,8 @@ iFeedIcon->Duplicate(aBitmapToClone->Handle()); } -void CFeedInfo::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/) - { - +void CFeedInfo::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/, CPodcastModel& aPodcastModel) + { if (aError == KErrNone && iImageFileName && iFeedIcon) { TFileName cacheFileName; @@ -253,5 +254,6 @@ cacheFileName.Append(parser.Name()); cacheFileName.Append(KMbmExtension()); iFeedIcon->Save(cacheFileName); + aPodcastModel.FeedEngine().NotifyFeedUpdateComplete(this->iUid, KErrNone); } } diff -r dc142c8740eb -r bbf5c5204844 engine/src/ImageHandler.cpp --- a/engine/src/ImageHandler.cpp Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/src/ImageHandler.cpp Wed Mar 31 14:50:33 2010 +0200 @@ -31,12 +31,13 @@ // might leave. // ----------------------------------------------------------------------------- // -CImageHandler::CImageHandler( RFs& aFs ) +CImageHandler::CImageHandler( RFs& aFs, CPodcastModel& aPodcastModel ) : CActive(CActive::EPriorityStandard) , iDecoder(NULL) , iScaler(NULL) , iFs(aFs) , iSize(0,0) + , iPodcastModel(aPodcastModel) { } @@ -56,9 +57,9 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -EXPORT_C CImageHandler* CImageHandler::NewL(RFs& aFs) +EXPORT_C CImageHandler* CImageHandler::NewL(RFs& aFs, CPodcastModel& aPodcastModel) { - CImageHandler* self = NewLC(aFs); + CImageHandler* self = NewLC(aFs, aPodcastModel); CleanupStack::Pop(); return self; } @@ -68,9 +69,9 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -EXPORT_C CImageHandler* CImageHandler::NewLC(RFs& aFs) +EXPORT_C CImageHandler* CImageHandler::NewLC(RFs& aFs, CPodcastModel& aPodcastModel) { - CImageHandler* self = new (ELeave) CImageHandler(aFs); + CImageHandler* self = new (ELeave) CImageHandler(aFs, aPodcastModel); CleanupStack::PushL( self ); self->ConstructL(); @@ -202,7 +203,7 @@ else { // Invoke callback. - iCallback->ImageOperationCompleteL(iStatus.Int(), iHandle); + iCallback->ImageOperationCompleteL(iStatus.Int(), iHandle, iPodcastModel); if(iCallbackQue.Count()) { TInt loaderror = KErrNotFound; diff -r dc142c8740eb -r bbf5c5204844 engine/src/PodcastModel.cpp --- a/engine/src/PodcastModel.cpp Wed Mar 31 08:41:07 2010 +0200 +++ b/engine/src/PodcastModel.cpp Wed Mar 31 14:50:33 2010 +0200 @@ -78,7 +78,7 @@ iIapNameArray = new (ELeave) CDesCArrayFlat(KDefaultGranu); iSNAPNameArray = new (ELeave) CDesCArrayFlat(KDefaultGranu); iCmManager.OpenL(); - iImageHandler = CImageHandler::NewL(FsSession()); + iImageHandler = CImageHandler::NewL(FsSession(), *this); UpdateIAPListL(); UpdateSNAPListL(); @@ -437,7 +437,7 @@ } -void CPodcastModel::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/) +void CPodcastModel::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/, CPodcastModel& /*aPodcastModel*/) { } diff -r dc142c8740eb -r bbf5c5204844 group/bld.inf --- a/group/bld.inf Wed Mar 31 08:41:07 2010 +0200 +++ b/group/bld.inf Wed Mar 31 14:50:33 2010 +0200 @@ -22,9 +22,9 @@ PRJ_MMPFILES -#ifdef SQLITE_INCLUDED +//#ifdef SQLITE_INCLUDED ..\engine\sqlite\group\sqlite.mmp -#endif +//#endif PRJ_MMPFILES ..\engine\group\engine.mmp