messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp
changeset 52 12db4185673b
parent 44 36f374c67aa8
child 70 a15d9966050f
--- a/messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp	Tue Jul 06 14:12:40 2010 +0300
+++ b/messagingapp/msgui/unifiededitor/src/msgunieditorbody.cpp	Wed Aug 18 09:45:25 2010 +0300
@@ -41,6 +41,9 @@
 #include <xqsharablefile.h>
 #include <xqappmgr.h>
 #include <xqconversions.h>
+#include <hbmessagebox.h>
+#include <hbcolorscheme.h>
+#include <QColor>
 // USER INCLUDES
 #include "msgunieditorbody.h"
 #include "UniEditorGenUtils.h"
@@ -56,7 +59,8 @@
 #include "msgunieditoraudiowidget.h"
 
 // Constants
-const QString BACKGROUND_FRAME("qtg_fr_btn_normal");
+const QString BACKGROUND_FRAME("qtg_fr_messaging_char_count");
+const QString CHAR_COUNTER_COLOR("qtc_messaging_char_count");
 
 const int KShowCounterLimit = 10;
 const int BYTES_TO_KBYTES_FACTOR = 1024; 
@@ -67,6 +71,7 @@
 #define LOC_UNABLE_TO_ATTACH_ITEM hbTrId("txt_messaging_dpopinfo_unable_to_attach_item_avai")
 #define LOC_PROCESSING hbTrId("txt_messaging_formlabel_loading")
 #define LOC_HINT_TEXT hbTrId("txt_messaging_formlabel_enter_message_here")
+#define LOC_ATTACHED_PHOTO_SIZE hbTrId("txt_messaging_dpopinfo_attached_photo_size_is_l1")
 
 const QString ANIMATION_ICON("qtg_anim_loading");
 const QString ANIMATION_FILE(":/qtg_anim_loading.axml");
@@ -83,12 +88,8 @@
             /BYTES_TO_KBYTES_FACTOR;
     QString displayStr = QString(LOC_UNABLE_TO_ATTACH_ITEM)
             .arg(availableSize);
-    HbNotificationDialog* dlg = new HbNotificationDialog();
-    dlg->setFocusPolicy(Qt::NoFocus);
-    dlg->setDismissPolicy(HbPopup::TapAnywhere);
-    dlg->setAttribute(Qt::WA_DeleteOnClose, true);
-    dlg->setText(displayStr);
-    dlg->show();
+
+    HbMessageBox::information(displayStr, 0, 0, HbMessageBox::Ok);
 }
 
 
@@ -111,6 +112,7 @@
 {
     mTextEdit = new HbTextEdit(this);
     mTextEdit->setPlaceholderText(LOC_HINT_TEXT);
+    mTextEdit->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
     HbStyle::setItemName(mTextEdit,"textEdit");
     connect(mTextEdit, SIGNAL(contentsChanged()), this, SLOT(onTextChanged()));
 
@@ -119,16 +121,17 @@
     mCharCounter = new HbTextItem(this);
     HbStyle::setItemName(mCharCounter, "charCounter");
     mCharCounter->setZValue(1.5);
-    mCharCounter->setText("160(1)");
-    
+
+    QColor color = HbColorScheme::color(CHAR_COUNTER_COLOR);
+    mCharCounter->setTextColor(color);
+
     mBackgroundItem = new HbFrameItem(this);
     HbStyle::setItemName(mBackgroundItem, "charCounterFrame");
 
-    mBackgroundItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
+    mBackgroundItem->frameDrawer().setFrameType(HbFrameDrawer::ThreePiecesHorizontal);
     mBackgroundItem->frameDrawer().setFillWholeRect(true);
     
-    mBackgroundItem->frameDrawer().setFrameGraphicsName(
-        BACKGROUND_FRAME);    
+    mBackgroundItem->frameDrawer().setFrameGraphicsName(BACKGROUND_FRAME);
     
     mPluginLoader = new UniEditorPluginLoader(this);
 
@@ -544,11 +547,13 @@
 	if( mImageSize || mTextEdit->toPlainText().size() || 
 	    mAudioSize || mVideoSize )
 	{
-	   UniEditorGenUtils* uniEditorGenUtils = new UniEditorGenUtils;
+	     
+	    UniEditorGenUtils* genUtils = q_check_ptr(new UniEditorGenUtils);
+	    
         bodysize +=  mImageSize + mAudioSize + mVideoSize +
-            uniEditorGenUtils->UTF8Size(mTextEdit->toPlainText()) +
+            genUtils->UTF8Size(mTextEdit->toPlainText()) +
             KEstimatedMimeHeaderSize + KEstimatedMmsSmilHeaderSize;
-        delete uniEditorGenUtils;
+        delete genUtils;
 	}
 	return bodysize;
 }
@@ -578,7 +583,7 @@
         if(futureSize > MsgUnifiedEditorMonitor::maxMmsSize())
         {
             mTextEdit->setPlainText(mPrevBuffer);
-            HbNotificationDialog::launchDialog(LOC_UNABLE_TO_ADD_CONTENT);
+            HbMessageBox::information(LOC_UNABLE_TO_ADD_CONTENT, 0, 0, HbMessageBox::Ok);
             mTextEdit->setCursorPosition(mPrevBuffer.length());
             return;
         }
@@ -645,6 +650,10 @@
             aFileName.Length() > 0)
     {
         mImageFile = XQConversions::s60DescToQString(aFileName);
+        
+        QSize modifiedSize(QImageReader(mImageFile).size());
+        QString information = LOC_ATTACHED_PHOTO_SIZE.arg(modifiedSize.width()).arg(modifiedSize.height());
+        HbNotificationDialog::launchDialog(information);        
     }
     else
     {
@@ -674,6 +683,7 @@
     mProcessingWidget->setLayout(processingLayout);
     
     HbTextItem* processingText = new HbTextItem(LOC_PROCESSING,mProcessingWidget);
+    processingText->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
     processingText->setAlignment(Qt::AlignCenter);
     processingLayout->addItem(processingText);
     
@@ -719,6 +729,45 @@
     mBackgroundItem->setVisible(false);
 }
 
+// ---------------------------------------------------------
+// MsgUnifiedEditorBody::enableCharCounter
+// ---------------------------------------------------------
+//
+void MsgUnifiedEditorBody::enableCharCounter()
+    {
+    mPluginInterface->setEncodingSettings(EFalse, ESmsEncodingNone,
+            mCharSupportType);
+
+    TInt numOfRemainingChars;
+    TInt numOfPDUs;
+    TBool unicodeMode;
+    TSmsEncoding alternativeEncodingType;
+    QString string = mTextEdit->toPlainText();
+    mPluginInterface->getNumPDUs(string,
+            numOfRemainingChars, numOfPDUs, unicodeMode,
+            alternativeEncodingType);
+
+    //Save the unicode value returned
+    mUnicode = unicodeMode;
+
+    //Set char counter value
+    QString display = QString("%1(%2)").arg(numOfRemainingChars).arg(
+            numOfPDUs);
+    mCharCounter->setText(display);
+
+    if (numOfPDUs > 1 || numOfRemainingChars <= KShowCounterLimit)
+        {
+        mCharCounter->setVisible(true);
+        mBackgroundItem->setVisible(true);
+        }
+    else
+        {
+        mCharCounter->setVisible(false);
+        mBackgroundItem->setVisible(false);
+        }
+
+    }
+
 //---------------------------------------------------------------
 // MsgUnifiedEditorBody :: setFocus
 // @see header file