summaryrefslogtreecommitdiffabout
path: root/libkdepim
authorzautrix <zautrix>2005-12-02 09:10:14 (UTC)
committer zautrix <zautrix>2005-12-02 09:10:14 (UTC)
commit64be8d64fc26d1025a24150d065197ba5d608f3d (patch) (unidiff)
tree4f7b0c82641ac591af04f6fdd541b662d4727850 /libkdepim
parent2bd8aff44e90b6d58e2037771db8b38846addb3e (diff)
downloadkdepimpi-64be8d64fc26d1025a24150d065197ba5d608f3d.zip
kdepimpi-64be8d64fc26d1025a24150d065197ba5d608f3d.tar.gz
kdepimpi-64be8d64fc26d1025a24150d065197ba5d608f3d.tar.bz2
more sync
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index f80c2a6..e615cbe 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1083,733 +1083,733 @@ void KSyncManager::showProgressBar(int percentage, QString caption, int total)
1083 bar->show(); 1083 bar->show();
1084 } 1084 }
1085 bar->raise(); 1085 bar->raise();
1086 bar->setProgress( percentage ); 1086 bar->setProgress( percentage );
1087 qApp->processEvents(); 1087 qApp->processEvents();
1088} 1088}
1089 1089
1090void KSyncManager::hideProgressBar() 1090void KSyncManager::hideProgressBar()
1091{ 1091{
1092 bar->hide(); 1092 bar->hide();
1093 qApp->processEvents(); 1093 qApp->processEvents();
1094} 1094}
1095 1095
1096bool KSyncManager::isProgressBarCanceled() 1096bool KSyncManager::isProgressBarCanceled()
1097{ 1097{
1098 return !bar->isVisible(); 1098 return !bar->isVisible();
1099} 1099}
1100 1100
1101QString KSyncManager::syncFileName() 1101QString KSyncManager::syncFileName()
1102{ 1102{
1103 1103
1104 QString fn = "tempfile"; 1104 QString fn = "tempfile";
1105 switch(mTargetApp) 1105 switch(mTargetApp)
1106 { 1106 {
1107 case (KAPI): 1107 case (KAPI):
1108 fn = "tempsyncab.vcf"; 1108 fn = "tempsyncab.vcf";
1109 break; 1109 break;
1110 case (KOPI): 1110 case (KOPI):
1111 fn = "tempsynccal.ics"; 1111 fn = "tempsynccal.ics";
1112 break; 1112 break;
1113 case (PWMPI): 1113 case (PWMPI):
1114 fn = "tempsyncpw.pwm"; 1114 fn = "tempsyncpw.pwm";
1115 break; 1115 break;
1116 default: 1116 default:
1117 break; 1117 break;
1118 } 1118 }
1119#ifdef DESKTOP_VERSION 1119#ifdef DESKTOP_VERSION
1120 return locateLocal( "tmp", fn ); 1120 return locateLocal( "tmp", fn );
1121#else 1121#else
1122 return (QString( "/tmp/" )+ fn ); 1122 return (QString( "/tmp/" )+ fn );
1123#endif 1123#endif
1124} 1124}
1125 1125
1126void KSyncManager::syncPi() 1126void KSyncManager::syncPi()
1127{ 1127{
1128 mIsKapiFile = true; 1128 mIsKapiFile = true;
1129 mPisyncFinished = false; 1129 mPisyncFinished = false;
1130 qApp->processEvents(); 1130 qApp->processEvents();
1131 if ( mAskForPreferences ) 1131 if ( mAskForPreferences )
1132 if ( !edit_pisync_options()) { 1132 if ( !edit_pisync_options()) {
1133 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1133 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1134 mPisyncFinished = true; 1134 mPisyncFinished = true;
1135 return; 1135 return;
1136 } 1136 }
1137 bool ok; 1137 bool ok;
1138 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 1138 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
1139 if ( ! ok ) { 1139 if ( ! ok ) {
1140 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 1140 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
1141 mPisyncFinished = true; 1141 mPisyncFinished = true;
1142 return; 1142 return;
1143 } 1143 }
1144 mCurrentResourceLocal = ""; 1144 mCurrentResourceLocal = "";
1145 mCurrentResourceRemote = ""; 1145 mCurrentResourceRemote = "";
1146 if ( mSpecificResources.count() ) { 1146 if ( mSpecificResources.count() ) {
1147 uint lastSyncRes = mSpecificResources.count()/2; 1147 uint lastSyncRes = mSpecificResources.count()/2;
1148 int ccc = mSpecificResources.count()-1; 1148 int ccc = mSpecificResources.count()-1;
1149 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) { 1149 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) {
1150 --ccc; 1150 --ccc;
1151 --lastSyncRes; 1151 --lastSyncRes;
1152 //qDebug ( "KSM: sync pi %d",ccc ); 1152 //qDebug ( "KSM: sync pi %d",ccc );
1153 } 1153 }
1154 uint startLocal = 0; 1154 uint startLocal = 0;
1155 uint startRemote = mSpecificResources.count()/2; 1155 uint startRemote = mSpecificResources.count()/2;
1156 emit multiResourceSyncStart( true ); 1156 emit multiResourceSyncStart( true );
1157 while ( startLocal < mSpecificResources.count()/2 ) { 1157 while ( startLocal < mSpecificResources.count()/2 ) {
1158 if ( startLocal+1 >= lastSyncRes ) 1158 if ( startLocal+1 >= lastSyncRes )
1159 emit multiResourceSyncStart( false ); 1159 emit multiResourceSyncStart( false );
1160 mPisyncFinished = false; 1160 mPisyncFinished = false;
1161 mCurrentResourceLocal = mSpecificResources[ startLocal ]; 1161 mCurrentResourceLocal = mSpecificResources[ startLocal ];
1162 mCurrentResourceRemote = mSpecificResources[ startRemote ]; 1162 mCurrentResourceRemote = mSpecificResources[ startRemote ];
1163 //qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1163 //qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1164 if ( !mCurrentResourceRemote.isEmpty() ) { 1164 if ( !mCurrentResourceRemote.isEmpty() ) {
1165 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1165 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1166 1166
1167 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1167 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1168 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1168 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1169 commandSocket->readFile( syncFileName() ); 1169 commandSocket->readFile( syncFileName() );
1170 mParent->topLevelWidget()->setCaption( i18n("Syncing %1 <-> %2").arg( mCurrentResourceLocal ).arg( mCurrentResourceRemote ) ); 1170 mParent->topLevelWidget()->setCaption( i18n("Syncing %1 <-> %2").arg( mCurrentResourceLocal ).arg( mCurrentResourceRemote ) );
1171 while ( !mPisyncFinished ) { 1171 while ( !mPisyncFinished ) {
1172 //qDebug("waiting "); 1172 //qDebug("waiting ");
1173 qApp->processEvents(); 1173 qApp->processEvents();
1174 } 1174 }
1175 if ( startLocal+1 < mSpecificResources.count()/2 ) { 1175 if ( startLocal+1 < mSpecificResources.count()/2 ) {
1176 mParent->topLevelWidget()->setCaption( i18n("Waiting a second before syncing next resource...") ); 1176 mParent->topLevelWidget()->setCaption( i18n("Waiting a second before syncing next resource...") );
1177 QTime timer; 1177 QTime timer;
1178 timer.start(); 1178 timer.start();
1179 while ( timer.elapsed () < 1000 ) { 1179 while ( timer.elapsed () < 1000 ) {
1180 qApp->processEvents(); 1180 qApp->processEvents();
1181 } 1181 }
1182 } 1182 }
1183 } 1183 }
1184 ++startRemote; 1184 ++startRemote;
1185 ++startLocal; 1185 ++startLocal;
1186 mAskForPreferences = false; 1186 mAskForPreferences = false;
1187 } 1187 }
1188 mPisyncFinished = true; 1188 mPisyncFinished = true;
1189 } else { 1189 } else {
1190 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1190 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1191 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1191 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1192 commandSocket->readFile( syncFileName() ); 1192 commandSocket->readFile( syncFileName() );
1193 } 1193 }
1194} 1194}
1195 1195
1196void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1196void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1197{ 1197{
1198 //enum { success, errorW, errorR, quiet }; 1198 //enum { success, errorW, errorR, quiet };
1199 1199
1200 1200
1201 1201
1202 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || 1202 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ||
1203 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { 1203 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) {
1204 if ( state == KCommandSocket::errorPW ) 1204 if ( state == KCommandSocket::errorPW )
1205 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); 1205 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") );
1206 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) 1206 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO )
1207 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 1207 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
1208 else if ( state == KCommandSocket::errorCA ) 1208 else if ( state == KCommandSocket::errorCA )
1209 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); 1209 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") );
1210 else if ( state == KCommandSocket::errorFI ) 1210 else if ( state == KCommandSocket::errorFI )
1211 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); 1211 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") );
1212 else if ( state == KCommandSocket::errorED ) 1212 else if ( state == KCommandSocket::errorED )
1213 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") ); 1213 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") );
1214 else if ( state == KCommandSocket::errorUN ) 1214 else if ( state == KCommandSocket::errorUN )
1215 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") ); 1215 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") );
1216 delete s; 1216 delete s;
1217 if ( state == KCommandSocket::errorR ) { 1217 if ( state == KCommandSocket::errorR ) {
1218 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget()); 1218 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget());
1219 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1219 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1220 commandSocket->sendStop(); 1220 commandSocket->sendStop();
1221 } 1221 }
1222 mPisyncFinished = true; 1222 mPisyncFinished = true;
1223 return; 1223 return;
1224 1224
1225 } else if ( state == KCommandSocket::errorW ) { 1225 } else if ( state == KCommandSocket::errorW ) {
1226 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); 1226 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") );
1227 mPisyncFinished = true; 1227 mPisyncFinished = true;
1228 1228
1229 } else if ( state == KCommandSocket::successR ) { 1229 } else if ( state == KCommandSocket::successR ) {
1230 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 1230 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
1231 1231
1232 } else if ( state == KCommandSocket::successW ) { 1232 } else if ( state == KCommandSocket::successW ) {
1233 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") ); 1233 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") );
1234 mPisyncFinished = true; 1234 mPisyncFinished = true;
1235 } else if ( state == KCommandSocket::quiet ){ 1235 } else if ( state == KCommandSocket::quiet ){
1236 qDebug("KSS: quiet "); 1236 qDebug("KSS: quiet ");
1237 mPisyncFinished = true; 1237 mPisyncFinished = true;
1238 } else { 1238 } else {
1239 qDebug("KSS: Error: unknown state: %d ", state); 1239 qDebug("KSS: Error: unknown state: %d ", state);
1240 mPisyncFinished = true; 1240 mPisyncFinished = true;
1241 } 1241 }
1242 1242
1243 delete s; 1243 delete s;
1244} 1244}
1245 1245
1246void KSyncManager::readFileFromSocket() 1246void KSyncManager::readFileFromSocket()
1247{ 1247{
1248 QString fileName = syncFileName(); 1248 QString fileName = syncFileName();
1249 bool syncOK = true; 1249 bool syncOK = true;
1250 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); 1250 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") );
1251 if ( ! syncWithFile( fileName , true ) ) { 1251 if ( ! syncWithFile( fileName , true ) ) {
1252 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); 1252 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") );
1253 syncOK = false; 1253 syncOK = false;
1254 } 1254 }
1255 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); 1255 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() );
1256 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1256 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1257 if ( mWriteBackFile && syncOK ) { 1257 if ( mWriteBackFile && syncOK ) {
1258 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") ); 1258 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") );
1259 commandSocket->writeFile( fileName ); 1259 commandSocket->writeFile( fileName );
1260 } 1260 }
1261 else { 1261 else {
1262 commandSocket->sendStop(); 1262 commandSocket->sendStop();
1263 if ( syncOK ) 1263 if ( syncOK )
1264 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1264 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
1265 mPisyncFinished = true; 1265 mPisyncFinished = true;
1266 } 1266 }
1267} 1267}
1268 1268
1269KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1269KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1270{ 1270{
1271 mPendingConnect = 0; 1271 mPendingConnect = 0;
1272 mPassWord = pw; 1272 mPassWord = pw;
1273 mSocket = 0; 1273 mSocket = 0;
1274 mSyncActionDialog = 0; 1274 mSyncActionDialog = 0;
1275 blockRC = false; 1275 blockRC = false;
1276 mErrorMessage = 0; 1276 mErrorMessage = 0;
1277} 1277}
1278void KServerSocket::waitForSocketFinish() 1278void KServerSocket::waitForSocketFinish()
1279{ 1279{
1280 if ( mSocket ) { 1280 if ( mSocket ) {
1281 //qDebug("KSS:: waiting for finish operation"); 1281 //qDebug("KSS:: waiting for finish operation");
1282 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish())); 1282 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1283 return; 1283 return;
1284 } 1284 }
1285 mSocket = new QSocket( this ); 1285 mSocket = new QSocket( this );
1286 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1286 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1287 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1287 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1288 mSocket->setSocket( mPendingConnect ); 1288 mSocket->setSocket( mPendingConnect );
1289 mPendingConnect = 0; 1289 mPendingConnect = 0;
1290} 1290}
1291void KServerSocket::newConnection ( int socket ) 1291void KServerSocket::newConnection ( int socket )
1292{ 1292{
1293 // qDebug("KServerSocket:New connection %d ", socket); 1293 // qDebug("KServerSocket:New connection %d ", socket);
1294 if ( mPendingConnect ) { 1294 if ( mPendingConnect ) {
1295 qDebug("KSS::Error : new Connection"); 1295 qDebug("KSS::Error : new Connection");
1296 return; 1296 return;
1297 } 1297 }
1298 if ( mSocket ) { 1298 if ( mSocket ) {
1299 mPendingConnect = socket; 1299 mPendingConnect = socket;
1300 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish())); 1300 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1301 return; 1301 return;
1302 qDebug("KSS::newConnection Socket deleted! "); 1302 qDebug("KSS::newConnection Socket deleted! ");
1303 delete mSocket; 1303 delete mSocket;
1304 mSocket = 0; 1304 mSocket = 0;
1305 } 1305 }
1306 mPendingConnect = 0; 1306 mPendingConnect = 0;
1307 mSocket = new QSocket( this ); 1307 mSocket = new QSocket( this );
1308 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1308 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1309 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1309 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1310 mSocket->setSocket( socket ); 1310 mSocket->setSocket( socket );
1311} 1311}
1312 1312
1313void KServerSocket::discardClient() 1313void KServerSocket::discardClient()
1314{ 1314{
1315 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1315 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1316} 1316}
1317void KServerSocket::deleteSocket() 1317void KServerSocket::deleteSocket()
1318{ 1318{
1319 //qDebug("KSS::deleteSocket"); 1319 //qDebug("KSS::deleteSocket");
1320 if ( mSocket ) { 1320 if ( mSocket ) {
1321 delete mSocket; 1321 delete mSocket;
1322 mSocket = 0; 1322 mSocket = 0;
1323 } 1323 }
1324 if ( mErrorMessage ) 1324 if ( mErrorMessage )
1325 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage())); 1325 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage()));
1326} 1326}
1327void KServerSocket::readClient() 1327void KServerSocket::readClient()
1328{ 1328{
1329 if ( blockRC ) 1329 if ( blockRC )
1330 return; 1330 return;
1331 if ( mSocket == 0 ) { 1331 if ( mSocket == 0 ) {
1332 qDebug("ERROR::KSS::readClient(): mSocket == 0 "); 1332 qDebug("ERROR::KSS::readClient(): mSocket == 0 ");
1333 return; 1333 return;
1334 } 1334 }
1335 if ( mErrorMessage ) { 1335 if ( mErrorMessage ) {
1336 mErrorMessage = 999; 1336 mErrorMessage = 999;
1337 error_connect("ERROR_ED\r\n\r\n"); 1337 error_connect("ERROR_ED\r\n\r\n");
1338 return; 1338 return;
1339 } 1339 }
1340 mResource = ""; 1340 mResource = "";
1341 mErrorMessage = 0; 1341 mErrorMessage = 0;
1342 //qDebug("KServerSocket::readClient()"); 1342 //qDebug("KServerSocket::readClient()");
1343 if ( mSocket->canReadLine() ) { 1343 if ( mSocket->canReadLine() ) {
1344 QString line = mSocket->readLine(); 1344 QString line = mSocket->readLine();
1345 //qDebug("KServerSocket readline: %s ", line.latin1()); 1345 //qDebug("KServerSocket readline: %s ", line.latin1());
1346 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); 1346 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line );
1347 if ( tokens[0] == "GET" ) { 1347 if ( tokens[0] == "GET" ) {
1348 if ( tokens[1] == mPassWord ) { 1348 if ( tokens[1] == mPassWord ) {
1349 //emit sendFile( mSocket ); 1349 //emit sendFile( mSocket );
1350 bool ok = false; 1350 bool ok = false;
1351 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok); 1351 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok);
1352 if ( ok ) { 1352 if ( ok ) {
1353 KSyncManager::mRequestedSyncEvent = dt; 1353 KSyncManager::mRequestedSyncEvent = dt;
1354 } 1354 }
1355 else 1355 else
1356 KSyncManager::mRequestedSyncEvent = QDateTime(); 1356 KSyncManager::mRequestedSyncEvent = QDateTime();
1357 mResource =tokens[3]; 1357 mResource =tokens[3];
1358 send_file(); 1358 send_file();
1359 } 1359 }
1360 else { 1360 else {
1361 mErrorMessage = 1; 1361 mErrorMessage = 1;
1362 error_connect("ERROR_PW\r\n\r\n"); 1362 error_connect("ERROR_PW\r\n\r\n");
1363 } 1363 }
1364 } 1364 }
1365 if ( tokens[0] == "PUT" ) { 1365 if ( tokens[0] == "PUT" ) {
1366 if ( tokens[1] == mPassWord ) { 1366 if ( tokens[1] == mPassWord ) {
1367 //emit getFile( mSocket ); 1367 //emit getFile( mSocket );
1368 blockRC = true; 1368 blockRC = true;
1369 mResource =tokens[2]; 1369 mResource =tokens[2];
1370 get_file(); 1370 get_file();
1371 } 1371 }
1372 else { 1372 else {
1373 mErrorMessage = 2; 1373 mErrorMessage = 2;
1374 error_connect("ERROR_PW\r\n\r\n"); 1374 error_connect("ERROR_PW\r\n\r\n");
1375 end_connect(); 1375 end_connect();
1376 } 1376 }
1377 } 1377 }
1378 if ( tokens[0] == "STOP" ) { 1378 if ( tokens[0] == "STOP" ) {
1379 //emit endConnect(); 1379 //emit endConnect();
1380 end_connect(); 1380 end_connect();
1381 } 1381 }
1382 } 1382 }
1383} 1383}
1384void KServerSocket::displayErrorMessage() 1384void KServerSocket::displayErrorMessage()
1385{ 1385{
1386 if ( mErrorMessage == 1 ) { 1386 if ( mErrorMessage == 1 ) {
1387 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"), i18n("Pi-Sync Error")); 1387 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"), i18n("Pi-Sync Error"));
1388 mErrorMessage = 0; 1388 mErrorMessage = 0;
1389 } 1389 }
1390 else if ( mErrorMessage == 2 ) { 1390 else if ( mErrorMessage == 2 ) {
1391 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"), i18n("Pi-Sync Error")); 1391 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"), i18n("Pi-Sync Error"));
1392 mErrorMessage = 0; 1392 mErrorMessage = 0;
1393 } 1393 }
1394} 1394}
1395void KServerSocket::error_connect( QString errmess ) 1395void KServerSocket::error_connect( QString errmess )
1396{ 1396{
1397 QTextStream os( mSocket ); 1397 QTextStream os( mSocket );
1398 os.setEncoding( QTextStream::Latin1 ); 1398 os.setEncoding( QTextStream::Latin1 );
1399 os << errmess ; 1399 os << errmess ;
1400 mSocket->close(); 1400 mSocket->close();
1401 if ( mSocket->state() == QSocket::Idle ) { 1401 if ( mSocket->state() == QSocket::Idle ) {
1402 QTimer::singleShot( 0, this , SLOT ( discardClient())); 1402 QTimer::singleShot( 0, this , SLOT ( discardClient()));
1403 } 1403 }
1404} 1404}
1405void KServerSocket::end_connect() 1405void KServerSocket::end_connect()
1406{ 1406{
1407 delete mSyncActionDialog; 1407 delete mSyncActionDialog;
1408 mSyncActionDialog = 0; 1408 mSyncActionDialog = 0;
1409} 1409}
1410void KServerSocket::send_file() 1410void KServerSocket::send_file()
1411{ 1411{
1412 //qDebug("MainWindow::sendFile(QSocket* s) "); 1412 //qDebug("MainWindow::sendFile(QSocket* s) ");
1413 if ( mSyncActionDialog ) 1413 if ( mSyncActionDialog )
1414 delete mSyncActionDialog; 1414 delete mSyncActionDialog;
1415 mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); 1415 mSyncActionDialog = new QDialog ( 0, "input-dialog", true );
1416 mSyncActionDialog->setCaption(i18n("Received sync request")); 1416 mSyncActionDialog->setCaption(i18n("Received sync request"));
1417 QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog ); 1417 QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog );
1418 label->setAlignment ( Qt::AlignHCenter ); 1418 label->setAlignment ( Qt::AlignHCenter );
1419 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); 1419 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
1420 lay->addWidget( label); 1420 lay->addWidget( label);
1421 lay->setMargin(7); 1421 lay->setMargin(7);
1422 lay->setSpacing(7); 1422 lay->setSpacing(7);
1423 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1423 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1424 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent ); 1424 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent );
1425 //secs = 333; 1425 //secs = 333;
1426 if ( secs < 0 ) 1426 if ( secs < 0 )
1427 secs = secs * (-1); 1427 secs = secs * (-1);
1428 if ( secs > 30 ) 1428 if ( secs > 30 )
1429 //if ( true ) 1429 //if ( true )
1430 { 1430 {
1431 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs ); 1431 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs );
1432 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1432 QLabel* label = new QLabel( warning, mSyncActionDialog );
1433 label->setAlignment ( Qt::AlignHCenter ); 1433 label->setAlignment ( Qt::AlignHCenter );
1434 lay->addWidget( label); 1434 lay->addWidget( label);
1435 if ( secs > 180 ) 1435 if ( secs > 180 )
1436 { 1436 {
1437 if ( secs > 300 ) { 1437 if ( secs > 300 ) {
1438 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(0, i18n("The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!"), i18n("High clock skew!"),i18n("Synchronize!"))) { 1438 if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(0, i18n("The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!"), i18n("High clock skew!"),i18n("Synchronize!"))) {
1439 qDebug("KSS::Sync cancelled ,cs"); 1439 qDebug("KSS::Sync cancelled ,cs");
1440 mErrorMessage = 0; 1440 mErrorMessage = 0;
1441 end_connect(); 1441 end_connect();
1442 error_connect("ERROR_CA\r\n\r\n"); 1442 error_connect("ERROR_CA\r\n\r\n");
1443 return ; 1443 return ;
1444 } 1444 }
1445 } 1445 }
1446 QFont f = label->font(); 1446 QFont f = label->font();
1447 f.setPointSize ( f.pointSize() *2 ); 1447 f.setPointSize ( f.pointSize() *2 );
1448 f. setBold (true ); 1448 f. setBold (true );
1449 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1449 QLabel* label = new QLabel( warning, mSyncActionDialog );
1450 label->setFont( f ); 1450 label->setFont( f );
1451 warning = i18n("ADJUST\nYOUR\nCLOCKS!"); 1451 warning = i18n("ADJUST\nYOUR\nCLOCKS!");
1452 label->setText( warning ); 1452 label->setText( warning );
1453 label->setAlignment ( Qt::AlignHCenter ); 1453 label->setAlignment ( Qt::AlignHCenter );
1454 lay->addWidget( label); 1454 lay->addWidget( label);
1455 mSyncActionDialog->setFixedSize( 230, 300); 1455 mSyncActionDialog->setFixedSize( 230, 300);
1456 } else { 1456 } else {
1457 mSyncActionDialog->setFixedSize( 230, 200); 1457 mSyncActionDialog->setFixedSize( 230, 200);
1458 } 1458 }
1459 } else { 1459 } else {
1460 mSyncActionDialog->setFixedSize( 230, 120); 1460 mSyncActionDialog->setFixedSize( 230, 120);
1461 } 1461 }
1462 } else 1462 } else
1463 mSyncActionDialog->setFixedSize( 230, 120); 1463 mSyncActionDialog->setFixedSize( 230, 120);
1464 mSyncActionDialog->show(); 1464 mSyncActionDialog->show();
1465 mSyncActionDialog->raise(); 1465 mSyncActionDialog->raise();
1466 emit request_file(mResource); 1466 emit request_file(mResource);
1467 emit request_file(); 1467 //emit request_file();
1468 qApp->processEvents(); 1468 qApp->processEvents();
1469 QString fileName = mFileName; 1469 QString fileName = mFileName;
1470 QFile file( fileName ); 1470 QFile file( fileName );
1471 if (!file.open( IO_ReadOnly ) ) { 1471 if (!file.open( IO_ReadOnly ) ) {
1472 mErrorMessage = 0; 1472 mErrorMessage = 0;
1473 end_connect(); 1473 end_connect();
1474 error_connect("ERROR_FI\r\n\r\n"); 1474 error_connect("ERROR_FI\r\n\r\n");
1475 return ; 1475 return ;
1476 } 1476 }
1477 mSyncActionDialog->setCaption( i18n("Sending file...") ); 1477 mSyncActionDialog->setCaption( i18n("Sending file...") );
1478 QTextStream ts( &file ); 1478 QTextStream ts( &file );
1479 ts.setEncoding( QTextStream::Latin1 ); 1479 ts.setEncoding( QTextStream::Latin1 );
1480 1480
1481 QTextStream os( mSocket ); 1481 QTextStream os( mSocket );
1482 os.setEncoding( QTextStream::Latin1 ); 1482 os.setEncoding( QTextStream::Latin1 );
1483 while ( ! ts.atEnd() ) { 1483 while ( ! ts.atEnd() ) {
1484 os << ts.readLine() << "\r\n"; 1484 os << ts.readLine() << "\r\n";
1485 } 1485 }
1486 os << "\r\n"; 1486 os << "\r\n";
1487 //os << ts.read(); 1487 //os << ts.read();
1488 file.close(); 1488 file.close();
1489 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); 1489 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") );
1490 mSocket->close(); 1490 mSocket->close();
1491 if ( mSocket->state() == QSocket::Idle ) 1491 if ( mSocket->state() == QSocket::Idle )
1492 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1492 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1493} 1493}
1494void KServerSocket::get_file() 1494void KServerSocket::get_file()
1495{ 1495{
1496 mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); 1496 mSyncActionDialog->setCaption( i18n("Receiving synced file...") );
1497 1497
1498 piTime.start(); 1498 piTime.start();
1499 piFileString = ""; 1499 piFileString = "";
1500 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); 1500 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) ));
1501} 1501}
1502 1502
1503 1503
1504void KServerSocket::readBackFileFromSocket() 1504void KServerSocket::readBackFileFromSocket()
1505{ 1505{
1506 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); 1506 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ());
1507 while ( mSocket->canReadLine () ) { 1507 while ( mSocket->canReadLine () ) {
1508 piTime.restart(); 1508 piTime.restart();
1509 QString line = mSocket->readLine (); 1509 QString line = mSocket->readLine ();
1510 piFileString += line; 1510 piFileString += line;
1511 //qDebug("readline: %s ", line.latin1()); 1511 //qDebug("readline: %s ", line.latin1());
1512 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) ); 1512 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) );
1513 1513
1514 } 1514 }
1515 if ( piTime.elapsed () < 3000 ) { 1515 if ( piTime.elapsed () < 3000 ) {
1516 // wait for more 1516 // wait for more
1517 //qDebug("waitformore "); 1517 //qDebug("waitformore ");
1518 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) )); 1518 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) ));
1519 return; 1519 return;
1520 } 1520 }
1521 QString fileName = mFileName; 1521 QString fileName = mFileName;
1522 QFile file ( fileName ); 1522 QFile file ( fileName );
1523 if (!file.open( IO_WriteOnly ) ) { 1523 if (!file.open( IO_WriteOnly ) ) {
1524 delete mSyncActionDialog; 1524 delete mSyncActionDialog;
1525 mSyncActionDialog = 0; 1525 mSyncActionDialog = 0;
1526 qDebug("KSS:Error open read back file "); 1526 qDebug("KSS:Error open read back file ");
1527 piFileString = ""; 1527 piFileString = "";
1528 emit file_received( false, mResource); 1528 emit file_received( false, mResource);
1529 emit file_received( false); 1529 emit file_received( false);
1530 blockRC = false; 1530 blockRC = false;
1531 return ; 1531 return ;
1532 1532
1533 } 1533 }
1534 1534
1535 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1535 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1536 QTextStream ts ( &file ); 1536 QTextStream ts ( &file );
1537 ts.setEncoding( QTextStream::Latin1 ); 1537 ts.setEncoding( QTextStream::Latin1 );
1538 mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); 1538 mSyncActionDialog->setCaption( i18n("Writing file to disk...") );
1539 ts << piFileString; 1539 ts << piFileString;
1540 mSocket->close(); 1540 mSocket->close();
1541 if ( mSocket->state() == QSocket::Idle ) 1541 if ( mSocket->state() == QSocket::Idle )
1542 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1542 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1543 file.close(); 1543 file.close();
1544 piFileString = ""; 1544 piFileString = "";
1545 emit file_received( true, mResource ); 1545 emit file_received( true, mResource );
1546 emit file_received( true); 1546 emit file_received( true);
1547 delete mSyncActionDialog; 1547 delete mSyncActionDialog;
1548 mSyncActionDialog = 0; 1548 mSyncActionDialog = 0;
1549 blockRC = false; 1549 blockRC = false;
1550 1550
1551} 1551}
1552 1552
1553KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port, QString host, QObject * parent, QWidget * cap, const char * name ): QObject( parent, name ) 1553KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port, QString host, QObject * parent, QWidget * cap, const char * name ): QObject( parent, name )
1554{ 1554{
1555 mRemoteResource = remres; 1555 mRemoteResource = remres;
1556 if ( mRemoteResource.isEmpty() ) 1556 if ( mRemoteResource.isEmpty() )
1557 mRemoteResource = "ALL"; 1557 mRemoteResource = "ALL";
1558 else 1558 else
1559 mRemoteResource.replace (QRegExp (" "),"_" ); 1559 mRemoteResource.replace (QRegExp (" "),"_" );
1560 mPassWord = password; 1560 mPassWord = password;
1561 mSocket = 0; 1561 mSocket = 0;
1562 mFirst = false; 1562 mFirst = false;
1563 mFirstLine = true; 1563 mFirstLine = true;
1564 mPort = port; 1564 mPort = port;
1565 mHost = host; 1565 mHost = host;
1566 tlw = cap; 1566 tlw = cap;
1567 mRetVal = quiet; 1567 mRetVal = quiet;
1568 mTimerSocket = new QTimer ( this ); 1568 mTimerSocket = new QTimer ( this );
1569 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) ); 1569 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) );
1570 mConnectProgress.setCaption( i18n("Pi-Sync") ); 1570 mConnectProgress.setCaption( i18n("Pi-Sync") );
1571 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) ); 1571 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) );
1572 mConnectCount = -1; 1572 mConnectCount = -1;
1573} 1573}
1574void KCommandSocket::sendFileRequest() 1574void KCommandSocket::sendFileRequest()
1575{ 1575{
1576 if ( tlw ) 1576 if ( tlw )
1577 tlw->setCaption( i18n("Connected! Sending request for remote file ...") ); 1577 tlw->setCaption( i18n("Connected! Sending request for remote file ...") );
1578 mConnectProgress.hide(); 1578 mConnectProgress.hide();
1579 mConnectCount = 300;mConnectMax = 300; 1579 mConnectCount = 300;mConnectMax = 300;
1580 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") ); 1580 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") );
1581 mConnectProgress.setLabelText( i18n("Waiting for remote file...") ); 1581 mConnectProgress.setLabelText( i18n("Waiting for remote file...") );
1582 mTimerSocket->start( 100, true ); 1582 mTimerSocket->start( 100, true );
1583 QTextStream os( mSocket ); 1583 QTextStream os( mSocket );
1584 os.setEncoding( QTextStream::Latin1 ); 1584 os.setEncoding( QTextStream::Latin1 );
1585 1585
1586 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate ); 1586 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate );
1587 os << "GET " << mPassWord << curDt << " " << mRemoteResource << "\r\n\r\n"; 1587 os << "GET " << mPassWord << curDt << " " << mRemoteResource << "\r\n\r\n";
1588} 1588}
1589 1589
1590void KCommandSocket::readFile( QString fn ) 1590void KCommandSocket::readFile( QString fn )
1591{ 1591{
1592 if ( !mSocket ) { 1592 if ( !mSocket ) {
1593 mSocket = new QSocket( this ); 1593 mSocket = new QSocket( this );
1594 //qDebug("KCS: read file - new socket"); 1594 //qDebug("KCS: read file - new socket");
1595 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); 1595 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
1596 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1596 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1597 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() )); 1597 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() ));
1598 } 1598 }
1599 mFileString = ""; 1599 mFileString = "";
1600 mFileName = fn; 1600 mFileName = fn;
1601 mFirst = true; 1601 mFirst = true;
1602 if ( tlw ) 1602 if ( tlw )
1603 tlw->setCaption( i18n("Trying to connect to remote...") ); 1603 tlw->setCaption( i18n("Trying to connect to remote...") );
1604 mConnectCount = 30;mConnectMax = 30; 1604 mConnectCount = 30;mConnectMax = 30;
1605 mTimerSocket->start( 1000, true ); 1605 mTimerSocket->start( 1000, true );
1606 mSocket->connectToHost( mHost, mPort ); 1606 mSocket->connectToHost( mHost, mPort );
1607 //qDebug("KCS: Waiting for connection"); 1607 //qDebug("KCS: Waiting for connection");
1608} 1608}
1609void KCommandSocket::updateConnectDialog() 1609void KCommandSocket::updateConnectDialog()
1610{ 1610{
1611 1611
1612 if ( mConnectCount == mConnectMax ) { 1612 if ( mConnectCount == mConnectMax ) {
1613 //qDebug("MAXX %d", mConnectMax); 1613 //qDebug("MAXX %d", mConnectMax);
1614 mConnectProgress.setTotalSteps ( 30 ); 1614 mConnectProgress.setTotalSteps ( 30 );
1615 mConnectProgress.show(); 1615 mConnectProgress.show();
1616 mConnectProgress.setLabelText( i18n("Trying to connect to remote...") ); 1616 mConnectProgress.setLabelText( i18n("Trying to connect to remote...") );
1617 } 1617 }
1618 //qDebug("updateConnectDialog() %d", mConnectCount); 1618 //qDebug("updateConnectDialog() %d", mConnectCount);
1619 mConnectProgress.raise(); 1619 mConnectProgress.raise();
1620 mConnectProgress.setProgress( (mConnectMax - mConnectCount)%30 ); 1620 mConnectProgress.setProgress( (mConnectMax - mConnectCount)%30 );
1621 --mConnectCount; 1621 --mConnectCount;
1622 if ( mConnectCount > 0 ) 1622 if ( mConnectCount > 0 )
1623 mTimerSocket->start( 1000, true ); 1623 mTimerSocket->start( 1000, true );
1624 else 1624 else
1625 deleteSocket(); 1625 deleteSocket();
1626 1626
1627} 1627}
1628void KCommandSocket::writeFile( QString fileName ) 1628void KCommandSocket::writeFile( QString fileName )
1629{ 1629{
1630 if ( !mSocket ) { 1630 if ( !mSocket ) {
1631 mSocket = new QSocket( this ); 1631 mSocket = new QSocket( this );
1632 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1632 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1633 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) ); 1633 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) );
1634 } 1634 }
1635 mFileName = fileName ; 1635 mFileName = fileName ;
1636 mConnectCount = 30;mConnectMax = 30; 1636 mConnectCount = 30;mConnectMax = 30;
1637 mTimerSocket->start( 1000, true ); 1637 mTimerSocket->start( 1000, true );
1638 mSocket->connectToHost( mHost, mPort ); 1638 mSocket->connectToHost( mHost, mPort );
1639} 1639}
1640void KCommandSocket::writeFileToSocket() 1640void KCommandSocket::writeFileToSocket()
1641{ 1641{
1642 mTimerSocket->stop(); 1642 mTimerSocket->stop();
1643 QFile file2( mFileName ); 1643 QFile file2( mFileName );
1644 if (!file2.open( IO_ReadOnly ) ) { 1644 if (!file2.open( IO_ReadOnly ) ) {
1645 mConnectProgress.hide(); 1645 mConnectProgress.hide();
1646 mConnectCount = -1; 1646 mConnectCount = -1;
1647 mRetVal= errorW; 1647 mRetVal= errorW;
1648 mSocket->close(); 1648 mSocket->close();
1649 if ( mSocket->state() == QSocket::Idle ) 1649 if ( mSocket->state() == QSocket::Idle )
1650 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1650 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1651 return ; 1651 return ;
1652 } 1652 }
1653 mConnectProgress.setTotalSteps ( file2.size() ); 1653 mConnectProgress.setTotalSteps ( file2.size() );
1654 mConnectProgress.show(); 1654 mConnectProgress.show();
1655 int count = 0; 1655 int count = 0;
1656 mConnectProgress.setLabelText( i18n("Sending back synced file...") ); 1656 mConnectProgress.setLabelText( i18n("Sending back synced file...") );
1657 mConnectProgress.setProgress( count ); 1657 mConnectProgress.setProgress( count );
1658 mConnectProgress.blockSignals( true ); 1658 mConnectProgress.blockSignals( true );
1659 QTextStream ts2( &file2 ); 1659 QTextStream ts2( &file2 );
1660 ts2.setEncoding( QTextStream::Latin1 ); 1660 ts2.setEncoding( QTextStream::Latin1 );
1661 QTextStream os2( mSocket ); 1661 QTextStream os2( mSocket );
1662 os2.setEncoding( QTextStream::Latin1 ); 1662 os2.setEncoding( QTextStream::Latin1 );
1663 os2 << "PUT " << mPassWord << " " << mRemoteResource << "\r\n\r\n";; 1663 os2 << "PUT " << mPassWord << " " << mRemoteResource << "\r\n\r\n";;
1664 int byteCount = 0; 1664 int byteCount = 0;
1665 int byteMax = file2.size()/53; 1665 int byteMax = file2.size()/53;
1666 while ( ! ts2.atEnd() ) { 1666 while ( ! ts2.atEnd() ) {
1667 qApp->processEvents(); 1667 qApp->processEvents();
1668 if ( byteCount > byteMax ) { 1668 if ( byteCount > byteMax ) {
1669 byteCount = 0; 1669 byteCount = 0;
1670 mConnectProgress.setProgress( count ); 1670 mConnectProgress.setProgress( count );
1671 } 1671 }
1672 QString temp = ts2.readLine(); 1672 QString temp = ts2.readLine();
1673 count += temp.length(); 1673 count += temp.length();
1674 byteCount += temp.length(); 1674 byteCount += temp.length();
1675 os2 << temp << "\r\n"; 1675 os2 << temp << "\r\n";
1676 } 1676 }
1677 file2.close(); 1677 file2.close();
1678 mConnectProgress.hide(); 1678 mConnectProgress.hide();
1679 mConnectCount = -1; 1679 mConnectCount = -1;
1680 os2 << "\r\n"; 1680 os2 << "\r\n";
1681 mRetVal= successW; 1681 mRetVal= successW;
1682 mSocket->close(); 1682 mSocket->close();
1683 if ( mSocket->state() == QSocket::Idle ) 1683 if ( mSocket->state() == QSocket::Idle )
1684 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1684 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1685 mConnectProgress.blockSignals( false ); 1685 mConnectProgress.blockSignals( false );
1686} 1686}
1687void KCommandSocket::sendStop() 1687void KCommandSocket::sendStop()
1688{ 1688{
1689 if ( !mSocket ) { 1689 if ( !mSocket ) {
1690 mSocket = new QSocket( this ); 1690 mSocket = new QSocket( this );
1691 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1691 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1692 } 1692 }
1693 mSocket->connectToHost( mHost, mPort ); 1693 mSocket->connectToHost( mHost, mPort );
1694 QTextStream os2( mSocket ); 1694 QTextStream os2( mSocket );
1695 os2.setEncoding( QTextStream::Latin1 ); 1695 os2.setEncoding( QTextStream::Latin1 );
1696 os2 << "STOP\r\n\r\n"; 1696 os2 << "STOP\r\n\r\n";
1697 mSocket->close(); 1697 mSocket->close();
1698 if ( mSocket->state() == QSocket::Idle ) 1698 if ( mSocket->state() == QSocket::Idle )
1699 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1699 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1700} 1700}
1701 1701
1702void KCommandSocket::startReadFileFromSocket() 1702void KCommandSocket::startReadFileFromSocket()
1703{ 1703{
1704 if ( ! mFirst ) 1704 if ( ! mFirst )
1705 return; 1705 return;
1706 mConnectProgress.setLabelText( i18n("Receiving file from remote...") ); 1706 mConnectProgress.setLabelText( i18n("Receiving file from remote...") );
1707 mFirst = false; 1707 mFirst = false;
1708 mFileString = ""; 1708 mFileString = "";
1709 mTime.start(); 1709 mTime.start();
1710 mFirstLine = true; 1710 mFirstLine = true;
1711 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); 1711 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) ));
1712 1712
1713} 1713}
1714void KCommandSocket::readFileFromSocket() 1714void KCommandSocket::readFileFromSocket()
1715{ 1715{
1716 //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ()); 1716 //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ());
1717 while ( mSocket->canReadLine () ) { 1717 while ( mSocket->canReadLine () ) {
1718 mTime.restart(); 1718 mTime.restart();
1719 QString line = mSocket->readLine (); 1719 QString line = mSocket->readLine ();
1720 if ( mFirstLine ) { 1720 if ( mFirstLine ) {
1721 mFirstLine = false; 1721 mFirstLine = false;
1722 if ( line.left( 6 ) == "ERROR_" ) { 1722 if ( line.left( 6 ) == "ERROR_" ) {
1723 mTimerSocket->stop(); 1723 mTimerSocket->stop();
1724 mConnectCount = -1; 1724 mConnectCount = -1;
1725 if ( line.left( 8 ) == "ERROR_PW" ) { 1725 if ( line.left( 8 ) == "ERROR_PW" ) {
1726 mRetVal = errorPW; 1726 mRetVal = errorPW;
1727 deleteSocket(); 1727 deleteSocket();
1728 return ; 1728 return ;
1729 } 1729 }
1730 if ( line.left( 8 ) == "ERROR_CA" ) { 1730 if ( line.left( 8 ) == "ERROR_CA" ) {
1731 mRetVal = errorCA; 1731 mRetVal = errorCA;
1732 deleteSocket(); 1732 deleteSocket();
1733 return ; 1733 return ;
1734 } 1734 }
1735 if ( line.left( 8 ) == "ERROR_FI" ) { 1735 if ( line.left( 8 ) == "ERROR_FI" ) {
1736 mRetVal = errorFI; 1736 mRetVal = errorFI;
1737 deleteSocket(); 1737 deleteSocket();
1738 return ; 1738 return ;
1739 } 1739 }
1740 if ( line.left( 8 ) == "ERROR_ED" ) { 1740 if ( line.left( 8 ) == "ERROR_ED" ) {
1741 mRetVal = errorED; 1741 mRetVal = errorED;
1742 deleteSocket(); 1742 deleteSocket();
1743 return ; 1743 return ;
1744 } 1744 }
1745 mRetVal = errorUN; 1745 mRetVal = errorUN;
1746 deleteSocket(); 1746 deleteSocket();
1747 return ; 1747 return ;
1748 } 1748 }
1749 } 1749 }
1750 mFileString += line; 1750 mFileString += line;
1751 //qDebug("readline: %s ", line.latin1()); 1751 //qDebug("readline: %s ", line.latin1());
1752 } 1752 }
1753 if ( mTime.elapsed () < 3000 ) { 1753 if ( mTime.elapsed () < 3000 ) {
1754 // wait for more 1754 // wait for more
1755 //qDebug("waitformore "); 1755 //qDebug("waitformore ");
1756 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) )); 1756 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) ));
1757 return; 1757 return;
1758 } 1758 }
1759 mTimerSocket->stop(); 1759 mTimerSocket->stop();
1760 mConnectCount = -1; 1760 mConnectCount = -1;
1761 mConnectProgress.hide(); 1761 mConnectProgress.hide();
1762 QString fileName = mFileName; 1762 QString fileName = mFileName;
1763 QFile file ( fileName ); 1763 QFile file ( fileName );
1764 if (!file.open( IO_WriteOnly ) ) { 1764 if (!file.open( IO_WriteOnly ) ) {
1765 mFileString = ""; 1765 mFileString = "";
1766 mRetVal = errorR; 1766 mRetVal = errorR;
1767 qDebug("KSS:Error open temp sync file for writing: %s",fileName.latin1() ); 1767 qDebug("KSS:Error open temp sync file for writing: %s",fileName.latin1() );
1768 deleteSocket(); 1768 deleteSocket();
1769 return ; 1769 return ;
1770 1770
1771 } 1771 }
1772 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1772 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1773 QTextStream ts ( &file ); 1773 QTextStream ts ( &file );
1774 ts.setEncoding( QTextStream::Latin1 ); 1774 ts.setEncoding( QTextStream::Latin1 );
1775 ts << mFileString; 1775 ts << mFileString;
1776 file.close(); 1776 file.close();
1777 mFileString = ""; 1777 mFileString = "";
1778 mRetVal = successR; 1778 mRetVal = successR;
1779 mSocket->close(); 1779 mSocket->close();
1780 // if state is not idle, deleteSocket(); is called via 1780 // if state is not idle, deleteSocket(); is called via
1781 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1781 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1782 if ( mSocket->state() == QSocket::Idle ) 1782 if ( mSocket->state() == QSocket::Idle )
1783 deleteSocket(); 1783 deleteSocket();
1784} 1784}
1785 1785
1786void KCommandSocket::deleteSocket() 1786void KCommandSocket::deleteSocket()
1787{ 1787{
1788 //qDebug("KCommandSocket::deleteSocket() "); 1788 //qDebug("KCommandSocket::deleteSocket() ");
1789 mConnectProgress.hide(); 1789 mConnectProgress.hide();
1790 1790
1791 if ( mConnectCount >= 0 ) { 1791 if ( mConnectCount >= 0 ) {
1792 mTimerSocket->stop(); 1792 mTimerSocket->stop();
1793 mRetVal = errorTO; 1793 mRetVal = errorTO;
1794 qDebug("KCS::Connection to remote host timed out"); 1794 qDebug("KCS::Connection to remote host timed out");
1795 if ( mSocket ) { 1795 if ( mSocket ) {
1796 mSocket->close(); 1796 mSocket->close();
1797 //if ( mSocket->state() == QSocket::Idle ) 1797 //if ( mSocket->state() == QSocket::Idle )
1798 // deleteSocket(); 1798 // deleteSocket();
1799 delete mSocket; 1799 delete mSocket;
1800 mSocket = 0; 1800 mSocket = 0;
1801 } 1801 }
1802 if ( mConnectCount == 0 ) 1802 if ( mConnectCount == 0 )
1803 KMessageBox::error( 0, i18n("Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?")); 1803 KMessageBox::error( 0, i18n("Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?"));
1804 else if ( tlw ) 1804 else if ( tlw )
1805 tlw->setCaption( i18n("Connection to remote host cancelled!") ); 1805 tlw->setCaption( i18n("Connection to remote host cancelled!") );
1806 emit commandFinished( this, mRetVal ); 1806 emit commandFinished( this, mRetVal );
1807 return; 1807 return;
1808 } 1808 }
1809 //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); 1809 //qDebug("KCommandSocket::deleteSocket() %d", mRetVal );
1810 if ( mSocket) 1810 if ( mSocket)
1811 delete mSocket; 1811 delete mSocket;
1812 mSocket = 0; 1812 mSocket = 0;
1813 //qDebug("commandFinished "); 1813 //qDebug("commandFinished ");
1814 emit commandFinished( this, mRetVal ); 1814 emit commandFinished( this, mRetVal );
1815} 1815}