messagingapp/msgui/conversationview/src/msgconversationwidget.cpp
changeset 43 35b64624a9e7
parent 34 84197e66a4bd
child 44 36f374c67aa8
--- a/messagingapp/msgui/conversationview/src/msgconversationwidget.cpp	Fri Jun 11 13:35:48 2010 +0300
+++ b/messagingapp/msgui/conversationview/src/msgconversationwidget.cpp	Wed Jun 23 18:09:17 2010 +0300
@@ -32,6 +32,8 @@
 #include <QBool>
 #include <QCoreApplication>
 #include <HbEvent>
+#include <HbMainWindow>
+#include <hbinstance>
 
 #include "debugtraces.h"
 
@@ -43,7 +45,6 @@
 const QString MSG_LOW_PRIORITY_ICON("qtg_small_priority_low");
 const QString MSG_ATTACH_ICON("qtg_small_attachment");
 const QString MSG_AUDIO_ICON("qtg_large_music_player");
-const QString MSG_VIDEO_ICON("qtg_large_video_player");
 const QString MSG_AUDIO_PLAY_ICON("qtg_large_music_player");
 
 
@@ -115,7 +116,28 @@
     mNewFrameItem = new HbFrameItem(this);
     mNewFrameItem->frameDrawer().setFrameType(HbFrameDrawer::ThreePiecesVertical);
     HbStyle::setItemName(mNewFrameItem, "newItemIcon");
+    mSubjectTextItem = new HbTextItem(this);  
+    mSubjectTextItem->setTextWrapping(Hb::TextWordWrap);      
+    HbStyle::setItemName(mSubjectTextItem, "subject");
+    mBodyTextItem = new HbTextItem(this);
+    mBodyTextItem->setTextWrapping(Hb::TextWordWrap);
+    HbStyle::setItemName(mBodyTextItem, "bodyText");
+    mPreviewIconItem = new HbIconItem(this);
+    mPreviewIconItem->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
+    HbStyle::setItemName(mPreviewIconItem, "preview");
+    mPriorityIconItem = new HbIconItem(this);            
+    HbStyle::setItemName(mPriorityIconItem, "priority");
+    mAttachmentIconItem = new HbIconItem(this);
+    HbStyle::setItemName(mAttachmentIconItem, "attachment");
+    mPlayIconItem = new HbIconItem(this);                
+    HbStyle::setItemName(mPlayIconItem, "playIcon");
+    mTimeStampTextItem = new HbTextItem(this);
+    HbStyle::setItemName(mTimeStampTextItem, "timeStamp");
     	
+    HbMainWindow *mainWindow = hbInstance->allMainWindows()[0];
+    connect(mainWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, 
+			SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
+    polishEvent();
     }
 
 //---------------------------------------------------------------
