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

kpimidentities

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

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