cui/source/inc/numpages.hxx      |   13 ++++
 cui/source/tabpages/numpages.cxx |  113 ++++++++++++++++++++-------------------
 cui/source/tabpages/page.cxx     |   21 +++++--
 cui/source/tabpages/page.src     |   28 +++++++--
 4 files changed, 110 insertions(+), 65 deletions(-)

New commits:
commit 88a083f8be05449630c9e2af30474281fd0d8af2
Author: Eike Rathke <er...@redhat.com>
Date:   Fri Jun 29 20:00:16 2012 +0200

    fdo#42558 consolidated duplicated code
    
    * Moved almost identical code of
      SvxNumOptionsTabPage::SvxNumOptionsTabPage() and
      SvxPageDescPage::SvxPageDescPage() into static
      SvxNumOptionsTabPage::GetI18nNumbering()
    * Removed now unnecessary includes and using namespace directives
    
    Change-Id: I7babe68f2bb8af4fd227cbe558c34c7f85104a15

diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx
index 5be85fb..cc89339 100644
--- a/cui/source/inc/numpages.hxx
+++ b/cui/source/inc/numpages.hxx
@@ -346,6 +346,19 @@ class SvxNumOptionsTabPage : public SfxTabPage
     ListBox&            GetCharFmtListBox() {return aCharFmtLB;}
     void                SetModified(sal_Bool bRepaint = sal_True);
     virtual void        PageCreated(SfxAllItemSet aSet);
+
+    /** Get the numberings provided by the i18n framework (CTL, Asian, ...) and
+        add them to the listbox. Extended numbering schemes present in the
+        resource and already in the listbox but not offered by the i18n
+        framework per configuration are removed.
+
+        @param nDoNotRemove
+            A value that shall not be removed, i.e. the ugly 0x88
+            (SVX_NUM_BITMAP|0x80)
+            Pass ::std::numeric_limits<sal_uInt16>::max() if there is no such
+            restriction.
+     */
+    static void         GetI18nNumbering( ListBox& rFmtLB, sal_uInt16 
nDoNotRemove );
 };
 
 //------------------------------------------------
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 8936ebc..e909c17 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -1023,6 +1023,64 @@ IMPL_LINK_NOARG(SvxBitmapPickTabPage, LinkBmpHdl_Impl)
     return 0;
 }
 
