20 |
20 |
21 #include <QObject> |
21 #include <QObject> |
22 #include <QChar> |
22 #include <QChar> |
23 #include <QList> |
23 #include <QList> |
24 |
24 |
|
25 |
|
26 |
|
27 class LogsCntToken |
|
28 { |
|
29 public: |
|
30 |
|
31 const QString& text() const {return mText;} |
|
32 const QString& translation() const {return mTranslatedText;} |
|
33 |
|
34 protected: |
|
35 |
|
36 QString mText; |
|
37 QString mTranslatedText; |
|
38 |
|
39 }; |
|
40 |
|
41 typedef QList<LogsCntToken> LogsCntTokenArray; |
|
42 |
|
43 class LogsCntTokenIterator : public QListIterator<LogsCntToken> |
|
44 { |
|
45 public: |
|
46 |
|
47 inline LogsCntTokenIterator( LogsCntTokenArray& container ) |
|
48 : QListIterator<LogsCntToken>( container ), mCount( container.count() ) {} |
|
49 inline int count() const {return mCount;} |
|
50 |
|
51 private: |
|
52 |
|
53 int mCount; |
|
54 |
|
55 }; |
|
56 |
|
57 |
25 class HbKeymap; |
58 class HbKeymap; |
26 class HbInputLanguage; |
59 class HbInputLanguage; |
|
60 |
|
61 |
|
62 |
27 |
63 |
28 /** |
64 /** |
29 * predictive translator. Singelton |
65 * predictive translator. Singelton |
30 * |
66 * |
31 */ |
67 */ |
34 |
70 |
35 public: |
71 public: |
36 |
72 |
37 static LogsPredictiveTranslator* instance(); |
73 static LogsPredictiveTranslator* instance(); |
38 static void deleteInstance(); |
74 static void deleteInstance(); |
|
75 static HbInputLanguage currentLanguage(); |
39 |
76 |
40 ~LogsPredictiveTranslator(); |
77 ~LogsPredictiveTranslator(); |
41 |
78 |
42 const QString translatePattern( const QString& pattern ) const; |
79 virtual const QString preparePattern( const QString& pattern ) const; |
43 const QString translateText( const QString& text ); |
80 const QString translateText( const QString& text ); |
44 |
81 |
45 public: //abstracts |
82 public: //abstracts |
46 |
83 |
47 virtual QStringList nameTokens( const QString& name ) const = 0; |
84 virtual bool match( const QString& pattern, |
|
85 LogsCntTokenIterator& names ) const = 0; |
|
86 |
48 virtual QStringList patternTokens( const QString& pattern ) const = 0; |
87 virtual QStringList patternTokens( const QString& pattern ) const = 0; |
49 virtual QString& trimPattern( QString& pattern, bool tailOnly = false ) const = 0; |
88 virtual QString& trimPattern( QString& pattern, bool tailOnly = false ) const = 0; |
|
89 virtual QStringList nameTokens( const QString& name ) const = 0; |
50 virtual int hasPatternSeparators( const QString& pattern ) const = 0; |
90 virtual int hasPatternSeparators( const QString& pattern ) const = 0; |
51 virtual const QChar translateChar( const QChar character, bool& ok ) const = 0; |
|
52 virtual int mib() const = 0; |
91 virtual int mib() const = 0; |
53 |
92 |
54 protected: |
93 protected: |
55 |
94 |
|
95 virtual const QString translateChar( const QChar character, bool& ok ) const = 0; |
|
96 |
56 explicit LogsPredictiveTranslator( const HbInputLanguage& lang ); |
97 explicit LogsPredictiveTranslator( const HbInputLanguage& lang ); |
57 bool encodes( const QString& sniplet ); |
98 bool encodes( const QString& sniplet ); |
58 const QString translate( const QString& text, bool* ok = 0, int count = -1 ) const; |
99 const QString translate( const QString& text, bool* ok = 0, int count = -1 ) const; |
|
100 inline virtual void* keyMap() const { return (void*)mKeyMap; } |
59 |
101 |
60 private: |
102 private: |
61 |
103 |
62 const LogsPredictiveTranslator& nameTranslator( const QString& name ); |
104 const LogsPredictiveTranslator& nameTranslator( const QString& name ); |
63 |
105 |