diff -r 7e9dad2783bc -r f50f620771ee QTfrontend/gameuiconfig.cpp --- a/QTfrontend/gameuiconfig.cpp Sun Jun 19 18:45:10 2011 +0200 +++ b/QTfrontend/gameuiconfig.cpp Sun Jun 19 20:55:34 2011 -0400 @@ -22,6 +22,7 @@ #include #include #include +#include #include "gameuiconfig.h" #include "hwform.h" @@ -75,6 +76,8 @@ Form->ui.pageOptions->editNetNick->setText(netNick); + Form->ui.pageOptions->editNetPassword->installEventFilter(this); + int passLength = value("net/passwordlength", 0).toInt(); setNetPasswordLength(passLength); @@ -327,6 +330,24 @@ return (netPasswordLength() == 0 || Form->ui.pageOptions->editNetPassword->text() != QString(netPasswordLength(), '\0')); } +// When hedgewars launches, the password field is set with null characters. If the user tries to edit the field and there are such characters, then clear the field +bool GameUIConfig::eventFilter(QObject *object, QEvent *event) +{ + if (event->type() == QEvent::FocusIn) + { + if ((QLineEdit *)object == Form->ui.pageOptions->editNetPassword) + { + if (!netPasswordIsValid()) + { + Form->ui.pageOptions->editNetPassword->clear(); + } + } + } + + // Don't filter anything + return false; +} + void GameUIConfig::setNetPasswordLength(int passwordLength) { if (passwordLength > 0)