+// static
+void SvxNumOptionsTabPage::GetI18nNumbering( ListBox& rFmtLB, sal_uInt16 
nDoNotRemove )
+{
+
+    Reference<XDefaultNumberingProvider> xDefNum = lcl_GetNumberingProvider();
+    Reference<XNumberingTypeInfo> xInfo(xDefNum, UNO_QUERY);
+
+    // Extended numbering schemes present in the resource but not offered by
+    // the i18n framework per configuration must be removed from the listbox.
+    // Do not remove a special entry matching nDoNotRemove.
+    const sal_uInt16 nDontRemove = 0xffff;
+    ::std::vector< sal_uInt16> aRemove( rFmtLB.GetEntryCount(), nDontRemove);
+    for (size_t i=0; i<aRemove.size(); ++i)
+    {
+        sal_uInt16 nEntryData = (sal_uInt16)(sal_uLong)rFmtLB.GetEntryData(
+                sal::static_int_cast< sal_uInt16 >(i));
+        if (nEntryData > NumberingType::CHARS_LOWER_LETTER_N && nEntryData != 
nDoNotRemove)
+            aRemove[i] = nEntryData;
+    }
+    if(xInfo.is())
+    {
+        Sequence<sal_Int16> aTypes = xInfo->getSupportedNumberingTypes(  );
+        const sal_Int16* pTypes = aTypes.getConstArray();
+        for(sal_Int32 nType = 0; nType < aTypes.getLength(); nType++)
+        {
+            sal_Int16 nCurrent = pTypes[nType];
+            if(nCurrent > NumberingType::CHARS_LOWER_LETTER_N)
+            {
+                sal_Bool bInsert = sal_True;
+                for(sal_uInt16 nEntry = 0; nEntry < rFmtLB.GetEntryCount(); 
nEntry++)
+                {
+                    sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)rFmtLB.GetEntryData(nEntry);
+                    if(nEntryData == (sal_uInt16) nCurrent)
+                    {
+                        bInsert = sal_False;
+                        aRemove[nEntry] = nDontRemove;
+                        break;
+                    }
+                }
+                if(bInsert)
+                {
+                    OUString aIdent = xInfo->getNumberingIdentifier( nCurrent 
);
+                    sal_uInt16 nPos = rFmtLB.InsertEntry(aIdent);
+                    rFmtLB.SetEntryData(nPos,(void*)(sal_uLong)nCurrent);
+                }
+            }
+        }
+    }
+    for (size_t i=0; i<aRemove.size(); ++i)
+    {
+        if (aRemove[i] != nDontRemove)
+        {
+            sal_uInt16 nPos = rFmtLB.GetEntryPos( 
(void*)(sal_uLong)aRemove[i]);
+            rFmtLB.RemoveEntry( nPos);
+        }
+    }
+}
+
 // tabpage numeration options
 #define NUM_NO_GRAPHIC 1000
 SvxNumOptionsTabPage::SvxNumOptionsTabPage(Window* pParent,
@@ -1113,60 +1171,9 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(Window* 
pParent,
 
     FreeResource();
 
-    //get advanced numbering types from the component
-    Reference<XDefaultNumberingProvider> xDefNum = lcl_GetNumberingProvider();
-    Reference<XNumberingTypeInfo> xInfo(xDefNum, UNO_QUERY);
-
-    // Extended numbering schemes present in the resource but not offered by
-    // the i18n framework per configuration must be removed from the listbox.
+    // Get advanced numbering types from the component.
     // Watch out for the ugly 0x88/*SVX_NUM_BITMAP|0x80*/ to not remove that.
-    const sal_uInt16 nDontRemove = 0xffff;
-    ::std::vector< sal_uInt16> aRemove( aFmtLB.GetEntryCount(), nDontRemove);
-    for (size_t i=0; i<aRemove.size(); ++i)
-    {
-        sal_uInt16 nEntryData = (sal_uInt16)(sal_uLong)aFmtLB.GetEntryData(
-            sal::static_int_cast< sal_uInt16 >(i));
-        if (nEntryData > NumberingType::CHARS_LOWER_LETTER_N &&
-                nEntryData != (SVX_NUM_BITMAP | 0x80))
-            aRemove[i] = nEntryData;
-    }
-    if(xInfo.is())
-    {
-        Sequence<sal_Int16> aTypes = xInfo->getSupportedNumberingTypes(  );
-        const sal_Int16* pTypes = aTypes.getConstArray();
-        for(sal_Int32 nType = 0; nType < aTypes.getLength(); nType++)
-        {
-            sal_Int16 nCurrent = pTypes[nType];
-            if(nCurrent > NumberingType::CHARS_LOWER_LETTER_N)
-            {
-                sal_Bool bInsert = sal_True;
-                for(sal_uInt16 nEntry = 0; nEntry < aFmtLB.GetEntryCount(); 
nEntry++)
-                {
-                    sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)aFmtLB.GetEntryData(nEntry);
-                    if(nEntryData == (sal_uInt16) nCurrent)
-                    {
-                        bInsert = sal_False;
-                        aRemove[nEntry] = nDontRemove;
-                        break;
-                    }
-                }
-                if(bInsert)
-                {
-                    OUString aIdent = xInfo->getNumberingIdentifier( nCurrent 
);
-                    sal_uInt16 nPos = aFmtLB.InsertEntry(aIdent);
-                    aFmtLB.SetEntryData(nPos,(void*)(sal_uLong)nCurrent);
-                }
-            }
-        }
-    }
-    for (size_t i=0; i<aRemove.size(); ++i)
-    {
-        if (aRemove[i] != nDontRemove)
-        {
-            sal_uInt16 nPos = aFmtLB.GetEntryPos( 
(void*)(sal_uLong)aRemove[i]);
-            aFmtLB.RemoveEntry( nPos);
-        }
-    }
+    GetI18nNumbering( aFmtLB, (SVX_NUM_BITMAP | 0x80));
 
     aBulletPB.SetAccessibleRelationMemberOf(&aFormatFL);
     aBulletPB.SetAccessibleRelationLabeledBy(&aStartFT);
diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index 7e3babd..0c5ea75 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -26,10 +26,6 @@
  *
  ************************************************************************/
 
-#include <com/sun/star/style/NumberingType.hpp>
-#include <com/sun/star/text/XDefaultNumberingProvider.hpp>
-#include <com/sun/star/text/XNumberingTypeInfo.hpp>
-//------------------------------------------------------
 #include <sfx2/app.hxx>
 #include <sfx2/objsh.hxx>
 #include <tools/resary.hxx>
@@ -73,11 +69,7 @@
 #include <svl/aeitem.hxx>
 #include <sfx2/request.hxx>
 
-//Namespaces--------------------------------------------------------------
-using namespace com::sun::star::uno;
-using namespace com::sun::star::text;
-using namespace com::sun::star::style;
-using rtl::OUString;
+#include <numpages.hxx>     // for GetI18nNumbering()
 
 // static ----------------------------------------------------------------
 
@@ -371,57 +363,8 @@ SvxPageDescPage::SvxPageDescPage( Window* pParent, const 
SfxItemSet& rAttr ) :
     aPortraitBtn.SetAccessibleRelationMemberOf(&aOrientationFT);
     aLandscapeBtn.SetAccessibleRelationMemberOf(&aOrientationFT);
 
-// Get the CTL/Asian Language Numbering and added to list box
-    Reference<XDefaultNumberingProvider> lcl_GetNumberingProvider();
-    Reference<XDefaultNumberingProvider> xDefNum = lcl_GetNumberingProvider();
-    Reference<XNumberingTypeInfo> xInfo(xDefNum, UNO_QUERY);
-    sal_Int16 nPos;
-    const sal_uInt16 nDontRemove = 0xffff;
-    std::vector< sal_uInt16> aRemove( aNumberFormatBox.GetEntryCount(), 
nDontRemove);
-    for (size_t i=0; i<aRemove.size(); ++i)
-    {
-        sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)aNumberFormatBox.GetEntryData(
-            sal::static_int_cast< sal_uInt16 >(i));
-        if (nEntryData > NumberingType::CHARS_LOWER_LETTER_N)
-            aRemove[i] = nEntryData;
-    }
-    if(xInfo.is())
-    {
-        Sequence<sal_Int16> aTypes = xInfo->getSupportedNumberingTypes(  );
-        const sal_Int16* pTypes = aTypes.getConstArray();
-        for(sal_Int32 nType = 0; nType < aTypes.getLength(); nType++)
-        {
-            sal_Int16 nCurrent = pTypes[nType];
-            if(nCurrent > NumberingType::CHARS_LOWER_LETTER_N)
-            {
-                sal_Bool bInsert = sal_True;
-                for(sal_uInt16 nEntry = 0; nEntry < 
aNumberFormatBox.GetEntryCount(); nEntry++)
-                {
-                    sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)aNumberFormatBox.GetEntryData(nEntry);
-                    if(nEntryData == (sal_uInt16) nCurrent)
-                    {
-                        bInsert = sal_False;
-                        aRemove[nEntry] = nDontRemove;
-                        break;
-                    }
-                }
-                if(bInsert)
-                {
-                    OUString aIdent = xInfo->getNumberingIdentifier( nCurrent 
);
-                    nPos = aNumberFormatBox.InsertEntry(aIdent);
-                    
aNumberFormatBox.SetEntryData(nPos,(void*)(sal_uLong)nCurrent);
-                }
-            }
-        }
-    }
-    for (size_t i=0; i<aRemove.size(); ++i)
-    {
-        if (aRemove[i] != nDontRemove)
-        {
-            nPos = aNumberFormatBox.GetEntryPos( (void*)(sal_uLong)aRemove[i]);
-            aNumberFormatBox.RemoveEntry( nPos);
-        }
-    }
+    // Get the i18n framework numberings and add them to the listbox.
+    SvxNumOptionsTabPage::GetI18nNumbering( aNumberFormatBox, 
::std::numeric_limits<sal_uInt16>::max());
 }
 
 // -----------------------------------------------------------------------
