author | zautrix <zautrix> | 2004-10-08 10:31:33 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-08 10:31:33 (UTC) |
commit | 98987418d89d1334c0c2961ca4d6bc295d6fb021 (patch) (unidiff) | |
tree | 2562272904bcd82eab7e6d185f3f7f0abfac48c3 | |
parent | 309df8e8df3a17602f948025b7951b21ec5c3fed (diff) | |
download | kdepimpi-98987418d89d1334c0c2961ca4d6bc295d6fb021.zip kdepimpi-98987418d89d1334c0c2961ca4d6bc295d6fb021.tar.gz kdepimpi-98987418d89d1334c0c2961ca4d6bc295d6fb021.tar.bz2 |
Sync fixes
-rw-r--r-- | bin/kdepim/korganizer/howtoSYNC.txt | 17 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.cpp | 56 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.h | 1 |
3 files changed, 62 insertions, 12 deletions
diff --git a/bin/kdepim/korganizer/howtoSYNC.txt b/bin/kdepim/korganizer/howtoSYNC.txt index d3046de..c4e80f5 100644 --- a/bin/kdepim/korganizer/howtoSYNC.txt +++ b/bin/kdepim/korganizer/howtoSYNC.txt | |||
@@ -112,13 +112,18 @@ c) Include in multiple sync: | |||
112 | In the Synchronize menu, there is a multiple sync menu entry. | 112 | In the Synchronize menu, there is a multiple sync menu entry. |
113 | If you choose this menu entry, all user defined profiles with this | 113 | If you choose this menu entry, all user defined profiles with this |
114 | 'Include in multiple sync' option enabled will be synced | 114 | 'Include in multiple sync' option enabled will be synced |
115 | one after another. And this twice. This will take some time. | 115 | one after another. And this twice. This will take some time. |
116 | After that sync, on all devices should be the same data. | 116 | After that sync, on all devices should be the same data. |
117 | d) Ask for preferences before sync: | 117 | d) Ask for preferences before sync: |
118 | Check this to be asked for sync settings before each sync. | 118 | Check this to be asked for sync preferences settings before each sync. |
119 | If the profile kind is "Pi-Sync" you will be asked to confirm | ||
120 | the "Pi-Sync" specific settings (Password,IP address, port number) | ||
121 | as well. That makes it possible to use that profile for a | ||
122 | device that is connected via DHCP to the network and gets different | ||
123 | IP addresses when connection to the network. | ||
119 | e) Sync preferences: | 124 | e) Sync preferences: |
120 | Choose here your sync preferences. | 125 | Choose here your sync preferences. |
121 | Details -> 4) | 126 | Details -> 4) |
122 | f) Show summary after sync: | 127 | f) Show summary after sync: |
123 | Check this to get a small summary dialog after sync | 128 | Check this to get a small summary dialog after sync |
124 | about number of added/changed/deleted events on local/remote. | 129 | about number of added/changed/deleted events on local/remote. |
@@ -264,12 +269,22 @@ b) Pi-Sync (direct Kx/Pi to Kx/Pi sync) | |||
264 | request on the given port using the given password. | 269 | request on the given port using the given password. |
265 | If you want to be sure, nobody can access your calendar | 270 | If you want to be sure, nobody can access your calendar |
266 | data, simply disable the file transfer feature on the | 271 | data, simply disable the file transfer feature on the |
267 | remote device after the syncing is done by choosing: | 272 | remote device after the syncing is done by choosing: |
268 | Menu Synchronize-Disable Pi-Sync. | 273 | Menu Synchronize-Disable Pi-Sync. |
269 | 274 | ||
275 | Note: If you want to sync with a remote device that gets different | ||
276 | IPaddresses each time connected to the network | ||
277 | (this may be the case, if you use DHCP for connection | ||
278 | of the remote device to the network) simply enable | ||
279 | "Ask for preferences before sync". | ||
280 | Then you will be asked to confirm the | ||
281 | "Pi-Sync" specific settings | ||
282 | (Password,IP address, port number) | ||
283 | and you can easily change the IP address before each sync. | ||
284 | |||
270 | On your local device, create a new profile and choose | 285 | On your local device, create a new profile and choose |
271 | profile kind "Pi-Sync". | 286 | profile kind "Pi-Sync". |
272 | Fill in the needed values: | 287 | Fill in the needed values: |
273 | - Password for remote access: | 288 | - Password for remote access: |
274 | The password you specified on the remote device. | 289 | The password you specified on the remote device. |
275 | - Remote IP address: | 290 | - Remote IP address: |
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index b3e266a..0faa24d 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp | |||
@@ -606,17 +606,47 @@ void KSyncManager::syncRemote( KSyncProfile* prof, bool ask) | |||
606 | mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) ); | 606 | mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) ); |
607 | } | 607 | } |
608 | } | 608 | } |
609 | } | 609 | } |
610 | return; | 610 | return; |
611 | } | 611 | } |
612 | void KSyncManager::edit_pisync_options() | ||
613 | { | ||
614 | QDialog dia( mParent, "dia", true ); | ||
615 | dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice ); | ||
616 | QVBoxLayout lay ( &dia ); | ||
617 | lay.setSpacing( 5 ); | ||
618 | lay.setMargin( 3 ); | ||
619 | QLabel lab1 ( i18n("Password for remote access:"), &dia); | ||
620 | lay.addWidget( &lab1 ); | ||
621 | QLineEdit le1 (&dia ); | ||
622 | lay.addWidget( &le1 ); | ||
623 | QLabel lab2 ( i18n("Remote IP address:"), &dia); | ||
624 | lay.addWidget( &lab2 ); | ||
625 | QLineEdit le2 (&dia ); | ||
626 | lay.addWidget( &le2 ); | ||
627 | QLabel lab3 ( i18n("Remote port number:"), &dia); | ||
628 | lay.addWidget( &lab3 ); | ||
629 | QLineEdit le3 (&dia ); | ||
630 | lay.addWidget( &le3 ); | ||
631 | QPushButton pb ( "OK", &dia); | ||
632 | lay.addWidget( &pb ); | ||
633 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | ||
634 | le1.setText( mPassWordPiSync ); | ||
635 | le2.setText( mActiveSyncIP ); | ||
636 | le3.setText( mActiveSyncPort ); | ||
637 | if ( dia.exec() ) { | ||
638 | mPassWordPiSync = le1.text(); | ||
639 | mActiveSyncPort = le3.text(); | ||
640 | mActiveSyncIP = le2.text(); | ||
641 | } | ||
612 | 642 | ||
643 | } | ||
613 | void KSyncManager::edit_sync_options() | 644 | void KSyncManager::edit_sync_options() |
614 | { | 645 | { |
615 | //mDialogManager->showSyncOptions(); | 646 | |
616 | //mSyncAlgoPrefs | ||
617 | QDialog dia( mParent, "dia", true ); | 647 | QDialog dia( mParent, "dia", true ); |
618 | dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); | 648 | dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); |
619 | QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); | 649 | QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); |
620 | QVBoxLayout lay ( &dia ); | 650 | QVBoxLayout lay ( &dia ); |
621 | lay.setSpacing( 2 ); | 651 | lay.setSpacing( 2 ); |
622 | lay.setMargin( 3 ); | 652 | lay.setMargin( 3 ); |
@@ -782,16 +812,17 @@ QString KSyncManager::syncFileName() | |||
782 | return locateLocal( "tmp", fn ); | 812 | return locateLocal( "tmp", fn ); |
783 | #else | 813 | #else |
784 | return (QString( "/tmp/" )+ fn ); | 814 | return (QString( "/tmp/" )+ fn ); |
785 | #endif | 815 | #endif |
786 | } | 816 | } |
787 | 817 | ||
788 | |||
789 | void KSyncManager::syncPi() | 818 | void KSyncManager::syncPi() |
790 | { | 819 | { |
791 | qApp->processEvents(); | 820 | qApp->processEvents(); |
821 | if ( mAskForPreferences ) | ||
822 | edit_pisync_options(); | ||
792 | bool ok; | 823 | bool ok; |
793 | Q_UINT16 port = mActiveSyncPort.toUInt(&ok); | 824 | Q_UINT16 port = mActiveSyncPort.toUInt(&ok); |
794 | if ( ! ok ) { | 825 | if ( ! ok ) { |
795 | mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); | 826 | mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); |
796 | return; | 827 | return; |
797 | } | 828 | } |
@@ -894,24 +925,24 @@ void KServerSocket::readClient() | |||
894 | QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); | 925 | QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); |
895 | if ( tokens[0] == "GET" ) { | 926 | if ( tokens[0] == "GET" ) { |
896 | if ( tokens[1] == mPassWord ) | 927 | if ( tokens[1] == mPassWord ) |
897 | //emit sendFile( mSocket ); | 928 | //emit sendFile( mSocket ); |
898 | send_file(); | 929 | send_file(); |
899 | else { | 930 | else { |
900 | KMessageBox::information( 0, i18n("ERROR:\nGot send file request\nwith invalid password")); | 931 | KMessageBox::error( 0, i18n("Got send file request\nwith invalid password")); |
901 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); | 932 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); |
902 | } | 933 | } |
903 | } | 934 | } |
904 | if ( tokens[0] == "PUT" ) { | 935 | if ( tokens[0] == "PUT" ) { |
905 | if ( tokens[1] == mPassWord ) { | 936 | if ( tokens[1] == mPassWord ) { |
906 | //emit getFile( mSocket ); | 937 | //emit getFile( mSocket ); |
907 | blockRC = true; | 938 | blockRC = true; |
908 | get_file(); | 939 | get_file(); |
909 | } | 940 | } |
910 | else { | 941 | else { |
911 | KMessageBox::information( 0, i18n("ERROR:\nGot receive file request\nwith invalid password")); | 942 | KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password")); |
912 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); | 943 | qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() ); |
913 | } | 944 | } |
914 | } | 945 | } |
915 | if ( tokens[0] == "STOP" ) { | 946 | if ( tokens[0] == "STOP" ) { |
916 | //emit endConnect(); | 947 | //emit endConnect(); |
917 | end_connect(); | 948 | end_connect(); |
@@ -1152,25 +1183,28 @@ void KCommandSocket::readFileFromSocket() | |||
1152 | if ( mSocket->state() == QSocket::Idle ) | 1183 | if ( mSocket->state() == QSocket::Idle ) |
1153 | deleteSocket(); | 1184 | deleteSocket(); |
1154 | } | 1185 | } |
1155 | 1186 | ||
1156 | void KCommandSocket::deleteSocket() | 1187 | void KCommandSocket::deleteSocket() |
1157 | { | 1188 | { |
1189 | //qDebug("KCommandSocket::deleteSocket() "); | ||
1158 | if ( mTimerSocket->isActive () ) { | 1190 | if ( mTimerSocket->isActive () ) { |
1159 | mTimerSocket->stop(); | 1191 | mTimerSocket->stop(); |
1160 | mRetVal = errorTO; | 1192 | mRetVal = errorTO; |
1193 | qDebug("Connection to remote host timed out"); | ||
1161 | if ( mSocket ) { | 1194 | if ( mSocket ) { |
1162 | mSocket->close(); | 1195 | mSocket->close(); |
1163 | if ( mSocket->state() == QSocket::Idle ) | 1196 | //if ( mSocket->state() == QSocket::Idle ) |
1164 | deleteSocket(); | 1197 | // deleteSocket(); |
1165 | return; | 1198 | delete mSocket; |
1199 | mSocket = 0; | ||
1166 | } | 1200 | } |
1201 | KMessageBox::error( 0, i18n("Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host? ")); | ||
1202 | emit commandFinished( this, mRetVal ); | ||
1203 | return; | ||
1167 | } | 1204 | } |
1168 | //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); | 1205 | //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); |
1169 | if ( mSocket) | 1206 | if ( mSocket) |
1170 | delete mSocket; | 1207 | delete mSocket; |
1171 | mSocket = 0; | 1208 | mSocket = 0; |
1172 | if ( mRetVal == errorTO) | ||
1173 | KMessageBox::information( 0, i18n("ERROR:\nConnection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host? ")); | ||
1174 | |||
1175 | emit commandFinished( this, mRetVal ); | 1209 | emit commandFinished( this, mRetVal ); |
1176 | } | 1210 | } |
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h index 1f7c7e7..5b05383 100644 --- a/libkdepim/ksyncmanager.h +++ b/libkdepim/ksyncmanager.h | |||
@@ -170,12 +170,13 @@ class KSyncManager : public QObject | |||
170 | void syncPhone(); | 170 | void syncPhone(); |
171 | void syncSharp(); | 171 | void syncSharp(); |
172 | bool syncExternalApplication(QString); | 172 | bool syncExternalApplication(QString); |
173 | int mCurrentSyncProfile ; | 173 | int mCurrentSyncProfile ; |
174 | void syncRemote( KSyncProfile* prof, bool ask = true); | 174 | void syncRemote( KSyncProfile* prof, bool ask = true); |
175 | void edit_sync_options(); | 175 | void edit_sync_options(); |
176 | void edit_pisync_options(); | ||
176 | int ringSync(); | 177 | int ringSync(); |
177 | QString getPassword( ); | 178 | QString getPassword( ); |
178 | 179 | ||
179 | private slots: | 180 | private slots: |
180 | void confSync(); | 181 | void confSync(); |
181 | private: | 182 | private: |