You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.5 KiB
75 lines
1.5 KiB
15 years ago
|
#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
|
||
|
*/
|