00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "vcaldrag.h"
00023
00024 #include <kcalcore/vcalformat.h>
00025 using namespace KCalCore;
00026
00027 #include <QtCore/QMimeData>
00028 #include <QtCore/QString>
00029
00030 using namespace KCalUtils;
00031 using namespace VCalDrag;
00032
00033 QString VCalDrag::mimeType()
00034 {
00035 return "text/x-vCalendar";
00036 }
00037
00038 bool VCalDrag::populateMimeData( QMimeData *e,
00039 const MemoryCalendar::Ptr &cal )
00040 {
00041 VCalFormat format;
00042 QString calstr( format.toString( cal ) );
00043 if ( calstr.length() > 0 ) {
00044 e->setData( mimeType(), calstr.toUtf8() );
00045 }
00046 return canDecode( e );
00047 }
00048
00049 bool VCalDrag::canDecode( const QMimeData *me )
00050 {
00051 return me->hasFormat( mimeType() );
00052 }
00053
00054 bool VCalDrag::fromMimeData( const QMimeData *de,
00055 const MemoryCalendar::Ptr &cal )
00056 {
00057 if ( !canDecode( de ) ) {
00058 return false;
00059 }
00060
00061 bool success = false;
00062 QByteArray payload = de->data( mimeType() );
00063 if ( payload.size() ) {
00064 QString txt = QString::fromUtf8( payload.data() );
00065
00066 VCalFormat format;
00067 success = format.fromString( cal, txt );
00068 }
00069
00070 return success;
00071 }
00072