diff -r 35b64624a9e7 -r 36f374c67aa8 messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp --- 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 #include #include -#include #include #include #include @@ -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 - (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 + (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();