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