qtcontactsmobility/plugins/contacts/symbian/inc/filtering/cntfilterdetail.h
changeset 37 fd64c38c277d
parent 27 de1630741fbe
child 40 b46a585f6909
equal deleted inserted replaced
31:2a11b5b00470 37:fd64c38c277d
    50 
    50 
    51 QTM_USE_NAMESPACE
    51 QTM_USE_NAMESPACE
    52 
    52 
    53 class CntFilterDetail : public CntAbstractContactFilter
    53 class CntFilterDetail : public CntAbstractContactFilter
    54 {
    54 {
       
    55 private:
       
    56     class TMatch {
       
    57         public:
       
    58             TMatch();
       
    59         
       
    60             static TInt32 createHash(const TDesC& phoneNumberString,
       
    61                                      TInt matchLength,
       
    62                                      TInt& numPhoneDigits);
       
    63             static void stripOutNonDigitChars(TDes& text);
       
    64             static TInt32 padOutPhoneMatchNumber(TInt32& phoneNumber,
       
    65                                                  TInt padOutLength);
       
    66         public:
       
    67             TInt32 iLowerSevenDigits;
       
    68             TInt32 iUpperDigits;
       
    69             TInt iNumLowerDigits;
       
    70             TInt iNumUpperDigits;
       
    71     };
    55 public:
    72 public:
    56     CntFilterDetail(CContactDatabase& contactDatabase, CntSymbianSrvConnection &cntServer,CntDbInfo& dbInfo);
    73     CntFilterDetail(CContactDatabase& contactDatabase, CntSymbianSrvConnection &cntServer,CntDbInfo& dbInfo);
    57     ~CntFilterDetail();
    74     ~CntFilterDetail();
    58     QList<QContactLocalId> contacts(
    75     QList<QContactLocalId> contacts(
    59             const QContactFilter &filter,
    76             const QContactFilter &filter,
    60             const QList<QContactSortOrder> &sortOrders,
    77             const QList<QContactSortOrder> &sortOrders,
    61             bool &filterSupported,
    78             bool &filterSupported,
    62             QContactManager::Error* error);
    79             QContactManager::Error* error);
    63     bool filterSupported(const QContactFilter& filter) ;
    80     bool filterSupported(const QContactFilter& filter) ;
    64     
    81     
    65     //bool isFilterSupported(const QContactFilter& filter) const;
       
    66 
       
    67     void getTableNameWhereClause( const QContactDetailFilter& filter,
    82     void getTableNameWhereClause( const QContactDetailFilter& filter,
    68                                   QString& tableName,
    83                                   QString& tableName,
    69                                   QString& sqlWhereClause ,
    84                                   QString& sqlWhereClause ,
    70                                   QContactManager::Error* error) const;
    85                                   QContactManager::Error* error) const;
    71     void createSelectQuery(const QContactFilter& filter,
    86     void createSelectQuery(const QContactFilter& filter,
    72                                  QString& sqlQuery,
    87                                  QString& sqlQuery,
    73                                  QContactManager::Error* error);
    88                                  QContactManager::Error* error);
       
    89     void createMatchPhoneNumberQuery(const QContactFilter& filter,
       
    90                                      QString& sqlQuery,
       
    91                                      QContactManager::Error* error);
    74 private:
    92 private:
    75 
       
    76     
       
    77     void updateForMatchFlag( const QContactDetailFilter& filter,
    93     void updateForMatchFlag( const QContactDetailFilter& filter,
    78                              QString& fieldToUpdate ,
    94                              QString& fieldToUpdate ,
    79                              QContactManager::Error* error) const;
    95                              QContactManager::Error* error) const;
    80     QList<QContactLocalId> HandlePhonenumberDetailFilter(const QContactFilter& filter);
       
    81     QList<QContactLocalId>  HandlePredictiveSearchFilter(const QContactFilter& filter,
    96     QList<QContactLocalId>  HandlePredictiveSearchFilter(const QContactFilter& filter,
    82                                                          QContactManager::Error* error);
    97                                                          QContactManager::Error* error);
    83 
    98 
    84     TInt CntFilterDetail::searchPhoneNumbers(
    99     CntFilterDetail::TMatch createPaddedPhoneDigits(const TDesC& number, 
    85             CContactIdArray*& idArray,
   100                                                     const TInt numLowerDigits,
    86             const TDesC& phoneNumber,
   101                                                     const TInt numUpperDigits,
    87             const TInt matchLength);
   102                                                     QContactManager::Error* error);
    88     void getMatchLengthL(TInt& matchLength);
   103     CntFilterDetail::TMatch createPhoneMatchNumber(const TDesC& text,
       
   104                                                    TInt lowerMatchLength,
       
   105                                                    TInt upperMatchLength,
       
   106                                                    QContactManager::Error* error);
       
   107     bool getMatchLengthL(TInt& matchLength);
       
   108     
    89 protected:
   109 protected:
    90     CContactDatabase& m_contactdatabase;
   110     CContactDatabase& m_contactdatabase;
    91     CntSymbianSrvConnection &m_srvConnection;
   111     CntSymbianSrvConnection &m_srvConnection;
    92     CntDbInfo& m_dbInfo;
   112     CntDbInfo& m_dbInfo;
    93 };
   113 };