You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

67 lines
1.7 KiB

/* -*- c++ -*-
identitydrag.cpp
KMail, the KDE mail client.
Copyright (c) 2002 the KMail authors.
See file AUTHORS for details
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License,
version 2.0, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, US
*/
#include "identitydrag.h"
#include <qdatastream.h>
namespace KMail {
static const char kmailIdentityMimeType[] = "application/x-kmail-identity-drag";
IdentityDrag::IdentityDrag( const KMIdentity & ident,
QWidget * dragSource, const char * name )
: QDragObject( dragSource, name ), mIdent( ident )
{
}
const char * IdentityDrag::format( int i ) const {
if ( i == 0 )
return kmailIdentityMimeType;
else
return 0;
}
QByteArray IdentityDrag::encodedData( const char * mimetype ) const {
QByteArray a;
if ( !qstrcmp( mimetype, kmailIdentityMimeType ) ) {
QDataStream s( a, IO_WriteOnly );
s << mIdent;
}
return a;
}
bool IdentityDrag::canDecode( const QMimeSource * e ) {
// ### feel free to add vCard and other stuff here and in decode...
return e->provides( kmailIdentityMimeType );
}
bool IdentityDrag::decode( const QMimeSource * e, KMIdentity & i ) {
if ( e->provides( kmailIdentityMimeType ) ) {
QDataStream s( e->encodedData( kmailIdentityMimeType ), IO_ReadOnly );
s >> i;
return true;
}
return false;
}
};
#include "identitydrag.moc"