summaryrefslogtreecommitdiffabout
path: root/libkcal
Unidiff
Diffstat (limited to 'libkcal') (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
@@ -51,122 +51,125 @@ using namespace KCal;
51 51
52//ARSD silentalarm = 0 52//ARSD silentalarm = 0
53// 11 RTYP 225 no /0 dialy/ 1 weekly/ 3 month by date/ 2 month by day(pos)/ yearly 53// 11 RTYP 225 no /0 dialy/ 1 weekly/ 3 month by date/ 2 month by day(pos)/ yearly
54// 12 RFRQ 54// 12 RFRQ
55// 13 RPOS pos = 4. monday in month 55// 13 RPOS pos = 4. monday in month
56// 14 RDYS days: 1 mon/ 2 tue .. 64 sun 56// 14 RDYS days: 1 mon/ 2 tue .. 64 sun
57// 15 REND 0 = no end/ 1 = end 57// 15 REND 0 = no end/ 1 = end
58// 16 REDT rec end dt 58// 16 REDT rec end dt
59//ALSD 59//ALSD
60//ALED 60//ALED
61//MDAY 61//MDAY
62 62
63class PhoneParser : public QObject 63class PhoneParser : public QObject
64{ 64{
65public: 65public:
66 PhoneParser( Calendar *calendar, QString profileName ) : mCalendar( calendar ), mProfileName ( profileName ) { 66 PhoneParser( Calendar *calendar, QString profileName ) : mCalendar( calendar ), mProfileName ( profileName ) {
67 ; 67 ;
68 } 68 }
69 bool readTodo( Calendar *existingCalendar,GSM_ToDoEntry *ToDo, GSM_StateMachine* s) 69 bool readTodo( Calendar *existingCalendar,GSM_ToDoEntry *ToDo, GSM_StateMachine* s)
70 { 70 {
71 71
72 int id = ToDo->Location; 72 int id = ToDo->Location;
73 Todo *todo; 73 Todo *todo;
74 todo = existingCalendar->todo( mProfileName ,QString::number( id ) ); 74 todo = existingCalendar->todo( mProfileName ,QString::number( id ) );
75 if (todo ) 75 if (todo )
76 todo = (Todo *)todo->clone(); 76 todo = (Todo *)todo->clone();
77 else 77 else
78 todo = new Todo; 78 todo = new Todo;
79 todo->setID( mProfileName,QString::number( id ) ); 79 todo->setID( mProfileName,QString::number( id ) );
80 todo->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); 80 todo->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL );
81 int priority; 81 int priority;
82 switch (ToDo->Priority) { 82 switch (ToDo->Priority) {
83 case GSM_Priority_Low : priority = 1; break; 83 case GSM_Priority_Low : priority = 1; break;
84 case GSM_Priority_Medium : priority = 3; break; 84 case GSM_Priority_Medium : priority = 3; break;
85 case GSM_Priority_High : priority = 5; break; 85 case GSM_Priority_High : priority = 5; break;
86 default :priority = 3 ;break; 86 default :priority = 3 ;break;
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 );
111 } 113 }
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) {
137 QStringList cat = todo->categories(); 140 QStringList cat = todo->categories();
138 QString nCat = QString ( (const char*)Category.Name ); 141 QString nCat = QString ( (const char*)Category.Name );
139 if ( !nCat.isEmpty() ) 142 if ( !nCat.isEmpty() )
140 if ( !cat.contains( nCat )) { 143 if ( !cat.contains( nCat )) {
141 cat << nCat; 144 cat << nCat;
142 todo->setCategories( cat ); 145 todo->setCategories( cat );
143 } 146 }
144 } 147 }
145 break; 148 break;
146 case TODO_CONTACTID: 149 case TODO_CONTACTID:
147#if 0 150#if 0
148 // not supported 151 // not supported
149 entry.Location = ToDo->Entries[j].Number; 152 entry.Location = ToDo->Entries[j].Number;
150 entry.MemoryType = MEM_ME; 153 entry.MemoryType = MEM_ME;
151 error=Phone->GetMemory(s, &entry); 154 error=Phone->GetMemory(s, &entry);
152 if (error == ERR_NONE) { 155 if (error == ERR_NONE) {
153 name = GSM_PhonebookGetEntryName(&entry); 156 name = GSM_PhonebookGetEntryName(&entry);
154 if (name != NULL) { 157 if (name != NULL) {
155 printmsg("Contact ID : \"%s\" (%d)\n", DecodeUnicodeConsole(name), ToDo->Entries[j].Number); 158 printmsg("Contact ID : \"%s\" (%d)\n", DecodeUnicodeConsole(name), ToDo->Entries[j].Number);
156 } else { 159 } else {
157 printmsg("Contact ID : %d\n",ToDo->Entries[j].Number); 160 printmsg("Contact ID : %d\n",ToDo->Entries[j].Number);
158 } 161 }
159 } else { 162 } else {
160 printmsg("Contact : %d\n",ToDo->Entries[j].Number); 163 printmsg("Contact : %d\n",ToDo->Entries[j].Number);
161 } 164 }
162#endif 165#endif
163 break; 166 break;
164 case TODO_PHONE: 167 case TODO_PHONE:
165#if 0 168#if 0
166 // not supported 169 // not supported
167 printmsg("Phone : \"%s\"\n",DecodeUnicodeConsole(ToDo->Entries[j].Text)); 170 printmsg("Phone : \"%s\"\n",DecodeUnicodeConsole(ToDo->Entries[j].Text));
168#endif 171#endif
169 break; 172 break;
170 } 173 }
171 } 174 }
172 QString alarmString = ""; 175 QString alarmString = "";
@@ -189,136 +192,137 @@ public:
189 QStringList attList; 192 QStringList attList;
190 uint cSum; 193 uint cSum;
191 if ( todo->hasDueDate() ) 194 if ( todo->hasDueDate() )
192 attList << dtToString ( todo->dtDue() ); 195 attList << dtToString ( todo->dtDue() );
193 attList << QString::number( id ); 196 attList << QString::number( id );
194 attList << todo->summary(); 197 attList << todo->summary();
195 attList << completedString; 198 attList << completedString;
196 attList << QString::number( todo->priority() ); 199 attList << QString::number( todo->priority() );
197 attList << alarmString; 200 attList << alarmString;
198 attList << todo->categoriesStr(); 201 attList << todo->categoriesStr();
199 attList << todo->secrecyStr(); 202 attList << todo->secrecyStr();
200 cSum = PhoneFormat::getCsum(attList ); 203 cSum = PhoneFormat::getCsum(attList );
201 todo->setCsum( mProfileName, QString::number( cSum )); 204 todo->setCsum( mProfileName, QString::number( cSum ));
202 mCalendar->addTodo( todo); 205 mCalendar->addTodo( todo);
203 206
204 return true; 207 return true;
205 } 208 }
206 bool readEvent( Calendar *existingCalendar, GSM_CalendarEntry*Note) 209 bool readEvent( Calendar *existingCalendar, GSM_CalendarEntry*Note)
207 { 210 {
208 211
209 int id = Note->Location; 212 int id = Note->Location;
210 Event *event; 213 Event *event;
211 event = existingCalendar->event( mProfileName ,QString::number( id ) ); 214 event = existingCalendar->event( mProfileName ,QString::number( id ) );
212 if ( event ) 215 if ( event )
213 event = (Event*)event->clone(); 216 event = (Event*)event->clone();
214 else 217 else
215 event = new Event; 218 event = new Event;
216 event->setID( mProfileName,QString::number( id ) ); 219 event->setID( mProfileName,QString::number( id ) );
217 event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); 220 event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL );
218 221
219 222
220 int i = 0; 223 int i = 0;
221 bool repeating = false; 224 bool repeating = false;
222 int repeat_dayofweek = -1; 225 int repeat_dayofweek = -1;
223 int repeat_day = -1; 226 int repeat_day = -1;
224 int repeat_weekofmonth = -1; 227 int repeat_weekofmonth = -1;
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:
250 dtp = &Note->Entries[i].Date ; 253 dtp = &Note->Entries[i].Date ;
251 if ( dtp->Hour > 24 ) { 254 if ( dtp->Hour > 24 ) {
252 event->setFloats( true ); 255 event->setFloats( true );
253 event->setDtEnd( QDateTime (datefromGSM ( dtp ), QTime(0,0,0 ))); 256 event->setDtEnd( QDateTime (datefromGSM ( dtp ), QTime(0,0,0 )));
254 } else { 257 } else {
255 event->setDtEnd (fromGSM ( dtp )); 258 event->setDtEnd (fromGSM ( dtp ));
256 } 259 }
257 break; 260 break;
258 case CAL_ALARM_DATETIME: 261 case CAL_ALARM_DATETIME:
259 dtp = &Note->Entries[i].Date ; 262 dtp = &Note->Entries[i].Date ;
260 alarm = true; 263 alarm = true;
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:
289#if 0 293#if 0
290 entry.Location = Note->Entries[i].Number; 294 entry.Location = Note->Entries[i].Number;
291 entry.MemoryType = MEM_ME; 295 entry.MemoryType = MEM_ME;
292 error=Phone->GetMemory(&s, &entry); 296 error=Phone->GetMemory(&s, &entry);
293 if (error == ERR_NONE) { 297 if (error == ERR_NONE) {
294 name = GSM_PhonebookGetEntryName(&entry); 298 name = GSM_PhonebookGetEntryName(&entry);
295 if (name != NULL) { 299 if (name != NULL) {
296 //printmsg("Contact ID : \"%s\" (%d)\n", DecodeUnicodeConsole(name), Note->Entries[i].Number); 300 //printmsg("Contact ID : \"%s\" (%d)\n", DecodeUnicodeConsole(name), Note->Entries[i].Number);
297 } else { 301 } else {
298 //printmsg("Contact ID : %d\n",Note->Entries[i].Number); 302 //printmsg("Contact ID : %d\n",Note->Entries[i].Number);
299 } 303 }
300 } else { 304 } else {
301 //printmsg("Contact ID : %d\n",Note->Entries[i].Number); 305 //printmsg("Contact ID : %d\n",Note->Entries[i].Number);
302 } 306 }
303#endif 307#endif
304 break; 308 break;
305 case CAL_REPEAT_DAYOFWEEK: 309 case CAL_REPEAT_DAYOFWEEK:
306 repeat_dayofweek = Note->Entries[i].Number; 310 repeat_dayofweek = Note->Entries[i].Number;
307 repeating = true; 311 repeating = true;
308 break; 312 break;
309 case CAL_REPEAT_DAY: 313 case CAL_REPEAT_DAY:
310 repeat_day = Note->Entries[i].Number; 314 repeat_day = Note->Entries[i].Number;
311 repeating = true; 315 repeating = true;
312 break; 316 break;
313 case CAL_REPEAT_WEEKOFMONTH: 317 case CAL_REPEAT_WEEKOFMONTH:
314 repeat_weekofmonth = Note->Entries[i].Number; 318 repeat_weekofmonth = Note->Entries[i].Number;
315 repeating = true; 319 repeating = true;
316 break; 320 break;
317 case CAL_REPEAT_MONTH: 321 case CAL_REPEAT_MONTH:
318 repeat_month = Note->Entries[i].Number; 322 repeat_month = Note->Entries[i].Number;
319 repeating = true; 323 repeating = true;
320 break; 324 break;
321 case CAL_REPEAT_FREQUENCY: 325 case CAL_REPEAT_FREQUENCY:
322 repeat_frequency = Note->Entries[i].Number; 326 repeat_frequency = Note->Entries[i].Number;
323 repeating = true; 327 repeating = true;
324 break; 328 break;
@@ -567,158 +571,185 @@ protected:
567private: 571private:
568 Calendar *mCalendar; 572 Calendar *mCalendar;
569 QString mProfileName ; 573 QString mProfileName ;
570}; 574};
571 575
572 576
573PhoneFormat::PhoneFormat() 577PhoneFormat::PhoneFormat()
574{ 578{
575 ; 579 ;
576} 580}
577 581
578PhoneFormat::~PhoneFormat() 582PhoneFormat::~PhoneFormat()
579{ 583{
580} 584}
581ulong PhoneFormat::getCsum( const QStringList & attList) 585ulong PhoneFormat::getCsum( const QStringList & attList)
582{ 586{
583 int max = attList.count() -1; 587 int max = attList.count() -1;
584 ulong cSum = 0; 588 ulong cSum = 0;
585 int j,k,i; 589 int j,k,i;
586 int add; 590 int add;
587 for ( i = 1; i < max ; ++i ) { 591 for ( i = 1; i < max ; ++i ) {
588 QString s = attList[i]; 592 QString s = attList[i];
589 if ( ! s.isEmpty() ){ 593 if ( ! s.isEmpty() ){
590 j = s.length(); 594 j = s.length();
591 for ( k = 0; k < j; ++k ) { 595 for ( k = 0; k < j; ++k ) {
592 int mul = k +1; 596 int mul = k +1;
593 add = s[k].unicode (); 597 add = s[k].unicode ();
594 if ( k < 16 ) 598 if ( k < 16 )
595 mul = mul * mul; 599 mul = mul * mul;
596 add = add * mul *i*i*i; 600 add = add * mul *i*i*i;
597 cSum += add; 601 cSum += add;
598 } 602 }
599 } 603 }
600 } 604 }
601 return cSum; 605 return cSum;
602 606
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);
627 } else { 632 } else {
628#if !defined(WIN32) && defined(LOCALE_PATH) 633#if !defined(WIN32) && defined(LOCALE_PATH)
629 locale = setlocale(LC_MESSAGES, NULL); 634 locale = setlocale(LC_MESSAGES, NULL);
630 if (locale != NULL) { 635 if (locale != NULL) {
631 snprintf(locale_file, 200, "%s/gammu_%c%c.txt", 636 snprintf(locale_file, 200, "%s/gammu_%c%c.txt",
632 LOCALE_PATH, 637 LOCALE_PATH,
633 tolower(locale[0]), 638 tolower(locale[0]),
634 tolower(locale[1])); 639 tolower(locale[1]));
635 s.msg = INI_ReadFile(locale_file, true); 640 s.msg = INI_ReadFile(locale_file, true);
636 } 641 }
637#endif 642#endif
638 } 643 }
639 } 644 }
640 645
641 /* Wanted user specific configuration? */ 646 /* Wanted user specific configuration? */
642 647
643 if (!GSM_ReadConfig(cfg, &s.Config[i], i) && i != 0) break; 648 if (!GSM_ReadConfig(cfg, &s.Config[i], i) && i != 0) break;
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);
689 720
690 return true; 721 return true;
691} 722}
692 723
693bool PhoneFormat::save( Calendar *calendar) 724bool PhoneFormat::save( Calendar *calendar)
694{ 725{
695#if 0 726#if 0
696 QLabel status ( i18n("Processing/adding events ..."), 0 ); 727 QLabel status ( i18n("Processing/adding events ..."), 0 );
697 int w = status.sizeHint().width()+20 ; 728 int w = status.sizeHint().width()+20 ;
698 if ( w < 200 ) w = 200; 729 if ( w < 200 ) w = 200;
699 int h = status.sizeHint().height()+20 ; 730 int h = status.sizeHint().height()+20 ;
700 int dw = QApplication::desktop()->width(); 731 int dw = QApplication::desktop()->width();
701 int dh = QApplication::desktop()->height(); 732 int dh = QApplication::desktop()->height();
702 status.setCaption(i18n("Writing DTM Data") ); 733 status.setCaption(i18n("Writing DTM Data") );
703 status.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 734 status.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
704 status.show(); 735 status.show();
705 status.raise(); 736 status.raise();
706 qApp->processEvents(); 737 qApp->processEvents();
707 bool debug = DEBUGMODE; 738 bool debug = DEBUGMODE;
708 QString codec = "utf8"; 739 QString codec = "utf8";
709 QString answer; 740 QString answer;
710 QString ePrefix = "CARDID,CATEGORY,DSRP,PLCE,MEM1,TIM1,TIM2,ADAY,ARON,ARMN,ARSD,RTYP,RFRQ,RPOS,RDYS,REND,REDT,ALSD,ALED,MDAY\n"; 741 QString ePrefix = "CARDID,CATEGORY,DSRP,PLCE,MEM1,TIM1,TIM2,ADAY,ARON,ARMN,ARSD,RTYP,RFRQ,RPOS,RDYS,REND,REDT,ALSD,ALED,MDAY\n";
711 QString tPrefix = "CARDID,CATEGORY,ETDY,LTDY,FNDY,MARK,PRTY,TITL,MEM1\n"; 742 QString tPrefix = "CARDID,CATEGORY,ETDY,LTDY,FNDY,MARK,PRTY,TITL,MEM1\n";
712 QString command; 743 QString command;
713 QPtrList<Event> er = calendar->rawEvents(); 744 QPtrList<Event> er = calendar->rawEvents();
714 Event* ev = er.first(); 745 Event* ev = er.first();
715 QString fileName = "/tmp/kopitempout"; 746 QString fileName = "/tmp/kopitempout";
716 int i = 0; 747 int i = 0;
717 QString changeString = ePrefix; 748 QString changeString = ePrefix;
718 QString deleteString = ePrefix; 749 QString deleteString = ePrefix;
719 bool deleteEnt = false; 750 bool deleteEnt = false;
720 bool changeEnt = false; 751 bool changeEnt = false;
721 QString message = i18n("Processing event # "); 752 QString message = i18n("Processing event # ");
722 int procCount = 0; 753 int procCount = 0;
723 while ( ev ) { 754 while ( ev ) {
724 //qDebug("i %d ", ++i); 755 //qDebug("i %d ", ++i);