logsui/logsengine/src/logsabstractmodel.cpp
changeset 16 c5af8598d22c
parent 2 7119b73b84d6
child 19 e4c884866116
equal deleted inserted replaced
14:f27aebe284bb 16:c5af8598d22c
    22 #include "logscall.h"
    22 #include "logscall.h"
    23 #include "logscontact.h"
    23 #include "logscontact.h"
    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>
       
    28 #include <hbextendedlocale.h>
       
    29 #include <hbstringutil.h>
       
    30 #include "logsconfigurationparams.h"
    27 
    31 
    28 Q_DECLARE_METATYPE(LogsEvent *)
    32 Q_DECLARE_METATYPE(LogsEvent *)
    29 Q_DECLARE_METATYPE(LogsCall *)
    33 Q_DECLARE_METATYPE(LogsCall *)
    30 Q_DECLARE_METATYPE(LogsMessage *)
    34 Q_DECLARE_METATYPE(LogsMessage *)
    31 Q_DECLARE_METATYPE(LogsContact *)
    35 Q_DECLARE_METATYPE(LogsContact *)
    35 // -----------------------------------------------------------------------------
    39 // -----------------------------------------------------------------------------
    36 //
    40 //
    37 LogsAbstractModel::LogsAbstractModel() : QAbstractListModel(), mDbConnector(0)
    41 LogsAbstractModel::LogsAbstractModel() : QAbstractListModel(), mDbConnector(0)
    38 {
    42 {
    39     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::LogsAbstractModel()" )
    43     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::LogsAbstractModel()" )
    40    
    44     mExtendedLocale = new HbExtendedLocale();
    41     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::LogsAbstractModel()" )
    45     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::LogsAbstractModel()" )
    42 }
    46 }
    43 
    47 
    44 // -----------------------------------------------------------------------------
    48 // -----------------------------------------------------------------------------
    45 //
    49 //
    48 LogsAbstractModel::~LogsAbstractModel()
    52 LogsAbstractModel::~LogsAbstractModel()
    49 {
    53 {
    50     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::~LogsAbstractModel()" )
    54     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::~LogsAbstractModel()" )
    51 
    55 
    52     qDeleteAll( mIcons );
    56     qDeleteAll( mIcons );
       
    57     delete mExtendedLocale;
    53     
    58     
    54     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::~LogsAbstractModel()" )
    59     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::~LogsAbstractModel()" )
    55 }
    60 }
    56 
    61 
    57 // -----------------------------------------------------------------------------
    62 // -----------------------------------------------------------------------------
    84 int LogsAbstractModel::setPredictiveSearch(bool enabled)
    89 int LogsAbstractModel::setPredictiveSearch(bool enabled)
    85 {
    90 {
    86     return doSetPredictiveSearch(enabled);
    91     return doSetPredictiveSearch(enabled);
    87 }
    92 }
    88 
    93 
    89 
    94 // -----------------------------------------------------------------------------
    90 // -----------------------------------------------------------------------------
    95 //
    91 // 
    96 // -----------------------------------------------------------------------------
    92 // -----------------------------------------------------------------------------
    97 //
    93 //
    98 int LogsAbstractModel::updateConfiguration(LogsConfigurationParams& params)
    94 bool LogsAbstractModel::isCommunicationPossible(const LogsEvent& event) const
    99 {
    95 {
   100     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateConfiguration()" )
    96 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;
    97 }
   107 }
    98 
   108 
    99 // -----------------------------------------------------------------------------
   109 // -----------------------------------------------------------------------------
   100 //
   110 //
   101 // -----------------------------------------------------------------------------
   111 // -----------------------------------------------------------------------------
   102 //
   112 //
   103 void LogsAbstractModel::contactSavingCompleted(bool modified)
   113 void LogsAbstractModel::contactSavingCompleted(bool modified)
   104 {
   114 {
   105     Q_UNUSED(modified);
   115     Q_UNUSED(modified);
   106 }
   116 }
       
   117 
       
   118 // -----------------------------------------------------------------------------
       
   119 //
       
   120 // -----------------------------------------------------------------------------
       
   121 //
       
   122 void LogsAbstractModel::updateModel()
       
   123 {
       
   124     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateModel()" )
       
   125     //reset();
       
   126     if (rowCount()) {
       
   127         emit dataChanged(createIndex(0,0), createIndex(rowCount(),0));
       
   128     }
       
   129     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::updateModel()" )
       
   130 }
       
   131 
   107 
   132 
   108 // -----------------------------------------------------------------------------
   133 // -----------------------------------------------------------------------------
   109 //
   134 //
   110 // -----------------------------------------------------------------------------
   135 // -----------------------------------------------------------------------------
   111 //
   136 //
   134     LogsEvent* event = item.event();
   159     LogsEvent* event = item.event();
   135     if ( !event ){
   160     if ( !event ){
   136         return QVariant();
   161         return QVariant();
   137     }
   162     }
   138     LogsCall* logscall = new LogsCall(*event);
   163     LogsCall* logscall = new LogsCall(*event);
   139     if (!logscall->isAllowedCallType() || !isCommunicationPossible(*event)) {
       
   140         delete logscall;
       
   141         logscall = 0;
       
   142     }
       
   143     QVariant var = qVariantFromValue(logscall);
   164     QVariant var = qVariantFromValue(logscall);
   144     return var;         
   165     return var;         
   145 }
   166 }
   146 
   167 
   147 // -----------------------------------------------------------------------------
   168 // -----------------------------------------------------------------------------
   154     LogsEvent* event = item.event();
   175     LogsEvent* event = item.event();
   155     if ( !event ){
   176     if ( !event ){
   156         return QVariant();
   177         return QVariant();
   157     }
   178     }
   158     LogsMessage* logsMessage = new LogsMessage(*event);
   179     LogsMessage* logsMessage = new LogsMessage(*event);
   159     if (!logsMessage->isMessagingAllowed() || !isCommunicationPossible(*event)) {
   180     if (!logsMessage->isMessagingAllowed() || !event->isCommunicationPossible()) {
   160         delete logsMessage;
   181         delete logsMessage;
   161         logsMessage = 0;
   182         logsMessage = 0;
   162     }
   183     }
   163     QVariant var = qVariantFromValue(logsMessage);
   184     QVariant var = qVariantFromValue(logsMessage);
   164     return var;      
   185     return var;      
   175     if ( !event ){
   196     if ( !event ){
   176         return QVariant();
   197         return QVariant();
   177     }
   198     }
   178     Q_ASSERT(mDbConnector);
   199     Q_ASSERT(mDbConnector);
   179     LogsContact* logsContact = new LogsContact(*event, *mDbConnector);
   200     LogsContact* logsContact = new LogsContact(*event, *mDbConnector);
   180     if ( !logsContact->isContactRequestAllowed() || !isCommunicationPossible(*event) ) {
   201     if ( !logsContact->isContactRequestAllowed() || !event->isCommunicationPossible() ) {
   181         delete logsContact;
   202         delete logsContact;
   182         logsContact = 0;
   203         logsContact = 0;
   183     }
   204     }
   184     QVariant var = qVariantFromValue(logsContact);
   205     QVariant var = qVariantFromValue(logsContact);
   185     return var;
   206     return var;
   290 
   311 
   291 // -----------------------------------------------------------------------------
   312 // -----------------------------------------------------------------------------
   292 //
   313 //
   293 // -----------------------------------------------------------------------------
   314 // -----------------------------------------------------------------------------
   294 //
   315 //
       
   316 QString LogsAbstractModel::dateAndTimeString(const QDateTime& dateTime) const
       
   317 {
       
   318     QString dateTimeString =
       
   319                 mExtendedLocale->format(dateTime.date(), r_qtn_date_usual_with_zero)
       
   320                 % QChar(' ')
       
   321                 % mExtendedLocale->format(dateTime.time(), r_qtn_time_usual_with_zero);
       
   322     return HbStringUtil::convertDigits(dateTimeString);
       
   323 }
       
   324 
       
   325 // -----------------------------------------------------------------------------
       
   326 //
       
   327 // -----------------------------------------------------------------------------
       
   328 //
       
   329 QString LogsAbstractModel::durationString(const QTime& time) const
       
   330 {
       
   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);
       
   342 }
       
   343 
       
   344 // -----------------------------------------------------------------------------
       
   345 //
       
   346 // -----------------------------------------------------------------------------
       
   347 //
   295 LogsModelItemContainer::LogsModelItemContainer(LogsEvent* event) : mEvent(event)
   348 LogsModelItemContainer::LogsModelItemContainer(LogsEvent* event) : mEvent(event)
   296 {
   349 {
   297 
   350 
   298 }
   351 }
   299 
   352