mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 02:42:48 +00:00
kdecore: remove KLocale getters related to text codec
see the comment in KLocalePrivate::initEncoding() Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
484f96e12e
commit
894a2d52bb
8 changed files with 5 additions and 225 deletions
|
@ -941,22 +941,7 @@ QString KUrl::toMimeDataString() const // don't fold this into populateMimeData,
|
||||||
{
|
{
|
||||||
if ( isLocalFile() )
|
if ( isLocalFile() )
|
||||||
{
|
{
|
||||||
#if 1
|
|
||||||
return url();
|
return url();
|
||||||
#else
|
|
||||||
// According to the XDND spec, file:/ URLs for DND must have
|
|
||||||
// the hostname part. But in really it just breaks many apps,
|
|
||||||
// so it's disabled for now.
|
|
||||||
const QString s = url( 0, KGlobal::locale()->fileEncodingMib() );
|
|
||||||
if( !s.startsWith( QLatin1String ( "file://" ) ))
|
|
||||||
{
|
|
||||||
QString hostname = QHostInfo::localHostName();
|
|
||||||
if ( !hostname.isEmpty() )
|
|
||||||
{
|
|
||||||
return QString( "file://" ) + hostname + s.mid( 5 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasPass()) {
|
if (hasPass()) {
|
||||||
|
|
|
@ -165,7 +165,6 @@ KLocale *KGlobal::locale()
|
||||||
d->locale = 0;
|
d->locale = 0;
|
||||||
d->locale = new KLocale(mainComponent().catalogName());
|
d->locale = new KLocale(mainComponent().catalogName());
|
||||||
d->localeIsFromFakeComponent = !d->mainComponent.isValid();
|
d->localeIsFromFakeComponent = !d->mainComponent.isValid();
|
||||||
QTextCodec::setCodecForLocale(d->locale->codecForEncoding());
|
|
||||||
mainComponent().aboutData()->translateInternalProgramName();
|
mainComponent().aboutData()->translateInternalProgramName();
|
||||||
QCoreApplication* coreApp = QCoreApplication::instance();
|
QCoreApplication* coreApp = QCoreApplication::instance();
|
||||||
if (coreApp) { // testcase: kwrite --help: no qcore app
|
if (coreApp) { // testcase: kwrite --help: no qcore app
|
||||||
|
|
|
@ -345,7 +345,7 @@ QTextCodec *KCharsets::codecForNameOrNull( const QByteArray& n ) const
|
||||||
// No name, assume locale (KDE's, not Qt's)
|
// No name, assume locale (KDE's, not Qt's)
|
||||||
if ( d->codecForNameDict.contains( kSystemEncoding ) )
|
if ( d->codecForNameDict.contains( kSystemEncoding ) )
|
||||||
return d->codecForNameDict.value( kSystemEncoding );
|
return d->codecForNameDict.value( kSystemEncoding );
|
||||||
QTextCodec* codec = KGlobal::locale()->codecForEncoding();
|
QTextCodec* codec = QTextCodec::codecForLocale();
|
||||||
d->codecForNameDict.insert(kSystemEncoding, codec);
|
d->codecForNameDict.insert(kSystemEncoding, codec);
|
||||||
return codec;
|
return codec;
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,31 +478,6 @@ QString KLocale::defaultCountry()
|
||||||
return KLocalePrivate::defaultCountry();
|
return KLocalePrivate::defaultCountry();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QByteArray KLocale::encoding() const
|
|
||||||
{
|
|
||||||
return d->encoding();
|
|
||||||
}
|
|
||||||
|
|
||||||
int KLocale::encodingMib() const
|
|
||||||
{
|
|
||||||
return d->encodingMib();
|
|
||||||
}
|
|
||||||
|
|
||||||
int KLocale::fileEncodingMib() const
|
|
||||||
{
|
|
||||||
return d->fileEncodingMib();
|
|
||||||
}
|
|
||||||
|
|
||||||
QTextCodec *KLocale::codecForEncoding() const
|
|
||||||
{
|
|
||||||
return d->codecForEncoding();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool KLocale::setEncoding(int mibEnum)
|
|
||||||
{
|
|
||||||
return d->setEncoding(mibEnum);
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList KLocale::allLanguagesList() const
|
QStringList KLocale::allLanguagesList() const
|
||||||
{
|
{
|
||||||
return d->allLanguagesList();
|
return d->allLanguagesList();
|
||||||
|
|
|
@ -1238,46 +1238,6 @@ public:
|
||||||
*/
|
*/
|
||||||
QStringList languageList() const;
|
QStringList languageList() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the user's preferred encoding.
|
|
||||||
*
|
|
||||||
* @return The name of the preferred encoding
|
|
||||||
*
|
|
||||||
* @see codecForEncoding
|
|
||||||
* @see encodingMib
|
|
||||||
*/
|
|
||||||
const QByteArray encoding() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the user's preferred encoding.
|
|
||||||
*
|
|
||||||
* @return The Mib of the preferred encoding
|
|
||||||
*
|
|
||||||
* @see encoding
|
|
||||||
* @see codecForEncoding
|
|
||||||
*/
|
|
||||||
int encodingMib() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the user's preferred encoding. Should never be NULL.
|
|
||||||
*
|
|
||||||
* @return The codec for the preferred encoding
|
|
||||||
*
|
|
||||||
* @see encoding
|
|
||||||
* @see encodingMib
|
|
||||||
*/
|
|
||||||
QTextCodec * codecForEncoding() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the file encoding.
|
|
||||||
*
|
|
||||||
* @return The Mib of the file encoding
|
|
||||||
*
|
|
||||||
* @see QFile::encodeName
|
|
||||||
* @see QFile::decodeName
|
|
||||||
*/
|
|
||||||
int fileEncodingMib() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes the current date format.
|
* Changes the current date format.
|
||||||
*
|
*
|
||||||
|
|
|
@ -99,8 +99,7 @@ KLocalePrivate::KLocalePrivate(KLocale *q_ptr, const QString &catalogName, KShar
|
||||||
m_language(QString()),
|
m_language(QString()),
|
||||||
m_languages(0),
|
m_languages(0),
|
||||||
m_catalogName(QString()),
|
m_catalogName(QString()),
|
||||||
m_calendar(0),
|
m_calendar(0)
|
||||||
m_codecForEncoding(0)
|
|
||||||
{
|
{
|
||||||
init(catalogName, QString(), QString(), config, 0);
|
init(catalogName, QString(), QString(), config, 0);
|
||||||
}
|
}
|
||||||
|
@ -113,8 +112,7 @@ KLocalePrivate::KLocalePrivate(KLocale *q_ptr, const QString& catalogName,
|
||||||
m_language(QString()),
|
m_language(QString()),
|
||||||
m_languages(0),
|
m_languages(0),
|
||||||
m_catalogName(QString()),
|
m_catalogName(QString()),
|
||||||
m_calendar(0),
|
m_calendar(0)
|
||||||
m_codecForEncoding(0)
|
|
||||||
{
|
{
|
||||||
init(catalogName, language, country, KSharedConfig::Ptr(), config);
|
init(catalogName, language, country, KSharedConfig::Ptr(), config);
|
||||||
}
|
}
|
||||||
|
@ -196,11 +194,6 @@ void KLocalePrivate::copy(const KLocalePrivate &rhs)
|
||||||
m_byteSizeFmt = rhs.m_byteSizeFmt;
|
m_byteSizeFmt = rhs.m_byteSizeFmt;
|
||||||
m_pageSize = rhs.m_pageSize;
|
m_pageSize = rhs.m_pageSize;
|
||||||
m_measureSystem = rhs.m_measureSystem;
|
m_measureSystem = rhs.m_measureSystem;
|
||||||
|
|
||||||
// Encoding settings
|
|
||||||
m_encoding = rhs.m_encoding;
|
|
||||||
m_codecForEncoding = rhs.m_codecForEncoding;
|
|
||||||
m_utf8FileEncoding = rhs.m_utf8FileEncoding;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KLocalePrivate::~KLocalePrivate()
|
KLocalePrivate::~KLocalePrivate()
|
||||||
|
@ -240,8 +233,6 @@ void KLocalePrivate::init(const QString& catalogName, const QString &language, c
|
||||||
useEnvironmentVariables = false;
|
useEnvironmentVariables = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
initEncoding();
|
|
||||||
initFileNameEncoding();
|
|
||||||
initCountry(country, cg.readEntry(QLatin1String("Country")));
|
initCountry(country, cg.readEntry(QLatin1String("Country")));
|
||||||
initLanguageList(language, cg.readEntry(QLatin1String("Language")), useEnvironmentVariables);
|
initLanguageList(language, cg.readEntry(QLatin1String("Language")), useEnvironmentVariables);
|
||||||
// Now that we have a language, we can set up the config which uses it to setLocale()
|
// Now that we have a language, we can set up the config which uses it to setLocale()
|
||||||
|
@ -2237,49 +2228,6 @@ bool KLocalePrivate::useDefaultLanguage() const
|
||||||
return language() == KLocale::defaultLanguage();
|
return language() == KLocale::defaultLanguage();
|
||||||
}
|
}
|
||||||
|
|
||||||
void KLocalePrivate::initEncoding()
|
|
||||||
{
|
|
||||||
m_codecForEncoding = 0;
|
|
||||||
|
|
||||||
// This all made more sense when we still had the EncodingEnum config key.
|
|
||||||
setEncoding(QTextCodec::codecForLocale()->mibEnum());
|
|
||||||
|
|
||||||
if (!m_codecForEncoding) {
|
|
||||||
kWarning() << "Cannot resolve system encoding, defaulting to ISO 8859-1.";
|
|
||||||
const int mibDefault = 4; // ISO 8859-1
|
|
||||||
setEncoding(mibDefault);
|
|
||||||
}
|
|
||||||
|
|
||||||
Q_ASSERT(m_codecForEncoding);
|
|
||||||
}
|
|
||||||
|
|
||||||
void KLocalePrivate::initFileNameEncoding()
|
|
||||||
{
|
|
||||||
// If the following environment variable is set, assume all filenames
|
|
||||||
// are in UTF-8 regardless of the current C locale.
|
|
||||||
m_utf8FileEncoding = !qgetenv("KDE_UTF8_FILENAMES").isEmpty();
|
|
||||||
if (!m_utf8FileEncoding) {
|
|
||||||
const QByteArray ctype = setlocale(LC_CTYPE, 0);
|
|
||||||
if (ctype.endsWith("UTF-8")) {
|
|
||||||
m_utf8FileEncoding = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
QByteArray lang = qgetenv("LC_ALL");
|
|
||||||
if (lang.isEmpty()) {
|
|
||||||
lang = qgetenv("LC_CTYPE");
|
|
||||||
}
|
|
||||||
if (lang.isEmpty()) {
|
|
||||||
lang = qgetenv("LANG");
|
|
||||||
}
|
|
||||||
if (lang.endsWith("UTF-8")) {
|
|
||||||
m_utf8FileEncoding = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Otherwise, stay with QFile's default filename encoding functions
|
|
||||||
// which, on Unix platforms, use the locale's codec.
|
|
||||||
}
|
|
||||||
|
|
||||||
void KLocalePrivate::setDateFormat(const QString &format)
|
void KLocalePrivate::setDateFormat(const QString &format)
|
||||||
{
|
{
|
||||||
m_dateFormat = format.trimmed();
|
m_dateFormat = format.trimmed();
|
||||||
|
@ -2406,39 +2354,6 @@ QString KLocalePrivate::defaultCountry()
|
||||||
return QString::fromLatin1("C");
|
return QString::fromLatin1("C");
|
||||||
}
|
}
|
||||||
|
|
||||||
const QByteArray KLocalePrivate::encoding() const
|
|
||||||
{
|
|
||||||
return codecForEncoding()->name();
|
|
||||||
}
|
|
||||||
|
|
||||||
int KLocalePrivate::encodingMib() const
|
|
||||||
{
|
|
||||||
return codecForEncoding()->mibEnum();
|
|
||||||
}
|
|
||||||
|
|
||||||
int KLocalePrivate::fileEncodingMib() const
|
|
||||||
{
|
|
||||||
if (m_utf8FileEncoding) {
|
|
||||||
return 106;
|
|
||||||
}
|
|
||||||
return codecForEncoding()->mibEnum();
|
|
||||||
}
|
|
||||||
|
|
||||||
QTextCodec *KLocalePrivate::codecForEncoding() const
|
|
||||||
{
|
|
||||||
return m_codecForEncoding;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool KLocalePrivate::setEncoding(int mibEnum)
|
|
||||||
{
|
|
||||||
QTextCodec * codec = QTextCodec::codecForMib(mibEnum);
|
|
||||||
if (codec) {
|
|
||||||
m_codecForEncoding = codec;
|
|
||||||
}
|
|
||||||
|
|
||||||
return codec != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList KLocalePrivate::allLanguagesList()
|
QStringList KLocalePrivate::allLanguagesList()
|
||||||
{
|
{
|
||||||
if (!m_languages) {
|
if (!m_languages) {
|
||||||
|
|
|
@ -845,55 +845,6 @@ public:
|
||||||
*/
|
*/
|
||||||
KLocale::MeasureSystem measureSystem() const;
|
KLocale::MeasureSystem measureSystem() const;
|
||||||
|
|
||||||
/***************************
|
|
||||||
** Encoding settings **
|
|
||||||
***************************/
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Figures out which encoding the user prefers.
|
|
||||||
*/
|
|
||||||
void initEncoding();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Figures out which encoding the user prefers for filenames
|
|
||||||
* and sets up the appropriate QFile encoding and decoding functions.
|
|
||||||
*/
|
|
||||||
void initFileNameEncoding();
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Sets the current encoding
|
|
||||||
* The worker of the same-name KLocale API function.
|
|
||||||
*/
|
|
||||||
bool setEncoding(int mibEnum);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Returns the user's preferred encoding.
|
|
||||||
* The worker of the same-name KLocale API function.
|
|
||||||
*/
|
|
||||||
const QByteArray encoding() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Returns the user's preferred encoding.
|
|
||||||
* The worker of the same-name KLocale API function.
|
|
||||||
*/
|
|
||||||
int encodingMib() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Returns the file encoding.
|
|
||||||
* The worker of the same-name KLocale API function.
|
|
||||||
*/
|
|
||||||
int fileEncodingMib() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @internal Returns the user's preferred encoding.
|
|
||||||
* The worker of the same-name KLocale API function.
|
|
||||||
*/
|
|
||||||
QTextCodec *codecForEncoding() const;
|
|
||||||
|
|
||||||
/***************************
|
/***************************
|
||||||
** Utilities **
|
** Utilities **
|
||||||
***************************/
|
***************************/
|
||||||
|
@ -992,11 +943,6 @@ private:
|
||||||
QList<QString> m_byteSizeFmt;
|
QList<QString> m_byteSizeFmt;
|
||||||
int m_pageSize;
|
int m_pageSize;
|
||||||
KLocale::MeasureSystem m_measureSystem;
|
KLocale::MeasureSystem m_measureSystem;
|
||||||
|
|
||||||
// Encoding settings
|
|
||||||
QString m_encoding;
|
|
||||||
QTextCodec *m_codecForEncoding;
|
|
||||||
bool m_utf8FileEncoding;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* KLOCALE_P_H */
|
#endif /* KLOCALE_P_H */
|
||||||
|
|
|
@ -50,8 +50,8 @@ KEncodingFileDialog::KEncodingFileDialog(const QString& startDir, const QString&
|
||||||
|
|
||||||
d->encoding->clear ();
|
d->encoding->clear ();
|
||||||
QString sEncoding = encoding;
|
QString sEncoding = encoding;
|
||||||
QString systemEncoding = QLatin1String(KGlobal::locale()->encoding());
|
QByteArray systemEncoding = QTextCodec::codecForLocale()->name();
|
||||||
if (sEncoding.isEmpty() || sEncoding == "System")
|
if (sEncoding.isEmpty() || sEncoding == QLatin1String("System"))
|
||||||
sEncoding = systemEncoding;
|
sEncoding = systemEncoding;
|
||||||
|
|
||||||
const QStringList encodings (KGlobal::charsets()->availableEncodingNames());
|
const QStringList encodings (KGlobal::charsets()->availableEncodingNames());
|
||||||
|
|
Loading…
Add table
Reference in a new issue