author | zautrix <zautrix> | 2004-10-20 11:04:17 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-20 11:04:17 (UTC) |
commit | c45d38a1574bcb53e1b0fd0dc4987cb725d430c0 (patch) (side-by-side diff) | |
tree | 22f1ee07fc4002c49867d5dd36690e54cfe21276 | |
parent | f6f5f5cfcaa38f3e2bf36d8466b2b44ba7b3fb28 (diff) | |
download | kdepimpi-c45d38a1574bcb53e1b0fd0dc4987cb725d430c0.zip kdepimpi-c45d38a1574bcb53e1b0fd0dc4987cb725d430c0.tar.gz kdepimpi-c45d38a1574bcb53e1b0fd0dc4987cb725d430c0.tar.bz2 |
fixed umlaute sort order
-rw-r--r-- | kaddressbook/views/contactlistview.cpp | 28 | ||||
-rw-r--r-- | microkde/kdecore/klocale.cpp | 4 | ||||
-rw-r--r-- | microkde/kdecore/klocale.h | 1 |
3 files changed, 32 insertions, 1 deletions
diff --git a/kaddressbook/views/contactlistview.cpp b/kaddressbook/views/contactlistview.cpp index 4cc22ea..c74f8cf 100644 --- a/kaddressbook/views/contactlistview.cpp +++ b/kaddressbook/views/contactlistview.cpp @@ -167,9 +167,35 @@ ContactListViewItem::ContactListViewItem(const KABC::Addressee &a, } QString ContactListViewItem::key(int column, bool ascending) const { - return QListViewItem::key(column, ascending).lower(); + int lan = KGlobal::locale()->language(); + //qDebug("language %d ", lan); + if ( lan == 1 ) { //GERMAN + QString ret = QListViewItem::key(column, ascending).utf8(); + int start = -1; + while ( (start = ret.find( 'ä', start+1)) > 0 ) { + ret.at(start-1) = 'a'; + } + start = -1; + while ( (start = ret.find( 'ö', start+1)) > 0 ) { + ret.at(start-1) = 'o'; + } + start = -1; + while ( (start = ret.find( 'ü', start+1)) > 0 ) { + ret.at(start-1) = 'o'; + } + start = -1; + while ( (start = ret.find( 'ß', start+1)) > 0 ) { + ret.at(start-1) = 's'; + } + //qDebug("conv string %s ", ret.latin1()); + + return ret; + + } + else + return QListViewItem::key(column, ascending).lower(); } void ContactListViewItem::paintCell(QPainter * p, const QColorGroup & cg, diff --git a/microkde/kdecore/klocale.cpp b/microkde/kdecore/klocale.cpp index 673d845..3674f28 100644 --- a/microkde/kdecore/klocale.cpp +++ b/microkde/kdecore/klocale.cpp @@ -163,8 +163,12 @@ void KLocale::setIntTimeFormat( KLocale::IntDateFormat i ) void KLocale::setLanguage( int i ) { mLanguage = i; } +int KLocale::language( ) +{ + return mLanguage; +} QString KLocale::translate( const char *index ) const { return i18n( index ); } diff --git a/microkde/kdecore/klocale.h b/microkde/kdecore/klocale.h index be9442c..14660d6 100644 --- a/microkde/kdecore/klocale.h +++ b/microkde/kdecore/klocale.h @@ -79,8 +79,9 @@ class KLocale void setIntTimeFormat( IntDateFormat ); IntDateFormat getIntDateFormat( ); IntDateFormat getIntTimeFormat( ); void setLanguage( int ); + int language(); void setDateFormat( QString ); void setDateFormatShort( QString ); QString m_decimalSymbol; |