diff -r ecf6a73a9186 -r 60a8a215b0ec messagingapp/msgui/unifiededitor/src/msgunieditorlineedit.cpp --- 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(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