diff -r a32b19fb291e -r 5b14749788d7 messagingapp/msgui/conversationview/src/msgconversationwidget.cpp --- a/messagingapp/msgui/conversationview/src/msgconversationwidget.cpp Thu Jun 17 09:57:06 2010 +0100 +++ b/messagingapp/msgui/conversationview/src/msgconversationwidget.cpp Thu Jul 22 16:32:06 2010 +0100 @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include "debugtraces.h" @@ -42,9 +44,7 @@ const QString MSG_HIGH_PRIORITY_ICON("qtg_small_priority_high"); 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"); +const QString MSG_AUDIO_PLAY_ICON("qtg_small_sound"); // Frames @@ -56,9 +56,6 @@ const QString CV_SENT_HIGHLIGHT_FR("qtg_fr_convlist_sent_highlight"); const QString NEW_ITEM_FRAME("qtg_fr_list_new_item"); -//selecet preview-icon query -_LIT(KSelectPreviewIconStmt,"SELECT message_id, preview_icon FROM conversation_messages WHERE message_id = :message_id "); - //--------------------------------------------------------------- // MsgConversationWidget::MsgConversationWidget // @see header file @@ -118,7 +115,27 @@ 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); + 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(); } //--------------------------------------------------------------- @@ -127,11 +144,6 @@ //--------------------------------------------------------------- void MsgConversationWidget::setSubject(const QString &subject) { - if (!mSubjectTextItem) - { - mSubjectTextItem = new HbTextItem(this); - mSubjectTextItem->setTextWrapping(Hb::TextWordWrap); - } HbStyle::setItemName(mSubjectTextItem, "subject"); mSubjectTextItem->setText(subject); mSubjectTextItem->show(); @@ -143,11 +155,6 @@ //--------------------------------------------------------------- void MsgConversationWidget::setBodyText(const QString &body) { - if (!mBodyTextItem) - { - mBodyTextItem = new HbTextItem(this); - mBodyTextItem->setTextWrapping(Hb::TextWordWrap); - } HbStyle::setItemName(mBodyTextItem, "bodyText"); mBodyTextItem->setText(body); @@ -155,107 +162,23 @@ } //--------------------------------------------------------------- -// MsgConversationWidget::setPreviewIconPath +// MsgConversationWidget::setPreviewIcon // @see header file //--------------------------------------------------------------- -void MsgConversationWidget::setPreviewIconPath(const QString &filePath,int msgId) +void MsgConversationWidget::setPreviewIcon(HbIcon& icon) { - if (!mPreviewIconItem) - { - mPreviewIconItem = new HbIconItem(this); - mPreviewIconItem->setAlignment(Qt::AlignHCenter | Qt::AlignTop); - } + QCRITICAL_WRITE("MsgConversationWidget::setPreviewIcon start.") + HbStyle::setItemName(mPreviewIconItem, "preview"); - //sql query to get preview-icon from DB - TBool isOpen = EFalse; - bool imagePreviewed = false; - - //get DB handle and check if it is open - RSqlDatabase& sqlDb = ConversationsEngine::instance()->getDBHandle(isOpen); - if (isOpen) - { - RSqlStatement sqlSelectPreviewIconStmt; - TInt err = sqlSelectPreviewIconStmt.Prepare(sqlDb, - KSelectPreviewIconStmt); - - QCRITICAL_WRITE_FORMAT("Error from Prepare()", err) - - if (err == KErrNone) - { - //msg_id - TInt msgIdIndex = sqlSelectPreviewIconStmt.ParameterIndex( - _L(":message_id")); - sqlSelectPreviewIconStmt.BindInt(msgIdIndex, msgId); - - // get preview-icon from DB - err = sqlSelectPreviewIconStmt.Next(); - QCRITICAL_WRITE_FORMAT("Error from Next()", err) - - if (err == KSqlAtRow) - { - TInt previewIconIndex = sqlSelectPreviewIconStmt.ColumnIndex( - _L("preview_icon")); - - RSqlColumnReadStream stream; - - //Get data from binary column BLOB - err = stream.ColumnBinary(sqlSelectPreviewIconStmt, - previewIconIndex); - - QCRITICAL_WRITE_FORMAT("Error from ColumnBinary()", err) - - if (err == KErrNone) - { - CFbsBitmap *bitmap = new CFbsBitmap; - TRAPD(err,bitmap->InternalizeL(stream)); - QCRITICAL_WRITE_FORMAT("Error from bitmap InternalizeL()", err) - //convert bitmap to pixmap - if (err == KErrNone) - { - TSize size = bitmap->SizeInPixels(); - int bytesPerLine = bitmap->ScanLineLength(size.iWidth, - bitmap->DisplayMode()); - const uchar* dataPtr = - (const uchar*) bitmap->DataAddress(); - - QPixmap pixmap = QPixmap::fromImage(QImage(dataPtr, - size.iWidth, size.iHeight, bytesPerLine, - QImage::Format_RGB16)); + mPreviewIconItem->setIcon(icon); + mPreviewIconItem->setPreferredSize(icon.size()); + mPreviewIconItem->show(); - mPreviewIconItem->setIcon(HbIcon(pixmap)); - mPreviewIconItem->setPreferredSize(pixmap.size()); - mPreviewIconItem->setEnabled(true); - mPreviewIconItem->show(); - imagePreviewed = true; - - QCRITICAL_WRITE("Bitmap Conversion completed") - } - //remove bitmap - delete bitmap; - } - //close stream - stream.Close(); - } - } - sqlSelectPreviewIconStmt.Close(); - } + QCRITICAL_WRITE("MsgConversationWidget::setPreviewIcon end.") +} - // if not found in db, set from file path - if(!imagePreviewed) - { - QPixmap pixmap(filePath); - QPixmap scaledPixmap =pixmap.scaled(100,100,Qt::IgnoreAspectRatio); - mPreviewIconItem->setIcon(HbIcon(scaledPixmap)); - mPreviewIconItem->setPreferredSize(scaledPixmap.size()); - mPreviewIconItem->setEnabled(true); - mPreviewIconItem->show(); - } - - QCRITICAL_WRITE("MsgConversationWidget::setPreviewIconPath end.") - -} //--------------------------------------------------------------- // MsgConversationWidget::setPriority @@ -267,10 +190,6 @@ if (priority) { - if (!mPriorityIconItem) - { - mPriorityIconItem = new HbIconItem(this); - } HbStyle::setItemName(mPriorityIconItem, "priority"); if (ConvergedMessage::Low == priority) { @@ -303,10 +222,6 @@ if (attachment) { - if (!mAttachmentIconItem) - { - mAttachmentIconItem = new HbIconItem(this); - } HbStyle::setItemName(mAttachmentIconItem, "attachment"); mAttachmentIconItem->setIcon(HbIcon(MSG_ATTACH_ICON)); mAttachmentIconItem->show(); @@ -366,27 +281,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-small",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(); + } } } @@ -397,18 +315,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(); - - } } //--------------------------------------------------------------- @@ -463,6 +369,8 @@ void MsgConversationWidget::setUnread(bool unread) { mUnread = unread; + // Needed for colour group changes to be visible + QCoreApplication::postEvent(this, new HbEvent(HbEvent::ThemeChanged)); } //--------------------------------------------------------------- @@ -521,6 +429,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: @@ -608,10 +518,6 @@ //--------------------------------------------------------------- void MsgConversationWidget::setTimeStamp(const QString &timeStamp) { - if(!mTimeStampTextItem) - { - mTimeStampTextItem = new HbTextItem(this); - } HbStyle::setItemName(mTimeStampTextItem, "timeStamp"); mTimeStampTextItem->setText(timeStamp); @@ -657,15 +563,7 @@ } else { - if(mSendingState == Sending || mSendingState == Pending || - mSendingState == Unknown || mSendingState == Failed) - { - mBubbleFrameItem->frameDrawer().setFrameGraphicsName(CV_SENT_HIGHLIGHT_FR); - } - else - { mBubbleFrameItem->frameDrawer().setFrameGraphicsName(CV_SENT_NORMAL_FR); - } } } @@ -698,7 +596,11 @@ } } - void MsgConversationWidget::resetProperties() +//--------------------------------------------------------------- +// MsgConversationWidget::resetProperties +// @see header file +//--------------------------------------------------------------- +void MsgConversationWidget::resetProperties() { mHasAttachment = false; mHasImage = false; @@ -740,17 +642,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(); @@ -761,11 +653,68 @@ mPreviewIconItem->hide(); } } + +//--------------------------------------------------------------- +// MsgConversationWidget::orientationchanged +// @see header file +//--------------------------------------------------------------- +void MsgConversationWidget::orientationchanged(Qt::Orientation orientation) +{ + QDEBUG_WRITE("MsgConversationWidget:orientationchanged start.") + + repolish(); - void MsgConversationWidget::repolishWidget() + QDEBUG_WRITE("MsgConversationWidget:orientationchanged end.") +} + +//--------------------------------------------------------------- +// MsgConversationWidget::polish +// @see header file +//--------------------------------------------------------------- +void MsgConversationWidget::polish(HbStyleParameters ¶ms) +{ + 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