logsui/logscntfinder/src/logspredictivelatin12keytranslator.cpp
author hgs
Fri, 15 Oct 2010 14:47:48 +0300
changeset 21 2f0af9ba7665
parent 9 68f3171a5819
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include <QLocale>
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <hbinputkeymap.h>
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <hbinputsettingproxy.h>
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    20
#include <QTextCodec>
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "logspredictivelatin12keytranslator.h"
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "logslogger.h"
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
21
hgs
parents: 9
diff changeset
    25
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
//mapping char,key(name)
21
hgs
parents: 9
diff changeset
    27
const QChar SpecialMapping[] = {'+', StarKey, '*', StarKey, '#',HashKey };
hgs
parents: 9
diff changeset
    28
const int SpecialsCount = 3;
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
const QChar SpaceSepar(' ');
21
hgs
parents: 9
diff changeset
    30
const QChar ZeroSepar('0');
hgs
parents: 9
diff changeset
    31
const int NotAssigned = -1;
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
// LogsPredictiveLatin12KeyTranslator::LogsPredictiveLatin12KeyTranslator()
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
//
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    38
LogsPredictiveLatin12KeyTranslator::LogsPredictiveLatin12KeyTranslator() 
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    39
    : LogsPredictive12KeyTranslator( QLocale::English )
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
{
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveLatin12KeyTranslator::\
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
LogsPredictiveLatin12KeyTranslator()" )
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    43
    
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    44
    createSpecialMapping();
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    46
    LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveLatin12KeyTranslator::\
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    47
LogsPredictiveLatin12KeyTranslator()" )
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    48
}
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    49
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    50
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    51
// -----------------------------------------------------------------------------
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    52
// LogsPredictiveLatin12KeyTranslator::LogsPredictiveLatin12KeyTranslator()
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    53
// -----------------------------------------------------------------------------
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    54
//
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    55
LogsPredictiveLatin12KeyTranslator::LogsPredictiveLatin12KeyTranslator( 
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    56
        const HbInputLanguage& lang )
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    57
    : LogsPredictive12KeyTranslator( lang )
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    58
{
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    59
    LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveLatin12KeyTranslator::\
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    60
LogsPredictiveLatin12KeyTranslator()" )
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    61
    createSpecialMapping();
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    62
    
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    63
    LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveLatin12KeyTranslator::\
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    64
LogsPredictiveLatin12KeyTranslator()" )
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    65
}
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    66
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    67
// -----------------------------------------------------------------------------
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    68
// LogsPredictiveLatin12KeyTranslator::createSpecialMapping()
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    69
// -----------------------------------------------------------------------------
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    70
//
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    71
void LogsPredictiveLatin12KeyTranslator::createSpecialMapping()
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
    72
{
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
    int index = 0;
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
    int arraySize = SpecialsCount * 2;
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
    while( index < arraySize ) {
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
        QChar character = SpecialMapping[ index++ ];
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
        QChar keycode = SpecialMapping[ index++ ];
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
        mSpecialKeyMap[ character ] = keycode;
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    }
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
}
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
// LogsPredictiveLatin12KeyTranslator::~LogsPredictiveLatin12KeyTranslator()
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
//
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
LogsPredictiveLatin12KeyTranslator::~LogsPredictiveLatin12KeyTranslator()
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
{
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
    LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveLatin12KeyTranslator::\
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
~LogsPredictiveLatin12KeyTranslator()" )
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
    mSpecialKeyMap.clear();
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
    LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveLatin12KeyTranslator::\
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
~LogsPredictiveLatin12KeyTranslator()" )
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
    
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
}
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
// -----------------------------------------------------------------------------
21
hgs
parents: 9
diff changeset
    98
// LogsPredictiveLatin12KeyTranslator::patternTokens()
hgs
parents: 9
diff changeset
    99
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   100
//
hgs
parents: 9
diff changeset
   101
