summaryrefslogtreecommitdiffabout
path: root/libkdepim/ksyncmanager.cpp
authorzautrix <zautrix>2005-12-02 10:19:28 (UTC)
committer zautrix <zautrix>2005-12-02 10:19:28 (UTC)
commit1bb72406b4f160efa20bf4329539543e000295a5 (patch) (unidiff)
treeeb8cee9f4c79dd28443b4e7a3b2374b712c16e9b /libkdepim/ksyncmanager.cpp
parentcba4eb3e05bee757b910f316ffab01d3849c0138 (diff)
downloadkdepimpi-1bb72406b4f160efa20bf4329539543e000295a5.zip
kdepimpi-1bb72406b4f160efa20bf4329539543e000295a5.tar.gz
kdepimpi-1bb72406b4f160efa20bf4329539543e000295a5.tar.bz2
more sync
Diffstat (limited to 'libkdepim/ksyncmanager.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 7197b30..b7929ec 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -933,512 +933,513 @@ void KSyncManager::confSync()
933 mImplementation->removeSyncInfo( oldSyncProfileNames[ii] ); 933 mImplementation->removeSyncInfo( oldSyncProfileNames[ii] );
934 } 934 }
935 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 935 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
936} 936}
937void KSyncManager::syncKDE() 937void KSyncManager::syncKDE()
938{ 938{
939 mSyncWithDesktop = true; 939 mSyncWithDesktop = true;
940 emit save(); 940 emit save();
941 switch(mTargetApp) 941 switch(mTargetApp)
942 { 942 {
943 case (KAPI): 943 case (KAPI):
944 { 944 {
945#ifdef DESKTOP_VERSION 945#ifdef DESKTOP_VERSION
946 QString command = "kdeabdump33"; 946 QString command = "kdeabdump33";
947 QString commandfile = "kdeabdump33"; 947 QString commandfile = "kdeabdump33";
948 QString commandpath = qApp->applicationDirPath () + "/"; 948 QString commandpath = qApp->applicationDirPath () + "/";
949#else 949#else
950 QString command = "kdeabdump33"; 950 QString command = "kdeabdump33";
951 QString commandfile = "kdeabdump33"; 951 QString commandfile = "kdeabdump33";
952 QString commandpath = QDir::homeDirPath ()+"/"; 952 QString commandpath = QDir::homeDirPath ()+"/";
953#endif 953#endif
954 if ( ! QFile::exists ( commandpath+commandfile ) ) 954 if ( ! QFile::exists ( commandpath+commandfile ) )
955 command = commandfile; 955 command = commandfile;
956 else 956 else
957 command = commandpath+commandfile; 957 command = commandpath+commandfile;
958 958
959 QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf"; 959 QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf";
960 int result = system ( command.latin1()); 960 int result = system ( command.latin1());
961 qDebug("AB dump 33 command call result: %d ", result); 961 qDebug("AB dump 33 command call result: %d ", result);
962 if ( result != 0 ) { 962 if ( result != 0 ) {
963 qDebug("Calling AB dump version 33 failed. Trying 34... "); 963 qDebug("Calling AB dump version 33 failed. Trying 34... ");
964 commandfile = "kdeabdump34"; 964 commandfile = "kdeabdump34";
965 if ( ! QFile::exists ( commandpath+commandfile ) ) 965 if ( ! QFile::exists ( commandpath+commandfile ) )
966 command = commandfile; 966 command = commandfile;
967 else 967 else
968 command = commandpath+commandfile; 968 command = commandpath+commandfile;
969 result = system ( command.latin1()); 969 result = system ( command.latin1());
970 qDebug("AB dump 34 command call result: %d ", result); 970 qDebug("AB dump 34 command call result: %d ", result);
971 if ( result != 0 ) { 971 if ( result != 0 ) {
972 KMessageBox::error( 0, i18n("Error accessing KDE addressbook data.\nMake sure the file\n%1kdeabdump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath )); 972 KMessageBox::error( 0, i18n("Error accessing KDE addressbook data.\nMake sure the file\n%1kdeabdump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath ));
973 return; 973 return;
974 } 974 }
975 } 975 }
976 if ( syncWithFile( fileName,true ) ) { 976 if ( syncWithFile( fileName,true ) ) {
977 if ( mWriteBackFile ) { 977 if ( mWriteBackFile ) {
978 command += " --read"; 978 command += " --read";
979 system ( command.latin1()); 979 system ( command.latin1());
980 } 980 }
981 } 981 }
982 982
983 } 983 }
984 break; 984 break;
985 case (KOPI): 985 case (KOPI):
986 { 986 {
987#ifdef DESKTOP_VERSION 987#ifdef DESKTOP_VERSION
988 QString command = "kdecaldump33"; 988 QString command = "kdecaldump33";
989 QString commandfile = "kdecaldump33"; 989 QString commandfile = "kdecaldump33";
990 QString commandpath = qApp->applicationDirPath () + "/"; 990 QString commandpath = qApp->applicationDirPath () + "/";
991#else 991#else
992 QString command = "kdecaldump33"; 992 QString command = "kdecaldump33";
993 QString commandfile = "kdecaldump33"; 993 QString commandfile = "kdecaldump33";
994 QString commandpath = QDir::homeDirPath ()+"/"; 994 QString commandpath = QDir::homeDirPath ()+"/";
995#endif 995#endif
996 if ( ! QFile::exists ( commandpath+commandfile ) ) 996 if ( ! QFile::exists ( commandpath+commandfile ) )
997 command = commandfile; 997 command = commandfile;
998 else 998 else
999 command = commandpath+commandfile; 999 command = commandpath+commandfile;
1000 1000
1001 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; 1001 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics";
1002 int result = system ( command.latin1()); 1002 int result = system ( command.latin1());
1003 qDebug("Cal dump 33 command call result result: %d ", result); 1003 qDebug("Cal dump 33 command call result result: %d ", result);
1004 if ( result != 0 ) { 1004 if ( result != 0 ) {
1005 qDebug("Calling CAL dump version 33 failed. Trying 34... "); 1005 qDebug("Calling CAL dump version 33 failed. Trying 34... ");
1006 commandfile = "kdecaldump34"; 1006 commandfile = "kdecaldump34";
1007 if ( ! QFile::exists ( commandpath+commandfile ) ) 1007 if ( ! QFile::exists ( commandpath+commandfile ) )
1008 command = commandfile; 1008 command = commandfile;
1009 else 1009 else
1010 command = commandpath+commandfile; 1010 command = commandpath+commandfile;
1011 result = system ( command.latin1()); 1011 result = system ( command.latin1());
1012 qDebug("Cal dump 34 command call result result: %d ", result); 1012 qDebug("Cal dump 34 command call result result: %d ", result);
1013 if ( result != 0 ) { 1013 if ( result != 0 ) {
1014 KMessageBox::error( 0, i18n("Error accessing KDE calendar data.\nMake sure the file\n%1kdecaldump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath )); 1014 KMessageBox::error( 0, i18n("Error accessing KDE calendar data.\nMake sure the file\n%1kdecaldump3x\nexists ( x = 3 or 4 ).\nSupported KDE versions are 3.3 and 3.4.\nUsed version should be auto detected.\n").arg( commandpath ));
1015 return; 1015 return;
1016 } 1016 }
1017 } 1017 }
1018 if ( syncWithFile( fileName,true ) ) { 1018 if ( syncWithFile( fileName,true ) ) {
1019 if ( mWriteBackFile ) { 1019 if ( mWriteBackFile ) {
1020 command += " --read"; 1020 command += " --read";
1021 system ( command.latin1()); 1021 system ( command.latin1());
1022 } 1022 }
1023 } 1023 }
1024 1024
1025 } 1025 }
1026 break; 1026 break;
1027 case (PWMPI): 1027 case (PWMPI):
1028 1028
1029 break; 1029 break;
1030 default: 1030 default:
1031 qDebug("KSM::slotSyncMenu: invalid apptype selected"); 1031 qDebug("KSM::slotSyncMenu: invalid apptype selected");
1032 break; 1032 break;
1033 1033
1034 } 1034 }
1035} 1035}
1036 1036
1037void KSyncManager::syncSharp() 1037void KSyncManager::syncSharp()
1038{ 1038{
1039 1039
1040 if ( ! syncExternalApplication("sharp") ) 1040 if ( ! syncExternalApplication("sharp") )
1041 qDebug("KSM::ERROR sync sharp "); 1041 qDebug("KSM::ERROR sync sharp ");
1042} 1042}
1043 1043
1044bool KSyncManager::syncExternalApplication(QString resource) 1044bool KSyncManager::syncExternalApplication(QString resource)
1045{ 1045{
1046 1046
1047 emit save(); 1047 emit save();
1048 1048
1049 if ( mAskForPreferences ) 1049 if ( mAskForPreferences )
1050 if ( !edit_sync_options()) { 1050 if ( !edit_sync_options()) {
1051 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1051 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1052 return false; 1052 return false;
1053 } 1053 }
1054 1054
1055 qDebug("KSM::Sync extern %s", resource.latin1()); 1055 qDebug("KSM::Sync extern %s", resource.latin1());
1056 1056
1057 bool syncOK = mImplementation->syncExternal(this, resource); 1057 bool syncOK = mImplementation->syncExternal(this, resource);
1058 1058
1059 return syncOK; 1059 return syncOK;
1060 1060
1061} 1061}
1062 1062
1063void KSyncManager::syncPhone() 1063void KSyncManager::syncPhone()
1064{ 1064{
1065 1065
1066 syncExternalApplication("phone"); 1066 syncExternalApplication("phone");
1067 1067
1068} 1068}
1069 1069
1070void KSyncManager::showProgressBar(int percentage, QString caption, int total) 1070void KSyncManager::showProgressBar(int percentage, QString caption, int total)
1071{ 1071{
1072 if (!bar->isVisible()) 1072 if (!bar->isVisible())
1073 { 1073 {
1074 int w = 300; 1074 int w = 300;
1075 if ( QApplication::desktop()->width() < 320 ) 1075 if ( QApplication::desktop()->width() < 320 )
1076 w = 220; 1076 w = 220;
1077 int h = bar->sizeHint().height() ; 1077 int h = bar->sizeHint().height() ;
1078 int dw = QApplication::desktop()->width(); 1078 int dw = QApplication::desktop()->width();
1079 int dh = QApplication::desktop()->height(); 1079 int dh = QApplication::desktop()->height();
1080 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1080 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1081 bar->setCaption (caption); 1081 bar->setCaption (caption);
1082 bar->setTotalSteps ( total ) ; 1082 bar->setTotalSteps ( 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 mParent->topLevelWidget()->setCaption( i18n("Multi-resource Pi-sync finished") );
1189 } else { 1190 } else {
1190 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1191 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1191 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1192 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1192 commandSocket->readFile( syncFileName() ); 1193 commandSocket->readFile( syncFileName() );
1193 } 1194 }
1194} 1195}
1195 1196
1196void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1197void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1197{ 1198{
1198 //enum { success, errorW, errorR, quiet }; 1199 //enum { success, errorW, errorR, quiet };
1199 1200
1200 1201
1201 1202
1202 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || 1203 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ||
1203 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { 1204 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) {
1204 if ( state == KCommandSocket::errorPW ) 1205 if ( state == KCommandSocket::errorPW )
1205 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); 1206 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") );
1206 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) 1207 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO )
1207 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 1208 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
1208 else if ( state == KCommandSocket::errorCA ) 1209 else if ( state == KCommandSocket::errorCA )
1209 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); 1210 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") );
1210 else if ( state == KCommandSocket::errorFI ) 1211 else if ( state == KCommandSocket::errorFI )
1211 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); 1212 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") );
1212 else if ( state == KCommandSocket::errorED ) 1213 else if ( state == KCommandSocket::errorED )
1213 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") ); 1214 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") );
1214 else if ( state == KCommandSocket::errorUN ) 1215 else if ( state == KCommandSocket::errorUN )
1215 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") ); 1216 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") );
1216 delete s; 1217 delete s;
1217 if ( state == KCommandSocket::errorR ) { 1218 if ( state == KCommandSocket::errorR ) {
1218 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget()); 1219 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget());
1219 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1220 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1220 commandSocket->sendStop(); 1221 commandSocket->sendStop();
1221 } 1222 }
1222 mPisyncFinished = true; 1223 mPisyncFinished = true;
1223 return; 1224 return;
1224 1225
1225 } else if ( state == KCommandSocket::errorW ) { 1226 } else if ( state == KCommandSocket::errorW ) {
1226 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); 1227 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") );
1227 mPisyncFinished = true; 1228 mPisyncFinished = true;
1228 1229
1229 } else if ( state == KCommandSocket::successR ) { 1230 } else if ( state == KCommandSocket::successR ) {
1230 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 1231 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
1231 1232
1232 } else if ( state == KCommandSocket::successW ) { 1233 } else if ( state == KCommandSocket::successW ) {
1233 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") ); 1234 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") );
1234 mPisyncFinished = true; 1235 mPisyncFinished = true;
1235 } else if ( state == KCommandSocket::quiet ){ 1236 } else if ( state == KCommandSocket::quiet ){
1236 qDebug("KSS: quiet "); 1237 qDebug("KSS: quiet ");
1237 mPisyncFinished = true; 1238 mPisyncFinished = true;
1238 } else { 1239 } else {
1239 qDebug("KSS: Error: unknown state: %d ", state); 1240 qDebug("KSS: Error: unknown state: %d ", state);
1240 mPisyncFinished = true; 1241 mPisyncFinished = true;
1241 } 1242 }
1242 1243
1243 delete s; 1244 delete s;
1244} 1245}
1245 1246
1246void KSyncManager::readFileFromSocket() 1247void KSyncManager::readFileFromSocket()
1247{ 1248{
1248 QString fileName = syncFileName(); 1249 QString fileName = syncFileName();
1249 bool syncOK = true; 1250 bool syncOK = true;
1250 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); 1251 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") );
1251 if ( ! syncWithFile( fileName , true ) ) { 1252 if ( ! syncWithFile( fileName , true ) ) {
1252 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); 1253 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") );
1253 syncOK = false; 1254 syncOK = false;
1254 } 1255 }
1255 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); 1256 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() );
1256 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1257 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1257 if ( mWriteBackFile && syncOK ) { 1258 if ( mWriteBackFile && syncOK ) {
1258 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") ); 1259 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") );
1259 commandSocket->writeFile( fileName ); 1260 commandSocket->writeFile( fileName );
1260 } 1261 }
1261 else { 1262 else {
1262 commandSocket->sendStop(); 1263 commandSocket->sendStop();
1263 if ( syncOK ) 1264 if ( syncOK )
1264 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1265 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
1265 mPisyncFinished = true; 1266 mPisyncFinished = true;
1266 } 1267 }
1267} 1268}
1268 1269
1269KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1270KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1270{ 1271{
1271 mPendingConnect = 0; 1272 mPendingConnect = 0;
1272 mPassWord = pw; 1273 mPassWord = pw;
1273 mSocket = 0; 1274 mSocket = 0;
1274 mSyncActionDialog = 0; 1275 mSyncActionDialog = 0;
1275 blockRC = false; 1276 blockRC = false;
1276 mErrorMessage = 0; 1277 mErrorMessage = 0;
1277} 1278}
1278void KServerSocket::waitForSocketFinish() 1279void KServerSocket::waitForSocketFinish()
1279{ 1280{
1280 if ( mSocket ) { 1281 if ( mSocket ) {
1281 //qDebug("KSS:: waiting for finish operation"); 1282 //qDebug("KSS:: waiting for finish operation");
1282 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish())); 1283 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1283 return; 1284 return;
1284 } 1285 }
1285 mSocket = new QSocket( this ); 1286 mSocket = new QSocket( this );
1286 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1287 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1287 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1288 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1288 mSocket->setSocket( mPendingConnect ); 1289 mSocket->setSocket( mPendingConnect );
1289 mPendingConnect = 0; 1290 mPendingConnect = 0;
1290} 1291}
1291void KServerSocket::newConnection ( int socket ) 1292void KServerSocket::newConnection ( int socket )
1292{ 1293{
1293 // qDebug("KServerSocket:New connection %d ", socket); 1294 // qDebug("KServerSocket:New connection %d ", socket);
1294 if ( mPendingConnect ) { 1295 if ( mPendingConnect ) {
1295 qDebug("KSS::Error : new Connection"); 1296 qDebug("KSS::Error : new Connection");
1296 return; 1297 return;
1297 } 1298 }
1298 if ( mSocket ) { 1299 if ( mSocket ) {
1299 mPendingConnect = socket; 1300 mPendingConnect = socket;
1300 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish())); 1301 QTimer::singleShot( 250, this , SLOT ( waitForSocketFinish()));
1301 return; 1302 return;
1302 qDebug("KSS::newConnection Socket deleted! "); 1303 qDebug("KSS::newConnection Socket deleted! ");
1303 delete mSocket; 1304 delete mSocket;
1304 mSocket = 0; 1305 mSocket = 0;
1305 } 1306 }
1306 mPendingConnect = 0; 1307 mPendingConnect = 0;
1307 mSocket = new QSocket( this ); 1308 mSocket = new QSocket( this );
1308 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1309 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1309 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1310 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1310 mSocket->setSocket( socket ); 1311 mSocket->setSocket( socket );
1311} 1312}
1312 1313
1313void KServerSocket::discardClient() 1314void KServerSocket::discardClient()
1314{ 1315{
1315 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1316 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1316} 1317}
1317void KServerSocket::deleteSocket() 1318void KServerSocket::deleteSocket()
1318{ 1319{
1319 //qDebug("KSS::deleteSocket"); 1320 //qDebug("KSS::deleteSocket");
1320 if ( mSocket ) { 1321 if ( mSocket ) {
1321 delete mSocket; 1322 delete mSocket;
1322 mSocket = 0; 1323 mSocket = 0;
1323 } 1324 }
1324 if ( mErrorMessage ) 1325 if ( mErrorMessage )
1325 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage())); 1326 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage()));
1326} 1327}
1327void KServerSocket::readClient() 1328void KServerSocket::readClient()
1328{ 1329{
1329 if ( blockRC ) 1330 if ( blockRC )
1330 return; 1331 return;
1331 if ( mSocket == 0 ) { 1332 if ( mSocket == 0 ) {
1332 qDebug("ERROR::KSS::readClient(): mSocket == 0 "); 1333 qDebug("ERROR::KSS::readClient(): mSocket == 0 ");
1333 return; 1334 return;
1334 } 1335 }
1335 if ( mErrorMessage ) { 1336 if ( mErrorMessage ) {
1336 mErrorMessage = 999; 1337 mErrorMessage = 999;
1337 error_connect("ERROR_ED\r\n\r\n"); 1338 error_connect("ERROR_ED\r\n\r\n");
1338 return; 1339 return;
1339 } 1340 }
1340 mResource = ""; 1341 mResource = "";
1341 mErrorMessage = 0; 1342 mErrorMessage = 0;
1342 //qDebug("KServerSocket::readClient()"); 1343 //qDebug("KServerSocket::readClient()");
1343 if ( mSocket->canReadLine() ) { 1344 if ( mSocket->canReadLine() ) {
1344 QString line = mSocket->readLine(); 1345 QString line = mSocket->readLine();
1345 //qDebug("KServerSocket readline: %s ", line.latin1()); 1346 //qDebug("KServerSocket readline: %s ", line.latin1());
1346 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); 1347 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line );
1347 if ( tokens[0] == "GET" ) { 1348 if ( tokens[0] == "GET" ) {
1348 if ( tokens[1] == mPassWord ) { 1349 if ( tokens[1] == mPassWord ) {
1349 //emit sendFile( mSocket ); 1350 //emit sendFile( mSocket );
1350 bool ok = false; 1351 bool ok = false;
1351 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok); 1352 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok);
1352 if ( ok ) { 1353 if ( ok ) {
1353 KSyncManager::mRequestedSyncEvent = dt; 1354 KSyncManager::mRequestedSyncEvent = dt;
1354 } 1355 }
1355 else 1356 else
1356 KSyncManager::mRequestedSyncEvent = QDateTime(); 1357 KSyncManager::mRequestedSyncEvent = QDateTime();
1357 mResource =tokens[3]; 1358 mResource =tokens[3];
1358 send_file(); 1359 send_file();
1359 } 1360 }
1360 else { 1361 else {
1361 mErrorMessage = 1; 1362 mErrorMessage = 1;
1362 error_connect("ERROR_PW\r\n\r\n"); 1363 error_connect("ERROR_PW\r\n\r\n");
1363 } 1364 }
1364 } 1365 }
1365 if ( tokens[0] == "PUT" ) { 1366 if ( tokens[0] == "PUT" ) {
1366 if ( tokens[1] == mPassWord ) { 1367 if ( tokens[1] == mPassWord ) {
1367 //emit getFile( mSocket ); 1368 //emit getFile( mSocket );
1368 blockRC = true; 1369 blockRC = true;
1369 mResource =tokens[2]; 1370 mResource =tokens[2];
1370 get_file(); 1371 get_file();
1371 } 1372 }
1372 else { 1373 else {
1373 mErrorMessage = 2; 1374 mErrorMessage = 2;
1374 error_connect("ERROR_PW\r\n\r\n"); 1375 error_connect("ERROR_PW\r\n\r\n");
1375 end_connect(); 1376 end_connect();
1376 } 1377 }
1377 } 1378 }
1378 if ( tokens[0] == "STOP" ) { 1379 if ( tokens[0] == "STOP" ) {
1379 //emit endConnect(); 1380 //emit endConnect();
1380 end_connect(); 1381 end_connect();
1381 } 1382 }
1382 } 1383 }
1383} 1384}
1384void KServerSocket::displayErrorMessage() 1385void KServerSocket::displayErrorMessage()
1385{ 1386{
1386 if ( mErrorMessage == 1 ) { 1387 if ( mErrorMessage == 1 ) {
1387 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"), i18n("Pi-Sync Error")); 1388 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"), i18n("Pi-Sync Error"));
1388 mErrorMessage = 0; 1389 mErrorMessage = 0;
1389 } 1390 }
1390 else if ( mErrorMessage == 2 ) { 1391 else if ( mErrorMessage == 2 ) {
1391 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"), i18n("Pi-Sync Error")); 1392 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"), i18n("Pi-Sync Error"));
1392 mErrorMessage = 0; 1393 mErrorMessage = 0;
1393 } 1394 }
1394} 1395}
1395void KServerSocket::error_connect( QString errmess ) 1396void KServerSocket::error_connect( QString errmess )
1396{ 1397{
1397 QTextStream os( mSocket ); 1398 QTextStream os( mSocket );
1398 os.setEncoding( QTextStream::Latin1 ); 1399 os.setEncoding( QTextStream::Latin1 );
1399 os << errmess ; 1400 os << errmess ;
1400 mSocket->close(); 1401 mSocket->close();
1401 if ( mSocket->state() == QSocket::Idle ) { 1402 if ( mSocket->state() == QSocket::Idle ) {
1402 QTimer::singleShot( 0, this , SLOT ( discardClient())); 1403 QTimer::singleShot( 0, this , SLOT ( discardClient()));
1403 } 1404 }
1404} 1405}
1405void KServerSocket::end_connect() 1406void KServerSocket::end_connect()
1406{ 1407{
1407 delete mSyncActionDialog; 1408 delete mSyncActionDialog;
1408 mSyncActionDialog = 0; 1409 mSyncActionDialog = 0;
1409} 1410}
1410void KServerSocket::send_file() 1411void KServerSocket::send_file()
1411{ 1412{
1412 //qDebug("MainWindow::sendFile(QSocket* s) "); 1413 //qDebug("MainWindow::sendFile(QSocket* s) ");
1413 if ( mSyncActionDialog ) 1414 if ( mSyncActionDialog )
1414 delete mSyncActionDialog; 1415 delete mSyncActionDialog;
1415 mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); 1416 mSyncActionDialog = new QDialog ( 0, "input-dialog", true );
1416 mSyncActionDialog->setCaption(i18n("Received sync request")); 1417 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 ); 1418 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 ); 1419 label->setAlignment ( Qt::AlignHCenter );
1419 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); 1420 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
1420 lay->addWidget( label); 1421 lay->addWidget( label);
1421 lay->setMargin(7); 1422 lay->setMargin(7);
1422 lay->setSpacing(7); 1423 lay->setSpacing(7);
1423 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1424 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1424 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent ); 1425 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent );
1425 //secs = 333; 1426 //secs = 333;
1426 if ( secs < 0 ) 1427 if ( secs < 0 )
1427 secs = secs * (-1); 1428 secs = secs * (-1);
1428 if ( secs > 30 ) 1429 if ( secs > 30 )
1429 //if ( true ) 1430 //if ( true )
1430 { 1431 {
1431 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs ); 1432 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs );
1432 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1433 QLabel* label = new QLabel( warning, mSyncActionDialog );
1433 label->setAlignment ( Qt::AlignHCenter ); 1434 label->setAlignment ( Qt::AlignHCenter );
1434 lay->addWidget( label); 1435 lay->addWidget( label);
1435 if ( secs > 180 ) 1436 if ( secs > 180 )
1436 { 1437 {
1437 if ( secs > 300 ) { 1438 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!"))) { 1439 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"); 1440 qDebug("KSS::Sync cancelled ,cs");
1440 mErrorMessage = 0; 1441 mErrorMessage = 0;
1441 end_connect(); 1442 end_connect();
1442 error_connect("ERROR_CA\r\n\r\n"); 1443 error_connect("ERROR_CA\r\n\r\n");
1443 return ; 1444 return ;
1444 } 1445 }