diff -r 5c11946e75b3 -r c9249d037530 browserui/browser/FavouritesSrc/BrowserAdaptiveListPopup.cpp --- a/browserui/browser/FavouritesSrc/BrowserAdaptiveListPopup.cpp Wed Mar 31 21:35:49 2010 +0300 +++ b/browserui/browser/FavouritesSrc/BrowserAdaptiveListPopup.cpp Wed Apr 14 16:00:33 2010 +0300 @@ -42,6 +42,8 @@ #include "CommonConstants.h" #include "BrowserAppViewBase.h" #include +#include +#include #include "eikon.hrh" @@ -54,6 +56,8 @@ _LIT( KProtocolIdentifier,"://" ); const TUint KSlash('/'); const TUint KPeriod('.'); +const TInt KListHeight = 45; +const TInt KFontHeight = 150; static void TextPos(TPoint *aResultArray, const TAknTextLineLayout &aLayout, TSize aItemSize) @@ -472,6 +476,62 @@ iUrlCompletionMode = EFalse; //only include recent URLs if not including the url completion items iRecentUrlStore->GetData( *iItems, *iItemNames, trimmedContent ); + + //sort alphabetically and... + for(TInt i=0; iCount(); i++) + { + for(TInt j=0; jCount()-1; j++) + { + if ((*iItems)[j].CompareF((*iItems)[j+1]) > 0) + { + RBuf tmp; + CleanupClosePushL(tmp); + tmp.Create((*iItems)[j]); + iItems->Delete(j); + iItems->InsertL( j+1, tmp ); + tmp.Close(); + tmp.Create((*iItemNames)[j]); + iItemNames->Delete(j); + iItemNames->InsertL( j+1, tmp ); + CleanupStack::PopAndDestroy( &tmp ); + } + } + } + //and move url with params i.e google.fi/m=q?xyz do the back of list + TInt i = 0; //iterator + TInt j = 0; //counter + while (i < (iItems->Count()-1) && j < iItems->Count()) + { + TUriParser8 parser; + RBuf8 out; + CleanupClosePushL( out ); + out.Create( (*iItems)[i].Length() ); + RBuf in; + CleanupClosePushL( in ); + in.Create( (*iItems)[i] ); + + CnvUtfConverter::ConvertFromUnicodeToUtf8(out, in ); + + if (( parser.Parse( out ) == KErrNone ) && //if parse ok and + ( parser.Extract( EUriPath ).Length() > 0 || //url contains path + parser.Extract( EUriQuery ).Length() > 0 )) //or query item + { + iItems->AppendL( (*iItems)[i] );//move item to back of the list + iItems->Delete( i ); + iItemNames->AppendL( (*iItemNames)[i] ); + iItemNames->Delete( i ); + } + else + { + i++; + } + j++; + + CleanupStack::PopAndDestroy( &in ); + CleanupStack::PopAndDestroy( &out ); + }; + + } iDirectoryMode = EFalse; CleanupStack::PopAndDestroy();//newText @@ -546,8 +606,13 @@ // force listbox on top of goto pane rectTemp.iBr.iY = iParent->PositionRelativeToScreen().iY; rectTemp.iTl.iX = iParent->PositionRelativeToScreen().iX; - // shrink list box to size of list - rectTemp.iTl.iY = rectTemp.iBr.iY - (AppLayout::list_single_graphic_popup_wml_pane( 0 ).iH * itemstoshow); + // shrink list box to size of list +#ifdef BRDO_TOUCH_ENABLED_FF + TInt listH = KListHeight; +#else + TInt listH = AppLayout::list_single_graphic_popup_wml_pane( 0 ).iH; +#endif + rectTemp.iTl.iY = rectTemp.iBr.iY - (listH * itemstoshow); // set bottom right x axis to full width rectTemp.iBr.iX = rect.iBr.iX; @@ -572,6 +637,24 @@ } //the last item is visible iList->ScrollToMakeItemVisible( iList->Model()->NumberOfItems()-1 ); +#ifdef BRDO_TOUCH_ENABLED_FF + const CFont* pFont = AknLayoutUtils::FontFromId(EAknLogicalFontPrimaryFont); + TFontSpec fontSpec = pFont->FontSpecInTwips(); + fontSpec.iHeight =KFontHeight; + + CFont* fontNew; + CEikonEnv::Static()->ScreenDevice()->GetNearestFontInTwips( ( CFont*&)fontNew, fontSpec ); + CFormattedCellListBoxData *pLBData = iList->ItemDrawer()->ColumnData(); + iList->SetItemHeightL(KListHeight); + + if(pLBData && pFont) + { + pLBData->SetSubCellFontL(1,fontNew); + } + + CEikonEnv::Static()->ScreenDevice()->ReleaseFont(fontNew); +#endif + MakeVisible( ETrue ); iPoppedUp = ETrue; DrawNow();