--- a/logsui/logscntfinder/src/logspredictivetranslator.cpp Tue May 04 12:39:37 2010 +0300
+++ b/logsui/logscntfinder/src/logspredictivetranslator.cpp Fri May 14 15:52:41 2010 +0300
@@ -16,11 +16,13 @@
*/
#include <QObject>
#include <QLocale>
-#include <hbinputkeymapfactory.h>
-#include <hbinputkeymap.h>
+#include <QHash>
#include <hbinputsettingproxy.h>
+#include <QStringList>
#include "logspredictivetranslator.h"
+#include "logspredictivelatin12keytranslator.h"
+#include "logspredictivethai12keytranslator.h"
#include "logslogger.h"
LogsPredictiveTranslator* LogsPredictiveTranslator::mInstance = 0;
@@ -33,7 +35,16 @@
LogsPredictiveTranslator* LogsPredictiveTranslator::instance()
{
if ( !mInstance ) {
- mInstance = new LogsPredictiveTranslator();
+ HbInputLanguage lang =
+ HbInputSettingProxy::instance()->globalInputLanguage();
+ switch( lang.language() ) {
+ case QLocale::Thai:
+ mInstance = new LogsPredictiveThai12KeyTranslator();
+ break;
+ default:
+ mInstance = new LogsPredictiveLatin12KeyTranslator();
+ break;
+ }
}
return mInstance;
}
@@ -57,11 +68,6 @@
{
LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveTranslator::\
LogsPredictiveTranslator()" )
- HbInputLanguage lang =
- HbInputSettingProxy::instance()->globalInputLanguage();
- mKeyMap = HbKeymapFactory::instance()->keymap( lang.language(),
- lang.variant() );
-
LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::\
LogsPredictiveTranslator()" )
}
@@ -76,6 +82,7 @@
LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveTranslator::\
~LogsPredictiveTranslator()" )
mInstance = 0;
+ mKeyMap = 0;
LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::\
~LogsPredictiveTranslator()" )
@@ -85,25 +92,6 @@
// LogsPredictiveTranslator::translate()
// -----------------------------------------------------------------------------
//
-const QChar LogsPredictiveTranslator::translate( const QChar character ) const
-{
- const HbMappedKey* mappedKey = mKeyMap->keyForCharacter( HbKeyboardVirtual12Key,
- character );
- if (!mappedKey) {
- QString decomposed = character.decomposition();
- if (decomposed.isEmpty()) {
- return character;
- }
- return translate (decomposed.at(0));
- }
- return mappedKey->keycode;
-}
-
-
-// -----------------------------------------------------------------------------
-// LogsPredictiveTranslator::translate()
-// -----------------------------------------------------------------------------
-//
const QString LogsPredictiveTranslator::translate( const QString& name,
int count ) const
{
@@ -114,10 +102,13 @@
QString result;
const QChar* content = name.data();
int index = 0;
- while( index < name.length() && index < count ) {
- result.insert( index++, translate( *content++ ) );
+ while( index < count ) {
+ QChar ch = translateChar( *content++ );
+ if ( !ch.isNull() ) {
+ result.append( ch );
+ }
+ index++;
}
-
LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::translate()" )
return result;
}
@@ -141,7 +132,7 @@
QString translatedText = translate( text, pattern.length() );
matchCount = translatedText == pattern ? matchCount : 0;
} else {
- matchCount = translate( *text.data() ) == *pattern.data() ?
+ matchCount = translateChar( *text.data() ) == *pattern.data() ?
matchCount : 0;
}
}