[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kde4/kdelibs/kdecore
From:       Mickael Marchand <marchand () kde ! org>
Date:       2005-05-12 18:49:06
Message-ID: 1115923746.853630.30826.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 412829 by marchand:

finally it compiles ...
s,Q3AsciiDict,QHash,



 M  +12 -8     branches/work/kde4/kdelibs/kdecore/kcharsets.cpp  


--- branches/work/kde4/kdelibs/kdecore/kcharsets.cpp #412828:412829
@@ -35,7 +35,7 @@
 #include <q3cstring.h>
 
 #include <assert.h>
-#include <q3asciidict.h>
+#include <QHash>
 
 #define CHARSETS_COUNT 33
 
@@ -355,17 +355,17 @@
 {
 public:
     KCharsetsPrivate(KCharsets* _kc)
-        : codecForNameDict(43, false) // case insensitive
     {
         db = 0;
         kc = _kc;
+		codecForNameDict.reserve( 43 );
     }
     ~KCharsetsPrivate()
     {
         delete db;
     }
     QFontDatabase *db;
-    Q3AsciiDict<QTextCodec> codecForNameDict;
+    QHash<QByteArray,QTextCodec*> codecForNameDict;
     KCharsets* kc;
 };
 
@@ -563,13 +563,17 @@
     ok = true;
 
     QTextCodec* codec = 0;
+	QString l = "->locale<-";
     // dict lookup is case insensitive anyway
-    if((codec = d->codecForNameDict[n.isEmpty() ? "->locale<-" : n.latin1()]))
-        return codec; // cache hit, return
+	if ( !n.isEmpty() && d->codecForNameDict.contains( n.toLower().toLatin1() ) ) {
+		return d->codecForNameDict.value( n.toLower().toLatin1() );
+	} else if ( n.isEmpty() && d->codecForNameDict.contains( l.toLatin1() ) ) {
+		return d->codecForNameDict.value( l.toLatin1() );
+	}
 
     if (n.isEmpty()) {
         codec = KGlobal::locale()->codecForEncoding();
-        d->codecForNameDict.replace("->locale<-", codec);
+        d->codecForNameDict.insert("->locale<-", codec);
         return codec;
     }
 
@@ -586,7 +590,7 @@
     codec = QTextCodec::codecForName(name);
 
     if(codec) {
-        d->codecForNameDict.replace(key, codec);
+        d->codecForNameDict.insert(key.toLower(), codec);
         return codec;
     }
 
@@ -599,7 +603,7 @@
 
     if(codec)
     {
-        d->codecForNameDict.replace(key, codec);
+        d->codecForNameDict.insert(key.toLower(), codec);
         return codec;
     }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic