cbs/cbsui/src/cbsuitopicview.cpp
changeset 12 ae8abd0db65c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cbs/cbsui/src/cbsuitopicview.cpp	Fri Mar 19 09:40:14 2010 +0200
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include <QGraphicsLinearLayout>
+
+#include <hbapplication.h>
+#include <hbmenu.h>
+#include <hbicon.h>
+#include <hblistwidget.h>
+#include <hblistwidgetitem.h>
+
+#include "cbsuitopicview.h"
+#include "cbsuiviewmanager.h"
+#include "rcbsui.h"
+#include "cbslog.h"
+#include "cbsuiconstants.h"
+
+const char *T_TITLE = "listWidget2";
+const char *T_PREVIOUS= "action";
+const char *T_BACK= "action_2";
+
+// ======== MEMBER FUNCTIONS ==================================================
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::CbsUiTopicView
+// ----------------------------------------------------------------------------
+CbsUiTopicView::CbsUiTopicView()
+    : HbView(),
+      mServer(NULL),
+      mViewManager(NULL),
+      mTopic(NULL),
+      mCurrentTopicNumber(NULL)
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::CbsUiTopicView IN"); 
+    
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::CbsUiTopicView OUT"); 
+}
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::~CbsUiTopicView
+// ----------------------------------------------------------------------------
+CbsUiTopicView::~CbsUiTopicView()
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::~CbsUiTopicView IN");
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::~CbsUiTopicView OUT");
+}
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::init
+// ----------------------------------------------------------------------------
+void CbsUiTopicView::init(MCbs &server, CbsUiViewManager &viewManager)
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::init IN");
+    mViewManager = &viewManager;
+    mServer = &server;
+    createComponents();
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::init OUT");
+}
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::TopicListChangedL
+// ----------------------------------------------------------------------------
+void CbsUiTopicView::TopicListChangedL(TCbsTopicListEvent /*aEvent*/,
+        TCbsTopicNumber /*aTopicNumber*/)                                        
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::TopicListChangedL IN");    
+    /*if (mTopic && 
+         mCurrentTopicNumber == aTopicNumber &&
+         ECbsTopicReceivedNewMessage == aEvent) {
+        reloadMessages(aTopicNumber);
+    }    */
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::TopicListChangedL OUT");
+}
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::createComponents
+// ----------------------------------------------------------------------------
+void CbsUiTopicView::createComponents()
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::createComponents IN"); 
+    
+    mTopic = qobject_cast<HbListWidget *>(
+        mViewManager->xmlLoader()->findWidget(T_TITLE));
+    LOG2(NORMAL,"CBSUI: CbsUiTopicView::createComponents mTopic=%d", mTopic); 
+    
+    // Previous Action
+    mPrevious = qobject_cast<HbAction *>( 
+        mViewManager->xmlLoader()->findObject(T_PREVIOUS));
+    
+    if (!mPrevious) {
+        LOG(NORMAL,"CBSUI: CbsUiTopicListView::createComponents\
+                 mPrevious faild");
+    }
+
+    // Back Action
+    mBack = qobject_cast<HbAction *>( 
+        mViewManager->xmlLoader()->findObject(T_BACK));
+    
+    if (!mBack) {
+        LOG(NORMAL,"CBSUI: CbsUiTopicListView::createComponents\
+                 mBack faild");
+    } else {
+    connect(mBack, SIGNAL(triggered(bool)), mViewManager, SLOT(activateMainView()));
+    LOG(NORMAL,"CBSUI: CbsUiTopicListView::createComponents\
+         mBack successfully");
+    }
+
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::createComponents OUT"); 
+}
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::reloadMessages
+// ----------------------------------------------------------------------------
+void CbsUiTopicView::reloadMessages(TCbsTopicNumber topicNumber)
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::reloadMessages IN"); 
+    mCurrentTopicNumber = topicNumber;
+    // Update topic details
+    HbListWidgetItem* listItem = new HbListWidgetItem();
+    TCbsTopic topic;
+
+    mServer->GetTopic(mCurrentTopicNumber, topic);
+   
+    // Clear first
+    mTopic->clear();
+    QString name = QString::fromUtf16(topic.iName.Ptr(), topic.iName.Length()); 
+    QString numberAndName = QVariant(topic.iNumber).toString();
+    // instert zeros to topic number in case 2 or 1 digit topic number.
+    switch (numberAndName.length()) {
+        case 1:
+            {
+            numberAndName.insert(0, "0");
+            numberAndName.insert(0, "0");
+            break;
+            }
+        case 2:
+            {
+            numberAndName.insert(0, "0");
+            break;
+            }
+        default:{}
+        // do nothing
+        }
+
+    listItem->setText(numberAndName);
+    //updateStatusIcon(*listItem, topic);
+    mTopic->addItem(listItem);
+    listItem = NULL;
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::reloadMessages OUT"); 
+}
+
+// ----------------------------------------------------------------------------
+// CbsUiTopicView::addMessage
+// ----------------------------------------------------------------------------
+void CbsUiTopicView::addMessage(const TCbsMessage& /*message*/, 
+                                const QString& /*msgName*/)
+{
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::addMessage IN");     
+    LOG(NORMAL,"CBSUI: CbsUiTopicView::addMessage OUT");     
+}
+
+// End of file