messagingapp/msgui/unifiededitor/src/msgunieditorlineedit.cpp
changeset 76 60a8a215b0ec
parent 37 518b245aa84c
--- a/messagingapp/msgui/unifiededitor/src/msgunieditorlineedit.cpp	Tue Oct 05 13:58:47 2010 +0530
+++ b/messagingapp/msgui/unifiededitor/src/msgunieditorlineedit.cpp	Tue Oct 19 11:30:16 2010 +0530
@@ -37,7 +37,7 @@
 #define LOC_PASTE hbTrId("txt_common_menu_paste")
 
 MsgUnifiedEditorLineEdit::MsgUnifiedEditorLineEdit(const QString& label,QGraphicsItem *parent):
-HbLineEdit(parent),
+HbTextEdit(parent),
 mSelectionStart(-1),
 mSelectionEnd(-1),
 mDefaultBehaviour(false)
@@ -80,7 +80,7 @@
     //let it go in default way.
     if(mDefaultBehaviour)
     {
-        HbAbstractEdit::inputMethodEvent(event);
+        HbTextEdit::inputMethodEvent(event);
         event->accept();
         return;
     }
@@ -102,13 +102,13 @@
 
             event->setCommitString(str, event->replacementStart(), event->replacementLength());            
         }
-        else if(this->hasSelectedText())
+        else if(this->textCursor().hasSelection())
         {// all user inputs get appended at the end
             this->setCursorPosition(this->text().length());
         }
     }
     
-    HbAbstractEdit::inputMethodEvent(event);
+    HbTextEdit::inputMethodEvent(event);
     event->accept();
 }
 
@@ -120,7 +120,7 @@
     {
         if(mDefaultBehaviour)
         {
-            HbAbstractEdit::keyReleaseEvent(event);
+            HbTextEdit::keyReleaseEvent(event);
             event->accept();
             return;
         }
@@ -132,7 +132,7 @@
         this->setCursorPosition(this->text().length());
         str = replacementStr;
         QKeyEvent eve(event->type(), Qt::Key_Any, event->modifiers(), str);
-        HbAbstractEdit::keyPressEvent(&eve);
+        HbTextEdit::keyPressEvent(&eve);
         event->accept();
         return;
     }
@@ -142,7 +142,7 @@
         int pos = this->cursorPosition();
         bool pbkContact = true;
 
-        if(!this->hasSelectedText())
+        if(!this->textCursor().hasSelection())
         {
             this->setCursorPosition(pos-2);
             pbkContact = this->textCursor().charFormat().fontUnderline();
@@ -161,18 +161,18 @@
         if(pbkContact)
         {
             //if already selected delete it.
-            if(this->hasSelectedText())
+            if(this->textCursor().hasSelection())
             {
                 // deleting phbkContact is an atomic operation
                 // ensure that the signal is emitted only once
                 disconnect(this, SIGNAL(contentsChanged()), 
                         this, SLOT(onContentsChanged()));
-                HbLineEdit::keyPressEvent(event);
+                HbTextEdit::keyPressEvent(event);
                 event->accept();
                 //delete seperator (i.e."; ").
                 QKeyEvent eve(event->type(), Qt::Key_Delete, Qt::NoModifier);
-                HbLineEdit::keyPressEvent(&eve);
-                HbLineEdit::keyPressEvent(&eve);
+                HbTextEdit::keyPressEvent(&eve);
+                HbTextEdit::keyPressEvent(&eve);
                 connect(this, SIGNAL(contentsChanged()), 
                         this, SLOT(onContentsChanged()));
                 onContentsChanged();
@@ -194,15 +194,15 @@
                         this, SLOT(onContentsChanged()));
                 //delete seperator (i.e."; ").
                 QKeyEvent eve(event->type(), Qt::Key_Backspace, Qt::NoModifier);
-                HbLineEdit::keyPressEvent(&eve);
-                HbLineEdit::keyPressEvent(&eve);
+                HbTextEdit::keyPressEvent(&eve);
+                HbTextEdit::keyPressEvent(&eve);
                 connect(this, SIGNAL(contentsChanged()), 
                         this, SLOT(onContentsChanged()));
                 onContentsChanged();
             }
             else
             {
-                HbLineEdit::keyPressEvent(event);
+                HbTextEdit::keyPressEvent(event);
             }
             event->accept();
         }
@@ -213,7 +213,7 @@
 
     if (event->key() == Qt::Key_Left )
     {
-        bool selectedText = this->hasSelectedText();
+        bool selectedText = this->textCursor().hasSelection();
 
         //look ahead left.
         int pos = this->cursorPosition();
@@ -266,7 +266,7 @@
                 this->setCursorPosition(newPos+1);
             }
 
