--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgui/unifiededitor/src/msgunieditorattachment.cpp Fri Apr 16 14:56:15 2010 +0300
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+// INCLUDES
+#include "debugtraces.h"
+#include <HbTextItem>
+#include <HbIconItem>
+#include <QFileInfo>
+#include <QFont>
+#include <HbPushButton>
+#include <HbFrameDrawer>
+#include <HbMenu>
+#include <MsgMimeTypes.h>
+
+// USER INCLUDES
+#include "msgunieditorattachment.h"
+#include "unieditorgenutils.h"
+#include "s60qconversions.h"
+
+// Constants
+#define BYTES_TO_KBYTES_FACTOR 1024
+#define BG_FRAME "qtg_fr_groupbox"
+
+MsgUnifiedEditorAttachment::MsgUnifiedEditorAttachment( const QString& pluginPath,
+ const QString& attachmentpath,
+ const int filesize,
+ QGraphicsItem *parent ) :
+HbWidget(parent),
+mPluginPath(pluginPath),
+mPath(attachmentpath),
+mSize(filesize),
+mMimeType(QString()),
+mAttachmentIcon(0),
+mAttachmentName(0),
+mFrameItem(0)
+{
+#ifdef _DEBUG_TRACES_
+ qDebug() << "MsgUnifiedEditorAttachment calling HbStyle::registerPlugin";
+#endif
+
+ setPluginBaseId(style()->registerPlugin(mPluginPath));
+
+ mAttachmentIcon = new HbIconItem(":/qtg_small_attachment.svg", this);
+ HbStyle::setItemName(mAttachmentIcon,"attachmentIcon");
+
+ // TODO: use utility to get mimetype and size
+ int at_size = 0;
+ TMsgMediaType mediaType = EMsgMediaUnknown;
+ UniEditorGenUtils* genUtils = new UniEditorGenUtils;
+ TRAP_IGNORE(genUtils->getFileInfoL(mPath,at_size,
+ mMimeType,mediaType));
+ delete genUtils;
+ QFileInfo fileinfo(attachmentpath);
+ QString filename = fileinfo.fileName();
+ mAttachmentName = new HbTextItem(filename,this);
+ HbStyle::setItemName(mAttachmentName,"attachmentName");
+ mAttachmentName->setElideMode(Qt::ElideRight);
+
+ int sizeInKb = mSize/BYTES_TO_KBYTES_FACTOR;
+ QString fileDetails;
+ if(sizeInKb > 1)
+ {
+ fileDetails = QString().append(QString("(%1 Kb)").arg(sizeInKb));
+ }
+ else
+ {
+ fileDetails = QString().append(QString("(%1 B)").arg(mSize));
+ }
+
+ mAttachmentDetails = new HbTextItem(fileDetails, this);
+ HbStyle::setItemName(mAttachmentDetails,"attachmentDetails");
+ mAttachmentDetails->setElideMode(Qt::ElideNone);
+
+ // set underlined font
+ QFont underlinedFont(this->font());
+ underlinedFont.setUnderline(true);
+ mAttachmentName->setFont(underlinedFont);
+ mAttachmentDetails->setFont(underlinedFont);
+
+ mFrameItem = new HbPushButton(this);
+ HbStyle::setItemName(mFrameItem, "bgFrame");
+ HbFrameDrawer *fd = new HbFrameDrawer(BG_FRAME, HbFrameDrawer::NinePieces);
+ mFrameItem->setFrameBackground(fd);
+ connect(mFrameItem, SIGNAL(clicked(bool)), this, SIGNAL(clicked()));
+ connect(mFrameItem, SIGNAL(longPress(QPointF)), this, SLOT(longPressed(QPointF)));
+}
+
+MsgUnifiedEditorAttachment::~MsgUnifiedEditorAttachment()
+{
+ style()->unregisterPlugin(mPluginPath);
+}
+
+const QString& MsgUnifiedEditorAttachment::path()
+{
+ return mPath;
+}
+
+qreal MsgUnifiedEditorAttachment::size()
+{
+ return mSize;
+}
+
+const QString& MsgUnifiedEditorAttachment::mimeType()
+{
+ return mMimeType;
+}
+
+void MsgUnifiedEditorAttachment::longPressed(QPointF position)
+{
+ HbMenu* menu = new HbMenu;
+ menu->addAction(tr("Open"), this, SLOT(openAttachment()));
+ menu->addAction(tr("Remove"), this, SLOT(removeAttachment()));
+ menu->addAction(tr("View details"), this, SLOT(viewDetails()));
+ menu->setDismissPolicy(HbPopup::TapAnywhere);
+ menu->setAttribute(Qt::WA_DeleteOnClose, true);
+ menu->setPreferredPos(position);
+ menu->show();
+}
+
+void MsgUnifiedEditorAttachment::removeAttachment()
+{
+ emit deleteMe(this);
+}
+
+void MsgUnifiedEditorAttachment::openAttachment()
+{
+ //open corresponding viewer app.
+}
+
+void MsgUnifiedEditorAttachment::viewDetails()
+{
+ //open details view.
+}
+
+bool MsgUnifiedEditorAttachment::isMultimediaContent()
+{
+ bool ret = true;
+ QString vcard = S60QConversions::s60Desc8ToQString(KMsgMimeVCard());
+ QString vcal = S60QConversions::s60Desc8ToQString(KMsgMimeVCal());
+ QString ical = S60QConversions::s60Desc8ToQString(KMsgMimeICal());
+ if( !QString::compare(mMimeType, vcard, Qt::CaseInsensitive) ||
+ !QString::compare(mMimeType, vcal, Qt::CaseInsensitive) ||
+ !QString::compare(mMimeType, ical, Qt::CaseInsensitive) )
+ {
+ // vcard, vcal are not mm content
+ ret = false;
+ }
+ return ret;
+}
+
+// EOF