summaryrefslogtreecommitdiffabout
path: root/libkdepim
authorzautrix <zautrix>2005-11-25 18:35:16 (UTC)
committer zautrix <zautrix>2005-11-25 18:35:16 (UTC)
commit231e6f8215bbc4f7e301965f8f3c650e44586ec9 (patch) (unidiff)
tree4c221ec7ac9909b5f0d192c68558739b4dcc1f48 /libkdepim
parent279e183c0325cd9565605f60af0215bb9bfdc825 (diff)
downloadkdepimpi-231e6f8215bbc4f7e301965f8f3c650e44586ec9.zip
kdepimpi-231e6f8215bbc4f7e301965f8f3c650e44586ec9.tar.gz
kdepimpi-231e6f8215bbc4f7e301965f8f3c650e44586ec9.tar.bz2
sync
Diffstat (limited to 'libkdepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp27
-rw-r--r--libkdepim/ksyncprefsdialog.cpp16
-rw-r--r--libkdepim/ksyncprofile.cpp2
3 files changed, 29 insertions, 16 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index 719d80b..61a9899 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1,1763 +1,1772 @@
1/* 1/*
2 This file is part of KDE-Pim/Pi. 2 This file is part of KDE-Pim/Pi.
3 Copyright (c) 2004 Ulf Schenk 3 Copyright (c) 2004 Ulf Schenk
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
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#include <qcheckbox.h> 51#include <qcheckbox.h>
52#include <qapplication.h> 52#include <qapplication.h>
53 53
54#include <klocale.h> 54#include <klocale.h>
55#include <kglobal.h> 55#include <kglobal.h>
56#include <kconfig.h> 56#include <kconfig.h>
57#include <kfiledialog.h> 57#include <kfiledialog.h>
58 58
59QDateTime KSyncManager::mRequestedSyncEvent; 59QDateTime KSyncManager::mRequestedSyncEvent;
60 60
61 61
62KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu) 62KSyncManager::KSyncManager(QWidget* parent, KSyncInterface* implementation, TargetApp ta, KPimPrefs* prefs, QPopupMenu* syncmenu)
63 : QObject(), mPrefs(prefs ), mParent(parent),mImplementation(implementation), mTargetApp(ta), mSyncMenu(syncmenu) 63 : QObject(), mPrefs(prefs ), mParent(parent),mImplementation(implementation), mTargetApp(ta), mSyncMenu(syncmenu)
64{ 64{
65 mServerSocket = 0; 65 mServerSocket = 0;
66 bar = new QProgressBar ( 1, 0 ); 66 bar = new QProgressBar ( 1, 0 );
67 bar->setCaption (""); 67 bar->setCaption ("");
68 mWriteBackInPast = 2; 68 mWriteBackInPast = 2;
69 69
70 70
71} 71}
72 72
73KSyncManager::~KSyncManager() 73KSyncManager::~KSyncManager()
74{ 74{
75 delete bar; 75 delete bar;
76} 76}
77 77
78void KSyncManager::setDefaultFileName( QString s) 78void KSyncManager::setDefaultFileName( QString s)
79{ 79{
80 mDefFileName = s ; 80 mDefFileName = s ;
81 if ( mPrefs->mPassiveSyncAutoStart ) 81 if ( mPrefs->mPassiveSyncAutoStart )
82 enableQuick( false ); 82 enableQuick( false );
83} 83}
84 84
85void KSyncManager::fillSyncMenu() 85void KSyncManager::fillSyncMenu()
86{ 86{
87 if ( mSyncMenu->count() ) 87 if ( mSyncMenu->count() )
88 mSyncMenu->clear(); 88 mSyncMenu->clear();
89 89
90 mSyncMenu->insertItem( i18n("Configure..."), 0 ); 90 mSyncMenu->insertItem( i18n("Configure..."), 0 );
91 mSyncMenu->insertSeparator(); 91 mSyncMenu->insertSeparator();
92 QPopupMenu *clearMenu = new QPopupMenu ( mSyncMenu ); 92 QPopupMenu *clearMenu = new QPopupMenu ( mSyncMenu );
93 mSyncMenu->insertItem( i18n("Remove sync info"),clearMenu, 5000 ); 93 mSyncMenu->insertItem( i18n("Remove sync info"),clearMenu, 5000 );
94 clearMenu->insertItem( i18n("For all profiles"), 1 ); 94 clearMenu->insertItem( i18n("For all profiles"), 1 );
95 clearMenu->insertSeparator(); 95 clearMenu->insertSeparator();
96 connect ( clearMenu, SIGNAL( activated ( int ) ), this, SLOT (slotClearMenu( int ) ) ); 96 connect ( clearMenu, SIGNAL( activated ( int ) ), this, SLOT (slotClearMenu( int ) ) );
97 mSyncMenu->insertSeparator(); 97 mSyncMenu->insertSeparator();
98 if ( mServerSocket == 0 ) { 98 if ( mServerSocket == 0 ) {
99 mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 ); 99 mSyncMenu->insertItem( i18n("Enable Pi-Sync"), 2 );
100 } else { 100 } else {
101 mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 ); 101 mSyncMenu->insertItem( i18n("Disable Pi-Sync"), 3 );
102 } 102 }
103 mSyncMenu->insertSeparator(); 103 mSyncMenu->insertSeparator();
104 mSyncMenu->insertItem( i18n("Multiple sync"), 1 ); 104 mSyncMenu->insertItem( i18n("Multiple sync"), 1 );
105 mSyncMenu->insertSeparator(); 105 mSyncMenu->insertSeparator();
106 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 106 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
107 config.setGroup("General"); 107 config.setGroup("General");
108 QStringList prof = config.readListEntry("SyncProfileNames"); 108 QStringList prof = config.readListEntry("SyncProfileNames");
109 mLocalMachineName = config.readEntry("LocalMachineName","undefined"); 109 mLocalMachineName = config.readEntry("LocalMachineName","undefined");
110 if ( prof.count() < 2 ) { 110 if ( prof.count() < 2 ) {
111 prof.clear(); 111 prof.clear();
112 QString externalName; 112 QString externalName;
113#ifdef DESKTOP_VERSION 113#ifdef DESKTOP_VERSION
114#ifdef _WIN32_ 114#ifdef _WIN32_
115 externalName = "OutLook(not_implemented)"; 115 externalName = "OutLook(not_implemented)";
116#else 116#else
117 externalName = "KDE_Desktop"; 117 externalName = "KDE_Desktop";
118#endif 118#endif
119#else 119#else
120 externalName = "Sharp_DTM"; 120 externalName = "Sharp_DTM";
121#endif 121#endif
122 prof << externalName; 122 prof << externalName;
123 prof << i18n("Local_file"); 123 prof << i18n("Local_file");
124 prof << i18n("Last_file"); 124 prof << i18n("Last_file");
125 KSyncProfile* temp = new KSyncProfile (); 125 KSyncProfile* temp = new KSyncProfile ();
126 temp->setName( prof[0] ); 126 temp->setName( prof[0] );
127 temp->writeConfig(&config); 127 temp->writeConfig(&config);
128 temp->setName( prof[1] ); 128 temp->setName( prof[1] );
129 temp->writeConfig(&config); 129 temp->writeConfig(&config);
130 temp->setName( prof[2] ); 130 temp->setName( prof[2] );
131 temp->writeConfig(&config); 131 temp->writeConfig(&config);
132 config.setGroup("General"); 132 config.setGroup("General");
133 config.writeEntry("SyncProfileNames",prof); 133 config.writeEntry("SyncProfileNames",prof);
134 config.writeEntry("ExternSyncProfiles",externalName); 134 config.writeEntry("ExternSyncProfiles",externalName);
135 config.sync(); 135 config.sync();
136 delete temp; 136 delete temp;
137 } 137 }
138 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles"); 138 mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
139 mSyncProfileNames = prof; 139 mSyncProfileNames = prof;
140 unsigned int i; 140 unsigned int i;
141 for ( i = 0; i < prof.count(); ++i ) { 141 for ( i = 0; i < prof.count(); ++i ) {
142 QString insertText = prof[i]; 142 QString insertText = prof[i];
143 if ( i == 0 ) { 143 if ( i == 0 ) {
144#ifdef DESKTOP_VERSION 144#ifdef DESKTOP_VERSION
145#ifdef _WIN32_ 145#ifdef _WIN32_
146 insertText = "OutLook(not_implemented)"; 146 insertText = "OutLook(not_implemented)";
147#else 147#else
148 insertText = "KDE_Desktop"; 148 insertText = "KDE_Desktop";
149#endif 149#endif
150#else 150#else
151 insertText = "Sharp_DTM"; 151 insertText = "Sharp_DTM";
152#endif 152#endif
153 } 153 }
154 mSyncMenu->insertItem( insertText, 1000+i ); 154 mSyncMenu->insertItem( insertText, 1000+i );
155 clearMenu->insertItem( insertText, 1000+i ); 155 clearMenu->insertItem( insertText, 1000+i );
156 if ( i == 2 ) 156 if ( i == 2 )
157 mSyncMenu->insertSeparator(); 157 mSyncMenu->insertSeparator();
158 } 158 }
159 QDir app_dir; 159 QDir app_dir;
160 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available 160 //US do not display SharpDTM if app is pwmpi, or no sharpfiles available
161 if ( mTargetApp == PWMPI) { 161 if ( mTargetApp == PWMPI) {
162 mSyncMenu->removeItem( 1000 ); 162 mSyncMenu->removeItem( 1000 );
163 clearMenu->removeItem( 1000 ); 163 clearMenu->removeItem( 1000 );
164 } 164 }
165#ifndef DESKTOP_VERSION 165#ifndef DESKTOP_VERSION
166 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 166 else if (!app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
167 mSyncMenu->removeItem( 1000 ); 167 mSyncMenu->removeItem( 1000 );
168 clearMenu->removeItem( 1000 ); 168 clearMenu->removeItem( 1000 );
169 } 169 }
170#endif 170#endif
171 mSyncMenu->removeItem( 1002 ); 171 mSyncMenu->removeItem( 1002 );
172 clearMenu->removeItem( 1002 ); 172 clearMenu->removeItem( 1002 );
173} 173}
174void KSyncManager::slotClearMenu( int action ) 174void KSyncManager::slotClearMenu( int action )
175{ 175{
176 QString syncDevice; 176 QString syncDevice;
177 if ( action > 999 ) { 177 if ( action > 999 ) {
178 syncDevice = mSyncProfileNames[action - 1000] ; 178 syncDevice = mSyncProfileNames[action - 1000] ;
179 } 179 }
180 180
181 181
182 182
183 int result = 0; 183 int result = 0;
184 QString sd; 184 QString sd;
185 if ( syncDevice.isEmpty() ) 185 if ( syncDevice.isEmpty() )
186 sd = i18n("Do you want to\nclear all sync info\nof all profiles?"); 186 sd = i18n("Do you want to\nclear all sync info\nof all profiles?");
187 else 187 else
188 sd = i18n("Do you want to\nclear the sync\ninfo of profile\n%1?\n"). arg( syncDevice ); 188 sd = i18n("Do you want to\nclear the sync\ninfo of profile\n%1?\n"). arg( syncDevice );
189 189
190 result = QMessageBox::warning( mParent, i18n("Warning!"),sd,i18n("OK"), i18n("Cancel"), 0, 190 result = QMessageBox::warning( mParent, i18n("Warning!"),sd,i18n("OK"), i18n("Cancel"), 0,
191 0, 1 ); 191 0, 1 );
192 if ( result ) 192 if ( result )
193 return; 193 return;
194 mImplementation->removeSyncInfo( syncDevice ); 194 mImplementation->removeSyncInfo( syncDevice );
195} 195}
196void KSyncManager::slotSyncMenu( int action ) 196void KSyncManager::slotSyncMenu( int action )
197{ 197{
198 qDebug("KSM::syncaction %d ", action); 198 qDebug("KSM::syncaction %d ", action);
199 mCurrentResourceLocal = ""; 199 mCurrentResourceLocal = "";
200 emit multiResourceSyncStart( false ); 200 emit multiResourceSyncStart( false );
201 if ( action == 5000 ) 201 if ( action == 5000 )
202 return; 202 return;
203 mSyncWithDesktop = false; 203 mSyncWithDesktop = false;
204 if ( action == 0 ) { 204 if ( action == 0 ) {
205 205
206 // seems to be a Qt2 event handling bug 206 // seems to be a Qt2 event handling bug
207 // syncmenu.clear causes a segfault at first time 207 // syncmenu.clear causes a segfault at first time
208 // when we call it after the main event loop, it is ok 208 // when we call it after the main event loop, it is ok
209 // same behaviour when calling OM/Pi via QCOP for the first time 209 // same behaviour when calling OM/Pi via QCOP for the first time
210 QTimer::singleShot ( 1, this, SLOT ( confSync() ) ); 210 QTimer::singleShot ( 1, this, SLOT ( confSync() ) );
211 //confSync(); 211 //confSync();
212 212
213 return; 213 return;
214 } 214 }
215 if ( action == 1 ) { 215 if ( action == 1 ) {
216 multiSync( true ); 216 multiSync( true );
217 return; 217 return;
218 } 218 }
219 if ( action == 2 ) { 219 if ( action == 2 ) {
220 enableQuick(); 220 enableQuick();
221 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 221 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
222 return; 222 return;
223 } 223 }
224 if ( action == 3 ) { 224 if ( action == 3 ) {
225 delete mServerSocket; 225 delete mServerSocket;
226 mServerSocket = 0; 226 mServerSocket = 0;
227 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 227 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
228 return; 228 return;
229 } 229 }
230 230
231 if (blockSave()) 231 if (blockSave())
232 return; 232 return;
233 233
234 setBlockSave(true); 234 setBlockSave(true);
235 bool silent = false; 235 bool silent = false;
236 if ( action == 999 ) { 236 if ( action == 999 ) {
237 //special mode for silent syncing 237 //special mode for silent syncing
238 action = 1000; 238 action = 1000;
239 silent = true; 239 silent = true;
240 } 240 }
241 241
242 mCurrentSyncProfile = action - 1000 ; 242 mCurrentSyncProfile = action - 1000 ;
243 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ; 243 mCurrentSyncDevice = mSyncProfileNames[mCurrentSyncProfile] ;
244 mCurrentSyncName = mLocalMachineName ; 244 mCurrentSyncName = mLocalMachineName ;
245 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 245 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
246 KSyncProfile* temp = new KSyncProfile (); 246 KSyncProfile* temp = new KSyncProfile ();
247 temp->setName(mSyncProfileNames[mCurrentSyncProfile]); 247 temp->setName(mSyncProfileNames[mCurrentSyncProfile]);
248 temp->readConfig(&config); 248 temp->readConfig(&config);
249 if (silent) { 249 if (silent) {
250 mAskForPreferences = false; 250 mAskForPreferences = false;
251 mShowSyncSummary = false; 251 mShowSyncSummary = false;
252 mWriteBackFile = true; 252 mWriteBackFile = true;
253 mSyncAlgoPrefs = 2;// take newest 253 mSyncAlgoPrefs = 2;// take newest
254 } 254 }
255 else { 255 else {
256 mAskForPreferences = temp->getAskForPreferences(); 256 mAskForPreferences = temp->getAskForPreferences();
257 mShowSyncSummary = temp->getShowSummaryAfterSync(); 257 mShowSyncSummary = temp->getShowSummaryAfterSync();
258 mWriteBackFile = temp->getWriteBackFile(); 258 mWriteBackFile = temp->getWriteBackFile();
259 mSyncAlgoPrefs = temp->getSyncPrefs(); 259 mSyncAlgoPrefs = temp->getSyncPrefs();
260 } 260 }
261 mWriteBackExistingOnly = temp->getWriteBackExisting(); 261 mWriteBackExistingOnly = temp->getWriteBackExisting();
262 mIsKapiFile = temp->getIsKapiFile(); 262 mIsKapiFile = temp->getIsKapiFile();
263 mWriteBackInFuture = 0; 263 mWriteBackInFuture = 0;
264 if ( temp->getWriteBackFuture() ) { 264 if ( temp->getWriteBackFuture() ) {
265 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 265 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
266 mWriteBackInPast = temp->getWriteBackPastWeeks( ); 266 mWriteBackInPast = temp->getWriteBackPastWeeks( );
267 } 267 }
268 mFilterInCal = temp->getFilterInCal(); 268 mFilterInCal = temp->getFilterInCal();
269 mFilterOutCal = temp->getFilterOutCal(); 269 mFilterOutCal = temp->getFilterOutCal();
270 mFilterInAB = temp->getFilterInAB(); 270 mFilterInAB = temp->getFilterInAB();
271 mFilterOutAB = temp->getFilterOutAB(); 271 mFilterOutAB = temp->getFilterOutAB();
272 272
273 if ( action == 1000 ) { 273 if ( action == 1000 ) {
274 mIsKapiFile = false; 274 mIsKapiFile = false;
275#ifdef DESKTOP_VERSION 275#ifdef DESKTOP_VERSION
276 syncKDE(); 276 syncKDE();
277#else 277#else
278 syncSharp(); 278 syncSharp();
279#endif 279#endif
280 280
281 } else if ( action == 1001 ) { 281 } else if ( action == 1001 ) {
282 syncLocalFile(); 282 syncLocalFile();
283 283
284 } else if ( action == 1002 ) { 284 } else if ( action == 1002 ) {
285 mWriteBackFile = false; 285 mWriteBackFile = false;
286 mAskForPreferences = false; 286 mAskForPreferences = false;
287 mShowSyncSummary = false; 287 mShowSyncSummary = false;
288 mSyncAlgoPrefs = 3; 288 mSyncAlgoPrefs = 3;
289 quickSyncLocalFile(); 289 quickSyncLocalFile();
290 290
291 } else if ( action >= 1003 ) { 291 } else if ( action >= 1003 ) {
292 if ( temp->getIsLocalFileSync() ) { 292 if ( temp->getIsLocalFileSync() ) {
293 switch(mTargetApp) 293 switch(mTargetApp)
294 { 294 {
295 case (KAPI): 295 case (KAPI):
296 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 296 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
297 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 297 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
298 break; 298 break;
299 case (KOPI): 299 case (KOPI):
300 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 300 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
301 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 301 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
302 break; 302 break;
303 case (PWMPI): 303 case (PWMPI):
304 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 304 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
305 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 305 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
306 break; 306 break;
307 default: 307 default:
308 qDebug("KSM::slotSyncMenu: invalid apptype selected"); 308 qDebug("KSM::slotSyncMenu: invalid apptype selected");
309 break; 309 break;
310 310
311 } 311 }
312 } else { 312 } else {
313 if ( temp->getIsPhoneSync() ) { 313 if ( temp->getIsPhoneSync() ) {
314 mPhoneDevice = temp->getPhoneDevice( ) ; 314 mPhoneDevice = temp->getPhoneDevice( ) ;
315 mPhoneConnection = temp->getPhoneConnection( ); 315 mPhoneConnection = temp->getPhoneConnection( );
316 mPhoneModel = temp->getPhoneModel( ); 316 mPhoneModel = temp->getPhoneModel( );
317 syncPhone(); 317 syncPhone();
318 } else if ( temp->getIsPiSync()|| temp->getIsPiSyncSpec()) { 318 } else if ( temp->getIsPiSync()|| temp->getIsPiSyncSpec()) {
319 mSpecificResources.clear(); 319 mSpecificResources.clear();
320 if ( mTargetApp == KAPI ) { 320 if ( mTargetApp == KAPI ) {
321 mPassWordPiSync = temp->getRemotePwAB(); 321 mPassWordPiSync = temp->getRemotePwAB();
322 mActiveSyncPort = temp->getRemotePortAB(); 322 mActiveSyncPort = temp->getRemotePortAB();
323 mActiveSyncIP = temp->getRemoteIPAB(); 323 mActiveSyncIP = temp->getRemoteIPAB();
324 } else if ( mTargetApp == KOPI ) { 324 } else if ( mTargetApp == KOPI ) {
325 if ( temp->getIsPiSyncSpec() ) 325 if ( temp->getIsPiSyncSpec() )
326 mSpecificResources = QStringList::split( ":", temp->getResSpecKopi() ); 326 mSpecificResources = QStringList::split( ":", temp->getResSpecKopi(),true );
327 mPassWordPiSync = temp->getRemotePw(); 327 mPassWordPiSync = temp->getRemotePw();
328 mActiveSyncPort = temp->getRemotePort(); 328 mActiveSyncPort = temp->getRemotePort();
329 mActiveSyncIP = temp->getRemoteIP(); 329 mActiveSyncIP = temp->getRemoteIP();
330 } else { 330 } else {
331 mPassWordPiSync = temp->getRemotePwPWM(); 331 mPassWordPiSync = temp->getRemotePwPWM();
332 mActiveSyncPort = temp->getRemotePortPWM(); 332 mActiveSyncPort = temp->getRemotePortPWM();
333 mActiveSyncIP = temp->getRemoteIPPWM(); 333 mActiveSyncIP = temp->getRemoteIPPWM();
334 } 334 }
335 syncPi(); 335 syncPi();
336 while ( !mPisyncFinished ) { 336 while ( !mPisyncFinished ) {
337 //qDebug("waiting "); 337 //qDebug("waiting ");
338 qApp->processEvents(); 338 qApp->processEvents();
339 } 339 }
340 } else 340 } else
341 syncRemote( temp ); 341 syncRemote( temp );
342 342
343 } 343 }
344 } 344 }
345 delete temp; 345 delete temp;
346 setBlockSave(false); 346 setBlockSave(false);
347} 347}
348 348
349void KSyncManager::enableQuick( bool ask ) 349void KSyncManager::enableQuick( bool ask )
350{ 350{
351 bool autoStart; 351 bool autoStart;
352 bool changed = false; 352 bool changed = false;
353 if ( ask ) { 353 if ( ask ) {
354 QDialog dia ( 0, "input-dialog", true ); 354 QDialog dia ( 0, "input-dialog", true );
355 QLineEdit lab ( &dia ); 355 QLineEdit lab ( &dia );
356 QVBoxLayout lay( &dia ); 356 QVBoxLayout lay( &dia );
357 lab.setText( mPrefs->mPassiveSyncPort ); 357 lab.setText( mPrefs->mPassiveSyncPort );
358 lay.setMargin(7); 358 lay.setMargin(7);
359 lay.setSpacing(7); 359 lay.setSpacing(7);
360 int po = 9197+mTargetApp; 360 int po = 9197+mTargetApp;
361 QLabel label ( i18n("Port number (Default: %1)\nValid range from 1 to 65535").arg(po), &dia ); 361 QLabel label ( i18n("Port number (Default: %1)\nValid range from 1 to 65535").arg(po), &dia );
362 lay.addWidget( &label); 362 lay.addWidget( &label);
363 lay.addWidget( &lab); 363 lay.addWidget( &lab);
364 364
365 QLineEdit lepw ( &dia ); 365 QLineEdit lepw ( &dia );
366 lepw.setText( mPrefs->mPassiveSyncPw ); 366 lepw.setText( mPrefs->mPassiveSyncPw );
367 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia ); 367 QLabel label2 ( i18n("Password to enable\naccess from remote:"), &dia );
368 lay.addWidget( &label2); 368 lay.addWidget( &label2);
369 lay.addWidget( &lepw); 369 lay.addWidget( &lepw);
370 QCheckBox autostart(i18n("Automatically start\nat application startup"), &dia ); 370 QCheckBox autostart(i18n("Automatically start\nat application startup"), &dia );
371 lay.addWidget( &autostart); 371 lay.addWidget( &autostart);
372 autostart.setChecked( mPrefs->mPassiveSyncAutoStart ); 372 autostart.setChecked( mPrefs->mPassiveSyncAutoStart );
373#ifdef DESKTOP_VERSION 373#ifdef DESKTOP_VERSION
374#ifdef _WIN32_ 374#ifdef _WIN32_
375 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia ); 375 QCheckBox syncdesktop( i18n("Automatically sync with Outlook\nwhen receiving sync request"),&dia );
376 syncdesktop.hide();// not implemented! 376 syncdesktop.hide();// not implemented!
377#else 377#else
378 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia ); 378 QCheckBox syncdesktop( i18n("Automatically sync with KDE-Desktop\nwhen receiving sync request"),&dia );
379#endif 379#endif
380 lay.addWidget( &syncdesktop); 380 lay.addWidget( &syncdesktop);
381#else 381#else
382 mPrefs->mPassiveSyncWithDesktop = false; 382 mPrefs->mPassiveSyncWithDesktop = false;
383 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia ); 383 QCheckBox syncdesktop( i18n("Automatically sync\nwith KDE-Desktop"),&dia );
384 syncdesktop.hide(); 384 syncdesktop.hide();
385#endif 385#endif
386 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop ); 386 syncdesktop.setChecked( mPrefs->mPassiveSyncWithDesktop );
387 387
388 QPushButton pb ( "OK", &dia); 388 QPushButton pb ( "OK", &dia);
389 lay.addWidget( &pb ); 389 lay.addWidget( &pb );
390 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 390 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
391 dia.resize( 230,120 ); 391 dia.resize( 230,120 );
392 dia.setCaption( i18n("Enter port for Pi-Sync") ); 392 dia.setCaption( i18n("Enter port for Pi-Sync") );
393 dia.show(); 393 dia.show();
394#ifndef DESKTOP_VERSION 394#ifndef DESKTOP_VERSION
395 int dw = QApplication::desktop()->width(); 395 int dw = QApplication::desktop()->width();
396 int dh = QApplication::desktop()->height(); 396 int dh = QApplication::desktop()->height();
397 dia.move( (dw-dia.width())/2, (dh - dia.height() )/2 ); 397 dia.move( (dw-dia.width())/2, (dh - dia.height() )/2 );
398#endif 398#endif
399 if ( ! dia.exec() ) 399 if ( ! dia.exec() )
400 return; 400 return;
401 dia.hide(); 401 dia.hide();
402 qApp->processEvents(); 402 qApp->processEvents();
403 if ( mPrefs->mPassiveSyncPw != lepw.text() ) { 403 if ( mPrefs->mPassiveSyncPw != lepw.text() ) {
404 changed = true; 404 changed = true;
405 mPrefs->mPassiveSyncPw = lepw.text(); 405 mPrefs->mPassiveSyncPw = lepw.text();
406 } 406 }
407 if ( mPrefs->mPassiveSyncPort != lab.text() ) { 407 if ( mPrefs->mPassiveSyncPort != lab.text() ) {
408 mPrefs->mPassiveSyncPort = lab.text(); 408 mPrefs->mPassiveSyncPort = lab.text();
409 changed = true; 409 changed = true;
410 } 410 }
411 autoStart = autostart.isChecked(); 411 autoStart = autostart.isChecked();
412 if (mPrefs->mPassiveSyncWithDesktop != syncdesktop.isChecked() ) { 412 if (mPrefs->mPassiveSyncWithDesktop != syncdesktop.isChecked() ) {
413 changed = true; 413 changed = true;
414 mPrefs->mPassiveSyncWithDesktop = syncdesktop.isChecked(); 414 mPrefs->mPassiveSyncWithDesktop = syncdesktop.isChecked();
415 } 415 }
416 } 416 }
417 else 417 else
418 autoStart = mPrefs->mPassiveSyncAutoStart; 418 autoStart = mPrefs->mPassiveSyncAutoStart;
419 if ( autoStart != mPrefs->mPassiveSyncAutoStart ) 419 if ( autoStart != mPrefs->mPassiveSyncAutoStart )
420 changed = true; 420 changed = true;
421 bool ok; 421 bool ok;
422 mPrefs->mPassiveSyncAutoStart = false; 422 mPrefs->mPassiveSyncAutoStart = false;
423 Q_UINT32 port_t = mPrefs->mPassiveSyncPort.toUInt(&ok); 423 Q_UINT32 port_t = mPrefs->mPassiveSyncPort.toUInt(&ok);
424 qDebug("%d ", port_t); 424 qDebug("%d ", port_t);
425 if ( ! ok || port_t > 65535 ) { 425 if ( ! ok || port_t > 65535 ) {
426 KMessageBox::information( 0, i18n("No valid port number:\n%1").arg ( mPrefs->mPassiveSyncPort ), i18n("Pi-Sync Port Error")); 426 KMessageBox::information( 0, i18n("No valid port number:\n%1").arg ( mPrefs->mPassiveSyncPort ), i18n("Pi-Sync Port Error"));
427 return; 427 return;
428 } 428 }
429 Q_UINT16 port = port_t; 429 Q_UINT16 port = port_t;
430 //qDebug("port %d ", port); 430 //qDebug("port %d ", port);
431 mServerSocket = new KServerSocket ( mPrefs->mPassiveSyncPw, port ,1 ); 431 mServerSocket = new KServerSocket ( mPrefs->mPassiveSyncPw, port ,1 );
432 mServerSocket->setFileName( defaultFileName() );//bbb 432 mServerSocket->setFileName( defaultFileName() );//bbb
433 if ( !mServerSocket->ok() ) { 433 if ( !mServerSocket->ok() ) {
434 QTimer::singleShot( 2000, this, SLOT ( displayErrorPort() ) ); 434 QTimer::singleShot( 2000, this, SLOT ( displayErrorPort() ) );
435 delete mServerSocket; 435 delete mServerSocket;
436 mServerSocket = 0; 436 mServerSocket = 0;
437 return; 437 return;
438 } 438 }
439 mPrefs->mPassiveSyncAutoStart = autoStart; 439 mPrefs->mPassiveSyncAutoStart = autoStart;
440 if ( changed ) { 440 if ( changed ) {
441 mPrefs->writeConfig(); 441 mPrefs->writeConfig();
442 } 442 }
443 connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) ); 443 connect( mServerSocket, SIGNAL ( request_file() ),this, SIGNAL ( request_file() ) );
444 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) ); 444 connect( mServerSocket, SIGNAL ( file_received( bool ) ), this, SIGNAL ( getFile( bool ) ) );
445 connect( mServerSocket, SIGNAL ( request_file(const QString &) ),this, SIGNAL ( request_file(const QString &) ) ); 445 connect( mServerSocket, SIGNAL ( request_file(const QString &) ),this, SIGNAL ( request_file(const QString &) ) );
446 connect( mServerSocket, SIGNAL ( file_received( bool ,const QString &) ), this, SIGNAL ( getFile( bool,const QString & ) ) ); 446 connect( mServerSocket, SIGNAL ( file_received( bool ,const QString &) ), this, SIGNAL ( getFile( bool,const QString & ) ) );
447} 447}
448void KSyncManager::displayErrorPort() 448void KSyncManager::displayErrorPort()
449{ 449{
450 KMessageBox::information( 0, i18n("<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?").arg( mPrefs->mPassiveSyncPort) , i18n("Pi-Sync Port Error")); 450 KMessageBox::information( 0, i18n("<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?").arg( mPrefs->mPassiveSyncPort) , i18n("Pi-Sync Port Error"));
451} 451}
452void KSyncManager::syncLocalFile() 452void KSyncManager::syncLocalFile()
453{ 453{
454 454
455 QString fn =mPrefs->mLastSyncedLocalFile; 455 QString fn =mPrefs->mLastSyncedLocalFile;
456 QString ext; 456 QString ext;
457 457
458 switch(mTargetApp) 458 switch(mTargetApp)
459 { 459 {
460 case (KAPI): 460 case (KAPI):
461 ext = "(*.vcf)"; 461 ext = "(*.vcf)";
462 break; 462 break;
463 case (KOPI): 463 case (KOPI):
464 ext = "(*.ics/*.vcs)"; 464 ext = "(*.ics/*.vcs)";
465 break; 465 break;
466 case (PWMPI): 466 case (PWMPI):
467 ext = "(*.pwm)"; 467 ext = "(*.pwm)";
468 break; 468 break;
469 default: 469 default:
470 qDebug("KSM::syncLocalFile: invalid apptype selected"); 470 qDebug("KSM::syncLocalFile: invalid apptype selected");
471 break; 471 break;
472 472
473 } 473 }
474 474
475 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent ); 475 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename"+ext), mParent );
476 if ( fn == "" ) 476 if ( fn == "" )
477 return; 477 return;
478 if ( syncWithFile( fn, false ) ) { 478 if ( syncWithFile( fn, false ) ) {
479 qDebug("KSM::syncLocalFile() successful "); 479 qDebug("KSM::syncLocalFile() successful ");
480 } 480 }
481 481
482} 482}
483 483
484bool KSyncManager::syncWithFile( QString fn , bool quick ) 484bool KSyncManager::syncWithFile( QString fn , bool quick )
485{ 485{
486 bool ret = false; 486 bool ret = false;
487 QFileInfo info; 487 QFileInfo info;
488 info.setFile( fn ); 488 info.setFile( fn );
489 QString mess; 489 QString mess;
490 if ( !info. exists() ) { 490 if ( !info. exists() ) {
491 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) ); 491 mess = i18n( "Sync file \n...%1\ndoes not exist!\nNothing synced!\n").arg(fn.right( 30) );
492 QMessageBox::warning( mParent, i18n("Warning!"), 492 QMessageBox::warning( mParent, i18n("Warning!"),
493 mess ); 493 mess );
494 return ret; 494 return ret;
495 } 495 }
496 int result = 0; 496 int result = 0;
497 if ( !quick ) { 497 if ( !quick ) {
498 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 498 mess = i18n("Sync with file \n...%1\nfrom:\n%2\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
499 result = QMessageBox::warning( mParent, i18n("Warning!"), 499 result = QMessageBox::warning( mParent, i18n("Warning!"),
500 mess, 500 mess,
501 i18n("Sync"), i18n("Cancel"), 0, 501 i18n("Sync"), i18n("Cancel"), 0,
502 0, 1 ); 502 0, 1 );
503 if ( result ) 503 if ( result )
504 return false; 504 return false;
505 } 505 }
506 if ( mAskForPreferences ) 506 if ( mAskForPreferences )
507 if ( !edit_sync_options()) { 507 if ( !edit_sync_options()) {
508 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 508 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
509 return false; 509 return false;
510 } 510 }
511 if ( result == 0 ) { 511 if ( result == 0 ) {
512 //qDebug("Now sycing ... "); 512 //qDebug("Now sycing ... ");
513 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ,mCurrentResourceLocal ) ) 513 if ( ret = mImplementation->sync( this, fn, mSyncAlgoPrefs ,mCurrentResourceLocal ) )
514 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") ); 514 mParent->topLevelWidget()->setCaption( i18n("Synchronization successful") );
515 else 515 else
516 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") ); 516 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled or failed.") );
517 if ( ! quick ) 517 if ( ! quick )
518 mPrefs->mLastSyncedLocalFile = fn; 518 mPrefs->mLastSyncedLocalFile = fn;
519 } 519 }
520 return ret; 520 return ret;
521} 521}
522 522
523void KSyncManager::quickSyncLocalFile() 523void KSyncManager::quickSyncLocalFile()
524{ 524{
525 525
526 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) { 526 if ( syncWithFile( mPrefs->mLastSyncedLocalFile, true ) ) {
527 qDebug("KSM::quick syncLocalFile() successful "); 527 qDebug("KSM::quick syncLocalFile() successful ");
528 528
529 } 529 }
530} 530}
531 531
532void KSyncManager::multiSync( bool askforPrefs ) 532void KSyncManager::multiSync( bool askforPrefs )
533{ 533{
534 if (blockSave()) 534 if (blockSave())
535 return; 535 return;
536 setBlockSave(true); 536 setBlockSave(true);
537 mCurrentResourceLocal = ""; 537 mCurrentResourceLocal = "";
538 if ( askforPrefs ) { 538 if ( askforPrefs ) {
539 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!"); 539 QString question = i18n("Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!");
540 if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"), 540 if ( QMessageBox::information( mParent, i18n("KDE-Pim Sync"),
541 question, 541 question,
542 i18n("Yes"), i18n("No"), 542 i18n("Yes"), i18n("No"),
543 0, 0 ) != 0 ) { 543 0, 0 ) != 0 ) {
544 setBlockSave(false); 544 setBlockSave(false);
545 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!")); 545 mParent->topLevelWidget()->setCaption(i18n("Aborted! Nothing synced!"));
546 return; 546 return;
547 } 547 }
548 } 548 }
549 mCurrentSyncDevice = i18n("Multiple profiles") ; 549 mCurrentSyncDevice = i18n("Multiple profiles") ;
550 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs; 550 mSyncAlgoPrefs = mPrefs->mRingSyncAlgoPrefs;
551 if ( askforPrefs ) { 551 if ( askforPrefs ) {
552 if ( !edit_sync_options()) { 552 if ( !edit_sync_options()) {
553 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted.") ); 553 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted.") );
554 return; 554 return;
555 } 555 }
556 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs; 556 mPrefs->mRingSyncAlgoPrefs = mSyncAlgoPrefs;
557 } 557 }
558 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") ); 558 mParent->topLevelWidget()->setCaption(i18n("Multiple sync started.") );
559 qApp->processEvents(); 559 qApp->processEvents();
560 int num = ringSync() ; 560 int num = ringSync() ;
561 if ( num > 1 ) 561 if ( num > 1 )
562 ringSync(); 562 ringSync();
563 setBlockSave(false); 563 setBlockSave(false);
564 if ( num ) 564 if ( num )
565 emit save(); 565 emit save();
566 if ( num ) 566 if ( num )
567 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) ); 567 mParent->topLevelWidget()->setCaption(i18n("%1 profiles synced. Multiple sync complete!").arg(num) );
568 else 568 else
569 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!")); 569 mParent->topLevelWidget()->setCaption(i18n("Nothing synced! No profiles defined for multisync!"));
570 return; 570 return;
571} 571}
572 572
573int KSyncManager::ringSync() 573int KSyncManager::ringSync()
574{ 574{
575 emit multiResourceSyncStart( false ); 575 emit multiResourceSyncStart( false );
576 int syncedProfiles = 0; 576 int syncedProfiles = 0;
577 unsigned int i; 577 unsigned int i;
578 QTime timer; 578 QTime timer;
579 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 579 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
580 QStringList syncProfileNames = mSyncProfileNames; 580 QStringList syncProfileNames = mSyncProfileNames;
581 KSyncProfile* temp = new KSyncProfile (); 581 KSyncProfile* temp = new KSyncProfile ();
582 mAskForPreferences = false; 582 mAskForPreferences = false;
583 mCurrentResourceLocal = ""; 583 mCurrentResourceLocal = "";
584 for ( i = 0; i < syncProfileNames.count(); ++i ) { 584 for ( i = 0; i < syncProfileNames.count(); ++i ) {
585 mCurrentSyncProfile = i; 585 mCurrentSyncProfile = i;
586 temp->setName(syncProfileNames[mCurrentSyncProfile]); 586 temp->setName(syncProfileNames[mCurrentSyncProfile]);
587 temp->readConfig(&config); 587 temp->readConfig(&config);
588 588
589 bool includeInRingSync = false; 589 bool includeInRingSync = false;
590 switch(mTargetApp) 590 switch(mTargetApp)
591 { 591 {
592 case (KAPI): 592 case (KAPI):
593 includeInRingSync = temp->getIncludeInRingSyncAB(); 593 includeInRingSync = temp->getIncludeInRingSyncAB();
594 break; 594 break;
595 case (KOPI): 595 case (KOPI):
596 includeInRingSync = temp->getIncludeInRingSync(); 596 includeInRingSync = temp->getIncludeInRingSync();
597 break; 597 break;
598 case (PWMPI): 598 case (PWMPI):
599 includeInRingSync = temp->getIncludeInRingSyncPWM(); 599 includeInRingSync = temp->getIncludeInRingSyncPWM();
600 break; 600 break;
601 default: 601 default:
602 qDebug("KSM::ringSync: invalid apptype selected"); 602 qDebug("KSM::ringSync: invalid apptype selected");
603 break; 603 break;
604 604
605 } 605 }
606 606
607 607
608 if ( includeInRingSync && ( i < 1 || i > 2 )) { 608 if ( includeInRingSync && ( i < 1 || i > 2 )) {
609 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); 609 mParent->topLevelWidget()->setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... "));
610 ++syncedProfiles; 610 ++syncedProfiles;
611 mSyncWithDesktop = false; 611 mSyncWithDesktop = false;
612 // mAskForPreferences = temp->getAskForPreferences(); 612 // mAskForPreferences = temp->getAskForPreferences();
613 mWriteBackFile = temp->getWriteBackFile(); 613 mWriteBackFile = temp->getWriteBackFile();
614 mWriteBackExistingOnly = temp->getWriteBackExisting(); 614 mWriteBackExistingOnly = temp->getWriteBackExisting();
615 mIsKapiFile = temp->getIsKapiFile(); 615 mIsKapiFile = temp->getIsKapiFile();
616 mWriteBackInFuture = 0; 616 mWriteBackInFuture = 0;
617 if ( temp->getWriteBackFuture() ) { 617 if ( temp->getWriteBackFuture() ) {
618 mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); 618 mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
619 mWriteBackInPast = temp->getWriteBackPastWeeks( ); 619 mWriteBackInPast = temp->getWriteBackPastWeeks( );
620 } 620 }
621 mFilterInCal = temp->getFilterInCal(); 621 mFilterInCal = temp->getFilterInCal();
622 mFilterOutCal = temp->getFilterOutCal(); 622 mFilterOutCal = temp->getFilterOutCal();
623 mFilterInAB = temp->getFilterInAB(); 623 mFilterInAB = temp->getFilterInAB();
624 mFilterOutAB = temp->getFilterOutAB(); 624 mFilterOutAB = temp->getFilterOutAB();
625 mShowSyncSummary = false; 625 mShowSyncSummary = false;
626 mCurrentSyncDevice = syncProfileNames[i] ; 626 mCurrentSyncDevice = syncProfileNames[i] ;
627 mCurrentSyncName = mLocalMachineName; 627 mCurrentSyncName = mLocalMachineName;
628 if ( i == 0 ) { 628 if ( i == 0 ) {
629 mIsKapiFile = false; 629 mIsKapiFile = false;
630#ifdef DESKTOP_VERSION 630#ifdef DESKTOP_VERSION
631 syncKDE(); 631 syncKDE();
632#else 632#else
633 syncSharp(); 633 syncSharp();
634#endif 634#endif
635 } else { 635 } else {
636 if ( temp->getIsLocalFileSync() ) { 636 if ( temp->getIsLocalFileSync() ) {
637 switch(mTargetApp) 637 switch(mTargetApp)
638 { 638 {
639 case (KAPI): 639 case (KAPI):
640 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) 640 if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) )
641 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); 641 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNameAB();
642 break; 642 break;
643 case (KOPI): 643 case (KOPI):
644 if ( syncWithFile( temp->getRemoteFileName( ), false ) ) 644 if ( syncWithFile( temp->getRemoteFileName( ), false ) )
645 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName(); 645 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileName();
646 break; 646 break;
647 case (PWMPI): 647 case (PWMPI):
648 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) ) 648 if ( syncWithFile( temp->getRemoteFileNamePWM( ), false ) )
649 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM(); 649 mPrefs->mLastSyncedLocalFile = temp->getRemoteFileNamePWM();
650 break; 650 break;
651 default: 651 default:
652 qDebug("KSM: invalid apptype selected"); 652 qDebug("KSM: invalid apptype selected");
653 break; 653 break;
654 } 654 }
655 } else { 655 } else {
656 if ( temp->getIsPhoneSync() ) { 656 if ( temp->getIsPhoneSync() ) {
657 mPhoneDevice = temp->getPhoneDevice( ) ; 657 mPhoneDevice = temp->getPhoneDevice( ) ;
658 mPhoneConnection = temp->getPhoneConnection( ); 658 mPhoneConnection = temp->getPhoneConnection( );
659 mPhoneModel = temp->getPhoneModel( ); 659 mPhoneModel = temp->getPhoneModel( );
660 syncPhone(); 660 syncPhone();
661 } else if ( temp->getIsPiSync() || temp->getIsPiSyncSpec()) { 661 } else if ( temp->getIsPiSync() || temp->getIsPiSyncSpec()) {
662 mSpecificResources.clear(); 662 mSpecificResources.clear();
663 if ( mTargetApp == KAPI ) { 663 if ( mTargetApp == KAPI ) {
664 mPassWordPiSync = temp->getRemotePwAB(); 664 mPassWordPiSync = temp->getRemotePwAB();
665 mActiveSyncPort = temp->getRemotePortAB(); 665 mActiveSyncPort = temp->getRemotePortAB();
666 mActiveSyncIP = temp->getRemoteIPAB(); 666 mActiveSyncIP = temp->getRemoteIPAB();
667 } else if ( mTargetApp == KOPI ) { 667 } else if ( mTargetApp == KOPI ) {
668 mSpecificResources = QStringList::split( ":", temp->getResSpecKopi() ); 668 mSpecificResources = QStringList::split( ":", temp->getResSpecKopi(),true );
669 mPassWordPiSync = temp->getRemotePw(); 669 mPassWordPiSync = temp->getRemotePw();
670 mActiveSyncPort = temp->getRemotePort(); 670 mActiveSyncPort = temp->getRemotePort();
671 mActiveSyncIP = temp->getRemoteIP(); 671 mActiveSyncIP = temp->getRemoteIP();
672 } else { 672 } else {
673 mPassWordPiSync = temp->getRemotePwPWM(); 673 mPassWordPiSync = temp->getRemotePwPWM();
674 mActiveSyncPort = temp->getRemotePortPWM(); 674 mActiveSyncPort = temp->getRemotePortPWM();
675 mActiveSyncIP = temp->getRemoteIPPWM(); 675 mActiveSyncIP = temp->getRemoteIPPWM();
676 } 676 }
677 syncPi(); 677 syncPi();
678 while ( !mPisyncFinished ) { 678 while ( !mPisyncFinished ) {
679 //qDebug("waiting "); 679 //qDebug("waiting ");
680 qApp->processEvents(); 680 qApp->processEvents();
681 } 681 }
682 timer.start(); 682 timer.start();
683 while ( timer.elapsed () < 2000 ) { 683 while ( timer.elapsed () < 2000 ) {
684 qApp->processEvents(); 684 qApp->processEvents();
685 } 685 }
686 } else 686 } else
687 syncRemote( temp, false ); 687 syncRemote( temp, false );
688 688
689 } 689 }
690 } 690 }
691 timer.start(); 691 timer.start();
692 mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") ); 692 mParent->topLevelWidget()->setCaption(i18n("Multiple sync in progress ... please wait!") );
693 while ( timer.elapsed () < 2000 ) { 693 while ( timer.elapsed () < 2000 ) {
694 qApp->processEvents(); 694 qApp->processEvents();
695#ifndef _WIN32_ 695#ifndef _WIN32_
696 sleep (1); 696 sleep (1);
697#endif 697#endif
698 } 698 }
699 699
700 } 700 }
701 701
702 } 702 }
703 delete temp; 703 delete temp;
704 return syncedProfiles; 704 return syncedProfiles;
705} 705}
706 706
707void KSyncManager::syncRemote( KSyncProfile* prof, bool ask) 707void KSyncManager::syncRemote( KSyncProfile* prof, bool ask)
708{ 708{
709 QString question; 709 QString question;
710 if ( ask ) { 710 if ( ask ) {
711 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; 711 question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n";
712 if ( QMessageBox::information( mParent, i18n("Sync"), 712 if ( QMessageBox::information( mParent, i18n("Sync"),
713 question, 713 question,
714 i18n("Yes"), i18n("No"), 714 i18n("Yes"), i18n("No"),
715 0, 0 ) != 0 ) 715 0, 0 ) != 0 )
716 return; 716 return;
717 } 717 }
718 718
719 QString preCommand; 719 QString preCommand;
720 QString localTempFile; 720 QString localTempFile;
721 QString postCommand; 721 QString postCommand;
722 722
723 switch(mTargetApp) 723 switch(mTargetApp)
724 { 724 {
725 case (KAPI): 725 case (KAPI):
726 preCommand = prof->getPreSyncCommandAB(); 726 preCommand = prof->getPreSyncCommandAB();
727 postCommand = prof->getPostSyncCommandAB(); 727 postCommand = prof->getPostSyncCommandAB();
728 localTempFile = prof->getLocalTempFileAB(); 728 localTempFile = prof->getLocalTempFileAB();
729 break; 729 break;
730 case (KOPI): 730 case (KOPI):
731 preCommand = prof->getPreSyncCommand(); 731 preCommand = prof->getPreSyncCommand();
732 postCommand = prof->getPostSyncCommand(); 732 postCommand = prof->getPostSyncCommand();
733 localTempFile = prof->getLocalTempFile(); 733 localTempFile = prof->getLocalTempFile();
734 break; 734 break;
735 case (PWMPI): 735 case (PWMPI):
736 preCommand = prof->getPreSyncCommandPWM(); 736 preCommand = prof->getPreSyncCommandPWM();
737 postCommand = prof->getPostSyncCommandPWM(); 737 postCommand = prof->getPostSyncCommandPWM();
738 localTempFile = prof->getLocalTempFilePWM(); 738 localTempFile = prof->getLocalTempFilePWM();
739 break; 739 break;
740 default: 740 default:
741 qDebug("KSM::syncRemote: invalid apptype selected"); 741 qDebug("KSM::syncRemote: invalid apptype selected");
742 break; 742 break;
743 } 743 }
744 744
745 745
746 int fi; 746 int fi;
747 if ( (fi = preCommand.find("$PWD$")) > 0 ) { 747 if ( (fi = preCommand.find("$PWD$")) > 0 ) {
748 QString pwd = getPassword(); 748 QString pwd = getPassword();
749 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 ); 749 preCommand = preCommand.left( fi )+ pwd + preCommand.mid( fi+5 );
750 750
751 } 751 }
752 int maxlen = 30; 752 int maxlen = 30;
753 if ( QApplication::desktop()->width() > 320 ) 753 if ( QApplication::desktop()->width() > 320 )
754 maxlen += 25; 754 maxlen += 25;
755 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) ); 755 mParent->topLevelWidget()->setCaption ( i18n( "Copy remote file to local machine..." ) );
756 int fileSize = 0; 756 int fileSize = 0;
757 int result = system ( preCommand ); 757 int result = system ( preCommand );
758 // 0 : okay 758 // 0 : okay
759 // 256: no such file or dir 759 // 256: no such file or dir
760 // 760 //
761 qDebug("KSM::Sync: Remote copy result(0 = okay): %d ",result ); 761 qDebug("KSM::Sync: Remote copy result(0 = okay): %d ",result );
762 if ( result != 0 ) { 762 if ( result != 0 ) {
763 unsigned int len = maxlen; 763 unsigned int len = maxlen;
764 while ( len < preCommand.length() ) { 764 while ( len < preCommand.length() ) {
765 preCommand.insert( len , "\n" ); 765 preCommand.insert( len , "\n" );
766 len += maxlen +2; 766 len += maxlen +2;
767 } 767 }
768 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ; 768 question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (preCommand) ;
769 QMessageBox::information( mParent, i18n("Sync - ERROR"), 769 QMessageBox::information( mParent, i18n("Sync - ERROR"),
770 question, 770 question,
771 i18n("Okay!")) ; 771 i18n("Okay!")) ;
772 mParent->topLevelWidget()->setCaption ("KDE-Pim"); 772 mParent->topLevelWidget()->setCaption ("KDE-Pim");
773 return; 773 return;
774 } 774 }
775 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) ); 775 mParent->topLevelWidget()->setCaption ( i18n( "Copying succeed." ) );
776 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); 776 //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() );
777 777
778 if ( syncWithFile( localTempFile, true ) ) { 778 if ( syncWithFile( localTempFile, true ) ) {
779 779
780 if ( mWriteBackFile ) { 780 if ( mWriteBackFile ) {
781 int fi; 781 int fi;
782 if ( (fi = postCommand.find("$PWD$")) > 0 ) { 782 if ( (fi = postCommand.find("$PWD$")) > 0 ) {
783 QString pwd = getPassword(); 783 QString pwd = getPassword();
784 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 ); 784 postCommand = postCommand.left( fi )+ pwd + postCommand.mid( fi+5 );
785 785
786 } 786 }
787 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file ..." ) ); 787 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file ..." ) );
788 result = system ( postCommand ); 788 result = system ( postCommand );
789 qDebug("KSM::Sync:Writing back file result: %d ", result); 789 qDebug("KSM::Sync:Writing back file result: %d ", result);
790 if ( result != 0 ) { 790 if ( result != 0 ) {
791 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); 791 mParent->topLevelWidget()->setCaption ( i18n( "Writing back file result: " )+QString::number( result ) );
792 return; 792 return;
793 } else { 793 } else {
794 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) ); 794 mParent->topLevelWidget()->setCaption ( i18n( "Syncronization sucessfully completed" ) );
795 } 795 }
796 } 796 }
797 } 797 }
798 return; 798 return;
799} 799}
800bool KSyncManager::edit_pisync_options() 800bool KSyncManager::edit_pisync_options()
801{ 801{
802 QDialog dia( mParent, "dia", true ); 802 QDialog dia( mParent, "dia", true );
803 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice ); 803 dia.setCaption( i18n("Pi-Sync options for device: " ) +mCurrentSyncDevice );
804 QVBoxLayout lay ( &dia ); 804 QVBoxLayout lay ( &dia );
805 lay.setSpacing( 5 ); 805 lay.setSpacing( 5 );
806 lay.setMargin( 3 ); 806 lay.setMargin( 3 );
807 QLabel lab1 ( i18n("Password for remote access:"), &dia); 807 QLabel lab1 ( i18n("Password for remote access:"), &dia);
808 lay.addWidget( &lab1 ); 808 lay.addWidget( &lab1 );
809 QLineEdit le1 (&dia ); 809 QLineEdit le1 (&dia );
810 lay.addWidget( &le1 ); 810 lay.addWidget( &le1 );
811 QLabel lab2 ( i18n("Remote IP address:"), &dia); 811 QLabel lab2 ( i18n("Remote IP address:"), &dia);
812 lay.addWidget( &lab2 ); 812 lay.addWidget( &lab2 );
813 QLineEdit le2 (&dia ); 813 QLineEdit le2 (&dia );
814 lay.addWidget( &le2 ); 814 lay.addWidget( &le2 );
815 QLabel lab3 ( i18n("Remote port number:\n(May be: 1 - 65535)"), &dia); 815 QLabel lab3 ( i18n("Remote port number:\n(May be: 1 - 65535)"), &dia);
816 lay.addWidget( &lab3 ); 816 lay.addWidget( &lab3 );
817 QLineEdit le3 (&dia ); 817 QLineEdit le3 (&dia );
818 lay.addWidget( &le3 ); 818 lay.addWidget( &le3 );
819 QPushButton pb ( "OK", &dia); 819 QPushButton pb ( "OK", &dia);
820 lay.addWidget( &pb ); 820 lay.addWidget( &pb );
821 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 821 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
822 le1.setText( mPassWordPiSync ); 822 le1.setText( mPassWordPiSync );
823 le2.setText( mActiveSyncIP ); 823 le2.setText( mActiveSyncIP );
824 le3.setText( mActiveSyncPort ); 824 le3.setText( mActiveSyncPort );
825 if ( dia.exec() ) { 825 if ( dia.exec() ) {
826 mPassWordPiSync = le1.text(); 826 mPassWordPiSync = le1.text();
827 mActiveSyncPort = le3.text(); 827 mActiveSyncPort = le3.text();
828 mActiveSyncIP = le2.text(); 828 mActiveSyncIP = le2.text();
829 return true; 829 return true;
830 } 830 }
831 return false; 831 return false;
832} 832}
833bool KSyncManager::edit_sync_options() 833bool KSyncManager::edit_sync_options()
834{ 834{
835 835
836 QDialog dia( mParent, "dia", true ); 836 QDialog dia( mParent, "dia", true );
837 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice ); 837 dia.setCaption( i18n("Device: " ) +mCurrentSyncDevice );
838 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia); 838 QButtonGroup gr ( 1, Qt::Horizontal, i18n("Sync preferences"), &dia);
839 QVBoxLayout lay ( &dia ); 839 QVBoxLayout lay ( &dia );
840 lay.setSpacing( 2 ); 840 lay.setSpacing( 2 );
841 lay.setMargin( 3 ); 841 lay.setMargin( 3 );
842 lay.addWidget(&gr); 842 lay.addWidget(&gr);
843 QRadioButton loc ( i18n("Take local entry on conflict"), &gr ); 843 QRadioButton loc ( i18n("Take local entry on conflict"), &gr );
844 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr ); 844 QRadioButton rem ( i18n("Take remote entry on conflict"), &gr );
845 QRadioButton newest( i18n("Take newest entry on conflict"), &gr ); 845 QRadioButton newest( i18n("Take newest entry on conflict"), &gr );
846 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr ); 846 QRadioButton ask( i18n("Ask for every entry on conflict"), &gr );
847 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr ); 847 QRadioButton f_loc( i18n("Force: Take local entry always"), &gr );
848 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr ); 848 QRadioButton f_rem( i18n("Force: Take remote entry always"), &gr );
849 //QRadioButton both( i18n("Take both on conflict"), &gr ); 849 //QRadioButton both( i18n("Take both on conflict"), &gr );
850 QPushButton pb ( "OK", &dia); 850 QPushButton pb ( "OK", &dia);
851 lay.addWidget( &pb ); 851 lay.addWidget( &pb );
852 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 852 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
853 switch ( mSyncAlgoPrefs ) { 853 switch ( mSyncAlgoPrefs ) {
854 case 0: 854 case 0:
855 loc.setChecked( true); 855 loc.setChecked( true);
856 break; 856 break;
857 case 1: 857 case 1:
858 rem.setChecked( true ); 858 rem.setChecked( true );
859 break; 859 break;
860 case 2: 860 case 2:
861 newest.setChecked( true); 861 newest.setChecked( true);
862 break; 862 break;
863 case 3: 863 case 3:
864 ask.setChecked( true); 864 ask.setChecked( true);
865 break; 865 break;
866 case 4: 866 case 4:
867 f_loc.setChecked( true); 867 f_loc.setChecked( true);
868 break; 868 break;
869 case 5: 869 case 5:
870 f_rem.setChecked( true); 870 f_rem.setChecked( true);
871 break; 871 break;
872 case 6: 872 case 6:
873 // both.setChecked( true); 873 // both.setChecked( true);
874 break; 874 break;
875 default: 875 default:
876 break; 876 break;
877 } 877 }
878 if ( dia.exec() ) { 878 if ( dia.exec() ) {
879 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ; 879 mSyncAlgoPrefs = rem.isChecked()*1+newest.isChecked()*2+ ask.isChecked()*3+ f_loc.isChecked()*4+ f_rem.isChecked()*5;//+ both.isChecked()*6 ;
880 return true; 880 return true;
881 } 881 }
882 return false; 882 return false;
883} 883}
884 884
885QString KSyncManager::getPassword( ) 885QString KSyncManager::getPassword( )
886{ 886{
887 QString retfile = ""; 887 QString retfile = "";
888 QDialog dia ( mParent, "input-dialog", true ); 888 QDialog dia ( mParent, "input-dialog", true );
889 QLineEdit lab ( &dia ); 889 QLineEdit lab ( &dia );
890 lab.setEchoMode( QLineEdit::Password ); 890 lab.setEchoMode( QLineEdit::Password );
891 QVBoxLayout lay( &dia ); 891 QVBoxLayout lay( &dia );
892 lay.setMargin(7); 892 lay.setMargin(7);
893 lay.setSpacing(7); 893 lay.setSpacing(7);
894 lay.addWidget( &lab); 894 lay.addWidget( &lab);
895 dia.setFixedSize( 230,50 ); 895 dia.setFixedSize( 230,50 );
896 dia.setCaption( i18n("Enter password") ); 896 dia.setCaption( i18n("Enter password") );
897 QPushButton pb ( "OK", &dia); 897 QPushButton pb ( "OK", &dia);
898 lay.addWidget( &pb ); 898 lay.addWidget( &pb );
899 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); 899 connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) );
900 dia.show(); 900 dia.show();
901 int res = dia.exec(); 901 int res = dia.exec();
902 if ( res ) 902 if ( res )
903 retfile = lab.text(); 903 retfile = lab.text();
904 dia.hide(); 904 dia.hide();
905 qApp->processEvents(); 905 qApp->processEvents();
906 return retfile; 906 return retfile;
907 907
908} 908}
909 909
910 910
911void KSyncManager::confSync() 911void KSyncManager::confSync()
912{ 912{
913 static KSyncPrefsDialog* sp = 0; 913 static KSyncPrefsDialog* sp = 0;
914 if ( ! sp ) { 914 if ( ! sp ) {
915 sp = new KSyncPrefsDialog( mParent, "syncprefs", true ); 915 sp = new KSyncPrefsDialog( mParent, "syncprefs", true );
916 } 916 }
917 sp->usrReadConfig(); 917 sp->usrReadConfig();
918#ifndef DESKTOP_VERSION 918#ifndef DESKTOP_VERSION
919 sp->showMaximized(); 919 sp->showMaximized();
920#else 920#else
921 sp->show(); 921 sp->show();
922#endif 922#endif
923 sp->exec(); 923 sp->exec();
924 QStringList oldSyncProfileNames = mSyncProfileNames; 924 QStringList oldSyncProfileNames = mSyncProfileNames;
925 mSyncProfileNames = sp->getSyncProfileNames(); 925 mSyncProfileNames = sp->getSyncProfileNames();
926 mLocalMachineName = sp->getLocalMachineName (); 926 mLocalMachineName = sp->getLocalMachineName ();
927 int ii; 927 int ii;
928 for ( ii = 0; ii < oldSyncProfileNames.count(); ++ii ) { 928 for ( ii = 0; ii < oldSyncProfileNames.count(); ++ii ) {
929 if ( ! mSyncProfileNames.contains( oldSyncProfileNames[ii] ) ) 929 if ( ! mSyncProfileNames.contains( oldSyncProfileNames[ii] ) )
930 mImplementation->removeSyncInfo( oldSyncProfileNames[ii] ); 930 mImplementation->removeSyncInfo( oldSyncProfileNames[ii] );
931 } 931 }
932 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) ); 932 QTimer::singleShot ( 1, this, SLOT ( fillSyncMenu() ) );
933} 933}
934void KSyncManager::syncKDE() 934void KSyncManager::syncKDE()
935{ 935{
936 mSyncWithDesktop = true; 936 mSyncWithDesktop = true;
937 emit save(); 937 emit save();
938 switch(mTargetApp) 938 switch(mTargetApp)
939 { 939 {
940 case (KAPI): 940 case (KAPI):
941 { 941 {
942#ifdef DESKTOP_VERSION 942#ifdef DESKTOP_VERSION
943 QString command = "kdeabdump33"; 943 QString command = "kdeabdump33";
944 QString commandfile = "kdeabdump33"; 944 QString commandfile = "kdeabdump33";
945 QString commandpath = qApp->applicationDirPath () + "/"; 945 QString commandpath = qApp->applicationDirPath () + "/";
946#else 946#else
947 QString command = "kdeabdump33"; 947 QString command = "kdeabdump33";
948 QString commandfile = "kdeabdump33"; 948 QString commandfile = "kdeabdump33";
949 QString commandpath = QDir::homeDirPath ()+"/"; 949 QString commandpath = QDir::homeDirPath ()+"/";
950#endif 950#endif
951 if ( ! QFile::exists ( commandpath+commandfile ) ) 951 if ( ! QFile::exists ( commandpath+commandfile ) )
952 command = commandfile; 952 command = commandfile;
953 else 953 else
954 command = commandpath+commandfile; 954 command = commandpath+commandfile;
955 955
956 QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf"; 956 QString fileName = QDir::homeDirPath ()+"/.kdeaddressbookdump.vcf";
957 int result = system ( command.latin1()); 957 int result = system ( command.latin1());
958 qDebug("AB dump 33 command call result: %d ", result); 958 qDebug("AB dump 33 command call result: %d ", result);
959 if ( result != 0 ) { 959 if ( result != 0 ) {
960 qDebug("Calling AB dump version 33 failed. Trying 34... "); 960 qDebug("Calling AB dump version 33 failed. Trying 34... ");
961 commandfile = "kdeabdump34"; 961 commandfile = "kdeabdump34";
962 if ( ! QFile::exists ( commandpath+commandfile ) ) 962 if ( ! QFile::exists ( commandpath+commandfile ) )
963 command = commandfile; 963 command = commandfile;
964 else 964 else
965 command = commandpath+commandfile; 965 command = commandpath+commandfile;
966 result = system ( command.latin1()); 966 result = system ( command.latin1());
967 qDebug("AB dump 34 command call result: %d ", result); 967 qDebug("AB dump 34 command call result: %d ", result);
968 if ( result != 0 ) { 968 if ( result != 0 ) {
969 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 )); 969 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 ));
970 return; 970 return;
971 } 971 }
972 } 972 }
973 if ( syncWithFile( fileName,true ) ) { 973 if ( syncWithFile( fileName,true ) ) {
974 if ( mWriteBackFile ) { 974 if ( mWriteBackFile ) {
975 command += " --read"; 975 command += " --read";
976 system ( command.latin1()); 976 system ( command.latin1());
977 } 977 }
978 } 978 }
979 979
980 } 980 }
981 break; 981 break;
982 case (KOPI): 982 case (KOPI):
983 { 983 {
984#ifdef DESKTOP_VERSION 984#ifdef DESKTOP_VERSION
985 QString command = "kdecaldump33"; 985 QString command = "kdecaldump33";
986 QString commandfile = "kdecaldump33"; 986 QString commandfile = "kdecaldump33";
987 QString commandpath = qApp->applicationDirPath () + "/"; 987 QString commandpath = qApp->applicationDirPath () + "/";
988#else 988#else
989 QString command = "kdecaldump33"; 989 QString command = "kdecaldump33";
990 QString commandfile = "kdecaldump33"; 990 QString commandfile = "kdecaldump33";
991 QString commandpath = QDir::homeDirPath ()+"/"; 991 QString commandpath = QDir::homeDirPath ()+"/";
992#endif 992#endif
993 if ( ! QFile::exists ( commandpath+commandfile ) ) 993 if ( ! QFile::exists ( commandpath+commandfile ) )
994 command = commandfile; 994 command = commandfile;
995 else 995 else
996 command = commandpath+commandfile; 996 command = commandpath+commandfile;
997 997
998 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics"; 998 QString fileName = QDir::homeDirPath ()+"/.kdecalendardump.ics";
999 int result = system ( command.latin1()); 999 int result = system ( command.latin1());
1000 qDebug("Cal dump 33 command call result result: %d ", result); 1000 qDebug("Cal dump 33 command call result result: %d ", result);
1001 if ( result != 0 ) { 1001 if ( result != 0 ) {
1002 qDebug("Calling CAL dump version 33 failed. Trying 34... "); 1002 qDebug("Calling CAL dump version 33 failed. Trying 34... ");
1003 commandfile = "kdecaldump34"; 1003 commandfile = "kdecaldump34";
1004 if ( ! QFile::exists ( commandpath+commandfile ) ) 1004 if ( ! QFile::exists ( commandpath+commandfile ) )
1005 command = commandfile; 1005 command = commandfile;
1006 else 1006 else
1007 command = commandpath+commandfile; 1007 command = commandpath+commandfile;
1008 result = system ( command.latin1()); 1008 result = system ( command.latin1());
1009 qDebug("Cal dump 34 command call result result: %d ", result); 1009 qDebug("Cal dump 34 command call result result: %d ", result);
1010 if ( result != 0 ) { 1010 if ( result != 0 ) {
1011 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 )); 1011 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 ));
1012 return; 1012 return;
1013 } 1013 }
1014 } 1014 }
1015 if ( syncWithFile( fileName,true ) ) { 1015 if ( syncWithFile( fileName,true ) ) {
1016 if ( mWriteBackFile ) { 1016 if ( mWriteBackFile ) {
1017 command += " --read"; 1017 command += " --read";
1018 system ( command.latin1()); 1018 system ( command.latin1());
1019 } 1019 }
1020 } 1020 }
1021 1021
1022 } 1022 }
1023 break; 1023 break;
1024 case (PWMPI): 1024 case (PWMPI):
1025 1025
1026 break; 1026 break;
1027 default: 1027 default:
1028 qDebug("KSM::slotSyncMenu: invalid apptype selected"); 1028 qDebug("KSM::slotSyncMenu: invalid apptype selected");
1029 break; 1029 break;
1030 1030
1031 } 1031 }
1032} 1032}
1033 1033
1034void KSyncManager::syncSharp() 1034void KSyncManager::syncSharp()
1035{ 1035{
1036 1036
1037 if ( ! syncExternalApplication("sharp") ) 1037 if ( ! syncExternalApplication("sharp") )
1038 qDebug("KSM::ERROR sync sharp "); 1038 qDebug("KSM::ERROR sync sharp ");
1039} 1039}
1040 1040
1041bool KSyncManager::syncExternalApplication(QString resource) 1041bool KSyncManager::syncExternalApplication(QString resource)
1042{ 1042{
1043 1043
1044 emit save(); 1044 emit save();
1045 1045
1046 if ( mAskForPreferences ) 1046 if ( mAskForPreferences )
1047 if ( !edit_sync_options()) { 1047 if ( !edit_sync_options()) {
1048 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") ); 1048 mParent->topLevelWidget()->setCaption( i18n("Syncing aborted. Nothing synced.") );
1049 return false; 1049 return false;
1050 } 1050 }
1051 1051
1052 qDebug("KSM::Sync extern %s", resource.latin1()); 1052 qDebug("KSM::Sync extern %s", resource.latin1());
1053 1053
1054 bool syncOK = mImplementation->syncExternal(this, resource); 1054 bool syncOK = mImplementation->syncExternal(this, resource);
1055 1055
1056 return syncOK; 1056 return syncOK;
1057 1057
1058} 1058}
1059 1059
1060void KSyncManager::syncPhone() 1060void KSyncManager::syncPhone()
1061{ 1061{
1062 1062
1063 syncExternalApplication("phone"); 1063 syncExternalApplication("phone");
1064 1064
1065} 1065}
1066 1066
1067void KSyncManager::showProgressBar(int percentage, QString caption, int total) 1067void KSyncManager::showProgressBar(int percentage, QString caption, int total)
1068{ 1068{
1069 if (!bar->isVisible()) 1069 if (!bar->isVisible())
1070 { 1070 {
1071 int w = 300; 1071 int w = 300;
1072 if ( QApplication::desktop()->width() < 320 ) 1072 if ( QApplication::desktop()->width() < 320 )
1073 w = 220; 1073 w = 220;
1074 int h = bar->sizeHint().height() ; 1074 int h = bar->sizeHint().height() ;
1075 int dw = QApplication::desktop()->width(); 1075 int dw = QApplication::desktop()->width();
1076 int dh = QApplication::desktop()->height(); 1076 int dh = QApplication::desktop()->height();
1077 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 1077 bar->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
1078 bar->setCaption (caption); 1078 bar->setCaption (caption);
1079 bar->setTotalSteps ( total ) ; 1079 bar->setTotalSteps ( total ) ;
1080 bar->show(); 1080 bar->show();
1081 } 1081 }
1082 bar->raise(); 1082 bar->raise();
1083 bar->setProgress( percentage ); 1083 bar->setProgress( percentage );
1084 qApp->processEvents(); 1084 qApp->processEvents();
1085} 1085}
1086 1086
1087void KSyncManager::hideProgressBar() 1087void KSyncManager::hideProgressBar()
1088{ 1088{
1089 bar->hide(); 1089 bar->hide();
1090 qApp->processEvents(); 1090 qApp->processEvents();
1091} 1091}
1092 1092
1093bool KSyncManager::isProgressBarCanceled() 1093bool KSyncManager::isProgressBarCanceled()
1094{ 1094{
1095 return !bar->isVisible(); 1095 return !bar->isVisible();
1096} 1096}
1097 1097
1098QString KSyncManager::syncFileName() 1098QString KSyncManager::syncFileName()
1099{ 1099{
1100 1100
1101 QString fn = "tempfile"; 1101 QString fn = "tempfile";
1102 switch(mTargetApp) 1102 switch(mTargetApp)
1103 { 1103 {
1104 case (KAPI): 1104 case (KAPI):
1105 fn = "tempsyncab.vcf"; 1105 fn = "tempsyncab.vcf";
1106 break; 1106 break;
1107 case (KOPI): 1107 case (KOPI):
1108 fn = "tempsynccal.ics"; 1108 fn = "tempsynccal.ics";
1109 break; 1109 break;
1110 case (PWMPI): 1110 case (PWMPI):
1111 fn = "tempsyncpw.pwm"; 1111 fn = "tempsyncpw.pwm";
1112 break; 1112 break;
1113 default: 1113 default:
1114 break; 1114 break;
1115 } 1115 }
1116#ifdef DESKTOP_VERSION 1116#ifdef DESKTOP_VERSION
1117 return locateLocal( "tmp", fn ); 1117 return locateLocal( "tmp", fn );
1118#else 1118#else
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 if ( mSpecificResources.count() ) { 1143 if ( mSpecificResources.count() ) {
1144 int lastSyncRes = mSpecificResources.count()/2;
1145 int ccc = mSpecificResources.count()-1;
1146 while ( lastSyncRes > 0 && ccc > 0 && mSpecificResources[ ccc ].isEmpty() ) {
1147 --ccc;
1148 --lastSyncRes;
1149 }
1144 int startLocal = 0; 1150 int startLocal = 0;
1145 int startRemote = mSpecificResources.count()/2; 1151 int startRemote = mSpecificResources.count()/2;
1146 emit multiResourceSyncStart( true ); 1152 emit multiResourceSyncStart( true );
1147 while ( startLocal < mSpecificResources.count()/2 ) { 1153 while ( startLocal < mSpecificResources.count()/2 ) {
1148 if ( startLocal+1 >= mSpecificResources.count()/2 ) 1154 if ( startLocal+1 >= lastSyncRes )
1149 emit multiResourceSyncStart( false ); 1155 emit multiResourceSyncStart( false );
1150 mPisyncFinished = false; 1156 mPisyncFinished = false;
1151 mCurrentResourceLocal = mSpecificResources[ startLocal ]; 1157 mCurrentResourceLocal = mSpecificResources[ startLocal ];
1152 mCurrentResourceRemote = mSpecificResources[ startRemote ]; 1158 mCurrentResourceRemote = mSpecificResources[ startRemote ];
1153 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1159 if ( !mCurrentResourceRemote.isEmpty() ) {
1154 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1160 qDebug ( "KSM: Syncing resources: Local: %s --- Remote: %s ",mCurrentResourceLocal.latin1(), mCurrentResourceRemote.latin1() );
1155 commandSocket->readFile( syncFileName() ); 1161 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote, mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1156 while ( !mPisyncFinished ) { 1162 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1157 //qDebug("waiting "); 1163 commandSocket->readFile( syncFileName() );
1158 qApp->processEvents(); 1164 while ( !mPisyncFinished ) {
1165 //qDebug("waiting ");
1166 qApp->processEvents();
1167 }
1159 } 1168 }
1160 ++startLocal; 1169 ++startLocal;
1161 } 1170 }
1162 } else { 1171 } else {
1163 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() ); 1172 KCommandSocket* commandSocket = new KCommandSocket( "", mPassWordPiSync, port, mActiveSyncIP, this, mParent->topLevelWidget() );
1164 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) ); 1173 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int )), this, SLOT(deleteCommandSocket(KCommandSocket*, int)) );
1165 commandSocket->readFile( syncFileName() ); 1174 commandSocket->readFile( syncFileName() );
1166 } 1175 }
1167} 1176}
1168 1177
1169void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) 1178void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
1170{ 1179{
1171 //enum { success, errorW, errorR, quiet }; 1180 //enum { success, errorW, errorR, quiet };
1172 1181
1173 1182
1174 1183
1175 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW || 1184 if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ||
1176 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) { 1185 state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN||state == KCommandSocket::errorED ) {
1177 if ( state == KCommandSocket::errorPW ) 1186 if ( state == KCommandSocket::errorPW )
1178 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); 1187 mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") );
1179 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) 1188 else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO )
1180 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); 1189 mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
1181 else if ( state == KCommandSocket::errorCA ) 1190 else if ( state == KCommandSocket::errorCA )
1182 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") ); 1191 mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") );
1183 else if ( state == KCommandSocket::errorFI ) 1192 else if ( state == KCommandSocket::errorFI )
1184 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") ); 1193 mParent->topLevelWidget()->setCaption( i18n("File error on remote.") );
1185 else if ( state == KCommandSocket::errorED ) 1194 else if ( state == KCommandSocket::errorED )
1186 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") ); 1195 mParent->topLevelWidget()->setCaption( i18n("Please close error dialog on remote.") );
1187 else if ( state == KCommandSocket::errorUN ) 1196 else if ( state == KCommandSocket::errorUN )
1188 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") ); 1197 mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") );
1189 delete s; 1198 delete s;
1190 if ( state == KCommandSocket::errorR ) { 1199 if ( state == KCommandSocket::errorR ) {
1191 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget()); 1200 KCommandSocket* commandSocket = new KCommandSocket( "",mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget());
1192 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1201 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1193 commandSocket->sendStop(); 1202 commandSocket->sendStop();
1194 } 1203 }
1195 mPisyncFinished = true; 1204 mPisyncFinished = true;
1196 return; 1205 return;
1197 1206
1198 } else if ( state == KCommandSocket::errorW ) { 1207 } else if ( state == KCommandSocket::errorW ) {
1199 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") ); 1208 mParent->topLevelWidget()->setCaption( i18n("ERROR:Writing back file failed.") );
1200 mPisyncFinished = true; 1209 mPisyncFinished = true;
1201 1210
1202 } else if ( state == KCommandSocket::successR ) { 1211 } else if ( state == KCommandSocket::successR ) {
1203 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket())); 1212 QTimer::singleShot( 1, this , SLOT ( readFileFromSocket()));
1204 1213
1205 } else if ( state == KCommandSocket::successW ) { 1214 } else if ( state == KCommandSocket::successW ) {
1206 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") ); 1215 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync successful!") );
1207 mPisyncFinished = true; 1216 mPisyncFinished = true;
1208 } else if ( state == KCommandSocket::quiet ){ 1217 } else if ( state == KCommandSocket::quiet ){
1209 qDebug("KSS: quiet "); 1218 qDebug("KSS: quiet ");
1210 mPisyncFinished = true; 1219 mPisyncFinished = true;
1211 } else { 1220 } else {
1212 qDebug("KSS: Error: unknown state: %d ", state); 1221 qDebug("KSS: Error: unknown state: %d ", state);
1213 mPisyncFinished = true; 1222 mPisyncFinished = true;
1214 } 1223 }
1215 1224
1216 delete s; 1225 delete s;
1217} 1226}
1218 1227
1219void KSyncManager::readFileFromSocket() 1228void KSyncManager::readFileFromSocket()
1220{ 1229{
1221 QString fileName = syncFileName(); 1230 QString fileName = syncFileName();
1222 bool syncOK = true; 1231 bool syncOK = true;
1223 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") ); 1232 mParent->topLevelWidget()->setCaption( i18n("Remote file saved to temp file.") );
1224 if ( ! syncWithFile( fileName , true ) ) { 1233 if ( ! syncWithFile( fileName , true ) ) {
1225 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") ); 1234 mParent->topLevelWidget()->setCaption( i18n("Syncing failed.") );
1226 syncOK = false; 1235 syncOK = false;
1227 } 1236 }
1228 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() ); 1237 KCommandSocket* commandSocket = new KCommandSocket( mCurrentResourceRemote,mPassWordPiSync, mActiveSyncPort.toUInt(), mActiveSyncIP, this, mParent->topLevelWidget() );
1229 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) ); 1238 connect( commandSocket, SIGNAL(commandFinished( KCommandSocket*, int)), this, SLOT(deleteCommandSocket(KCommandSocket*, int )) );
1230 if ( mWriteBackFile && syncOK ) { 1239 if ( mWriteBackFile && syncOK ) {
1231 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") ); 1240 mParent->topLevelWidget()->setCaption( i18n("Sending back file ...") );
1232 commandSocket->writeFile( fileName ); 1241 commandSocket->writeFile( fileName );
1233 } 1242 }
1234 else { 1243 else {
1235 commandSocket->sendStop(); 1244 commandSocket->sendStop();
1236 if ( syncOK ) 1245 if ( syncOK )
1237 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") ); 1246 mParent->topLevelWidget()->setCaption( i18n("Pi-Sync succesful!") );
1238 mPisyncFinished = true; 1247 mPisyncFinished = true;
1239 } 1248 }
1240} 1249}
1241 1250
1242KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name ) 1251KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject * parent, const char * name ) : QServerSocket( port, backlog, parent, name )
1243{ 1252{
1244 mPassWord = pw; 1253 mPassWord = pw;
1245 mSocket = 0; 1254 mSocket = 0;
1246 mSyncActionDialog = 0; 1255 mSyncActionDialog = 0;
1247 blockRC = false; 1256 blockRC = false;
1248 mErrorMessage = 0; 1257 mErrorMessage = 0;
1249} 1258}
1250 1259
1251void KServerSocket::newConnection ( int socket ) 1260void KServerSocket::newConnection ( int socket )
1252{ 1261{
1253 // qDebug("KServerSocket:New connection %d ", socket); 1262 // qDebug("KServerSocket:New connection %d ", socket);
1254 if ( mSocket ) { 1263 if ( mSocket ) {
1255 qDebug("KSS::newConnection Socket deleted! "); 1264 qDebug("KSS::newConnection Socket deleted! ");
1256 delete mSocket; 1265 delete mSocket;
1257 mSocket = 0; 1266 mSocket = 0;
1258 } 1267 }
1259 mSocket = new QSocket( this ); 1268 mSocket = new QSocket( this );
1260 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) ); 1269 connect( mSocket , SIGNAL(readyRead()), this, SLOT(readClient()) );
1261 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) ); 1270 connect( mSocket , SIGNAL(delayedCloseFinished()), this, SLOT(discardClient()) );
1262 mSocket->setSocket( socket ); 1271 mSocket->setSocket( socket );
1263} 1272}
1264 1273
1265void KServerSocket::discardClient() 1274void KServerSocket::discardClient()
1266{ 1275{
1267 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1276 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1268} 1277}
1269void KServerSocket::deleteSocket() 1278void KServerSocket::deleteSocket()
1270{ 1279{
1271 qDebug("KSS::deleteSocket"); 1280 qDebug("KSS::deleteSocket");
1272 if ( mSocket ) { 1281 if ( mSocket ) {
1273 delete mSocket; 1282 delete mSocket;
1274 mSocket = 0; 1283 mSocket = 0;
1275 } 1284 }
1276 if ( mErrorMessage ) 1285 if ( mErrorMessage )
1277 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage())); 1286 QTimer::singleShot( 10, this , SLOT ( displayErrorMessage()));
1278} 1287}
1279void KServerSocket::readClient() 1288void KServerSocket::readClient()
1280{ 1289{
1281 if ( blockRC ) 1290 if ( blockRC )
1282 return; 1291 return;
1283 if ( mSocket == 0 ) { 1292 if ( mSocket == 0 ) {
1284 qDebug("ERROR::KSS::readClient(): mSocket == 0 "); 1293 qDebug("ERROR::KSS::readClient(): mSocket == 0 ");
1285 return; 1294 return;
1286 } 1295 }
1287 if ( mErrorMessage ) { 1296 if ( mErrorMessage ) {
1288 mErrorMessage = 999; 1297 mErrorMessage = 999;
1289 error_connect("ERROR_ED\r\n\r\n"); 1298 error_connect("ERROR_ED\r\n\r\n");
1290 return; 1299 return;
1291 } 1300 }
1292 mResource = ""; 1301 mResource = "";
1293 mErrorMessage = 0; 1302 mErrorMessage = 0;
1294 //qDebug("KServerSocket::readClient()"); 1303 //qDebug("KServerSocket::readClient()");
1295 if ( mSocket->canReadLine() ) { 1304 if ( mSocket->canReadLine() ) {
1296 QString line = mSocket->readLine(); 1305 QString line = mSocket->readLine();
1297 //qDebug("KServerSocket readline: %s ", line.latin1()); 1306 //qDebug("KServerSocket readline: %s ", line.latin1());
1298 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line ); 1307 QStringList tokens = QStringList::split( QRegExp("[ \r\n][ \r\n]*"), line );
1299 if ( tokens[0] == "GET" ) { 1308 if ( tokens[0] == "GET" ) {
1300 if ( tokens[1] == mPassWord ) { 1309 if ( tokens[1] == mPassWord ) {
1301 //emit sendFile( mSocket ); 1310 //emit sendFile( mSocket );
1302 bool ok = false; 1311 bool ok = false;
1303 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok); 1312 QDateTime dt = KGlobal::locale()->readDateTime( tokens[2], KLocale::ISODate, &ok);
1304 if ( ok ) { 1313 if ( ok ) {
1305 KSyncManager::mRequestedSyncEvent = dt; 1314 KSyncManager::mRequestedSyncEvent = dt;
1306 } 1315 }
1307 else 1316 else
1308 KSyncManager::mRequestedSyncEvent = QDateTime(); 1317 KSyncManager::mRequestedSyncEvent = QDateTime();
1309 mResource =tokens[3]; 1318 mResource =tokens[3];
1310 send_file(); 1319 send_file();
1311 } 1320 }
1312 else { 1321 else {
1313 mErrorMessage = 1; 1322 mErrorMessage = 1;
1314 error_connect("ERROR_PW\r\n\r\n"); 1323 error_connect("ERROR_PW\r\n\r\n");
1315 } 1324 }
1316 } 1325 }
1317 if ( tokens[0] == "PUT" ) { 1326 if ( tokens[0] == "PUT" ) {
1318 if ( tokens[1] == mPassWord ) { 1327 if ( tokens[1] == mPassWord ) {
1319 //emit getFile( mSocket ); 1328 //emit getFile( mSocket );
1320 blockRC = true; 1329 blockRC = true;
1321 mResource =tokens[2]; 1330 mResource =tokens[2];
1322 get_file(); 1331 get_file();
1323 } 1332 }
1324 else { 1333 else {
1325 mErrorMessage = 2; 1334 mErrorMessage = 2;
1326 error_connect("ERROR_PW\r\n\r\n"); 1335 error_connect("ERROR_PW\r\n\r\n");
1327 end_connect(); 1336 end_connect();
1328 } 1337 }
1329 } 1338 }
1330 if ( tokens[0] == "STOP" ) { 1339 if ( tokens[0] == "STOP" ) {
1331 //emit endConnect(); 1340 //emit endConnect();
1332 end_connect(); 1341 end_connect();
1333 } 1342 }
1334 } 1343 }
1335} 1344}
1336void KServerSocket::displayErrorMessage() 1345void KServerSocket::displayErrorMessage()
1337{ 1346{
1338 if ( mErrorMessage == 1 ) { 1347 if ( mErrorMessage == 1 ) {
1339 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"), i18n("Pi-Sync Error")); 1348 KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"), i18n("Pi-Sync Error"));
1340 mErrorMessage = 0; 1349 mErrorMessage = 0;
1341 } 1350 }
1342 else if ( mErrorMessage == 2 ) { 1351 else if ( mErrorMessage == 2 ) {
1343 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"), i18n("Pi-Sync Error")); 1352 KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"), i18n("Pi-Sync Error"));
1344 mErrorMessage = 0; 1353 mErrorMessage = 0;
1345 } 1354 }
1346} 1355}
1347void KServerSocket::error_connect( QString errmess ) 1356void KServerSocket::error_connect( QString errmess )
1348{ 1357{
1349 QTextStream os( mSocket ); 1358 QTextStream os( mSocket );
1350 os.setEncoding( QTextStream::Latin1 ); 1359 os.setEncoding( QTextStream::Latin1 );
1351 os << errmess ; 1360 os << errmess ;
1352 mSocket->close(); 1361 mSocket->close();
1353 if ( mSocket->state() == QSocket::Idle ) { 1362 if ( mSocket->state() == QSocket::Idle ) {
1354 QTimer::singleShot( 0, this , SLOT ( discardClient())); 1363 QTimer::singleShot( 0, this , SLOT ( discardClient()));
1355 } 1364 }
1356} 1365}
1357void KServerSocket::end_connect() 1366void KServerSocket::end_connect()
1358{ 1367{
1359 delete mSyncActionDialog; 1368 delete mSyncActionDialog;
1360 mSyncActionDialog = 0; 1369 mSyncActionDialog = 0;
1361} 1370}
1362void KServerSocket::send_file() 1371void KServerSocket::send_file()
1363{ 1372{
1364 //qDebug("MainWindow::sendFile(QSocket* s) "); 1373 //qDebug("MainWindow::sendFile(QSocket* s) ");
1365 if ( mSyncActionDialog ) 1374 if ( mSyncActionDialog )
1366 delete mSyncActionDialog; 1375 delete mSyncActionDialog;
1367 mSyncActionDialog = new QDialog ( 0, "input-dialog", true ); 1376 mSyncActionDialog = new QDialog ( 0, "input-dialog", true );
1368 mSyncActionDialog->setCaption(i18n("Received sync request")); 1377 mSyncActionDialog->setCaption(i18n("Received sync request"));
1369 QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog ); 1378 QLabel* label = new QLabel( i18n("Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog."), mSyncActionDialog );
1370 label->setAlignment ( Qt::AlignHCenter ); 1379 label->setAlignment ( Qt::AlignHCenter );
1371 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog ); 1380 QVBoxLayout* lay = new QVBoxLayout( mSyncActionDialog );
1372 lay->addWidget( label); 1381 lay->addWidget( label);
1373 lay->setMargin(7); 1382 lay->setMargin(7);
1374 lay->setSpacing(7); 1383 lay->setSpacing(7);
1375 if ( KSyncManager::mRequestedSyncEvent.isValid() ) { 1384 if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
1376 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent ); 1385 int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent );
1377 //secs = 333; 1386 //secs = 333;
1378 if ( secs < 0 ) 1387 if ( secs < 0 )
1379 secs = secs * (-1); 1388 secs = secs * (-1);
1380 if ( secs > 30 ) 1389 if ( secs > 30 )
1381 //if ( true ) 1390 //if ( true )
1382 { 1391 {
1383 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs ); 1392 QString warning = i18n("Clock skew of\nsyncing devices\nis %1 seconds!").arg( secs );
1384 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1393 QLabel* label = new QLabel( warning, mSyncActionDialog );
1385 label->setAlignment ( Qt::AlignHCenter ); 1394 label->setAlignment ( Qt::AlignHCenter );
1386 lay->addWidget( label); 1395 lay->addWidget( label);
1387 if ( secs > 180 ) 1396 if ( secs > 180 )
1388 { 1397 {
1389 if ( secs > 300 ) { 1398 if ( secs > 300 ) {
1390 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!"))) { 1399 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!"))) {
1391 qDebug("KSS::Sync cancelled ,cs"); 1400 qDebug("KSS::Sync cancelled ,cs");
1392 mErrorMessage = 0; 1401 mErrorMessage = 0;
1393 end_connect(); 1402 end_connect();
1394 error_connect("ERROR_CA\r\n\r\n"); 1403 error_connect("ERROR_CA\r\n\r\n");
1395 return ; 1404 return ;
1396 } 1405 }
1397 } 1406 }
1398 QFont f = label->font(); 1407 QFont f = label->font();
1399 f.setPointSize ( f.pointSize() *2 ); 1408 f.setPointSize ( f.pointSize() *2 );
1400 f. setBold (true ); 1409 f. setBold (true );
1401 QLabel* label = new QLabel( warning, mSyncActionDialog ); 1410 QLabel* label = new QLabel( warning, mSyncActionDialog );
1402 label->setFont( f ); 1411 label->setFont( f );
1403 warning = i18n("ADJUST\nYOUR\nCLOCKS!"); 1412 warning = i18n("ADJUST\nYOUR\nCLOCKS!");
1404 label->setText( warning ); 1413 label->setText( warning );
1405 label->setAlignment ( Qt::AlignHCenter ); 1414 label->setAlignment ( Qt::AlignHCenter );
1406 lay->addWidget( label); 1415 lay->addWidget( label);
1407 mSyncActionDialog->setFixedSize( 230, 300); 1416 mSyncActionDialog->setFixedSize( 230, 300);
1408 } else { 1417 } else {
1409 mSyncActionDialog->setFixedSize( 230, 200); 1418 mSyncActionDialog->setFixedSize( 230, 200);
1410 } 1419 }
1411 } else { 1420 } else {
1412 mSyncActionDialog->setFixedSize( 230, 120); 1421 mSyncActionDialog->setFixedSize( 230, 120);
1413 } 1422 }
1414 } else 1423 } else
1415 mSyncActionDialog->setFixedSize( 230, 120); 1424 mSyncActionDialog->setFixedSize( 230, 120);
1416 mSyncActionDialog->show(); 1425 mSyncActionDialog->show();
1417 mSyncActionDialog->raise(); 1426 mSyncActionDialog->raise();
1418 emit request_file(mResource); 1427 emit request_file(mResource);
1419 emit request_file(); 1428 emit request_file();
1420 qApp->processEvents(); 1429 qApp->processEvents();
1421 QString fileName = mFileName; 1430 QString fileName = mFileName;
1422 QFile file( fileName ); 1431 QFile file( fileName );
1423 if (!file.open( IO_ReadOnly ) ) { 1432 if (!file.open( IO_ReadOnly ) ) {
1424 mErrorMessage = 0; 1433 mErrorMessage = 0;
1425 end_connect(); 1434 end_connect();
1426 error_connect("ERROR_FI\r\n\r\n"); 1435 error_connect("ERROR_FI\r\n\r\n");
1427 return ; 1436 return ;
1428 } 1437 }
1429 mSyncActionDialog->setCaption( i18n("Sending file...") ); 1438 mSyncActionDialog->setCaption( i18n("Sending file...") );
1430 QTextStream ts( &file ); 1439 QTextStream ts( &file );
1431 ts.setEncoding( QTextStream::Latin1 ); 1440 ts.setEncoding( QTextStream::Latin1 );
1432 1441
1433 QTextStream os( mSocket ); 1442 QTextStream os( mSocket );
1434 os.setEncoding( QTextStream::Latin1 ); 1443 os.setEncoding( QTextStream::Latin1 );
1435 while ( ! ts.atEnd() ) { 1444 while ( ! ts.atEnd() ) {
1436 os << ts.readLine() << "\r\n"; 1445 os << ts.readLine() << "\r\n";
1437 } 1446 }
1438 os << "\r\n"; 1447 os << "\r\n";
1439 //os << ts.read(); 1448 //os << ts.read();
1440 file.close(); 1449 file.close();
1441 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") ); 1450 mSyncActionDialog->setCaption( i18n("Waiting for synced file...") );
1442 mSocket->close(); 1451 mSocket->close();
1443 if ( mSocket->state() == QSocket::Idle ) 1452 if ( mSocket->state() == QSocket::Idle )
1444 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1453 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1445} 1454}
1446void KServerSocket::get_file() 1455void KServerSocket::get_file()
1447{ 1456{
1448 mSyncActionDialog->setCaption( i18n("Receiving synced file...") ); 1457 mSyncActionDialog->setCaption( i18n("Receiving synced file...") );
1449 1458
1450 piTime.start(); 1459 piTime.start();
1451 piFileString = ""; 1460 piFileString = "";
1452 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) )); 1461 QTimer::singleShot( 1, this , SLOT (readBackFileFromSocket( ) ));
1453} 1462}
1454 1463
1455 1464
1456void KServerSocket::readBackFileFromSocket() 1465void KServerSocket::readBackFileFromSocket()
1457{ 1466{
1458 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ()); 1467 //qDebug("readBackFileFromSocket() %d ", piTime.elapsed ());
1459 while ( mSocket->canReadLine () ) { 1468 while ( mSocket->canReadLine () ) {
1460 piTime.restart(); 1469 piTime.restart();
1461 QString line = mSocket->readLine (); 1470 QString line = mSocket->readLine ();
1462 piFileString += line; 1471 piFileString += line;
1463 //qDebug("readline: %s ", line.latin1()); 1472 //qDebug("readline: %s ", line.latin1());
1464 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) ); 1473 mSyncActionDialog->setCaption( i18n("Received %1 bytes").arg( piFileString.length() ) );
1465 1474
1466 } 1475 }
1467 if ( piTime.elapsed () < 3000 ) { 1476 if ( piTime.elapsed () < 3000 ) {
1468 // wait for more 1477 // wait for more
1469 //qDebug("waitformore "); 1478 //qDebug("waitformore ");
1470 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) )); 1479 QTimer::singleShot( 100, this , SLOT (readBackFileFromSocket( ) ));
1471 return; 1480 return;
1472 } 1481 }
1473 QString fileName = mFileName; 1482 QString fileName = mFileName;
1474 QFile file ( fileName ); 1483 QFile file ( fileName );
1475 if (!file.open( IO_WriteOnly ) ) { 1484 if (!file.open( IO_WriteOnly ) ) {
1476 delete mSyncActionDialog; 1485 delete mSyncActionDialog;
1477 mSyncActionDialog = 0; 1486 mSyncActionDialog = 0;
1478 qDebug("KSS:Error open read back file "); 1487 qDebug("KSS:Error open read back file ");
1479 piFileString = ""; 1488 piFileString = "";
1480 emit file_received( false, mResource); 1489 emit file_received( false, mResource);
1481 emit file_received( false); 1490 emit file_received( false);
1482 blockRC = false; 1491 blockRC = false;
1483 return ; 1492 return ;
1484 1493
1485 } 1494 }
1486 1495
1487 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1496 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1488 QTextStream ts ( &file ); 1497 QTextStream ts ( &file );
1489 ts.setEncoding( QTextStream::Latin1 ); 1498 ts.setEncoding( QTextStream::Latin1 );
1490 mSyncActionDialog->setCaption( i18n("Writing file to disk...") ); 1499 mSyncActionDialog->setCaption( i18n("Writing file to disk...") );
1491 ts << piFileString; 1500 ts << piFileString;
1492 mSocket->close(); 1501 mSocket->close();
1493 if ( mSocket->state() == QSocket::Idle ) 1502 if ( mSocket->state() == QSocket::Idle )
1494 QTimer::singleShot( 10, this , SLOT ( discardClient())); 1503 QTimer::singleShot( 10, this , SLOT ( discardClient()));
1495 file.close(); 1504 file.close();
1496 piFileString = ""; 1505 piFileString = "";
1497 emit file_received( true, mResource ); 1506 emit file_received( true, mResource );
1498 emit file_received( true); 1507 emit file_received( true);
1499 delete mSyncActionDialog; 1508 delete mSyncActionDialog;
1500 mSyncActionDialog = 0; 1509 mSyncActionDialog = 0;
1501 blockRC = false; 1510 blockRC = false;
1502 1511
1503} 1512}
1504 1513
1505KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port, QString host, QObject * parent, QWidget * cap, const char * name ): QObject( parent, name ) 1514KCommandSocket::KCommandSocket ( QString remres, QString password, Q_UINT16 port, QString host, QObject * parent, QWidget * cap, const char * name ): QObject( parent, name )
1506{ 1515{
1507 mRemoteResource = remres; 1516 mRemoteResource = remres;
1508 if ( mRemoteResource.isEmpty() ) 1517 if ( mRemoteResource.isEmpty() )
1509 mRemoteResource = "ALL"; 1518 mRemoteResource = "ALL";
1510 mPassWord = password; 1519 mPassWord = password;
1511 mSocket = 0; 1520 mSocket = 0;
1512 mFirst = false; 1521 mFirst = false;
1513 mFirstLine = true; 1522 mFirstLine = true;
1514 mPort = port; 1523 mPort = port;
1515 mHost = host; 1524 mHost = host;
1516 tlw = cap; 1525 tlw = cap;
1517 mRetVal = quiet; 1526 mRetVal = quiet;
1518 mTimerSocket = new QTimer ( this ); 1527 mTimerSocket = new QTimer ( this );
1519 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) ); 1528 connect( mTimerSocket, SIGNAL ( timeout () ), this, SLOT ( updateConnectDialog() ) );
1520 mConnectProgress.setCaption( i18n("Pi-Sync") ); 1529 mConnectProgress.setCaption( i18n("Pi-Sync") );
1521 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) ); 1530 connect( &mConnectProgress, SIGNAL ( cancelled () ), this, SLOT ( deleteSocket() ) );
1522 mConnectCount = -1; 1531 mConnectCount = -1;
1523} 1532}
1524void KCommandSocket::sendFileRequest() 1533void KCommandSocket::sendFileRequest()
1525{ 1534{
1526 if ( tlw ) 1535 if ( tlw )
1527 tlw->setCaption( i18n("Connected! Sending request for remote file ...") ); 1536 tlw->setCaption( i18n("Connected! Sending request for remote file ...") );
1528 mConnectProgress.hide(); 1537 mConnectProgress.hide();
1529 mConnectCount = 300;mConnectMax = 300; 1538 mConnectCount = 300;mConnectMax = 300;
1530 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") ); 1539 mConnectProgress.setCaption( i18n("Pi-Sync: Connected!") );
1531 mTimerSocket->start( 100, true ); 1540 mTimerSocket->start( 100, true );
1532 QTextStream os( mSocket ); 1541 QTextStream os( mSocket );
1533 os.setEncoding( QTextStream::Latin1 ); 1542 os.setEncoding( QTextStream::Latin1 );
1534 1543
1535 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate ); 1544 QString curDt = " " +KGlobal::locale()->formatDateTime(QDateTime::currentDateTime().addSecs(-1),true, true,KLocale::ISODate );
1536 os << "GET " << mPassWord << curDt << mRemoteResource << "\r\n\r\n"; 1545 os << "GET " << mPassWord << curDt << mRemoteResource << "\r\n\r\n";
1537} 1546}
1538 1547
1539void KCommandSocket::readFile( QString fn ) 1548void KCommandSocket::readFile( QString fn )
1540{ 1549{
1541 if ( !mSocket ) { 1550 if ( !mSocket ) {
1542 mSocket = new QSocket( this ); 1551 mSocket = new QSocket( this );
1543 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) ); 1552 connect( mSocket, SIGNAL(readyRead()), this, SLOT(startReadFileFromSocket()) );
1544 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1553 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1545 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() )); 1554 connect( mSocket, SIGNAL(connected ()), this, SLOT(sendFileRequest() ));
1546 } 1555 }
1547 mFileString = ""; 1556 mFileString = "";
1548 mFileName = fn; 1557 mFileName = fn;
1549 mFirst = true; 1558 mFirst = true;
1550 if ( tlw ) 1559 if ( tlw )
1551 tlw->setCaption( i18n("Trying to connect to remote...") ); 1560 tlw->setCaption( i18n("Trying to connect to remote...") );
1552 mConnectCount = 30;mConnectMax = 30; 1561 mConnectCount = 30;mConnectMax = 30;
1553 mTimerSocket->start( 1000, true ); 1562 mTimerSocket->start( 1000, true );
1554 mSocket->connectToHost( mHost, mPort ); 1563 mSocket->connectToHost( mHost, mPort );
1555 qDebug("KSS: Waiting for connection"); 1564 qDebug("KSS: Waiting for connection");
1556} 1565}
1557void KCommandSocket::updateConnectDialog() 1566void KCommandSocket::updateConnectDialog()
1558{ 1567{
1559 1568
1560 if ( mConnectCount == mConnectMax ) { 1569 if ( mConnectCount == mConnectMax ) {
1561 //qDebug("MAXX %d", mConnectMax); 1570 //qDebug("MAXX %d", mConnectMax);
1562 mConnectProgress.setTotalSteps ( 30 ); 1571 mConnectProgress.setTotalSteps ( 30 );
1563 mConnectProgress.show(); 1572 mConnectProgress.show();
1564 mConnectProgress.setLabelText( i18n("Trying to connect to remote...") ); 1573 mConnectProgress.setLabelText( i18n("Trying to connect to remote...") );
1565 } 1574 }
1566 //qDebug("updateConnectDialog() %d", mConnectCount); 1575 //qDebug("updateConnectDialog() %d", mConnectCount);
1567 mConnectProgress.raise(); 1576 mConnectProgress.raise();
1568 mConnectProgress.setProgress( (mConnectMax - mConnectCount)%30 ); 1577 mConnectProgress.setProgress( (mConnectMax - mConnectCount)%30 );
1569 --mConnectCount; 1578 --mConnectCount;
1570 if ( mConnectCount > 0 ) 1579 if ( mConnectCount > 0 )
1571 mTimerSocket->start( 1000, true ); 1580 mTimerSocket->start( 1000, true );
1572 else 1581 else
1573 deleteSocket(); 1582 deleteSocket();
1574 1583
1575} 1584}
1576void KCommandSocket::writeFile( QString fileName ) 1585void KCommandSocket::writeFile( QString fileName )
1577{ 1586{
1578 if ( !mSocket ) { 1587 if ( !mSocket ) {
1579 mSocket = new QSocket( this ); 1588 mSocket = new QSocket( this );
1580 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1589 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1581 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) ); 1590 connect( mSocket, SIGNAL(connected ()), this, SLOT(writeFileToSocket()) );
1582 } 1591 }
1583 mFileName = fileName ; 1592 mFileName = fileName ;
1584 mConnectCount = 30;mConnectMax = 30; 1593 mConnectCount = 30;mConnectMax = 30;
1585 mTimerSocket->start( 1000, true ); 1594 mTimerSocket->start( 1000, true );
1586 mSocket->connectToHost( mHost, mPort ); 1595 mSocket->connectToHost( mHost, mPort );
1587} 1596}
1588void KCommandSocket::writeFileToSocket() 1597void KCommandSocket::writeFileToSocket()
1589{ 1598{
1590 mTimerSocket->stop(); 1599 mTimerSocket->stop();
1591 QFile file2( mFileName ); 1600 QFile file2( mFileName );
1592 if (!file2.open( IO_ReadOnly ) ) { 1601 if (!file2.open( IO_ReadOnly ) ) {
1593 mConnectProgress.hide(); 1602 mConnectProgress.hide();
1594 mConnectCount = -1; 1603 mConnectCount = -1;
1595 mRetVal= errorW; 1604 mRetVal= errorW;
1596 mSocket->close(); 1605 mSocket->close();
1597 if ( mSocket->state() == QSocket::Idle ) 1606 if ( mSocket->state() == QSocket::Idle )
1598 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1607 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1599 return ; 1608 return ;
1600 } 1609 }
1601 mConnectProgress.setTotalSteps ( file2.size() ); 1610 mConnectProgress.setTotalSteps ( file2.size() );
1602 mConnectProgress.show(); 1611 mConnectProgress.show();
1603 int count = 0; 1612 int count = 0;
1604 mConnectProgress.setLabelText( i18n("Sending back synced file...") ); 1613 mConnectProgress.setLabelText( i18n("Sending back synced file...") );
1605 mConnectProgress.setProgress( count ); 1614 mConnectProgress.setProgress( count );
1606 mConnectProgress.blockSignals( true ); 1615 mConnectProgress.blockSignals( true );
1607 QTextStream ts2( &file2 ); 1616 QTextStream ts2( &file2 );
1608 ts2.setEncoding( QTextStream::Latin1 ); 1617 ts2.setEncoding( QTextStream::Latin1 );
1609 QTextStream os2( mSocket ); 1618 QTextStream os2( mSocket );
1610 os2.setEncoding( QTextStream::Latin1 ); 1619 os2.setEncoding( QTextStream::Latin1 );
1611 os2 << "PUT " << mPassWord << mRemoteResource << "\r\n\r\n";; 1620 os2 << "PUT " << mPassWord << mRemoteResource << "\r\n\r\n";;
1612 int byteCount = 0; 1621 int byteCount = 0;
1613 int byteMax = file2.size()/53; 1622 int byteMax = file2.size()/53;
1614 while ( ! ts2.atEnd() ) { 1623 while ( ! ts2.atEnd() ) {
1615 qApp->processEvents(); 1624 qApp->processEvents();
1616 if ( byteCount > byteMax ) { 1625 if ( byteCount > byteMax ) {
1617 byteCount = 0; 1626 byteCount = 0;
1618 mConnectProgress.setProgress( count ); 1627 mConnectProgress.setProgress( count );
1619 } 1628 }
1620 QString temp = ts2.readLine(); 1629 QString temp = ts2.readLine();
1621 count += temp.length(); 1630 count += temp.length();
1622 byteCount += temp.length(); 1631 byteCount += temp.length();
1623 os2 << temp << "\r\n"; 1632 os2 << temp << "\r\n";
1624 } 1633 }
1625 file2.close(); 1634 file2.close();
1626 mConnectProgress.hide(); 1635 mConnectProgress.hide();
1627 mConnectCount = -1; 1636 mConnectCount = -1;
1628 os2 << "\r\n"; 1637 os2 << "\r\n";
1629 mRetVal= successW; 1638 mRetVal= successW;
1630 mSocket->close(); 1639 mSocket->close();
1631 if ( mSocket->state() == QSocket::Idle ) 1640 if ( mSocket->state() == QSocket::Idle )
1632 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1641 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1633 mConnectProgress.blockSignals( false ); 1642 mConnectProgress.blockSignals( false );
1634} 1643}
1635void KCommandSocket::sendStop() 1644void KCommandSocket::sendStop()
1636{ 1645{
1637 if ( !mSocket ) { 1646 if ( !mSocket ) {
1638 mSocket = new QSocket( this ); 1647 mSocket = new QSocket( this );
1639 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1648 connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1640 } 1649 }
1641 mSocket->connectToHost( mHost, mPort ); 1650 mSocket->connectToHost( mHost, mPort );
1642 QTextStream os2( mSocket ); 1651 QTextStream os2( mSocket );
1643 os2.setEncoding( QTextStream::Latin1 ); 1652 os2.setEncoding( QTextStream::Latin1 );
1644 os2 << "STOP\r\n\r\n"; 1653 os2 << "STOP\r\n\r\n";
1645 mSocket->close(); 1654 mSocket->close();
1646 if ( mSocket->state() == QSocket::Idle ) 1655 if ( mSocket->state() == QSocket::Idle )
1647 QTimer::singleShot( 10, this , SLOT ( deleteSocket())); 1656 QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
1648} 1657}
1649 1658
1650void KCommandSocket::startReadFileFromSocket() 1659void KCommandSocket::startReadFileFromSocket()
1651{ 1660{
1652 if ( ! mFirst ) 1661 if ( ! mFirst )
1653 return; 1662 return;
1654 mConnectProgress.setLabelText( i18n("Receiving file from remote...") ); 1663 mConnectProgress.setLabelText( i18n("Receiving file from remote...") );
1655 mFirst = false; 1664 mFirst = false;
1656 mFileString = ""; 1665 mFileString = "";
1657 mTime.start(); 1666 mTime.start();
1658 mFirstLine = true; 1667 mFirstLine = true;
1659 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); 1668 QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) ));
1660 1669
1661} 1670}
1662void KCommandSocket::readFileFromSocket() 1671void KCommandSocket::readFileFromSocket()
1663{ 1672{
1664 //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ()); 1673 //qDebug("readBackFileFromSocket() %d ", mTime.elapsed ());
1665 while ( mSocket->canReadLine () ) { 1674 while ( mSocket->canReadLine () ) {
1666 mTime.restart(); 1675 mTime.restart();
1667 QString line = mSocket->readLine (); 1676 QString line = mSocket->readLine ();
1668 if ( mFirstLine ) { 1677 if ( mFirstLine ) {
1669 mFirstLine = false; 1678 mFirstLine = false;
1670 if ( line.left( 6 ) == "ERROR_" ) { 1679 if ( line.left( 6 ) == "ERROR_" ) {
1671 mTimerSocket->stop(); 1680 mTimerSocket->stop();
1672 mConnectCount = -1; 1681 mConnectCount = -1;
1673 if ( line.left( 8 ) == "ERROR_PW" ) { 1682 if ( line.left( 8 ) == "ERROR_PW" ) {
1674 mRetVal = errorPW; 1683 mRetVal = errorPW;
1675 deleteSocket(); 1684 deleteSocket();
1676 return ; 1685 return ;
1677 } 1686 }
1678 if ( line.left( 8 ) == "ERROR_CA" ) { 1687 if ( line.left( 8 ) == "ERROR_CA" ) {
1679 mRetVal = errorCA; 1688 mRetVal = errorCA;
1680 deleteSocket(); 1689 deleteSocket();
1681 return ; 1690 return ;
1682 } 1691 }
1683 if ( line.left( 8 ) == "ERROR_FI" ) { 1692 if ( line.left( 8 ) == "ERROR_FI" ) {
1684 mRetVal = errorFI; 1693 mRetVal = errorFI;
1685 deleteSocket(); 1694 deleteSocket();
1686 return ; 1695 return ;
1687 } 1696 }
1688 if ( line.left( 8 ) == "ERROR_ED" ) { 1697 if ( line.left( 8 ) == "ERROR_ED" ) {
1689 mRetVal = errorED; 1698 mRetVal = errorED;
1690 deleteSocket(); 1699 deleteSocket();
1691 return ; 1700 return ;
1692 } 1701 }
1693 mRetVal = errorUN; 1702 mRetVal = errorUN;
1694 deleteSocket(); 1703 deleteSocket();
1695 return ; 1704 return ;
1696 } 1705 }
1697 } 1706 }
1698 mFileString += line; 1707 mFileString += line;
1699 //qDebug("readline: %s ", line.latin1()); 1708 //qDebug("readline: %s ", line.latin1());
1700 } 1709 }
1701 if ( mTime.elapsed () < 3000 ) { 1710 if ( mTime.elapsed () < 3000 ) {
1702 // wait for more 1711 // wait for more
1703 //qDebug("waitformore "); 1712 //qDebug("waitformore ");
1704 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) )); 1713 QTimer::singleShot( 100, this , SLOT (readFileFromSocket( ) ));
1705 return; 1714 return;
1706 } 1715 }
1707 mTimerSocket->stop(); 1716 mTimerSocket->stop();
1708 mConnectCount = -1; 1717 mConnectCount = -1;
1709 mConnectProgress.hide(); 1718 mConnectProgress.hide();
1710 QString fileName = mFileName; 1719 QString fileName = mFileName;
1711 QFile file ( fileName ); 1720 QFile file ( fileName );
1712 if (!file.open( IO_WriteOnly ) ) { 1721 if (!file.open( IO_WriteOnly ) ) {
1713 mFileString = ""; 1722 mFileString = "";
1714 mRetVal = errorR; 1723 mRetVal = errorR;
1715 qDebug("KSS:Error open temp sync file for writing: %s",fileName.latin1() ); 1724 qDebug("KSS:Error open temp sync file for writing: %s",fileName.latin1() );
1716 deleteSocket(); 1725 deleteSocket();
1717 return ; 1726 return ;
1718 1727
1719 } 1728 }
1720 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1)); 1729 // mView->setLoadedFileVersion(QDateTime::currentDateTime().addSecs( -1));
1721 QTextStream ts ( &file ); 1730 QTextStream ts ( &file );
1722 ts.setEncoding( QTextStream::Latin1 ); 1731 ts.setEncoding( QTextStream::Latin1 );
1723 ts << mFileString; 1732 ts << mFileString;
1724 file.close(); 1733 file.close();
1725 mFileString = ""; 1734 mFileString = "";
1726 mRetVal = successR; 1735 mRetVal = successR;
1727 mSocket->close(); 1736 mSocket->close();
1728 // if state is not idle, deleteSocket(); is called via 1737 // if state is not idle, deleteSocket(); is called via
1729 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) ); 1738 // connect( mSocket, SIGNAL(delayedCloseFinished ()), this, SLOT(deleteSocket()) );
1730 if ( mSocket->state() == QSocket::Idle ) 1739 if ( mSocket->state() == QSocket::Idle )
1731 deleteSocket(); 1740 deleteSocket();
1732} 1741}
1733 1742
1734void KCommandSocket::deleteSocket() 1743void KCommandSocket::deleteSocket()
1735{ 1744{
1736 //qDebug("KCommandSocket::deleteSocket() "); 1745 //qDebug("KCommandSocket::deleteSocket() ");
1737 mConnectProgress.hide(); 1746 mConnectProgress.hide();
1738 1747
1739 if ( mConnectCount >= 0 ) { 1748 if ( mConnectCount >= 0 ) {
1740 mTimerSocket->stop(); 1749 mTimerSocket->stop();
1741 mRetVal = errorTO; 1750 mRetVal = errorTO;
1742 qDebug("KCS::Connection to remote host timed out"); 1751 qDebug("KCS::Connection to remote host timed out");
1743 if ( mSocket ) { 1752 if ( mSocket ) {
1744 mSocket->close(); 1753 mSocket->close();
1745 //if ( mSocket->state() == QSocket::Idle ) 1754 //if ( mSocket->state() == QSocket::Idle )
1746 // deleteSocket(); 1755 // deleteSocket();
1747 delete mSocket; 1756 delete mSocket;
1748 mSocket = 0; 1757 mSocket = 0;
1749 } 1758 }
1750 if ( mConnectCount == 0 ) 1759 if ( mConnectCount == 0 )
1751 KMessageBox::error( 0, i18n("Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?")); 1760 KMessageBox::error( 0, i18n("Connection to remote\nhost timed out!\nDid you forgot to enable\nsyncing on remote host?"));
1752 else if ( tlw ) 1761 else if ( tlw )
1753 tlw->setCaption( i18n("Connection to remote host cancelled!") ); 1762 tlw->setCaption( i18n("Connection to remote host cancelled!") );
1754 emit commandFinished( this, mRetVal ); 1763 emit commandFinished( this, mRetVal );
1755 return; 1764 return;
1756 } 1765 }
1757 //qDebug("KCommandSocket::deleteSocket() %d", mRetVal ); 1766 //qDebug("KCommandSocket::deleteSocket() %d", mRetVal );
1758 if ( mSocket) 1767 if ( mSocket)
1759 delete mSocket; 1768 delete mSocket;
1760 mSocket = 0; 1769 mSocket = 0;
1761 qDebug("commandFinished "); 1770 qDebug("commandFinished ");
1762 emit commandFinished( this, mRetVal ); 1771 emit commandFinished( this, mRetVal );
1763} 1772}
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp
index 27f7932..744a914 100644
--- a/libkdepim/ksyncprefsdialog.cpp
+++ b/libkdepim/ksyncprefsdialog.cpp
@@ -1,903 +1,905 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org> 3 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program 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 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qgroupbox.h> 26#include <qgroupbox.h>
27#include <qbuttongroup.h> 27#include <qbuttongroup.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qfont.h> 29#include <qfont.h>
30#include <qslider.h> 30#include <qslider.h>
31#include <qfile.h> 31#include <qfile.h>
32#include <qdir.h> 32#include <qdir.h>
33#include <qtextstream.h> 33#include <qtextstream.h>
34#include <qcombobox.h> 34#include <qcombobox.h>
35#include <qvbox.h> 35#include <qvbox.h>
36#include <qhbox.h> 36#include <qhbox.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qradiobutton.h> 40#include <qradiobutton.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qstrlist.h> 42#include <qstrlist.h>
43#include <qapplication.h> 43#include <qapplication.h>
44#include <qlayout.h> 44#include <qlayout.h>
45#include <qscrollview.h> 45#include <qscrollview.h>
46#include <qvgroupbox.h> 46#include <qvgroupbox.h>
47#include <qhgroupbox.h> 47#include <qhgroupbox.h>
48 48
49#include <kcolorbutton.h> 49#include <kcolorbutton.h>
50#include <kdebug.h> 50#include <kdebug.h>
51#include <klocale.h> 51#include <klocale.h>
52#include <kglobal.h> 52#include <kglobal.h>
53#include <kfontdialog.h> 53#include <kfontdialog.h>
54#include <kmessagebox.h> 54#include <kmessagebox.h>
55#include <kcolordialog.h> 55#include <kcolordialog.h>
56#include <kiconloader.h> 56#include <kiconloader.h>
57#include <kemailsettings.h> 57#include <kemailsettings.h>
58#include <kstandarddirs.h> 58#include <kstandarddirs.h>
59#include <kfiledialog.h> 59#include <kfiledialog.h>
60#include <kmessagebox.h> 60#include <kmessagebox.h>
61 61
62//#include <kurlrequester.h> 62//#include <kurlrequester.h>
63#include <klineedit.h> 63#include <klineedit.h>
64#include "ksyncprofile.h" 64#include "ksyncprofile.h"
65 65
66 66
67//#include "koprefs.h" 67//#include "koprefs.h"
68 68
69#include "ksyncprefsdialog.h" 69#include "ksyncprefsdialog.h"
70//#include "koglobals.h" 70//#include "koglobals.h"
71 71
72 72
73KSyncPrefsDialog::KSyncPrefsDialog(QWidget *parent, char *name, bool modal) : 73KSyncPrefsDialog::KSyncPrefsDialog(QWidget *parent, char *name, bool modal) :
74 KDialog(parent,name,true) 74 KDialog(parent,name,true)
75{ 75{
76 76
77 setCaption( i18n("Synchronization Preferences")); 77 setCaption( i18n("Synchronization Preferences"));
78 78
79 mSyncProfiles.setAutoDelete( true ); 79 mSyncProfiles.setAutoDelete( true );
80 setupSyncAlgTab(); 80 setupSyncAlgTab();
81} 81}
82 82
83 83
84KSyncPrefsDialog::~KSyncPrefsDialog() 84KSyncPrefsDialog::~KSyncPrefsDialog()
85{ 85{
86} 86}
87 87
88void KSyncPrefsDialog::setupSyncAlgTab() 88void KSyncPrefsDialog::setupSyncAlgTab()
89{ 89{
90 QLabel * lab; 90 QLabel * lab;
91 //QFrame *page = addPage(i18n("Sync Prefs"),0,0); 91 //QFrame *page = addPage(i18n("Sync Prefs"),0,0);
92 QVBox * mainbox = new QVBox( this ); 92 QVBox * mainbox = new QVBox( this );
93 QScrollView* sv = new QScrollView( mainbox ); 93 QScrollView* sv = new QScrollView( mainbox );
94 QHBoxLayout * lay = new QHBoxLayout( this ); 94 QHBoxLayout * lay = new QHBoxLayout( this );
95 lay->addWidget( mainbox ); 95 lay->addWidget( mainbox );
96 QHBox * b_box = new QHBox( mainbox ); 96 QHBox * b_box = new QHBox( mainbox );
97 97
98 QPushButton* button = new QPushButton( i18n("Ok"), b_box ); 98 QPushButton* button = new QPushButton( i18n("Ok"), b_box );
99 connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) ); 99 connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) );
100 button = new QPushButton( i18n("Cancel"), b_box ); 100 button = new QPushButton( i18n("Cancel"), b_box );
101 connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) ); 101 connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) );
102 //QBoxLayout * sl = new QVBoxLayout(this ); 102 //QBoxLayout * sl = new QVBoxLayout(this );
103 //sl->addWidget ( sv ); 103 //sl->addWidget ( sv );
104 sv->setResizePolicy ( QScrollView::AutoOneFit ); 104 sv->setResizePolicy ( QScrollView::AutoOneFit );
105 QFrame *topFrame = new QFrame ( sv ); 105 QFrame *topFrame = new QFrame ( sv );
106 sv->addChild( topFrame ); 106 sv->addChild( topFrame );
107 mSetupSyncAlgTab = topFrame; 107 mSetupSyncAlgTab = topFrame;
108 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 108 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
109 topLayout->setSpacing(spacingHint()); 109 topLayout->setSpacing(spacingHint());
110 topLayout->setMargin(marginHint()); 110 topLayout->setMargin(marginHint());
111 111
112 //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame); 112 //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame);
113 int iii = 0; 113 int iii = 0;
114 //topLayout->addMultiCellWidget(lab , iii,iii,0,1); 114 //topLayout->addMultiCellWidget(lab , iii,iii,0,1);
115 //++iii; 115 //++iii;
116 116
117 mMyMachineName = new QLineEdit(topFrame); 117 mMyMachineName = new QLineEdit(topFrame);
118 lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame); 118 lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame);
119 topLayout->addWidget(lab ,iii,0); 119 topLayout->addWidget(lab ,iii,0);
120 topLayout->addWidget(mMyMachineName,iii,1); 120 topLayout->addWidget(mMyMachineName,iii,1);
121 ++iii; 121 ++iii;
122 122
123 QHBox* buttonbox = new QHBox( topFrame); 123 QHBox* buttonbox = new QHBox( topFrame);
124 topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1); 124 topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1);
125 ++iii; 125 ++iii;
126 button = new QPushButton( i18n("New profile"), buttonbox ); 126 button = new QPushButton( i18n("New profile"), buttonbox );
127 connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) ); 127 connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) );
128 128
129 button = new QPushButton( i18n("Clone profile"), buttonbox ); 129 button = new QPushButton( i18n("Clone profile"), buttonbox );
130 connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) ); 130 connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) );
131 131
132 button = new QPushButton( i18n("Delete profile"), buttonbox ); 132 button = new QPushButton( i18n("Delete profile"), buttonbox );
133 connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) ); 133 connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) );
134 134
135 mProfileBox = new QComboBox(topFrame); 135 mProfileBox = new QComboBox(topFrame);
136 mProfileBox->setEditable ( true ); 136 mProfileBox->setEditable ( true );
137 mProfileBox->setInsertionPolicy(QComboBox::NoInsertion); 137 mProfileBox->setInsertionPolicy(QComboBox::NoInsertion);
138 connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) ); 138 connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) );
139 connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) ); 139 connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) );
140 140
141 lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame); 141 lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame);
142 topLayout->addWidget(lab ,iii,0); 142 topLayout->addWidget(lab ,iii,0);
143 topLayout->addWidget(mProfileBox, iii,1); 143 topLayout->addWidget(mProfileBox, iii,1);
144 ++iii; 144 ++iii;
145 145
146 146
147 147
148 QHGroupBox *iims = new QHGroupBox( i18n("Multiple Sync options"), topFrame); 148 QHGroupBox *iims = new QHGroupBox( i18n("Multiple Sync options"), topFrame);
149 new QLabel( i18n("Include in multiple "), iims ); 149 new QLabel( i18n("Include in multiple "), iims );
150 mIncludeInRing = new QCheckBox( i18n("calendar "), iims ); 150 mIncludeInRing = new QCheckBox( i18n("calendar "), iims );
151 mIncludeInRingAB = new QCheckBox( i18n("addressbook "), iims ); 151 mIncludeInRingAB = new QCheckBox( i18n("addressbook "), iims );
152 mIncludeInRingPWM = new QCheckBox( i18n("pwmanager"), iims ); 152 mIncludeInRingPWM = new QCheckBox( i18n("pwmanager"), iims );
153 new QLabel( i18n(" sync"), iims ); 153 new QLabel( i18n(" sync"), iims );
154 topLayout->addMultiCellWidget(iims, iii,iii,0,1); 154 topLayout->addMultiCellWidget(iims, iii,iii,0,1);
155 ++iii; 155 ++iii;
156 QVGroupBox* gb0 = new QVGroupBox( i18n("Sync algo options"), topFrame); 156 QVGroupBox* gb0 = new QVGroupBox( i18n("Sync algo options"), topFrame);
157 topLayout->addMultiCellWidget(gb0, iii,iii,0,1); 157 topLayout->addMultiCellWidget(gb0, iii,iii,0,1);
158 ++iii; 158 ++iii;
159 QButtonGroup* gr; 159 QButtonGroup* gr;
160 { 160 {
161 QVGroupBox* topFrame = gb0; 161 QVGroupBox* topFrame = gb0;
162 162
163 163
164 164
165 mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame ); 165 mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame );
166 //topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1); 166 //topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1);
167 //++iii; 167 //++iii;
168 gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame); 168 gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame);
169 //topLayout->addMultiCellWidget(gr, iii,iii,0,1); 169 //topLayout->addMultiCellWidget(gr, iii,iii,0,1);
170 //++iii; 170 //++iii;
171 loc = new QRadioButton ( i18n("Take local entry on conflict"), gr ); 171 loc = new QRadioButton ( i18n("Take local entry on conflict"), gr );
172 rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr ); 172 rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr );
173 newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr ); 173 newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr );
174 ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr ); 174 ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr );
175 f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr ); 175 f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr );
176 f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr ); 176 f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr );
177 // both = new QRadioButton ( i18n("Take both on conflict"), gr ); 177 // both = new QRadioButton ( i18n("Take both on conflict"), gr );
178 178
179 mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame ); 179 mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame );
180 //topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1); 180 //topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1);
181 //++iii; 181 //++iii;
182 182
183#if 0 183#if 0
184 QHGroupBox* gb51 = new QHGroupBox( i18n("Local resources to sync with:"), topFrame); 184 QHGroupBox* gb51 = new QHGroupBox( i18n("Local resources to sync with:"), topFrame);
185 { 185 {
186 QVBox * fibo2 = new QVBox ( gb51 ); 186 QVBox * fibo2 = new QVBox ( gb51 );
187 new QLabel ( i18n("Calendar resources:"), fibo2 ); 187 new QLabel ( i18n("Calendar resources:"), fibo2 );
188 //mFilterInCal = new QComboBox( fibo2 ); 188 //mFilterInCal = new QComboBox( fibo2 );
189 fibo2 = new QVBox ( gb51 ); 189 fibo2 = new QVBox ( gb51 );
190 new QLabel ( i18n("Addressbook resources:"), fibo2 ); 190 new QLabel ( i18n("Addressbook resources:"), fibo2 );
191 //mFilterInAB = new QComboBox( fibo2 ); 191 //mFilterInAB = new QComboBox( fibo2 );
192 } 192 }
193#endif 193#endif
194 QHGroupBox* gb5 = new QHGroupBox( i18n("Apply filter when adding data to local:"), topFrame); 194 QHGroupBox* gb5 = new QHGroupBox( i18n("Apply filter when adding data to local:"), topFrame);
195 QVBox * fibo2 = new QVBox ( gb5 ); 195 QVBox * fibo2 = new QVBox ( gb5 );
196 new QLabel ( i18n("Incoming calendar filter:"), fibo2 ); 196 new QLabel ( i18n("Incoming calendar filter:"), fibo2 );
197 mFilterInCal = new QComboBox( fibo2 ); 197 mFilterInCal = new QComboBox( fibo2 );
198 fibo2 = new QVBox ( gb5 ); 198 fibo2 = new QVBox ( gb5 );
199 new QLabel ( i18n("Incoming addressbook filter:"), fibo2 ); 199 new QLabel ( i18n("Incoming addressbook filter:"), fibo2 );
200 mFilterInAB = new QComboBox( fibo2 ); 200 mFilterInAB = new QComboBox( fibo2 );
201 201
202 mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame ); 202 mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame );
203 // topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1); 203 // topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1);
204 // ++iii; 204 // ++iii;
205 205
206 QVGroupBox* gb2 = new QVGroupBox( i18n("Write back options"), topFrame); 206 QVGroupBox* gb2 = new QVGroupBox( i18n("Write back options"), topFrame);
207 //topLayout->addMultiCellWidget(gb2, iii,iii,0,1); 207 //topLayout->addMultiCellWidget(gb2, iii,iii,0,1);
208 //++iii; 208 //++iii;
209 { 209 {
210 QVGroupBox*topFrame = gb2; 210 QVGroupBox*topFrame = gb2;
211 mWriteBackExisting= new QCheckBox( i18n("Write back (on remote) existing entries only"), topFrame ); 211 mWriteBackExisting= new QCheckBox( i18n("Write back (on remote) existing entries only"), topFrame );
212 QHGroupBox* gb4 = new QHGroupBox( i18n("Apply filter when adding data to remote:"), topFrame); 212 QHGroupBox* gb4 = new QHGroupBox( i18n("Apply filter when adding data to remote:"), topFrame);
213 QVBox * fibo = new QVBox ( gb4 ); 213 QVBox * fibo = new QVBox ( gb4 );
214 new QLabel ( i18n("Outgoing calendar filter:"), fibo ); 214 new QLabel ( i18n("Outgoing calendar filter:"), fibo );
215 mFilterOutCal = new QComboBox( fibo ); 215 mFilterOutCal = new QComboBox( fibo );
216 fibo = new QVBox ( gb4 ); 216 fibo = new QVBox ( gb4 );
217 new QLabel ( i18n("Outgoing addressbook filter:"), fibo ); 217 new QLabel ( i18n("Outgoing addressbook filter:"), fibo );
218 mFilterOutAB = new QComboBox( fibo ); 218 mFilterOutAB = new QComboBox( fibo );
219 //topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1); 219 //topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1);
220 //++iii; 220 //++iii;
221 mWriteBackFuture= new QCheckBox( i18n("Write back (calendar) entries for time period only"), topFrame ); 221 mWriteBackFuture= new QCheckBox( i18n("Write back (calendar) entries for time period only"), topFrame );
222 //topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1); 222 //topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1);
223 //++iii; 223 //++iii;
224 QHGroupBox* gb3 = new QHGroupBox( i18n("Time period"), topFrame); 224 QHGroupBox* gb3 = new QHGroupBox( i18n("Time period"), topFrame);
225 connect ( mWriteBackFuture, SIGNAL( toggled ( bool ) ), gb3, SLOT ( setEnabled ( bool ) ) ); 225 connect ( mWriteBackFuture, SIGNAL( toggled ( bool ) ), gb3, SLOT ( setEnabled ( bool ) ) );
226 new QLabel( i18n("From ") , gb3 ); 226 new QLabel( i18n("From ") , gb3 );
227 mWriteBackPastWeeks= new QSpinBox(1,104, 1, gb3); 227 mWriteBackPastWeeks= new QSpinBox(1,104, 1, gb3);
228 new QLabel( i18n(" weeks in the past to ") , gb3 ); 228 new QLabel( i18n(" weeks in the past to ") , gb3 );
229 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, gb3); 229 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, gb3);
230 new QLabel( i18n(" weeks in the future ") , gb3 ); 230 new QLabel( i18n(" weeks in the future ") , gb3 );
231 //topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1); 231 //topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1);
232 //++iii; 232 //++iii;
233 gb3->setEnabled( false ); 233 gb3->setEnabled( false );
234 connect ( mWriteBackExisting, SIGNAL( toggled ( bool ) ), gb4, SLOT ( setDisabled ( bool ) ) ); 234 connect ( mWriteBackExisting, SIGNAL( toggled ( bool ) ), gb4, SLOT ( setDisabled ( bool ) ) );
235 } 235 }
236 connect ( mWriteBackFile, SIGNAL( toggled ( bool ) ), gb2, SLOT ( setEnabled ( bool ) ) ); 236 connect ( mWriteBackFile, SIGNAL( toggled ( bool ) ), gb2, SLOT ( setEnabled ( bool ) ) );
237 237
238 } 238 }
239 proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame); 239 proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame);
240 gr = proGr; 240 gr = proGr;
241 topLayout->addMultiCellWidget(gr, iii,iii,0,1); 241 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
242 ++iii; 242 ++iii;
243 mIsLocal = new QRadioButton ( i18n("Local file"), gr ); 243 mIsLocal = new QRadioButton ( i18n("Local file"), gr );
244 mIsPi = new QRadioButton ( i18n("Pi-Sync - all resources ( direct Kx/Pi to Kx/Pi sync )"), gr ); 244 mIsPi = new QRadioButton ( i18n("Pi-Sync - all resources ( direct Kx/Pi to Kx/Pi sync )"), gr );
245 connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 245 connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
246 mIsPiSpecific = new QRadioButton ( i18n("Pi-Sync - selected resources ( direct Kx/Pi to Kx/Pi sync )"), gr ); 246 mIsPiSpecific = new QRadioButton ( i18n("Pi-Sync - selected resources ( direct Kx/Pi to Kx/Pi sync )"), gr );
247 connect (mIsPiSpecific, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 247 connect (mIsPiSpecific, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
248 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); 248 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr );
249 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 249 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
250 mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr ); 250 mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr );
251 connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 251 connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
252 252
253 QVGroupBox* gb1 = new QVGroupBox( i18n("Profile kind specific settings"), topFrame); 253 QVGroupBox* gb1 = new QVGroupBox( i18n("Profile kind specific settings"), topFrame);
254 topLayout->addMultiCellWidget(gb1, iii,iii,0,1); 254 topLayout->addMultiCellWidget(gb1, iii,iii,0,1);
255 ++iii; 255 ++iii;
256 256
257 // ****************************************** 257 // ******************************************
258 // Profile kind specific settings 258 // Profile kind specific settings
259 { 259 {
260 // *** phone ******************************* 260 // *** phone *******************************
261 QVGroupBox* topFrame = gb1; 261 QVGroupBox* topFrame = gb1;
262 phoneWidget = new QVBox( topFrame); 262 phoneWidget = new QVBox( topFrame);
263 //topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1); 263 //topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1);
264 //++iii; 264 //++iii;
265 mWriteContactToSIM = 0;//new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget ); 265 mWriteContactToSIM = 0;//new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget );
266 QHBox* temphb = new QHBox( phoneWidget ); 266 QHBox* temphb = new QHBox( phoneWidget );
267 new QLabel( i18n("I/O device: "), temphb ); 267 new QLabel( i18n("I/O device: "), temphb );
268 mPhoneDevice = new QLineEdit( temphb); 268 mPhoneDevice = new QLineEdit( temphb);
269 button = new QPushButton( i18n("Help..."), temphb ); 269 button = new QPushButton( i18n("Help..."), temphb );
270 connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) ); 270 connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) );
271 271
272 272
273 temphb = new QHBox( phoneWidget ); 273 temphb = new QHBox( phoneWidget );
274 new QLabel( i18n("Connection: "), temphb ); 274 new QLabel( i18n("Connection: "), temphb );
275 mPhoneConnection = new QLineEdit( temphb); 275 mPhoneConnection = new QLineEdit( temphb);
276 button = new QPushButton( i18n("Help..."), temphb ); 276 button = new QPushButton( i18n("Help..."), temphb );
277 connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) ); 277 connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) );
278 278
279 279
280 temphb = new QHBox( phoneWidget ); 280 temphb = new QHBox( phoneWidget );
281 new QLabel( i18n("Model(opt.): "), temphb ); 281 new QLabel( i18n("Model(opt.): "), temphb );
282 mPhoneModel = new QLineEdit( temphb); 282 mPhoneModel = new QLineEdit( temphb);
283 button = new QPushButton( i18n("Help..."), temphb ); 283 button = new QPushButton( i18n("Help..."), temphb );
284 connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) ); 284 connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) );
285 285
286 // *** local******************************* 286 // *** local*******************************
287 localFileWidget = new QVBox( topFrame); 287 localFileWidget = new QVBox( topFrame);
288 //topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1); 288 //topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
289 //++iii; 289 //++iii;
290 temphb = new QHBox( localFileWidget ); 290 temphb = new QHBox( localFileWidget );
291 291
292 lab = new QLabel( i18n("Local file Cal:"), temphb ); 292 lab = new QLabel( i18n("Local file Cal:"), temphb );
293 lab = new QLabel( i18n("Local file ABook:"), temphb ); 293 lab = new QLabel( i18n("Local file ABook:"), temphb );
294 lab = new QLabel( i18n("Local file PWMgr:"), temphb ); 294 lab = new QLabel( i18n("Local file PWMgr:"), temphb );
295 temphb = new QHBox( localFileWidget ); 295 temphb = new QHBox( localFileWidget );
296 button = new QPushButton( i18n("Choose..."), temphb ); 296 button = new QPushButton( i18n("Choose..."), temphb );
297 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) ); 297 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) );
298 button = new QPushButton( i18n("Choose..."), temphb ); 298 button = new QPushButton( i18n("Choose..."), temphb );
299 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) ); 299 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) );
300 button = new QPushButton( i18n("Choose..."), temphb ); 300 button = new QPushButton( i18n("Choose..."), temphb );
301 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFilePWM() ) ); 301 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFilePWM() ) );
302 temphb = new QHBox( localFileWidget ); 302 temphb = new QHBox( localFileWidget );
303 303
304 mRemoteFile = new QLineEdit( temphb); 304 mRemoteFile = new QLineEdit( temphb);
305 mRemoteFileAB = new QLineEdit( temphb); 305 mRemoteFileAB = new QLineEdit( temphb);
306 mRemoteFilePWM = new QLineEdit( temphb); 306 mRemoteFilePWM = new QLineEdit( temphb);
307 mIsKapiFileL = new QCheckBox( i18n("Addressbook file (*.vcf) is used by KA/Pi"), localFileWidget ); 307 mIsKapiFileL = new QCheckBox( i18n("Addressbook file (*.vcf) is used by KA/Pi"), localFileWidget );
308 308
309 309
310 // *** remote******************************* 310 // *** remote*******************************
311 remoteFileWidget = new QVBox( topFrame); 311 remoteFileWidget = new QVBox( topFrame);
312 //topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1); 312 //topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
313 //++iii; 313 //++iii;
314 temphb = new QHBox( remoteFileWidget ); 314 temphb = new QHBox( remoteFileWidget );
315 new QLabel( i18n("Calendar:"), temphb); 315 new QLabel( i18n("Calendar:"), temphb);
316 new QLabel( i18n("AddressBook:"), temphb); 316 new QLabel( i18n("AddressBook:"), temphb);
317 new QLabel( i18n("PWManager:"), temphb); 317 new QLabel( i18n("PWManager:"), temphb);
318 318
319 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget); 319 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
320 temphb = new QHBox( remoteFileWidget ); 320 temphb = new QHBox( remoteFileWidget );
321 mRemotePrecommand = new QLineEdit(temphb); 321 mRemotePrecommand = new QLineEdit(temphb);
322 mRemotePrecommandAB = new QLineEdit(temphb); 322 mRemotePrecommandAB = new QLineEdit(temphb);
323 mRemotePrecommandPWM = new QLineEdit(temphb); 323 mRemotePrecommandPWM = new QLineEdit(temphb);
324 324
325 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget); 325 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget);
326 temphb = new QHBox( remoteFileWidget ); 326 temphb = new QHBox( remoteFileWidget );
327 mLocalTempFile = new QLineEdit(temphb); 327 mLocalTempFile = new QLineEdit(temphb);
328 mLocalTempFileAB = new QLineEdit(temphb); 328 mLocalTempFileAB = new QLineEdit(temphb);
329 mLocalTempFilePWM = new QLineEdit(temphb); 329 mLocalTempFilePWM = new QLineEdit(temphb);
330 330
331 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget); 331 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
332 temphb = new QHBox( remoteFileWidget ); 332 temphb = new QHBox( remoteFileWidget );
333 mRemotePostcommand = new QLineEdit(temphb ); 333 mRemotePostcommand = new QLineEdit(temphb );
334 mRemotePostcommandAB = new QLineEdit(temphb ); 334 mRemotePostcommandAB = new QLineEdit(temphb );
335 mRemotePostcommandPWM = new QLineEdit(temphb ); 335 mRemotePostcommandPWM = new QLineEdit(temphb );
336 mIsKapiFileR = new QCheckBox( i18n("Addressbook file is used by KA/Pi"), remoteFileWidget ); 336 mIsKapiFileR = new QCheckBox( i18n("Addressbook file is used by KA/Pi"), remoteFileWidget );
337 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget); 337 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
338 temphb = new QHBox( remoteFileWidget ); 338 temphb = new QHBox( remoteFileWidget );
339 button = new QPushButton( i18n("ssh/scp"), temphb ); 339 button = new QPushButton( i18n("ssh/scp"), temphb );
340 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) ); 340 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
341 button = new QPushButton( i18n("ftp"), temphb ); 341 button = new QPushButton( i18n("ftp"), temphb );
342 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) ); 342 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
343 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget); 343 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
344 344
345 // *** pi-sync******************************* 345 // *** pi-sync*******************************
346 piWidget = new QVBox( topFrame); 346 piWidget = new QVBox( topFrame);
347 //topLayout->addMultiCellWidget(piWidget, iii,iii,0,1); 347 //topLayout->addMultiCellWidget(piWidget, iii,iii,0,1);
348 //++iii; 348 //++iii;
349 temphb = new QHBox( piWidget ); 349 temphb = new QHBox( piWidget );
350 new QLabel( i18n("Calendar:"), temphb); 350 new QLabel( i18n("Calendar:"), temphb);
351 new QLabel( i18n("AddressBook:"), temphb); 351 new QLabel( i18n("AddressBook:"), temphb);
352 new QLabel( i18n("PWManager:"), temphb); 352 new QLabel( i18n("PWManager:"), temphb);
353 353
354 lab = new QLabel( i18n("Password for remote access: (could be the same for each)"), piWidget); 354 lab = new QLabel( i18n("Password for remote access: (could be the same for each)"), piWidget);
355 temphb = new QHBox( piWidget ); 355 temphb = new QHBox( piWidget );
356 mRemotePw = new QLineEdit(temphb); 356 mRemotePw = new QLineEdit(temphb);
357 mRemotePwAB = new QLineEdit(temphb); 357 mRemotePwAB = new QLineEdit(temphb);
358 mRemotePwPWM = new QLineEdit(temphb); 358 mRemotePwPWM = new QLineEdit(temphb);
359 359
360 lab = new QLabel( i18n("Remote IP address: (could be the same for each)"), piWidget); 360 lab = new QLabel( i18n("Remote IP address: (could be the same for each)"), piWidget);
361 temphb = new QHBox( piWidget ); 361 temphb = new QHBox( piWidget );
362 mRemoteIP = new QLineEdit(temphb); 362 mRemoteIP = new QLineEdit(temphb);
363 mRemoteIPAB = new QLineEdit(temphb); 363 mRemoteIPAB = new QLineEdit(temphb);
364 mRemoteIPPWM = new QLineEdit(temphb); 364 mRemoteIPPWM = new QLineEdit(temphb);
365 365
366 lab = new QLabel( i18n("Remote port number: (should be different for each)"), piWidget); 366 lab = new QLabel( i18n("Remote port number: (should be different for each)"), piWidget);
367 temphb = new QHBox( piWidget ); 367 temphb = new QHBox( piWidget );
368 mRemotePort = new QLineEdit(temphb); 368 mRemotePort = new QLineEdit(temphb);
369 mRemotePortAB = new QLineEdit(temphb); 369 mRemotePortAB = new QLineEdit(temphb);
370 mRemotePortPWM = new QLineEdit(temphb); 370 mRemotePortPWM = new QLineEdit(temphb);
371 371
372 lab = new QLabel( i18n("Local/remote Resource sync partners"), piWidget); 372 lab = new QLabel( i18n("Local/remote Resource sync partners"), piWidget);
373 mTableBox = new QHBox( piWidget ); 373 mTableBox = new QHBox( piWidget );
374 mResTableKopi = new QTable( 1, 1, mTableBox ); 374 mResTableKopi = new QTable( 1, 1, mTableBox );
375 mResTableKapi = new QTable( 1, 1, mTableBox ); 375 mResTableKapi = new QTable( 1, 1, mTableBox );
376 mResTablePwmpi = new QTable( 1, 1, mTableBox ); 376 mResTablePwmpi = new QTable( 1, 1, mTableBox );
377 mResTableKopi->horizontalHeader()->setLabel( 0, i18n("Remote") ); 377 mResTableKopi->horizontalHeader()->setLabel( 0, i18n("Remote") );
378 mResTableKapi->horizontalHeader()->setLabel( 0, i18n("Remote") ); 378 mResTableKapi->horizontalHeader()->setLabel( 0, i18n("Remote") );
379 mResTablePwmpi->horizontalHeader()->setLabel( 0, i18n("Remote") ); 379 mResTablePwmpi->horizontalHeader()->setLabel( 0, i18n("Remote") );
380 mResTableKopi->setLeftMargin( 80 ); 380 mResTableKopi->setLeftMargin( 80 );
381 } 381 }
382 // ****************************************** 382 // ******************************************
383 // Profile kind specific settings END 383 // Profile kind specific settings END
384 384
385} 385}
386 386
387void KSyncPrefsDialog::readResources() 387void KSyncPrefsDialog::readResources()
388{ 388{
389 mResourcesKopi.clear(); 389 mResourcesKopi.clear();
390 mResourcesKapi.clear(); 390 mResourcesKapi.clear();
391 KConfig fc(locateLocal("config","kopicalendarrc")); 391 KConfig fc(locateLocal("config","kopicalendarrc"));
392 fc.setGroup("CC"); 392 fc.setGroup("CC");
393 int numCals = fc.readNumEntry("NumberCalendars",0 ); 393 int numCals = fc.readNumEntry("NumberCalendars",0 );
394 int curCal = 1; 394 int curCal = 1;
395 while ( curCal <= numCals ) { 395 while ( curCal <= numCals ) {
396 QString prefix = "Cal_" +QString::number( curCal ); 396 QString prefix = "Cal_" +QString::number( curCal );
397 QString name = fc.readEntry( prefix+"_Name", "Calendar"); 397 QString name = fc.readEntry( prefix+"_Name", "Calendar");
398 mResourcesKopi.append( name ); 398 mResourcesKopi.append( name );
399 ++curCal; 399 ++curCal;
400 } 400 }
401 mResTableKopi->setNumRows( mResourcesKopi.count() ); 401 mResTableKopi->setNumRows( mResourcesKopi.count() );
402 int i; 402 int i;
403 for ( i = 0;i < mResourcesKopi.count(); ++i ) { 403 for ( i = 0;i < mResourcesKopi.count(); ++i ) {
404 mResTableKopi->verticalHeader ()->setLabel( i, mResourcesKopi[i] ); 404 mResTableKopi->verticalHeader ()->setLabel( i, mResourcesKopi[i] );
405 } 405 }
406} 406}
407void KSyncPrefsDialog::readFilter() 407void KSyncPrefsDialog::readFilter()
408{ 408{
409 mFilterKapi.clear(); 409 mFilterKapi.clear();
410 mFilterKopi.clear(); 410 mFilterKopi.clear();
411 KConfig cfgko(locateLocal("config","korganizerrc")); 411 KConfig cfgko(locateLocal("config","korganizerrc"));
412 KConfig cfgka(locateLocal("config","kaddressbookrc")); 412 KConfig cfgka(locateLocal("config","kaddressbookrc"));
413 cfgko.setGroup("General"); 413 cfgko.setGroup("General");
414 mFilterKopi = cfgko.readListEntry("CalendarFilters"); 414 mFilterKopi = cfgko.readListEntry("CalendarFilters");
415 cfgka.setGroup("Filter"); 415 cfgka.setGroup("Filter");
416 int count = cfgka.readNumEntry( "Count", 0 ); 416 int count = cfgka.readNumEntry( "Count", 0 );
417 for ( int i = 0; i < count; i++ ) { 417 for ( int i = 0; i < count; i++ ) {
418 cfgka.setGroup("Filter_"+QString::number( i ) ); 418 cfgka.setGroup("Filter_"+QString::number( i ) );
419 mFilterKapi.append( cfgka.readEntry("Name", "internal error") ); 419 mFilterKapi.append( cfgka.readEntry("Name", "internal error") );
420 } 420 }
421 mFilterOutCal->clear(); 421 mFilterOutCal->clear();
422 mFilterInCal->clear(); 422 mFilterInCal->clear();
423 mFilterOutAB->clear(); 423 mFilterOutAB->clear();
424 mFilterInAB->clear(); 424 mFilterInAB->clear();
425 QStringList temp = mFilterKopi; 425 QStringList temp = mFilterKopi;
426 temp.prepend(i18n("No Filter") ); 426 temp.prepend(i18n("No Filter") );
427 mFilterOutCal->insertStringList( temp ); 427 mFilterOutCal->insertStringList( temp );
428 mFilterInCal->insertStringList( temp ); 428 mFilterInCal->insertStringList( temp );
429 temp = mFilterKapi; 429 temp = mFilterKapi;
430 temp.prepend(i18n("No Filter") ); 430 temp.prepend(i18n("No Filter") );
431 mFilterOutAB->insertStringList( temp ); 431 mFilterOutAB->insertStringList( temp );
432 mFilterInAB->insertStringList( temp ); 432 mFilterInAB->insertStringList( temp );
433} 433}
434 434
435void KSyncPrefsDialog::slotOK() 435void KSyncPrefsDialog::slotOK()
436{ 436{
437 if ( mMyMachineName->text() == "undefined" ) { 437 if ( mMyMachineName->text() == "undefined" ) {
438 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error")); 438 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error"));
439 return; 439 return;
440 } 440 }
441 int i; 441 int i;
442 for (i = 0; i < mSyncProfileNames.count(); ++ i) { 442 for (i = 0; i < mSyncProfileNames.count(); ++ i) {
443 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) { 443 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) {
444 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error")); 444 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error"));
445 return; 445 return;
446 } 446 }
447 } 447 }
448 usrWriteConfig(); 448 usrWriteConfig();
449 QDialog::accept(); 449 QDialog::accept();
450} 450}
451void KSyncPrefsDialog::accept() 451void KSyncPrefsDialog::accept()
452{ 452{
453 slotOK(); 453 slotOK();
454} 454}
455void KSyncPrefsDialog::chooseFile() 455void KSyncPrefsDialog::chooseFile()
456{ 456{
457 QString fn = QDir::homeDirPath(); 457 QString fn = QDir::homeDirPath();
458 458
459 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 459 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
460 if ( fn == "" ) 460 if ( fn == "" )
461 return; 461 return;
462 mRemoteFile->setText( fn ); 462 mRemoteFile->setText( fn );
463} 463}
464 464
465void KSyncPrefsDialog::chooseFileAB() 465void KSyncPrefsDialog::chooseFileAB()
466{ 466{
467 QString fn = QDir::homeDirPath(); 467 QString fn = QDir::homeDirPath();
468 468
469 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.vcf)"), this ); 469 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.vcf)"), this );
470 if ( fn == "" ) 470 if ( fn == "" )
471 return; 471 return;
472 mRemoteFileAB->setText( fn ); 472 mRemoteFileAB->setText( fn );
473} 473}
474 474
475void KSyncPrefsDialog::chooseFilePWM() 475void KSyncPrefsDialog::chooseFilePWM()
476{ 476{
477 QString fn = QDir::homeDirPath(); 477 QString fn = QDir::homeDirPath();
478 478
479 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.pwm)"), this ); 479 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.pwm)"), this );
480 if ( fn == "" ) 480 if ( fn == "" )
481 return; 481 return;
482 mRemoteFilePWM->setText( fn ); 482 mRemoteFilePWM->setText( fn );
483} 483}
484 484
485void KSyncPrefsDialog::textChanged( const QString & s ) 485void KSyncPrefsDialog::textChanged( const QString & s )
486{ 486{
487 if ( mProfileBox->count() == 0 ) 487 if ( mProfileBox->count() == 0 )
488 return; 488 return;
489 if ( currentSelection < 3 ) { 489 if ( currentSelection < 3 ) {
490 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error")); 490 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error"));
491 mProfileBox->blockSignals( true ); 491 mProfileBox->blockSignals( true );
492 mProfileBox->setCurrentItem(mProfileBox-> currentItem ()); 492 mProfileBox->setCurrentItem(mProfileBox-> currentItem ());
493 mProfileBox->blockSignals( false ); 493 mProfileBox->blockSignals( false );
494 return; 494 return;
495 } 495 }
496 //qDebug("cur i %d ",mProfileBox-> currentItem () ); 496 //qDebug("cur i %d ",mProfileBox-> currentItem () );
497 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ; 497 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ;
498 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ; 498 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ;
499 prof->setName( s ); 499 prof->setName( s );
500 mSyncProfileNames[mProfileBox-> currentItem ()] = s; 500 mSyncProfileNames[mProfileBox-> currentItem ()] = s;
501} 501}
502void KSyncPrefsDialog::profileChanged( int item ) 502void KSyncPrefsDialog::profileChanged( int item )
503{ 503{
504 //qDebug("KSyncPrefsDialog::profileChanged before %d, count %d ", item, mProfileBox->count() ); 504 //qDebug("KSyncPrefsDialog::profileChanged before %d, count %d ", item, mProfileBox->count() );
505 KSyncProfile* prof; 505 KSyncProfile* prof;
506 saveProfile(); 506 saveProfile();
507 readFilter(); 507 readFilter();
508 readResources(); 508 readResources();
509 currentSelection = item; 509 currentSelection = item;
510 prof = mSyncProfiles.at(item) ; 510 prof = mSyncProfiles.at(item) ;
511 511
512 mRemotePw->setText(prof->getRemotePw()); 512 mRemotePw->setText(prof->getRemotePw());
513 mRemoteIP->setText(prof->getRemoteIP()); 513 mRemoteIP->setText(prof->getRemoteIP());
514 mRemotePort->setText(prof->getRemotePort()); 514 mRemotePort->setText(prof->getRemotePort());
515 515
516 mRemotePwAB->setText(prof->getRemotePwAB()); 516 mRemotePwAB->setText(prof->getRemotePwAB());
517 mRemoteIPAB->setText(prof->getRemoteIPAB()); 517 mRemoteIPAB->setText(prof->getRemoteIPAB());
518 mRemotePortAB->setText(prof->getRemotePortAB()); 518 mRemotePortAB->setText(prof->getRemotePortAB());
519 519
520 mRemotePwPWM->setText(prof->getRemotePwPWM()); 520 mRemotePwPWM->setText(prof->getRemotePwPWM());
521 mRemoteIPPWM->setText(prof->getRemoteIPPWM()); 521 mRemoteIPPWM->setText(prof->getRemoteIPPWM());
522 mRemotePortPWM->setText(prof->getRemotePortPWM()); 522 mRemotePortPWM->setText(prof->getRemotePortPWM());
523 523
524 mRemotePrecommand->setText(prof->getPreSyncCommand()); 524 mRemotePrecommand->setText(prof->getPreSyncCommand());
525 mRemotePostcommand->setText(prof->getPostSyncCommand()); 525 mRemotePostcommand->setText(prof->getPostSyncCommand());
526 mLocalTempFile->setText(prof->getLocalTempFile()); 526 mLocalTempFile->setText(prof->getLocalTempFile());
527 mRemoteFile->setText(prof->getRemoteFileName()) ; 527 mRemoteFile->setText(prof->getRemoteFileName()) ;
528 528
529 mRemotePrecommandAB->setText(prof->getPreSyncCommandAB()); 529 mRemotePrecommandAB->setText(prof->getPreSyncCommandAB());
530 mRemotePostcommandAB->setText(prof->getPostSyncCommandAB()); 530 mRemotePostcommandAB->setText(prof->getPostSyncCommandAB());
531 mLocalTempFileAB->setText(prof->getLocalTempFileAB()); 531 mLocalTempFileAB->setText(prof->getLocalTempFileAB());
532 mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ; 532 mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ;
533 533
534 mRemotePrecommandPWM->setText(prof->getPreSyncCommandPWM()); 534 mRemotePrecommandPWM->setText(prof->getPreSyncCommandPWM());
535 mRemotePostcommandPWM->setText(prof->getPostSyncCommandPWM()); 535 mRemotePostcommandPWM->setText(prof->getPostSyncCommandPWM());
536 mLocalTempFilePWM->setText(prof->getLocalTempFilePWM()); 536 mLocalTempFilePWM->setText(prof->getLocalTempFilePWM());
537 mRemoteFilePWM->setText(prof->getRemoteFileNamePWM()) ; 537 mRemoteFilePWM->setText(prof->getRemoteFileNamePWM()) ;
538 538
539 if ( mWriteContactToSIM ) 539 if ( mWriteContactToSIM )
540 mWriteContactToSIM->setChecked( prof->getWriteContactToSIM()); 540 mWriteContactToSIM->setChecked( prof->getWriteContactToSIM());
541 mPhoneDevice->setText(prof->getPhoneDevice()); 541 mPhoneDevice->setText(prof->getPhoneDevice());
542 mPhoneConnection->setText(prof->getPhoneConnection()); 542 mPhoneConnection->setText(prof->getPhoneConnection());
543 mPhoneModel->setText(prof->getPhoneModel()); 543 mPhoneModel->setText(prof->getPhoneModel());
544 544
545 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync()); 545 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync());
546 mAskForPreferences->setChecked( prof->getAskForPreferences()); 546 mAskForPreferences->setChecked( prof->getAskForPreferences());
547 mWriteBackExisting->setChecked( prof->getWriteBackExisting() ); 547 mWriteBackExisting->setChecked( prof->getWriteBackExisting() );
548 mWriteBackFile->setChecked( prof->getWriteBackFile()); 548 mWriteBackFile->setChecked( prof->getWriteBackFile());
549 mIncludeInRing->setChecked( prof->getIncludeInRingSync() ); 549 mIncludeInRing->setChecked( prof->getIncludeInRingSync() );
550 mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() ); 550 mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() );
551 mIncludeInRingPWM->setChecked( prof->getIncludeInRingSyncPWM() ); 551 mIncludeInRingPWM->setChecked( prof->getIncludeInRingSyncPWM() );
552 mWriteBackFuture->setChecked( prof->getWriteBackFuture()); 552 mWriteBackFuture->setChecked( prof->getWriteBackFuture());
553 mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() ); 553 mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() );
554 mWriteBackPastWeeks->setValue( prof->getWriteBackPastWeeks() ); 554 mWriteBackPastWeeks->setValue( prof->getWriteBackPastWeeks() );
555 555
556 mFilterInCal->setCurrentItem( mFilterKopi.findIndex(prof->getFilterInCal () ) + 1 ); 556 mFilterInCal->setCurrentItem( mFilterKopi.findIndex(prof->getFilterInCal () ) + 1 );
557 mFilterOutCal->setCurrentItem( mFilterKopi.findIndex(prof->getFilterOutCal () ) + 1 ); 557 mFilterOutCal->setCurrentItem( mFilterKopi.findIndex(prof->getFilterOutCal () ) + 1 );
558 mFilterInAB->setCurrentItem( mFilterKapi.findIndex(prof->getFilterInAB () ) + 1 ); 558 mFilterInAB->setCurrentItem( mFilterKapi.findIndex(prof->getFilterInAB () ) + 1 );
559 mFilterOutAB->setCurrentItem( mFilterKapi.findIndex(prof->getFilterOutAB () ) + 1 ); 559 mFilterOutAB->setCurrentItem( mFilterKapi.findIndex(prof->getFilterOutAB () ) + 1 );
560 560
561 switch ( prof->getSyncPrefs() ) { 561 switch ( prof->getSyncPrefs() ) {
562 case 0: 562 case 0:
563 loc->setChecked( true); 563 loc->setChecked( true);
564 break; 564 break;
565 case 1: 565 case 1:
566 rem->setChecked( true ); 566 rem->setChecked( true );
567 break; 567 break;
568 case 2: 568 case 2:
569 newest->setChecked( true); 569 newest->setChecked( true);
570 break; 570 break;
571 case 3: 571 case 3:
572 ask->setChecked( true); 572 ask->setChecked( true);
573 break; 573 break;
574 case 4: 574 case 4:
575 f_loc->setChecked( true); 575 f_loc->setChecked( true);
576 break; 576 break;
577 case 5: 577 case 5:
578 f_rem->setChecked( true); 578 f_rem->setChecked( true);
579 break; 579 break;
580 case 6: 580 case 6:
581 //both->setChecked( true); 581 //both->setChecked( true);
582 break; 582 break;
583 default: 583 default:
584 break; 584 break;
585 } 585 }
586 mIsLocal->setChecked(prof->getIsLocalFileSync()) ; 586 mIsLocal->setChecked(prof->getIsLocalFileSync()) ;
587 mIsPhone->setChecked(prof->getIsPhoneSync()) ; 587 mIsPhone->setChecked(prof->getIsPhoneSync()) ;
588 mIsPi->setChecked(prof->getIsPiSync()) ; 588 mIsPi->setChecked(prof->getIsPiSync()) ;
589 mIsPiSpecific->setChecked(prof->getIsPiSyncSpec()) ; 589 mIsPiSpecific->setChecked(prof->getIsPiSyncSpec()) ;
590 mIsKapiFileL->setChecked(prof->getIsKapiFile()) ; 590 mIsKapiFileL->setChecked(prof->getIsKapiFile()) ;
591 mIsKapiFileR->setChecked(prof->getIsKapiFile()) ; 591 mIsKapiFileR->setChecked(prof->getIsKapiFile()) ;
592 592
593 593
594 QStringList res = QStringList::split( ":",prof->getResSpecKopi()); 594 QStringList res = QStringList::split( ":",prof->getResSpecKopi(), true );
595 int i= res.count()/2; 595 int add = res.count()/2;
596 for ( ;i < res.count(); ++i ) { 596 int i;
597 mResTableKopi->setText( i, 0, res[i] ); 597 for ( i = 0;i < add ; ++i ) {
598 mResTableKopi->setText( i, 0, res[i+add] );
598 } 599 }
599 res = QStringList::split( ":",prof->getResSpecKapi()); 600 res = QStringList::split( ":",prof->getResSpecKapi(), true);
600 for ( i = 0;i < res.count(); ++i ) { 601 add = res.count()/2;
601 mResTableKapi->setText( i, 0, res[i] ); 602 for ( i = 0;i < add; ++i ) {
603 mResTableKapi->setText( i, 0, res[i+add] );
602 } 604 }
603 mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() &&!prof->getIsPiSync() &&!prof->getIsPiSyncSpec()); 605 mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() &&!prof->getIsPiSync() &&!prof->getIsPiSyncSpec());
604 proGr->setEnabled( item > 2 ); 606 proGr->setEnabled( item > 2 );
605 if ( item < 3 ) { 607 if ( item < 3 ) {
606 localFileWidget->hide(); 608 localFileWidget->hide();
607 remoteFileWidget->hide(); 609 remoteFileWidget->hide();
608 phoneWidget->hide(); 610 phoneWidget->hide();
609 piWidget->hide(); 611 piWidget->hide();
610 612
611 } else 613 } else
612 kindChanged( prof->getIsLocalFileSync() ); 614 kindChanged( prof->getIsLocalFileSync() );
613} 615}
614 616
615void KSyncPrefsDialog::fillSSH() 617void KSyncPrefsDialog::fillSSH()
616{ 618{
617 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 619 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
618 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 620 mLocalTempFile->setText("/tmp/mycalendar.ics" );
619 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" ); 621 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" );
620 mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); 622 mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" );
621 mLocalTempFileAB->setText("/tmp/std.vcf" ); 623 mLocalTempFileAB->setText("/tmp/std.vcf" );
622 mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" ); 624 mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" );
623 mRemotePrecommandPWM->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" ); 625 mRemotePrecommandPWM->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" );
624 mLocalTempFilePWM->setText("/tmp/passwords.pwm" ); 626 mLocalTempFilePWM->setText("/tmp/passwords.pwm" );
625 mRemotePostcommandPWM->setText("scp /tmp/passwords.pwm zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/pwmanager.pwm" ); 627 mRemotePostcommandPWM->setText("scp /tmp/passwords.pwm zaurus@192.168.0.65:/home/zaurus/kdepim/apps/pwmanager/pwmanager.pwm" );
626} 628}
627void KSyncPrefsDialog::fillFTP() 629void KSyncPrefsDialog::fillFTP()
628{ 630{
629 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" ); 631 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" );
630 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 632 mLocalTempFile->setText("/tmp/mycalendar.ics" );
631 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 633 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
632 mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" ); 634 mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" );
633 mLocalTempFileAB->setText("/tmp/std.vcf" ); 635 mLocalTempFileAB->setText("/tmp/std.vcf" );
634 mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); 636 mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" );
635 637
636 mRemotePrecommandPWM->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm" ); 638 mRemotePrecommandPWM->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm" );
637 mLocalTempFilePWM->setText("/tmp/passwords.pwm" ); 639 mLocalTempFilePWM->setText("/tmp/passwords.pwm" );
638 mRemotePostcommandPWM->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" ); 640 mRemotePostcommandPWM->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/pwmanager/passwords.pwm /tmp/passwords.pwm" );
639 641
640} 642}
641void KSyncPrefsDialog::kindChanged( bool b ) 643void KSyncPrefsDialog::kindChanged( bool b )
642{ 644{
643 645
644 if ( mIsLocal->isChecked () ) { 646 if ( mIsLocal->isChecked () ) {
645 mIsKapiFileL->setChecked( mIsKapiFileR->isChecked() ); 647 mIsKapiFileL->setChecked( mIsKapiFileR->isChecked() );
646 } else { 648 } else {
647 mIsKapiFileR->setChecked( mIsKapiFileL->isChecked() ); 649 mIsKapiFileR->setChecked( mIsKapiFileL->isChecked() );
648 } 650 }
649 651
650 if ( mIsLocal->isChecked () ) 652 if ( mIsLocal->isChecked () )
651 localFileWidget->show(); 653 localFileWidget->show();
652 else 654 else
653 localFileWidget->hide(); 655 localFileWidget->hide();
654 656
655 if ( mIsNotLocal->isChecked () ) 657 if ( mIsNotLocal->isChecked () )
656 remoteFileWidget->show(); 658 remoteFileWidget->show();
657 else 659 else
658 remoteFileWidget->hide(); 660 remoteFileWidget->hide();
659 661
660 if ( mIsPhone->isChecked () ) { 662 if ( mIsPhone->isChecked () ) {
661 phoneWidget->show(); 663 phoneWidget->show();
662 } 664 }
663 else { 665 else {
664 phoneWidget->hide(); 666 phoneWidget->hide();
665 } 667 }
666 668
667 if ( mIsPi->isChecked () || mIsPiSpecific->isChecked () ) { 669 if ( mIsPi->isChecked () || mIsPiSpecific->isChecked () ) {
668 piWidget->show(); 670 piWidget->show();
669 if (mIsPiSpecific->isChecked () ) { 671 if (mIsPiSpecific->isChecked () ) {
670 mTableBox->show(); 672 mTableBox->show();
671 } 673 }
672 else { 674 else {
673 mTableBox->hide(); 675 mTableBox->hide();
674 } 676 }
675 } 677 }
676 else { 678 else {
677 piWidget->hide(); 679 piWidget->hide();
678 } 680 }
679 681
680 682
681} 683}
682void KSyncPrefsDialog::deleteProfile() 684void KSyncPrefsDialog::deleteProfile()
683{ 685{
684 //qDebug("KSyncPrefsDialog::deleteProfile() "); 686 //qDebug("KSyncPrefsDialog::deleteProfile() ");
685 if ( currentSelection >= 0 ) { 687 if ( currentSelection >= 0 ) {
686 if ( currentSelection < 3 ) { 688 if ( currentSelection < 3 ) {
687 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error")); 689 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error"));
688 return; 690 return;
689 } 691 }
690 KSyncProfile* temp = mSyncProfiles.at(currentSelection); 692 KSyncProfile* temp = mSyncProfiles.at(currentSelection);
691 mSyncProfiles.remove( temp ); 693 mSyncProfiles.remove( temp );
692 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection )); 694 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection ));
693 insertProfiles(); 695 insertProfiles();
694 } 696 }
695} 697}
696 698
697void KSyncPrefsDialog::saveProfile() 699void KSyncPrefsDialog::saveProfile()
698{ 700{
699 KSyncProfile* prof; 701 KSyncProfile* prof;
700 if ( currentSelection >= 0 ) { 702 if ( currentSelection >= 0 ) {
701 prof = mSyncProfiles.at(currentSelection) ; 703 prof = mSyncProfiles.at(currentSelection) ;
702 704
703 prof->setRemotePw( mRemotePw->text()); 705 prof->setRemotePw( mRemotePw->text());
704 prof->setRemoteIP( mRemoteIP->text()); 706 prof->setRemoteIP( mRemoteIP->text());
705 prof->setRemotePort( mRemotePort->text()); 707 prof->setRemotePort( mRemotePort->text());
706 708
707 prof->setRemotePwAB( mRemotePwAB->text()); 709 prof->setRemotePwAB( mRemotePwAB->text());
708 prof->setRemoteIPAB( mRemoteIPAB->text()); 710 prof->setRemoteIPAB( mRemoteIPAB->text());
709 prof->setRemotePortAB( mRemotePortAB->text()); 711 prof->setRemotePortAB( mRemotePortAB->text());
710 712
711 prof->setRemotePwPWM( mRemotePwPWM->text()); 713 prof->setRemotePwPWM( mRemotePwPWM->text());
712 prof->setRemoteIPPWM( mRemoteIPPWM->text()); 714 prof->setRemoteIPPWM( mRemoteIPPWM->text());
713 prof->setRemotePortPWM( mRemotePortPWM->text()); 715 prof->setRemotePortPWM( mRemotePortPWM->text());
714 716
715 prof->setPreSyncCommand( mRemotePrecommand->text()); 717 prof->setPreSyncCommand( mRemotePrecommand->text());
716 prof->setPostSyncCommand( mRemotePostcommand->text() ); 718 prof->setPostSyncCommand( mRemotePostcommand->text() );
717 prof->setLocalTempFile( mLocalTempFile->text()); 719 prof->setLocalTempFile( mLocalTempFile->text());
718 prof->setRemoteFileName( mRemoteFile->text() ); 720 prof->setRemoteFileName( mRemoteFile->text() );
719 prof->setPreSyncCommandAB( mRemotePrecommandAB->text()); 721 prof->setPreSyncCommandAB( mRemotePrecommandAB->text());
720 prof->setPostSyncCommandAB( mRemotePostcommandAB->text() ); 722 prof->setPostSyncCommandAB( mRemotePostcommandAB->text() );
721 prof->setLocalTempFileAB( mLocalTempFileAB->text()); 723 prof->setLocalTempFileAB( mLocalTempFileAB->text());
722 prof->setRemoteFileNameAB( mRemoteFileAB->text() ); 724 prof->setRemoteFileNameAB( mRemoteFileAB->text() );
723 prof->setPreSyncCommandPWM( mRemotePrecommandPWM->text()); 725 prof->setPreSyncCommandPWM( mRemotePrecommandPWM->text());
724 prof->setPostSyncCommandPWM( mRemotePostcommandPWM->text() ); 726 prof->setPostSyncCommandPWM( mRemotePostcommandPWM->text() );
725 prof->setLocalTempFilePWM( mLocalTempFilePWM->text()); 727 prof->setLocalTempFilePWM( mLocalTempFilePWM->text());
726 prof->setRemoteFileNamePWM( mRemoteFilePWM->text() ); 728 prof->setRemoteFileNamePWM( mRemoteFilePWM->text() );
727 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() ); 729 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() );
728 prof->setAskForPreferences( mAskForPreferences->isChecked()); 730 prof->setAskForPreferences( mAskForPreferences->isChecked());
729 prof->setWriteBackExisting(mWriteBackExisting->isChecked() ); 731 prof->setWriteBackExisting(mWriteBackExisting->isChecked() );
730 prof->setWriteBackFile( mWriteBackFile->isChecked()); 732 prof->setWriteBackFile( mWriteBackFile->isChecked());
731 prof->setIncludeInRingSync( mIncludeInRing->isChecked() ); 733 prof->setIncludeInRingSync( mIncludeInRing->isChecked() );
732 prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() ); 734 prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() );
733 prof->setIncludeInRingSyncPWM( mIncludeInRingPWM->isChecked() ); 735 prof->setIncludeInRingSyncPWM( mIncludeInRingPWM->isChecked() );
734 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ; 736 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ;
735 prof->setSyncPrefs( syncprefs); 737 prof->setSyncPrefs( syncprefs);
736 prof->setIsLocalFileSync( mIsLocal->isChecked() ); 738 prof->setIsLocalFileSync( mIsLocal->isChecked() );
737 prof->setIsPhoneSync( mIsPhone->isChecked() ); 739 prof->setIsPhoneSync( mIsPhone->isChecked() );
738 prof->setIsPiSync( mIsPi->isChecked() ); 740 prof->setIsPiSync( mIsPi->isChecked() );
739 prof->setIsPiSyncSpec( mIsPiSpecific->isChecked() ); 741 prof->setIsPiSyncSpec( mIsPiSpecific->isChecked() );
740 prof->setIsKapiFile( mIsKapiFileL->isChecked() ); 742 prof->setIsKapiFile( mIsKapiFileL->isChecked() );
741 prof->setWriteBackFuture(mWriteBackFuture->isChecked()); 743 prof->setWriteBackFuture(mWriteBackFuture->isChecked());
742 prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value()); 744 prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value());
743 prof->setWriteBackPastWeeks(mWriteBackPastWeeks->value()); 745 prof->setWriteBackPastWeeks(mWriteBackPastWeeks->value());
744 if ( mWriteContactToSIM ) 746 if ( mWriteContactToSIM )
745 prof->setWriteContactToSIM(mWriteContactToSIM->isChecked()); 747 prof->setWriteContactToSIM(mWriteContactToSIM->isChecked());
746 prof->setPhoneDevice( mPhoneDevice->text() ); 748 prof->setPhoneDevice( mPhoneDevice->text() );
747 prof->setPhoneConnection( mPhoneConnection->text() ); 749 prof->setPhoneConnection( mPhoneConnection->text() );
748 prof->setPhoneModel( mPhoneModel->text() ); 750 prof->setPhoneModel( mPhoneModel->text() );
749 prof->setFilterInCal ( mFilterInCal->currentText ()); 751 prof->setFilterInCal ( mFilterInCal->currentText ());
750 prof->setFilterOutCal ( mFilterOutCal ->currentText ()); 752 prof->setFilterOutCal ( mFilterOutCal ->currentText ());
751 prof->setFilterInAB ( mFilterInAB ->currentText ()); 753 prof->setFilterInAB ( mFilterInAB ->currentText ());
752 prof->setFilterOutAB ( mFilterOutAB ->currentText ()); 754 prof->setFilterOutAB ( mFilterOutAB ->currentText ());
753 if ( mIsPiSpecific->isChecked() ) { 755 if ( mIsPiSpecific->isChecked() ) {
754 756
755 QStringList res = mResourcesKopi; 757 QStringList res = mResourcesKopi;
756 int i; 758 int i;
757 for ( i = 0;i < mResourcesKopi.count(); ++i ) { 759 for ( i = 0;i < mResourcesKopi.count(); ++i ) {
758 res.append( mResTableKopi->text( i, 0 )); 760 res.append( mResTableKopi->text( i, 0 ));
759 } 761 }
760 prof->setResSpecKopi( res.join(":")); 762 prof->setResSpecKopi( res.join(":"));
761 } 763 }
762 } 764 }
763} 765}
764 766
765void KSyncPrefsDialog::insertProfiles() 767void KSyncPrefsDialog::insertProfiles()
766{ 768{
767 int curItem = mProfileBox->currentItem(); 769 int curItem = mProfileBox->currentItem();
768 mProfileBox->blockSignals( true ); 770 mProfileBox->blockSignals( true );
769 mProfileBox->clear(); 771 mProfileBox->clear();
770 mProfileBox->insertStringList (mSyncProfileNames ); 772 mProfileBox->insertStringList (mSyncProfileNames );
771 int item = mSyncProfileNames.count() -1; 773 int item = mSyncProfileNames.count() -1;
772 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() ) 774 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() )
773 mProfileBox->setCurrentItem( curItem ); 775 mProfileBox->setCurrentItem( curItem );
774 else if ( item >= 0 ) { 776 else if ( item >= 0 ) {
775 mProfileBox->setCurrentItem( item ); 777 mProfileBox->setCurrentItem( item );
776 } 778 }
777 currentSelection = -1; 779 currentSelection = -1;
778 if ( mSyncProfileNames.count() > 0 ) { 780 if ( mSyncProfileNames.count() > 0 ) {
779 //qDebug(" profileChanged( mProfileBox->currentItem() "); 781 //qDebug(" profileChanged( mProfileBox->currentItem() ");
780 profileChanged( mProfileBox->currentItem() ); 782 profileChanged( mProfileBox->currentItem() );
781 currentSelection = mProfileBox->currentItem(); 783 currentSelection = mProfileBox->currentItem();
782 } 784 }
783 mProfileBox->blockSignals( false ); 785 mProfileBox->blockSignals( false );
784} 786}
785 787
786void KSyncPrefsDialog::addProfile ( KSyncProfile* temp ) 788void KSyncPrefsDialog::addProfile ( KSyncProfile* temp )
787{ 789{
788 saveProfile(); 790 saveProfile();
789 mSyncProfiles.append( temp ); 791 mSyncProfiles.append( temp );
790 mSyncProfileNames << temp->getName(); 792 mSyncProfileNames << temp->getName();
791 insertProfiles(); 793 insertProfiles();
792 int last = mProfileBox->count() -1; 794 int last = mProfileBox->count() -1;
793 mProfileBox->blockSignals( true ); 795 mProfileBox->blockSignals( true );
794 mProfileBox->setCurrentItem( last ); 796 mProfileBox->setCurrentItem( last );
795 mProfileBox->blockSignals( false ); 797 mProfileBox->blockSignals( false );
796 profileChanged(last); 798 profileChanged(last);
797} 799}
798void KSyncPrefsDialog::newProfile() 800void KSyncPrefsDialog::newProfile()
799{ 801{
800 addProfile ( new KSyncProfile () ); 802 addProfile ( new KSyncProfile () );
801} 803}
802 804
803void KSyncPrefsDialog::cloneProfile() 805void KSyncPrefsDialog::cloneProfile()
804{ 806{
805 if ( currentSelection >= 0 ) 807 if ( currentSelection >= 0 )
806 addProfile (mSyncProfiles.at(currentSelection)->clone()) ; 808 addProfile (mSyncProfiles.at(currentSelection)->clone()) ;
807 else 809 else
808 newProfile(); 810 newProfile();
809} 811}
810 812
811void KSyncPrefsDialog::setLocalMachineName ( const QString& name ) 813void KSyncPrefsDialog::setLocalMachineName ( const QString& name )
812{ 814{
813 mMyMachineName->setText( name ); 815 mMyMachineName->setText( name );
814 816
815} 817}
816QString KSyncPrefsDialog::getLocalMachineName ( ) 818QString KSyncPrefsDialog::getLocalMachineName ( )
817{ 819{
818 return mMyMachineName->text(); 820 return mMyMachineName->text();
819} 821}
820 822
821QStringList KSyncPrefsDialog::getSyncProfileNames() 823QStringList KSyncPrefsDialog::getSyncProfileNames()
822{ 824{
823 return mSyncProfileNames; 825 return mSyncProfileNames;
824} 826}
825void KSyncPrefsDialog::usrReadConfig() 827void KSyncPrefsDialog::usrReadConfig()
826{ 828{
827 //KConfig *config = KOGlobals::config(); 829 //KConfig *config = KOGlobals::config();
828 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 830 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
829 config.setGroup("General"); 831 config.setGroup("General");
830 mSyncProfileNames =config.readListEntry("SyncProfileNames"); 832 mSyncProfileNames =config.readListEntry("SyncProfileNames");
831 mMyMachineName->setText(config.readEntry("LocalMachineName","undefined")); 833 mMyMachineName->setText(config.readEntry("LocalMachineName","undefined"));
832 int i; 834 int i;
833 KSyncProfile* temp ; 835 KSyncProfile* temp ;
834 mSyncProfiles.clear(); 836 mSyncProfiles.clear();
835 for ( i = 0; i < mSyncProfileNames.count();++i ) { 837 for ( i = 0; i < mSyncProfileNames.count();++i ) {
836 temp = new KSyncProfile (); 838 temp = new KSyncProfile ();
837 temp->setName( mSyncProfileNames[i] ); 839 temp->setName( mSyncProfileNames[i] );
838 temp->readConfig( &config ); 840 temp->readConfig( &config );
839 mSyncProfiles.append( temp ); 841 mSyncProfiles.append( temp );
840 } 842 }
841 insertProfiles(); 843 insertProfiles();
842 //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName ); 844 //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName );
843} 845}
844 846
845 847
846void KSyncPrefsDialog::usrWriteConfig() 848void KSyncPrefsDialog::usrWriteConfig()
847{ 849{
848 saveProfile(); 850 saveProfile();
849 if ( currentSelection >= 0 ) 851 if ( currentSelection >= 0 )
850 profileChanged(currentSelection); 852 profileChanged(currentSelection);
851 //KConfig *config = KOGlobals::config(); 853 //KConfig *config = KOGlobals::config();
852 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); 854 KConfig config ( locateLocal( "config","ksyncprofilesrc" ) );
853 KSyncProfile* prof = mSyncProfiles.first(); 855 KSyncProfile* prof = mSyncProfiles.first();
854 QStringList externalSyncProfileNames; 856 QStringList externalSyncProfileNames;
855 externalSyncProfileNames.append("Sharp_DTM");; 857 externalSyncProfileNames.append("Sharp_DTM");;
856 while ( prof ) { 858 while ( prof ) {
857 prof->writeConfig(&config); 859 prof->writeConfig(&config);
858 if ( prof->getIsPhoneSync( ) ) 860 if ( prof->getIsPhoneSync( ) )
859 externalSyncProfileNames.append(prof->getName( ) ); 861 externalSyncProfileNames.append(prof->getName( ) );
860 prof = mSyncProfiles.next(); 862 prof = mSyncProfiles.next();
861 } 863 }
862 //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames; 864 //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames;
863 //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text(); 865 //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text();
864 config.setGroup("General"); 866 config.setGroup("General");
865 config.writeEntry("SyncProfileNames",mSyncProfileNames); 867 config.writeEntry("SyncProfileNames",mSyncProfileNames);
866 config.writeEntry("ExternSyncProfiles",externalSyncProfileNames); 868 config.writeEntry("ExternSyncProfiles",externalSyncProfileNames);
867 config.writeEntry("LocalMachineName",mMyMachineName->text()); 869 config.writeEntry("LocalMachineName",mMyMachineName->text());
868 config.sync(); 870 config.sync();
869} 871}
870 872
871void KSyncPrefsDialog::helpDevice() 873void KSyncPrefsDialog::helpDevice()
872{ 874{
873 QString hint = i18n("Insert device where\nphone is connected. E.g.:\n"); 875 QString hint = i18n("Insert device where\nphone is connected. E.g.:\n");
874#ifdef _WIN32_ 876#ifdef _WIN32_
875 hint += "Leave empty for Irda.\n" 877 hint += "Leave empty for Irda.\n"
876 "com1:\n(first serial port)\n" 878 "com1:\n(first serial port)\n"
877 "usb not supported\n" 879 "usb not supported\n"
878 "???\n(bluetooth device address)\n"; 880 "???\n(bluetooth device address)\n";
879 881
880#else 882#else
881 hint += "/dev/ircomm\n(Irda)\n" 883 hint += "/dev/ircomm\n(Irda)\n"
882 "/dev/ttyS0\n(first serial port)\n" 884 "/dev/ttyS0\n(first serial port)\n"
883 "/dev/ttyUSB0\n(first device usb port)\n" 885 "/dev/ttyUSB0\n(first device usb port)\n"
884 "???\n(bluetooth device address)\n"; 886 "???\n(bluetooth device address)\n";
885#endif 887#endif
886 KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); 888 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
887} 889}
888void KSyncPrefsDialog::helpModel() 890void KSyncPrefsDialog::helpModel()
889{ 891{
890 QString hint = i18n("Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n"); 892 QString hint = i18n("Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n");
891 hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection"; 893 hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection";
892 KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); 894 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
893 895
894} 896}
895void KSyncPrefsDialog::helpConnection() 897void KSyncPrefsDialog::helpConnection()
896{ 898{
897 QString hint = i18n("Insert kind of connection,e.g.:\n"); 899 QString hint = i18n("Insert kind of connection,e.g.:\n");
898 hint += "irda | Nokia FBUS over infrared\n" 900 hint += "irda | Nokia FBUS over infrared\n"
899 "irdaat | AT commands infrared\n(for Siemens/Sony-Erricsson)\n" 901 "irdaat | AT commands infrared\n(for Siemens/Sony-Erricsson)\n"
900 "irdaobex | set also model as obex\n" 902 "irdaobex | set also model as obex\n"
901 "fbus | Nokia FBUS2 serial\n"; 903 "fbus | Nokia FBUS2 serial\n";
902 KMessageBox::information(this,hint,i18n("KDE-Pim sync config")); 904 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
903} 905}
diff --git a/libkdepim/ksyncprofile.cpp b/libkdepim/ksyncprofile.cpp
index d6620c8..b0d3efc 100644
--- a/libkdepim/ksyncprofile.cpp
+++ b/libkdepim/ksyncprofile.cpp
@@ -1,282 +1,284 @@
1/* 1/*
2 This file is part of KDE-Pim/Pi. 2 This file is part of KDE-Pim/Pi.
3 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org> 3 Copyright (c) 2004 Lutz Rogowski <rogowski@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
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 <qcolor.h> 23#include <qcolor.h>
24 24
25#include <kconfig.h> 25#include <kconfig.h>
26#include <kstandarddirs.h> 26#include <kstandarddirs.h>
27#include <kglobal.h> 27#include <kglobal.h>
28#include <kdebug.h> 28#include <kdebug.h>
29 29
30#include "ksyncprofile.h" 30#include "ksyncprofile.h"
31 31
32 32
33KSyncProfile::KSyncProfile(): QObject () 33KSyncProfile::KSyncProfile(): QObject ()
34{ 34{
35 setDefault(); 35 setDefault();
36} 36}
37KSyncProfile::~KSyncProfile() 37KSyncProfile::~KSyncProfile()
38{ 38{
39 39
40} 40}
41 41
42 42
43KSyncProfile* KSyncProfile::clone() 43KSyncProfile* KSyncProfile::clone()
44{ 44{
45 KSyncProfile* myClone = new KSyncProfile(); 45 KSyncProfile* myClone = new KSyncProfile();
46 myClone->setRemotePw(mRemotePw); 46 myClone->setRemotePw(mRemotePw);
47 myClone->setRemoteIP(mRemoteIP); 47 myClone->setRemoteIP(mRemoteIP);
48 myClone->setRemotePort(mRemotePort); 48 myClone->setRemotePort(mRemotePort);
49 myClone->setRemotePwAB(mRemotePwAB); 49 myClone->setRemotePwAB(mRemotePwAB);
50 myClone->setRemoteIPAB(mRemoteIPAB); 50 myClone->setRemoteIPAB(mRemoteIPAB);
51 myClone->setRemotePortAB(mRemotePortAB); 51 myClone->setRemotePortAB(mRemotePortAB);
52 myClone->setRemotePwPWM(mRemotePwPWM); 52 myClone->setRemotePwPWM(mRemotePwPWM);
53 myClone->setRemoteIPPWM(mRemoteIPPWM); 53 myClone->setRemoteIPPWM(mRemoteIPPWM);
54 myClone->setRemotePortPWM (mRemotePortPWM); 54 myClone->setRemotePortPWM (mRemotePortPWM);
55 myClone->setPreSyncCommand( mPreSyncCommand ); 55 myClone->setPreSyncCommand( mPreSyncCommand );
56 myClone->setPostSyncCommand( mPostSyncCommand ); 56 myClone->setPostSyncCommand( mPostSyncCommand );
57 myClone->setLocalTempFile( mLocalTempFile); 57 myClone->setLocalTempFile( mLocalTempFile);
58 myClone->setRemoteFileName( mRemoteFileName ); 58 myClone->setRemoteFileName( mRemoteFileName );
59 myClone->setPreSyncCommandAB( mPreSyncCommandAB ); 59 myClone->setPreSyncCommandAB( mPreSyncCommandAB );
60 myClone->setPostSyncCommandAB( mPostSyncCommandAB ); 60 myClone->setPostSyncCommandAB( mPostSyncCommandAB );
61 myClone->setLocalTempFileAB( mLocalTempFileAB); 61 myClone->setLocalTempFileAB( mLocalTempFileAB);
62 myClone->setRemoteFileNameAB( mRemoteFileNameAB ); 62 myClone->setRemoteFileNameAB( mRemoteFileNameAB );
63 myClone->setPreSyncCommandPWM( mPreSyncCommandPWM ); 63 myClone->setPreSyncCommandPWM( mPreSyncCommandPWM );
64 myClone->setPostSyncCommandPWM( mPostSyncCommandPWM ); 64 myClone->setPostSyncCommandPWM( mPostSyncCommandPWM );
65 myClone->setLocalTempFilePWM( mLocalTempFilePWM); 65 myClone->setLocalTempFilePWM( mLocalTempFilePWM);
66 myClone->setRemoteFileNamePWM( mRemoteFileNamePWM ); 66 myClone->setRemoteFileNamePWM( mRemoteFileNamePWM );
67 myClone->setShowSummaryAfterSync( mShowSummaryAfterSync ); 67 myClone->setShowSummaryAfterSync( mShowSummaryAfterSync );
68 myClone->setAskForPreferences( mAskForPreferences); 68 myClone->setAskForPreferences( mAskForPreferences);
69 myClone->setWriteBackExisting(mWriteBackExisting ); 69 myClone->setWriteBackExisting(mWriteBackExisting );
70 myClone->setWriteBackFile( mWriteBackFile); 70 myClone->setWriteBackFile( mWriteBackFile);
71 myClone->setWriteBackFuture( mWriteBackFuture ); 71 myClone->setWriteBackFuture( mWriteBackFuture );
72 myClone->setWriteBackFutureWeeks( mWriteBackFutureWeeks ); 72 myClone->setWriteBackFutureWeeks( mWriteBackFutureWeeks );
73 myClone->setWriteBackPastWeeks( mWriteBackPastWeeks ); 73 myClone->setWriteBackPastWeeks( mWriteBackPastWeeks );
74 myClone->setIncludeInRingSync( mIncludeInRingSync ); 74 myClone->setIncludeInRingSync( mIncludeInRingSync );
75 myClone->setIncludeInRingSyncAB( mIncludeInRingSyncAB ); 75 myClone->setIncludeInRingSyncAB( mIncludeInRingSyncAB );
76 myClone->setIncludeInRingSyncPWM( mIncludeInRingSyncPWM ); 76 myClone->setIncludeInRingSyncPWM( mIncludeInRingSyncPWM );
77 myClone->setSyncPrefs( mSyncPrefs); 77 myClone->setSyncPrefs( mSyncPrefs);
78 myClone->setIsLocalFileSync( mIsLocalFileSync ); 78 myClone->setIsLocalFileSync( mIsLocalFileSync );
79 myClone->setIsPhoneSync( mIsPhoneSync ); 79 myClone->setIsPhoneSync( mIsPhoneSync );
80 myClone->setIsKapiFile( mIsKapiFile ); 80 myClone->setIsKapiFile( mIsKapiFile );
81 myClone->setIsPiSync( mIsPiSync ); 81 myClone->setIsPiSync( mIsPiSync );
82 myClone->setWriteContactToSIM( mWriteContactToSIM ); 82 myClone->setWriteContactToSIM( mWriteContactToSIM );
83 myClone->setName( "noName" ); 83 myClone->setName( "noName" );
84 myClone->setFilterInCal ( mFilterInCal ); 84 myClone->setFilterInCal ( mFilterInCal );
85 myClone->setFilterOutCal ( mFilterOutCal ); 85 myClone->setFilterOutCal ( mFilterOutCal );
86 myClone->setFilterInAB ( mFilterInAB ); 86 myClone->setFilterInAB ( mFilterInAB );
87 myClone->setFilterOutAB ( mFilterOutAB ); 87 myClone->setFilterOutAB ( mFilterOutAB );
88 //myClone->setIdentifier( "noID" ); 88 //myClone->setIdentifier( "noID" );
89 return myClone; 89 return myClone;
90} 90}
91 91
92 92
93void KSyncProfile::setDefault() 93void KSyncProfile::setDefault()
94{ 94{
95 mPreSyncCommand = i18n("command for downloading remote file to local device"); 95 mPreSyncCommand = i18n("command for downloading remote file to local device");
96 mPostSyncCommand = i18n("command for uploading local temp file to remote device"); 96 mPostSyncCommand = i18n("command for uploading local temp file to remote device");
97 mLocalTempFile = "/tmp/mycalendar.ics"; 97 mLocalTempFile = "/tmp/mycalendar.ics";
98 mRemoteFileName = "/home/polo/kdepim/apps/korganizer/localfile.ics"; 98 mRemoteFileName = "/home/polo/kdepim/apps/korganizer/localfile.ics";
99 mPreSyncCommandAB = i18n("command for downloading remote file to local device"); 99 mPreSyncCommandAB = i18n("command for downloading remote file to local device");
100 mPostSyncCommandAB = i18n("command for uploading local temp file to remote device"); 100 mPostSyncCommandAB = i18n("command for uploading local temp file to remote device");
101 mLocalTempFileAB = "/tmp/std.vcf"; 101 mLocalTempFileAB = "/tmp/std.vcf";
102 mRemoteFileNameAB = "/home/polo/kdepim/apps/kabc/localfile.vcf"; 102 mRemoteFileNameAB = "/home/polo/kdepim/apps/kabc/localfile.vcf";
103 mPreSyncCommandPWM = i18n("command for downloading remote file to local device"); 103 mPreSyncCommandPWM = i18n("command for downloading remote file to local device");
104 mPostSyncCommandPWM = i18n("command for uploading local temp file to remote device"); 104 mPostSyncCommandPWM = i18n("command for uploading local temp file to remote device");
105 mLocalTempFilePWM = "/tmp/passwords.pwm"; 105 mLocalTempFilePWM = "/tmp/passwords.pwm";
106 mRemoteFileNamePWM = "/home/polo/kdepim/apps/pwmanager/localfile.pwm"; 106 mRemoteFileNamePWM = "/home/polo/kdepim/apps/pwmanager/localfile.pwm";
107 107
108 mRemotePw = "abc"; 108 mRemotePw = "abc";
109 mRemoteIP = "192.168.0.99"; 109 mRemoteIP = "192.168.0.99";
110 mRemotePort = "9197"; 110 mRemotePort = "9197";
111 111
112 mRemotePwAB = "abc"; 112 mRemotePwAB = "abc";
113 mRemoteIPAB = "192.168.0.99"; 113 mRemoteIPAB = "192.168.0.99";
114 mRemotePortAB = "9198"; 114 mRemotePortAB = "9198";
115 115
116 mRemotePwPWM = "abc"; 116 mRemotePwPWM = "abc";
117 mRemoteIPPWM = "192.168.0.99"; 117 mRemoteIPPWM = "192.168.0.99";
118 mRemotePortPWM = "9199"; 118 mRemotePortPWM = "9199";
119 119
120 mShowSummaryAfterSync = true; 120 mShowSummaryAfterSync = true;
121 mAskForPreferences = true; 121 mAskForPreferences = true;
122 mWriteBackExisting = false; 122 mWriteBackExisting = false;
123 mWriteBackFuture = false; 123 mWriteBackFuture = false;
124 mWriteBackFutureWeeks = 12; 124 mWriteBackFutureWeeks = 12;
125 mWriteBackPastWeeks = 2; 125 mWriteBackPastWeeks = 2;
126 mWriteBackFile = true; 126 mWriteBackFile = true;
127 mIncludeInRingSync = false; 127 mIncludeInRingSync = false;
128 mIncludeInRingSyncAB = false; 128 mIncludeInRingSyncAB = false;
129 mIncludeInRingSyncPWM = false; 129 mIncludeInRingSyncPWM = false;
130 mSyncPrefs = SYNC_PREF_ASK; 130 mSyncPrefs = SYNC_PREF_ASK;
131 mIsLocalFileSync = true; 131 mIsLocalFileSync = true;
132 mName = "noName"; 132 mName = "noName";
133 mIsPhoneSync = false; 133 mIsPhoneSync = false;
134 mIsPiSync = false; 134 mIsPiSync = false;
135 mIsPiSyncSpec = false; 135 mIsPiSyncSpec = false;
136 mIsKapiFile = false; 136 mIsKapiFile = false;
137 mWriteContactToSIM = false; 137 mWriteContactToSIM = false;
138 mPhoneDevice = "/dev/ircomm"; 138 mPhoneDevice = "/dev/ircomm";
139 mPhoneConnection = "irda"; 139 mPhoneConnection = "irda";
140 mPhoneModel = "6310i"; 140 mPhoneModel = "6310i";
141 mFilterInCal = "no filter"; 141 mFilterInCal = "no filter";
142 mFilterOutCal = "no filter"; 142 mFilterOutCal = "no filter";
143 mFilterInAB = "no filter"; 143 mFilterInAB = "no filter";
144 mFilterOutAB = "no filter"; 144 mFilterOutAB = "no filter";
145 mResSpecKopi = "";
146 mResSpecKapi = "";
145} 147}
146void KSyncProfile::readConfig(KConfig *config ) 148void KSyncProfile::readConfig(KConfig *config )
147{ 149{
148 if (config) 150 if (config)
149 { 151 {
150 152
151 config->setGroup( mName ); 153 config->setGroup( mName );
152 154
153 mName = config->readEntry( "Name", mName ); 155 mName = config->readEntry( "Name", mName );
154 156
155 mRemotePw = config->readEntry( "RemotePw",mRemotePw ); 157 mRemotePw = config->readEntry( "RemotePw",mRemotePw );
156 mRemoteIP = config->readEntry( "RemoteIP",mRemoteIP ); 158 mRemoteIP = config->readEntry( "RemoteIP",mRemoteIP );
157 mRemotePort = config->readEntry( "RemotePort", mRemotePort ); 159 mRemotePort = config->readEntry( "RemotePort", mRemotePort );
158 mRemotePwAB = config->readEntry( "RemotePwAB", mRemotePwAB ); 160 mRemotePwAB = config->readEntry( "RemotePwAB", mRemotePwAB );
159 mRemoteIPAB = config->readEntry( "RemoteIPAB", mRemoteIPAB ); 161 mRemoteIPAB = config->readEntry( "RemoteIPAB", mRemoteIPAB );
160 mRemotePortAB = config->readEntry( "RemotePortAB", mRemotePortAB ); 162 mRemotePortAB = config->readEntry( "RemotePortAB", mRemotePortAB );
161 mRemotePwPWM = config->readEntry( "RemotePwPWM", mRemotePwPWM ); 163 mRemotePwPWM = config->readEntry( "RemotePwPWM", mRemotePwPWM );
162 mRemoteIPPWM = config->readEntry( "RemoteIPPWM", mRemoteIPPWM ); 164 mRemoteIPPWM = config->readEntry( "RemoteIPPWM", mRemoteIPPWM );
163 mRemotePortPWM = config->readEntry( "RemotePortPWM", mRemotePortPWM ); 165 mRemotePortPWM = config->readEntry( "RemotePortPWM", mRemotePortPWM );
164 166
165 mPreSyncCommand = config->readEntry( "PreSyncCommand",mPreSyncCommand ); 167 mPreSyncCommand = config->readEntry( "PreSyncCommand",mPreSyncCommand );
166 mPostSyncCommand = config->readEntry( "PostSyncCommand", mPostSyncCommand ); 168 mPostSyncCommand = config->readEntry( "PostSyncCommand", mPostSyncCommand );
167 mLocalTempFile = config->readEntry( "LocalTempFile", mLocalTempFile ); 169 mLocalTempFile = config->readEntry( "LocalTempFile", mLocalTempFile );
168 mRemoteFileName = config->readEntry( "RemoteFileName", mRemoteFileName ); 170 mRemoteFileName = config->readEntry( "RemoteFileName", mRemoteFileName );
169 171
170 mPreSyncCommandAB = config->readEntry( "PreSyncCommandAB",mPreSyncCommandAB ); 172 mPreSyncCommandAB = config->readEntry( "PreSyncCommandAB",mPreSyncCommandAB );
171 mPostSyncCommandAB = config->readEntry( "PostSyncCommandAB", mPostSyncCommandAB ); 173 mPostSyncCommandAB = config->readEntry( "PostSyncCommandAB", mPostSyncCommandAB );
172 mLocalTempFileAB = config->readEntry( "LocalTempFileAB", mLocalTempFileAB ); 174 mLocalTempFileAB = config->readEntry( "LocalTempFileAB", mLocalTempFileAB );
173 mRemoteFileNameAB = config->readEntry( "RemoteFileNameAB", mRemoteFileNameAB ); 175 mRemoteFileNameAB = config->readEntry( "RemoteFileNameAB", mRemoteFileNameAB );
174 176
175 mPreSyncCommandPWM = config->readEntry( "PreSyncCommandPWM",mPreSyncCommandPWM ); 177 mPreSyncCommandPWM = config->readEntry( "PreSyncCommandPWM",mPreSyncCommandPWM );
176 mPostSyncCommandPWM = config->readEntry( "PostSyncCommandPWM", mPostSyncCommandPWM ); 178 mPostSyncCommandPWM = config->readEntry( "PostSyncCommandPWM", mPostSyncCommandPWM );
177 mLocalTempFilePWM = config->readEntry( "LocalTempFilePWM", mLocalTempFilePWM ); 179 mLocalTempFilePWM = config->readEntry( "LocalTempFilePWM", mLocalTempFilePWM );
178 mRemoteFileNamePWM = config->readEntry( "RemoteFileNamePWM", mRemoteFileNamePWM ); 180 mRemoteFileNamePWM = config->readEntry( "RemoteFileNamePWM", mRemoteFileNamePWM );
179 181
180 mPhoneDevice = config->readEntry( "PhoneDevice", mPhoneDevice ); 182 mPhoneDevice = config->readEntry( "PhoneDevice", mPhoneDevice );
181 mPhoneConnection = config->readEntry( "PhoneConnection", mPhoneConnection ); 183 mPhoneConnection = config->readEntry( "PhoneConnection", mPhoneConnection );
182 mPhoneModel = config->readEntry( "PhoneModel", mPhoneModel ); 184 mPhoneModel = config->readEntry( "PhoneModel", mPhoneModel );
183 185
184 mIncludeInRingSync = config->readBoolEntry( "IncludeInRingSync",mIncludeInRingSync ); 186 mIncludeInRingSync = config->readBoolEntry( "IncludeInRingSync",mIncludeInRingSync );
185 mIncludeInRingSyncAB = config->readBoolEntry( "IncludeInRingSyncAB",mIncludeInRingSyncAB ); 187 mIncludeInRingSyncAB = config->readBoolEntry( "IncludeInRingSyncAB",mIncludeInRingSyncAB );
186 mIncludeInRingSyncPWM = config->readBoolEntry( "IncludeInRingSyncPWM",mIncludeInRingSyncPWM ); 188 mIncludeInRingSyncPWM = config->readBoolEntry( "IncludeInRingSyncPWM",mIncludeInRingSyncPWM );
187 mShowSummaryAfterSync = config->readBoolEntry( "ShowSummaryAfterSync", mShowSummaryAfterSync ); 189 mShowSummaryAfterSync = config->readBoolEntry( "ShowSummaryAfterSync", mShowSummaryAfterSync );
188 mAskForPreferences = config->readBoolEntry( "AskForPreferences",mAskForPreferences ); 190 mAskForPreferences = config->readBoolEntry( "AskForPreferences",mAskForPreferences );
189 mWriteBackExisting = config->readBoolEntry( "WriteBackExisting",mWriteBackExisting ); 191 mWriteBackExisting = config->readBoolEntry( "WriteBackExisting",mWriteBackExisting );
190 mWriteBackFuture = config->readBoolEntry( "WriteBackFuture",mWriteBackFuture ); 192 mWriteBackFuture = config->readBoolEntry( "WriteBackFuture",mWriteBackFuture );
191 mWriteBackFile = config->readBoolEntry( "WriteBackFile",mWriteBackFile ); 193 mWriteBackFile = config->readBoolEntry( "WriteBackFile",mWriteBackFile );
192 mWriteContactToSIM = config->readBoolEntry( "WriteContactToSIM",mWriteContactToSIM ); 194 mWriteContactToSIM = config->readBoolEntry( "WriteContactToSIM",mWriteContactToSIM );
193 mSyncPrefs = config->readNumEntry( "SyncPrefs", mSyncPrefs ); 195 mSyncPrefs = config->readNumEntry( "SyncPrefs", mSyncPrefs );
194 mWriteBackFutureWeeks = config->readNumEntry( "WriteBackFutureWeeks", mWriteBackFutureWeeks ); 196 mWriteBackFutureWeeks = config->readNumEntry( "WriteBackFutureWeeks", mWriteBackFutureWeeks );
195 mWriteBackPastWeeks = config->readNumEntry( "WriteBackPastWeeks", mWriteBackPastWeeks ); 197 mWriteBackPastWeeks = config->readNumEntry( "WriteBackPastWeeks", mWriteBackPastWeeks );
196 mIsLocalFileSync= config->readBoolEntry( "IsLocalFileSync", mIsLocalFileSync ); 198 mIsLocalFileSync= config->readBoolEntry( "IsLocalFileSync", mIsLocalFileSync );
197 mIsPhoneSync= config->readBoolEntry( "IsPhoneSync", mIsPhoneSync ); 199 mIsPhoneSync= config->readBoolEntry( "IsPhoneSync", mIsPhoneSync );
198 mIsPiSync= config->readBoolEntry( "IsPiSync", mIsPiSync ); 200 mIsPiSync= config->readBoolEntry( "IsPiSync", mIsPiSync );
199 mIsPiSyncSpec= config->readBoolEntry( "IsPiSyncSpec", mIsPiSyncSpec ); 201 mIsPiSyncSpec= config->readBoolEntry( "IsPiSyncSpec", mIsPiSyncSpec );
200 mIsKapiFile = config->readBoolEntry( "IsKapiFile", mIsKapiFile ); 202 mIsKapiFile = config->readBoolEntry( "IsKapiFile", mIsKapiFile );
201 203
202 mFilterInCal = config->readEntry( "FilterInCal", mFilterInCal ); 204 mFilterInCal = config->readEntry( "FilterInCal", mFilterInCal );
203 mFilterOutCal = config->readEntry( "FilterOutCal", mFilterOutCal ); 205 mFilterOutCal = config->readEntry( "FilterOutCal", mFilterOutCal );
204 mFilterInAB = config->readEntry( "FilterInAB", mFilterInAB ); 206 mFilterInAB = config->readEntry( "FilterInAB", mFilterInAB );
205 mFilterOutAB = config->readEntry( "FilterOutAB", mFilterOutAB ); 207 mFilterOutAB = config->readEntry( "FilterOutAB", mFilterOutAB );
206 mResSpecKopi = config->readEntry( "ResSpecKopi", mResSpecKopi ); 208 mResSpecKopi = config->readEntry( "ResSpecKopi", mResSpecKopi );
207 mResSpecKapi = config->readEntry( "ResSpecKapi", mResSpecKapi ); 209 mResSpecKapi = config->readEntry( "ResSpecKapi", mResSpecKapi );
208 210
209 } 211 }
210 else 212 else
211 { 213 {
212 setDefault(); 214 setDefault();
213 } 215 }
214} 216}
215 217
216void KSyncProfile::deleteConfig(KConfig *config ) 218void KSyncProfile::deleteConfig(KConfig *config )
217{ 219{
218 config->deleteGroup( mName ); 220 config->deleteGroup( mName );
219} 221}
220 222
221void KSyncProfile::writeConfig( KConfig * config ) 223void KSyncProfile::writeConfig( KConfig * config )
222{ 224{
223 config->setGroup(mName); 225 config->setGroup(mName);
224 226
225 config->writeEntry( "RemotePw", mRemotePw); 227 config->writeEntry( "RemotePw", mRemotePw);
226 config->writeEntry( "RemoteIP", mRemoteIP); 228 config->writeEntry( "RemoteIP", mRemoteIP);
227 config->writeEntry( "RemotePort", mRemotePort); 229 config->writeEntry( "RemotePort", mRemotePort);
228 230
229 config->writeEntry( "RemotePwAB", mRemotePwAB); 231 config->writeEntry( "RemotePwAB", mRemotePwAB);
230 config->writeEntry( "RemoteIPAB", mRemoteIPAB); 232 config->writeEntry( "RemoteIPAB", mRemoteIPAB);
231 config->writeEntry( "RemotePortAB", mRemotePortAB); 233 config->writeEntry( "RemotePortAB", mRemotePortAB);
232 234
233 config->writeEntry( "RemotePwPWM", mRemotePwPWM); 235 config->writeEntry( "RemotePwPWM", mRemotePwPWM);
234 config->writeEntry( "RemoteIPPWM", mRemoteIPPWM); 236 config->writeEntry( "RemoteIPPWM", mRemoteIPPWM);
235 config->writeEntry( "RemotePortPWM", mRemotePortPWM); 237 config->writeEntry( "RemotePortPWM", mRemotePortPWM);
236 238
237 config->writeEntry( "Name", mName ); 239 config->writeEntry( "Name", mName );
238 config->writeEntry( "PreSyncCommand",mPreSyncCommand ); 240 config->writeEntry( "PreSyncCommand",mPreSyncCommand );
239 config->writeEntry( "PostSyncCommand", mPostSyncCommand ); 241 config->writeEntry( "PostSyncCommand", mPostSyncCommand );
240 config->writeEntry( "LocalTempFile", mLocalTempFile ); 242 config->writeEntry( "LocalTempFile", mLocalTempFile );
241 config->writeEntry( "RemoteFileName", mRemoteFileName ); 243 config->writeEntry( "RemoteFileName", mRemoteFileName );
242 244
243 config->writeEntry( "PreSyncCommandAB",mPreSyncCommandAB ); 245 config->writeEntry( "PreSyncCommandAB",mPreSyncCommandAB );
244 config->writeEntry( "PostSyncCommandAB", mPostSyncCommandAB ); 246 config->writeEntry( "PostSyncCommandAB", mPostSyncCommandAB );
245 config->writeEntry( "LocalTempFileAB", mLocalTempFileAB ); 247 config->writeEntry( "LocalTempFileAB", mLocalTempFileAB );
246 config->writeEntry( "RemoteFileNameAB", mRemoteFileNameAB ); 248 config->writeEntry( "RemoteFileNameAB", mRemoteFileNameAB );
247 249
248 config->writeEntry( "PreSyncCommandPWM",mPreSyncCommandPWM ); 250 config->writeEntry( "PreSyncCommandPWM",mPreSyncCommandPWM );
249 config->writeEntry( "PostSyncCommandPWM", mPostSyncCommandPWM ); 251 config->writeEntry( "PostSyncCommandPWM", mPostSyncCommandPWM );
250 config->writeEntry( "LocalTempFilePWM", mLocalTempFilePWM ); 252 config->writeEntry( "LocalTempFilePWM", mLocalTempFilePWM );
251 config->writeEntry( "RemoteFileNamePWM", mRemoteFileNamePWM ); 253 config->writeEntry( "RemoteFileNamePWM", mRemoteFileNamePWM );
252 254
253 config->writeEntry( "PhoneDevice", mPhoneDevice ); 255 config->writeEntry( "PhoneDevice", mPhoneDevice );
254 config->writeEntry( "PhoneConnection", mPhoneConnection ); 256 config->writeEntry( "PhoneConnection", mPhoneConnection );
255 config->writeEntry( "PhoneModel", mPhoneModel ); 257 config->writeEntry( "PhoneModel", mPhoneModel );
256 258
257 config->writeEntry( "IncludeInRingSync",mIncludeInRingSync ); 259 config->writeEntry( "IncludeInRingSync",mIncludeInRingSync );
258 config->writeEntry( "IncludeInRingSyncAB",mIncludeInRingSyncAB ); 260 config->writeEntry( "IncludeInRingSyncAB",mIncludeInRingSyncAB );
259 config->writeEntry( "IncludeInRingSyncPWM",mIncludeInRingSyncPWM ); 261 config->writeEntry( "IncludeInRingSyncPWM",mIncludeInRingSyncPWM );
260 config->writeEntry( "ShowSummaryAfterSync", mShowSummaryAfterSync ); 262 config->writeEntry( "ShowSummaryAfterSync", mShowSummaryAfterSync );
261 config->writeEntry( "AskForPreferences",mAskForPreferences ); 263 config->writeEntry( "AskForPreferences",mAskForPreferences );
262 config->writeEntry( "WriteBackExisting",mWriteBackExisting ); 264 config->writeEntry( "WriteBackExisting",mWriteBackExisting );
263 config->writeEntry( "WriteBackFuture",mWriteBackFuture ); 265 config->writeEntry( "WriteBackFuture",mWriteBackFuture );
264 config->writeEntry( "WriteBackFile",mWriteBackFile ); 266 config->writeEntry( "WriteBackFile",mWriteBackFile );
265 config->writeEntry( "WriteContactToSIM",mWriteContactToSIM ); 267 config->writeEntry( "WriteContactToSIM",mWriteContactToSIM );
266 config->writeEntry( "SyncPrefs", mSyncPrefs ); 268 config->writeEntry( "SyncPrefs", mSyncPrefs );
267 config->writeEntry( "WriteBackFutureWeeks", mWriteBackFutureWeeks); 269 config->writeEntry( "WriteBackFutureWeeks", mWriteBackFutureWeeks);
268 config->writeEntry( "WriteBackPastWeeks", mWriteBackPastWeeks); 270 config->writeEntry( "WriteBackPastWeeks", mWriteBackPastWeeks);
269 config->writeEntry( "IsLocalFileSync", mIsLocalFileSync ); 271 config->writeEntry( "IsLocalFileSync", mIsLocalFileSync );
270 config->writeEntry( "IsPhoneSync", mIsPhoneSync ); 272 config->writeEntry( "IsPhoneSync", mIsPhoneSync );
271 config->writeEntry( "IsPiSync", mIsPiSync ); 273 config->writeEntry( "IsPiSync", mIsPiSync );
272 config->writeEntry( "IsPiSyncSpec", mIsPiSyncSpec ); 274 config->writeEntry( "IsPiSyncSpec", mIsPiSyncSpec );
273 config->writeEntry( "IsKapiFile", mIsKapiFile ); 275 config->writeEntry( "IsKapiFile", mIsKapiFile );
274 config->writeEntry( "FilterInCal", mFilterInCal ); 276 config->writeEntry( "FilterInCal", mFilterInCal );
275 config->writeEntry( "FilterOutCal", mFilterOutCal ); 277 config->writeEntry( "FilterOutCal", mFilterOutCal );
276 config->writeEntry( "FilterInAB", mFilterInAB ); 278 config->writeEntry( "FilterInAB", mFilterInAB );
277 config->writeEntry( "FilterOutAB", mFilterOutAB ); 279 config->writeEntry( "FilterOutAB", mFilterOutAB );
278 280
279 config->writeEntry( "ResSpecKopi", mResSpecKopi ); 281 config->writeEntry( "ResSpecKopi", mResSpecKopi );
280 config->writeEntry( "ResSpecKapi", mResSpecKapi ); 282 config->writeEntry( "ResSpecKapi", mResSpecKapi );
281} 283}
282 284