summaryrefslogtreecommitdiffabout
path: root/libkdepim/phoneaccess.cpp
Unidiff
Diffstat (limited to 'libkdepim/phoneaccess.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/phoneaccess.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/libkdepim/phoneaccess.cpp b/libkdepim/phoneaccess.cpp
index 89db22b..0ea73f5 100644
--- a/libkdepim/phoneaccess.cpp
+++ b/libkdepim/phoneaccess.cpp
@@ -1,216 +1,219 @@
1/* 1/*
2 This file is part of libkdepim. 2 This file is part of libkdepim.
3 3
4 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org> 4 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
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 21
22 22
23#include <qstring.h> 23#include <qstring.h>
24#include <qapplication.h> 24#include <qapplication.h>
25#include <qptrlist.h> 25#include <QDesktopWidget>
26#include <q3ptrlist.h>
26#include <qregexp.h> 27#include <qregexp.h>
27#include <qfile.h> 28#include <qfile.h>
28#include <qlabel.h> 29#include <qlabel.h>
29#include <qtextstream.h> 30#include <q3textstream.h>
30#include <qtextcodec.h> 31#include <qtextcodec.h>
31#include <qdir.h> 32#include <qdir.h>
32#include <kmessagebox.h> 33#include <kmessagebox.h>
33#include <stdlib.h> 34#include <stdlib.h>
34#include "phoneaccess.h" 35#include "phoneaccess.h"
35 36
36void PhoneAccess::writeConfig( QString device, QString connection, QString model ) 37void PhoneAccess::writeConfig( QString device, QString connection, QString model )
37{ 38{
38#ifdef _WIN32_ 39#ifdef _WIN32_
39 QString fileName = qApp->applicationDirPath () +"\\gammurc"; 40 QString fileName = qApp->applicationDirPath () +"\\gammurc";
40#else 41#else
41 QString fileName = QDir::homeDirPath() +"/.gammurc"; 42 QString fileName = QDir::homeDirPath() +"/.gammurc";
42#endif 43#endif
43 //qDebug("save %d ", load ); 44 //qDebug("save %d ", load );
44 QString content = "[gammu]\n";; 45 QString content = "[gammu]\n";;
45 bool write = false; 46 bool write = false;
46 bool addPort = true, addConnection = true, addModel = true; 47 bool addPort = true, addConnection = true, addModel = true;
47 QFile file( fileName ); 48 QFile file( fileName );
48 if ( QFile::exists( fileName) ) { 49 if ( QFile::exists( fileName) ) {
49 if (!file.open( IO_ReadOnly ) ) { 50 if (!file.open( QIODevice::ReadOnly ) ) {
50 qDebug("Error: cannot open %s ", fileName.latin1() ); 51 qDebug("Error: cannot open %s ", fileName.latin1() );
51 return; 52 return;
52 } 53 }
53 QString line; 54 QString line;
54 while ( file.readLine( line, 1024 ) > 0 ) { 55 char tmp[1024];
56 while ( file.readLine( tmp, 1024 ) > 0 ) {
57 line = tmp;
55 //qDebug("*%s* ", line.latin1() ); 58 //qDebug("*%s* ", line.latin1() );
56 if ( line.left(7 ) == "[gammu]" ) { 59 if ( line.left(7 ) == "[gammu]" ) {
57 ; 60 ;
58 } else 61 } else
59 if ( line.left(4 ) == "port" ) { 62 if ( line.left(4 ) == "port" ) {
60 if ( line == "port = " + device+"\n" ) { 63 if ( line == "port = " + device+"\n" ) {
61 content += line ; 64 content += line ;
62 addPort = false; 65 addPort = false;
63 //qDebug("port found" ); 66 //qDebug("port found" );
64 } 67 }
65 68
66 } else if ( line.left(5 ) == "model" ) { 69 } else if ( line.left(5 ) == "model" ) {
67 if ( line == "model = " + model +"\n") { 70 if ( line == "model = " + model +"\n") {
68 content += line ; 71 content += line ;
69 addModel = false; 72 addModel = false;
70 //qDebug("model found" ); 73 //qDebug("model found" );
71 } 74 }
72 75
73 } else if ( line.left( 10 ) == "connection" ) { 76 } else if ( line.left( 10 ) == "connection" ) {
74 if ( line == "connection = " + connection +"\n") { 77 if ( line == "connection = " + connection +"\n") {
75 addConnection = false; 78 addConnection = false;
76 content += line ; 79 content += line ;
77 //qDebug("con found" ); 80 //qDebug("con found" );
78 } 81 }
79 82
80 } else { 83 } else {
81 content += line ; 84 content += line ;
82 } 85 }
83 } 86 }
84 file.close(); 87 file.close();
85 } else { 88 } else {
86 if ( ! connection.isEmpty() ) { 89 if ( ! connection.isEmpty() ) {
87 addConnection = true; 90 addConnection = true;
88 } 91 }
89 if ( ! device.isEmpty() ) { 92 if ( ! device.isEmpty() ) {
90 addPort = true; 93 addPort = true;
91 94
92 } 95 }
93 if ( ! model.isEmpty() ) { 96 if ( ! model.isEmpty() ) {
94 addModel = true; 97 addModel = true;
95 } 98 }
96 } 99 }
97 100
98 if ( addConnection ) { 101 if ( addConnection ) {
99 write = true; 102 write = true;
100 content += "connection = "; 103 content += "connection = ";
101 content += connection; 104 content += connection;
102 content += "\n"; 105 content += "\n";
103 } 106 }
104 if ( addPort ) { 107 if ( addPort ) {
105 write = true; 108 write = true;
106 content += "port = "; 109 content += "port = ";
107 content += device; 110 content += device;
108 content += "\n"; 111 content += "\n";
109 112
110 } 113 }
111 if ( addModel ) { 114 if ( addModel ) {
112 write = true; 115 write = true;
113 content += "model = "; 116 content += "model = ";
114 content += model; 117 content += model;
115 content += "\n"; 118 content += "\n";
116 } 119 }
117 if ( write ) { 120 if ( write ) {
118 if (!file.open( IO_WriteOnly ) ) { 121 if (!file.open( QIODevice::WriteOnly ) ) {
119 qDebug("Error: cannot write file %s ", fileName.latin1() ); 122 qDebug("Error: cannot write file %s ", fileName.latin1() );
120 return; 123 return;
121 } 124 }
122 qDebug("Writing file %s ", fileName.latin1() ); 125 qDebug("Writing file %s ", fileName.latin1() );
123 QTextStream ts( &file ); 126 Q3TextStream ts( &file );
124 ts << content ; 127 ts << content ;
125 file.close(); 128 file.close();
126 } 129 }
127 130
128} 131}
129 132
130 133
131bool PhoneAccess::writeToPhone( QString fileName) 134bool PhoneAccess::writeToPhone( QString fileName)
132{ 135{
133 136
134#ifdef DESKTOP_VERSION 137#ifdef DESKTOP_VERSION
135#ifdef _WIN32_ 138#ifdef _WIN32_
136 QString command ="kammu --restore " + fileName ; 139 QString command ="kammu --restore " + fileName ;
137#else 140#else
138 QString command ="./kammu --restore " + fileName ; 141 QString command ="./kammu --restore " + fileName ;
139#endif 142#endif
140#else 143#else
141 QString command ="kammu --restore " + fileName ; 144 QString command ="kammu --restore " + fileName ;
142#endif 145#endif
143 int ret = 1; 146 int ret = 1;
144 while ( ret != 0 ) { 147 while ( ret != 0 ) {
145 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 ); 148 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 );
146 int w = 235; 149 int w = 235;
147 int h = status->sizeHint().height()+20 ; 150 int h = status->sizeHint().height()+20 ;
148 int dw = QApplication::desktop()->width(); 151 int dw = QApplication::desktop()->width();
149 int dh = QApplication::desktop()->height(); 152 int dh = QApplication::desktop()->height();
150 if ( dw > 310 ) 153 if ( dw > 310 )
151 w = 310; 154 w = 310;
152 status->setCaption(i18n("Writing to phone...") ); 155 status->setCaption(i18n("Writing to phone...") );
153 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 156 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
154 status->show(); 157 status->show();
155 status->raise(); 158 status->raise();
156 status->update(); 159 status->update();
157 qApp->processEvents(); 160 qApp->processEvents();
158 status->update(); 161 status->update();
159 qApp->processEvents(); 162 qApp->processEvents();
160 ret = system ( command.latin1()); 163 ret = system ( command.latin1());
161 delete status; 164 delete status;
162 qApp->processEvents(); 165 qApp->processEvents();
163 if ( ret ) { 166 if ( ret ) {
164 qDebug("Error S::command returned %d.", ret); 167 qDebug("Error S::command returned %d.", ret);
165 int retval = KMessageBox::warningContinueCancel(0, 168 int retval = KMessageBox::warningContinueCancel(0,
166 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel")); 169 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel"));
167 if ( retval != KMessageBox::Continue ) 170 if ( retval != KMessageBox::Continue )
168 return false; 171 return false;
169 } 172 }
170 } 173 }
171 return true; 174 return true;
172} 175}
173bool PhoneAccess::readFromPhone( QString fileName) 176bool PhoneAccess::readFromPhone( QString fileName)
174{ 177{
175 178
176#ifdef DESKTOP_VERSION 179#ifdef DESKTOP_VERSION
177#ifdef _WIN32_ 180#ifdef _WIN32_
178 QString command ="kammu --backup " + fileName + " -yes" ; 181 QString command ="kammu --backup " + fileName + " -yes" ;
179#else 182#else
180 QString command ="./kammu --backup " + fileName + " -yes" ; 183 QString command ="./kammu --backup " + fileName + " -yes" ;
181#endif 184#endif
182#else 185#else
183 QString command ="kammu --backup " + fileName + " -yes" ; 186 QString command ="kammu --backup " + fileName + " -yes" ;
184#endif 187#endif
185 int ret = 1; 188 int ret = 1;
186 while ( ret != 0 ) { 189 while ( ret != 0 ) {
187 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 ); 190 QLabel* status = new QLabel( i18n(" This may take 1-3 minutes!"), 0 );
188 int w = 235; 191 int w = 235;
189 int h = status->sizeHint().height()+20 ; 192 int h = status->sizeHint().height()+20 ;
190 int dw = QApplication::desktop()->width(); 193 int dw = QApplication::desktop()->width();
191 int dh = QApplication::desktop()->height(); 194 int dh = QApplication::desktop()->height();
192 if ( dw > 310 ) 195 if ( dw > 310 )
193 w = 310; 196 w = 310;
194 status->setCaption(i18n("Reading from phone...") ); 197 status->setCaption(i18n("Reading from phone...") );
195 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 198 status->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
196 status->show(); 199 status->show();
197 status->raise(); 200 status->raise();
198 status->update(); 201 status->update();
199 qApp->processEvents(); 202 qApp->processEvents();
200 status->update(); 203 status->update();
201 qApp->processEvents(); 204 qApp->processEvents();
202 ret = system ( command.latin1() ); 205 ret = system ( command.latin1() );
203 delete status; 206 delete status;
204 qApp->processEvents(); 207 qApp->processEvents();
205 if ( ret ) { 208 if ( ret ) {
206 qDebug("Error reading from phone:Command returned %d", ret); 209 qDebug("Error reading from phone:Command returned %d", ret);
207 int retval = KMessageBox::warningContinueCancel(0, 210 int retval = KMessageBox::warningContinueCancel(0,
208 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel")); 211 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KDE/Pim phone access"),i18n("Retry"),i18n("Cancel"));
209 if ( retval != KMessageBox::Continue ) 212 if ( retval != KMessageBox::Continue )
210 return false; 213 return false;
211 214
212 } 215 }
213 } 216 }
214 qApp->processEvents(); 217 qApp->processEvents();
215 return true; 218 return true;
216} 219}