summaryrefslogtreecommitdiffabout
path: root/libkcal
authorzautrix <zautrix>2004-08-09 18:02:44 (UTC)
committer zautrix <zautrix>2004-08-09 18:02:44 (UTC)
commit4f05a9fcbb9e54184aef93883886aaf865104463 (patch) (unidiff)
treef5e94f7694b74dca3b11e1e74a94058a4526dafe /libkcal
parente1909ade2188e53feee65089d5f2882563876c58 (diff)
downloadkdepimpi-4f05a9fcbb9e54184aef93883886aaf865104463.zip
kdepimpi-4f05a9fcbb9e54184aef93883886aaf865104463.tar.gz
kdepimpi-4f05a9fcbb9e54184aef93883886aaf865104463.tar.bz2
more syncing
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/phoneformat.cpp60
-rw-r--r--libkcal/phoneformat.h2
-rw-r--r--libkcal/vcalformat.cpp19
-rw-r--r--libkcal/vcalformat.h2
4 files changed, 32 insertions, 51 deletions
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp
index 11c68c5..e6d4879 100644
--- a/libkcal/phoneformat.cpp
+++ b/libkcal/phoneformat.cpp
@@ -861,77 +861,35 @@ bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal)
861 start = false; 861 start = false;
862 qDebug("ReadTodo %d ", ++ccc); 862 qDebug("ReadTodo %d ", ++ccc);
863 handler.readTodo( existingCal, &ToDo, &s); 863 handler.readTodo( existingCal, &ToDo, &s);
864 864
865 } 865 }
866 866
867 error=GSM_TerminateConnection(&s); 867 error=GSM_TerminateConnection(&s);
868 868
869 return true; 869 return true;
870} 870}
871void PhoneFormat::event2GSM( Event* ev, GSM_CalendarEntry*Note ) 871void PhoneFormat::event2GSM( Event* ev, GSM_CalendarEntry*Note )
872{ 872{
873 873 QString eText = vfconverter.eventToString( ev );
874 int pos = 0;
875 GSM_ToDoEntry dummy;
876 GSM_DecodeVCALENDAR_VTODO( (unsigned char*)eText.latin1(), &pos, Note , &dummy, Nokia_VCalendar, Nokia_VToDo );
874} 877}
875void PhoneFormat::todo2GSM( Todo* todo, GSM_ToDoEntry *gsm ) 878void PhoneFormat::todo2GSM( Todo* todo, GSM_ToDoEntry *gsmTodo )
876{ 879{
877#if 0 880 QString tText = vfconverter.todoToString( todo );
878 QStringList list; 881 int pos = 0;
879 list.append( QString::number( todo->zaurusId() ) ); 882 GSM_CalendarEntry dummy;
880 list.append( todo->categories().join(",") ); 883 GSM_DecodeVCALENDAR_VTODO( (unsigned char*)tText.latin1(), &pos, &dummy, gsmTodo, Nokia_VCalendar, Nokia_VToDo );
881
882 if ( todo->hasStartDate() ) {
883 list.append( dtToString( todo->dtStart()) );
884 } else
885 list.append( QString() );
886
887 if ( todo->hasDueDate() ) {
888 QTime tim;
889 if ( todo->doesFloat()) {
890 list.append( dtToString( QDateTime(todo->dtDue().date(),QTime( 0,0,0 )), false)) ;
891 } else {
892 list.append( dtToString(todo->dtDue() ) );
893 }
894 } else
895 list.append( QString() );
896
897 if ( todo->isCompleted() ) {
898 list.append( dtToString( todo->completed()) );
899 list.append( "0" ); // yes 0 == completed
900 } else {
901 list.append( dtToString( todo->completed()) );
902 list.append( "1" );
903 }
904 list.append( QString::number( todo->priority() ));
905 if( ! todo->summary().isEmpty() )
906 list.append( todo->summary() );
907 else
908 list.append( "" );
909 if (! todo->description().isEmpty() )
910 list.append( todo->description() );
911 else
912 list.append( "" );
913 for(QStringList::Iterator it=list.begin();
914 it!=list.end(); ++it){
915 QString& s = (*it);
916 s.replace(QRegExp("\""), "\"\"");
917 if(s.contains(QRegExp("[,\"\r\n]")) || s.stripWhiteSpace() != s){
918 s.prepend('\"');
919 s.append('\"');
920 } else if(s.isEmpty() && !s.isNull()){
921 s = "\"\"";
922 }
923 }
924 return list.join(",");
925#endif
926} 884}
927void PhoneFormat::afterSave( Incidence* inc) 885void PhoneFormat::afterSave( Incidence* inc)
928{ 886{
929 uint csum; 887 uint csum;
930 if ( inc->type() == "Event") 888 if ( inc->type() == "Event")
931 csum = PhoneFormat::getCsumEvent( (Event*) inc ); 889 csum = PhoneFormat::getCsumEvent( (Event*) inc );
932 else 890 else
933 csum = PhoneFormat::getCsumTodo( (Todo*) inc ); 891 csum = PhoneFormat::getCsumTodo( (Todo*) inc );
934 inc->setCsum( mProfileName, QString::number( csum )); 892 inc->setCsum( mProfileName, QString::number( csum ));
935 inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); 893 inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
936 894
937} 895}
diff --git a/libkcal/phoneformat.h b/libkcal/phoneformat.h
index 7b7dd04..33b2091 100644
--- a/libkcal/phoneformat.h
+++ b/libkcal/phoneformat.h
@@ -16,24 +16,25 @@
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21#ifndef PHONEFORMAT_H 21#ifndef PHONEFORMAT_H
22#define PHONEFORMAT_H 22#define PHONEFORMAT_H
23 23
24#include <qstring.h> 24#include <qstring.h>
25 25
26#include "scheduler.h" 26#include "scheduler.h"
27 27
28#include "vcalformat.h"
28#include "calformat.h" 29#include "calformat.h"
29extern "C" { 30extern "C" {
30#include "../gammu/emb/common/gammu.h" 31#include "../gammu/emb/common/gammu.h"
31} 32}
32namespace KCal { 33namespace KCal {
33 34
34/** 35/**
35 This class implements the calendar format used by Phone. 36 This class implements the calendar format used by Phone.
36*/ 37*/
37 class Event; 38 class Event;
38 class Todo; 39 class Todo;
39class PhoneFormat : public QObject { 40class PhoneFormat : public QObject {
@@ -41,24 +42,25 @@ class PhoneFormat : public QObject {
41 /** Create new iCalendar format. */ 42 /** Create new iCalendar format. */
42 PhoneFormat(QString profileName, QString device,QString connection, QString model); 43 PhoneFormat(QString profileName, QString device,QString connection, QString model);
43 virtual ~PhoneFormat(); 44 virtual ~PhoneFormat();
44 45
45 bool load( Calendar * ,Calendar * ); 46 bool load( Calendar * ,Calendar * );
46 bool save( Calendar * ); 47 bool save( Calendar * );
47 bool fromString( Calendar *, const QString & ); 48 bool fromString( Calendar *, const QString & );
48 QString toString( Calendar * ); 49 QString toString( Calendar * );
49 static ulong getCsum( const QStringList & ); 50 static ulong getCsum( const QStringList & );
50 static ulong getCsumTodo( Todo* to ); 51 static ulong getCsumTodo( Todo* to );
51 static ulong getCsumEvent( Event* ev ); 52 static ulong getCsumEvent( Event* ev );
52 private: 53 private:
54 VCalFormat vfconverter;
53 void event2GSM( Event* ev, GSM_CalendarEntry*Note ); 55 void event2GSM( Event* ev, GSM_CalendarEntry*Note );
54 void todo2GSM( Todo* ev, GSM_ToDoEntry *ToDo ); 56 void todo2GSM( Todo* ev, GSM_ToDoEntry *ToDo );
55 int initDevice(GSM_StateMachine *s); 57 int initDevice(GSM_StateMachine *s);
56 QString getEventString( Event* ); 58 QString getEventString( Event* );
57 QString getTodoString( Todo* ); 59 QString getTodoString( Todo* );
58 QString dtToGSM( const QDateTime& dt, bool useTZ = true ); 60 QString dtToGSM( const QDateTime& dt, bool useTZ = true );
59 QString mProfileName, mDevice, mConnection, mModel; 61 QString mProfileName, mDevice, mConnection, mModel;
60 void afterSave( Incidence* ); 62 void afterSave( Incidence* );
61}; 63};
62 64
63} 65}
64 66
diff --git a/libkcal/vcalformat.cpp b/libkcal/vcalformat.cpp
index 72a781a..1167e58 100644
--- a/libkcal/vcalformat.cpp
+++ b/libkcal/vcalformat.cpp
@@ -156,24 +156,43 @@ bool VCalFormat::fromString( Calendar *calendar, const QString &text )
156 calendar->addEvent( event ); 156 calendar->addEvent( event );
157 } else { 157 } else {
158 kdDebug(5800) << "VCalFormat::fromString(): Unknown object type." << endl; 158 kdDebug(5800) << "VCalFormat::fromString(): Unknown object type." << endl;
159 deleteVObject( vcal ); 159 deleteVObject( vcal );
160 return false; 160 return false;
161 } 161 }
162 162
163 deleteVObject( vcal ); 163 deleteVObject( vcal );
164 164
165 return true; 165 return true;
166} 166}
167 167
168QString VCalFormat::eventToString( Event * event)
169{
170 if ( !event ) return QString::null;
171 VObject *vevent = eventToVEvent( event );
172 char *buf = writeMemVObject( 0, 0, vevent );
173 QString result( buf );
174 cleanVObject( vevent );
175 return result;
176}
177QString VCalFormat::todoToString( Todo * todo )
178{
179 if ( !todo ) return QString::null;
180 VObject *vevent = eventToVTodo( todo );
181 char *buf = writeMemVObject( 0, 0, vevent );
182 QString result( buf );
183 cleanVObject( vevent );
184 return result;
185}
186
168QString VCalFormat::toString( Calendar *calendar ) 187QString VCalFormat::toString( Calendar *calendar )
169{ 188{
170 // TODO: Factor out VCalFormat::asString() 189 // TODO: Factor out VCalFormat::asString()
171 190
172 VObject *vcal = newVObject(VCCalProp); 191 VObject *vcal = newVObject(VCCalProp);
173 192
174 addPropValue( vcal, VCProdIdProp, CalFormat::productId() ); 193 addPropValue( vcal, VCProdIdProp, CalFormat::productId() );
175 QString tmpStr = mCalendar->getTimeZoneStr(); 194 QString tmpStr = mCalendar->getTimeZoneStr();
176 addPropValue( vcal, VCTimeZoneProp, tmpStr.local8Bit() ); 195 addPropValue( vcal, VCTimeZoneProp, tmpStr.local8Bit() );
177 addPropValue( vcal, VCVersionProp, _VCAL_VERSION ); 196 addPropValue( vcal, VCVersionProp, _VCAL_VERSION );
178 197
179 // TODO: Use all data. 198 // TODO: Use all data.
diff --git a/libkcal/vcalformat.h b/libkcal/vcalformat.h
index d4cecbc..8490125 100644
--- a/libkcal/vcalformat.h
+++ b/libkcal/vcalformat.h
@@ -53,24 +53,26 @@ class VCalFormat : public CalFormat {
53 * @param fileName the name of the file 53 * @param fileName the name of the file
54 */ 54 */
55 bool save(Calendar *,const QString &fileName); 55 bool save(Calendar *,const QString &fileName);
56 56
57 /** 57 /**
58 Parse string and populate calendar with that information. 58 Parse string and populate calendar with that information.
59 */ 59 */
60 bool fromString( Calendar *, const QString & ); 60 bool fromString( Calendar *, const QString & );
61 /** 61 /**
62 Return calendar information as string. 62 Return calendar information as string.
63 */ 63 */
64 QString toString( Calendar * ); 64 QString toString( Calendar * );
65 QString eventToString( Event * );
66 QString todoToString( Todo * );
65 67
66 protected: 68 protected:
67 /** translates a VObject of the TODO type into a Event */ 69 /** translates a VObject of the TODO type into a Event */
68 Todo *VTodoToEvent(VObject *vtodo); 70 Todo *VTodoToEvent(VObject *vtodo);
69 /** translates a VObject into a Event and returns a pointer to it. */ 71 /** translates a VObject into a Event and returns a pointer to it. */
70 Event *VEventToEvent(VObject *vevent); 72 Event *VEventToEvent(VObject *vevent);
71 /** translate a Event into a VTodo-type VObject and return pointer */ 73 /** translate a Event into a VTodo-type VObject and return pointer */
72 VObject *eventToVTodo(const Todo *anEvent); 74 VObject *eventToVTodo(const Todo *anEvent);
73 /** translate a Event into a VObject and returns a pointer to it. */ 75 /** translate a Event into a VObject and returns a pointer to it. */
74 VObject* eventToVEvent(const Event *anEvent); 76 VObject* eventToVEvent(const Event *anEvent);
75 77
76 /** takes a QDate and returns a string in the format YYYYMMDDTHHMMSS */ 78 /** takes a QDate and returns a string in the format YYYYMMDDTHHMMSS */