summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/phoneformat.cpp47
1 files changed, 39 insertions, 8 deletions
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp
index 238b0ef..1a9ccbc 100644
--- a/libkcal/phoneformat.cpp
+++ b/libkcal/phoneformat.cpp
@@ -87,24 +87,26 @@ public:
87 } 87 }
88 todo->setPriority( priority ); 88 todo->setPriority( priority );
89 GSM_Phone_Functions*Phone; 89 GSM_Phone_Functions*Phone;
90 Phone=s->Phone.Functions; 90 Phone=s->Phone.Functions;
91 int j; 91 int j;
92 GSM_DateTime* dtp; 92 GSM_DateTime* dtp;
93 bool alarm = false; 93 bool alarm = false;
94 QDateTime alarmDt; 94 QDateTime alarmDt;
95 GSM_Category Category; 95 GSM_Category Category;
96 int error; 96 int error;
97 QString completedString = "no"; 97 QString completedString = "no";
98 for (j=0;j<ToDo->EntriesNum;j++) { 98 for (j=0;j<ToDo->EntriesNum;j++) {
99
100 //qDebug(" for todo %d",ToDo->Location );
99 switch (ToDo->Entries[j].EntryType) { 101 switch (ToDo->Entries[j].EntryType) {
100 case TODO_END_DATETIME: 102 case TODO_END_DATETIME:
101 dtp = &ToDo->Entries[j].Date ; 103 dtp = &ToDo->Entries[j].Date ;
102 todo->setDtDue (fromGSM ( dtp )); 104 todo->setDtDue (fromGSM ( dtp ));
103 break; 105 break;
104 case TODO_COMPLETED: 106 case TODO_COMPLETED:
105 if ( ToDo->Entries[j].Number == 1 ) { 107 if ( ToDo->Entries[j].Number == 1 ) {
106 todo->setCompleted( true ); 108 todo->setCompleted( true );
107 completedString = "yes"; 109 completedString = "yes";
108 } 110 }
109 else { 111 else {
110 todo->setCompleted( false ); 112 todo->setCompleted( false );
@@ -112,25 +114,26 @@ public:
112 break; 114 break;
113 case TODO_ALARM_DATETIME: 115 case TODO_ALARM_DATETIME:
114 dtp = &ToDo->Entries[j].Date ; 116 dtp = &ToDo->Entries[j].Date ;
115 alarm = true; 117 alarm = true;
116 alarmDt = fromGSM ( dtp ); 118 alarmDt = fromGSM ( dtp );
117 break; 119 break;
118 case TODO_SILENT_ALARM_DATETIME: 120 case TODO_SILENT_ALARM_DATETIME:
119 dtp = &ToDo->Entries[j].Date ; 121 dtp = &ToDo->Entries[j].Date ;
120 alarm = true; 122 alarm = true;
121 alarmDt = fromGSM ( dtp ); 123 alarmDt = fromGSM ( dtp );
122 break; 124 break;
123 case TODO_TEXT: 125 case TODO_TEXT:
124 todo->setSummary( QString ( (const char*) ToDo->Entries[j].Text )); 126 //qDebug(" text *%s* ", (const char*) DecodeUnicodeConsole(ToDo->Entries[j].Text ));
127 todo->setSummary( QString::fromUtf8 ( (const char*)DecodeUnicodeConsole(ToDo->Entries[j].Text )));
125 break; 128 break;
126 case TODO_PRIVATE: 129 case TODO_PRIVATE:
127 if ( ToDo->Entries[j].Number == 1 ) 130 if ( ToDo->Entries[j].Number == 1 )
128 todo->setSecrecy( Incidence::SecrecyPrivate ); 131 todo->setSecrecy( Incidence::SecrecyPrivate );
129 else 132 else
130 todo->setSecrecy( Incidence::SecrecyPublic ); 133 todo->setSecrecy( Incidence::SecrecyPublic );
131 break; 134 break;
132 case TODO_CATEGORY: 135 case TODO_CATEGORY:
133 Category.Location = ToDo->Entries[j].Number; 136 Category.Location = ToDo->Entries[j].Number;
134 Category.Type = Category_ToDo; 137 Category.Type = Category_ToDo;
135 error=Phone->GetCategory(s, &Category); 138 error=Phone->GetCategory(s, &Category);
136 if (error == ERR_NONE) { 139 if (error == ERR_NONE) {
@@ -225,25 +228,25 @@ public:
225 int repeat_month = -1; 228 int repeat_month = -1;
226 int repeat_frequency = -1; 229 int repeat_frequency = -1;
227 int rec_type = -1; 230 int rec_type = -1;
228 GSM_DateTime repeat_startdate = {0,0,0,0,0,0,0}; 231 GSM_DateTime repeat_startdate = {0,0,0,0,0,0,0};
229 GSM_DateTime repeat_stopdate = {0,0,0,0,0,0,0}; 232 GSM_DateTime repeat_stopdate = {0,0,0,0,0,0,0};
230 GSM_DateTime* dtp; 233 GSM_DateTime* dtp;
231 bool alarm = false; 234 bool alarm = false;
232 QDateTime alarmDt; 235 QDateTime alarmDt;
233 repeat_startdate.Day= 0; 236 repeat_startdate.Day= 0;
234 repeat_stopdate.Day = 0; 237 repeat_stopdate.Day = 0;
235 for (i=0;i<Note->EntriesNum;i++) { 238 for (i=0;i<Note->EntriesNum;i++) {
236 239
237 qDebug(" for "); 240 //qDebug(" for ev");
238 switch (Note->Entries[i].EntryType) { 241 switch (Note->Entries[i].EntryType) {
239 case CAL_START_DATETIME: 242 case CAL_START_DATETIME:
240 dtp = &Note->Entries[i].Date ; 243 dtp = &Note->Entries[i].Date ;
241 if ( dtp->Hour > 24 ) { 244 if ( dtp->Hour > 24 ) {
242 event->setFloats( true ); 245 event->setFloats( true );
243 event->setDtStart( QDateTime (datefromGSM ( dtp ), QTime(0,0,0 ))); 246 event->setDtStart( QDateTime (datefromGSM ( dtp ), QTime(0,0,0 )));
244 } else { 247 } else {
245 event->setDtStart (fromGSM ( dtp )); 248 event->setDtStart (fromGSM ( dtp ));
246 249
247 } 250 }
248 break; 251 break;
249 case CAL_END_DATETIME: 252 case CAL_END_DATETIME:
@@ -261,28 +264,29 @@ public:
261 alarmDt = fromGSM ( dtp ); 264 alarmDt = fromGSM ( dtp );
262 break; 265 break;
263 case CAL_SILENT_ALARM_DATETIME: 266 case CAL_SILENT_ALARM_DATETIME:
264 dtp = &Note->Entries[i].Date ; 267 dtp = &Note->Entries[i].Date ;
265 alarm = true; 268 alarm = true;
266 alarmDt = fromGSM ( dtp ); 269 alarmDt = fromGSM ( dtp );
267 break; 270 break;
268 case CAL_RECURRANCE: 271 case CAL_RECURRANCE:
269 rec_type = Note->Entries[i].Number; 272 rec_type = Note->Entries[i].Number;
270 //printmsg("Repeat : %d day%s\n",Note->Entries[i].Number/24,((Note->Entries[i].Number/24)>1) ? "s":"" ); 273 //printmsg("Repeat : %d day%s\n",Note->Entries[i].Number/24,((Note->Entries[i].Number/24)>1) ? "s":"" );
271 break; 274 break;
272 case CAL_TEXT: 275 case CAL_TEXT:
273 event->setSummary( QString ( (const char*) Note->Entries[i].Text )); 276 //qDebug(" ev text %s", DecodeUnicodeConsole(Note->Entries[i].Text) );
277 event->setSummary( QString::fromUtf8 ( (const char*)DecodeUnicodeConsole( Note->Entries[i].Text )));
274 break; 278 break;
275 case CAL_LOCATION: 279 case CAL_LOCATION:
276 event->setLocation(QString ((const char*) Note->Entries[i].Text )); 280 event->setLocation(QString::fromUtf8 ((const char*) DecodeUnicodeConsole(Note->Entries[i].Text) ));
277 break; 281 break;
278 case CAL_PHONE: 282 case CAL_PHONE:
279 //printmsg("Phone : \"%s\"\n",DecodeUnicodeConsole(Note->Entries[i].Text)); 283 //printmsg("Phone : \"%s\"\n",DecodeUnicodeConsole(Note->Entries[i].Text));
280 break; 284 break;
281 case CAL_PRIVATE: 285 case CAL_PRIVATE:
282 if ( Note->Entries[i].Number == 1 ) 286 if ( Note->Entries[i].Number == 1 )
283 event->setSecrecy( Incidence::SecrecyPrivate ); 287 event->setSecrecy( Incidence::SecrecyPrivate );
284 else 288 else
285 event->setSecrecy( Incidence::SecrecyPublic ); 289 event->setSecrecy( Incidence::SecrecyPublic );
286 290
287 break; 291 break;
288 case CAL_CONTACTID: 292 case CAL_CONTACTID:
@@ -603,24 +607,25 @@ ulong PhoneFormat::getCsum( const QStringList & attList)
603} 607}
604//extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum); 608//extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum);
605#include <stdlib.h> 609#include <stdlib.h>
606#define DEBUGMODE false 610#define DEBUGMODE false
607bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal ,QString profileName, QString device,QString connection, QString model ) 611bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal ,QString profileName, QString device,QString connection, QString model )
608{ 612{
609 mProfileName = profileName; 613 mProfileName = profileName;
610 GSM_StateMachines; 614 GSM_StateMachines;
611 qDebug(" load "); 615 qDebug(" load ");
612 s.opened = false; 616 s.opened = false;
613 s.msg = NULL; 617 s.msg = NULL;
614 s.ConfigNum = 0; 618 s.ConfigNum = 0;
619#if 0
615 static char*cp; 620 static char*cp;
616 static INI_Section *cfg = NULL; 621 static INI_Section *cfg = NULL;
617 cfg=GSM_FindGammuRC(); 622 cfg=GSM_FindGammuRC();
618 int i; 623 int i;
619 for (i = 0; i <= MAX_CONFIG_NUM; i++) { 624 for (i = 0; i <= MAX_CONFIG_NUM; i++) {
620 if (cfg!=NULL) { 625 if (cfg!=NULL) {
621 cp = (char *)INI_GetValue(cfg, (unsigned char*) "gammu", (unsigned char*)"gammucoding", false); 626 cp = (char *)INI_GetValue(cfg, (unsigned char*) "gammu", (unsigned char*)"gammucoding", false);
622 if (cp) di.coding = cp; 627 if (cp) di.coding = cp;
623 628
624 s.Config[i].Localize = (char *)INI_GetValue(cfg, (unsigned char*) "gammu", (unsigned char*) "gammuloc", false); 629 s.Config[i].Localize = (char *)INI_GetValue(cfg, (unsigned char*) "gammu", (unsigned char*) "gammuloc", false);
625 if (s.Config[i].Localize) { 630 if (s.Config[i].Localize) {
626 s.msg=INI_ReadFile(s.Config[i].Localize, true); 631 s.msg=INI_ReadFile(s.Config[i].Localize, true);
@@ -644,45 +649,71 @@ bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal ,QString profi
644 649
645 s.ConfigNum++; 650 s.ConfigNum++;
646 651
647 /* We want to use only one file descriptor for global and state machine debug output */ 652 /* We want to use only one file descriptor for global and state machine debug output */
648 s.Config[i].UseGlobalDebugFile = true; 653 s.Config[i].UseGlobalDebugFile = true;
649 654
650 655
651 656
652 /* We wanted to read just user specified configuration. */ 657 /* We wanted to read just user specified configuration. */
653 {break;} 658 {break;}
654 } 659 }
655 660
661#endif
662 setlocale(LC_ALL, "");
663 GSM_ReadConfig(NULL, &s.Config[0], 0);
664 s.ConfigNum = 1;
665 GSM_Config *cfg = &s.Config[0];
666 di.coding = "utf8";
667 if ( ! connection.isEmpty() ) {
668 cfg->Connection = strdup(connection.latin1());
669 cfg->DefaultConnection = false;
670 qDebug("Connection set %s ", cfg->Connection );
671
672 }
673 if ( ! device.isEmpty() ) {
674 cfg->Device = strdup(device.latin1());
675 cfg->DefaultDevice = false;
676 qDebug("Device set %s ", cfg->Device);
677
678 }
679 if ( ! model.isEmpty() ) {
680 strcpy(cfg->Model,model.latin1() );
681 cfg->DefaultModel = false;
682 qDebug("Model set %s ",cfg->Model );
683
684
685 }
656 int error=GSM_InitConnection(&s,3); 686 int error=GSM_InitConnection(&s,3);
657 qDebug(" init %d %d", error, ERR_NONE); 687 qDebug(" init %d %d", error, ERR_NONE);
658 if ( error != ERR_NONE ) 688 if ( error != ERR_NONE )
659 return false; 689 return false;
660 // fromString2Cal( calendar, existngCal, &s, "Event" ); 690 // fromString2Cal( calendar, existngCal, &s, "Event" );
661 GSM_Phone_Functions*Phone; 691 GSM_Phone_Functions*Phone;
662 GSM_CalendarEntrynote; 692 GSM_CalendarEntrynote;
663 bool refresh= true; 693 bool start = true;
664 Phone=s.Phone.Functions; 694 Phone=s.Phone.Functions;
665 bool gshutdown = false; 695 bool gshutdown = false;
666 PhoneParser handler( calendar, profileName ); 696 PhoneParser handler( calendar, profileName );
667 int ccc = 0; 697 int ccc = 0;
668 while (!gshutdown && ccc++ < 10 ) { 698 while (!gshutdown && ccc++ < 3) {
669 699
670 qDebug("readEvent %d ", ccc); 700 qDebug("readEvent %d ", ccc);
671 error=Phone->GetNextCalendar(&s,&note,refresh); 701 error=Phone->GetNextCalendar(&s,&note,start);
672 if (error == ERR_EMPTY) break; 702 if (error == ERR_EMPTY) break;
703 start = false;
673 handler.readEvent( existingCal, &note ); 704 handler.readEvent( existingCal, &note );
674 } 705 }
675 706
676 bool start = true; 707 start = true;
677 GSM_ToDoEntry ToDo; 708 GSM_ToDoEntry ToDo;
678 ccc = 0; 709 ccc = 0;
679 while (!gshutdown) { 710 while (!gshutdown) {
680 error = Phone->GetNextToDo(&s, &ToDo, start); 711 error = Phone->GetNextToDo(&s, &ToDo, start);
681 if (error == ERR_EMPTY) break; 712 if (error == ERR_EMPTY) break;
682 start = false; 713 start = false;
683 qDebug("readTodo %d ", ++ccc); 714 qDebug("readTodo %d ", ++ccc);
684 handler.readTodo( existingCal, &ToDo, &s); 715 handler.readTodo( existingCal, &ToDo, &s);
685 716
686 } 717 }
687 718
688 error=GSM_TerminateConnection(&s); 719 error=GSM_TerminateConnection(&s);