messagingapp/msgui/unifiedviewer/src/univiewerpixmapwidget.cpp
changeset 41 25fe1fe642e3
parent 37 518b245aa84c
child 51 3507212d340e
--- a/messagingapp/msgui/unifiedviewer/src/univiewerpixmapwidget.cpp	Tue Jul 06 22:50:16 2010 +0530
+++ b/messagingapp/msgui/unifiedviewer/src/univiewerpixmapwidget.cpp	Fri Jul 09 14:46:10 2010 +0530
@@ -38,6 +38,10 @@
 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");
+
+const int WIDTH_RATIO = 4;
+const int HEIGHT_RATIO = 3;
 
 //---------------------------------------------------------------
 // UniViewerPixmapWidget::UniViewerPixmapWidget
@@ -51,22 +55,6 @@
 }
 
 //---------------------------------------------------------------
-// UniViewerPixmapWidget::init
-// @see header file
-//---------------------------------------------------------------
-void UniViewerPixmapWidget::init() 
-{
-    mThumbnailManager = new ThumbnailManager(this);
-    mThumbnailManager->setMode(ThumbnailManager::Default);
-    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
-    mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
-
-    connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)), this,
-    SLOT(thumbnailReady(QPixmap, void*, int, int)));
-
-}
-
-//---------------------------------------------------------------
 // UniViewerPixmapWidget::~UniViewerPixmapWidget
 // @see header file
 //---------------------------------------------------------------
@@ -168,6 +156,46 @@
 {
 }
 
+//---------------------------------------------------------------
+// UniViewerPixmapWidget::regrabGesture
+// @see header file
+//---------------------------------------------------------------
+void UniViewerPixmapWidget::regrabGesture()
+{
+    this->grabGesture(Qt::TapGesture);
+}
+
+//---------------------------------------------------------------
+// UniViewerPixmapWidget::thumbnailReady
+// @see header
+//---------------------------------------------------------------
+void UniViewerPixmapWidget::thumbnailReady(const QPixmap& pixmap, void *data, int id, int error)
+{
+    Q_UNUSED(data)
+    Q_UNUSED(id)
+    this->grabGesture(Qt::TapGesture);
+    if (!error) {
+        this->setIcon(HbIcon(pixmap));
+        this->hide();
+        emit setOverlayIcon(VIDEO_OVERLAY_ICON);
+    }
+}
+
+//---------------------------------------------------------------
+// UniViewerPixmapWidget::init
+// @see header file
+//---------------------------------------------------------------
+void UniViewerPixmapWidget::init()
+{
+    mThumbnailManager = new ThumbnailManager(this);
+    mThumbnailManager->setMode(ThumbnailManager::CropToAspectRatio);
+    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
+    mThumbnailManager->setThumbnailSize(getThumbnailSize());
+
+    connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)), this,
+        SLOT(thumbnailReady(QPixmap, void*, int, int)));
+}
+
 //----------------------------------------------------------------------------
 // UniViewerPixmapWidget::handleShortTap
 // @see header file
@@ -197,27 +225,23 @@
 }
 
 //---------------------------------------------------------------
-// UniViewerPixmapWidget::regrabGesture
+// UniViewerPixmapWidget::getThumbnailSize
 // @see header file
 //---------------------------------------------------------------
-void UniViewerPixmapWidget::regrabGesture()
+QSize UniViewerPixmapWidget::getThumbnailSize()
 {
-    this->grabGesture(Qt::TapGesture);
+    QSize thumbnailSize(1, 1);
+    HbWidget *parent = qobject_cast<HbWidget *>(this->parentWidget());
+
+    if (parent) {
+        qreal thumbnailWidth = 0.0;
+        qreal thumbnailHeight = 0.0;
+        parent->style()->parameter("hb-param-screen-short-edge", thumbnailWidth);
+        thumbnailHeight = (thumbnailWidth * HEIGHT_RATIO) / WIDTH_RATIO;
+        thumbnailSize.setHeight(qRound(thumbnailHeight));
+        thumbnailSize.setWidth(qRound(thumbnailWidth));
+    }
+    return thumbnailSize;
 }
 
-//---------------------------------------------------------------
-// UniViewerPixmapWidget::thumbnailReady
-// @see header
-//---------------------------------------------------------------
-void UniViewerPixmapWidget::thumbnailReady(const QPixmap& pixmap, void *data, int id, int error)
-{
-    Q_UNUSED(data)
-    Q_UNUSED(id)
-    this->grabGesture(Qt::TapGesture);
-    if (!error) {
-        this->setIcon(HbIcon(pixmap));
-        this->hide();
-        this->updateGeometry();
-    }
-}
 // EOF