summaryrefslogtreecommitdiffabout
path: root/libkcal/phoneformat.cpp
Unidiff
Diffstat (limited to 'libkcal/phoneformat.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libkcal/phoneformat.cpp117
1 files changed, 3 insertions, 114 deletions
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp
index b2a62b1..c39413e 100644
--- a/libkcal/phoneformat.cpp
+++ b/libkcal/phoneformat.cpp
@@ -27,24 +27,25 @@
27#include <qmessagebox.h> 27#include <qmessagebox.h>
28#include <qclipboard.h> 28#include <qclipboard.h>
29#include <qfile.h> 29#include <qfile.h>
30#include <qtextstream.h> 30#include <qtextstream.h>
31#include <qtextcodec.h> 31#include <qtextcodec.h>
32#include <qdir.h> 32#include <qdir.h>
33#include <qlabel.h> 33#include <qlabel.h>
34 34
35#include <kdebug.h> 35#include <kdebug.h>
36#include <klocale.h> 36#include <klocale.h>
37#include <kglobal.h> 37#include <kglobal.h>
38#include <kmessagebox.h> 38#include <kmessagebox.h>
39#include <phoneaccess.h>
39 40
40#include "calendar.h" 41#include "calendar.h"
41#include "alarm.h" 42#include "alarm.h"
42#include "recurrence.h" 43#include "recurrence.h"
43#include "calendarlocal.h" 44#include "calendarlocal.h"
44 45
45#include "phoneformat.h" 46#include "phoneformat.h"
46#include "syncdefines.h" 47#include "syncdefines.h"
47 48
48using namespace KCal; 49using namespace KCal;
49class PhoneParser : public QObject 50class PhoneParser : public QObject
50{ 51{
@@ -75,129 +76,31 @@ public:
75 } 76 }
76 return datestr + timestr; 77 return datestr + timestr;
77 } 78 }
78 79
79 80
80}; 81};
81 82
82 83
83 84
84PhoneFormat::PhoneFormat(QString profileName, QString device,QString connection, QString model ) 85PhoneFormat::PhoneFormat(QString profileName, QString device,QString connection, QString model )
85{ 86{
86 mProfileName = profileName; 87 mProfileName = profileName;
87 writeConfig( device, connection, model ); 88 PhoneAccess::writeConfig( device, connection, model );
88} 89}
89 90
90PhoneFormat::~PhoneFormat() 91PhoneFormat::~PhoneFormat()
91{ 92{
92} 93}
93void PhoneFormat::writeConfig( QString device, QString connection, QString model )
94{
95#ifdef _WIN32_
96 QString fileName = qApp->applicationDirPath () +"\\gammurc";
97#else
98 QString fileName = QDir::homeDirPath() +"/.gammurc";
99#endif
100 //qDebug("save %d ", load );
101 QString content;
102 bool write = false;
103 bool addPort = true, addConnection = true, addModel = true;
104 QFile file( fileName );
105 if ( QFile::exists( fileName) ) {
106 if (!file.open( IO_ReadOnly ) ) {
107 qDebug("Error: cannot open %s ", fileName.latin1() );
108 return;
109 }
110 QString line;
111 while ( file.readLine( line, 1024 ) > 0 ) {
112 //qDebug("*%s* ", line.latin1() );
113 if ( line.left(7 ) == "[gammu]" ) {
114 ;
115 } else
116 if ( line.left(4 ) == "port" ) {
117 if ( line == "port = " + device+"\n" ) {
118 content += line ;
119 addPort = false;
120 //qDebug("port found" );
121 }
122
123 } else if ( line.left(5 ) == "model" ) {
124 if ( line == "model = " + model +"\n") {
125 content += line ;
126 addModel = false;
127 //qDebug("model found" );
128 }
129
130 } else if ( line.left( 10 ) == "connection" ) {
131 if ( line == "connection = " + connection +"\n") {
132 addConnection = false;
133 content += line ;
134 //qDebug("con found" );
135 }
136
137 } else {
138 content += line ;
139 }
140 }
141 file.close();
142 } else {
143 if ( ! connection.isEmpty() ) {
144 addConnection = true;
145 }
146 if ( ! device.isEmpty() ) {
147 addPort = true;
148
149 }
150 if ( ! model.isEmpty() ) {
151 addModel = true;
152 }
153 }
154
155 if ( addConnection ) {
156 if ( ! write )
157 content += "[gammu]\n";
158 write = true;
159 content += "connection = ";
160 content += connection;
161 content += "\n";
162 }
163 if ( addPort ) {
164 if ( ! write )
165 content += "[gammu]\n";
166 write = true;
167 content += "port = ";
168 content += device;
169 content += "\n";
170 94
171 }
172 if ( addModel ) {
173 if ( ! write )
174 content += "[gammu]\n";
175 write = true;
176 content += "model = ";
177 content += model;
178 content += "\n";
179 }
180 if ( write ) {
181 if (!file.open( IO_WriteOnly ) ) {
182 qDebug("Error: cannot write file %s ", fileName.latin1() );
183 return;
184 }
185 qDebug("Writing file %s ", fileName.latin1() );
186 QTextStream ts( &file );
187 ts << content ;
188 file.close();
189 }
190
191}
192#if 0 95#if 0
193int PhoneFormat::initDevice(GSM_StateMachine *s) 96int PhoneFormat::initDevice(GSM_StateMachine *s)
194{ 97{
195 GSM_ReadConfig(NULL, &s->Config[0], 0); 98 GSM_ReadConfig(NULL, &s->Config[0], 0);
196 s->ConfigNum = 1; 99 s->ConfigNum = 1;
197 GSM_Config *cfg = &s->Config[0]; 100 GSM_Config *cfg = &s->Config[0];
198 if ( ! mConnection.isEmpty() ) { 101 if ( ! mConnection.isEmpty() ) {
199 cfg->Connection = strdup(mConnection.latin1()); 102 cfg->Connection = strdup(mConnection.latin1());
200 cfg->DefaultConnection = false; 103 cfg->DefaultConnection = false;
201 qDebug("Connection set %s ", cfg->Connection ); 104 qDebug("Connection set %s ", cfg->Connection );
202 105
203 } 106 }
@@ -581,39 +484,25 @@ void PhoneFormat::afterSave( Incidence* inc)
581bool PhoneFormat::writeToPhone( Calendar * calendar) 484bool PhoneFormat::writeToPhone( Calendar * calendar)
582{ 485{
583#ifdef _WIN32_ 486#ifdef _WIN32_
584 QString fileName = locateLocal("tmp", "tempfile.vcs"); 487 QString fileName = locateLocal("tmp", "tempfile.vcs");
585#else 488#else
586 QString fileName = "/tmp/kdepimtemp.vcs"; 489 QString fileName = "/tmp/kdepimtemp.vcs";
587#endif 490#endif
588 491
589 VCalFormat vfsave; 492 VCalFormat vfsave;
590 vfsave.setLocalTime ( true ); 493 vfsave.setLocalTime ( true );
591 if ( ! vfsave.save( calendar, fileName ) ) 494 if ( ! vfsave.save( calendar, fileName ) )
592 return false; 495 return false;
593 // 4 call kammu 496 return PhoneAccess::writeToPhone( fileName );
594#ifdef DESKTOP_VERSION
595 QString command ="./kammu --restore " + fileName ;
596#else
597 QString command ="kammu --restore " + fileName ;
598#endif
599 int ret;
600 while ( (ret = system ( command.latin1())) != 0 ) {
601 qDebug("Error S::command returned %d. asking users", ret);
602 int retval = KMessageBox::warningContinueCancel(0,
603 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KO/Pi phone access"),i18n("Retry"),i18n("Cancel"));
604 if ( retval != KMessageBox::Continue )
605 return false;
606 }
607 return true;
608} 497}
609bool PhoneFormat::save( Calendar *calendar) 498bool PhoneFormat::save( Calendar *calendar)
610{ 499{
611 QLabel status ( i18n(" Opening device ..."), 0 ); 500 QLabel status ( i18n(" Opening device ..."), 0 );
612 int w = status.sizeHint().width()+20 ; 501 int w = status.sizeHint().width()+20 ;
613 if ( w < 200 ) w = 230; 502 if ( w < 200 ) w = 230;
614 int h = status.sizeHint().height()+20 ; 503 int h = status.sizeHint().height()+20 ;
615 int dw = QApplication::desktop()->width(); 504 int dw = QApplication::desktop()->width();
616 int dh = QApplication::desktop()->height(); 505 int dh = QApplication::desktop()->height();
617 status.setCaption(i18n("Writing to phone...") ); 506 status.setCaption(i18n("Writing to phone...") );
618 status.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 507 status.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
619 status.show(); 508 status.show();