-            HbLineEdit::keyPressEvent(event);
+            HbTextEdit::keyPressEvent(event);
 
         }
         event->accept();
@@ -275,7 +275,7 @@
 
     if (event->key() == Qt::Key_Right)
     {
-        bool selectedText = this->hasSelectedText();
+        bool selectedText = this->textCursor().hasSelection();
 
         //look ahead.
         int pos = this->cursorPosition();
@@ -301,7 +301,7 @@
                 this->setCursorPosition(pos+1);
                 this->deselect();
             }
-            HbAbstractEdit::keyPressEvent(event);
+            HbTextEdit::keyPressEvent(event);
         }
         event->accept();
         return;
@@ -311,7 +311,7 @@
     {
         if(mDefaultBehaviour)
         {
-            HbAbstractEdit::keyPressEvent(event);
+            HbTextEdit::keyPressEvent(event);
             event->accept();
             return;
         }
@@ -334,11 +334,11 @@
 
             str.replace(expr, replacementStr);
             QKeyEvent eve(event->type(), event->key(), event->modifiers(), str);
-            HbAbstractEdit::keyPressEvent(&eve);
+            HbTextEdit::keyPressEvent(&eve);
         }
         else
         {
-            HbAbstractEdit::keyPressEvent(event);
+            HbTextEdit::keyPressEvent(event);
             event->accept();
             return;
         }
@@ -359,15 +359,15 @@
 
     if(labelPos >= 0 )//pressed on label.
     {
-        this->setCursorPosition(currentPos + labelPos + 2);
+        HbTextEdit::setCursorPosition(currentPos + labelPos + 2);
     }
     else if(seperatorPos == currentPos-1 || seperatorPos == currentPos)//pressed just on seperator.
     {
-        this->setCursorPosition(seperatorPos+2);
+        HbTextEdit::setCursorPosition(seperatorPos+2);
     }
     else
     {
-        this->setCursorPosition(currentPos+1);
+        HbTextEdit::setCursorPosition(currentPos);
         bool pbkContact = this->textCursor().charFormat().fontUnderline();
         if(pbkContact)
         {
@@ -381,7 +381,7 @@
 void MsgUnifiedEditorLineEdit::gestureEvent(QGestureEvent* event)
 {
     //passing gesture event to base class.
-    HbLineEdit::gestureEvent(event);
+    HbTextEdit::gestureEvent(event);
     
     
     if(HbTapGesture *tap = qobject_cast<HbTapGesture*>(event->gesture(Qt::TapGesture)))
@@ -462,14 +462,14 @@
 
 void MsgUnifiedEditorLineEdit::focusInEvent(QFocusEvent* event)
 {    
-    HbLineEdit::focusInEvent(event);
-    this->setCursorVisibility(Hb::TextCursorVisible);
+    HbTextEdit::focusInEvent(event);
+//    this->setCursorVisibility(Hb::TextCursorVisible);
 }
 
 void MsgUnifiedEditorLineEdit::focusOutEvent(QFocusEvent* event)
 {    
-    HbLineEdit::focusOutEvent(event);
-    this->setCursorVisibility(Hb::TextCursorHidden);
+    HbTextEdit::focusOutEvent(event);
+//    this->setCursorVisibility(Hb::TextCursorHidden);
 }
 
 void MsgUnifiedEditorLineEdit::setHighlight(int currentPos)
@@ -533,7 +533,7 @@
 void MsgUnifiedEditorLineEdit::timerEvent(QTimerEvent *event)
 {
     //passing event to base class.
-    HbLineEdit::timerEvent(event);
+    HbTextEdit::timerEvent(event);
 
     if (event->timerId() == mSelectionSnapTimer.timerId())
     {
@@ -571,7 +571,7 @@
 
 QString MsgUnifiedEditorLineEdit::text() const
 {
-    return HbLineEdit::text();
+   return this->toPlainText();
 }
 
 QString MsgUnifiedEditorLineEdit::content() const
@@ -637,4 +637,27 @@
     }
 
 }
+
+void MsgUnifiedEditorLineEdit::setSelection(int start, int length)
+{
+    int textLength = text().count();
+    QString test = text();
+    Q_UNUSED(test)
+    if (start < 0 || start > textLength) {
+        return;
+    }
+
+    int end(start+length);
+    if (end > textLength) {
+        end = textLength;
+    } else if (end < 0) {
+        end = 0;
+    }
+
+    QTextCursor cursor = textCursor();
+    cursor.setPosition(start, QTextCursor::MoveAnchor);
+    cursor.setPosition(end, QTextCursor::KeepAnchor);
+    setTextCursor(cursor);
+
+}
 // eof