KIMAP Library
capabilitiesjob.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "capabilitiesjob.h"
00021
00022 #include <KDE/KLocale>
00023
00024 #include "job_p.h"
00025 #include "message_p.h"
00026 #include "session_p.h"
00027
00028 namespace KIMAP
00029 {
00030 class CapabilitiesJobPrivate : public JobPrivate
00031 {
00032 public:
00033 CapabilitiesJobPrivate( Session *session, const QString& name ) : JobPrivate(session, name) { }
00034 ~CapabilitiesJobPrivate() { }
00035
00036 QStringList capabilities;
00037 };
00038 }
00039
00040 using namespace KIMAP;
00041
00042 CapabilitiesJob::CapabilitiesJob( Session *session )
00043 : Job( *new CapabilitiesJobPrivate(session, i18n("Capabilities")) )
00044 {
00045 }
00046
00047 CapabilitiesJob::~CapabilitiesJob()
00048 {
00049 }
00050
00051 QStringList CapabilitiesJob::capabilities() const
00052 {
00053 Q_D(const CapabilitiesJob);
00054 return d->capabilities;
00055 }
00056
00057 void CapabilitiesJob::doStart()
00058 {
00059 Q_D(CapabilitiesJob);
00060 d->tags << d->sessionInternal()->sendCommand( "CAPABILITY" );
00061 }
00062
00063 void CapabilitiesJob::handleResponse( const Message &response )
00064 {
00065
00066 Q_D(CapabilitiesJob);
00067 if (handleErrorReplies(response) == NotHandled) {
00068 if ( response.content.size() >= 2
00069 && response.content[1].toString()=="CAPABILITY" ) {
00070 for (int i=2; i<response.content.size(); ++i) {
00071 d->capabilities << response.content[i].toString().toUpper();
00072 }
00073 emit capabilitiesReceived(d->capabilities);
00074 }
00075 }
00076 }
00077
00078 #include "capabilitiesjob.moc"