[Libreoffice-commits] .: 2 commits - cui/source
Eike Rathke
erack at kemper.freedesktop.org
Fri Jun 29 11:07:24 PDT 2012
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 <erack at 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 <fmalotaibi at 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
More information about the Libreoffice-commits
mailing list