diff -r 2a272ef608c4 -r 3507212d340e messagingapp/msgui/unifiedviewer/src/univiewerpixmapwidget.cpp --- a/messagingapp/msgui/unifiedviewer/src/univiewerpixmapwidget.cpp Tue Aug 03 21:34:40 2010 +0530 +++ b/messagingapp/msgui/unifiedviewer/src/univiewerpixmapwidget.cpp Fri Aug 06 23:19:50 2010 +0530 @@ -34,21 +34,19 @@ #define LOC_OPEN hbTrId("txt_common_menu_open") #define LOC_SAVE hbTrId("txt_common_menu_save") -const QString PIXMAP_ICON("qtg_small_image"); -const QString CORRUPTED_PIXMAP_ICON("qtg_large_corrupted"); -const QString VIDEO_MIMETYPE("video"); -const QString MSG_VIDEO_ICON("qtg_small_video"); -const QString VIDEO_OVERLAY_ICON("qtg_large_video_player"); +static const char PIXMAP_ICON[] = "qtg_small_image"; +static const char CORRUPTED_PIXMAP_ICON[] = "qtg_large_corrupted"; +static const char VIDEO_MIMETYPE[] = "video"; -const int WIDTH_RATIO = 4; -const int HEIGHT_RATIO = 3; +static const int WIDTH_RATIO = 4; +static const int HEIGHT_RATIO = 3; //--------------------------------------------------------------- // UniViewerPixmapWidget::UniViewerPixmapWidget // @see header file //--------------------------------------------------------------- UniViewerPixmapWidget::UniViewerPixmapWidget(QGraphicsItem *parent) : - HbIconItem(parent), mViewerUtils(0), mThumbnailManager(0) + HbIconItem(parent), mInfo(0), mViewerUtils(0), mThumbnailManager(0) { this->grabGesture(Qt::TapGesture); init(); @@ -60,30 +58,54 @@ //--------------------------------------------------------------- UniViewerPixmapWidget::~UniViewerPixmapWidget() { + if (mInfo) { + delete mInfo; + mInfo = NULL; + } } //--------------------------------------------------------------- -// UniViewerPixmapWidget::setPixmap +// UniViewerPixmapWidget::populate // @see header file //--------------------------------------------------------------- void UniViewerPixmapWidget::populate(UniMessageInfo *info) { mMimeType = info->mimetype(); mPixmapPath = info->path(); + + /** + * Create a copy of info for video content. + * mInfo will be deleted in the destructor. + */ if (mMimeType.contains(VIDEO_MIMETYPE)) { - this->setIcon(MSG_VIDEO_ICON); - mThumbnailManager->getThumbnail(mPixmapPath); - this->ungrabGesture(Qt::TapGesture); + mInfo = new UniMessageInfo(*info); } - else if (info->isProtected()) { - this->setIconName(PIXMAP_ICON); + + if (info->isProtected()) { + if (mMimeType.contains(VIDEO_MIMETYPE)) { + emit thumbnailFound(false, mInfo); + } + else { + this->setIconName(PIXMAP_ICON); + } } else if (info->isCorrupted()) { - this->setIconName(CORRUPTED_PIXMAP_ICON); + if (mMimeType.contains(VIDEO_MIMETYPE)) { + emit thumbnailFound(false, mInfo); + } + else { + this->setIconName(CORRUPTED_PIXMAP_ICON); + } } else { - QPixmap pixmap(mPixmapPath); - this->setIcon(HbIcon(pixmap)); + if (mMimeType.contains(VIDEO_MIMETYPE)) { + mThumbnailManager->getThumbnail(mPixmapPath); + this->ungrabGesture(Qt::TapGesture); + } + else { + QPixmap pixmap(mPixmapPath); + this->setIcon(HbIcon(pixmap)); + } } } @@ -174,10 +196,13 @@ Q_UNUSED(data) Q_UNUSED(id) this->grabGesture(Qt::TapGesture); - if (!error) { + if (error) { + emit thumbnailFound(false, mInfo); + } + else { this->setIcon(HbIcon(pixmap)); this->hide(); - emit setOverlayIcon(VIDEO_OVERLAY_ICON); + emit thumbnailFound(true, NULL); } }