libkpimidentities
identitymanager.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef _KPIM_IDENTITYMANAGER_H_
00032 #define _KPIM_IDENTITYMANAGER_H_
00033
00034 #include <libkdepim/configmanager.h>
00035
00036 #include <tqvaluelist.h>
00037 #include <dcopobject.h>
00038 #include <kdepimmacros.h>
00039
00040 class KConfigBase;
00041 class KConfig;
00042 class KMKernel;
00043 class TQStringList;
00044 class KMIdentity;
00045
00046 namespace KPIM {
00047
00048 class Identity;
00053 #define IdentityManager KDE_EXPORT IdentityManager
00054 class IdentityManager : public ConfigManager, public DCOPObject
00055 #undef IdentityManager
00056 {
00057 Q_OBJECT
00058
00059 K_DCOP
00060
00061 public:
00069 IdentityManager( bool readonly = false, TQObject * parent=0, const char * name=0 );
00070 virtual ~IdentityManager();
00071
00072 public:
00073 typedef TQValueList<Identity>::Iterator Iterator;
00074 typedef TQValueList<Identity>::ConstIterator ConstIterator;
00075
00077 void commit();
00079 void rollback();
00080
00082 bool hasPendingChanges() const;
00083
00085 TQStringList identities() const;
00086
00092 TQStringList shadowIdentities() const;
00093
00098 void sort();
00099
00103 const Identity & identityForAddress( const TQString & addresses ) const;
00104
00109 bool thatIsMe( const TQString & addressList ) const;
00110
00115 const Identity & identityForName( const TQString & identityName ) const;
00116
00120 const Identity & identityForUoid( uint uoid ) const;
00121
00128 const Identity & identityForNameOrDefault( const TQString & identityName ) const;
00129
00135 const Identity & identityForUoidOrDefault( uint uoid ) const;
00136
00138 const Identity & defaultIdentity() const;
00139
00146 bool setAsDefault( const TQString & identityName );
00147
00154 bool setAsDefault( uint uoid );
00155
00160 Identity & modifyIdentityForName( const TQString & identityName );
00161
00166 Identity & modifyIdentityForUoid( uint uoid );
00167
00169 bool removeIdentity( const TQString & identityName );
00170
00171 ConstIterator begin() const;
00172 ConstIterator end() const;
00175 Iterator modifyBegin();
00176 Iterator modifyEnd();
00177
00178 Identity & newFromScratch( const TQString & name );
00179 Identity & newFromControlCenter( const TQString & name );
00180 Identity & newFromExisting( const Identity & other,
00181 const TQString & name=TQString() );
00182
00184 TQStringList allEmails() const;
00185
00186 signals:
00191 void changed( uint uoid );
00195 void changed( const KPIM::Identity & ident );
00199 void deleted( uint uoid );
00201 void added( const KPIM::Identity & ident );
00202
00203 protected:
00209 virtual void createDefaultIdentity( TQString& , TQString& ) {}
00210
00211 protected slots:
00212 void slotRollback() { rollback(); };
00213
00214 protected:
00216 TQValueList<Identity> mIdentities;
00218 TQValueList<Identity> mShadowIdentities;
00219
00220
00221
00222
00223 k_dcop:
00224
00225 void slotIdentitiesChanged( TQCString appId, TQCString objId );
00226
00227 private:
00228 void writeConfig() const;
00229 void readConfig(KConfigBase* config);
00230 TQStringList groupList(KConfigBase* config) const;
00231 void createDefaultIdentity();
00232
00233
00234 int newUoid();
00235
00236 private:
00237 KConfig* mConfig;
00238 bool mReadOnly;
00239 };
00240
00241 }
00242
00243 #endif // _KMAIL_IDENTITYMANAGER_H_
|