QStringList LogsPredictiveLatin12KeyTranslator::patternTokens( const QString& pattern ) const
hgs
parents: 9
diff changeset
   102
{
hgs
parents: 9
diff changeset
   103
        
hgs
parents: 9
diff changeset
   104
    LOGS_QDEBUG( "logs [FINDER] -> LogsPredictiveLatin12KeyTranslator::\
hgs
parents: 9
diff changeset
   105
patternTokens()" )
hgs
parents: 9
diff changeset
   106
    LOGS_QDEBUG_2( "logs [FINDER] pattern ", pattern );
hgs
parents: 9
diff changeset
   107
    QString car;
hgs
parents: 9
diff changeset
   108
    QString cdr;
hgs
parents: 9
diff changeset
   109
    
hgs
parents: 9
diff changeset
   110
    QStringList target;
hgs
parents: 9
diff changeset
   111
    splitPattern( pattern, car, cdr );
hgs
parents: 9
diff changeset
   112
    if ( car.length() ) {
hgs
parents: 9
diff changeset
   113
        target.append( car );
hgs
parents: 9
diff changeset
   114
        if ( cdr.length() ) {
hgs
parents: 9
diff changeset
   115
            target.append( cdr );
hgs
parents: 9
diff changeset
   116
        }
hgs
parents: 9
diff changeset
   117
    }
hgs
parents: 9
diff changeset
   118
    LOGS_QDEBUG( "logs [FINDER] <- LogsPredictiveLatin12KeyTranslator::\
hgs
parents: 9
diff changeset
   119
patternTokens()" )
hgs
parents: 9
diff changeset
   120
    return target;
hgs
parents: 9
diff changeset
   121
}
hgs
parents: 9
diff changeset
   122
hgs
parents: 9
diff changeset
   123
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   124
// LogsPredictiveLatin12KeyTranslator::splitPattern()
hgs
parents: 9
diff changeset
   125
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   126
//
hgs
parents: 9
diff changeset
   127
void LogsPredictiveLatin12KeyTranslator::splitPattern( const QString& pattern, 
hgs
parents: 9
diff changeset
   128
                                                  QString& car, QString& cdr ) const
hgs
parents: 9
diff changeset
   129
{
hgs
parents: 9
diff changeset
   130
    car = "";
hgs
parents: 9
diff changeset
   131
    cdr = "";
hgs
parents: 9
diff changeset
   132
    
hgs
parents: 9
diff changeset
   133
    QChar current;
hgs
parents: 9
diff changeset
   134
    QChar previous;
hgs
parents: 9
diff changeset
   135
    int splitStart = NotAssigned;
hgs
parents: 9
diff changeset
   136
    int splitEnd = NotAssigned;
hgs
parents: 9
diff changeset
   137
    int index = 0;
hgs
parents: 9
diff changeset
   138
    while( splitEnd == NotAssigned && index < pattern.length() ) {
hgs
parents: 9
diff changeset
   139
        current = pattern[index];
hgs
parents: 9
diff changeset
   140
        splitStart = splitStart == NotAssigned &&
hgs
parents: 9
diff changeset
   141
                    ( previous != ZeroSepar && previous != QChar() ) && 
hgs
parents: 9
diff changeset
   142
                    current == ZeroSepar ? 
hgs
parents: 9
diff changeset
   143
                        index : splitStart;
hgs
parents: 9
diff changeset
   144
        splitEnd = splitStart != NotAssigned && 
hgs
parents: 9
diff changeset
   145
                   previous == ZeroSepar && 
hgs
parents: 9
diff changeset
   146
                   current != ZeroSepar ?
hgs
parents: 9
diff changeset
   147
                      index : splitEnd;
hgs
parents: 9
diff changeset
   148
        previous = current;
hgs
parents: 9
diff changeset
   149
        index++;
hgs
parents: 9
diff changeset
   150
    }
hgs
parents: 9
diff changeset
   151
    
hgs
parents: 9
diff changeset
   152
    if ( splitStart != NotAssigned && splitEnd != NotAssigned ) {
hgs
parents: 9
diff changeset
   153
        car = pattern.left( splitStart );
hgs
parents: 9
diff changeset
   154
        cdr = pattern.right( pattern.length() - splitEnd );  
hgs
parents: 9
diff changeset
   155
    } else {
hgs
parents: 9
diff changeset
   156
        car = pattern; 
hgs
parents: 9
diff changeset
   157
    }
hgs
parents: 9
diff changeset
   158
}
hgs
parents: 9
diff changeset
   159
hgs
parents: 9
diff changeset
   160
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   161
// LogsPredictiveLatin12KeyTranslator::trimPattern()
hgs
parents: 9
diff changeset
   162
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   163
//
hgs
parents: 9
diff changeset
   164
QString& LogsPredictiveLatin12KeyTranslator::trimPattern( QString& pattern, 
hgs
parents: 9
diff changeset
   165
                                                     bool tailOnly ) const
hgs
parents: 9
diff changeset
   166
{
hgs
parents: 9
diff changeset
   167
    QRegExp lead("^0*");//remove leading zeros
hgs
parents: 9
diff changeset
   168
    QRegExp trail("0*$");//remove trailing zeros
hgs
parents: 9
diff changeset
   169
    
hgs
parents: 9
diff changeset
   170
    if ( pattern.length() ) {
hgs
parents: 9
diff changeset
   171
        if ( !tailOnly ) {
hgs
parents: 9
diff changeset
   172
            pattern.remove( lead );
hgs
parents: 9
diff changeset
   173
        }
hgs
parents: 9
diff changeset
   174
        
hgs
parents: 9
diff changeset
   175
        pattern.remove( trail );
hgs
parents: 9
diff changeset
   176
        
hgs
parents: 9
diff changeset
   177
        if( !pattern.length() ) {
hgs
parents: 9
diff changeset
   178
            pattern += ZeroSepar;
hgs
parents: 9
diff changeset
   179
        }
hgs
parents: 9
diff changeset
   180
    }
hgs
parents: 9
diff changeset
   181
    return pattern;
hgs
parents: 9
diff changeset
   182
}
hgs
parents: 9
diff changeset
   183
hgs
parents: 9
diff changeset
   184
hgs
parents: 9
diff changeset
   185
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   186
// LogsPredictiveLatin12KeyTranslator::hasPatternSeparators()
hgs
parents: 9
diff changeset
   187
// -----------------------------------------------------------------------------
hgs
parents: 9
diff changeset
   188
//
hgs
parents: 9
diff changeset
   189
int LogsPredictiveLatin12KeyTranslator::hasPatternSeparators( 
hgs
parents: 9
diff changeset
   190
        const QString& pattern ) const
hgs
parents: 9
diff changeset
   191
{
hgs
parents: 9
diff changeset
   192
    return pattern.count( ZeroSepar );
hgs
parents: 9
diff changeset
   193
hgs
parents: 9
diff changeset
   194
}
hgs
parents: 9
diff changeset
   195
hgs
parents: 9
diff changeset
   196
// -----------------------------------------------------------------------------
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
// LogsPredictiveLatin12KeyTranslator::translateChar()
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
//
21
hgs
parents: 9
diff changeset
   200
const QString LogsPredictiveLatin12KeyTranslator::translateChar( 
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   201
                                                    const QChar character,
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   202
                                                    bool& ok ) const
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
{
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   204
    ok = true;
21
hgs
parents: 9
diff changeset
   205
    QChar sch = mSpecialKeyMap[ character ];
hgs
parents: 9
diff changeset
   206
    QString keycode( sch );
hgs
parents: 9
diff changeset
   207
    if ( sch.isNull() ) {
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
        keycode = LogsPredictive12KeyTranslator::translateChar( character );
21
hgs
parents: 9
diff changeset
   209
        if ( keycode.isEmpty() ) {
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
            QString decomposed = character.decomposition();
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
            if (decomposed.isEmpty()) {
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   212
                ok = false;
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
                return keycode;
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
            }
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   215
            return translateChar (decomposed.at(0), ok);
2
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
        }
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
    }
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    return keycode;
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
}
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
// LogsPredictiveLatin12KeyTranslator::nameTokens()
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
// -----------------------------------------------------------------------------
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
//
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
QStringList LogsPredictiveLatin12KeyTranslator::nameTokens( 
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
                                                    const QString& name ) const
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
{
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    return name.split( SpaceSepar, QString::SkipEmptyParts );
7119b73b84d6 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
}
4
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   232
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   233
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   234
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   235
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   236
e52d42f9500c Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 2
diff changeset
   237