diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bd9e6617827818fd043452c08c606f07b78014a0 (patch) | |
tree | 425bb4c3168f9c02f10150f235d2cb998dcc6108 /kbugbuster/backend/person.cpp | |
download | tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.tar.gz tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kbugbuster/backend/person.cpp')
-rw-r--r-- | kbugbuster/backend/person.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/kbugbuster/backend/person.cpp b/kbugbuster/backend/person.cpp new file mode 100644 index 00000000..a9f63be0 --- /dev/null +++ b/kbugbuster/backend/person.cpp @@ -0,0 +1,74 @@ +#include <kdebug.h> + +#include "person.h" + +Person::Person( const QString &fullName ) +{ + int emailPos = fullName.find( '<' ); + if ( emailPos < 0 ) { + email = fullName; + } else { + email = fullName.mid( emailPos + 1, fullName.length() - 1 ); + name = fullName.left( emailPos - 1 ); + } +} + +QString Person::fullName(bool html) const +{ + if( name.isEmpty() ) + { + if( email.isEmpty() ) + return i18n( "Unknown" ); + else + return email; + } + else + { + if( email.isEmpty() ) + return name; + else + if ( html ) { + return name + " <" + email + ">"; + } else { + return name + " <" + email + ">"; + } + } +} + +Person Person::parseFromString( const QString &_str ) +{ + Person res; + + QString str = _str; + + int ltPos = str.find( '<' ); + if ( ltPos != -1 ) + { + int gtPos = str.find( '>', ltPos ); + if ( gtPos != -1 ) + { + res.name = str.left( ltPos - 1 ); + str = str.mid( ltPos + 1, gtPos - ( ltPos + 1 ) ); + } + } + + int atPos = str.find( '@' ); + int spacedAtPos = str.find( QString::fromLatin1( " at " ) ); + if ( atPos == -1 && spacedAtPos != -1 ) + str.replace( spacedAtPos, 4, QString::fromLatin1( "@" ) ); + + int spacePos = str.find( ' ' ); + while ( spacePos != -1 ) + { + str[ spacePos ] = '.'; + spacePos = str.find( ' ', spacePos ); + } + + res.email = str; + + return res; +} + +/** + * vim:et:ts=4:sw=4 + */ |