logsui/logscntfinder/src/logspredictivetranslator.cpp
changeset 21 2f0af9ba7665
parent 15 76d2cf7a585e
equal deleted inserted replaced
18:acd4e87b24b4 21:2f0af9ba7665
    37 LogsPredictiveTranslator* LogsPredictiveTranslator::instance()
    37 LogsPredictiveTranslator* LogsPredictiveTranslator::instance()
    38 {
    38 {
    39     LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveTranslator::\
    39     LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveTranslator::\
    40 instance()" )
    40 instance()" )
    41     if ( !mInstance ) {
    41     if ( !mInstance ) {
    42         HbInputLanguage lang = 
    42         HbInputLanguage lang = currentLanguage();
    43                 HbInputSettingProxy::instance()->globalInputLanguage();
    43         LOGS_QDEBUG_2( "logs [FINDER] Current lang is %d",lang.language() )
    44         LOGS_QDEBUG_2( "logs [FINDER] Input lang is %d", 
       
    45                        lang.language() )
       
    46         switch( lang.language() ) {
    44         switch( lang.language() ) {
    47             case QLocale::Thai:
    45             case QLocale::Thai:
    48                 mInstance = new LogsPredictiveThai12KeyTranslator( lang );
    46                 mInstance = new LogsPredictiveThai12KeyTranslator( lang );
    49                 break;
    47                 break;
    50             default:
    48             default:
   141 nameTranslator() - use current" )
   139 nameTranslator() - use current" )
   142         nameTranslator = mNameTranslator;
   140         nameTranslator = mNameTranslator;
   143     } else { 
   141     } else { 
   144         delete mNameTranslator;
   142         delete mNameTranslator;
   145         mNameTranslator = new LogsPredictiveLatin12KeyTranslator();
   143         mNameTranslator = new LogsPredictiveLatin12KeyTranslator();
   146         if( mNameTranslator->mKeyMap && 
   144         if( mNameTranslator->keyMap() && 
   147             mNameTranslator->encodes( name ) ) {
   145             mNameTranslator->encodes( name ) ) {
   148             nameTranslator = mNameTranslator;
   146             nameTranslator = mNameTranslator;
   149             LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::\
   147             LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::\
   150 nameTranslator() - use latin" )
   148 nameTranslator() - use latin" )
   151             return *nameTranslator;
   149             return *nameTranslator;
   152         }
   150         }
   153         delete mNameTranslator;
   151         delete mNameTranslator;
   154         mNameTranslator = new LogsPredictiveThai12KeyTranslator();
   152         mNameTranslator = new LogsPredictiveThai12KeyTranslator();
   155         if( mNameTranslator->mKeyMap && 
   153         if( mNameTranslator->keyMap() && 
   156             mNameTranslator->encodes( name ) ) {
   154             mNameTranslator->encodes( name ) ) {
   157             nameTranslator = mNameTranslator;
   155             nameTranslator = mNameTranslator;
   158             LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::\
   156             LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::\
   159 nameTranslator() - use thai" )
   157 nameTranslator() - use thai" )
   160             return *nameTranslator;
   158             return *nameTranslator;
   180     bool ok;
   178     bool ok;
   181     translate( sniplet, &ok );
   179     translate( sniplet, &ok );
   182     return ok;
   180     return ok;
   183 }
   181 }
   184 
   182 
   185 // -----------------------------------------------------------------------------
   183 
   186 // LogsPredictiveTranslator::translatePattern()
   184 // -----------------------------------------------------------------------------
   187 // -----------------------------------------------------------------------------
   185 // LogsPredictiveTranslator::preparePattern()
   188 //
   186 // -----------------------------------------------------------------------------
   189 const QString LogsPredictiveTranslator::translatePattern( 
   187 //
       
   188 const QString LogsPredictiveTranslator::preparePattern( 
   190                                                    const QString& pattern ) const
   189                                                    const QString& pattern ) const
   191 {
   190 {
   192     LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveTranslator::translatePattern()" )
   191     LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveTranslator::preparePattern()" )
   193     QString result = translate( pattern );
   192     QString result = translate( pattern );
   194     
   193     
   195     if ( !result.length() ) {
   194     if ( !result.length() ) {
   196         result = pattern;
   195         result = pattern;
   197     }
   196     }
   198     LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::translatePattern()" )
   197     LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::preparePattern()" )
   199     return result;
   198     return result;
   200 }
   199 }
   201 
   200 
   202 // -----------------------------------------------------------------------------
   201 // -----------------------------------------------------------------------------
   203 // LogsPredictiveTranslator::translate()
   202 // LogsPredictiveTranslator::translate()
   213     
   212     
   214     count = count == -1 ? text.length() : count;
   213     count = count == -1 ? text.length() : count;
   215     const QChar* content = text.data();
   214     const QChar* content = text.data();
   216     int index = 0;
   215     int index = 0;
   217     while( index < count && isok ) {
   216     while( index < count && isok ) {
   218         QChar ch = translateChar( *content++, isok );
   217         QString ch = translateChar( *content++, isok );
   219         if ( !ch.isNull() ) {
   218         if ( !ch.isEmpty() ) {
   220             result.append( ch );
   219             result.append( ch );
   221         }
   220         }
   222         index++;
   221         index++;
   223     }
   222     }
   224     
   223     
   228     LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::translate()" )
   227     LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveTranslator::translate()" )
   229     return result;
   228     return result;
   230 }
   229 }
   231 
   230 
   232 
   231 
       
   232 // -----------------------------------------------------------------------------
       
   233 // LogsPredictiveTranslator::currentLanguage()
       
   234 // -----------------------------------------------------------------------------
       
   235 //
       
   236 HbInputLanguage LogsPredictiveTranslator::currentLanguage() 
       
   237 {
       
   238     HbInputLanguage lang = 
       
   239             HbInputSettingProxy::instance()->globalInputLanguage();
       
   240     
       
   241     return lang;
       
   242 }
       
   243