00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "transporttype.h"
00021 #include "transporttype_p.h"
00022 #include "transport.h"
00023
00024 #include <akonadi/agentmanager.h>
00025
00026 using namespace MailTransport;
00027
00028 TransportType::TransportType()
00029 : d( new Private )
00030 {
00031 }
00032
00033 TransportType::TransportType( const TransportType &other )
00034 : d( other.d )
00035 {
00036 }
00037
00038 TransportType::~TransportType()
00039 {
00040 }
00041
00042 TransportType &TransportType::operator=( const TransportType &other )
00043 {
00044 if( this != &other ) {
00045 d = other.d;
00046 }
00047 return *this;
00048 }
00049
00050 bool TransportType::operator==( const TransportType &other ) const
00051 {
00052 if( d->mType == Transport::EnumType::Akonadi &&
00053 other.d->mType == Transport::EnumType::Akonadi ) {
00054 return ( d->mAgentType == other.d->mAgentType );
00055 }
00056 return ( d->mType == other.d->mType );
00057 }
00058
00059 bool TransportType::isValid() const
00060 {
00061 using namespace Akonadi;
00062
00063 if( d->mType == Transport::EnumType::Akonadi ) {
00064 return d->mAgentType.isValid() &&
00065 AgentManager::self()->types().contains( d->mAgentType );
00066 } else {
00067 return d->mType >= 0;
00068 }
00069 }
00070
00071 TransportBase::EnumType::type TransportType::type() const
00072 {
00073 return static_cast<TransportBase::EnumType::type>( d->mType );
00074 }
00075
00076 QString TransportType::name() const
00077 {
00078 return d->mName;
00079 }
00080
00081 QString TransportType::description() const
00082 {
00083 return d->mDescription;
00084 }
00085
00086 Akonadi::AgentType TransportType::agentType() const
00087 {
00088 Q_ASSERT( d->mType == Transport::EnumType::Akonadi );
00089 return d->mAgentType;
00090 }