libkpimidentities
identity.h00001
00002
00003
00004
00005
00006
00007 #ifndef kpim_identity_h
00008 #define kpim_identity_h
00009
00010 #include <kleo/enum.h>
00011
00012 #include <kdepimmacros.h>
00013
00014 #include <tqstring.h>
00015 #include <tqcstring.h>
00016 #include <tqstringlist.h>
00017
00018 class KProcess;
00019 namespace KPIM {
00020 class Identity;
00021 class Signature;
00022 }
00023 class KConfigBase;
00024 class IdentityList;
00025 class TQDataStream;
00026
00027 namespace KPIM {
00028
00033 class KDE_EXPORT Signature {
00034 friend class Identity;
00035
00036 friend TQDataStream & KPIM::operator<<( TQDataStream & stream, const Signature & sig );
00037 friend TQDataStream & KPIM::operator>>( TQDataStream & stream, Signature & sig );
00038
00039 public:
00041 enum Type { Disabled = 0, Inlined = 1, FromFile = 2, FromCommand = 3 };
00042
00044 bool operator==( const Signature & other ) const;
00045
00047 Signature();
00049 Signature( const TQString & text );
00051 Signature( const TQString & url, bool isExecutable );
00052
00054 TQString rawText( bool * ok=0 ) const;
00055
00058 TQString withSeparator( bool * ok=0 ) const;
00059
00062 void setText( const TQString & text ) { mText = text; }
00063 TQString text() const { return mText; }
00064
00067 void setUrl( const TQString & url, bool isExecutable=false );
00068 TQString url() const { return mUrl; }
00069
00071 Type type() const { return mType; }
00072 void setType( Type type ) { mType = type; }
00073
00074 protected:
00075 void writeConfig( KConfigBase * config ) const;
00076 void readConfig( const KConfigBase * config );
00077
00078 private:
00079 TQString textFromFile( bool * ok ) const;
00080 TQString textFromCommand( bool * ok ) const;
00081
00082 private:
00083 TQString mUrl;
00084 TQString mText;
00085 Type mType;
00086 };
00087
00089 class KDE_EXPORT Identity
00090 {
00091
00092
00093
00094 friend class IdentityManager;
00095
00096 friend TQDataStream & operator<<( TQDataStream & stream, const KPIM::Identity & ident );
00097 friend TQDataStream & operator>>( TQDataStream & stream, KPIM::Identity & ident );
00098
00099 public:
00100 typedef TQValueList<Identity> List;
00101
00103 bool operator==( const Identity & other ) const;
00104
00105 bool operator!=( const Identity & other ) const {
00106 return !operator==( other );
00107 }
00108
00110 bool operator<( const Identity & other ) const {
00111 if ( isDefault() ) return true;
00112 if ( other.isDefault() ) return false;
00113 return identityName() < other.identityName();
00114 }
00115 bool operator>( const Identity & other ) const {
00116 if ( isDefault() ) return false;
00117 if ( other.isDefault() ) return true;
00118 return identityName() > other.identityName();
00119 }
00120 bool operator<=( const Identity & other ) const {
00121 return !operator>( other );
00122 }
00123 bool operator>=( const Identity & other ) const {
00124 return !operator<( other );
00125 }
00126
00128 explicit Identity( const TQString & id=TQString(),
00129 const TQString & realName=TQString(),
00130 const TQString & emailAddr=TQString(),
00131 const TQString & organization=TQString(),
00132 const TQString & replyToAddress=TQString() );
00133
00135 ~Identity();
00136
00137 protected:
00140 void readConfig( const KConfigBase * );
00141
00144 void writeConfig( KConfigBase * ) const;
00145
00146 public:
00148 bool mailingAllowed() const;
00149
00151 TQString identityName() const { return mIdentity; }
00152 void setIdentityName( const TQString & name );
00153
00155 bool isDefault() const { return mIsDefault; }
00156
00158 uint uoid() const { return mUoid; }
00159
00160 protected:
00170 void setIsDefault( bool flag );
00171
00172 void setUoid( uint aUoid ) { mUoid = aUoid; }
00173
00174 public:
00176 TQString fullName() const { return mFullName; }
00177 void setFullName(const TQString&);
00178
00180 TQString organization() const { return mOrganization; }
00181 void setOrganization(const TQString&);
00182
00183 KDE_DEPRECATED TQCString pgpIdentity() const { return pgpEncryptionKey(); }
00184 KDE_DEPRECATED void setPgpIdentity( const TQCString & key ) {
00185 setPGPEncryptionKey( key );
00186 setPGPSigningKey( key );
00187 }
00188
00190 TQCString pgpEncryptionKey() const { return mPGPEncryptionKey; }
00191 void setPGPEncryptionKey( const TQCString & key );
00192
00194 TQCString pgpSigningKey() const { return mPGPSigningKey; }
00195 void setPGPSigningKey( const TQCString & key );
00196
00198 TQCString smimeEncryptionKey() const { return mSMIMEEncryptionKey; }
00199 void setSMIMEEncryptionKey( const TQCString & key );
00200
00202 TQCString smimeSigningKey() const { return mSMIMESigningKey; }
00203 void setSMIMESigningKey( const TQCString & key );
00204
00205 Kleo::CryptoMessageFormat preferredCryptoMessageFormat() const { return mPreferredCryptoMessageFormat; }
00206 void setPreferredCryptoMessageFormat( Kleo::CryptoMessageFormat format ) { mPreferredCryptoMessageFormat = format; }
00207
00209 KDE_DEPRECATED TQString emailAddr() const { return primaryEmailAddress(); }
00210 KDE_DEPRECATED void setEmailAddr( const TQString & email ) { setPrimaryEmailAddress( email ); }
00211
00214 TQString primaryEmailAddress() const { return mEmailAddr; }
00215 void setPrimaryEmailAddress( const TQString & email );
00216
00218 const TQStringList & emailAliases() const { return mEmailAliases; }
00219 void setEmailAliases( const TQStringList & );
00220
00221 bool matchesEmailAddress( const TQString & addr ) const;
00222
00224 TQString vCardFile() const { return mVCardFile; }
00225 void setVCardFile(const TQString&);
00226
00229 TQString fullEmailAddr() const;
00230
00232 TQString replyToAddr() const { return mReplyToAddr; }
00233 void setReplyToAddr(const TQString&);
00234
00236 TQString bcc() const { return mBcc; }
00237 void setBcc(const TQString& aBcc) { mBcc = aBcc; }
00238
00239 void setSignature( const Signature & sig ) { mSignature = sig; }
00240 Signature & signature() { return mSignature; }
00241 const Signature & signature() const { return mSignature; }
00242
00243 protected:
00245 bool signatureIsCommand() const { return mSignature.type() == Signature::FromCommand; }
00247 bool signatureIsPlainFile() const { return mSignature.type() == Signature::FromFile; }
00249 bool signatureIsInline() const { return mSignature.type() == Signature::Inlined; }
00250
00252 TQString signatureFile() const { return mSignature.url(); }
00253 void setSignatureFile(const TQString&);
00254
00256 TQString signatureInlineText() const { return mSignature.text();}
00257 void setSignatureInlineText(const TQString&);
00258
00260 bool useSignatureFile() const { return signatureIsPlainFile() || signatureIsCommand(); }
00261
00262 public:
00268 TQString signatureText( bool * ok=0) const;
00269
00272 TQString transport() const { return mTransport; }
00273 void setTransport(const TQString&);
00274
00277 TQString fcc() const { return mFcc; }
00278 void setFcc(const TQString&);
00279
00282 TQString drafts() const { return mDrafts; }
00283 void setDrafts(const TQString&);
00284
00287 TQString templates() const { return mTemplates; }
00288 void setTemplates( const TQString& );
00289
00291 TQString dictionary() const { return mDictionary; }
00292 void setDictionary( const TQString& );
00293
00295 TQString xface() const { return mXFace; }
00296 void setXFace( const TQString& );
00297 bool isXFaceEnabled() const { return mXFaceEnabled; }
00298 void setXFaceEnabled( const bool );
00299
00300 static const Identity& null();
00301 bool isNull() const;
00302 protected:
00303
00304
00305
00306
00307 uint mUoid;
00308 TQString mIdentity, mFullName, mEmailAddr, mOrganization;
00309 TQStringList mEmailAliases;
00310 TQString mReplyToAddr;
00311 TQString mBcc;
00312 TQString mVCardFile;
00313 TQCString mPGPEncryptionKey, mPGPSigningKey, mSMIMEEncryptionKey, mSMIMESigningKey;
00314 TQString mFcc, mDrafts, mTemplates, mTransport;
00315 TQString mDictionary;
00316 TQString mXFace;
00317 bool mXFaceEnabled;
00318 Signature mSignature;
00319 bool mIsDefault;
00320 Kleo::CryptoMessageFormat mPreferredCryptoMessageFormat;
00321 };
00322
00323 KDE_EXPORT TQDataStream & operator<<( TQDataStream & stream, const KPIM::Signature & sig );
00324 KDE_EXPORT TQDataStream & operator>>( TQDataStream & stream, KPIM::Signature & sig );
00325
00326 KDE_EXPORT TQDataStream & operator<<( TQDataStream & stream, const KPIM::Identity & ident );
00327 KDE_EXPORT TQDataStream & operator>>( TQDataStream & stream, KPIM::Identity & ident );
00328
00329 }
00330
00331 #endif
|