summaryrefslogtreecommitdiffabout
path: root/libkdepim/ksyncmanager.cpp
Unidiff
Diffstat (limited to 'libkdepim/ksyncmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp48
1 files changed, 41 insertions, 7 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index e1b15d2..8bf0d27 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1151,34 +1151,45 @@ void KSyncManager::syncPi()
1151 int startLocal = 0; 1151 int startLocal = 0;
1152 int startRemote = mSpecificResources.count()/2; 1152 int startRemote = mSpecificResources.count()/2;
1153 emit multiResourceSyncStart( true ); 1153 emit multiResourceSyncStart( true );
1154 while ( startLocal < mSpecificResources.count()/2 ) { 1154 while ( startLocal < mSpecificResources.count()/2 ) {
1155 if ( startLocal+1 >= lastSyncRes ) 1155 if ( startLocal+1 >= lastSyncRes )
1156 emit multiResourceSyncStart( false ); 1156 emit multiResourceSyncStart( false );
1157 mPisyncFinished = false; 1157 mPisyncFinished = false;
1158 mCurrentResourceLocal = mSpecificResources[ startLocal ]; 1158 mCurrentResourceLocal = mSpecificResources[ startLocal ];
1159 mCurrentResourceRemote = mSpecificResources[ startRemote ]; 1159 mCurrentResourceRemote = mSpecificResources[ startRemote ];
1160 //qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1160 //qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1161 if ( !mCurrentResourceRemote.isEmpty() ) { 1161 if ( !mCurrentResourceRemote.isEmpty() ) {
1162 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1162 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1163
1163 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1164 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1164 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1165 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1165 commandSocket->readFile( syncFileName() ); 1166 commandSocket->readFile( syncFileName() );
1167 mParent->topLevelWidget()->setCaption( i18n("Syncing %1 <-> %2").arg( mCurrentResourceLocal ).arg( mCurrentResourceRemote ) );
1166 while ( !mPisyncFinished ) { 1168 while ( !mPisyncFinished ) {
1167 //qDebug("waiting "); 1169 //qDebug("waiting ");
1168 qApp->processEvents(); 1170 qApp->processEvents();
1169 } 1171 }
1172 if ( startLocal+1 < mSpecificResources.count()/2 ) {
1173 mParent->topLevelWidget()->setCaption( i18n("Waiting 2 secs before syncing next resource...") );
1174 QTime timer;
1175 timer.start();
1176 while ( timer.elapsed () < 2000 ) {
1177 qApp->processEvents();
1178 }
1179 }
1170 } 1180 }
1171 ++startRemote; 1181 ++startRemote;
1172 ++startLocal; 1182 ++startLocal;
1183
1173 } 1184 }
1174 mPisyncFinished = true; 1185 mPisyncFinished = true;
1175 } else { 1186 } else {
1176 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1187 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1177 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1188 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1178 commandSocket->readFile( syncFileName() ); 1189 commandSocket->readFile( syncFileName() );
1179 } 1190 }
1180} 1191}
1181 1192
1182void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1193void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1183{ 1194{
1184 //enum { success, errorW, errorR, quiet }; 1195 //enum { success, errorW, errorR, quiet };
@@ -1245,39 +1256,60 @@ void KSyncManager::readFileFromSocket()
1245 commandSocket->writeFile( fileName ); 1256 commandSocket->writeFile( fileName );
1246 } 1257 }
1247 else { 1258 else {
1248 commandSocket->sendStop(); 1259 commandSocket->sendStop();
1249 if ( syncOK ) 1260 if ( syncOK )
1250 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1261 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
1251 mPisyncFinished = true; 1262 mPisyncFinished = true;
1252 } 1263 }
1253} 1264}
1254 1265
1255KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1266KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1256{ 1267{
1268 mPendingConnect = 0;
1257 mPassWord = pw; 1269 mPassWord = pw;
1258 mSocket = 0; 1270 mSocket = 0;
1259 mSyncActionDialog = 0; 1271 mSyncActionDialog = 0;
1260 blockRC = false; 1272 blockRC = false;
1261 mErrorMessage = 0; 1273 mErrorMessage = 0;
1262} 1274}
1263 1275void KServerSocket::waitForSocketFinish()
1276{
1277 if ( mSocket ) {
1278 qDebug("KSS:: waiting for finish operation");
1279 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1280 return;
1281 }
1282 mSocket = new QSocket( this );
1283 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1284 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1285 mSocket->setSocket( mPendingConnect );
1286 mPendingConnect = 0;
1287}
1264void KServerSocket::newConnection ( int socket ) 1288void KServerSocket::newConnection ( int socket )
1265{ 1289{
1266 // qDebug("KServerSocket:New connection %d ", socket); 1290 // qDebug("KServerSocket:New connection %d ", socket);
1291 if ( mPendingConnect ) {
1292 qDebug("KSS::Error : new Connection");
1293 return;
1294 }
1267 if ( mSocket ) { 1295 if ( mSocket ) {
1296 mPendingConnect = socket;
1297 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1298 return;
1268 qDebug("KSS::newConnection Socket deleted! "); 1299 qDebug("KSS::newConnection Socket deleted! ");
1269 delete mSocket; 1300 delete mSocket;
1270 mSocket = 0; 1301 mSocket = 0;
1271 } 1302 }
1303 mPendingConnect = 0;
1272 mSocket = new QSocket( this ); 1304 mSocket = new QSocket( this );
1273 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1305 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1274 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1306 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1275 mSocket->setSocket( socket ); 1307 mSocket->setSocket( socket );
1276} 1308}
1277 1309
1278void KServerSocket::discardClient() 1310void KServerSocket::discardClient()
1279{ 1311{
1280 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1312 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1281} 1313}
1282void KServerSocket::deleteSocket() 1314void KServerSocket::deleteSocket()
1283{ 1315{
@@ -1534,60 +1566,62 @@ KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port
1534 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) ); 1566 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) );
1535 mConnectProgress.setCaption( i18n("Pi-Sync") ); 1567 mConnectProgress.setCaption( i18n("Pi-Sync") );
1536 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) ); 1568 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) );
1537 mConnectCount = -1; 1569 mConnectCount = -1;
1538} 1570}
1539void KCommandSocket::sendFileRequest() 1571void KCommandSocket::sendFileRequest()
1540{ 1572{
1541 if ( tlw ) 1573 if ( tlw )
1542 tlw->setCaption( i18n("Connected! Sending request for remote file ...") ); 1574 tlw->setCaption( i18n("Connected! Sending request for remote file ...") );
1543 mConnectProgress.hide(); 1575 mConnectProgress.hide();
1544 mConnectCount = 300;mConnectMax = 300; 1576 mConnectCount = 300;mConnectMax = 300;
1545 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") ); 1577 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") );
1578 mConnectProgress.setLabelText( i18n("Waiting for remote file...") );
1546 mTimerSocket->start( 100, true ); 1579 mTimerSocket->start( 100, true );
1547 QTextStream os( mSocket ); 1580 QTextStream os( mSocket );
1548 os.setEncoding( QTextStream::Latin1 ); 1581 os.setEncoding( QTextStream::Latin1 );
1549 1582
1550 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate ); 1583 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate );
1551 os << "GET " << mPassWord << curDt << " " << mRemoteResource << "\r\n\r\n"; 1584 os << "GET " << mPassWord << curDt << " " << mRemoteResource << "\r\n\r\n";
1552} 1585}
1553 1586
1554void KCommandSocket::readFile( QString fn ) 1587void KCommandSocket::readFile( QString fn )
1555{ 1588{
1556 if ( !mSocket ) { 1589 if ( !mSocket ) {
1557 mSocket = new QSocket( this ); 1590 mSocket = new QSocket( this );
1591 qDebug("KCS: read file - new socket");
1558 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); 1592 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
1559 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1593 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1560 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() )); 1594 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() ));
1561 } 1595 }
1562 mFileString = ""; 1596 mFileString = "";
1563 mFileName = fn; 1597 mFileName = fn;
1564 mFirst = true; 1598 mFirst = true;
1565 if ( tlw ) 1599 if ( tlw )
1566 tlw->setCaption( i18n("Trying to connect to remote...") ); 1600 tlw->setCaption( i18n("Trying to connect to remote...") );
1567 mConnectCount = 30;mConnectMax = 30; 1601 mConnectCount = 30;mConnectMax = 30;
1568 mTimerSocket->start( 1000, true ); 1602 mTimerSocket->start( 1000, true );
1569 mSocket->connectToHost( mHost, mPort ); 1603 mSocket->connectToHost( mHost, mPort );
1570 qDebug("KSS: Waiting for connection"); 1604 qDebug("KCS: Waiting for connection");
1571} 1605}
1572void KCommandSocket::updateConnectDialog() 1606void KCommandSocket::updateConnectDialog()
1573{ 1607{
1574 1608
1575 if ( mConnectCount == mConnectMax ) { 1609 if ( mConnectCount == mConnectMax ) {
1576 //qDebug("MAXX %d", mConnectMax); 1610 qDebug("MAXX %d", mConnectMax);
1577 mConnectProgress.setTotalSteps ( 30 ); 1611 mConnectProgress.setTotalSteps ( 30 );
1578 mConnectProgress.show(); 1612 mConnectProgress.show();
1579 mConnectProgress.setLabelText( i18n("Trying to connect to remote...") ); 1613 mConnectProgress.setLabelText( i18n("Trying to connect to remote...") );
1580 } 1614 }
1581 //qDebug("updateConnectDialog() %d", mConnectCount); 1615 qDebug("updateConnectDialog() %d", mConnectCount);
1582 mConnectProgress.raise(); 1616 mConnectProgress.raise();
1583 mConnectProgress.setProgress( (mConnectMax - mConnectCount)%30 ); 1617 mConnectProgress.setProgress( (mConnectMax - mConnectCount)%30 );
1584 --mConnectCount; 1618 --mConnectCount;
1585 if ( mConnectCount > 0 ) 1619 if ( mConnectCount > 0 )
1586 mTimerSocket->start( 1000, true ); 1620 mTimerSocket->start( 1000, true );
1587 else 1621 else
1588 deleteSocket(); 1622 deleteSocket();
1589 1623
1590} 1624}
1591void KCommandSocket::writeFile( QString fileName ) 1625void KCommandSocket::writeFile( QString fileName )
1592{ 1626{
1593 if ( !mSocket ) { 1627 if ( !mSocket ) {