--- 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