fixed suppressing of wxFontMapper questions which was broken by GUI/base separation changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -141,6 +141,13 @@ protected:
|
||||
wxString m_configRootPath;
|
||||
#endif // wxUSE_CONFIG
|
||||
|
||||
// the real implementation of the base class version of CharsetToEncoding()
|
||||
//
|
||||
// returns wxFONTENCODING_UNKNOWN if encoding is unknown and we shouldn't
|
||||
// ask the user about it, wxFONTENCODING_SYSTEM if it is unknown but we
|
||||
// should/could ask the user
|
||||
int NonInteractiveCharsetToEncoding(const wxString& charset);
|
||||
|
||||
private:
|
||||
// the global fontmapper object or NULL
|
||||
static wxFontMapper *sm_instance;
|
||||
|
@@ -362,6 +362,20 @@ void wxFontMapperBase::RestorePath(const wxString& pathOld)
|
||||
wxFontEncoding
|
||||
wxFontMapperBase::CharsetToEncoding(const wxString& charset,
|
||||
bool WXUNUSED(interactive))
|
||||
{
|
||||
int enc = NonInteractiveCharsetToEncoding(charset);
|
||||
if ( enc == wxFONTENCODING_UNKNOWN )
|
||||
{
|
||||
// we should return wxFONTENCODING_SYSTEM from here for unknown
|
||||
// encodings
|
||||
enc = wxFONTENCODING_SYSTEM;
|
||||
}
|
||||
|
||||
return (wxFontEncoding)enc;
|
||||
}
|
||||
|
||||
int
|
||||
wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset)
|
||||
{
|
||||
wxFontEncoding encoding = wxFONTENCODING_SYSTEM;
|
||||
|
||||
@@ -382,7 +396,7 @@ wxFontMapperBase::CharsetToEncoding(const wxString& charset,
|
||||
if ( value == wxFONTENCODING_UNKNOWN )
|
||||
{
|
||||
// don't try to find it, in particular don't ask the user
|
||||
return wxFONTENCODING_SYSTEM;
|
||||
return value;
|
||||
}
|
||||
|
||||
if ( value >= 0 && value <= wxFONTENCODING_MAX )
|
||||
|
@@ -108,11 +108,16 @@ wxFontEncoding
|
||||
wxFontMapper::CharsetToEncoding(const wxString& charset, bool interactive)
|
||||
{
|
||||
// try the ways not needing the users intervention first
|
||||
wxFontEncoding
|
||||
encoding = wxFontMapperBase::CharsetToEncoding(charset, interactive);
|
||||
int encoding = wxFontMapperBase::NonInteractiveCharsetToEncoding(charset);
|
||||
|
||||
// if we failed to find the encoding, ask the user -- unless disabled
|
||||
if ( (encoding == wxFONTENCODING_SYSTEM) && interactive )
|
||||
if ( encoding == wxFONTENCODING_UNKNOWN )
|
||||
{
|
||||
// this is the special value which disables asking the user (he had
|
||||
// chosen to suppress this the last time)
|
||||
encoding = wxFONTENCODING_SYSTEM;
|
||||
}
|
||||
else if ( (encoding == wxFONTENCODING_SYSTEM) && interactive )
|
||||
{
|
||||
// prepare the dialog data
|
||||
|
||||
@@ -171,7 +176,7 @@ wxFontMapper::CharsetToEncoding(const wxString& charset, bool interactive)
|
||||
#endif // wxUSE_CONFIG
|
||||
}
|
||||
|
||||
return encoding;
|
||||
return (wxFontEncoding)encoding;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user