messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp
changeset 44 36f374c67aa8
parent 43 35b64624a9e7
child 47 5b14749788d7
child 52 12db4185673b
--- a/messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp	Wed Jun 23 18:09:17 2010 +0300
+++ b/messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp	Tue Jul 06 14:12:40 2010 +0300
@@ -22,7 +22,6 @@
 #include <HbFrameDrawer>
 #include <HbIconItem>
 #include <HbAction>
-#include <hbinputeditorinterface.h>
 #include <HbMainWindow>
 #include <HbDeviceProfile>
 #include <QImageReader>
@@ -58,7 +57,6 @@
 
 // Constants
 const QString BACKGROUND_FRAME("qtg_fr_btn_normal");
-const QString SEND_ICON("qtg_mono_send");
 
 const int KShowCounterLimit = 10;
 const int BYTES_TO_KBYTES_FACTOR = 1024; 
@@ -108,20 +106,14 @@
 mMediaResolver(0),
 mImageInfo(0),
 mProcessingWidget(0),
-mDraftMessage(false)
+mDraftMessage(false),
+mIsImageResizing(false)
 {
     mTextEdit = new HbTextEdit(this);
-    mTextEdit->setSmileysEnabled(true);
     mTextEdit->setPlaceholderText(LOC_HINT_TEXT);
     HbStyle::setItemName(mTextEdit,"textEdit");
     connect(mTextEdit, SIGNAL(contentsChanged()), this, SLOT(onTextChanged()));
 
-    // add "Send" action in VKB
-    HbEditorInterface editorInterface(mTextEdit);
-    HbAction *sendAction = new HbAction(HbIcon(SEND_ICON), QString(),this);
-    connect(sendAction, SIGNAL(triggered()),this, SIGNAL(sendMessage()));
-    editorInterface.addAction(sendAction);
-
     mMmsConformanceCheck = new MmsConformanceCheck;
     
     mCharCounter = new HbTextItem(this);
@@ -178,69 +170,82 @@
     return mTextEdit->toPlainText();
 }
 
