Fixed a problem with unrecognised paper id conversions

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2009-05-20 11:56:49 +00:00
parent 86c30bc557
commit 186b445c7f

View File

@@ -246,12 +246,16 @@ wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(const wxString& name)
wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(wxPaperSize id) wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(wxPaperSize id)
{ {
typedef wxStringToPrintPaperTypeHashMap::iterator iterator; // Take the item ordering into account so that the more common types
// are likely to be taken into account first. This fixes problems with,
for (iterator it = m_map->begin(), en = m_map->end(); it != en; ++it) // for example, Letter reverting to A4 in the page setup dialog because
// it was wrongly translated to Note.
size_t i;
for (i = 0; i < GetCount(); i++)
{ {
wxPrintPaperType* paperType = it->second; wxPrintPaperType* paperType = Item(i);
if (paperType->GetId() == id) wxSize paperSize = paperType->GetSize() ;
if ( abs( paperSize.x - sz.x ) < 10 && abs( paperSize.y - sz.y ) < 10 )
return paperType; return paperType;
} }