@@ -124,11 +146,6 @@
 //---------------------------------------------------------------
 void MsgConversationWidget::setSubject(const QString &subject)
 {
-    if (!mSubjectTextItem)
-    {
-        mSubjectTextItem = new HbTextItem(this);  
-        mSubjectTextItem->setTextWrapping(Hb::TextNoWrap);      
-    }
     HbStyle::setItemName(mSubjectTextItem, "subject");
     mSubjectTextItem->setText(subject);
     mSubjectTextItem->show();
@@ -140,11 +157,6 @@
 //---------------------------------------------------------------
 void MsgConversationWidget::setBodyText(const QString &body)
 {
-    if (!mBodyTextItem)
-    {
-        mBodyTextItem = new HbTextItem(this);
-        mBodyTextItem->setTextWrapping(Hb::TextWordWrap);
-    }
     HbStyle::setItemName(mBodyTextItem, "bodyText");
 
     mBodyTextItem->setText(body);
@@ -157,13 +169,8 @@
 //---------------------------------------------------------------
 void MsgConversationWidget::setPreviewIcon(HbIcon& icon)
 {
-    QCRITICAL_WRITE("setPreviewIcon start.")
+    QCRITICAL_WRITE("MsgConversationWidget::setPreviewIcon start.")
 
-    if (!mPreviewIconItem)
-    {
-        mPreviewIconItem = new HbIconItem(this);
-        mPreviewIconItem->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
-    }
 
     HbStyle::setItemName(mPreviewIconItem, "preview");
 
@@ -171,7 +178,7 @@
     mPreviewIconItem->setPreferredSize(icon.size());
     mPreviewIconItem->show();
 
-    QCRITICAL_WRITE("setPreviewIcon end.")
+    QCRITICAL_WRITE("MsgConversationWidget::setPreviewIcon end.")
 }
 
 
@@ -185,10 +192,6 @@
 
     if (priority)
     {
-        if (!mPriorityIconItem)
-        {
-            mPriorityIconItem = new HbIconItem(this);            
-        }
         HbStyle::setItemName(mPriorityIconItem, "priority");
         if (ConvergedMessage::Low == priority)
         {
@@ -221,10 +224,6 @@
 
     if (attachment)
     {
-        if (!mAttachmentIconItem)
-        {
-            mAttachmentIconItem = new HbIconItem(this);
-        }
         HbStyle::setItemName(mAttachmentIconItem, "attachment");
         mAttachmentIconItem->setIcon(HbIcon(MSG_ATTACH_ICON));
         mAttachmentIconItem->show();
@@ -284,27 +283,30 @@
 {
     if (hasAudio())
     {
-        if (hasImage())
+        if (!hasImage())
         {
-            if (!mPlayIconItem)
+            HbStyle::setItemName(mPreviewIconItem, "preview");
+            if(iconPath.isEmpty())
             {
-                mPlayIconItem = new HbIconItem(this);                
+               qreal iconSize = 0;
+               style()->parameter("hb-param-graphic-size-primary-large",iconSize);
+               HbIcon icon(MSG_AUDIO_PLAY_ICON);
+               icon.setHeight(iconSize);
+               icon.setWidth(iconSize);
+               mPreviewIconItem->setIcon(icon);
             }
-            HbStyle::setItemName(mPlayIconItem, "playIcon");
-            mPlayIconItem->setIconName(iconPath.isEmpty() ? MSG_AUDIO_PLAY_ICON : iconPath);
-            mPlayIconItem->show();
+            else
+            {
+               mPreviewIconItem->setIconName(iconPath);
+            }
+            mPreviewIconItem->show();
         }
         else
         {
-            if (!mAudioIconItem)
-            {
-                mAudioIconItem = new HbIconItem(this);    
-            }
-            HbStyle::setItemName(mAudioIconItem, "audioIcon");
-            mAudioIconItem->setIconName(iconPath.isEmpty() ? MSG_AUDIO_PLAY_ICON : iconPath);
-            mAudioIconItem->show();
-           
-        }
+            HbStyle::setItemName(mPlayIconItem, "playIcon");
+            mPlayIconItem->setIconName(iconPath.isEmpty() ? MSG_AUDIO_PLAY_ICON : iconPath);
+            mPlayIconItem->show();          
+        }       
     }
 }
 
@@ -315,18 +317,6 @@
 void MsgConversationWidget::setVideo(bool video)
 {
     mHasVideo = video;
-
-    if (video)
-    {
-        if (!mVideoIconItem)
-        {
-            mVideoIconItem = new HbIconItem(this);
-        }
-        HbStyle::setItemName(mVideoIconItem, "video");
-        mVideoIconItem->setIcon(HbIcon(MSG_VIDEO_ICON));
-        mVideoIconItem->show();
-        
-    }
 }
 
 //---------------------------------------------------------------
@@ -381,6 +371,8 @@
 void MsgConversationWidget::setUnread(bool unread)
 {
     mUnread = unread;
+    // Needed for colour group changes to be visible
+    QCoreApplication::postEvent(this, new HbEvent(HbEvent::ThemeChanged));  
 }
 
 //---------------------------------------------------------------
@@ -439,6 +431,8 @@
         case ConvergedMessage::SentState:
         {
             mSendingState = Sent;
+            // Needed for colour group changes to be visible
+            QCoreApplication::postEvent(this, new HbEvent(HbEvent::ThemeChanged));  
             break;
         }
         case ConvergedMessage::Sending:
@@ -526,10 +520,6 @@
 //---------------------------------------------------------------
 void MsgConversationWidget::setTimeStamp(const QString &timeStamp)
 {
-    if(!mTimeStampTextItem)
-    {
-	  mTimeStampTextItem = new HbTextItem(this);
-	  }
     HbStyle::setItemName(mTimeStampTextItem, "timeStamp");
 
     mTimeStampTextItem->setText(timeStamp);
@@ -662,17 +652,7 @@
 	       HbStyle::setItemName(mPriorityIconItem, "");
 	        mPriorityIconItem->hide();
 	    }
-   
-	    if(mAudioIconItem){
-	        HbStyle::setItemName(mAudioIconItem, "");
-	        mAudioIconItem->hide();              
-	       }
-    
-	    if(mVideoIconItem){
-	        HbStyle::setItemName(mVideoIconItem, "");
-	        mVideoIconItem->hide();
-	      }
-    
+         
 	    if(mPlayIconItem){
 	        HbStyle::setItemName(mPlayIconItem, "");
 	        mPlayIconItem->hide();
@@ -685,13 +665,66 @@
     	}
 
 //---------------------------------------------------------------
+// MsgConversationWidget::orientationchanged
+// @see header file
+//---------------------------------------------------------------
+void MsgConversationWidget::orientationchanged(Qt::Orientation orientation)
+{
+    QDEBUG_WRITE("MsgConversationWidget:orientationchanged start.")
+            
+    repolish();
+    
+    QDEBUG_WRITE("MsgConversationWidget:orientationchanged end.")    
+}
+
+//---------------------------------------------------------------
+// MsgConversationWidget::polish
+// @see header file
+//---------------------------------------------------------------
+void MsgConversationWidget::polish(HbStyleParameters &params)
+{   
+    QString bubbleOrig = HbStyle::itemName(mBubbleFrameItem);
+    QString newItemIconOrig = HbStyle::itemName(mNewFrameItem);
+    QString subjectOrig = HbStyle::itemName(mSubjectTextItem);
+    QString bodyTextOrig = HbStyle::itemName(mBodyTextItem);
+    QString previewOrig = HbStyle::itemName(mPreviewIconItem);
+    QString priorityOrig = HbStyle::itemName(mPriorityIconItem);
+    QString attachmentOrig = HbStyle::itemName(mAttachmentIconItem);
+    QString timeStampOrig = HbStyle::itemName(mTimeStampTextItem);
+    QString playIconOrig = HbStyle::itemName(mPlayIconItem);
+
+    // Make sure that all the sub-items are polished in every polish.
+    HbStyle::setItemName(mBubbleFrameItem, "bubble");
+    HbStyle::setItemName(mNewFrameItem, "newItemIcon");
+    HbStyle::setItemName(mSubjectTextItem, "subject");
+    HbStyle::setItemName(mBodyTextItem, "bodyText");
+    HbStyle::setItemName(mPreviewIconItem, "preview");
+    HbStyle::setItemName(mPriorityIconItem, "priority");
+    HbStyle::setItemName(mAttachmentIconItem, "attachment");
+    HbStyle::setItemName(mTimeStampTextItem, "timeStamp");
+    HbStyle::setItemName(mPlayIconItem, "playIcon");
+
+    HbWidget::polish(params);
+
+    HbStyle::setItemName(mBubbleFrameItem, bubbleOrig);
+    HbStyle::setItemName(mNewFrameItem, newItemIconOrig);
+    HbStyle::setItemName(mSubjectTextItem, subjectOrig);
+    HbStyle::setItemName(mBodyTextItem, bodyTextOrig);
+    HbStyle::setItemName(mPreviewIconItem, previewOrig);
+    HbStyle::setItemName(mPriorityIconItem, priorityOrig);
+    HbStyle::setItemName(mAttachmentIconItem, attachmentOrig);
+    HbStyle::setItemName(mTimeStampTextItem, timeStampOrig);
+    HbStyle::setItemName(mPlayIconItem, playIconOrig);
+}
+
+//---------------------------------------------------------------
 // MsgConversationWidget::repolishWidget
 // @see header file
 //---------------------------------------------------------------
 void MsgConversationWidget::repolishWidget()
     	{
-    	QCoreApplication::postEvent(this, new HbEvent(HbEvent::ThemeChanged));	
     	repolish();
     	}
-    
+
+
 // EOF