addresseehelper.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <qapplication.h>
00021
00022 #include <kconfig.h>
00023 #include <klocale.h>
00024
00025 #include "addresseehelper.h"
00026
00027 using namespace KABC;
00028
00029 AddresseeHelper * AddresseeHelper::s_self;
00030
00031
00032 AddresseeHelper *AddresseeHelper::self()
00033 {
00034 if ( !s_self )
00035 s_self = new AddresseeHelper();
00036
00037 return s_self;
00038 }
00039
00040 AddresseeHelper::AddresseeHelper()
00041 : QObject( qApp ),
00042 DCOPObject( "KABC::AddresseeHelper" )
00043 {
00044 initSettings();
00045
00046 connectDCOPSignal( "kaddressbook", "KABC::AddressBookConfig",
00047 "changed()", "initSettings()", false );
00048 }
00049
00050
00051 void AddresseeHelper::addToSet( const QStringList& list,
00052 std::set<QString>& container )
00053 {
00054 QStringList::ConstIterator it;
00055 for ( it = list.begin(); it != list.end(); ++it ) {
00056 if ( !(*it).isEmpty() )
00057 container.insert( *it );
00058 }
00059 }
00060
00061 void AddresseeHelper::initSettings()
00062 {
00063 mTitles.clear();
00064 mSuffixes.clear();
00065 mPrefixes.clear();
00066
00067 mTitles.insert( i18n( "Dr." ) );
00068 mTitles.insert( i18n( "Miss" ) );
00069 mTitles.insert( i18n( "Mr." ) );
00070 mTitles.insert( i18n( "Mrs." ) );
00071 mTitles.insert( i18n( "Ms." ) );
00072 mTitles.insert( i18n( "Prof." ) );
00073
00074 mSuffixes.insert( i18n( "I" ) );
00075 mSuffixes.insert( i18n( "II" ) );
00076 mSuffixes.insert( i18n( "III" ) );
00077 mSuffixes.insert( i18n( "Jr." ) );
00078 mSuffixes.insert( i18n( "Sr." ) );
00079
00080 mPrefixes.insert( "van" );
00081 mPrefixes.insert( "von" );
00082 mPrefixes.insert( "de" );
00083
00084 KConfig config( "kabcrc", true, false );
00085 config.setGroup( "General" );
00086
00087 addToSet( config.readListEntry( "Prefixes" ), mTitles );
00088 addToSet( config.readListEntry( "Inclusions" ), mPrefixes );
00089 addToSet( config.readListEntry( "Suffixes" ), mSuffixes );
00090 mTradeAsFamilyName = config.readBoolEntry( "TradeAsFamilyName", true );
00091 }
00092
00093 bool AddresseeHelper::containsTitle( const QString& title ) const
00094 {
00095 return mTitles.find( title ) != mTitles.end();
00096 }
00097
00098 bool AddresseeHelper::containsPrefix( const QString& prefix ) const
00099 {
00100 return mPrefixes.find( prefix ) != mPrefixes.end();
00101 }
00102
00103 bool AddresseeHelper::containsSuffix( const QString& suffix ) const
00104 {
00105 return mSuffixes.find( suffix ) != mSuffixes.end();
00106 }
00107
00108 bool AddresseeHelper::tradeAsFamilyName() const
00109 {
00110 return mTradeAsFamilyName;
00111 }
|