diff -r 326673dff2bf -r e3a25416bf1f csxhelp/src/CSXHLegacyTopicContainer.cpp --- a/csxhelp/src/CSXHLegacyTopicContainer.cpp Tue May 25 12:28:46 2010 +0300 +++ b/csxhelp/src/CSXHLegacyTopicContainer.cpp Wed Jun 09 09:28:21 2010 +0300 @@ -33,6 +33,7 @@ #include #include #include +#include CCSXHLegacyTopicContainer* CCSXHLegacyTopicContainer::NewL(const TRect& aRect,CCSXHDocument &aDocument,CCSXHLegacyTOC2 *aTopic) @@ -69,12 +70,18 @@ GetTextFormat(); iEdwin = new(ELeave) CEikEdwin(); - const TInt flags(CEikEdwin::EKeepDocument | - CEikEdwin::EUserSuppliedText | - CEikEdwin::ENoAutoSelection | - CEikEdwin::EAvkonDisableCursor | - CEikEdwin::EReadOnly | - CEikEdwin::EDisplayOnly); + TInt flags(CEikEdwin::EKeepDocument | + CEikEdwin::EUserSuppliedText | + CEikEdwin::ENoAutoSelection | + CEikEdwin::EAvkonDisableCursor | + CEikEdwin::EReadOnly | + CEikEdwin::EDisplayOnly); + + if ( iText == NULL ) + { + flags = flags & ~CEikEdwin::EUserSuppliedText; + } + iEdwin->SetContainerWindowL(*this); iEdwin->ConstructL(flags); @@ -82,7 +89,10 @@ CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); SetTextL(iText); - FormatRichTextL(*iText); + if( iText != NULL ) + { + FormatRichTextL(*iText); + } SetRect(aRect); ActivateL(); } @@ -98,15 +108,26 @@ iTopic = aTopic; iText = STATIC_CAST(CRichText*,iTopic->GetTopicContentL()); SetTextL(iText); - FormatRichTextL(*iText); + if( iText != NULL ) + { + FormatRichTextL(*iText); + } SizeChanged(); } void CCSXHLegacyTopicContainer::SetTextL(CRichText* aText) { - iEdwin->SetDocumentContentL(*aText, CEikEdwin::EUseText); - iEdwin->SetCursorPosL(0, EFalse); - + if( aText == NULL ) + { + HBufC* errorMessage = iCoeEnv->AllocReadResourceLC( R_TYPE_NO_HELP_TOPICS ); + iEdwin->SetTextL( errorMessage ); + CleanupStack::PopAndDestroy( errorMessage ); + } + else + { + iEdwin->SetDocumentContentL(*aText, CEikEdwin::EUseText); + iEdwin->SetCursorPosL(0, EFalse); + } } void CCSXHLegacyTopicContainer::FocusChanged(TDrawNow aDrawNow)