commit e5d61932cb6c92954d808cf8d65a460ea19d5799
Author: Faisal M. Al-Otaibi <fmalota...@kacst.edu.sa>
Date:   Mon Jun 25 09:27:16 2012 +0300

    fdo#42558 added Arabic Abjad and other known numberings to Page Numbering
    
    Change-Id: I3f62337d5824d59692af3e044141e5597d7e7d33

diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index b30d45d..7e3babd 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -26,6 +26,10 @@
  *
  ************************************************************************/
 
+#include <com/sun/star/style/NumberingType.hpp>
+#include <com/sun/star/text/XDefaultNumberingProvider.hpp>
+#include <com/sun/star/text/XNumberingTypeInfo.hpp>
+//------------------------------------------------------
 #include <sfx2/app.hxx>
 #include <sfx2/objsh.hxx>
 #include <tools/resary.hxx>
@@ -69,6 +73,12 @@
 #include <svl/aeitem.hxx>
 #include <sfx2/request.hxx>
 
+//Namespaces--------------------------------------------------------------
+using namespace com::sun::star::uno;
+using namespace com::sun::star::text;
+using namespace com::sun::star::style;
+using rtl::OUString;
+
 // static ----------------------------------------------------------------
 
 static const long MINBODY       = 284;  // 0,5 cm rounded up in twips
