Kaydet (Commit) afad4eea authored tarafından Michael Stahl's avatar Michael Stahl

svtools: FontList loops with > 2^16 fonts

Change-Id: Idfe5d76ee384dff3280f81686cbf408c2f675dc6
üst 8d10c237
......@@ -127,9 +127,6 @@ You should thus not reference the array after the next method call on the
FontList.
*/
#define FONTLIST_FONTINFO_NOTFOUND ((sal_uInt16)0xFFFF)
class SVT_DLLPUBLIC FontList
{
private:
......@@ -182,11 +179,11 @@ public:
FontItalic eItalic ) const;
bool IsAvailable( const OUString& rName ) const;
sal_uInt16 GetFontNameCount() const
size_t GetFontNameCount() const
{
return (sal_uInt16)m_Entries.size();
return m_Entries.size();
}
const FontMetric& GetFontName( sal_uInt16 nFont ) const;
const FontMetric& GetFontName(size_t nFont) const;
sal_Handle GetFirstFontMetric( const OUString& rName ) const;
static sal_Handle GetNextFontMetric( sal_Handle hFontMetric );
static const FontMetric& GetFontMetric( sal_Handle hFontMetric );
......
......@@ -249,9 +249,8 @@ void FontList::ImplInsertFonts( OutputDevice* pDevice, bool bAll,
nType = FontListFontNameType::PRINTER;
// inquire all fonts from the device
int n = pDevice->GetDevFontCount();
sal_uInt16 i;
for( i = 0; i < n; i++ )
int const n = pDevice->GetDevFontCount();
for (int i = 0; i < n; ++i)
{
FontMetric aFontMetric = pDevice->GetDevFont( i );
......@@ -387,7 +386,7 @@ FontList::~FontList()
FontList* FontList::Clone() const
{
FontList* pReturn = new FontList(
mpDev, mpDev2, GetFontNameCount() == mpDev->GetDevFontCount());
mpDev, mpDev2, sal::static_int_cast<int>(GetFontNameCount()) == mpDev->GetDevFontCount());
return pReturn;
}
......@@ -696,7 +695,7 @@ bool FontList::IsAvailable(const OUString& rName) const
return (ImplFindByName( rName ) != nullptr);
}
const FontMetric& FontList::GetFontName( sal_uInt16 nFont ) const
const FontMetric& FontList::GetFontName(size_t const nFont) const
{
DBG_ASSERT( nFont < GetFontNameCount(), "FontList::GetFontName(): nFont >= Count" );
......@@ -752,11 +751,10 @@ const sal_IntPtr* FontList::GetSizeAry( const FontMetric& rInfo ) const
MapMode aMap( MAP_10TH_INCH, Point(), Fraction( 1, 72 ), Fraction( 1, 72 ) );
pDevice->SetMapMode( aMap );
sal_uInt16 i;
sal_uInt16 nRealCount = 0;
int nRealCount = 0;
long nOldHeight = 0;
const_cast<FontList*>(this)->mpSizeAry = new sal_IntPtr[nDevSizeCount+1];
for ( i = 0; i < nDevSizeCount; i++ )
for (int i = 0; i < nDevSizeCount; ++i)
{
Size aSize = pDevice->GetDevFontSize( rInfo, i );
if ( aSize.Height() != nOldHeight )
......
......@@ -54,8 +54,8 @@ void FontNameMenu::Fill( const FontList* pList )
const vcl::I18nHelper& rI18nHelper = Application::GetSettings().GetUILocaleI18nHelper();
// more than 100 fonts reduces the speed of opening the menu.
// So only the first 100 fonts will be displayed.
sal_uInt16 nFontCount = ::std::min( pList->GetFontNameCount(), static_cast< sal_uInt16 >(100) );
for (sal_uInt16 i = 0; i < nFontCount; ++i)
size_t nFontCount = ::std::min<size_t>(pList->GetFontNameCount(), 100);
for (size_t i = 0; i < nFontCount; ++i)
{
const OUString& rName = pList->GetFontName( i ).GetFamilyName();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment