--- a/src/hbwidgets/editors/hblineedit.cpp Thu Sep 02 20:44:51 2010 +0300
+++ b/src/hbwidgets/editors/hblineedit.cpp Fri Sep 17 08:32:10 2010 +0300
@@ -285,7 +285,7 @@
{
Q_D(HbLineEdit);
- if((!e->commitString().isEmpty() || e->replacementLength()) &&
+ if((!e->commitString().isEmpty() || e->replacementLength() || !e->preeditString().isEmpty()) &&
d->echoMode == HbLineEdit::PasswordEchoOnEdit && d->clearOnEdit) {
d->doc->clear();
d->passwordText.clear();
@@ -343,9 +343,10 @@
d->clearOnEdit = false;
}
+
if(d->forwardKeyEvent(event)) {
HbAbstractEdit::keyPressEvent(event);
- } else if (d->echoMode == HbLineEdit::Password || d->echoMode == HbLineEdit::NoEcho){
+ } else if (d->isPasswordMode()){
// Keep doc and passwordText in sync
bool update = false;
if (event->key() == Qt::Key_Backspace && !(event->modifiers() & ~Qt::ShiftModifier)) {
@@ -357,14 +358,14 @@
}
if (update) {
- setPlainText(((d->echoMode == HbLineEdit::Password)?d->passwordString(d->passwordText):""));
+ if(d->echoMode == HbLineEdit::PasswordEchoOnEdit) {
+ setPlainText(d->passwordText);
+ } else {
+ setPlainText(((d->echoMode == HbLineEdit::Password)?d->passwordString(d->passwordText):""));
+ }
}
setCursorPosition(d->passwordText.length());
}
- if (d->echoMode == HbLineEdit::PasswordEchoOnEdit) {
- // Keep doc and passwordText in sync
- d->passwordText = toPlainText();
- }
}
/*!