-void MsgUnifiedEditorBody::setImage(QString& imagefile , bool draftMessage)
-{
+void MsgUnifiedEditorBody::setImage(QString& imagefile, bool draftMessage)
+    {
+    // do nothing if filepath is empty
+    if (imagefile.isEmpty())
+        {
+        return;
+        }
+
     mDraftMessage = draftMessage;
     if (!mImageInfo)
-     {
+        {
         setImage(true);
-        
+
         mImageFile = imagefile;
         if (mPixmapItem)
-        {
+            {
             mPixmapItem->setParent(NULL);
             delete mPixmapItem;
             mPixmapItem = NULL;
             mImageSize = 0;
-        }
+            }
 
         int error = KErrNone;
-        
-        if( !mProcessImageOperation )
-        {
-        TRAP(error,mProcessImageOperation = 
-            CUniEditorProcessImageOperation::NewL(*this));
-        }
-        if( !mMediaResolver && error == KErrNone )
-        {
-        TRAP(error,mMediaResolver = CMsgMediaResolver::NewL());
-        }
+        if (!mDraftMessage)
+            {
+        // if image is in draft, no need to resize it because it is resized already
+            if (!mProcessImageOperation)
+                {
+                TRAP(error,mProcessImageOperation =
+                        CUniEditorProcessImageOperation::NewL(*this));
+                }
+            if (!mMediaResolver && error == KErrNone)
+                {
+                TRAP(error,mMediaResolver = CMsgMediaResolver::NewL());
+                }
 
-        if( error == KErrNone)
-        {
-            mMediaResolver->SetCharacterSetRecognition(EFalse);
-            HBufC *name = XQConversions::qStringToS60Desc(imagefile);
-            RFile file;
-            TRAP(error, file = mMediaResolver->FileHandleL(*name));
-            if(error == KErrNone)
-            {
-                TRAP(error,mImageInfo = static_cast<CMsgImageInfo*>
-                (mMediaResolver->CreateMediaInfoL(file)));
+            if (error == KErrNone)
+                {
+                mMediaResolver->SetCharacterSetRecognition(EFalse);
+                HBufC *name = XQConversions::qStringToS60Desc(imagefile);
+                RFile file;
+                TRAP(error, file = mMediaResolver->FileHandleL(*name));
                 if (error == KErrNone)
-                {
-                    TRAP(error, mMediaResolver->ParseInfoDetailsL(
-                            mImageInfo, file));
+                    {
+                    TRAP(error,mImageInfo = static_cast<CMsgImageInfo*>
+                            (mMediaResolver->CreateMediaInfoL(file)));
+                    if (error == KErrNone)
+                        {
+                        TRAP(error, mMediaResolver->ParseInfoDetailsL(
+                                        mImageInfo, file));
+                        }
+                    file.Close();
+                    }
+                delete name;
                 }
-                file.Close();
             }
-            delete name;
-        }
-
-        if (error == KErrNone)
-        {
+        if (error == KErrNone && !mDraftMessage)
+            {
             mSavedImageFile = imagefile;
             startResizeAnimation();
+            mIsImageResizing = true;
             mProcessImageOperation->Process(mImageInfo);
-        }
+            }
         else
-        {
-            delete mImageInfo;
-            mImageInfo = NULL;
+            {
+            if (mImageInfo)
+                {
+                delete mImageInfo;
+                mImageInfo = NULL;
+                }
             mSavedImageFile.clear();
             handleSetImage();
+            }
+
         }
     }
-}
 
 void MsgUnifiedEditorBody::handleSetImage()
 {   
@@ -275,14 +280,17 @@
     this->repolish();
 
     // emit signal to indicate addition of image
-    if(!mDraftMessage)
-    {
-        emit contentChanged();
-    }
+    emit contentChanged();
 }
 
 void MsgUnifiedEditorBody::setAudio(QString& audiofile)
 {
+    // do nothing if filepath is empty
+    if(audiofile.isEmpty())
+    {
+        return;
+    }
+
     //check for insert conformance
     if(EInsertSuccess != mMmsConformanceCheck->checkModeForInsert(audiofile))
         return;
@@ -328,7 +336,10 @@
 
 void MsgUnifiedEditorBody::setText(QString& text)
 {
-	mTextEdit->setPlainText(text);
+    if(!text.isEmpty())
+    {    
+        mTextEdit->setPlainText(text);
+    }
 }
 
 const QStringList MsgUnifiedEditorBody::mediaContent()
@@ -448,7 +459,6 @@
                 mPixmapItem->setPos(currPos);
             }
             mPixmapItem->show();
-            emit enableSendButton(true);
             }
             
             if(mProcessingWidget)
@@ -628,8 +638,6 @@
 void MsgUnifiedEditorBody::EditorOperationEvent(
     TUniEditorProcessImageOperationEvent aEvent, TFileName aFileName)
 {
-    stopResizeAnimation();
-    
     delete mImageInfo;
     mImageInfo = NULL;
 
@@ -643,8 +651,13 @@
         mImageFile = mSavedImageFile;
     }
     mSavedImageFile.clear();
+
+   // image resize is complete. reset the image resize flag
+    mIsImageResizing = false;
     //handle the processed image from ProcessImage Operation
     handleSetImage();
+    
+    stopResizeAnimation();
 }
 
 void MsgUnifiedEditorBody::startResizeAnimation()
@@ -665,6 +678,7 @@
     processingLayout->addItem(processingText);
     
     HbIconItem* animationItem = new HbIconItem(ANIMATION_ICON,mProcessingWidget);
+    animationItem->setAlignment(Qt::AlignHCenter);
     processingLayout->addItem(animationItem);
     
     HbIconAnimator& iconAnimator = animationItem->animator();