summaryrefslogtreecommitdiffabout
path: root/libkdepim
Unidiff
Diffstat (limited to 'libkdepim') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 61a9899..795cd30 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1119,76 +1119,81 @@ QString KSyncManager::syncFileName()
1119 return (QString( "/tmp/" )+ fn ); 1119 return (QString( "/tmp/" )+ fn );
1120#endif 1120#endif
1121} 1121}
1122 1122
1123void KSyncManager::syncPi() 1123void KSyncManager::syncPi()
1124{ 1124{
1125 mIsKapiFile = true; 1125 mIsKapiFile = true;
1126 mPisyncFinished = false; 1126 mPisyncFinished = false;
1127 qApp->processEvents(); 1127 qApp->processEvents();
1128 if ( mAskForPreferences ) 1128 if ( mAskForPreferences )
1129 if ( !edit_pisync_options()) { 1129 if ( !edit_pisync_options()) {
1130 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1130 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1131 mPisyncFinished = true; 1131 mPisyncFinished = true;
1132 return; 1132 return;
1133 } 1133 }
1134 bool ok; 1134 bool ok;
1135 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 1135 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
1136 if ( ! ok ) { 1136 if ( ! ok ) {
1137 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 1137 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
1138 mPisyncFinished = true; 1138 mPisyncFinished = true;
1139 return; 1139 return;
1140 } 1140 }
1141 mCurrentResourceLocal = ""; 1141 mCurrentResourceLocal = "";
1142 mCurrentResourceRemote = ""; 1142 mCurrentResourceRemote = "";
1143 qDebug ( "KSM: sync pi %d",mSpecificResources.count() );
1143 if ( mSpecificResources.count() ) { 1144 if ( mSpecificResources.count() ) {
1144 int lastSyncRes = mSpecificResources.count()/2; 1145 int lastSyncRes = mSpecificResources.count()/2;
1145 int ccc = mSpecificResources.count()-1; 1146 int ccc = mSpecificResources.count()-1;
1146 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) { 1147 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) {
1147 --ccc; 1148 --ccc;
1148 --lastSyncRes; 1149 --lastSyncRes;
1150 qDebug ( "KSM: sync pi %d",ccc );
1149 } 1151 }
1150 int startLocal = 0; 1152 int startLocal = 0;
1151 int startRemote = mSpecificResources.count()/2; 1153 int startRemote = mSpecificResources.count()/2;
1152 emit multiResourceSyncStart( true ); 1154 emit multiResourceSyncStart( true );
1153 while ( startLocal < mSpecificResources.count()/2 ) { 1155 while ( startLocal < mSpecificResources.count()/2 ) {
1154 if ( startLocal+1 >= lastSyncRes ) 1156 if ( startLocal+1 >= lastSyncRes )
1155 emit multiResourceSyncStart( false ); 1157 emit multiResourceSyncStart( false );
1156 mPisyncFinished = false; 1158 mPisyncFinished = false;
1157 mCurrentResourceLocal = mSpecificResources[ startLocal ]; 1159 mCurrentResourceLocal = mSpecificResources[ startLocal ];
1158 mCurrentResourceRemote = mSpecificResources[ startRemote ]; 1160 mCurrentResourceRemote = mSpecificResources[ startRemote ];
1161 qDebug ( "KSM: AAASyncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1159 if ( !mCurrentResourceRemote.isEmpty() ) { 1162 if ( !mCurrentResourceRemote.isEmpty() ) {
1160 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() ); 1163 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1161 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1164 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1162 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1165 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1163 commandSocket->readFile( syncFileName() ); 1166 commandSocket->readFile( syncFileName() );
1164 while ( !mPisyncFinished ) { 1167 while ( !mPisyncFinished ) {
1165 //qDebug("waiting "); 1168 //qDebug("waiting ");
1166 qApp->processEvents(); 1169 qApp->processEvents();
1167 } 1170 }
1168 } 1171 }
1172 ++startRemote;
1169 ++startLocal; 1173 ++startLocal;
1170 } 1174 }
1175 mPisyncFinished = true;
1171 } else { 1176 } else {
1172 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1177 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1173 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1178 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1174 commandSocket->readFile( syncFileName() ); 1179 commandSocket->readFile( syncFileName() );
1175 } 1180 }
1176} 1181}
1177 1182
1178void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1183void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1179{ 1184{
1180 //enum { success, errorW, errorR, quiet }; 1185 //enum { success, errorW, errorR, quiet };
1181 1186
1182 1187
1183 1188
1184 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || 1189 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ||
1185 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { 1190 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) {
1186 if ( state == KCommandSocket::errorPW ) 1191 if ( state == KCommandSocket::errorPW )
1187 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); 1192 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") );
1188 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) 1193 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO )
1189 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 1194 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
1190 else if ( state == KCommandSocket::errorCA ) 1195 else if ( state == KCommandSocket::errorCA )
1191 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); 1196 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") );
1192 else if ( state == KCommandSocket::errorFI ) 1197 else if ( state == KCommandSocket::errorFI )
1193 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); 1198 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") );
1194 else if ( state == KCommandSocket::errorED ) 1199 else if ( state == KCommandSocket::errorED )
@@ -1495,75 +1500,77 @@ void KServerSocket::readBackFileFromSocket()
1495 1500
1496 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1501 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1497 QTextStream ts ( &file ); 1502 QTextStream ts ( &file );
1498 ts.setEncoding( QTextStream::Latin1 ); 1503 ts.setEncoding( QTextStream::Latin1 );
1499 mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); 1504 mSyncActionDialog->setCaption( i18n("Writing file to disk...") );
1500 ts << piFileString; 1505 ts << piFileString;
1501 mSocket->close(); 1506 mSocket->close();
1502 if ( mSocket->state() == QSocket::Idle ) 1507 if ( mSocket->state() == QSocket::Idle )
1503 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1508 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1504 file.close(); 1509 file.close();
1505 piFileString = ""; 1510 piFileString = "";
1506 emit file_received( true, mResource ); 1511 emit file_received( true, mResource );
1507 emit file_received( true); 1512 emit file_received( true);
1508 delete mSyncActionDialog; 1513 delete mSyncActionDialog;
1509 mSyncActionDialog = 0; 1514 mSyncActionDialog = 0;
1510 blockRC = false; 1515 blockRC = false;
1511 1516
1512} 1517}
1513 1518
1514KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port, QString host, QObject * parent, QWidget * cap, const char * name ): QObject( parent, name ) 1519KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port, QString host, QObject * parent, QWidget * cap, const char * name ): QObject( parent, name )
1515{ 1520{
1516 mRemoteResource = remres; 1521 mRemoteResource = remres;
1517 if ( mRemoteResource.isEmpty() ) 1522 if ( mRemoteResource.isEmpty() )
1518 mRemoteResource = "ALL"; 1523 mRemoteResource = "ALL";
1524 else
1525 mRemoteResource.replace (QRegExp (" "),"_" );
1519 mPassWord = password; 1526 mPassWord = password;
1520 mSocket = 0; 1527 mSocket = 0;
1521 mFirst = false; 1528 mFirst = false;
1522 mFirstLine = true; 1529 mFirstLine = true;
1523 mPort = port; 1530 mPort = port;
1524 mHost = host; 1531 mHost = host;
1525 tlw = cap; 1532 tlw = cap;
1526 mRetVal = quiet; 1533 mRetVal = quiet;
1527 mTimerSocket = new QTimer ( this ); 1534 mTimerSocket = new QTimer ( this );
1528 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) ); 1535 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) );
1529 mConnectProgress.setCaption( i18n("Pi-Sync") ); 1536 mConnectProgress.setCaption( i18n("Pi-Sync") );
1530 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) ); 1537 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) );
1531 mConnectCount = -1; 1538 mConnectCount = -1;
1532} 1539}
1533void KCommandSocket::sendFileRequest() 1540void KCommandSocket::sendFileRequest()
1534{ 1541{
1535 if ( tlw ) 1542 if ( tlw )
1536 tlw->setCaption( i18n("Connected! Sending request for remote file ...") ); 1543 tlw->setCaption( i18n("Connected! Sending request for remote file ...") );
1537 mConnectProgress.hide(); 1544 mConnectProgress.hide();
1538 mConnectCount = 300;mConnectMax = 300; 1545 mConnectCount = 300;mConnectMax = 300;
1539 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") ); 1546 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") );
1540 mTimerSocket->start( 100, true ); 1547 mTimerSocket->start( 100, true );
1541 QTextStream os( mSocket ); 1548 QTextStream os( mSocket );
1542 os.setEncoding( QTextStream::Latin1 ); 1549 os.setEncoding( QTextStream::Latin1 );
1543 1550
1544 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate ); 1551 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate );
1545 os << "GET " << mPassWord << curDt << mRemoteResource << "\r\n\r\n"; 1552 os << "GET " << mPassWord << curDt << " " << mRemoteResource << "\r\n\r\n";
1546} 1553}
1547 1554
1548void KCommandSocket::readFile( QString fn ) 1555void KCommandSocket::readFile( QString fn )
1549{ 1556{
1550 if ( !mSocket ) { 1557 if ( !mSocket ) {
1551 mSocket = new QSocket( this ); 1558 mSocket = new QSocket( this );
1552 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); 1559 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
1553 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1560 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1554 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() )); 1561 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() ));
1555 } 1562 }
1556 mFileString = ""; 1563 mFileString = "";
1557 mFileName = fn; 1564 mFileName = fn;
1558 mFirst = true; 1565 mFirst = true;
1559 if ( tlw ) 1566 if ( tlw )
1560 tlw->setCaption( i18n("Trying to connect to remote...") ); 1567 tlw->setCaption( i18n("Trying to connect to remote...") );
1561 mConnectCount = 30;mConnectMax = 30; 1568 mConnectCount = 30;mConnectMax = 30;
1562 mTimerSocket->start( 1000, true ); 1569 mTimerSocket->start( 1000, true );
1563 mSocket->connectToHost( mHost, mPort ); 1570 mSocket->connectToHost( mHost, mPort );
1564 qDebug("KSS: Waiting for connection"); 1571 qDebug("KSS: Waiting for connection");
1565} 1572}
1566void KCommandSocket::updateConnectDialog() 1573void KCommandSocket::updateConnectDialog()
1567{ 1574{
1568 1575
1569 if ( mConnectCount == mConnectMax ) { 1576 if ( mConnectCount == mConnectMax ) {
@@ -1596,49 +1603,49 @@ void KCommandSocket::writeFile( QString fileName )
1596} 1603}
1597void KCommandSocket::writeFileToSocket() 1604void KCommandSocket::writeFileToSocket()
1598{ 1605{
1599 mTimerSocket->stop(); 1606 mTimerSocket->stop();
1600 QFile file2( mFileName ); 1607 QFile file2( mFileName );
1601 if (!file2.open( IO_ReadOnly ) ) { 1608 if (!file2.open( IO_ReadOnly ) ) {
1602 mConnectProgress.hide(); 1609 mConnectProgress.hide();
1603 mConnectCount = -1; 1610 mConnectCount = -1;
1604 mRetVal= errorW; 1611 mRetVal= errorW;
1605 mSocket->close(); 1612 mSocket->close();
1606 if ( mSocket->state() == QSocket::Idle ) 1613 if ( mSocket->state() == QSocket::Idle )
1607 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1614 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1608 return ; 1615 return ;
1609 } 1616 }
1610 mConnectProgress.setTotalSteps ( file2.size() ); 1617 mConnectProgress.setTotalSteps ( file2.size() );
1611 mConnectProgress.show(); 1618 mConnectProgress.show();
1612 int count = 0; 1619 int count = 0;
1613 mConnectProgress.setLabelText( i18n("Sending back synced file...") ); 1620 mConnectProgress.setLabelText( i18n("Sending back synced file...") );
1614 mConnectProgress.setProgress( count ); 1621 mConnectProgress.setProgress( count );
1615 mConnectProgress.blockSignals( true ); 1622 mConnectProgress.blockSignals( true );
1616 QTextStream ts2( &file2 ); 1623 QTextStream ts2( &file2 );
1617 ts2.setEncoding( QTextStream::Latin1 ); 1624 ts2.setEncoding( QTextStream::Latin1 );
1618 QTextStream os2( mSocket ); 1625 QTextStream os2( mSocket );
1619 os2.setEncoding( QTextStream::Latin1 ); 1626 os2.setEncoding( QTextStream::Latin1 );
1620 os2 << "PUT " << mPassWord << mRemoteResource << "\r\n\r\n";; 1627 os2 << "PUT " << mPassWord << " " << mRemoteResource << "\r\n\r\n";;
1621 int byteCount = 0; 1628 int byteCount = 0;
1622 int byteMax = file2.size()/53; 1629 int byteMax = file2.size()/53;
1623 while ( ! ts2.atEnd() ) { 1630 while ( ! ts2.atEnd() ) {
1624 qApp->processEvents(); 1631 qApp->processEvents();
1625 if ( byteCount > byteMax ) { 1632 if ( byteCount > byteMax ) {
1626 byteCount = 0; 1633 byteCount = 0;
1627 mConnectProgress.setProgress( count ); 1634 mConnectProgress.setProgress( count );
1628 } 1635 }
1629 QString temp = ts2.readLine(); 1636 QString temp = ts2.readLine();
1630 count += temp.length(); 1637 count += temp.length();
1631 byteCount += temp.length(); 1638 byteCount += temp.length();
1632 os2 << temp << "\r\n"; 1639 os2 << temp << "\r\n";
1633 } 1640 }
1634 file2.close(); 1641 file2.close();
1635 mConnectProgress.hide(); 1642 mConnectProgress.hide();
1636 mConnectCount = -1; 1643 mConnectCount = -1;
1637 os2 << "\r\n"; 1644 os2 << "\r\n";
1638 mRetVal= successW; 1645 mRetVal= successW;
1639 mSocket->close(); 1646 mSocket->close();
1640 if ( mSocket->state() == QSocket::Idle ) 1647 if ( mSocket->state() == QSocket::Idle )
1641 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1648 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1642 mConnectProgress.blockSignals( false ); 1649 mConnectProgress.blockSignals( false );
1643} 1650}
1644void KCommandSocket::sendStop() 1651void KCommandSocket::sendStop()