@@ -85,7 +95,6 @@ static sal_uInt16 pRanges[] =
     SID_SWREGISTER_MODE,
     0
 };
-
 // ------- Mapping page layout ------------------------------------------
 
 sal_uInt16 aArr[] =
@@ -361,6 +370,58 @@ SvxPageDescPage::SvxPageDescPage( Window* pParent, const 
SfxItemSet& rAttr ) :
 
     aPortraitBtn.SetAccessibleRelationMemberOf(&aOrientationFT);
     aLandscapeBtn.SetAccessibleRelationMemberOf(&aOrientationFT);
+
+// Get the CTL/Asian Language Numbering and added to list box
+    Reference<XDefaultNumberingProvider> lcl_GetNumberingProvider();
+    Reference<XDefaultNumberingProvider> xDefNum = lcl_GetNumberingProvider();
+    Reference<XNumberingTypeInfo> xInfo(xDefNum, UNO_QUERY);
+    sal_Int16 nPos;
+    const sal_uInt16 nDontRemove = 0xffff;
+    std::vector< sal_uInt16> aRemove( aNumberFormatBox.GetEntryCount(), 
nDontRemove);
+    for (size_t i=0; i<aRemove.size(); ++i)
+    {
+        sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)aNumberFormatBox.GetEntryData(
+            sal::static_int_cast< sal_uInt16 >(i));
+        if (nEntryData > NumberingType::CHARS_LOWER_LETTER_N)
+            aRemove[i] = nEntryData;
+    }
+    if(xInfo.is())
+    {
+        Sequence<sal_Int16> aTypes = xInfo->getSupportedNumberingTypes(  );
+        const sal_Int16* pTypes = aTypes.getConstArray();
+        for(sal_Int32 nType = 0; nType < aTypes.getLength(); nType++)
+        {
+            sal_Int16 nCurrent = pTypes[nType];
+            if(nCurrent > NumberingType::CHARS_LOWER_LETTER_N)
+            {
+                sal_Bool bInsert = sal_True;
+                for(sal_uInt16 nEntry = 0; nEntry < 
aNumberFormatBox.GetEntryCount(); nEntry++)
+                {
+                    sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)aNumberFormatBox.GetEntryData(nEntry);
+                    if(nEntryData == (sal_uInt16) nCurrent)
+                    {
+                        bInsert = sal_False;
+                        aRemove[nEntry] = nDontRemove;
+                        break;
+                    }
+                }
+                if(bInsert)
+                {
+                    OUString aIdent = xInfo->getNumberingIdentifier( nCurrent 
);
+                    nPos = aNumberFormatBox.InsertEntry(aIdent);
+                    
aNumberFormatBox.SetEntryData(nPos,(void*)(sal_uLong)nCurrent);
+                }
+            }
+        }
+    }
+    for (size_t i=0; i<aRemove.size(); ++i)
+    {
+        if (aRemove[i] != nDontRemove)
+        {
+            nPos = aNumberFormatBox.GetEntryPos( (void*)(sal_uLong)aRemove[i]);
+            aNumberFormatBox.RemoveEntry( nPos);
+        }
+    }
 }
 
 // -----------------------------------------------------------------------
@@ -468,8 +529,13 @@ void SvxPageDescPage::Reset( const SfxItemSet& rSet )
     aBspWin.SetUsage( nUse );
     LayoutHdl_Impl( 0 );
 
-    // adjust numeration type of the page style
-    aNumberFormatBox.SelectEntryPos( sal::static_int_cast< sal_uInt16 
>(eNumType) );
+    //adjust numeration type of the page style
+    //Get the Position of the saved NumType
+    for(int i=0; i<aNumberFormatBox.GetEntryCount(); i++)
+        if(eNumType == 
(sal_uInt16)(sal_uLong)aNumberFormatBox.GetEntryData(i)){
+            aNumberFormatBox.SelectEntryPos( i );
+            break;
+        }
 
     aPaperTrayBox.Clear();
     sal_uInt8 nPaperBin = PAPERBIN_PRINTER_SETTINGS;
@@ -804,12 +870,12 @@ sal_Bool SvxPageDescPage::FillItemSet( SfxItemSet& rSet )
         bMod |= sal_True;
     }
 
-
+    //Get the NumType value
     nPos = aNumberFormatBox.GetSelectEntryPos();
