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.
71 lines
1.5 KiB
71 lines
1.5 KiB
#include <kdebug.h>
|
|
|
|
#include "person.h"
|
|
|
|
Person::Person( const TQString &fullName )
|
|
{
|
|
int emailPos = fullName.find( '<' );
|
|
if ( emailPos < 0 ) {
|
|
email = fullName;
|
|
} else {
|
|
email = fullName.mid( emailPos + 1, fullName.length() - 1 );
|
|
name = fullName.left( emailPos - 1 );
|
|
}
|
|
}
|
|
|
|
TQString 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 TQString &_str )
|
|
{
|
|
Person res;
|
|
|
|
TQString 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( TQString::fromLatin1( " at " ) );
|
|
if ( atPos == -1 && spacedAtPos != -1 )
|
|
str.replace( spacedAtPos, 4, TQString::fromLatin1( "@" ) );
|
|
|
|
int spacePos = str.find( ' ' );
|
|
while ( spacePos != -1 )
|
|
{
|
|
str[ spacePos ] = '.';
|
|
spacePos = str.find( ' ', spacePos );
|
|
}
|
|
|
|
res.email = str;
|
|
|
|
return res;
|
|
}
|