logsui/logsengine/src/logsabstractmodel.cpp
changeset 15 76d2cf7a585e
parent 13 52d644758b05
child 17 90fe74753f71
equal deleted inserted replaced
13:52d644758b05 15:76d2cf7a585e
    24 #include "logsengdefs.h"
    24 #include "logsengdefs.h"
    25 #include "logsmessage.h"
    25 #include "logsmessage.h"
    26 #include <hbicon.h>
    26 #include <hbicon.h>
    27 #include <QStringBuilder>
    27 #include <QStringBuilder>
    28 #include <hbextendedlocale.h>
    28 #include <hbextendedlocale.h>
    29 #include "logssystemtimeobserver.h"
    29 #include <hbstringutil.h>
    30 
    30 #include "logsconfigurationparams.h"
    31 
    31 
    32 Q_DECLARE_METATYPE(LogsEvent *)
    32 Q_DECLARE_METATYPE(LogsEvent *)
    33 Q_DECLARE_METATYPE(LogsCall *)
    33 Q_DECLARE_METATYPE(LogsCall *)
    34 Q_DECLARE_METATYPE(LogsMessage *)
    34 Q_DECLARE_METATYPE(LogsMessage *)
    35 Q_DECLARE_METATYPE(LogsContact *)
    35 Q_DECLARE_METATYPE(LogsContact *)
    39 // -----------------------------------------------------------------------------
    39 // -----------------------------------------------------------------------------
    40 //
    40 //
    41 LogsAbstractModel::LogsAbstractModel() : QAbstractListModel(), mDbConnector(0)
    41 LogsAbstractModel::LogsAbstractModel() : QAbstractListModel(), mDbConnector(0)
    42 {
    42 {
    43     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::LogsAbstractModel()" )
    43     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::LogsAbstractModel()" )
    44     mSystemTimeObserver = new LogsSystemTimeObserver(this);
    44     mExtendedLocale = new HbExtendedLocale();
    45     connect(mSystemTimeObserver, SIGNAL(timeFormatChanged()),
       
    46             this, SLOT(updateModel()));
       
    47     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::LogsAbstractModel()" )
    45     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::LogsAbstractModel()" )
    48 }
    46 }
    49 
    47 
    50 // -----------------------------------------------------------------------------
    48 // -----------------------------------------------------------------------------
    51 //
    49 //
    54 LogsAbstractModel::~LogsAbstractModel()
    52 LogsAbstractModel::~LogsAbstractModel()
    55 {
    53 {
    56     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::~LogsAbstractModel()" )
    54     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::~LogsAbstractModel()" )
    57 
    55 
    58     qDeleteAll( mIcons );
    56     qDeleteAll( mIcons );
       
    57     delete mExtendedLocale;
    59     
    58     
    60     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::~LogsAbstractModel()" )
    59     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::~LogsAbstractModel()" )
    61 }
    60 }
    62 
    61 
    63 // -----------------------------------------------------------------------------
    62 // -----------------------------------------------------------------------------
    90 int LogsAbstractModel::setPredictiveSearch(bool enabled)
    89 int LogsAbstractModel::setPredictiveSearch(bool enabled)
    91 {
    90 {
    92     return doSetPredictiveSearch(enabled);
    91     return doSetPredictiveSearch(enabled);
    93 }
    92 }
    94 
    93 
    95 
    94 // -----------------------------------------------------------------------------
    96 // -----------------------------------------------------------------------------
    95 //
    97 // 
    96 // -----------------------------------------------------------------------------
    98 // -----------------------------------------------------------------------------
    97 //
    99 //
    98 int LogsAbstractModel::updateConfiguration(LogsConfigurationParams& params)
   100 bool LogsAbstractModel::isCommunicationPossible(const LogsEvent& event) const
    99 {
   101 {
   100     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateConfiguration()" )
   102     return ( !event.isRemotePartyPrivate() && !event.isRemotePartyUnknown() );
   101     if (params.localeChanged()) {
       
   102         LOGS_QDEBUG( "logs [ENG] -> Locale changed, have to update model" )
       
   103         updateModel();
       
   104     }
       
   105     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::updateConfiguration()" )
       
   106     return 0;
   103 }
   107 }
   104 
   108 
   105 // -----------------------------------------------------------------------------
   109 // -----------------------------------------------------------------------------
   106 //
   110 //
   107 // -----------------------------------------------------------------------------
   111 // -----------------------------------------------------------------------------
   115 //
   119 //
   116 // -----------------------------------------------------------------------------
   120 // -----------------------------------------------------------------------------
   117 //
   121 //
   118 void LogsAbstractModel::updateModel()
   122 void LogsAbstractModel::updateModel()
   119 {
   123 {
   120     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateModel(), SYSTEM TIME CHANGED!" )
   124     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateModel()" )
   121     //reset();
   125     //reset();
   122     if (rowCount()) {
   126     if (rowCount()) {
   123         emit dataChanged(createIndex(0,0), createIndex(rowCount(),0));
   127         emit dataChanged(createIndex(0,0), createIndex(rowCount(),0));
   124     }
   128     }
   125     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::updateModel()" )
   129     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::updateModel()" )
   155     LogsEvent* event = item.event();
   159     LogsEvent* event = item.event();
   156     if ( !event ){
   160     if ( !event ){
   157         return QVariant();
   161         return QVariant();
   158     }
   162     }
   159     LogsCall* logscall = new LogsCall(*event);
   163     LogsCall* logscall = new LogsCall(*event);
   160     if (!logscall->isAllowedCallType() || !isCommunicationPossible(*event)) {
       
   161         delete logscall;
       
   162         logscall = 0;
       
   163     }
       
   164     QVariant var = qVariantFromValue(logscall);
   164     QVariant var = qVariantFromValue(logscall);
   165     return var;         
   165     return var;         
   166 }
   166 }
   167 
   167 
   168 // -----------------------------------------------------------------------------
   168 // -----------------------------------------------------------------------------
   175     LogsEvent* event = item.event();
   175     LogsEvent* event = item.event();
   176     if ( !event ){
   176     if ( !event ){
   177         return QVariant();
   177         return QVariant();
   178     }
   178     }
   179     LogsMessage* logsMessage = new LogsMessage(*event);
   179     LogsMessage* logsMessage = new LogsMessage(*event);
   180     if (!logsMessage->isMessagingAllowed() || !isCommunicationPossible(*event)) {
   180     if (!logsMessage->isMessagingAllowed() || !event->isCommunicationPossible()) {
   181         delete logsMessage;
   181         delete logsMessage;
   182         logsMessage = 0;
   182         logsMessage = 0;
   183     }
   183     }
   184     QVariant var = qVariantFromValue(logsMessage);
   184     QVariant var = qVariantFromValue(logsMessage);
   185     return var;      
   185     return var;      
   196     if ( !event ){
   196     if ( !event ){
   197         return QVariant();
   197         return QVariant();
   198     }
   198     }
   199     Q_ASSERT(mDbConnector);
   199     Q_ASSERT(mDbConnector);
   200     LogsContact* logsContact = new LogsContact(*event, *mDbConnector);
   200     LogsContact* logsContact = new LogsContact(*event, *mDbConnector);
   201     if ( !logsContact->isContactRequestAllowed() || !isCommunicationPossible(*event) ) {
   201     if ( !logsContact->isContactRequestAllowed() || !event->isCommunicationPossible() ) {
   202         delete logsContact;
   202         delete logsContact;
   203         logsContact = 0;
   203         logsContact = 0;
   204     }
   204     }
   205     QVariant var = qVariantFromValue(logsContact);
   205     QVariant var = qVariantFromValue(logsContact);
   206     return var;
   206     return var;
   313 //
   313 //
   314 // -----------------------------------------------------------------------------
   314 // -----------------------------------------------------------------------------
   315 //
   315 //
   316 QString LogsAbstractModel::dateAndTimeString(const QDateTime& dateTime) const
   316 QString LogsAbstractModel::dateAndTimeString(const QDateTime& dateTime) const
   317 {
   317 {
   318     HbExtendedLocale locale = HbExtendedLocale::system();
       
   319     QString dateTimeString =
   318     QString dateTimeString =
   320                 locale.format(dateTime.date(), r_qtn_date_usual_with_zero)
   319                 mExtendedLocale->format(dateTime.date(), r_qtn_date_usual_with_zero)
   321                 % QChar(' ')
   320                 % QChar(' ')
   322                 % locale.format(dateTime.time(), r_qtn_time_usual_with_zero);
   321                 % mExtendedLocale->format(dateTime.time(), r_qtn_time_usual_with_zero);
   323     return dateTimeString;
   322     return HbStringUtil::convertDigits(dateTimeString);
   324 }
   323 }
   325 
   324 
   326 // -----------------------------------------------------------------------------
   325 // -----------------------------------------------------------------------------
   327 //
   326 //
   328 // -----------------------------------------------------------------------------
   327 // -----------------------------------------------------------------------------
   329 //
   328 //
   330 QString LogsAbstractModel::durationString(const QTime& time) const
   329 QString LogsAbstractModel::durationString(const QTime& time) const
   331 {
   330 {
   332     return HbExtendedLocale::system().format(time, r_qtn_time_durat_long_with_zero);
   331     return HbStringUtil::convertDigits(
       
   332         mExtendedLocale->format(time, r_qtn_time_durat_long_with_zero));
       
   333 }
       
   334 
       
   335 // -----------------------------------------------------------------------------
       
   336 //
       
   337 // -----------------------------------------------------------------------------
       
   338 //
       
   339 QString LogsAbstractModel::phoneNumString(const QString& number) const
       
   340 {
       
   341     return HbStringUtil::convertDigits(number);
   333 }
   342 }
   334 
   343 
   335 // -----------------------------------------------------------------------------
   344 // -----------------------------------------------------------------------------
   336 //
   345 //
   337 // -----------------------------------------------------------------------------
   346 // -----------------------------------------------------------------------------