-
+    sal_uInt16 nEntryData = 
(sal_uInt16)(sal_uLong)aNumberFormatBox.GetEntryData(nPos);
     if ( nPos != aNumberFormatBox.GetSavedValue() )
     {
-        aPage.SetNumType( (SvxNumType)nPos );
+        aPage.SetNumType( (SvxNumType)nEntryData );
         bMod |= sal_True;
     }
 
diff --git a/cui/source/tabpages/page.src b/cui/source/tabpages/page.src
index 88a7936..0397b2d 100644
--- a/cui/source/tabpages/page.src
+++ b/cui/source/tabpages/page.src
@@ -306,12 +306,28 @@ TabPage RID_SVXPAGE_PAGE
         DropDown = TRUE ;
         StringList [ en-US ] =
         {
-            < "A, B, C, ..." ; Default ; > ;
-            < "a, b, c, ..." ; Default ; > ;
-            < "I, II, III, ..." ; Default ; > ;
-            < "i, ii, iii, ..." ; Default ; > ;
-            < "1, 2, 3, ..." ; Default ; > ;
-            < "None" ; Default ; > ;
+            < "1, 2, 3, ..." ;                 4/*SVX_NUM_ARABIC              
*/; > ;
+            < "A, B, C, ..." ;                 0/*SVX_NUM_CHARS_UPPER_LETTER  
*/; > ;
+            < "a, b, c, ..." ;              1/*SVX_NUM_CHARS_LOWER_LETTER  */; 
> ;
+            < "I, II, III, ..." ;          2/*SVX_NUM_ROMAN_UPPER         */; 
> ;
+            < "i, ii, iii, ..." ;          3/*SVX_NUM_ROMAN_LOWER         */; 
> ;
+            < "A, .., AA, .., AAA, ..." ;  9/*SVX_NUM_CHARS_UPPER_LETTER_N*/; 
> ;
+            < "a, .., aa, .., aaa, ..." ;  10/*SVX_NUM_CHARS_LOWER_LETTER_N*/; 
> ;
+            < "Native Numbering" ;                      12 /*NATIVE_NUMBERING  
                 */; > ;
+            < "А, Б, .., Аа, Аб, ... (Bulgarian)" ;     38 
/*CHARS_CYRILLIC_UPPER_LETTER_BG     */; > ;
+            < "а, б, .., аа, аб, ... (Bulgarian)" ;     39 
/*CHARS_CYRILLIC_LOWER_LETTER_BG     */; > ;
+            < "А, Б, .., Аа, Бб, ... (Bulgarian)" ;     40 
/*CHARS_CYRILLIC_UPPER_LETTER_N_BG   */; > ;
+            < "а, б, .., аа, бб, ... (Bulgarian)" ;     41 
/*CHARS_CYRILLIC_LOWER_LETTER_N_BG   */; > ;
+            < "А, Б, .., Аа, Аб, ... (Russian)" ;       42 
/*CHARS_CYRILLIC_UPPER_LETTER_RU     */; > ;
+            < "а, б, .., аа, аб, ... (Russian)" ;       43 
/*CHARS_CYRILLIC_LOWER_LETTER_RU     */; > ;
+            < "А, Б, .., Аа, Бб, ... (Russian)" ;       44 
/*CHARS_CYRILLIC_UPPER_LETTER_N_RU   */; > ;
+            < "а, б, .., аа, бб, ... (Russian)" ;       45 
/*CHARS_CYRILLIC_LOWER_LETTER_N_RU   */; > ;
+            < "А, Б, .., Аа, Аб, ... (Serbian)" ;       48 
/*CHARS_CYRILLIC_UPPER_LETTER_SR     */; > ;
+            < "а, б, .., аа, аб, ... (Serbian)" ;       49 
/*CHARS_CYRILLIC_LOWER_LETTER_SR     */; > ;
+            < "А, Б, .., Аа, Бб, ... (Serbian)" ;       50 
/*CHARS_CYRILLIC_UPPER_LETTER_N_SR   */; > ;
+            < "а, б, .., аа, бб, ... (Serbian)" ;       51 
/*CHARS_CYRILLIC_LOWER_LETTER_N_SR   */; > ;
+            < "Α, Β, Γ, ... (Greek Upper Letter)";       52 
/*CHARS_GREEK_UPPER_LETTER           */; > ;
+            < "α, β, γ, ... (Greek Lower Letter)";       53 
/*CHARS_GREEK_LOWER_LETTER           */; > ;
         };
     };
     FixedText FT_TBL_ALIGN
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to