logsui/logsengine/src/logsabstractmodel.cpp
changeset 16 c5af8598d22c
parent 2 7119b73b84d6
child 19 e4c884866116
--- a/logsui/logsengine/src/logsabstractmodel.cpp	Wed Aug 18 09:49:12 2010 +0300
+++ b/logsui/logsengine/src/logsabstractmodel.cpp	Thu Sep 02 20:27:05 2010 +0300
@@ -24,6 +24,10 @@
 #include "logsengdefs.h"
 #include "logsmessage.h"
 #include <hbicon.h>
+#include <QStringBuilder>
+#include <hbextendedlocale.h>
+#include <hbstringutil.h>
+#include "logsconfigurationparams.h"
 
 Q_DECLARE_METATYPE(LogsEvent *)
 Q_DECLARE_METATYPE(LogsCall *)
@@ -37,7 +41,7 @@
 LogsAbstractModel::LogsAbstractModel() : QAbstractListModel(), mDbConnector(0)
 {
     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::LogsAbstractModel()" )
-   
+    mExtendedLocale = new HbExtendedLocale();
     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::LogsAbstractModel()" )
 }
 
@@ -50,6 +54,7 @@
     LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::~LogsAbstractModel()" )
 
     qDeleteAll( mIcons );
+    delete mExtendedLocale;
     
     LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::~LogsAbstractModel()" )
 }
@@ -86,14 +91,19 @@
     return doSetPredictiveSearch(enabled);
 }
 
-
 // -----------------------------------------------------------------------------
-// 
+//
 // -----------------------------------------------------------------------------
 //
-bool LogsAbstractModel::isCommunicationPossible(const LogsEvent& event) const
+int LogsAbstractModel::updateConfiguration(LogsConfigurationParams& params)
 {
-return ( !event.isRemotePartyPrivate() && !event.isRemotePartyUnknown() );
+    LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateConfiguration()" )
+    if (params.localeChanged()) {
+        LOGS_QDEBUG( "logs [ENG] -> Locale changed, have to update model" )
+        updateModel();
+    }
+    LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::updateConfiguration()" )
+    return 0;
 }
 
 // -----------------------------------------------------------------------------
@@ -109,6 +119,21 @@
 //
 // -----------------------------------------------------------------------------
 //
+void LogsAbstractModel::updateModel()
+{
+    LOGS_QDEBUG( "logs [ENG] -> LogsAbstractModel::updateModel()" )
+    //reset();
+    if (rowCount()) {
+        emit dataChanged(createIndex(0,0), createIndex(rowCount(),0));
+    }
+    LOGS_QDEBUG( "logs [ENG] <- LogsAbstractModel::updateModel()" )
+}
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 QVariant LogsAbstractModel::doGetData(int role, const LogsModelItemContainer& item) const
 {
     if ( role == RoleFullEvent ) {
@@ -136,10 +161,6 @@
         return QVariant();
     }
     LogsCall* logscall = new LogsCall(*event);
-    if (!logscall->isAllowedCallType() || !isCommunicationPossible(*event)) {
-        delete logscall;
-        logscall = 0;
-    }
     QVariant var = qVariantFromValue(logscall);
     return var;         
 }
@@ -156,7 +177,7 @@
         return QVariant();
     }
     LogsMessage* logsMessage = new LogsMessage(*event);
-    if (!logsMessage->isMessagingAllowed() || !isCommunicationPossible(*event)) {
+    if (!logsMessage->isMessagingAllowed() || !event->isCommunicationPossible()) {
         delete logsMessage;
         logsMessage = 0;
     }
@@ -177,7 +198,7 @@
     }
     Q_ASSERT(mDbConnector);
     LogsContact* logsContact = new LogsContact(*event, *mDbConnector);
-    if ( !logsContact->isContactRequestAllowed() || !isCommunicationPossible(*event) ) {
+    if ( !logsContact->isContactRequestAllowed() || !event->isCommunicationPossible() ) {
         delete logsContact;
         logsContact = 0;
     }
@@ -292,6 +313,38 @@
 //
 // -----------------------------------------------------------------------------
 //
+QString LogsAbstractModel::dateAndTimeString(const QDateTime& dateTime) const
+{
+    QString dateTimeString =
+                mExtendedLocale->format(dateTime.date(), r_qtn_date_usual_with_zero)
+                % QChar(' ')
+                % mExtendedLocale->format(dateTime.time(), r_qtn_time_usual_with_zero);
+    return HbStringUtil::convertDigits(dateTimeString);
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+QString LogsAbstractModel::durationString(const QTime& time) const
+{
+    return HbStringUtil::convertDigits(
+        mExtendedLocale->format(time, r_qtn_time_durat_long_with_zero));
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+QString LogsAbstractModel::phoneNumString(const QString& number) const
+{
+    return HbStringUtil::convertDigits(number);
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 LogsModelItemContainer::LogsModelItemContainer(LogsEvent* event) : mEvent(event)
 {