[Libreoffice-commits] .: sfx2/source

Cédric Bosdonnat cbosdo at kemper.freedesktop.org
Thu Feb 10 08:04:17 PST 2011


 sfx2/source/dialog/templdlg.cxx |   63 +++++++++++++++++-----------------------
 1 file changed, 28 insertions(+), 35 deletions(-)

New commits:
commit 81c8a0bf28107cd880c33efd633806cad61fa4f1
Author: Sébastien Le Ray <sebastien-libreoffice at orniz.org>
Date:   Thu Feb 10 16:54:39 2011 +0100

    fdo#32369: Fixed the natural order of styles in navigator

diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index e210a7a..58eb7fd 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -682,21 +682,17 @@ StyleTreeArr_Impl &MakeTree_Impl(StyleTreeArr_Impl &rArr)
                 if(pCmp->aName == pEntry->aParent)
                 {
                     // initial sortiert einfuegen
-                    USHORT ii;
-                    IntlWrapper aIntlWrapper( ::comphelper::getProcessServiceFactory(), Application::GetSettings().GetLocale() );
-                    const CollatorWrapper* pCollator = aIntlWrapper.getCaseCollator();
-                    for ( ii = 0;
-                         ii < pCmp->Count() && COMPARE_LESS ==
-                         pCollator->compareString( (*pCmp->pChilds)[ii]->aName,
-                                        pEntry->aName);++ii) ;
-                    pCmp->Put(pEntry,ii);
+                    USHORT nPos;
+                    for( nPos = 0 ; nPos < pCmp->Count() &&
+                        (*pCmp->pChilds)[nPos]->aName.CompareToNumeric(pEntry->aName) < 0 ; nPos++);
+                    pCmp->Put(pEntry,nPos);
                     break;
                 }
             }
         }
     }
-    // alle, die schon unter ihrem Parent eingeordnet wurden
-    // entfernen
+
+    // Keep only nodes with no parent in root array
     for(i = 0; i < rArr.Count(); )
     {
         if(rArr[i]->HasParent())
@@ -753,7 +749,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Sfx
                                 DEFINE_CONST_UNICODE("com.sun.star.frame.ModuleManager") ), UNO_QUERY ),
     pbDeleted               ( NULL ),
 
-    aFmtLb					( this, WB_BORDER | WB_TABSTOP | WB_SORT ),
+    aFmtLb					( this, WB_BORDER | WB_TABSTOP ),
     aFilterLb				( pW, WB_BORDER | WB_DROPDOWN | WB_TABSTOP ),
 
     nActFamily				( 0xffff ),
