author | zecke <zecke> | 2004-05-01 17:21:57 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-05-01 17:21:57 (UTC) |
commit | 8dd2d693000c916346f0bb7d94cbc02b8456c65b (patch) (side-by-side diff) | |
tree | 4246b70152d010a8c0e3e7d5268e462f8630be82 /core/pim/addressbook/namelineedit.cpp | |
parent | fd2bbf9a09aa7a13bd8a43db351b9153e5a4b7ab (diff) | |
download | opie-8dd2d693000c916346f0bb7d94cbc02b8456c65b.zip opie-8dd2d693000c916346f0bb7d94cbc02b8456c65b.tar.gz opie-8dd2d693000c916346f0bb7d94cbc02b8456c65b.tar.bz2 |
A new LineEdit to assis entering names.
so holger hans peter freyther will get Holger Hans Peter Freyther on the fly
but you can also change the letter later...
Diffstat (limited to 'core/pim/addressbook/namelineedit.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/addressbook/namelineedit.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/core/pim/addressbook/namelineedit.cpp b/core/pim/addressbook/namelineedit.cpp new file mode 100644 index 0000000..ba16e2c --- a/dev/null +++ b/core/pim/addressbook/namelineedit.cpp @@ -0,0 +1,55 @@ +#include "namelineedit.h" + +namespace ABOOK { +NameLineEdit::NameLineEdit( QWidget* parent, const char* name ) + : QLineEdit( parent, name ), m_prevSpace( true ) { +} + +NameLineEdit::NameLineEdit( const QString& str, QWidget* par, + const char* name ) + : QLineEdit( str, par, name ),m_prevSpace( true ) { +} + +NameLineEdit::~NameLineEdit() { +} + +void NameLineEdit::keyPressEvent( QKeyEvent* ev ) { + QString t = ev->text(); + int key = ev->key(); + int ascii = ev->ascii(); + + // ### FIXME with composed events + if ( !t.isEmpty() && ( !ev->ascii() || ev->ascii()>=32 ) && + key != Key_Delete && key != Key_Backspace && + key != Key_Return && key != Key_Enter ) { + qWarning( "str " + ev->text() + " %d", m_prevSpace ); + + if ( m_prevSpace ) { + t = t.upper(); + m_prevSpace = false; + } + if ( key == Key_Space ) + m_prevSpace = true; + + + QKeyEvent nEv(ev->type(), key, ascii, ev->state(), + t, ev->isAutoRepeat(), ev->count() ); + QLineEdit::keyPressEvent( &nEv ); + if ( !nEv.isAccepted() ) + ev->ignore(); + }else { + QLineEdit::keyPressEvent( ev ); + /* if key was a backspace lets see if we should + * capitalize the next letter + */ + if ( key == Key_Backspace ) { + QString te = text(); + /* if string is empty capitalize the first letter */ + /* else see if we're at the end of the string */ + if ( te.isEmpty() || cursorPosition() == te.length() ) + m_prevSpace = true; + } + } +} + +} |