logsui/logscntfinder/inc/logspredictivetranslator.h
changeset 21 2f0af9ba7665
parent 17 90fe74753f71
equal deleted inserted replaced
18:acd4e87b24b4 21:2f0af9ba7665
    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