mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 18:32:51 +00:00
730 lines
17 KiB
C++
730 lines
17 KiB
C++
/*
|
|
Copyright (c) 2002-2004 Marc Mutz <mutz@kde.org>
|
|
Copyright (c) 2007 Tom Albers <tomalbers@kde.nl>
|
|
|
|
This library is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU Library General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or (at your
|
|
option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
|
|
License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to the
|
|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
02110-1301, USA.
|
|
*/
|
|
|
|
#include "identity.h"
|
|
#include "signature.h"
|
|
|
|
#include <sonnet/globals.h>
|
|
#include <kdebug.h>
|
|
#include <kconfiggroup.h>
|
|
#include <kpimutils/email.h>
|
|
|
|
#include <QMimeData>
|
|
#include <QByteArray>
|
|
#include <QHostInfo>
|
|
|
|
using namespace KPIMIdentities;
|
|
|
|
// TODO: should use a kstaticdeleter?
|
|
static Identity *identityNull = 0;
|
|
|
|
Identity::Identity( const QString &id, const QString &fullName,
|
|
const QString &emailAddr, const QString &organization,
|
|
const QString &replyToAddr )
|
|
: mIsDefault( false )
|
|
{
|
|
setProperty( QLatin1String(s_uoid), 0 );
|
|
setProperty( QLatin1String(s_identity), id );
|
|
setProperty( QLatin1String(s_name), fullName );
|
|
setProperty( QLatin1String(s_email), emailAddr );
|
|
setProperty( QLatin1String(s_organization), organization );
|
|
setProperty( QLatin1String(s_replyto), replyToAddr );
|
|
setDictionary( Sonnet::defaultLanguageName() );
|
|
setProperty( QLatin1String(s_disabledFcc), false );
|
|
setProperty( QLatin1String(s_defaultDomainName), QHostInfo::localHostName());
|
|
}
|
|
|
|
Identity::~Identity()
|
|
{}
|
|
|
|
const Identity &Identity::null()
|
|
{
|
|
if ( !identityNull ) {
|
|
identityNull = new Identity;
|
|
}
|
|
return *identityNull;
|
|
}
|
|
|
|
bool Identity::isNull() const
|
|
{
|
|
bool empty = true;
|
|
QHash<QString, QVariant>::const_iterator i = mPropertiesMap.constBegin();
|
|
while ( i != mPropertiesMap.constEnd() ) {
|
|
// Take into account that the defaultDomainName for a null identity is not empty
|
|
if ( i.key() == QLatin1String(s_defaultDomainName) ) {
|
|
++i;
|
|
continue;
|
|
}
|
|
// Take into account that the dictionary for a null identity is not empty
|
|
if ( i.key() == QLatin1String(s_dict) ) {
|
|
++i;
|
|
continue;
|
|
}
|
|
// Take into account that disableFcc == false for a null identity
|
|
if( i.key() == QLatin1String(s_disabledFcc) && i.value().toBool() == false ) {
|
|
++i;
|
|
continue;
|
|
}
|
|
// The uoid is 0 by default, so ignore this
|
|
if ( !( i.key() == QLatin1String(s_uoid) && i.value().toUInt() == 0 ) ) {
|
|
if ( !i.value().isNull() ||
|
|
( i.value().type() == QVariant::String && !i.value().toString().isEmpty() ) ) {
|
|
empty = false;
|
|
}
|
|
}
|
|
++i;
|
|
}
|
|
return empty;
|
|
}
|
|
|
|
void Identity::readConfig( const KConfigGroup &config )
|
|
{
|
|
// get all keys and convert them to our QHash.
|
|
QMap<QString, QString> entries = config.entryMap();
|
|
QMap<QString, QString>::const_iterator i = entries.constBegin();
|
|
QMap<QString, QString>::const_iterator end = entries.constEnd();
|
|
while ( i != end ) {
|
|
if ( i.key() == QLatin1String(s_emailAliases) ) {
|
|
// HACK: Read s_emailAliases as a stringlist
|
|
mPropertiesMap.insert( i.key(), config.readEntry( i.key(), QStringList() ) );
|
|
} else {
|
|
mPropertiesMap.insert( i.key(), config.readEntry( i.key() ) );
|
|
}
|
|
++i;
|
|
}
|
|
mSignature.readConfig( config );
|
|
}
|
|
|
|
void Identity::writeConfig( KConfigGroup &config ) const
|
|
{
|
|
QHash<QString, QVariant>::const_iterator i = mPropertiesMap.constBegin();
|
|
QHash<QString, QVariant>::const_iterator end = mPropertiesMap.constEnd();
|
|
while ( i != end ) {
|
|
config.writeEntry( i.key(), i.value() );
|
|
kDebug( 5325 ) << "Store:" << i.key() << ":" << i.value();
|
|
++i;
|
|
}
|
|
mSignature.writeConfig( config );
|
|
}
|
|
|
|
bool Identity::mailingAllowed() const
|
|
{
|
|
return !property( QLatin1String(s_email) ).toString().isEmpty();
|
|
}
|
|
|
|
QString Identity::mimeDataType()
|
|
{
|
|
return QLatin1String("application/x-kmail-identity-drag");
|
|
}
|
|
|
|
bool Identity::canDecode( const QMimeData*md )
|
|
{
|
|
return md->hasFormat( mimeDataType() );
|
|
}
|
|
|
|
void Identity::populateMimeData( QMimeData*md )
|
|
{
|
|
QByteArray a;
|
|
{
|
|
QDataStream s( &a, QIODevice::WriteOnly );
|
|
s << this;
|
|
}
|
|
md->setData( mimeDataType(), a );
|
|
}
|
|
|
|
Identity Identity::fromMimeData( const QMimeData*md )
|
|
{
|
|
Identity i;
|
|
if ( canDecode( md ) ) {
|
|
QByteArray ba = md->data( mimeDataType() );
|
|
QDataStream s( &ba, QIODevice::ReadOnly );
|
|
s >> i;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
// ------------------ Operators --------------------------//
|
|
|
|
QDataStream &KPIMIdentities::operator<<
|
|
( QDataStream &stream, const KPIMIdentities::Identity &i )
|
|
{
|
|
return stream << static_cast<quint32>( i.uoid() )
|
|
<< i.identityName()
|
|
<< i.fullName()
|
|
<< i.organization()
|
|
<< i.pgpSigningKey()
|
|
<< i.pgpEncryptionKey()
|
|
<< i.smimeSigningKey()
|
|
<< i.smimeEncryptionKey()
|
|
<< i.primaryEmailAddress()
|
|
<< i.emailAliases()
|
|
<< i.replyToAddr()
|
|
<< i.bcc()
|
|
<< i.vCardFile()
|
|
<< i.transport()
|
|
<< i.fcc()
|
|
<< i.drafts()
|
|
<< i.templates()
|
|
<< i.mPropertiesMap[QLatin1String(s_signature)]
|
|
<< i.dictionary()
|
|
<< i.xface()
|
|
<< i.preferredCryptoMessageFormat()
|
|
<< i.cc()
|
|
<< i.attachVcard()
|
|
<< i.autocorrectionLanguage()
|
|
<< i.disabledFcc()
|
|
<< i.pgpAutoSign()
|
|
<< i.defaultDomainName();
|
|
}
|
|
|
|
QDataStream &KPIMIdentities::operator>>
|
|
( QDataStream &stream, KPIMIdentities::Identity &i )
|
|
{
|
|
quint32 uoid;
|
|
stream
|
|
>> uoid
|
|
>> i.mPropertiesMap[QLatin1String(s_identity)]
|
|
>> i.mPropertiesMap[QLatin1String(s_name)]
|
|
>> i.mPropertiesMap[QLatin1String(s_organization)]
|
|
>> i.mPropertiesMap[QLatin1String(s_pgps)]
|
|
>> i.mPropertiesMap[QLatin1String(s_pgpe)]
|
|
>> i.mPropertiesMap[QLatin1String(s_smimes)]
|
|
>> i.mPropertiesMap[QLatin1String(s_smimee)]
|
|
>> i.mPropertiesMap[QLatin1String(s_email)]
|
|
>> i.mPropertiesMap[QLatin1String(s_emailAliases)]
|
|
>> i.mPropertiesMap[QLatin1String(s_replyto)]
|
|
>> i.mPropertiesMap[QLatin1String(s_bcc)]
|
|
>> i.mPropertiesMap[QLatin1String(s_vcard)]
|
|
>> i.mPropertiesMap[QLatin1String(s_transport)]
|
|
>> i.mPropertiesMap[QLatin1String(s_fcc)]
|
|
>> i.mPropertiesMap[QLatin1String(s_drafts)]
|
|
>> i.mPropertiesMap[QLatin1String(s_templates)]
|
|
>> i.mPropertiesMap[QLatin1String(s_signature)]
|
|
>> i.mPropertiesMap[QLatin1String(s_dict)]
|
|
>> i.mPropertiesMap[QLatin1String(s_xface)]
|
|
>> i.mPropertiesMap[QLatin1String(s_prefcrypt)]
|
|
>> i.mPropertiesMap[QLatin1String(s_cc)]
|
|
>> i.mPropertiesMap[QLatin1String(s_attachVcard)]
|
|
>> i.mPropertiesMap[QLatin1String(s_autocorrectionLanguage)]
|
|
>> i.mPropertiesMap[QLatin1String(s_disabledFcc)]
|
|
>> i.mPropertiesMap[QLatin1String(s_pgpautosign)]
|
|
>> i.mPropertiesMap[QLatin1String(s_defaultDomainName)];
|
|
|
|
i.setProperty( QLatin1String(s_uoid), uoid );
|
|
return stream;
|
|
}
|
|
|
|
bool Identity::operator< ( const Identity &other ) const
|
|
{
|
|
if ( isDefault() ) {
|
|
return true;
|
|
}
|
|
if ( other.isDefault() ) {
|
|
return false;
|
|
}
|
|
return identityName() < other.identityName();
|
|
}
|
|
|
|
bool Identity::operator> ( const Identity &other ) const
|
|
{
|
|
if ( isDefault() ) {
|
|
return false;
|
|
}
|
|
if ( other.isDefault() ) {
|
|
return true;
|
|
}
|
|
return identityName() > other.identityName();
|
|
}
|
|
|
|
bool Identity::operator<= ( const Identity &other ) const
|
|
{
|
|
return !operator> ( other );
|
|
}
|
|
|
|
bool Identity::operator>= ( const Identity &other ) const
|
|
{
|
|
return !operator< ( other );
|
|
}
|
|
|
|
bool Identity::operator== ( const Identity &other ) const
|
|
{
|
|
return mPropertiesMap == other.mPropertiesMap &&
|
|
mSignature == other.mSignature;
|
|
}
|
|
|
|
bool Identity::operator!= ( const Identity &other ) const
|
|
{
|
|
return !operator== ( other );
|
|
}
|
|
|
|
// --------------------- Getters -----------------------------//
|
|
|
|
QVariant Identity::property( const QString &key ) const
|
|
{
|
|
return mPropertiesMap.value( key );
|
|
}
|
|
|
|
QString Identity::fullEmailAddr( void ) const
|
|
{
|
|
const QString name = mPropertiesMap.value( QLatin1String(s_name) ).toString();
|
|
const QString mail = mPropertiesMap.value( QLatin1String(s_email) ).toString();
|
|
|
|
if ( name.isEmpty() ) {
|
|
return mail;
|
|
}
|
|
|
|
const QString specials( QLatin1String("()<>@,.;:[]") );
|
|
|
|
QString result;
|
|
|
|
// add DQUOTE's if necessary:
|
|
bool needsQuotes=false;
|
|
const int nameLength( name.length() );
|
|
for ( int i=0; i < nameLength; i++ ) {
|
|
if ( specials.contains( name[i] ) ) {
|
|
needsQuotes = true;
|
|
} else if ( name[i] == QLatin1Char('\\') || name[i] == QLatin1Char('"') ) {
|
|
needsQuotes = true;
|
|
result += QLatin1Char('\\');
|
|
}
|
|
result += name[i];
|
|
}
|
|
|
|
if ( needsQuotes ) {
|
|
result.insert( 0, QLatin1Char('"') );
|
|
result += QLatin1Char('"');
|
|
}
|
|
|
|
result += QLatin1String(" <") + mail + QLatin1Char('>');
|
|
|
|
return result;
|
|
}
|
|
|
|
QString Identity::identityName() const
|
|
{
|
|
return property( QLatin1String( s_identity ) ).toString();
|
|
}
|
|
|
|
QString Identity::signatureText( bool *ok ) const
|
|
{
|
|
return mSignature.withSeparator( ok );
|
|
}
|
|
|
|
bool Identity::signatureIsInlinedHtml() const
|
|
{
|
|
return mSignature.isInlinedHtml();
|
|
}
|
|
|
|
bool Identity::isDefault() const
|
|
{
|
|
return mIsDefault;
|
|
}
|
|
|
|
uint Identity::uoid() const
|
|
{
|
|
return property( QLatin1String( s_uoid ) ).toInt();
|
|
}
|
|
|
|
QString Identity::fullName() const
|
|
{
|
|
return property( QLatin1String( s_name ) ).toString();
|
|
}
|
|
|
|
QString Identity::organization() const
|
|
{
|
|
return property( QLatin1String( s_organization ) ).toString();
|
|
}
|
|
|
|
QByteArray Identity::pgpEncryptionKey() const
|
|
{
|
|
return property( QLatin1String( s_pgpe ) ).toByteArray();
|
|
}
|
|
|
|
QByteArray Identity::pgpSigningKey() const
|
|
{
|
|
return property( QLatin1String( s_pgps ) ).toByteArray();
|
|
}
|
|
|
|
QByteArray Identity::smimeEncryptionKey() const
|
|
{
|
|
return property( QLatin1String( s_smimee ) ).toByteArray();
|
|
}
|
|
|
|
QByteArray Identity::smimeSigningKey() const
|
|
{
|
|
return property( QLatin1String( s_smimes ) ).toByteArray();
|
|
}
|
|
|
|
QString Identity::preferredCryptoMessageFormat() const
|
|
{
|
|
return property( QLatin1String( s_prefcrypt ) ).toString();
|
|
}
|
|
|
|
QString Identity::emailAddr() const
|
|
{
|
|
return primaryEmailAddress();
|
|
}
|
|
|
|
QString Identity::primaryEmailAddress() const
|
|
{
|
|
return property( QLatin1String( s_email ) ).toString();
|
|
}
|
|
|
|
const QStringList Identity::emailAliases() const
|
|
{
|
|
return property( QLatin1String( s_emailAliases ) ).toStringList();
|
|
}
|
|
|
|
QString Identity::vCardFile() const
|
|
{
|
|
return property( QLatin1String( s_vcard ) ).toString();
|
|
}
|
|
|
|
bool Identity::attachVcard() const
|
|
{
|
|
return property( QLatin1String( s_attachVcard ) ).toBool();
|
|
}
|
|
|
|
QString Identity::replyToAddr() const
|
|
{
|
|
return property( QLatin1String( s_replyto ) ).toString();
|
|
}
|
|
|
|
QString Identity::bcc() const
|
|
{
|
|
return property( QLatin1String( s_bcc ) ).toString();
|
|
}
|
|
|
|
QString Identity::cc() const
|
|
{
|
|
return property( QLatin1String( s_cc ) ).toString();
|
|
}
|
|
|
|
Signature &Identity::signature()
|
|
{
|
|
return mSignature;
|
|
}
|
|
|
|
bool Identity::isXFaceEnabled() const
|
|
{
|
|
return property( QLatin1String( s_xfaceenabled ) ).toBool();
|
|
}
|
|
|
|
QString Identity::xface() const
|
|
{
|
|
return property( QLatin1String( s_xface ) ).toString();
|
|
}
|
|
|
|
QString Identity::dictionary() const
|
|
{
|
|
return property( QLatin1String( s_dict ) ).toString();
|
|
}
|
|
|
|
QString Identity::templates() const
|
|
{
|
|
const QString str = property( QLatin1String( s_templates ) ).toString();
|
|
return verifyAkonadiId(str);
|
|
}
|
|
|
|
QString Identity::drafts() const
|
|
{
|
|
const QString str = property( QLatin1String( s_drafts ) ).toString();
|
|
return verifyAkonadiId(str);
|
|
}
|
|
|
|
QString Identity::fcc() const
|
|
{
|
|
const QString str = property( QLatin1String( s_fcc ) ).toString();
|
|
return verifyAkonadiId(str);
|
|
}
|
|
|
|
QString Identity::transport() const
|
|
{
|
|
return property( QLatin1String( s_transport ) ).toString();
|
|
}
|
|
|
|
bool Identity::signatureIsCommand() const
|
|
{
|
|
return mSignature.type() == Signature::FromCommand;
|
|
}
|
|
|
|
bool Identity::signatureIsPlainFile() const
|
|
{
|
|
return mSignature.type() == Signature::FromFile;
|
|
}
|
|
|
|
bool Identity::signatureIsInline() const
|
|
{
|
|
return mSignature.type() == Signature::Inlined;
|
|
}
|
|
|
|
bool Identity::useSignatureFile() const
|
|
{
|
|
return signatureIsPlainFile() || signatureIsCommand();
|
|
}
|
|
|
|
QString Identity::signatureInlineText() const
|
|
{
|
|
return mSignature.text();
|
|
}
|
|
|
|
QString Identity::signatureFile() const
|
|
{
|
|
return mSignature.url();
|
|
}
|
|
|
|
QString Identity::autocorrectionLanguage() const
|
|
{
|
|
return property( QLatin1String( s_autocorrectionLanguage ) ).toString();
|
|
}
|
|
|
|
// --------------------- Setters -----------------------------//
|
|
|
|
void Identity::setProperty( const QString &key, const QVariant &value )
|
|
{
|
|
if ( value.isNull() ||
|
|
( value.type() == QVariant::String && value.toString().isEmpty() ) ) {
|
|
mPropertiesMap.remove( key );
|
|
} else {
|
|
mPropertiesMap.insert( key, value );
|
|
}
|
|
}
|
|
|
|
void Identity::setUoid( uint aUoid )
|
|
{
|
|
setProperty( QLatin1String(s_uoid), aUoid );
|
|
}
|
|
|
|
void Identity::setIdentityName( const QString &name )
|
|
{
|
|
setProperty( QLatin1String(s_identity), name );
|
|
}
|
|
|
|
void Identity::setFullName( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_name), str );
|
|
}
|
|
|
|
void Identity::setOrganization( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_organization), str );
|
|
}
|
|
|
|
void Identity::setPGPSigningKey( const QByteArray &str )
|
|
{
|
|
setProperty( QLatin1String(s_pgps), QLatin1String( str ) );
|
|
}
|
|
|
|
void Identity::setPGPEncryptionKey( const QByteArray &str )
|
|
{
|
|
setProperty( QLatin1String(s_pgpe), QLatin1String( str ) );
|
|
}
|
|
|
|
void Identity::setSMIMESigningKey( const QByteArray &str )
|
|
{
|
|
setProperty( QLatin1String(s_smimes), QLatin1String( str ) );
|
|
}
|
|
|
|
void Identity::setSMIMEEncryptionKey( const QByteArray &str )
|
|
{
|
|
setProperty( QLatin1String(s_smimee), QLatin1String( str ) );
|
|
}
|
|
|
|
void Identity::setEmailAddr( const QString &str )
|
|
{
|
|
setPrimaryEmailAddress( str );
|
|
}
|
|
|
|
void Identity::setPrimaryEmailAddress( const QString & email )
|
|
{
|
|
setProperty( QLatin1String(s_email), email );
|
|
}
|
|
|
|
void Identity::setEmailAliases( const QStringList & aliases )
|
|
{
|
|
setProperty( QLatin1String(s_emailAliases), aliases );
|
|
}
|
|
|
|
void Identity::setVCardFile( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_vcard), str );
|
|
}
|
|
|
|
void Identity::setAttachVcard(bool attachment)
|
|
{
|
|
setProperty( QLatin1String(s_attachVcard), attachment );
|
|
}
|
|
|
|
void Identity::setReplyToAddr( const QString&str )
|
|
{
|
|
setProperty( QLatin1String(s_replyto), str );
|
|
}
|
|
|
|
void Identity::setSignatureFile( const QString &str )
|
|
{
|
|
mSignature.setUrl( str, signatureIsCommand() );
|
|
}
|
|
|
|
void Identity::setSignatureInlineText( const QString &str )
|
|
{
|
|
mSignature.setText( str );
|
|
}
|
|
|
|
void Identity::setTransport( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_transport), str );
|
|
}
|
|
|
|
void Identity::setFcc( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_fcc), str );
|
|
}
|
|
|
|
void Identity::setDrafts( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_drafts), str );
|
|
}
|
|
|
|
void Identity::setTemplates( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_templates), str );
|
|
}
|
|
|
|
void Identity::setDictionary( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_dict), str );
|
|
}
|
|
|
|
void Identity::setBcc( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_bcc), str );
|
|
}
|
|
|
|
void Identity::setCc( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_cc), str );
|
|
}
|
|
|
|
void Identity::setIsDefault( bool flag )
|
|
{
|
|
mIsDefault = flag;
|
|
}
|
|
|
|
void Identity::setPreferredCryptoMessageFormat( const QString &str )
|
|
{
|
|
setProperty( QLatin1String(s_prefcrypt), str );
|
|
}
|
|
|
|
void Identity::setXFace( const QString &str )
|
|
{
|
|
QString strNew = str;
|
|
strNew.remove( QLatin1Char(' ') );
|
|
strNew.remove( QLatin1Char('\n') );
|
|
strNew.remove( QLatin1Char('\r') );
|
|
setProperty( QLatin1String(s_xface), strNew );
|
|
}
|
|
|
|
void Identity::setXFaceEnabled( const bool on )
|
|
{
|
|
setProperty( QLatin1String(s_xfaceenabled), on );
|
|
}
|
|
|
|
void Identity::setSignature( const Signature &sig )
|
|
{
|
|
mSignature = sig;
|
|
}
|
|
|
|
bool Identity::matchesEmailAddress( const QString & addr ) const
|
|
{
|
|
const QString addrSpec = KPIMUtils::extractEmailAddress( addr ).toLower();
|
|
if ( addrSpec == primaryEmailAddress().toLower() ) {
|
|
return true;
|
|
}
|
|
|
|
foreach ( const QString &alias, emailAliases() ) {
|
|
if ( alias.toLower() == addrSpec ) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
QString Identity::verifyAkonadiId(const QString& str) const
|
|
{
|
|
if(str.isEmpty())
|
|
return str;
|
|
bool ok = false;
|
|
const qlonglong val = str.toLongLong(&ok);
|
|
Q_UNUSED(val);
|
|
if(ok) {
|
|
return str;
|
|
} else {
|
|
return QString();
|
|
}
|
|
}
|
|
|
|
void Identity::setAutocorrectionLanguage(const QString& language)
|
|
{
|
|
setProperty( QLatin1String(s_autocorrectionLanguage), language );
|
|
}
|
|
|
|
|
|
bool Identity::disabledFcc() const
|
|
{
|
|
const QVariant var = property(QLatin1String( s_disabledFcc ));
|
|
if(var.isNull()) {
|
|
return false;
|
|
} else {
|
|
return var.toBool();
|
|
}
|
|
}
|
|
|
|
void Identity::setDisabledFcc(bool disable)
|
|
{
|
|
setProperty( QLatin1String(s_disabledFcc), disable );
|
|
}
|
|
|
|
bool Identity::pgpAutoSign() const
|
|
{
|
|
const QVariant var = property(QLatin1String( s_pgpautosign ));
|
|
if(var.isNull()) {
|
|
return false;
|
|
} else {
|
|
return var.toBool();
|
|
}
|
|
}
|
|
|
|
void Identity::setPgpAutoSign(bool autoSign)
|
|
{
|
|
setProperty( QLatin1String(s_pgpautosign), autoSign );
|
|
}
|
|
|
|
QString Identity::defaultDomainName() const
|
|
{
|
|
return property( QLatin1String( s_defaultDomainName ) ).toString();
|
|
}
|
|
|
|
void Identity::setDefaultDomainName(const QString &domainName)
|
|
{
|
|
setProperty( QLatin1String(s_defaultDomainName), domainName );
|
|
}
|
|
|
|
|