/* -*- 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 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"