@@ -777,7 +773,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Sfx
 {
     aFmtLb.SetHelpId( HID_TEMPLATE_FMT );
     aFilterLb.SetHelpId( HID_TEMPLATE_FILTER );
-    aFmtLb.SetWindowBits( WB_SORT | WB_HIDESELECTION );
+    aFmtLb.SetWindowBits( WB_HIDESELECTION );
     Font aFont = aFmtLb.GetFont();
     aFont.SetWeight( WEIGHT_NORMAL );
     aFmtLb.SetFont( aFont );
@@ -1228,10 +1224,11 @@ BOOL SfxCommonTemplateDialog_Impl::HasSelectedStyle() const
 
 //-------------------------------------------------------------------------
 
-// intern: Aktualisierung der Anzeige
-void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(USHORT nFlags)     // Flags, was aktualisiert werden soll (s.o.)
+// internal: Refresh the display
+// nFlags: what we should update.
+void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(USHORT nFlags)
 {
-    DBG_ASSERT(nFlags, "nichts zu tun");
+    DBG_ASSERT(nFlags, "nothing to do");
     const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl();
     if (!pItem)
     {
@@ -1242,7 +1239,7 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(USHORT nFlags)     // Flags
         for( n = 0; n < nFamilyCount; n++ )
             if( ppItem[ StyleNrToInfoOffset(n) ] ) break;
         if ( n == nFamilyCount )
-            // passiert gelegentlich bei Beichten, Formularen etc.; weiss der Teufel warum
+            // It happens sometimes, God knows why
             return;
         ppItem += StyleNrToInfoOffset(n);
         nAppFilter = (*ppItem)->GetValue();
@@ -1257,12 +1254,12 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(USHORT nFlags)     // Flags
     if(!nFilter)    // automatisch
         nFilter = nAppFilter;
 
-    DBG_ASSERT(pStyleSheetPool, "kein StyleSheetPool");
+    DBG_ASSERT(pStyleSheetPool, "no StyleSheetPool");
     if(pStyleSheetPool)
     {
         pStyleSheetPool->SetSearchMask(eFam, nFilter);
         pItem = GetFamilyItem_Impl();
-        if((nFlags & UPDATE_FAMILY) == UPDATE_FAMILY)
+        if((nFlags & UPDATE_FAMILY) == UPDATE_FAMILY)   // Update view type list (Hierarchical, All, etc.
         {
             CheckItem(nActFamily, TRUE);    // Button in Toolbox checken
             aFilterLb.SetUpdateMode(FALSE);
@@ -1318,17 +1315,10 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(USHORT nFlags)     // Flags
             while( pStyle )
             {
                 //Bubblesort
-                for( USHORT nPos = aStrings.Count() + 1 ; nPos-- ;)
-                {
-                    if( !nPos || *aStrings[nPos-1] < pStyle->GetName() )
-                    {
-                        // Die Namen stehen in den Styles, also nicht kopieren
-                        // Reingefallen!: Writer hat insgesamt nur 1 Style
-                        aStrings.Insert(
-                            new String( pStyle->GetName() ), nPos );
-                        break;
-                    }
-                }
+                USHORT nPos;
+                for( nPos = aStrings.Count() ; nPos &&
+                    aStrings[nPos-1]->CompareToNumeric(pStyle->GetName()) > 0 ; nPos--);
+                aStrings.Insert( new String( pStyle->GetName() ), nPos );
                 pStyle = pStyleSheetPool->Next();
             }
 
@@ -1344,19 +1334,21 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(USHORT nFlags)     // Flags
 
             if( nPos < nCount || pEntry )
             {
-                // Box mit den Vorlagen fuellen
+                // Fills the display box
                 aFmtLb.SetUpdateMode(FALSE);
                 aFmtLb.Clear();
 
                 nPos = 0;
-                while( nPos < nCount )
-                    aFmtLb.InsertEntry( *aStrings.GetObject( nPos++ ));
+                for(nPos = 0 ;  nPos < nCount ; ++nPos )
+                {
+                    aFmtLb.InsertEntry( *aStrings.GetObject( nPos ), 0, FALSE, nPos);
+                }
                 aFmtLb.SetUpdateMode(TRUE);
             }
-                // aktuelle Vorlage anzeigen
+            // Selects the current style if any
             SfxTemplateItem *pState = pFamilyState[nActFamily-1];
             String aStyle;
-            if(pState)  //Aktuellen Eintrag selektieren
+            if(pState)
                 aStyle = pState->GetStyleName();
             SelectStyle(aStyle);
             EnableDelete();
@@ -2298,6 +2290,7 @@ void SfxTemplateDialog_Impl::EnableFamilyItem( USHORT nId, BOOL bEnable )
 }
 
 //-------------------------------------------------------------------------
+// Insert element into dropdown filter "Frame Styles", "List Styles", etc.
 
 void SfxTemplateDialog_Impl::InsertFamilyItem(USHORT nId,const SfxStyleFamilyItem *pItem)
 {
@@ -2309,7 +2302,7 @@ void SfxTemplateDialog_Impl::InsertFamilyItem(USHORT nId,const SfxStyleFamilyIte
         case SFX_STYLE_FAMILY_FRAME:nHelpId = SID_STYLE_FAMILY3; break;
         case SFX_STYLE_FAMILY_PAGE: nHelpId = SID_STYLE_FAMILY4; break;
         case SFX_STYLE_FAMILY_PSEUDO: nHelpId = SID_STYLE_FAMILY5; break;
-        default: DBG_ERROR("unbekannte StyleFamily"); break;
+        default: DBG_ERROR("unknown StyleFamily"); break;
     }
     m_aActionTbL.InsertItem( nId, pItem->GetImage(), pItem->GetText(), 0, 0);
     m_aActionTbL.SetHelpId( nId, nHelpId );


More information about the Libreoffice-commits mailing list