• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepimlibs API Reference
  • KDE Home
  • Contact Us
 

kpimidentities

  • sources
  • kde-4.12
  • kdepimlibs
  • kpimidentities
identity.cpp
1 /*
2  Copyright (c) 2002-2004 Marc Mutz <mutz@kde.org>
3  Copyright (c) 2007 Tom Albers <tomalbers@kde.nl>
4 
5  This library is free software; you can redistribute it and/or modify it
6  under the terms of the GNU Library General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or (at your
8  option) any later version.
9 
10  This library is distributed in the hope that it will be useful, but WITHOUT
11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13  License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to the
17  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18  02110-1301, USA.
19 */
20 
21 #include "identity.h"
22 #include "signature.h"
23 
24 #include <kdeversion.h>
25 #include <sonnet/globals.h>
26 #include <kdebug.h>
27 #include <klocalizedstring.h>
28 #include <kmessagebox.h>
29 #include <kconfiggroup.h>
30 #include <kurl.h>
31 #include <kprocess.h>
32 #include <kpimutils/kfileio.h>
33 #include <kpimutils/email.h>
34 
35 #include <QFileInfo>
36 #include <QMimeData>
37 #include <QByteArray>
38 
39 #include <sys/types.h>
40 #include <stdlib.h>
41 #include <stdio.h>
42 #include <errno.h>
43 #include <assert.h>
44 
45 using namespace KPIMIdentities;
46 
47 // TODO: should use a kstaticdeleter?
48 static Identity *identityNull = 0;
49 
50 Identity::Identity( const QString &id, const QString &fullName,
51  const QString &emailAddr, const QString &organization,
52  const QString &replyToAddr )
53  : mIsDefault( false )
54 {
55  setProperty( QLatin1String(s_uoid), 0 );
56  setProperty( QLatin1String(s_identity), id );
57  setProperty( QLatin1String(s_name), fullName );
58  setProperty( QLatin1String(s_email), emailAddr );
59  setProperty( QLatin1String(s_organization), organization );
60  setProperty( QLatin1String(s_replyto), replyToAddr );
61  setDictionary( Sonnet::defaultLanguageName() );
62  setProperty( QLatin1String(s_disabledFcc), false );
63 }
64 
65 Identity::~Identity()
66 {}
67 
68 const Identity &Identity::null()
69 {
70  if ( !identityNull ) {
71  identityNull = new Identity;
72  }
73  return *identityNull;
74 }
75 
76 bool Identity::isNull() const
77 {
78  bool empty = true;
79  QHash<QString, QVariant>::const_iterator i = mPropertiesMap.constBegin();
80  while ( i != mPropertiesMap.constEnd() ) {
81 
82  // Take into account that the dictionary for a null identity is not empty
83  if ( i.key() == QLatin1String(s_dict) ) {
84  ++i;
85  continue;
86  }
87  // Take into account that disableFcc == false for a null identity
88  if( i.key() == QLatin1String(s_disabledFcc) && i.value().toBool() == false ) {
89  ++i;
90  continue;
91  }
92  // The uoid is 0 by default, so ignore this
93  if ( !( i.key() == QLatin1String(s_uoid) && i.value().toUInt() == 0 ) ) {
94  if ( !i.value().isNull() ||
95  ( i.value().type() == QVariant::String && !i.value().toString().isEmpty() ) ) {
96  empty = false;
97  }
98  }
99  ++i;
100  }
101  return empty;
102 }
103 
104 void Identity::readConfig( const KConfigGroup &config )
105 {
106  // get all keys and convert them to our QHash.
107  QMap<QString, QString> entries = config.entryMap();
108  QMap<QString, QString>::const_iterator i = entries.constBegin();
109  QMap<QString, QString>::const_iterator end = entries.constEnd();
110  while ( i != end ) {
111  if ( i.key() == QLatin1String(s_emailAliases) ) {
112  // HACK: Read s_emailAliases as a stringlist
113  mPropertiesMap.insert( i.key(), config.readEntry( i.key(), QStringList() ) );
114  } else {
115  mPropertiesMap.insert( i.key(), config.readEntry( i.key() ) );
116  }
117  ++i;
118  }
119  mSignature.readConfig( config );
120 }
121 
122 void Identity::writeConfig( KConfigGroup &config ) const
123 {
124  QHash<QString, QVariant>::const_iterator i = mPropertiesMap.constBegin();
125  QHash<QString, QVariant>::const_iterator end = mPropertiesMap.constEnd();
126  while ( i != end ) {
127  config.writeEntry( i.key(), i.value() );
128  kDebug( 5325 ) << "Store:" << i.key() << ":" << i.value();
129  ++i;
130  }
131  mSignature.writeConfig( config );
132 }
133 
134 bool Identity::mailingAllowed() const
135 {
136  return !property( QLatin1String(s_email) ).toString().isEmpty();
137 }
138 
139 QString Identity::mimeDataType()
140 {
141  return QLatin1String("application/x-kmail-identity-drag");
142 }
143 
144 bool Identity::canDecode( const QMimeData*md )
145 {
146  return md->hasFormat( mimeDataType() );
147 }
148 
149 void Identity::populateMimeData( QMimeData*md )
150 {
151  QByteArray a;
152  {
153  QDataStream s( &a, QIODevice::WriteOnly );
154  s << this;
155  }
156  md->setData( mimeDataType(), a );
157 }
158 
159 Identity Identity::fromMimeData( const QMimeData*md )
160 {
161  Identity i;
162  if ( canDecode( md ) ) {
163  QByteArray ba = md->data( mimeDataType() );
164  QDataStream s( &ba, QIODevice::ReadOnly );
165  s >> i;
166  }
167  return i;
168 }
169 
170 // ------------------ Operators --------------------------//
171 
172 QDataStream &KPIMIdentities::operator<<
173 ( QDataStream &stream, const KPIMIdentities::Identity &i )
174 {
175  return stream << static_cast<quint32>( i.uoid() )
176  << i.identityName()
177  << i.fullName()
178  << i.organization()
179  << i.pgpSigningKey()
180  << i.pgpEncryptionKey()
181  << i.smimeSigningKey()
182  << i.smimeEncryptionKey()
183  << i.primaryEmailAddress()
184  << i.emailAliases()
185  << i.replyToAddr()
186  << i.bcc()
187  << i.vCardFile()
188  << i.transport()
189  << i.fcc()
190  << i.drafts()
191  << i.templates()
192  << i.mPropertiesMap[QLatin1String(s_signature)]
193  << i.dictionary()
194  << i.xface()
195  << i.preferredCryptoMessageFormat()
196  << i.cc()
197  << i.attachVcard()
198  << i.autocorrectionLanguage()
199  << i.disabledFcc()
200  << i.pgpAutoSign();
201 }
202 
203 QDataStream &KPIMIdentities::operator>>
204 ( QDataStream &stream, KPIMIdentities::Identity &i )
205 {
206  quint32 uoid;
207  stream
208  >> uoid
209  >> i.mPropertiesMap[QLatin1String(s_identity)]
210  >> i.mPropertiesMap[QLatin1String(s_name)]
211  >> i.mPropertiesMap[QLatin1String(s_organization)]
212  >> i.mPropertiesMap[QLatin1String(s_pgps)]
213  >> i.mPropertiesMap[QLatin1String(s_pgpe)]
214  >> i.mPropertiesMap[QLatin1String(s_smimes)]
215  >> i.mPropertiesMap[QLatin1String(s_smimee)]
216  >> i.mPropertiesMap[QLatin1String(s_email)]
217  >> i.mPropertiesMap[QLatin1String(s_emailAliases)]
218  >> i.mPropertiesMap[QLatin1String(s_replyto)]
219  >> i.mPropertiesMap[QLatin1String(s_bcc)]
220  >> i.mPropertiesMap[QLatin1String(s_vcard)]
221  >> i.mPropertiesMap[QLatin1String(s_transport)]
222  >> i.mPropertiesMap[QLatin1String(s_fcc)]
223  >> i.mPropertiesMap[QLatin1String(s_drafts)]
224  >> i.mPropertiesMap[QLatin1String(s_templates)]
225  >> i.mPropertiesMap[QLatin1String(s_signature)]
226  >> i.mPropertiesMap[QLatin1String(s_dict)]
227  >> i.mPropertiesMap[QLatin1String(s_xface)]
228  >> i.mPropertiesMap[QLatin1String(s_prefcrypt)]
229  >> i.mPropertiesMap[QLatin1String(s_cc)]
230  >> i.mPropertiesMap[QLatin1String(s_attachVcard)]
231  >> i.mPropertiesMap[QLatin1String(s_autocorrectionLanguage)]
232  >> i.mPropertiesMap[QLatin1String(s_disabledFcc)]
233  >> i.mPropertiesMap[QLatin1String(s_pgpautosign)];
234 
235  i.setProperty( QLatin1String(s_uoid), uoid );
236  return stream;
237 }
238 
239 bool Identity::operator< ( const Identity &other ) const
240 {
241  if ( isDefault() ) {
242  return true;
243  }
244  if ( other.isDefault() ) {
245  return false;
246  }
247  return identityName() < other.identityName();
248 }
249 
250 bool Identity::operator> ( const Identity &other ) const
251 {
252  if ( isDefault() ) {
253  return false;
254  }
255  if ( other.isDefault() ) {
256  return true;
257  }
258  return identityName() > other.identityName();
259 }
260 
261 bool Identity::operator<= ( const Identity &other ) const
262 {
263  return !operator> ( other );
264 }
265 
266 bool Identity::operator>= ( const Identity &other ) const
267 {
268  return !operator< ( other );
269 }
270 
271 bool Identity::operator== ( const Identity &other ) const
272 {
273  return mPropertiesMap == other.mPropertiesMap &&
274  mSignature == other.mSignature;
275 }
276 
277 bool Identity::operator!= ( const Identity &other ) const
278 {
279  return !operator== ( other );
280 }
281 
282 // --------------------- Getters -----------------------------//
283 
284 QVariant Identity::property( const QString &key ) const
285 {
286  return mPropertiesMap.value( key );
287 }
288 
289 QString Identity::fullEmailAddr( void ) const
290 {
291  const QString name = mPropertiesMap.value( QLatin1String(s_name) ).toString();
292  const QString mail = mPropertiesMap.value( QLatin1String(s_email) ).toString();
293 
294  if ( name.isEmpty() ) {
295  return mail;
296  }
297 
298  const QString specials( QLatin1String("()<>@,.;:[]") );
299 
300  QString result;
301 
302  // add DQUOTE's if necessary:
303  bool needsQuotes=false;
304  const int nameLength( name.length() );
305  for ( int i=0; i < nameLength; i++ ) {
306  if ( specials.contains( name[i] ) ) {
307  needsQuotes = true;
308  } else if ( name[i] == QLatin1Char('\\') || name[i] == QLatin1Char('"') ) {
309  needsQuotes = true;
310  result += QLatin1Char('\\');
311  }
312  result += name[i];
313  }
314 
315  if ( needsQuotes ) {
316  result.insert( 0, QLatin1Char('"') );
317  result += QLatin1Char('"');
318  }
319 
320  result += QLatin1String(" <") + mail + QLatin1Char('>');
321 
322  return result;
323 }
324 
325 QString Identity::identityName() const
326 {
327  return property( QLatin1String( s_identity ) ).toString();
328 }
329 
330 QString Identity::signatureText( bool *ok ) const
331 {
332  return mSignature.withSeparator( ok );
333 }
334 
335 bool Identity::signatureIsInlinedHtml() const
336 {
337  return mSignature.isInlinedHtml();
338 }
339 
340 bool Identity::isDefault() const
341 {
342  return mIsDefault;
343 }
344 
345 uint Identity::uoid() const
346 {
347  return property( QLatin1String( s_uoid ) ).toInt();
348 }
349 
350 QString Identity::fullName() const
351 {
352  return property( QLatin1String( s_name ) ).toString();
353 }
354 
355 QString Identity::organization() const
356 {
357  return property( QLatin1String( s_organization ) ).toString();
358 }
359 
360 QByteArray Identity::pgpEncryptionKey() const
361 {
362  return property( QLatin1String( s_pgpe ) ).toByteArray();
363 }
364 
365 QByteArray Identity::pgpSigningKey() const
366 {
367  return property( QLatin1String( s_pgps ) ).toByteArray();
368 }
369 
370 QByteArray Identity::smimeEncryptionKey() const
371 {
372  return property( QLatin1String( s_smimee ) ).toByteArray();
373 }
374 
375 QByteArray Identity::smimeSigningKey() const
376 {
377  return property( QLatin1String( s_smimes ) ).toByteArray();
378 }
379 
380 QString Identity::preferredCryptoMessageFormat() const
381 {
382  return property( QLatin1String( s_prefcrypt ) ).toString();
383 }
384 
385 QString Identity::emailAddr() const
386 {
387  return primaryEmailAddress();
388 }
389 
390 QString Identity::primaryEmailAddress() const
391 {
392  return property( QLatin1String( s_email ) ).toString();
393 }
394 
395 const QStringList Identity::emailAliases() const
396 {
397  return property( QLatin1String( s_emailAliases ) ).toStringList();
398 }
399 
400 QString Identity::vCardFile() const
401 {
402  return property( QLatin1String( s_vcard ) ).toString();
403 }
404 
405 bool Identity::attachVcard() const
406 {
407  return property( QLatin1String( s_attachVcard ) ).toBool();
408 }
409 
410 QString Identity::replyToAddr() const
411 {
412  return property( QLatin1String( s_replyto ) ).toString();
413 }
414 
415 QString Identity::bcc() const
416 {
417  return property( QLatin1String( s_bcc ) ).toString();
418 }
419 
420 QString Identity::cc() const
421 {
422  return property( QLatin1String( s_cc ) ).toString();
423 }
424 
425 Signature &Identity::signature()
426 {
427  return mSignature;
428 }
429 
430 bool Identity::isXFaceEnabled() const
431 {
432  return property( QLatin1String( s_xfaceenabled ) ).toBool();
433 }
434 
435 QString Identity::xface() const
436 {
437  return property( QLatin1String( s_xface ) ).toString();
438 }
439 
440 QString Identity::dictionary() const
441 {
442  return property( QLatin1String( s_dict ) ).toString();
443 }
444 
445 QString Identity::templates() const
446 {
447  const QString str = property( QLatin1String( s_templates ) ).toString();
448  return verifyAkonadiId(str);
449 }
450 
451 QString Identity::drafts() const
452 {
453  const QString str = property( QLatin1String( s_drafts ) ).toString();
454  return verifyAkonadiId(str);
455 }
456 
457 QString Identity::fcc() const
458 {
459  const QString str = property( QLatin1String( s_fcc ) ).toString();
460  return verifyAkonadiId(str);
461 }
462 
463 QString Identity::transport() const
464 {
465  return property( QLatin1String( s_transport ) ).toString();
466 }
467 
468 bool Identity::signatureIsCommand() const
469 {
470  return mSignature.type() == Signature::FromCommand;
471 }
472 
473 bool Identity::signatureIsPlainFile() const
474 {
475  return mSignature.type() == Signature::FromFile;
476 }
477 
478 bool Identity::signatureIsInline() const
479 {
480  return mSignature.type() == Signature::Inlined;
481 }
482 
483 bool Identity::useSignatureFile() const
484 {
485  return signatureIsPlainFile() || signatureIsCommand();
486 }
487 
488 QString Identity::signatureInlineText() const
489 {
490  return mSignature.text();
491 }
492 
493 QString Identity::signatureFile() const
494 {
495  return mSignature.url();
496 }
497 
498 QString Identity::autocorrectionLanguage() const
499 {
500  return property( QLatin1String( s_autocorrectionLanguage ) ).toString();
501 }
502 
503 // --------------------- Setters -----------------------------//
504 
505 void Identity::setProperty( const QString &key, const QVariant &value )
506 {
507  if ( value.isNull() ||
508  ( value.type() == QVariant::String && value.toString().isEmpty() ) ) {
509  mPropertiesMap.remove( key );
510  } else {
511  mPropertiesMap.insert( key, value );
512  }
513 }
514 
515 void Identity::setUoid( uint aUoid )
516 {
517  setProperty( QLatin1String(s_uoid), aUoid );
518 }
519 
520 void Identity::setIdentityName( const QString &name )
521 {
522  setProperty( QLatin1String(s_identity), name );
523 }
524 
525 void Identity::setFullName( const QString &str )
526 {
527  setProperty( QLatin1String(s_name), str );
528 }
529 
530 void Identity::setOrganization( const QString &str )
531 {
532  setProperty( QLatin1String(s_organization), str );
533 }
534 
535 void Identity::setPGPSigningKey( const QByteArray &str )
536 {
537  setProperty( QLatin1String(s_pgps), QLatin1String( str ) );
538 }
539 
540 void Identity::setPGPEncryptionKey( const QByteArray &str )
541 {
542  setProperty( QLatin1String(s_pgpe), QLatin1String( str ) );
543 }
544 
545 void Identity::setSMIMESigningKey( const QByteArray &str )
546 {
547  setProperty( QLatin1String(s_smimes), QLatin1String( str ) );
548 }
549 
550 void Identity::setSMIMEEncryptionKey( const QByteArray &str )
551 {
552  setProperty( QLatin1String(s_smimee), QLatin1String( str ) );
553 }
554 
555 void Identity::setEmailAddr( const QString &str )
556 {
557  setPrimaryEmailAddress( str );
558 }
559 
560 void Identity::setPrimaryEmailAddress( const QString & email )
561 {
562  setProperty( QLatin1String(s_email), email );
563 }
564 
565 void Identity::setEmailAliases( const QStringList & aliases )
566 {
567  setProperty( QLatin1String(s_emailAliases), aliases );
568 }
569 
570 void Identity::setVCardFile( const QString &str )
571 {
572  setProperty( QLatin1String(s_vcard), str );
573 }
574 
575 void Identity::setAttachVcard(bool attachment)
576 {
577  setProperty( QLatin1String(s_attachVcard), attachment );
578 }
579 
580 void Identity::setReplyToAddr( const QString&str )
581 {
582  setProperty( QLatin1String(s_replyto), str );
583 }
584 
585 void Identity::setSignatureFile( const QString &str )
586 {
587  mSignature.setUrl( str, signatureIsCommand() );
588 }
589 
590 void Identity::setSignatureInlineText( const QString &str )
591 {
592  mSignature.setText( str );
593 }
594 
595 void Identity::setTransport( const QString &str )
596 {
597  setProperty( QLatin1String(s_transport), str );
598 }
599 
600 void Identity::setFcc( const QString &str )
601 {
602  setProperty( QLatin1String(s_fcc), str );
603 }
604 
605 void Identity::setDrafts( const QString &str )
606 {
607  setProperty( QLatin1String(s_drafts), str );
608 }
609 
610 void Identity::setTemplates( const QString &str )
611 {
612  setProperty( QLatin1String(s_templates), str );
613 }
614 
615 void Identity::setDictionary( const QString &str )
616 {
617  setProperty( QLatin1String(s_dict), str );
618 }
619 
620 void Identity::setBcc( const QString &str )
621 {
622  setProperty( QLatin1String(s_bcc), str );
623 }
624 
625 void Identity::setCc( const QString &str )
626 {
627  setProperty( QLatin1String(s_cc), str );
628 }
629 
630 void Identity::setIsDefault( bool flag )
631 {
632  mIsDefault = flag;
633 }
634 
635 void Identity::setPreferredCryptoMessageFormat( const QString &str )
636 {
637  setProperty( QLatin1String(s_prefcrypt), str );
638 }
639 
640 void Identity::setXFace( const QString &str )
641 {
642  QString strNew = str;
643  strNew.remove( QLatin1Char(' ') );
644  strNew.remove( QLatin1Char('\n') );
645  strNew.remove( QLatin1Char('\r') );
646  setProperty( QLatin1String(s_xface), strNew );
647 }
648 
649 void Identity::setXFaceEnabled( const bool on )
650 {
651  setProperty( QLatin1String(s_xfaceenabled), on );
652 }
653 
654 void Identity::setSignature( const Signature &sig )
655 {
656  mSignature = sig;
657 }
658 
659 bool Identity::matchesEmailAddress( const QString & addr ) const
660 {
661  const QString addrSpec = KPIMUtils::extractEmailAddress( addr ).toLower();
662  if ( addrSpec == primaryEmailAddress().toLower() ) {
663  return true;
664  }
665 
666  foreach ( const QString &alias, emailAliases() ) {
667  if ( alias.toLower() == addrSpec ) {
668  return true;
669  }
670  }
671 
672  return false;
673 }
674 
675 QString Identity::verifyAkonadiId(const QString& str) const
676 {
677  if(str.isEmpty())
678  return str;
679  bool ok = false;
680  const qlonglong val = str.toLongLong(&ok);
681  Q_UNUSED(val);
682  if(ok) {
683  return str;
684  } else {
685  return QString();
686  }
687 }
688 
689 void Identity::setAutocorrectionLanguage(const QString& language)
690 {
691  setProperty( QLatin1String(s_autocorrectionLanguage), language );
692 }
693 
694 
695 bool Identity::disabledFcc() const
696 {
697  const QVariant var = property(QLatin1String( s_disabledFcc ));
698  if(var.isNull()) {
699  return false;
700  } else {
701  return var.toBool();
702  }
703 }
704 
705 void Identity::setDisabledFcc(bool disable)
706 {
707  setProperty( QLatin1String(s_disabledFcc), disable );
708 }
709 
710 bool Identity::pgpAutoSign() const
711 {
712  const QVariant var = property(QLatin1String( s_pgpautosign ));
713  if(var.isNull()) {
714  return false;
715  } else {
716  return var.toBool();
717  }
718 }
719 
720 void Identity::setPgpAutoSign(bool autoSign)
721 {
722  setProperty( QLatin1String(s_pgpautosign), autoSign );
723 }
724 
725 
KPIMIdentities::Identity::drafts
QString drafts() const
The folder where draft messages from this identity will be stored by default.
Definition: identity.cpp:451
KPIMIdentities::Identity::signatureIsPlainFile
bool signatureIsPlainFile() const
Definition: identity.cpp:473
KPIMIdentities::Identity::isDefault
bool isDefault() const
Definition: identity.cpp:340
KPIMIdentities::Identity::identityName
QString identityName() const
Identity/nickname for this collection.
Definition: identity.cpp:325
KPIMIdentities::Identity::signatureIsCommand
bool signatureIsCommand() const
Definition: identity.cpp:468
KPIMIdentities::Identity::xface
QString xface() const
a X-Face header for this identity
Definition: identity.cpp:435
KPIMIdentities::Identity::transport
QString transport() const
The transport that is set for this identity.
Definition: identity.cpp:463
KPIMIdentities::Identity::fcc
QString fcc() const
The folder where sent messages from this identity will be stored by default.
Definition: identity.cpp:457
KPIMIdentities::Identity::smimeSigningKey
QByteArray smimeSigningKey() const
The user's S/MIME signing key.
Definition: identity.cpp:375
KPIMIdentities::Identity::emailAddr
KPIMIDENTITIES_DEPRECATED QString emailAddr() const
email address (without the user name - only name@host)
Definition: identity.cpp:385
KPIMIdentities::Identity::signatureInlineText
QString signatureInlineText() const
inline signature
Definition: identity.cpp:488
KPIMIdentities::Identity::vCardFile
QString vCardFile() const
vCard to attach to outgoing emails
Definition: identity.cpp:400
KPIMIdentities::Identity::setIsDefault
void setIsDefault(bool flag)
Set whether this identity is the default identity.
Definition: identity.cpp:630
KPIMIdentities::Signature::setText
void setText(const QString &text)
Set the signature text and mark this signature as being of "inline text" type.
Definition: signature.cpp:665
KPIMIdentities::Identity::signatureText
QString signatureText(bool *ok=0) const
Definition: identity.cpp:330
KPIMIdentities::Identity::setIdentityName
void setIdentityName(const QString &name)
Identity/nickname for this collection.
Definition: identity.cpp:520
KPIMIdentities::Identity::operator>=
bool operator>=(const Identity &other) const
used for sorting
Definition: identity.cpp:266
KPIMIdentities::Identity::pgpAutoSign
bool pgpAutoSign() const
Definition: identity.cpp:710
KPIMIdentities::Identity::operator<=
bool operator<=(const Identity &other) const
used for sorting
Definition: identity.cpp:261
KPIMIdentities::Identity::primaryEmailAddress
QString primaryEmailAddress() const
primary email address (without the user name - only name@host).
Definition: identity.cpp:390
KPIMIdentities::Identity::operator<
bool operator<(const Identity &other) const
used for sorting
Definition: identity.cpp:239
KPIMIdentities::Identity::uoid
uint uoid() const
Unique Object Identifier for this identity.
Definition: identity.cpp:345
KPIMIdentities::Identity::signatureFile
QString signatureFile() const
name of the signature file (with path)
Definition: identity.cpp:493
KPIMIdentities::Identity::pgpEncryptionKey
QByteArray pgpEncryptionKey() const
The user's OpenPGP encryption key.
Definition: identity.cpp:360
KPIMIdentities::Identity::fullName
QString fullName() const
Full name of the user.
Definition: identity.cpp:350
KPIMIdentities::Identity::Identity
Identity(const QString &id=QString(), const QString &realName=QString(), const QString &emailAddr=QString(), const QString &organization=QString(), const QString &replyToAddress=QString())
Constructor.
Definition: identity.cpp:50
KPIMIdentities::Identity::~Identity
~Identity()
Destructor.
Definition: identity.cpp:65
KPIMIdentities::Identity::disabledFcc
bool disabledFcc() const
Definition: identity.cpp:695
KPIMIdentities::Signature::isInlinedHtml
bool isInlinedHtml() const
Definition: signature.cpp:273
KPIMIdentities::Identity::autocorrectionLanguage
QString autocorrectionLanguage() const
Definition: identity.cpp:498
KPIMIdentities::Identity::verifyAkonadiId
QString verifyAkonadiId(const QString &str) const
during migration when it failed it can be a string => not a qlonglong akonadi::id => fix it ...
Definition: identity.cpp:675
KPIMIdentities::Identity::operator>
bool operator>(const Identity &other) const
used for sorting
Definition: identity.cpp:250
KPIMIdentities::Identity::cc
QString cc() const
email addresses for the CC: field
Definition: identity.cpp:420
KPIMIdentities::Identity::signatureIsInline
bool signatureIsInline() const
Definition: identity.cpp:478
KPIMIdentities::Signature
Abstraction of a signature (aka "footer").
Definition: signature.h:89
KPIMIdentities::Identity::signatureIsInlinedHtml
bool signatureIsInlinedHtml() const
Definition: identity.cpp:335
KPIMIdentities::Identity::mailingAllowed
bool mailingAllowed() const
Tests if there are enough values set to allow mailing.
Definition: identity.cpp:134
KPIMIdentities::Identity::matchesEmailAddress
bool matchesEmailAddress(const QString &addr) const
Definition: identity.cpp:659
KPIMIdentities::Identity::emailAliases
const QStringList emailAliases() const
email address aliases
Definition: identity.cpp:395
KPIMIdentities::Identity::templates
QString templates() const
The folder where template messages from this identity will be stored by default.
Definition: identity.cpp:445
KPIMIdentities::Identity
User identity information.
Definition: identity.h:82
KPIMIdentities::Identity::dictionary
QString dictionary() const
Dictionary which should be used for spell checking.
Definition: identity.cpp:440
KPIMIdentities::Identity::setProperty
void setProperty(const QString &key, const QVariant &value)
Set random properties, when value is empty (for QStrings) or null, the property is deleted...
Definition: identity.cpp:505
KPIMIdentities::Identity::isNull
bool isNull() const
Returns true when the identity contains no values, all null values or only empty values.
Definition: identity.cpp:76
KPIMIdentities::Identity::operator==
bool operator==(const Identity &other) const
used for comparison
Definition: identity.cpp:271
KPIMIdentities::Identity::attachVcard
bool attachVcard() const
Definition: identity.cpp:405
KPIMIdentities::Identity::setUoid
void setUoid(uint aUoid)
set the uiod
Definition: identity.cpp:515
KPIMIdentities::Identity::writeConfig
void writeConfig(KConfigGroup &) const
Write configuration to config.
Definition: identity.cpp:122
KPIMIdentities::Identity::pgpSigningKey
QByteArray pgpSigningKey() const
The user's OpenPGP signing key.
Definition: identity.cpp:365
KPIMIdentities::Identity::replyToAddr
QString replyToAddr() const
email address for the ReplyTo: field
Definition: identity.cpp:410
KPIMIdentities::Identity::bcc
QString bcc() const
email addresses for the BCC: field
Definition: identity.cpp:415
KPIMIdentities::Identity::readConfig
void readConfig(const KConfigGroup &)
Read configuration from config.
Definition: identity.cpp:104
KPIMIdentities::Signature::withSeparator
QString withSeparator(bool *ok=0) const
Definition: signature.cpp:235
KPIMIdentities::Identity::fullEmailAddr
QString fullEmailAddr() const
email address in the format "username " suitable for the "From:" field of email messages...
Definition: identity.cpp:289
KPIMIdentities::Identity::useSignatureFile
bool useSignatureFile() const
Inline or signature from a file.
Definition: identity.cpp:483
KPIMIdentities::Identity::smimeEncryptionKey
QByteArray smimeEncryptionKey() const
The user's S/MIME encryption key.
Definition: identity.cpp:370
KPIMIdentities::Signature::setUrl
void setUrl(const QString &url, bool isExecutable=false)
Set the signature URL and mark this signature as being of "from file" resp.
Definition: signature.cpp:262
KPIMIdentities::Signature::type
Type type() const
Definition: signature.cpp:658
KPIMIdentities::Identity::property
QVariant property(const QString &key) const
Get random properties.
Definition: identity.cpp:284
KPIMIdentities::Identity::operator!=
bool operator!=(const Identity &other) const
used for comparison
Definition: identity.cpp:277
KPIMIdentities::Identity::organization
QString organization() const
The user's organization (optional)
Definition: identity.cpp:355
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:01:12 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kpimidentities

Skip menu "kpimidentities"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Members
  • File List
  • Related Pages

kdepimlibs API Reference

Skip menu "kdepimlibs API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kldap
  • kmbox
  • kmime
  • kpimidentities
  • kpimtextedit
  • kresources
  • ktnef
  • kxmlrpcclient
  • microblog

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal