Public Member Functions | List of all members
QLatin1Codec Class Reference
Inheritance diagram for QLatin1Codec:
QTextCodec

Public Member Functions

 QLatin1Codec ()
 
 ~QLatin1Codec ()
 
QString toUnicode (const char *chars, int len) const
 
QCString fromUnicode (const QString &uc, int &lenInOut) const
 
const char * name () const
 
int mibEnum () const
 
int heuristicContentMatch (const char *chars, int len) const
 
int heuristicNameMatch (const char *hint) const
 
- Public Member Functions inherited from QTextCodec
virtual ~QTextCodec ()
 
virtual QTextDecodermakeDecoder () const
 
virtual QTextEncodermakeEncoder () const
 
QCString fromUnicode (const QString &uc) const
 
QString toUnicode (const QByteArray &, int len) const
 
QString toUnicode (const QByteArray &) const
 
QString toUnicode (const char *chars) const
 
virtual bool canEncode (QChar) const
 
virtual bool canEncode (const QString &) const
 

Additional Inherited Members

- Static Public Member Functions inherited from QTextCodec
static QTextCodecloadCharmap (QIODevice *)
 
static QTextCodecloadCharmapFile (QString filename)
 
static QTextCodeccodecForMib (int mib)
 
static QTextCodeccodecForName (const char *hint, int accuracy=0)
 
static QTextCodeccodecForContent (const char *chars, int len)
 
static QTextCodeccodecForIndex (int i)
 
static QTextCodeccodecForLocale ()
 
static void deleteAllCodecs ()
 
static const char * locale ()
 
- Protected Member Functions inherited from QTextCodec
 QTextCodec ()
 
- Static Protected Member Functions inherited from QTextCodec
static int simpleHeuristicNameMatch (const char *name, const char *hint)
 

Detailed Description

Definition at line 1953 of file qtextcodec.cpp.

Constructor & Destructor Documentation

QLatin1Codec::QLatin1Codec ( )

Definition at line 1974 of file qtextcodec.cpp.

1975  : QTextCodec()
1976 {
1977 }
QLatin1Codec::~QLatin1Codec ( )

Definition at line 1980 of file qtextcodec.cpp.

1981 {
1982 }

Member Function Documentation

QCString QLatin1Codec::fromUnicode ( const QString uc,
int &  lenInOut 
) const
virtual

Subclasses of QTextCodec must reimplement either this function or makeEncoder(). It converts the first lenInOut characters of uc from Unicode to the encoding of the subclass. If lenInOut is negative or too large, the length of uc is used instead.

The value returned is the property of the caller, which is responsible for deleting it with "delete []". The length of the resulting Unicode character sequence is returned in lenInOut.

The default implementation makes an encoder with makeEncoder() and converts the input with that. Note that the default makeEncoder() implementation makes an encoder that simply calls this function, hence subclasses must reimplement one function or the other to avoid infinite recursion.

Reimplemented from QTextCodec.

Definition at line 1994 of file qtextcodec.cpp.

1995 {
1996  if ( len <0 || len > (int)uc.length() )
1997  len = uc.length();
1998  QCString r( len+1 );
1999  int i = 0;
2000  const QChar *ch = uc.unicode();
2001  while ( i < len ) {
2002  r[i] = ch->row() ? '?' : ch->cell();
2003  i++;
2004  ch++;
2005  }
2006  r[len] = 0;
2007  return r;
2008 }
const QChar * unicode() const
Definition: qstring.h:508
The QChar class provides a light-weight Unicode character.
Definition: qstring.h:56
uchar & cell()
Definition: qstring.h:167
uint length() const
Definition: qstring.h:679
uchar & row()
Definition: qstring.h:168
int QLatin1Codec::heuristicContentMatch ( const char *  chars,
int  len 
) const
virtual

Subclasses of QTextCodec must reimplement this function. It examines the first len bytes of chars and returns a value indicating how likely it is that the string is a prefix of text encoded in the encoding of the subclass. Any negative return value indicates that the text is detectably not in the encoding (eg. it contains undefined characters). A return value of 0 indicates that the text should be decoded with this codec rather than as ASCII, but there is no particular evidence. The value should range up to len. Thus, most decoders will return -1, 0, or -len.

The characters are not null terminated.

See also
codecForContent().

Implements QTextCodec.

Definition at line 2027 of file qtextcodec.cpp.

2028 {
2029  if ( len<1 || !chars )
2030  return -1;
2031  int i = 0;
2032  const uchar * c = (const unsigned char *)chars;
2033  int r = 0;
2034  while( i<len && c && *c ) {
2035  if ( *c >= 0x80 && *c < 0xa0 )
2036  return -1;
2037  if ( (*c >= ' ' && *c < 127) ||
2038  *c == '\n' || *c == '\t' || *c == '\r' )
2039  r++;
2040  i++;
2041  c++;
2042  }
2043  return r;
2044 }
unsigned char uchar
Definition: nybbler.cc:11
int QLatin1Codec::heuristicNameMatch ( const char *  hint) const
virtual

Returns a value indicating how likely this decoder is for decoding some format that has the given name.

A good match returns a positive number around the length of the string. A bad match is negative.

The default implementation calls simpleHeuristicNameMatch() with the name of the codec.

Reimplemented from QTextCodec.

Definition at line 2022 of file qtextcodec.cpp.

2023 {
2024  return QTextCodec::heuristicNameMatch(hint);
2025 }
virtual int heuristicNameMatch(const char *hint) const
Definition: qtextcodec.cpp:277
int QLatin1Codec::mibEnum ( ) const
virtual

Subclasses of QTextCodec must reimplement this function. It returns the MIBenum (see the IANA character-sets encoding file for more information). It is important that each QTextCodec subclass return the correct unique value for this function.

Implements QTextCodec.

Definition at line 2017 of file qtextcodec.cpp.

2018 {
2019  return 4;
2020 }
const char * QLatin1Codec::name ( ) const
virtual

Subclasses of QTextCodec must reimplement this function. It returns the name of the encoding supported by the subclass. When choosing a name for an encoding, consider these points:

  • On X11, heuristicNameMatch( const char * hint ) is used to test if a the QTextCodec can convert between Unicode and the encoding of a font with encoding hint, such as "iso8859-1" for Latin-1 fonts, "koi8-r" for Russian KOI8 fonts. The default algorithm of heuristicNameMatch() uses name().
  • Some applications may use this function to present encodings to the end user.

Implements QTextCodec.

Definition at line 2011 of file qtextcodec.cpp.

2012 {
2013  return "ISO 8859-1";
2014 }
QString QLatin1Codec::toUnicode ( const char *  chars,
int  len 
) const
virtual

Subclasses of QTextCodec must reimplement this function or makeDecoder(). It converts the first len characters of chars to Unicode.

The default implementation makes a decoder with makeDecoder() and converts the input with that. Note that the default makeDecoder() implementation makes a decoder that simply calls this function, hence subclasses must reimplement one function or the other to avoid infinite recursion.

Reimplemented from QTextCodec.

Definition at line 1985 of file qtextcodec.cpp.

1986 {
1987  if(len <= 0)
1988  return QString::null;
1989 
1990  return QString::fromLatin1(chars, len);
1991 }
static QString fromLatin1(const char *, int len=-1)
Definition: qstring.cpp:14539
static const Null null
Definition: qstring.h:376

The documentation for this class was generated from the following file: