53 // MsgConversationViewItem::MsgConversationViewItem |
53 // MsgConversationViewItem::MsgConversationViewItem |
54 // Constructor |
54 // Constructor |
55 //--------------------------------------------------------------- |
55 //--------------------------------------------------------------- |
56 MsgConversationViewItem::MsgConversationViewItem(QGraphicsItem* parent) : |
56 MsgConversationViewItem::MsgConversationViewItem(QGraphicsItem* parent) : |
57 HbListViewItem(parent), mIncoming(false), mConversation(0), |
57 HbListViewItem(parent), mIncoming(false), mConversation(0), |
58 mMessageStateIconItem(0) |
58 mIncomingMsgStateIconItem(0), mOutgoingMsgStateIconItem(0) |
59 { |
59 { |
60 } |
60 } |
61 |
61 |
62 //--------------------------------------------------------------- |
62 //--------------------------------------------------------------- |
63 // MsgConversationViewItem::MsgConversationViewItem |
63 // MsgConversationViewItem::MsgConversationViewItem |
70 //--------------------------------------------------------------- |
70 //--------------------------------------------------------------- |
71 // MsgConversationViewItem::createItem |
71 // MsgConversationViewItem::createItem |
72 // Create a new decorator item. |
72 // Create a new decorator item. |
73 //--------------------------------------------------------------- |
73 //--------------------------------------------------------------- |
74 MsgConversationViewItem* MsgConversationViewItem::createItem() |
74 MsgConversationViewItem* MsgConversationViewItem::createItem() |
75 { |
75 { |
76 return new MsgConversationViewItem(*this); |
76 MsgConversationViewItem *item = new MsgConversationViewItem(*this); |
77 } |
77 item->init(); |
|
78 return item; |
|
79 } |
78 |
80 |
79 //--------------------------------------------------------------- |
81 //--------------------------------------------------------------- |
80 // MsgConversationViewItem::updateChildItems |
82 // MsgConversationViewItem::updateChildItems |
81 // |
83 // |
82 //--------------------------------------------------------------- |
84 //--------------------------------------------------------------- |
83 void MsgConversationViewItem::updateChildItems() |
85 void MsgConversationViewItem::updateChildItems() |
84 { |
86 { |
85 |
|
86 if (!mMessageStateIconItem) |
|
87 { |
|
88 mMessageStateIconItem = new HbIconItem(this); |
|
89 HbStyle::setItemName(mMessageStateIconItem, "msgStateIcon"); |
|
90 } |
|
91 |
|
92 QModelIndex index = modelIndex(); |
87 QModelIndex index = modelIndex(); |
93 |
88 |
94 #ifdef _DEBUG_TRACES_ |
89 #ifdef _DEBUG_TRACES_ |
95 qCritical() << "START MsgConversationViewItem::updateChildItems: " |
90 qCritical() << "START MsgConversationViewItem::updateChildItems: " |
96 << index.data(ConvergedMsgId).toInt(); |
91 << index.data(ConvergedMsgId).toInt(); |
134 |
129 |
135 //--------------------------------------------------------------- |
130 //--------------------------------------------------------------- |
136 // MsgConversationViewItem::updateSmsTypeItem |
131 // MsgConversationViewItem::updateSmsTypeItem |
137 // @see header file |
132 // @see header file |
138 //--------------------------------------------------------------- |
133 //--------------------------------------------------------------- |
139 void MsgConversationViewItem::updateSmsTypeItem(const QModelIndex& index, int messageSubType) |
134 void MsgConversationViewItem::updateSmsTypeItem(const QModelIndex& index, |
140 { |
135 int messageSubType) |
141 |
136 { |
142 if (!mConversation) |
137 |
143 { |
|
144 mConversation = new MsgConversationWidget(this); |
|
145 HbStyle::setItemName(mConversation, "msgconvwidget"); |
|
146 } |
|
147 mIncoming = false; |
138 mIncoming = false; |
148 mConversation->resetProperties(); |
139 mConversation->resetProperties(); |
149 |
140 |
150 int direction = index.data(Direction).toInt(); |
141 int direction = index.data(Direction).toInt(); |
151 |
142 |
152 if (direction == ConvergedMessage::Incoming) |
143 if (direction == ConvergedMessage::Incoming) |
153 { |
144 { |
154 setIncoming(true); |
145 setIncoming(true); |
155 mConversation->setIncoming(true); |
146 mConversation->setIncoming(true); |
156 |
147 |
157 mMessageStateIconItem->setVisible(false); |
148 mIncomingMsgStateIconItem->setVisible(false); |
158 } |
149 } |
159 else if (direction == ConvergedMessage::Outgoing) |
150 else if (direction == ConvergedMessage::Outgoing) |
160 { |
151 { |
161 setIncoming(false); |
152 setIncoming(false); |
162 mConversation->setIncoming(false); |
153 mConversation->setIncoming(false); |
163 |
154 |
329 { |
324 { |
330 mConversation->setImage(false); |
325 mConversation->setImage(false); |
331 mConversation->setAudio(true); |
326 mConversation->setAudio(true); |
332 mConversation->displayAudioIcon(); |
327 mConversation->displayAudioIcon(); |
333 mConversation->setSubject(LOC_RINGING_TONE); |
328 mConversation->setSubject(LOC_RINGING_TONE); |
|
329 mConversation->setBodyText(bodyText); |
334 } |
330 } |
335 else if (messageSubType == ConvergedMessage::VCard) |
331 else if (messageSubType == ConvergedMessage::VCard) |
336 { |
332 { |
337 mConversation->setImage(false); |
333 mConversation->setImage(false); |
338 mConversation->setAudio(true); |
334 mConversation->setAudio(true); |
378 // MsgConversationViewItem::containsPoint |
374 // MsgConversationViewItem::containsPoint |
379 // |
375 // |
380 //--------------------------------------------------------------- |
376 //--------------------------------------------------------------- |
381 bool MsgConversationViewItem::containsPoint(const QPointF& point) |
377 bool MsgConversationViewItem::containsPoint(const QPointF& point) |
382 { |
378 { |
383 return mConversation->boundingRect(). |
379 return mConversation->boundingRect(). contains(mConversation->mapFromScene( |
384 contains(mConversation->mapFromScene(point)); |
380 point)); |
385 } |
381 } |
386 |
382 |
387 //--------------------------------------------------------------- |
383 //--------------------------------------------------------------- |
388 // MsgConversationViewItem::setIncoming |
384 // MsgConversationViewItem::setIncoming |
389 // @see header file |
385 // @see header file |
390 //--------------------------------------------------------------- |
386 //--------------------------------------------------------------- |
391 void MsgConversationViewItem::setIncoming(bool incoming) |
387 void MsgConversationViewItem::setIncoming(bool incoming) |
392 { |
388 { |
393 mIncoming = incoming; |
389 mIncoming = incoming; |
|
390 |
|
391 if (mIncoming) |
|
392 { |
|
393 HbStyle::setItemName(mOutgoingMsgStateIconItem, ""); |
|
394 mOutgoingMsgStateIconItem->setVisible(false); |
|
395 HbStyle::setItemName(mIncomingMsgStateIconItem, |
|
396 "msgStateIconIncoming"); |
|
397 } |
|
398 else |
|
399 { |
|
400 HbStyle::setItemName(mIncomingMsgStateIconItem, ""); |
|
401 mIncomingMsgStateIconItem->setVisible(false); |
|
402 HbStyle::setItemName(mOutgoingMsgStateIconItem, |
|
403 "msgStateIconOutgoing"); |
|
404 } |
394 } |
405 } |
395 |
406 |
396 //--------------------------------------------------------------- |
407 //--------------------------------------------------------------- |
397 // MsgConversationViewItem::isIncoming |
408 // MsgConversationViewItem::isIncoming |
398 // @see header file |
409 // @see header file |
406 // MsgConversationViewItem::setMessageStateIcon |
417 // MsgConversationViewItem::setMessageStateIcon |
407 // @see header file |
418 // @see header file |
408 //--------------------------------------------------------------- |
419 //--------------------------------------------------------------- |
409 void MsgConversationViewItem::setMessageStateIcon(int messageState) |
420 void MsgConversationViewItem::setMessageStateIcon(int messageState) |
410 { |
421 { |
411 HbIconAnimator& iconAnimator = mMessageStateIconItem->animator(); |
422 HbIconAnimator& iconAnimator = mOutgoingMsgStateIconItem->animator(); |
412 HbIconAnimationManager* iconAnimationManager = HbIconAnimationManager::global(); |
423 HbIconAnimationManager* iconAnimationManager = |
|
424 HbIconAnimationManager::global(); |
413 switch (messageState) |
425 switch (messageState) |
414 { |
426 { |
415 case ConvergedMessage::Waiting: |
427 case ConvergedMessage::Waiting: |
416 case ConvergedMessage::Scheduled: |
428 case ConvergedMessage::Scheduled: |
417 case ConvergedMessage::Sending: |
429 case ConvergedMessage::Sending: |
418 { |
430 { |
419 bool defined = iconAnimationManager->addDefinitionFile(ANIMATION_FILE); |
431 bool defined = iconAnimationManager->addDefinitionFile( |
420 HbIcon animIcon; |
432 ANIMATION_FILE); |
|
433 HbIcon animIcon; |
421 animIcon.setIconName(ANIMATION_ICON_NAME); |
434 animIcon.setIconName(ANIMATION_ICON_NAME); |
422 QSizeF size = mMessageStateIconItem->size(); |
435 QSizeF size = mOutgoingMsgStateIconItem->size(); |
423 mMessageStateIconItem->setIcon(animIcon); |
436 mOutgoingMsgStateIconItem->setIcon(animIcon); |
424 mMessageStateIconItem->setVisible(true); |
437 mOutgoingMsgStateIconItem->setVisible(true); |
425 iconAnimator.startAnimation(); |
438 iconAnimator.startAnimation(); |
426 repolish(); |
|
427 break; |
439 break; |
428 } |
440 } |
429 case ConvergedMessage::Suspended: |
441 case ConvergedMessage::Suspended: |
430 { |
442 { |
431 iconAnimator.stopAnimation(); |
443 iconAnimator.stopAnimation(); |
432 mMessageStateIconItem->setIcon(MSG_OUTBOX_ICON); |
444 mOutgoingMsgStateIconItem->setIcon(MSG_OUTBOX_ICON); |
433 mMessageStateIconItem->setVisible(true); |
445 mOutgoingMsgStateIconItem->setVisible(true); |
434 break; |
446 break; |
435 |
447 |
436 } |
448 } |
437 case ConvergedMessage::Resend: |
449 case ConvergedMessage::Resend: |
438 { |
450 { |
439 iconAnimator.stopAnimation(); |
451 iconAnimator.stopAnimation(); |
440 mMessageStateIconItem->setIcon(MSG_OUTBOX_ICON); |
452 mOutgoingMsgStateIconItem->setIcon(MSG_OUTBOX_ICON); |
441 mMessageStateIconItem->setVisible(true); |
453 mOutgoingMsgStateIconItem->setVisible(true); |
442 break; |
454 break; |
443 } |
455 } |
444 case ConvergedMessage::Failed: |
456 case ConvergedMessage::Failed: |
445 { |
457 { |
446 iconAnimator.stopAnimation(); |
458 iconAnimator.stopAnimation(); |
447 mMessageStateIconItem->setIcon(MSG_FAIL_ICON); |
459 mOutgoingMsgStateIconItem->setIcon(MSG_FAIL_ICON); |
448 mMessageStateIconItem->setVisible(true); |
460 mOutgoingMsgStateIconItem->setVisible(true); |
449 break; |
461 break; |
450 } |
462 } |
451 case ConvergedMessage::Unknown: |
463 case ConvergedMessage::Unknown: |
452 default: |
464 default: |
453 { |
465 { |
454 iconAnimator.stopAnimation(); |
466 iconAnimator.stopAnimation(); |
455 mMessageStateIconItem->setVisible(false); |
467 mOutgoingMsgStateIconItem->setVisible(false); |
456 break; |
468 break; |
457 } |
469 } |
458 } |
470 } |
459 } |
471 } |
460 |
472 |
463 // @see header file |
475 // @see header file |
464 //--------------------------------------------------------------- |
476 //--------------------------------------------------------------- |
465 |
477 |
466 void MsgConversationViewItem::setNotificationStateIcon(int notificationState) |
478 void MsgConversationViewItem::setNotificationStateIcon(int notificationState) |
467 { |
479 { |
468 HbIconAnimator& iconAnimator = mMessageStateIconItem->animator(); |
480 HbIconAnimator& iconAnimator = mIncomingMsgStateIconItem->animator(); |
469 HbIconAnimationManager* iconAnimationManager = HbIconAnimationManager::global(); |
481 HbIconAnimationManager* iconAnimationManager = |
|
482 HbIconAnimationManager::global(); |
470 switch (notificationState) |
483 switch (notificationState) |
471 { |
484 { |
472 case ConvergedMessage::NotifRetrieving: |
485 case ConvergedMessage::NotifRetrieving: |
473 case ConvergedMessage::NotifWaiting: |
486 case ConvergedMessage::NotifWaiting: |
474 { |
487 { |
475 //TODO: Temp icon until official icons are received |
488 //TODO: Temp icon until official icons are received |
476 bool defined = iconAnimationManager->addDefinitionFile(ANIMATION_FILE); |
489 bool defined = iconAnimationManager->addDefinitionFile( |
|
490 ANIMATION_FILE); |
477 HbIcon animIcon; |
491 HbIcon animIcon; |
478 animIcon.setIconName(ANIMATION_ICON_NAME); |
492 animIcon.setIconName(ANIMATION_ICON_NAME); |
479 QSizeF size = mMessageStateIconItem->size(); |
493 QSizeF size = mIncomingMsgStateIconItem->size(); |
480 mMessageStateIconItem->setIcon(animIcon); |
494 mIncomingMsgStateIconItem->setIcon(animIcon); |
481 mMessageStateIconItem->setVisible(true); |
495 mIncomingMsgStateIconItem->setVisible(true); |
482 iconAnimator.startAnimation(); |
496 iconAnimator.startAnimation(); |
483 repolish(); |
|
484 break; |
497 break; |
485 } |
498 } |
486 default: |
499 default: |
487 { |
500 { |
488 iconAnimator.stopAnimation(); |
501 iconAnimator.stopAnimation(); |
489 mMessageStateIconItem->setVisible(false); |
502 mIncomingMsgStateIconItem->setVisible(false); |
490 break; |
503 break; |
491 } |
504 } |
492 } |
505 } |
493 } |
506 } |
494 |
507 |
499 void MsgConversationViewItem::pressStateChanged (bool pressed, bool animate) |
512 void MsgConversationViewItem::pressStateChanged (bool pressed, bool animate) |
500 { |
513 { |
501 mConversation->pressStateChanged(pressed, animate); |
514 mConversation->pressStateChanged(pressed, animate); |
502 } |
515 } |
503 |
516 |
|
517 //--------------------------------------------------------------- |
|
518 // MsgConversationViewItem::init |
|
519 // @see header file |
|
520 //--------------------------------------------------------------- |
|
521 void MsgConversationViewItem::init() |
|
522 { |
|
523 mConversation = new MsgConversationWidget(this); |
|
524 HbStyle::setItemName(mConversation, "msgconvwidget"); |
|
525 |
|
526 mIncomingMsgStateIconItem = new HbIconItem(this); |
|
527 |
|
528 mOutgoingMsgStateIconItem = new HbIconItem(this); |
|
529 } |
|
530 |
504 // EOF |
531 // EOF |