calendarui/regionalplugins/calenregionalutil/src/calenextrarowformatter.cpp
changeset 23 fd30d51f876b
parent 18 c198609911f9
child 45 b6db4fd4947b
child 49 5de72ea7a065
--- a/calendarui/regionalplugins/calenregionalutil/src/calenextrarowformatter.cpp	Fri Apr 16 14:57:40 2010 +0300
+++ b/calendarui/regionalplugins/calenregionalutil/src/calenextrarowformatter.cpp	Mon May 03 12:30:32 2010 +0300
@@ -16,14 +16,14 @@
 */
 
 
-#include "calendarui_debug.h"
-#include "CalenExtraRowFormatter.h"
+
 #include <calenregionalutil.rsg>
-#include <aknbiditextutils.h>
 #include <badesca.h> 
 #include <eikenv.h>
 #include <StringLoader.h>
 
+#include "calendarui_debug.h"
+#include "CalenExtraRowFormatter.h"
 
 // -----------------------------------------------------------------------------
 // CollapseDuplicatesL
@@ -158,11 +158,7 @@
 //
 EXPORT_C TPtrC CCalenExtraRowFormatter::FormatExtraRowInformationL( 
     CCalenLunarLocalizedInfo& aLocInfo, 
-    RArray<CCalenLunarLocalizedInfo::TField>& aPrioritizedFields,
-    TInt aMaxWidth,
-    const CFont& aFont
-    ,TBool aTwoLines
-    )
+    RArray<CCalenLunarLocalizedInfo::TField>& aPrioritizedFields )
     {
     TRACE_ENTRY_POINT;
     
@@ -190,159 +186,91 @@
         ASSERT( subLabels.Find( aPrioritizedFields[i] ) >= 0 ); 
         }
 
-    TBool fits = EFalse;
+	// Initialize substring array 
+	CPtrCArray* subs = new (ELeave) CPtrCArray(10);
+	CleanupStack::PushL( subs );
+	for ( TInt i = 0; i < subLabels.Count(); i++) 
+		{
+		subs->AppendL( TPtrC( KNullDesC ) );
+		}
+	// subs->InsertL( 0, TPtrC( KNullDesC ), 5 );
+	
+	// Set wanted fields to substring array
+	for ( TInt i = 0; i < aPrioritizedFields.Count(); i++)
+		{
+		CCalenLunarLocalizedInfo::TField field = aPrioritizedFields[i];
+		TInt subIx = subLabels.Find( field );
+		// Replace 
+		subs->Delete(subIx);
+		RDebug::Print( _L("A sub count  %d"), subs->Count() );
+		subs->InsertL(subIx, TPtrC( aLocInfo.GetField( field ) ) );
+		RDebug::Print( _L("B sub count %d"), subs->Count() );
+		RDebug::Print( _L("B field %S"), &(subs->At(subIx)) );
+		
+		}
+	
+	// Format all fields to extra row     
+	HBufC* extraRowFmt = StringLoader::LoadLC( R_CALE_EXTRA_ROW_LUNAR );
+	
+	RDebug::RawPrint( *extraRowFmt );
+	
+	TBuf<1000> fmt = *extraRowFmt;
+	for (TInt i=0; i < subLabels.Count(); i++)
+		{
+		RDebug::Print( _L("Before Format") );
+		RDebug::RawPrint( fmt );
+		StringLoader::Format( iText, 
+							  fmt,
+							  i + 1, // %0U is a separator 
+							  subs->At( i ) );
+		fmt = iText;
+		RDebug::Print( _L("After Format") );
+		RDebug::RawPrint( fmt );
+		}
+	
+	// Now we have something like "Year of Dog%0U%0U6/11%0U%0U" 
+	// First We need to remove multiple occurences of %0U
+	_LIT(KSeparatorFmt, "%0U");
+	
+	CollapseDuplicatesL( iText, 0, KSeparatorFmt );
+	RDebug::Print( _L("After collapse") );
+	RDebug::RawPrint( iText );
 
