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;
|
wxString m_configRootPath;
|
||||||
#endif // wxUSE_CONFIG
|
#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:
|
private:
|
||||||
// the global fontmapper object or NULL
|
// the global fontmapper object or NULL
|
||||||
static wxFontMapper *sm_instance;
|
static wxFontMapper *sm_instance;
|
||||||
|
@@ -362,6 +362,20 @@ void wxFontMapperBase::RestorePath(const wxString& pathOld)
|
|||||||
wxFontEncoding
|
wxFontEncoding
|
||||||
wxFontMapperBase::CharsetToEncoding(const wxString& charset,
|
wxFontMapperBase::CharsetToEncoding(const wxString& charset,
|
||||||
bool WXUNUSED(interactive))
|
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;
|
wxFontEncoding encoding = wxFONTENCODING_SYSTEM;
|
||||||
|
|
||||||
@@ -382,7 +396,7 @@ wxFontMapperBase::CharsetToEncoding(const wxString& charset,
|
|||||||
if ( value == wxFONTENCODING_UNKNOWN )
|
if ( value == wxFONTENCODING_UNKNOWN )
|
||||||
{
|
{
|
||||||
// don't try to find it, in particular don't ask the user
|
// don't try to find it, in particular don't ask the user
|
||||||
return wxFONTENCODING_SYSTEM;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( value >= 0 && value <= wxFONTENCODING_MAX )
|
if ( value >= 0 && value <= wxFONTENCODING_MAX )
|
||||||
|
@@ -108,11 +108,16 @@ wxFontEncoding
|
|||||||
wxFontMapper::CharsetToEncoding(const wxString& charset, bool interactive)
|
wxFontMapper::CharsetToEncoding(const wxString& charset, bool interactive)
|
||||||
{
|
{
|
||||||
// try the ways not needing the users intervention first
|
// try the ways not needing the users intervention first
|
||||||
wxFontEncoding
|
int encoding = wxFontMapperBase::NonInteractiveCharsetToEncoding(charset);
|
||||||
encoding = wxFontMapperBase::CharsetToEncoding(charset, interactive);
|
|
||||||
|
|
||||||
// if we failed to find the encoding, ask the user -- unless disabled
|
// 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
|
// prepare the dialog data
|
||||||
|
|
||||||
@@ -171,7 +176,7 @@ wxFontMapper::CharsetToEncoding(const wxString& charset, bool interactive)
|
|||||||
#endif // wxUSE_CONFIG
|
#endif // wxUSE_CONFIG
|
||||||
}
|
}
|
||||||
|
|
||||||
return encoding;
|
return (wxFontEncoding)encoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user