summaryrefslogtreecommitdiffabout
path: root/libkdepim
Unidiff
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp44
-rw-r--r--libkdepim/ksyncmanager.h1
2 files changed, 45 insertions, 0 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 5175f94..7ee56e4 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -6,280 +6,294 @@
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21// $Id$ 21// $Id$
22 22
23#include "ksyncmanager.h" 23#include "ksyncmanager.h"
24 24
25#include <stdlib.h> 25#include <stdlib.h>
26 26
27#ifndef _WIN32_ 27#ifndef _WIN32_
28#include <unistd.h> 28#include <unistd.h>
29#endif 29#endif
30 30
31 31
32#include "ksyncprofile.h" 32#include "ksyncprofile.h"
33#include "ksyncprefsdialog.h" 33#include "ksyncprefsdialog.h"
34#include "kpimprefs.h" 34#include "kpimprefs.h"
35#include <kmessagebox.h> 35#include <kmessagebox.h>
36 36
37#include <qdir.h> 37#include <qdir.h>
38#include <qprogressbar.h> 38#include <qprogressbar.h>
39#include <qpopupmenu.h> 39#include <qpopupmenu.h>
40#include <qpushbutton.h> 40#include <qpushbutton.h>
41#include <qradiobutton.h> 41#include <qradiobutton.h>
42#include <qbuttongroup.h> 42#include <qbuttongroup.h>
43#include <qtimer.h> 43#include <qtimer.h>
44#include <qmessagebox.h> 44#include <qmessagebox.h>
45#include <qapplication.h> 45#include <qapplication.h>
46#include <qlineedit.h> 46#include <qlineedit.h>
47#include <qdialog.h> 47#include <qdialog.h>
48#include <qlayout.h> 48#include <qlayout.h>
49#include <qtextcodec.h> 49#include <qtextcodec.h>
50#include <qlabel.h> 50#include <qlabel.h>
51 51
52#include <klocale.h> 52#include <klocale.h>
53#include <kglobal.h> 53#include <kglobal.h>
54#include <kconfig.h> 54#include <kconfig.h>
55#include <kfiledialog.h> 55#include <kfiledialog.h>
56 56
57KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) 57KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu)
58 : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mPrefs(prefs ),mSyncMenu(syncmenu) 58 : QObject(), mParent(parent), mImplementation(implementation), mTargetApp(ta), mPrefs(prefs ),mSyncMenu(syncmenu)
59{ 59{
60 mServerSocket = 0; 60 mServerSocket = 0;
61 bar = new QProgressBar ( 1, 0 ); 61 bar = new QProgressBar ( 1, 0 );
62 bar->setCaption (""); 62 bar->setCaption ("");
63 63
64 int w = 300; 64 int w = 300;
65 if ( QApplication::desktop()->width() < 320 ) 65 if ( QApplication::desktop()->width() < 320 )
66 w = 220; 66 w = 220;
67 int h = bar->sizeHint().height() ; 67 int h = bar->sizeHint().height() ;
68 int dw = QApplication::desktop()->width(); 68 int dw = QApplication::desktop()->width();
69 int dh = QApplication::desktop()->height(); 69 int dh = QApplication::desktop()->height();
70 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 70 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
71 71
72} 72}
73 73
74KSyncManager::~KSyncManager() 74KSyncManager::~KSyncManager()
75{ 75{
76 delete bar; 76 delete bar;
77} 77}
78 78
79 79
80void KSyncManager::fillSyncMenu() 80void KSyncManager::fillSyncMenu()
81{ 81{
82 if ( mSyncMenu->count() ) 82 if ( mSyncMenu->count() )
83 mSyncMenu->clear(); 83 mSyncMenu->clear();
84 84
85 mSyncMenu->insertItem( i18n("Configure..."), 0 ); 85 mSyncMenu->insertItem( i18n("Configure..."), 0 );
86 mSyncMenu->insertSeparator(); 86 mSyncMenu->insertSeparator();
87 if ( mServerSocket == 0 ) { 87 if ( mServerSocket == 0 ) {
88 mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); 88 mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 );
89 } else { 89 } else {
90 mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); 90 mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 );
91 } 91 }
92 mSyncMenu->insertSeparator(); 92 mSyncMenu->insertSeparator();
93 mSyncMenu->insertItem( i18n("Multiple sync"), 1 ); 93 mSyncMenu->insertItem( i18n("Multiple sync"), 1 );
94 mSyncMenu->insertSeparator(); 94 mSyncMenu->insertSeparator();
95 95
96 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 96 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
97 config.setGroup("General"); 97 config.setGroup("General");
98 QStringList prof = config.readListEntry("SyncProfileNames"); 98 QStringList prof = config.readListEntry("SyncProfileNames");
99 mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 99 mLocalMachineName = config.readEntry("LocalMachineName","undefined");
100 if ( prof.count() < 2 ) { 100 if ( prof.count() < 2 ) {
101 prof.clear(); 101 prof.clear();
102#ifdef DESKTOP_VERSION
103#ifdef _WIN32_
104 prof << i18n("OutLook(not_implemented)");
105#else
106 prof << i18n("KDE_Desktop");
107#endif
108#else
102 prof << i18n("Sharp_DTM"); 109 prof << i18n("Sharp_DTM");
110#endif
103 prof << i18n("Local_file"); 111 prof << i18n("Local_file");
104 prof << i18n("Last_file"); 112 prof << i18n("Last_file");
105 KSyncProfile* temp = new KSyncProfile (); 113 KSyncProfile* temp = new KSyncProfile ();
106 temp->setName( prof[0] ); 114 temp->setName( prof[0] );
107 temp->writeConfig(&config); 115 temp->writeConfig(&config);
108 temp->setName( prof[1] ); 116 temp->setName( prof[1] );
109 temp->writeConfig(&config); 117 temp->writeConfig(&config);
110 temp->setName( prof[2] ); 118 temp->setName( prof[2] );
111 temp->writeConfig(&config); 119 temp->writeConfig(&config);
112 config.setGroup("General"); 120 config.setGroup("General");
113 config.writeEntry("SyncProfileNames",prof); 121 config.writeEntry("SyncProfileNames",prof);
114 config.writeEntry("ExternSyncProfiles","Sharp_DTM"); 122 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
115 config.sync(); 123 config.sync();
116 delete temp; 124 delete temp;
117 } 125 }
118 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 126 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
119 mSyncProfileNames = prof; 127 mSyncProfileNames = prof;
120 unsigned int i; 128 unsigned int i;
121 for ( i = 0; i < prof.count(); ++i ) { 129 for ( i = 0; i < prof.count(); ++i ) {
122 mSyncMenu->insertItem( prof[i], 1000+i ); 130 mSyncMenu->insertItem( prof[i], 1000+i );
123 if ( i == 2 ) 131 if ( i == 2 )
124 mSyncMenu->insertSeparator(); 132 mSyncMenu->insertSeparator();
125 } 133 }
126 QDir app_dir; 134 QDir app_dir;
127 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available 135 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available
128 if ( mTargetApp == PWMPI) { 136 if ( mTargetApp == PWMPI) {
129 mSyncMenu->removeItem( 1000 ); 137 mSyncMenu->removeItem( 1000 );
130 } 138 }
139#ifndef DESKTOP_VERSION
131 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 140 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
132 mSyncMenu->removeItem( 1000 ); 141 mSyncMenu->removeItem( 1000 );
133 } 142 }
143#endif
134 mSyncMenu->removeItem( 1002 ); 144 mSyncMenu->removeItem( 1002 );
135} 145}
136 146
137void KSyncManager::slotSyncMenu( int action ) 147void KSyncManager::slotSyncMenu( int action )
138{ 148{
139 //qDebug("syncaction %d ", action); 149 //qDebug("syncaction %d ", action);
140 if ( action == 0 ) { 150 if ( action == 0 ) {
141 151
142 // seems to be a Qt2 event handling bug 152 // seems to be a Qt2 event handling bug
143 // syncmenu.clear causes a segfault at first time 153 // syncmenu.clear causes a segfault at first time
144 // when we call it after the main event loop, it is ok 154 // when we call it after the main event loop, it is ok
145 // same behaviour when calling OM/Pi via QCOP for the first time 155 // same behaviour when calling OM/Pi via QCOP for the first time
146 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 156 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
147 //confSync(); 157 //confSync();
148 158
149 return; 159 return;
150 } 160 }
151 if ( action == 1 ) { 161 if ( action == 1 ) {
152 multiSync( true ); 162 multiSync( true );
153 return; 163 return;
154 } 164 }
155 if ( action == 2 ) { 165 if ( action == 2 ) {
156 enableQuick(); 166 enableQuick();
157 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 167 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
158 return; 168 return;
159 } 169 }
160 if ( action == 3 ) { 170 if ( action == 3 ) {
161 delete mServerSocket; 171 delete mServerSocket;
162 mServerSocket = 0; 172 mServerSocket = 0;
163 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 173 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
164 return; 174 return;
165 } 175 }
166 176
167 if (blockSave()) 177 if (blockSave())
168 return; 178 return;
169 179
170 setBlockSave(true); 180 setBlockSave(true);
171 181
172 mCurrentSyncProfile = action - 1000 ; 182 mCurrentSyncProfile = action - 1000 ;
173 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; 183 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ;
174 mCurrentSyncName = mLocalMachineName ; 184 mCurrentSyncName = mLocalMachineName ;
175 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 185 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
176 KSyncProfile* temp = new KSyncProfile (); 186 KSyncProfile* temp = new KSyncProfile ();
177 temp->setName(mSyncProfileNames[mCurrentSyncProfile]); 187 temp->setName(mSyncProfileNames[mCurrentSyncProfile]);
178 temp->readConfig(&config); 188 temp->readConfig(&config);
179 mAskForPreferences = temp->getAskForPreferences(); 189 mAskForPreferences = temp->getAskForPreferences();
180 mSyncAlgoPrefs = temp->getSyncPrefs(); 190 mSyncAlgoPrefs = temp->getSyncPrefs();
181 mWriteBackFile = temp->getWriteBackFile(); 191 mWriteBackFile = temp->getWriteBackFile();
182 mWriteBackExistingOnly = temp->getWriteBackExisting(); 192 mWriteBackExistingOnly = temp->getWriteBackExisting();
183 mIsKapiFile = temp->getIsKapiFile(); 193 mIsKapiFile = temp->getIsKapiFile();
184 mWriteBackInFuture = 0; 194 mWriteBackInFuture = 0;
185 if ( temp->getWriteBackFuture() ) 195 if ( temp->getWriteBackFuture() )
186 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 196 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
187 mShowSyncSummary = temp->getShowSummaryAfterSync(); 197 mShowSyncSummary = temp->getShowSummaryAfterSync();
188 if ( action == 1000 ) { 198 if ( action == 1000 ) {
199#ifdef DESKTOP_VERSION
200 syncKDE();
201#else
189 syncSharp(); 202 syncSharp();
203#endif
190 204
191 } else if ( action == 1001 ) { 205 } else if ( action == 1001 ) {
192 syncLocalFile(); 206 syncLocalFile();
193 207
194 } else if ( action == 1002 ) { 208 } else if ( action == 1002 ) {
195 mWriteBackFile = false; 209 mWriteBackFile = false;
196 mAskForPreferences = false; 210 mAskForPreferences = false;
197 mShowSyncSummary = false; 211 mShowSyncSummary = false;
198 mSyncAlgoPrefs = 3; 212 mSyncAlgoPrefs = 3;
199 quickSyncLocalFile(); 213 quickSyncLocalFile();
200 214
201 } else if ( action >= 1003 ) { 215 } else if ( action >= 1003 ) {
202 if ( temp->getIsLocalFileSync() ) { 216 if ( temp->getIsLocalFileSync() ) {
203 switch(mTargetApp) 217 switch(mTargetApp)
204 { 218 {
205 case (KAPI): 219 case (KAPI):
206 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 220 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
207 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 221 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
208 break; 222 break;
209 case (KOPI): 223 case (KOPI):
210 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 224 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
211 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 225 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
212 break; 226 break;
213 case (PWMPI): 227 case (PWMPI):
214 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 228 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
215 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 229 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
216 break; 230 break;
217 default: 231 default:
218 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected"); 232 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
219 break; 233 break;
220 234
221 } 235 }
222 } else { 236 } else {
223 if ( temp->getIsPhoneSync() ) { 237 if ( temp->getIsPhoneSync() ) {
224 mPhoneDevice = temp->getPhoneDevice( ) ; 238 mPhoneDevice = temp->getPhoneDevice( ) ;
225 mPhoneConnection = temp->getPhoneConnection( ); 239 mPhoneConnection = temp->getPhoneConnection( );
226 mPhoneModel = temp->getPhoneModel( ); 240 mPhoneModel = temp->getPhoneModel( );
227 syncPhone(); 241 syncPhone();
228 } else if ( temp->getIsPiSync() ) { 242 } else if ( temp->getIsPiSync() ) {
229 if ( mTargetApp == KAPI ) { 243 if ( mTargetApp == KAPI ) {
230 mPassWordPiSync = temp->getRemotePwAB(); 244 mPassWordPiSync = temp->getRemotePwAB();
231 mActiveSyncPort = temp->getRemotePortAB(); 245 mActiveSyncPort = temp->getRemotePortAB();
232 mActiveSyncIP = temp->getRemoteIPAB(); 246 mActiveSyncIP = temp->getRemoteIPAB();
233 } else if ( mTargetApp == KOPI ) { 247 } else if ( mTargetApp == KOPI ) {
234 mPassWordPiSync = temp->getRemotePw(); 248 mPassWordPiSync = temp->getRemotePw();
235 mActiveSyncPort = temp->getRemotePort(); 249 mActiveSyncPort = temp->getRemotePort();
236 mActiveSyncIP = temp->getRemoteIP(); 250 mActiveSyncIP = temp->getRemoteIP();
237 } else { 251 } else {
238 mPassWordPiSync = temp->getRemotePwPWM(); 252 mPassWordPiSync = temp->getRemotePwPWM();
239 mActiveSyncPort = temp->getRemotePortPWM(); 253 mActiveSyncPort = temp->getRemotePortPWM();
240 mActiveSyncIP = temp->getRemoteIPPWM(); 254 mActiveSyncIP = temp->getRemoteIPPWM();
241 } 255 }
242 syncPi(); 256 syncPi();
243 } else 257 } else
244 syncRemote( temp ); 258 syncRemote( temp );
245 259
246 } 260 }
247 } 261 }
248 delete temp; 262 delete temp;
249 setBlockSave(false); 263 setBlockSave(false);
250} 264}
251 265
252void KSyncManager::enableQuick() 266void KSyncManager::enableQuick()
253{ 267{
254 QDialog dia ( 0, "input-dialog", true ); 268 QDialog dia ( 0, "input-dialog", true );
255 QLineEdit lab ( &dia ); 269 QLineEdit lab ( &dia );
256 QVBoxLayout lay( &dia ); 270 QVBoxLayout lay( &dia );
257 lab.setText( mPrefs->mPassiveSyncPort ); 271 lab.setText( mPrefs->mPassiveSyncPort );
258 lay.setMargin(7); 272 lay.setMargin(7);
259 lay.setSpacing(7); 273 lay.setSpacing(7);
260 int po = 9197+mTargetApp; 274 int po = 9197+mTargetApp;
261 QLabel label ( i18n("Port number (Default: %1)").arg(po), &dia ); 275 QLabel label ( i18n("Port number (Default: %1)").arg(po), &dia );
262 lay.addWidget( &label); 276 lay.addWidget( &label);
263 lay.addWidget( &lab); 277 lay.addWidget( &lab);
264 278
265 QLineEdit lepw ( &dia ); 279 QLineEdit lepw ( &dia );
266 lepw.setText( mPrefs->mPassiveSyncPw ); 280 lepw.setText( mPrefs->mPassiveSyncPw );
267 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); 281 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia );
268 lay.addWidget( &label2); 282 lay.addWidget( &label2);
269 lay.addWidget( &lepw); 283 lay.addWidget( &lepw);
270 dia.setFixedSize( 230,80 ); 284 dia.setFixedSize( 230,80 );
271 dia.setCaption( i18n("Enter port for Pi-Sync") ); 285 dia.setCaption( i18n("Enter port for Pi-Sync") );
272 QPushButton pb ( "OK", &dia); 286 QPushButton pb ( "OK", &dia);
273 lay.addWidget( &pb ); 287 lay.addWidget( &pb );
274 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 288 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
275 dia.show(); 289 dia.show();
276 if ( ! dia.exec() ) 290 if ( ! dia.exec() )
277 return; 291 return;
278 dia.hide(); 292 dia.hide();
279 qApp->processEvents(); 293 qApp->processEvents();
280 mPrefs->mPassiveSyncPw = lepw.text(); 294 mPrefs->mPassiveSyncPw = lepw.text();
281 mPrefs->mPassiveSyncPort = lab.text(); 295 mPrefs->mPassiveSyncPort = lab.text();
282 bool ok; 296 bool ok;
283 Q_UINT16 port = mPrefs->mPassiveSyncPort.toUInt(&ok); 297 Q_UINT16 port = mPrefs->mPassiveSyncPort.toUInt(&ok);
284 if ( ! ok ) { 298 if ( ! ok ) {
285 KMessageBox::information( 0, i18n("No valid port")); 299 KMessageBox::information( 0, i18n("No valid port"));
@@ -648,192 +662,222 @@ void KSyncManager::edit_pisync_options()
648} 662}
649void KSyncManager::edit_sync_options() 663void KSyncManager::edit_sync_options()
650{ 664{
651 665
652 QDialog dia( mParent, "dia", true ); 666 QDialog dia( mParent, "dia", true );
653 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 667 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
654 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 668 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
655 QVBoxLayout lay ( &dia ); 669 QVBoxLayout lay ( &dia );
656 lay.setSpacing( 2 ); 670 lay.setSpacing( 2 );
657 lay.setMargin( 3 ); 671 lay.setMargin( 3 );
658 lay.addWidget(&gr); 672 lay.addWidget(&gr);
659 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 673 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
660 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 674 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
661 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 675 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
662 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 676 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
663 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 677 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
664 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 678 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
665 //QRadioButton both( i18n("Take both on conflict"), &gr ); 679 //QRadioButton both( i18n("Take both on conflict"), &gr );
666 QPushButton pb ( "OK", &dia); 680 QPushButton pb ( "OK", &dia);
667 lay.addWidget( &pb ); 681 lay.addWidget( &pb );
668 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 682 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
669 switch ( mSyncAlgoPrefs ) { 683 switch ( mSyncAlgoPrefs ) {
670 case 0: 684 case 0:
671 loc.setChecked( true); 685 loc.setChecked( true);
672 break; 686 break;
673 case 1: 687 case 1:
674 rem.setChecked( true ); 688 rem.setChecked( true );
675 break; 689 break;
676 case 2: 690 case 2:
677 newest.setChecked( true); 691 newest.setChecked( true);
678 break; 692 break;
679 case 3: 693 case 3:
680 ask.setChecked( true); 694 ask.setChecked( true);
681 break; 695 break;
682 case 4: 696 case 4:
683 f_loc.setChecked( true); 697 f_loc.setChecked( true);
684 break; 698 break;
685 case 5: 699 case 5:
686 f_rem.setChecked( true); 700 f_rem.setChecked( true);
687 break; 701 break;
688 case 6: 702 case 6:
689 // both.setChecked( true); 703 // both.setChecked( true);
690 break; 704 break;
691 default: 705 default:
692 break; 706 break;
693 } 707 }
694 if ( dia.exec() ) { 708 if ( dia.exec() ) {
695 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 709 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
696 } 710 }
697 711
698 712
699} 713}
700 714
701QString KSyncManager::getPassword( ) 715QString KSyncManager::getPassword( )
702{ 716{
703 QString retfile = ""; 717 QString retfile = "";
704 QDialog dia ( mParent, "input-dialog", true ); 718 QDialog dia ( mParent, "input-dialog", true );
705 QLineEdit lab ( &dia ); 719 QLineEdit lab ( &dia );
706 lab.setEchoMode( QLineEdit::Password ); 720 lab.setEchoMode( QLineEdit::Password );
707 QVBoxLayout lay( &dia ); 721 QVBoxLayout lay( &dia );
708 lay.setMargin(7); 722 lay.setMargin(7);
709 lay.setSpacing(7); 723 lay.setSpacing(7);
710 lay.addWidget( &lab); 724 lay.addWidget( &lab);
711 dia.setFixedSize( 230,50 ); 725 dia.setFixedSize( 230,50 );
712 dia.setCaption( i18n("Enter password") ); 726 dia.setCaption( i18n("Enter password") );
713 QPushButton pb ( "OK", &dia); 727 QPushButton pb ( "OK", &dia);
714 lay.addWidget( &pb ); 728 lay.addWidget( &pb );
715 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 729 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
716 dia.show(); 730 dia.show();
717 int res = dia.exec(); 731 int res = dia.exec();
718 if ( res ) 732 if ( res )
719 retfile = lab.text(); 733 retfile = lab.text();
720 dia.hide(); 734 dia.hide();
721 qApp->processEvents(); 735 qApp->processEvents();
722 return retfile; 736 return retfile;
723 737
724} 738}
725 739
726 740
727void KSyncManager::confSync() 741void KSyncManager::confSync()
728{ 742{
729 static KSyncPrefsDialog* sp = 0; 743 static KSyncPrefsDialog* sp = 0;
730 if ( ! sp ) { 744 if ( ! sp ) {
731 sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); 745 sp = new KSyncPrefsDialog( mParent, "syncprefs", true );
732 } 746 }
733 sp->usrReadConfig(); 747 sp->usrReadConfig();
734#ifndef DESKTOP_VERSION 748#ifndef DESKTOP_VERSION
735 sp->showMaximized(); 749 sp->showMaximized();
736#else 750#else
737 sp->show(); 751 sp->show();
738#endif 752#endif
739 sp->exec(); 753 sp->exec();
740 mSyncProfileNames = sp->getSyncProfileNames(); 754 mSyncProfileNames = sp->getSyncProfileNames();
741 mLocalMachineName = sp->getLocalMachineName (); 755 mLocalMachineName = sp->getLocalMachineName ();
742 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 756 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
743} 757}
758void KSyncManager::syncKDE()
759{
760 emit save();
761 switch(mTargetApp)
762 {
763 case (KAPI):
764
765 break;
766 case (KOPI):
767 {
768 QString command ="./kdecaldump";
769 system ( command.latin1());
770 if ( syncWithFile( "/tmp/kdedumpall.ics",true ) ) {
771 if ( mWriteBackFile ) {
772 command += " --read";
773 system ( command.latin1());
774 }
775 }
776
777 }
778 break;
779 case (PWMPI):
780
781 break;
782 default:
783 qDebug("KSyncManager::slotSyncMenu: invalid apptype selected");
784 break;
785
786 }
787}
744 788
745void KSyncManager::syncSharp() 789void KSyncManager::syncSharp()
746{ 790{
747 791
748 if ( ! syncExternalApplication("sharp") ) 792 if ( ! syncExternalApplication("sharp") )
749 qDebug("ERROR sync sharp "); 793 qDebug("ERROR sync sharp ");
750} 794}
751 795
752bool KSyncManager::syncExternalApplication(QString resource) 796bool KSyncManager::syncExternalApplication(QString resource)
753{ 797{
754 798
755 emit save(); 799 emit save();
756 800
757 if ( mAskForPreferences ) 801 if ( mAskForPreferences )
758 edit_sync_options(); 802 edit_sync_options();
759 803
760 qDebug("Sync extern %s", resource.latin1()); 804 qDebug("Sync extern %s", resource.latin1());
761 805
762 bool syncOK = mImplementation->syncExternal(this, resource); 806 bool syncOK = mImplementation->syncExternal(this, resource);
763 807
764 return syncOK; 808 return syncOK;
765 809
766} 810}
767 811
768void KSyncManager::syncPhone() 812void KSyncManager::syncPhone()
769{ 813{
770 814
771 syncExternalApplication("phone"); 815 syncExternalApplication("phone");
772 816
773} 817}
774 818
775void KSyncManager::showProgressBar(int percentage, QString caption, int total) 819void KSyncManager::showProgressBar(int percentage, QString caption, int total)
776{ 820{
777 if (!bar->isVisible()) 821 if (!bar->isVisible())
778 { 822 {
779 bar->setCaption (caption); 823 bar->setCaption (caption);
780 bar->setTotalSteps ( total ) ; 824 bar->setTotalSteps ( total ) ;
781 825
782 bar->show(); 826 bar->show();
783 } 827 }
784 828
785 bar->setProgress( percentage ); 829 bar->setProgress( percentage );
786} 830}
787 831
788void KSyncManager::hideProgressBar() 832void KSyncManager::hideProgressBar()
789{ 833{
790 bar->hide(); 834 bar->hide();
791} 835}
792 836
793bool KSyncManager::isProgressBarCanceled() 837bool KSyncManager::isProgressBarCanceled()
794{ 838{
795 return !bar->isVisible(); 839 return !bar->isVisible();
796} 840}
797 841
798QString KSyncManager::syncFileName() 842QString KSyncManager::syncFileName()
799{ 843{
800 844
801 QString fn = "tempfile"; 845 QString fn = "tempfile";
802 switch(mTargetApp) 846 switch(mTargetApp)
803 { 847 {
804 case (KAPI): 848 case (KAPI):
805 fn = "tempsyncab.vcf"; 849 fn = "tempsyncab.vcf";
806 break; 850 break;
807 case (KOPI): 851 case (KOPI):
808 fn = "tempsynccal.ics"; 852 fn = "tempsynccal.ics";
809 break; 853 break;
810 case (PWMPI): 854 case (PWMPI):
811 fn = "tempsyncpw.pwm"; 855 fn = "tempsyncpw.pwm";
812 break; 856 break;
813 default: 857 default:
814 break; 858 break;
815 } 859 }
816#ifdef _WIN32_ 860#ifdef _WIN32_
817 return locateLocal( "tmp", fn ); 861 return locateLocal( "tmp", fn );
818#else 862#else
819 return (QString( "/tmp/" )+ fn ); 863 return (QString( "/tmp/" )+ fn );
820#endif 864#endif
821} 865}
822 866
823void KSyncManager::syncPi() 867void KSyncManager::syncPi()
824{ 868{
825 qApp->processEvents(); 869 qApp->processEvents();
826 if ( mAskForPreferences ) 870 if ( mAskForPreferences )
827 edit_pisync_options(); 871 edit_pisync_options();
828 bool ok; 872 bool ok;
829 Q_UINT16 port = mActiveSyncPort.toUInt(&ok); 873 Q_UINT16 port = mActiveSyncPort.toUInt(&ok);
830 if ( ! ok ) { 874 if ( ! ok ) {
831 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") ); 875 mParent->topLevelWidget()->setCaption( i18n("Sorry, no valid port.Syncing cancelled.") );
832 return; 876 return;
833 } 877 }
834 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this ); 878 KCommandSocket* commandSocket = new KCommandSocket( mPassWordPiSync, port, mActiveSyncIP, this );
835 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 879 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
836 mParent->topLevelWidget()->setCaption( i18n("Sending request for remote file ...") ); 880 mParent->topLevelWidget()->setCaption( i18n("Sending request for remote file ...") );
837 commandSocket->readFile( syncFileName() ); 881 commandSocket->readFile( syncFileName() );
838} 882}
839 883
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 9094aac..7d5b05e 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -77,133 +77,134 @@ class KCommandSocket : public QObject
77 enum state { successR, errorR, successW, errorW, errorTO, quiet }; 77 enum state { successR, errorR, successW, errorW, errorTO, quiet };
78 KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 ); 78 KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, const char * name=0 );
79 void readFile( QString ); 79 void readFile( QString );
80 void writeFile( QString ); 80 void writeFile( QString );
81 void sendStop(); 81 void sendStop();
82 82
83 signals: 83 signals:
84 void commandFinished( KCommandSocket*, int ); 84 void commandFinished( KCommandSocket*, int );
85 private slots: 85 private slots:
86 void startReadFileFromSocket(); 86 void startReadFileFromSocket();
87 void readFileFromSocket(); 87 void readFileFromSocket();
88 void deleteSocket(); 88 void deleteSocket();
89 void writeFileToSocket(); 89 void writeFileToSocket();
90 private : 90 private :
91 QSocket* mSocket; 91 QSocket* mSocket;
92 QString mPassWord; 92 QString mPassWord;
93 Q_UINT16 mPort; 93 Q_UINT16 mPort;
94 QString mHost; 94 QString mHost;
95 QString mFileName; 95 QString mFileName;
96 QTimer* mTimerSocket; 96 QTimer* mTimerSocket;
97 int mRetVal; 97 int mRetVal;
98 QTime mTime; 98 QTime mTime;
99 QString mFileString; 99 QString mFileString;
100 bool mFirst; 100 bool mFirst;
101}; 101};
102 102
103 103
104class KSyncManager : public QObject 104class KSyncManager : public QObject
105{ 105{
106 Q_OBJECT 106 Q_OBJECT
107 107
108 public: 108 public:
109 enum TargetApp { 109 enum TargetApp {
110 KOPI = 0, 110 KOPI = 0,
111 KAPI = 1, 111 KAPI = 1,
112 PWMPI = 2 }; 112 PWMPI = 2 };
113 113
114 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu); 114 KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu);
115 ~KSyncManager() ; 115 ~KSyncManager() ;
116 116
117 void multiSync( bool askforPrefs ); 117 void multiSync( bool askforPrefs );
118 bool blockSave() { return mBlockSaveFlag; } 118 bool blockSave() { return mBlockSaveFlag; }
119 void setBlockSave(bool sa) { mBlockSaveFlag = sa; } 119 void setBlockSave(bool sa) { mBlockSaveFlag = sa; }
120 void setDefaultFileName( QString s) { mDefFileName = s ;} 120 void setDefaultFileName( QString s) { mDefFileName = s ;}
121 QString defaultFileName() { return mDefFileName ;} 121 QString defaultFileName() { return mDefFileName ;}
122 QString syncFileName(); 122 QString syncFileName();
123 123
124 QString getCurrentSyncDevice() { return mCurrentSyncDevice; } 124 QString getCurrentSyncDevice() { return mCurrentSyncDevice; }
125 QString getCurrentSyncName() { return mCurrentSyncName; } 125 QString getCurrentSyncName() { return mCurrentSyncName; }
126 126
127 void showProgressBar(int percentage, QString caption = QString::null, int total=100); 127 void showProgressBar(int percentage, QString caption = QString::null, int total=100);
128 void hideProgressBar(); 128 void hideProgressBar();
129 bool isProgressBarCanceled(); 129 bool isProgressBarCanceled();
130 130
131 // sync stuff 131 // sync stuff
132 QString mLocalMachineName; 132 QString mLocalMachineName;
133 QStringList mExternSyncProfiles; 133 QStringList mExternSyncProfiles;
134 QStringList mSyncProfileNames; 134 QStringList mSyncProfileNames;
135 bool mAskForPreferences; 135 bool mAskForPreferences;
136 bool mShowSyncSummary; 136 bool mShowSyncSummary;
137 bool mIsKapiFile; 137 bool mIsKapiFile;
138 bool mWriteBackExistingOnly; 138 bool mWriteBackExistingOnly;
139 int mSyncAlgoPrefs; 139 int mSyncAlgoPrefs;
140 bool mWriteBackFile; 140 bool mWriteBackFile;
141 int mWriteBackInFuture; 141 int mWriteBackInFuture;
142 QString mPhoneDevice; 142 QString mPhoneDevice;
143 QString mPhoneConnection; 143 QString mPhoneConnection;
144 QString mPhoneModel; 144 QString mPhoneModel;
145 QString mPassWordPiSync; 145 QString mPassWordPiSync;
146 QString mActiveSyncPort; 146 QString mActiveSyncPort;
147 QString mActiveSyncIP ; 147 QString mActiveSyncIP ;
148 148
149 signals: 149 signals:
150 void save(); 150 void save();
151 void request_file(); 151 void request_file();
152 void getFile( bool ); 152 void getFile( bool );
153 153
154 public slots: 154 public slots:
155 void slotSyncMenu( int ); 155 void slotSyncMenu( int );
156 void deleteCommandSocket(KCommandSocket*s, int state); 156 void deleteCommandSocket(KCommandSocket*s, int state);
157 void readFileFromSocket(); 157 void readFileFromSocket();
158 void fillSyncMenu(); 158 void fillSyncMenu();
159 159
160 private: 160 private:
161 void syncPi(); 161 void syncPi();
162 KServerSocket * mServerSocket; 162 KServerSocket * mServerSocket;
163 void enableQuick(); 163 void enableQuick();
164 KPimPrefs* mPrefs; 164 KPimPrefs* mPrefs;
165 QString mDefFileName; 165 QString mDefFileName;
166 QString mCurrentSyncDevice; 166 QString mCurrentSyncDevice;
167 QString mCurrentSyncName; 167 QString mCurrentSyncName;
168 void quickSyncLocalFile(); 168 void quickSyncLocalFile();
169 bool syncWithFile( QString fn , bool quick ); 169 bool syncWithFile( QString fn , bool quick );
170 void syncLocalFile(); 170 void syncLocalFile();
171 void syncPhone(); 171 void syncPhone();
172 void syncSharp(); 172 void syncSharp();
173 void syncKDE();
173 bool syncExternalApplication(QString); 174 bool syncExternalApplication(QString);
174 int mCurrentSyncProfile ; 175 int mCurrentSyncProfile ;
175 void syncRemote( KSyncProfile* prof, bool ask = true); 176 void syncRemote( KSyncProfile* prof, bool ask = true);
176 void edit_sync_options(); 177 void edit_sync_options();
177 void edit_pisync_options(); 178 void edit_pisync_options();
178 int ringSync(); 179 int ringSync();
179 QString getPassword( ); 180 QString getPassword( );
180 181
181 private slots: 182 private slots:
182 void confSync(); 183 void confSync();
183 private: 184 private:
184 bool mBlockSaveFlag; 185 bool mBlockSaveFlag;
185 QWidget* mParent; 186 QWidget* mParent;
186 KSyncInterface* mImplementation; 187 KSyncInterface* mImplementation;
187 TargetApp mTargetApp; 188 TargetApp mTargetApp;
188 QPopupMenu* mSyncMenu; 189 QPopupMenu* mSyncMenu;
189 QProgressBar* bar; 190 QProgressBar* bar;
190 191
191}; 192};
192 193
193 194
194class KSyncInterface 195class KSyncInterface
195{ 196{
196 public : 197 public :
197 virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0; 198 virtual bool sync(KSyncManager* manager, QString filename, int mode) = 0;
198 virtual bool syncExternal(KSyncManager* manager, QString resource) 199 virtual bool syncExternal(KSyncManager* manager, QString resource)
199 { 200 {
200 // empty implementation, because some syncable applications do not 201 // empty implementation, because some syncable applications do not
201 // have an external(sharpdtm) syncmode, like pwmanager. 202 // have an external(sharpdtm) syncmode, like pwmanager.
202 return false; 203 return false;
203 } 204 }
204 205
205 206
206}; 207};
207 208
208 209
209#endif 210#endif