-    do 
-        {
-        // Initialize substring array 
-        CPtrCArray* subs = new (ELeave) CPtrCArray(10);
-        CleanupStack::PushL( subs );
-        for ( TInt i = 0; i < subLabels.Count(); i++) 
-            {
-            subs->AppendL( TPtrC( KNullDesC ) );
-            }
-        // subs->InsertL( 0, TPtrC( KNullDesC ), 5 );
-        
-        // Set wanted fields to substring array
-        for ( TInt i = 0; i < aPrioritizedFields.Count(); i++)
-            {
-            CCalenLunarLocalizedInfo::TField field = aPrioritizedFields[i];        
-            TInt subIx = subLabels.Find( field );
-            // Replace 
-            subs->Delete(subIx);
-            RDebug::Print( _L("A sub count  %d"), subs->Count() );                       
-            subs->InsertL(subIx, TPtrC( aLocInfo.GetField( field ) ) );
-            RDebug::Print( _L("B sub count %d"), subs->Count() );                       
-            RDebug::Print( _L("B field %S"), &(subs->At(subIx)) );                       
-            
-            }
-        
-        // Format all fields to extra row     
-        HBufC* extraRowFmt = StringLoader::LoadLC( R_CALE_EXTRA_ROW_LUNAR );
-        
-        RDebug::RawPrint( *extraRowFmt );
-        
-        TBuf<1000> fmt = *extraRowFmt;
-        for (TInt i=0; i < subLabels.Count(); i++)
-            {
-            RDebug::Print( _L("Before Format") );
-            RDebug::RawPrint( fmt );
-            StringLoader::Format( iText, 
-                                  fmt,
-                                  i + 1, // %0U is a separator 
-                                  subs->At( i ) );
-            fmt = iText;
-            RDebug::Print( _L("After Format") );
-            RDebug::RawPrint( fmt );
-            }
-        
-        // Now we have something like "Year of Dog%0U%0U6/11%0U%0U" 
-        // First We need to remove multiple occurences of %0U
-        _LIT(KSeparatorFmt, "%0U");
-        
-        CollapseDuplicatesL( iText, 0, KSeparatorFmt );
-        RDebug::Print( _L("After collapse") );
-        RDebug::RawPrint( iText );
+	// Remove leading and trailing %0U
+	// By now, we are sure that there is max 1 %0U in the beginning
+	// and in the end of string.
+	RemoveLeadingAndTrailingL( iText, KSeparatorFmt );
+	RDebug::Print( _L("After leading and trailing removal") );
+	RDebug::RawPrint( iText );
+	
 
-        // Remove leading and trailing %0U
-        // By now, we are sure that there is max 1 %0U in the beginning
-        // and in the end of string.
-        RemoveLeadingAndTrailingL( iText, KSeparatorFmt );
-        RDebug::Print( _L("After leading and trailing removal") );
-        RDebug::RawPrint( iText );
-        
-
-        // If there are now separators anymore, then do not fill them
-        TBool hasSeparators = iText.Find( KSeparatorFmt ) >= 0;
-        
-        if ( hasSeparators ) 
-            {
-        
-            // fill in separators
-            HBufC* separator = StringLoader::LoadLC( R_CALE_LUNAR_SEPARATOR );
-            fmt = iText;
-            StringLoader::Format( iText, 
-                                  fmt,
-                                  0, // %0U is a separator 
-                                  *separator );
-        
-            RDebug::Print( _L("After separator insert") );
-            RDebug::RawPrint( iText );
-            CleanupStack::PopAndDestroy( separator );
-            }
+	// If there are now separators anymore, then do not fill them
+	TBool hasSeparators = iText.Find( KSeparatorFmt ) >= 0;
+	
+	if ( hasSeparators ) 
+		{
+	
+		// fill in separators
+		HBufC* separator = StringLoader::LoadLC( R_CALE_LUNAR_SEPARATOR );
+		fmt = iText;
+		StringLoader::Format( iText, 
+							  fmt,
+							  0, // %0U is a separator 
+							  *separator );
+	
+		RDebug::Print( _L("After separator insert") );
+		RDebug::RawPrint( iText );
+		CleanupStack::PopAndDestroy( separator );
+		}
 
 
-        CleanupStack::PopAndDestroy( extraRowFmt );
-        CleanupStack::PopAndDestroy( subs );
-        
-        fits = TryToFitL( iText, aMaxWidth, aFont
-
-                          , aTwoLines
-
-                          ); 
-        if ( ! fits )
-            {
-            iText = KNullDesC;
-            TInt last = aPrioritizedFields.Count() - 1;
-            if ( last >= 0 )
-                {
-                aPrioritizedFields.Remove( last );
-                }
-            }
-
-        
-        } while ( ! fits && aPrioritizedFields.Count() );
-
+	CleanupStack::PopAndDestroy( extraRowFmt );
+	CleanupStack::PopAndDestroy( subs );
     CleanupStack::PopAndDestroy( &subLabels );
     
-    
-    
     TRACE_EXIT_POINT;
     return iText;
     }
 
-// -----------------------------------------------------------------------------
-// CCalenExtraRowFormatter::TryToFitL
-// -----------------------------------------------------------------------------
-//
-TBool CCalenExtraRowFormatter::TryToFitL( const TDesC& aStr, TInt aMaxWidth, const CFont& aFont
-                                           , TBool aTwoLines )
-    {
-    TRACE_ENTRY_POINT;
-    
-    TBool result(EFalse);
-    if(aTwoLines)
-        {
-        CArrayFixFlat<TPtrC>* textLines = new(ELeave)CArrayFixFlat<TPtrC>( 3 );
-        CleanupStack::PushL( textLines );
-        
-        CArrayFixFlat<TInt>* lineWidths = new( ELeave )CArrayFixFlat<TInt>( 1 );
-        CleanupStack::PushL( lineWidths );
-        
-        lineWidths->AppendL( aMaxWidth );
-        
-        HBufC* visualText = AknBidiTextUtils::ConvertToVisualAndWrapToArrayWholeTextL(
-            aStr,
-            *lineWidths,
-            aFont,
-            *textLines);
-
-        result = (textLines->Count() <= 2);
-            
-        CleanupStack::PopAndDestroy( lineWidths );
-        CleanupStack::PopAndDestroy( textLines );
-        delete visualText;
-        }
-    else
-        {
-        CFont::TMeasureTextInput::TFlags logicalOrder = static_cast<CFont::TMeasureTextInput::TFlags>(0);
-        TInt textW = AknBidiTextUtils::MeasureTextBoundsWidth( aFont, aStr, logicalOrder );
-        result = (textW <= aMaxWidth);
-        }   
-    
-    TRACE_EXIT_POINT;
-    return result;
-    }
-
 //EOF