summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncprefsdialog.cpp98
-rw-r--r--libkdepim/ksyncprefsdialog.h8
-rw-r--r--libkdepim/ksyncprofile.cpp17
-rw-r--r--libkdepim/ksyncprofile.h14
4 files changed, 131 insertions, 6 deletions
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp
index 355c05d..c6c5ff8 100644
--- a/libkdepim/ksyncprefsdialog.cpp
+++ b/libkdepim/ksyncprefsdialog.cpp
@@ -1,529 +1,615 @@
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 46
47#include <kcolorbutton.h> 47#include <kcolorbutton.h>
48#include <kdebug.h> 48#include <kdebug.h>
49#include <klocale.h> 49#include <klocale.h>
50#include <kglobal.h> 50#include <kglobal.h>
51#include <kfontdialog.h> 51#include <kfontdialog.h>
52#include <kmessagebox.h> 52#include <kmessagebox.h>
53#include <kcolordialog.h> 53#include <kcolordialog.h>
54#include <kiconloader.h> 54#include <kiconloader.h>
55#include <kemailsettings.h> 55#include <kemailsettings.h>
56#include <kstandarddirs.h> 56#include <kstandarddirs.h>
57#include <kfiledialog.h> 57#include <kfiledialog.h>
58#include <kmessagebox.h> 58#include <kmessagebox.h>
59 59
60//#include <kurlrequester.h> 60//#include <kurlrequester.h>
61#include <klineedit.h> 61#include <klineedit.h>
62#include "ksyncprofile.h" 62#include "ksyncprofile.h"
63 63
64 64
65//#include "koprefs.h" 65//#include "koprefs.h"
66 66
67#include "ksyncprefsdialog.h" 67#include "ksyncprefsdialog.h"
68//#include "koglobals.h" 68//#include "koglobals.h"
69 69
70 70
71KSyncPrefsDialog::KSyncPrefsDialog(QWidget *parent, char *name, bool modal) : 71KSyncPrefsDialog::KSyncPrefsDialog(QWidget *parent, char *name, bool modal) :
72 KDialog(parent,name,true) 72 KDialog(parent,name,true)
73{ 73{
74 74
75 setCaption( i18n("Synchronization Preferences")); 75 setCaption( i18n("Synchronization Preferences"));
76 76
77 mSyncProfiles.setAutoDelete( true ); 77 mSyncProfiles.setAutoDelete( true );
78 setupSyncAlgTab(); 78 setupSyncAlgTab();
79} 79}
80 80
81 81
82KSyncPrefsDialog::~KSyncPrefsDialog() 82KSyncPrefsDialog::~KSyncPrefsDialog()
83{ 83{
84} 84}
85 85
86void KSyncPrefsDialog::setupSyncAlgTab() 86void KSyncPrefsDialog::setupSyncAlgTab()
87{ 87{
88 QLabel * lab; 88 QLabel * lab;
89 //QFrame *page = addPage(i18n("Sync Prefs"),0,0); 89 //QFrame *page = addPage(i18n("Sync Prefs"),0,0);
90 QVBox * mainbox = new QVBox( this ); 90 QVBox * mainbox = new QVBox( this );
91 QScrollView* sv = new QScrollView( mainbox ); 91 QScrollView* sv = new QScrollView( mainbox );
92 QHBoxLayout * lay = new QHBoxLayout( this ); 92 QHBoxLayout * lay = new QHBoxLayout( this );
93 lay->addWidget( mainbox ); 93 lay->addWidget( mainbox );
94 QHBox * b_box = new QHBox( mainbox ); 94 QHBox * b_box = new QHBox( mainbox );
95 95
96 QPushButton* button = new QPushButton( i18n("Ok"), b_box ); 96 QPushButton* button = new QPushButton( i18n("Ok"), b_box );
97 connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) ); 97 connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) );
98 button = new QPushButton( i18n("Cancel"), b_box ); 98 button = new QPushButton( i18n("Cancel"), b_box );
99 connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) ); 99 connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) );
100 //QBoxLayout * sl = new QVBoxLayout(this ); 100 //QBoxLayout * sl = new QVBoxLayout(this );
101 //sl->addWidget ( sv ); 101 //sl->addWidget ( sv );
102 sv->setResizePolicy ( QScrollView::AutoOneFit ); 102 sv->setResizePolicy ( QScrollView::AutoOneFit );
103 QFrame *topFrame = new QFrame ( sv ); 103 QFrame *topFrame = new QFrame ( sv );
104 sv->addChild( topFrame ); 104 sv->addChild( topFrame );
105 mSetupSyncAlgTab = topFrame; 105 mSetupSyncAlgTab = topFrame;
106 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 106 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
107 topLayout->setSpacing(spacingHint()); 107 topLayout->setSpacing(spacingHint());
108 topLayout->setMargin(marginHint()); 108 topLayout->setMargin(marginHint());
109 109
110 //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame); 110 //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame);
111 int iii = 0; 111 int iii = 0;
112 //topLayout->addMultiCellWidget(lab , iii,iii,0,1); 112 //topLayout->addMultiCellWidget(lab , iii,iii,0,1);
113 //++iii; 113 //++iii;
114 114
115 mMyMachineName = new QLineEdit(topFrame); 115 mMyMachineName = new QLineEdit(topFrame);
116 lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame); 116 lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame);
117 topLayout->addWidget(lab ,iii,0); 117 topLayout->addWidget(lab ,iii,0);
118 topLayout->addWidget(mMyMachineName,iii,1); 118 topLayout->addWidget(mMyMachineName,iii,1);
119 ++iii; 119 ++iii;
120 120
121 QHBox* buttonbox = new QHBox( topFrame); 121 QHBox* buttonbox = new QHBox( topFrame);
122 topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1); 122 topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1);
123 ++iii; 123 ++iii;
124 button = new QPushButton( i18n("New profile"), buttonbox ); 124 button = new QPushButton( i18n("New profile"), buttonbox );
125 connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) ); 125 connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) );
126 126
127 button = new QPushButton( i18n("Clone profile"), buttonbox ); 127 button = new QPushButton( i18n("Clone profile"), buttonbox );
128 connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) ); 128 connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) );
129 129
130 button = new QPushButton( i18n("Delete profile"), buttonbox ); 130 button = new QPushButton( i18n("Delete profile"), buttonbox );
131 connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) ); 131 connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) );
132 132
133 mProfileBox = new QComboBox(topFrame); 133 mProfileBox = new QComboBox(topFrame);
134 mProfileBox->setEditable ( true ); 134 mProfileBox->setEditable ( true );
135 connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) ); 135 connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) );
136 connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) ); 136 connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) );
137 137
138 lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame); 138 lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame);
139 topLayout->addWidget(lab ,iii,0); 139 topLayout->addWidget(lab ,iii,0);
140 topLayout->addWidget(mProfileBox, iii,1); 140 topLayout->addWidget(mProfileBox, iii,1);
141 ++iii; 141 ++iii;
142 142
143 mIncludeInRing = new QCheckBox( i18n("Include in multiple calendar sync"), topFrame ); 143 mIncludeInRing = new QCheckBox( i18n("Include in multiple calendar sync"), topFrame );
144 topLayout->addMultiCellWidget(mIncludeInRing, iii,iii,0,1); 144 topLayout->addMultiCellWidget(mIncludeInRing, iii,iii,0,1);
145 ++iii; 145 ++iii;
146 mIncludeInRingAB = new QCheckBox( i18n("Include in multiple addressbook sync"), topFrame ); 146 mIncludeInRingAB = new QCheckBox( i18n("Include in multiple addressbook sync"), topFrame );
147 topLayout->addMultiCellWidget(mIncludeInRingAB, iii,iii,0,1); 147 topLayout->addMultiCellWidget(mIncludeInRingAB, iii,iii,0,1);
148 ++iii; 148 ++iii;
149 149
150 mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame ); 150 mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), topFrame );
151 topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1); 151 topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1);
152 ++iii; 152 ++iii;
153 QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame); 153 QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), topFrame);
154 topLayout->addMultiCellWidget(gr, iii,iii,0,1); 154 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
155 ++iii; 155 ++iii;
156 loc = new QRadioButton ( i18n("Take local entry on conflict"), gr ); 156 loc = new QRadioButton ( i18n("Take local entry on conflict"), gr );
157 rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr ); 157 rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr );
158 newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr ); 158 newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr );
159 ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr ); 159 ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr );
160 f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr ); 160 f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr );
161 f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr ); 161 f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr );
162 // both = new QRadioButton ( i18n("Take both on conflict"), gr ); 162 // both = new QRadioButton ( i18n("Take both on conflict"), gr );
163 163
164 mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame ); 164 mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), topFrame );
165 topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1); 165 topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1);
166 ++iii; 166 ++iii;
167 167
168 mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame ); 168 mWriteBackFile = new QCheckBox( i18n("Write back synced data"), topFrame );
169 topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1); 169 topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1);
170 ++iii; 170 ++iii;
171 171
172 mWriteBackExisting= new QCheckBox( i18n("-- Write back (on remote) existing entries only"), topFrame ); 172 mWriteBackExisting= new QCheckBox( i18n("-- Write back (on remote) existing entries only"), topFrame );
173 topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1); 173 topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1);
174 ++iii; 174 ++iii;
175 175
176 mWriteBackFuture= new QCheckBox( i18n("-- Write back (calendar) entries in future only"), topFrame ); 176 mWriteBackFuture= new QCheckBox( i18n("-- Write back (calendar) entries in future only"), topFrame );
177 topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1); 177 topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1);
178 ++iii; 178 ++iii;
179 topLayout->addMultiCellWidget(new QLabel( i18n("---- Max. weeks in future: ") , topFrame ), iii,iii,0,0); 179 topLayout->addMultiCellWidget(new QLabel( i18n("---- Max. weeks in future: ") , topFrame ), iii,iii,0,0);
180 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, topFrame); 180 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, topFrame);
181 topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1); 181 topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1);
182 ++iii; 182 ++iii;
183 183
184 proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame); 184 proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame);
185 gr = proGr; 185 gr = proGr;
186 topLayout->addMultiCellWidget(gr, iii,iii,0,1); 186 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
187 ++iii; 187 ++iii;
188 mIsLocal = new QRadioButton ( i18n("Local file"), gr ); 188 mIsLocal = new QRadioButton ( i18n("Local file"), gr );
189 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); 189 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr );
190 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); 190 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
191 mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr );
192 connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
193
194
195 phoneWidget = new QVBox( topFrame);
196 topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1);
197 ++iii;
198 QHBox* temphb = new QHBox( phoneWidget );
199 new QLabel( i18n("I/O device: "), temphb );
200 mPhoneDevice = new QLineEdit( temphb);
201 button = new QPushButton( i18n("Help..."), temphb );
202 connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) );
203
204
205 temphb = new QHBox( phoneWidget );
206 new QLabel( i18n("Connection: "), temphb );
207 mPhoneConnection = new QLineEdit( temphb);
208 button = new QPushButton( i18n("Help..."), temphb );
209 connect ( button, SIGNAL( clicked()), this, SLOT ( helpConnection() ) );
210
211
212 temphb = new QHBox( phoneWidget );
213 new QLabel( i18n("Model(opt.): "), temphb );
214 mPhoneModel = new QLineEdit( temphb);
215 button = new QPushButton( i18n("Help..."), temphb );
216 connect ( button, SIGNAL( clicked()), this, SLOT ( helpModel() ) );
217
191 // *** local 218 // *** local
192 localFileWidget = new QVBox( topFrame); 219 localFileWidget = new QVBox( topFrame);
193 topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1); 220 topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1);
194 ++iii; 221 ++iii;
195 QHBox* temphb = new QHBox( localFileWidget ); 222 temphb = new QHBox( localFileWidget );
196 223
197 lab = new QLabel( i18n("Local file Cal:"), temphb ); 224 lab = new QLabel( i18n("Local file Cal:"), temphb );
198 lab = new QLabel( i18n("Local file ABook:"), temphb ); 225 lab = new QLabel( i18n("Local file ABook:"), temphb );
199 temphb = new QHBox( localFileWidget ); 226 temphb = new QHBox( localFileWidget );
200 button = new QPushButton( i18n("Choose..."), temphb ); 227 button = new QPushButton( i18n("Choose..."), temphb );
201 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) ); 228 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) );
202 button = new QPushButton( i18n("Choose..."), temphb ); 229 button = new QPushButton( i18n("Choose..."), temphb );
203 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) ); 230 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFileAB() ) );
204 temphb = new QHBox( localFileWidget ); 231 temphb = new QHBox( localFileWidget );
205 232
206 mRemoteFile = new QLineEdit( temphb); 233 mRemoteFile = new QLineEdit( temphb);
207 mRemoteFileAB = new QLineEdit( temphb); 234 mRemoteFileAB = new QLineEdit( temphb);
208 235
209 // *** remote 236 // *** remote
210 remoteFileWidget = new QVBox( topFrame); 237 remoteFileWidget = new QVBox( topFrame);
211 topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1); 238 topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
212 ++iii; 239 ++iii;
213 temphb = new QHBox( remoteFileWidget ); 240 temphb = new QHBox( remoteFileWidget );
214 new QLabel( i18n("Calendar:"), temphb); 241 new QLabel( i18n("Calendar:"), temphb);
215 new QLabel( i18n("AddressBook:"), temphb); 242 new QLabel( i18n("AddressBook:"), temphb);
216 243
217 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget); 244 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
218 temphb = new QHBox( remoteFileWidget ); 245 temphb = new QHBox( remoteFileWidget );
219 mRemotePrecommand = new QLineEdit(temphb); 246 mRemotePrecommand = new QLineEdit(temphb);
220 mRemotePrecommandAB = new QLineEdit(temphb); 247 mRemotePrecommandAB = new QLineEdit(temphb);
221 248
222 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget); 249 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget);
223 temphb = new QHBox( remoteFileWidget ); 250 temphb = new QHBox( remoteFileWidget );
224 mLocalTempFile = new QLineEdit(temphb); 251 mLocalTempFile = new QLineEdit(temphb);
225 mLocalTempFileAB = new QLineEdit(temphb); 252 mLocalTempFileAB = new QLineEdit(temphb);
226 253
227 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget); 254 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
228 temphb = new QHBox( remoteFileWidget ); 255 temphb = new QHBox( remoteFileWidget );
229 mRemotePostcommand = new QLineEdit(temphb ); 256 mRemotePostcommand = new QLineEdit(temphb );
230 mRemotePostcommandAB = new QLineEdit(temphb ); 257 mRemotePostcommandAB = new QLineEdit(temphb );
231 258
232 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget); 259 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
233 temphb = new QHBox( remoteFileWidget ); 260 temphb = new QHBox( remoteFileWidget );
234 button = new QPushButton( i18n("ssh/scp"), temphb ); 261 button = new QPushButton( i18n("ssh/scp"), temphb );
235 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) ); 262 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
236 button = new QPushButton( i18n("ftp"), temphb ); 263 button = new QPushButton( i18n("ftp"), temphb );
237 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) ); 264 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
238 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget); 265 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
239 266
240 267
241} 268}
242void KSyncPrefsDialog::slotOK() 269void KSyncPrefsDialog::slotOK()
243{ 270{
244 if ( mMyMachineName->text() == "undefined" ) { 271 if ( mMyMachineName->text() == "undefined" ) {
245 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error")); 272 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error"));
246 return; 273 return;
247 } 274 }
248 int i; 275 int i;
249 for (i = 0; i < mSyncProfileNames.count(); ++ i) { 276 for (i = 0; i < mSyncProfileNames.count(); ++ i) {
250 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) { 277 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) {
251 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error")); 278 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error"));
252 return; 279 return;
253 } 280 }
254 } 281 }
255 usrWriteConfig(); 282 usrWriteConfig();
256 QDialog::accept(); 283 QDialog::accept();
257} 284}
258void KSyncPrefsDialog::accept() 285void KSyncPrefsDialog::accept()
259{ 286{
260 slotOK(); 287 slotOK();
261} 288}
262void KSyncPrefsDialog::chooseFile() 289void KSyncPrefsDialog::chooseFile()
263{ 290{
264 QString fn = QDir::homeDirPath(); 291 QString fn = QDir::homeDirPath();
265 292
266 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 293 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
267 if ( fn == "" ) 294 if ( fn == "" )
268 return; 295 return;
269 mRemoteFile->setText( fn ); 296 mRemoteFile->setText( fn );
270} 297}
271 298
272void KSyncPrefsDialog::chooseFileAB() 299void KSyncPrefsDialog::chooseFileAB()
273{ 300{
274 QString fn = QDir::homeDirPath(); 301 QString fn = QDir::homeDirPath();
275 302
276 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 303 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this );
277 if ( fn == "" ) 304 if ( fn == "" )
278 return; 305 return;
279 mRemoteFileAB->setText( fn ); 306 mRemoteFileAB->setText( fn );
280} 307}
281 308
282void KSyncPrefsDialog::textChanged( const QString & s ) 309void KSyncPrefsDialog::textChanged( const QString & s )
283{ 310{
284 if ( mProfileBox->count() == 0 ) 311 if ( mProfileBox->count() == 0 )
285 return; 312 return;
286 if ( currentSelection < 3 ) { 313 if ( currentSelection < 3 ) {
287 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error")); 314 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error"));
288 mProfileBox->blockSignals( true ); 315 mProfileBox->blockSignals( true );
289 mProfileBox->setCurrentItem(mProfileBox-> currentItem ()); 316 mProfileBox->setCurrentItem(mProfileBox-> currentItem ());
290 mProfileBox->blockSignals( false ); 317 mProfileBox->blockSignals( false );
291 return; 318 return;
292 } 319 }
293 //qDebug("cur i %d ",mProfileBox-> currentItem () ); 320 //qDebug("cur i %d ",mProfileBox-> currentItem () );
294 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ; 321 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ;
295 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ; 322 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ;
296 prof->setName( s ); 323 prof->setName( s );
297 mSyncProfileNames[mProfileBox-> currentItem ()] = s; 324 mSyncProfileNames[mProfileBox-> currentItem ()] = s;
298} 325}
299void KSyncPrefsDialog::profileChanged( int item ) 326void KSyncPrefsDialog::profileChanged( int item )
300{ 327{
301 //qDebug("KSyncPrefsDialog::profileChanged %d ", item ); 328 //qDebug("KSyncPrefsDialog::profileChanged %d ", item );
302 KSyncProfile* prof; 329 KSyncProfile* prof;
303 saveProfile(); 330 saveProfile();
304 currentSelection = item; 331 currentSelection = item;
305 prof = mSyncProfiles.at(item) ; 332 prof = mSyncProfiles.at(item) ;
306 mRemotePrecommand->setText(prof->getPreSyncCommand()); 333 mRemotePrecommand->setText(prof->getPreSyncCommand());
307 mRemotePostcommand->setText(prof->getPostSyncCommand()); 334 mRemotePostcommand->setText(prof->getPostSyncCommand());
308 mLocalTempFile->setText(prof->getLocalTempFile()); 335 mLocalTempFile->setText(prof->getLocalTempFile());
309 mRemoteFile->setText(prof->getRemoteFileName()) ; 336 mRemoteFile->setText(prof->getRemoteFileName()) ;
310 337
311 mRemotePrecommandAB->setText(prof->getPreSyncCommandAB()); 338 mRemotePrecommandAB->setText(prof->getPreSyncCommandAB());
312 mRemotePostcommandAB->setText(prof->getPostSyncCommandAB()); 339 mRemotePostcommandAB->setText(prof->getPostSyncCommandAB());
313 mLocalTempFileAB->setText(prof->getLocalTempFileAB()); 340 mLocalTempFileAB->setText(prof->getLocalTempFileAB());
314 mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ; 341 mRemoteFileAB->setText(prof->getRemoteFileNameAB()) ;
342
343 mPhoneDevice->setText(prof->getPhoneDevice());
344 mPhoneConnection->setText(prof->getPhoneConnection());
345 mPhoneModel->setText(prof->getPhoneModel());
346
315 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync()); 347 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync());
316 mAskForPreferences->setChecked( prof->getAskForPreferences()); 348 mAskForPreferences->setChecked( prof->getAskForPreferences());
317 mWriteBackExisting->setChecked( prof->getWriteBackExisting() ); 349 mWriteBackExisting->setChecked( prof->getWriteBackExisting() );
318 mWriteBackFile->setChecked( prof->getWriteBackFile()); 350 mWriteBackFile->setChecked( prof->getWriteBackFile());
319 mIncludeInRing->setChecked( prof->getIncludeInRingSync() ); 351 mIncludeInRing->setChecked( prof->getIncludeInRingSync() );
320 mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() ); 352 mIncludeInRingAB->setChecked( prof->getIncludeInRingSyncAB() );
321 mWriteBackFuture->setChecked( prof->getWriteBackFuture()); 353 mWriteBackFuture->setChecked( prof->getWriteBackFuture());
322 mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() ); 354 mWriteBackFutureWeeks->setValue( prof->getWriteBackFutureWeeks() );
323 355
324 switch ( prof->getSyncPrefs() ) { 356 switch ( prof->getSyncPrefs() ) {
325 case 0: 357 case 0:
326 loc->setChecked( true); 358 loc->setChecked( true);
327 break; 359 break;
328 case 1: 360 case 1:
329 rem->setChecked( true ); 361 rem->setChecked( true );
330 break; 362 break;
331 case 2: 363 case 2:
332 newest->setChecked( true); 364 newest->setChecked( true);
333 break; 365 break;
334 case 3: 366 case 3:
335 ask->setChecked( true); 367 ask->setChecked( true);
336 break; 368 break;
337 case 4: 369 case 4:
338 f_loc->setChecked( true); 370 f_loc->setChecked( true);
339 break; 371 break;
340 case 5: 372 case 5:
341 f_rem->setChecked( true); 373 f_rem->setChecked( true);
342 break; 374 break;
343 case 6: 375 case 6:
344 //both->setChecked( true); 376 //both->setChecked( true);
345 break; 377 break;
346 default: 378 default:
347 break; 379 break;
348 } 380 }
349 mIsLocal->setChecked(prof->getIsLocalFileSync()) ; 381 mIsLocal->setChecked(prof->getIsLocalFileSync()) ;
350 mIsNotLocal->setChecked(!prof->getIsLocalFileSync()); 382 mIsPhone->setChecked(prof->getIsPhoneSync()) ;
383 mIsNotLocal->setChecked(!prof->getIsLocalFileSync() && !prof->getIsPhoneSync() );
351 proGr->setEnabled( item > 2 ); 384 proGr->setEnabled( item > 2 );
352 if ( item < 3 ) { 385 if ( item < 3 ) {
353 localFileWidget->setEnabled(false); 386 localFileWidget->hide();
354 remoteFileWidget->setEnabled(false); 387 remoteFileWidget->hide();
388 phoneWidget->hide();
355 389
356 } else 390 } else
357 kindChanged( prof->getIsLocalFileSync() ); 391 kindChanged( prof->getIsLocalFileSync() );
358} 392}
359 393
360void KSyncPrefsDialog::fillSSH() 394void KSyncPrefsDialog::fillSSH()
361{ 395{
362 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 396 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
363 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 397 mLocalTempFile->setText("/tmp/mycalendar.ics" );
364 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" ); 398 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" );
365 mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); 399 mRemotePrecommandAB->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf /tmp/std.vcf" );
366 mLocalTempFileAB->setText("/tmp/std.vcf" ); 400 mLocalTempFileAB->setText("/tmp/std.vcf" );
367 mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" ); 401 mRemotePostcommandAB->setText("scp /tmp/std.vcf zaurus@192.168.0.65:/home/zaurus/kdepim/apps/kabc/std.vcf" );
368} 402}
369void KSyncPrefsDialog::fillFTP() 403void KSyncPrefsDialog::fillFTP()
370{ 404{
371 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" ); 405 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" );
372 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 406 mLocalTempFile->setText("/tmp/mycalendar.ics" );
373 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 407 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
374 mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" ); 408 mRemotePrecommandAB->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf" );
375 mLocalTempFileAB->setText("/tmp/std.vcf" ); 409 mLocalTempFileAB->setText("/tmp/std.vcf" );
376 mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" ); 410 mRemotePostcommandAB->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/kabc/std.vcf /tmp/std.vcf" );
377 411
378} 412}
379void KSyncPrefsDialog::kindChanged( bool b ) 413void KSyncPrefsDialog::kindChanged( bool b )
380{ 414{
381 415
382 localFileWidget->setEnabled(b); 416 if ( mIsLocal->isChecked () )
383 remoteFileWidget->setEnabled(!b); 417 localFileWidget->show();
418 else
419 localFileWidget->hide();
420
421 if ( mIsNotLocal->isChecked () )
422 remoteFileWidget->show();
423 else
424 remoteFileWidget->hide();
425
426 if ( mIsPhone->isChecked () ) {
427 phoneWidget->show();
428 }
429 else {
430 phoneWidget->hide();
431 }
384 432
385} 433}
386void KSyncPrefsDialog::deleteProfile() 434void KSyncPrefsDialog::deleteProfile()
387{ 435{
388 //qDebug("KSyncPrefsDialog::deleteProfile() "); 436 //qDebug("KSyncPrefsDialog::deleteProfile() ");
389 if ( currentSelection >= 0 ) { 437 if ( currentSelection >= 0 ) {
390 if ( currentSelection < 3 ) { 438 if ( currentSelection < 3 ) {
391 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error")); 439 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error"));
392 return; 440 return;
393 } 441 }
394 KSyncProfile* temp = mSyncProfiles.at(currentSelection); 442 KSyncProfile* temp = mSyncProfiles.at(currentSelection);
395 mSyncProfiles.remove( temp ); 443 mSyncProfiles.remove( temp );
396 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection )); 444 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection ));
397 insertProfiles(); 445 insertProfiles();
398 } 446 }
399} 447}
400 448
401void KSyncPrefsDialog::saveProfile() 449void KSyncPrefsDialog::saveProfile()
402{ 450{
403 KSyncProfile* prof; 451 KSyncProfile* prof;
404 if ( currentSelection >= 0 ) { 452 if ( currentSelection >= 0 ) {
405 prof = mSyncProfiles.at(currentSelection) ; 453 prof = mSyncProfiles.at(currentSelection) ;
406 prof->setPreSyncCommand( mRemotePrecommand->text()); 454 prof->setPreSyncCommand( mRemotePrecommand->text());
407 prof->setPostSyncCommand( mRemotePostcommand->text() ); 455 prof->setPostSyncCommand( mRemotePostcommand->text() );
408 prof->setLocalTempFile( mLocalTempFile->text()); 456 prof->setLocalTempFile( mLocalTempFile->text());
409 prof->setRemoteFileName( mRemoteFile->text() ); 457 prof->setRemoteFileName( mRemoteFile->text() );
410 prof->setPreSyncCommandAB( mRemotePrecommandAB->text()); 458 prof->setPreSyncCommandAB( mRemotePrecommandAB->text());
411 prof->setPostSyncCommandAB( mRemotePostcommandAB->text() ); 459 prof->setPostSyncCommandAB( mRemotePostcommandAB->text() );
412 prof->setLocalTempFileAB( mLocalTempFileAB->text()); 460 prof->setLocalTempFileAB( mLocalTempFileAB->text());
413 prof->setRemoteFileNameAB( mRemoteFileAB->text() ); 461 prof->setRemoteFileNameAB( mRemoteFileAB->text() );
414 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() ); 462 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() );
415 prof->setAskForPreferences( mAskForPreferences->isChecked()); 463 prof->setAskForPreferences( mAskForPreferences->isChecked());
416 prof->setWriteBackExisting(mWriteBackExisting->isChecked() ); 464 prof->setWriteBackExisting(mWriteBackExisting->isChecked() );
417 prof->setWriteBackFile( mWriteBackFile->isChecked()); 465 prof->setWriteBackFile( mWriteBackFile->isChecked());
418 prof->setIncludeInRingSync( mIncludeInRing->isChecked() ); 466 prof->setIncludeInRingSync( mIncludeInRing->isChecked() );
419 prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() ); 467 prof->setIncludeInRingSyncAB( mIncludeInRingAB->isChecked() );
420 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ; 468 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ;
421 prof->setSyncPrefs( syncprefs); 469 prof->setSyncPrefs( syncprefs);
422 prof->setIsLocalFileSync( mIsLocal->isChecked() ); 470 prof->setIsLocalFileSync( mIsLocal->isChecked() );
471 prof->setIsPhoneSync( mIsPhone->isChecked() );
423 prof->setWriteBackFuture(mWriteBackFuture->isChecked()); 472 prof->setWriteBackFuture(mWriteBackFuture->isChecked());
424 prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value()); 473 prof->setWriteBackFutureWeeks(mWriteBackFutureWeeks->value());
474 prof->setPhoneDevice( mPhoneDevice->text() );
475 prof->setPhoneConnection( mPhoneConnection->text() );
476 prof->setPhoneModel( mPhoneModel->text() );
477
425 } 478 }
426 479
427} 480}
428 481
429void KSyncPrefsDialog::insertProfiles() 482void KSyncPrefsDialog::insertProfiles()
430{ 483{
431 int curItem = mProfileBox->currentItem(); 484 int curItem = mProfileBox->currentItem();
432 mProfileBox->blockSignals( true ); 485 mProfileBox->blockSignals( true );
433 mProfileBox->clear(); 486 mProfileBox->clear();
434 mProfileBox->insertStringList (mSyncProfileNames ); 487 mProfileBox->insertStringList (mSyncProfileNames );
435 int item = mSyncProfileNames.count() -1; 488 int item = mSyncProfileNames.count() -1;
436 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() ) 489 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() )
437 mProfileBox->setCurrentItem( curItem ); 490 mProfileBox->setCurrentItem( curItem );
438 else if ( item >= 0 ) { 491 else if ( item >= 0 ) {
439 mProfileBox->setCurrentItem( item ); 492 mProfileBox->setCurrentItem( item );
440 } 493 }
441 currentSelection = -1; 494 currentSelection = -1;
442 if ( mSyncProfileNames.count() > 0 ) { 495 if ( mSyncProfileNames.count() > 0 ) {
443 //qDebug(" profileChanged( mProfileBox->currentItem() "); 496 //qDebug(" profileChanged( mProfileBox->currentItem() ");
444 profileChanged( mProfileBox->currentItem() ); 497 profileChanged( mProfileBox->currentItem() );
445 currentSelection = mProfileBox->currentItem(); 498 currentSelection = mProfileBox->currentItem();
446 } 499 }
447 mProfileBox->blockSignals( false ); 500 mProfileBox->blockSignals( false );
448} 501}
449 502
450void KSyncPrefsDialog::addProfile ( KSyncProfile* temp ) 503void KSyncPrefsDialog::addProfile ( KSyncProfile* temp )
451{ 504{
452 saveProfile(); 505 saveProfile();
453 mSyncProfiles.append( temp ); 506 mSyncProfiles.append( temp );
454 mSyncProfileNames << temp->getName(); 507 mSyncProfileNames << temp->getName();
455 insertProfiles(); 508 insertProfiles();
456 int last = mProfileBox->count() -1; 509 int last = mProfileBox->count() -1;
457 mProfileBox->blockSignals( true ); 510 mProfileBox->blockSignals( true );
458 mProfileBox->setCurrentItem( last ); 511 mProfileBox->setCurrentItem( last );
459 mProfileBox->blockSignals( false ); 512 mProfileBox->blockSignals( false );
460 profileChanged(last); 513 profileChanged(last);
461} 514}
462void KSyncPrefsDialog::newProfile() 515void KSyncPrefsDialog::newProfile()
463{ 516{
464 addProfile ( new KSyncProfile () ); 517 addProfile ( new KSyncProfile () );
465} 518}
466 519
467void KSyncPrefsDialog::cloneProfile() 520void KSyncPrefsDialog::cloneProfile()
468{ 521{
469 if ( currentSelection >= 0 ) 522 if ( currentSelection >= 0 )
470 addProfile (mSyncProfiles.at(currentSelection)->clone()) ; 523 addProfile (mSyncProfiles.at(currentSelection)->clone()) ;
471 else 524 else
472 newProfile(); 525 newProfile();
473} 526}
474 527
475void KSyncPrefsDialog::setLocalMachineName ( const QString& name ) 528void KSyncPrefsDialog::setLocalMachineName ( const QString& name )
476{ 529{
477 mMyMachineName->setText( name ); 530 mMyMachineName->setText( name );
478 531
479} 532}
480QString KSyncPrefsDialog::getLocalMachineName ( ) 533QString KSyncPrefsDialog::getLocalMachineName ( )
481{ 534{
482 return mMyMachineName->text(); 535 return mMyMachineName->text();
483} 536}
484 537
485QStringList KSyncPrefsDialog::getSyncProfileNames() 538QStringList KSyncPrefsDialog::getSyncProfileNames()
486{ 539{
487 return mSyncProfileNames; 540 return mSyncProfileNames;
488} 541}
489void KSyncPrefsDialog::usrReadConfig() 542void KSyncPrefsDialog::usrReadConfig()
490{ 543{
491 //KConfig *config = KOGlobals::config(); 544 //KConfig *config = KOGlobals::config();
492 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 545 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
493 config.setGroup("SyncProfiles"); 546 config.setGroup("SyncProfiles");
494 mSyncProfileNames =config.readListEntry("SyncProfileNames"); 547 mSyncProfileNames =config.readListEntry("SyncProfileNames");
495 mMyMachineName->setText(config.readEntry("LocalMachineName","undefined")); 548 mMyMachineName->setText(config.readEntry("LocalMachineName","undefined"));
496 int i; 549 int i;
497 KSyncProfile* temp ; 550 KSyncProfile* temp ;
498 mSyncProfiles.clear(); 551 mSyncProfiles.clear();
499 for ( i = 0; i < mSyncProfileNames.count();++i ) { 552 for ( i = 0; i < mSyncProfileNames.count();++i ) {
500 temp = new KSyncProfile (); 553 temp = new KSyncProfile ();
501 temp->setName( mSyncProfileNames[i] ); 554 temp->setName( mSyncProfileNames[i] );
502 temp->readConfig( &config ); 555 temp->readConfig( &config );
503 mSyncProfiles.append( temp ); 556 mSyncProfiles.append( temp );
504 } 557 }
505 insertProfiles(); 558 insertProfiles();
506 //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName ); 559 //mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName );
507} 560}
508 561
509 562
510void KSyncPrefsDialog::usrWriteConfig() 563void KSyncPrefsDialog::usrWriteConfig()
511{ 564{
512 saveProfile(); 565 saveProfile();
513 if ( currentSelection >= 0 ) 566 if ( currentSelection >= 0 )
514 profileChanged(currentSelection); 567 profileChanged(currentSelection);
515 //KConfig *config = KOGlobals::config(); 568 //KConfig *config = KOGlobals::config();
516 KConfig config ( locateLocal( "config","syncprofilesrc" ) ); 569 KConfig config ( locateLocal( "config","syncprofilesrc" ) );
517 config.setGroup("SyncProfiles"); 570 config.setGroup("SyncProfiles");
518 KSyncProfile* prof = mSyncProfiles.first(); 571 KSyncProfile* prof = mSyncProfiles.first();
519 while ( prof ) { 572 while ( prof ) {
520 prof->writeConfig(&config); 573 prof->writeConfig(&config);
521 prof = mSyncProfiles.next(); 574 prof = mSyncProfiles.next();
522 } 575 }
523 //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames; 576 //KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames;
524 //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text(); 577 //KOPrefs::instance()->mLocalMachineName = mMyMachineName->text();
525 config.writeEntry("SyncProfileNames",mSyncProfileNames); 578 config.writeEntry("SyncProfileNames",mSyncProfileNames);
526 QString name = mMyMachineName->text(); 579 QString name = mMyMachineName->text();
527 config.writeEntry("LocalMachineName",name); 580 config.writeEntry("LocalMachineName",name);
528} 581}
529 582
583void KSyncPrefsDialog::helpDevice()
584{
585 QString hint = i18n("Insert device where\nphone is connected. E.g.:\n");
586#ifdef _WIN32_
587 hint += "leave empty for Irda\n"
588 "com1:\n(first serial port)\n"
589 "usb not supported\n"
590 "???\n(bluetooth device address)\n";
591
592#else
593 hint += "/dev/ircomm\n(Irda)\n"
594 "/dev/ttyS0\n(first serial port)\n"
595 "/dev/ttyUSB0\n(first device usb port)\n"
596 "???\n(bluetooth device address)\n";
597#endif
598 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
599}
600void KSyncPrefsDialog::helpModel()
601{
602 QString hint = i18n("Leave empty or\ninsert name of phone model:\n");
603 hint += "E.g. for Nokia 6310i:\n6310i\nAlso possible:\nobex\nfor Obex connection";
604 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
605
606}
607void KSyncPrefsDialog::helpConnection()
608{
609 QString hint = i18n("Insert kind of connection,e.g.:\n");
610 hint += "irda | Nokia FBUS over infrared\n"
611 "irdaat | AT commands infrared\n(Siemens/Sony-Erricsson)\n"
612 "irdaobex | set model obex\n"
613 "fbus | Nokia FBUS2 serial\n";
614 KMessageBox::information(this,hint,i18n("KDE-Pim sync config"));
615}
diff --git a/libkdepim/ksyncprefsdialog.h b/libkdepim/ksyncprefsdialog.h
index 8c2c59c..3060e78 100644
--- a/libkdepim/ksyncprefsdialog.h
+++ b/libkdepim/ksyncprefsdialog.h
@@ -1,120 +1,128 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@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#ifndef _KSYNCPREFSDIALOG_H 23#ifndef _KSYNCPREFSDIALOG_H
24#define _KSYNCPREFSDIALOG_H 24#define _KSYNCPREFSDIALOG_H
25 25
26 26
27#include <kdialogbase.h> 27#include <kdialogbase.h>
28#include <qptrlist.h> 28#include <qptrlist.h>
29 29
30//#include <libkdepim/kprefsdialog.h> 30//#include <libkdepim/kprefsdialog.h>
31 31
32class KColorButton; 32class KColorButton;
33class QSpinBox;; 33class QSpinBox;;
34class QRadioButton; 34class QRadioButton;
35class QCheckBox; 35class QCheckBox;
36class QSlider; 36class QSlider;
37class KURLRequester; 37class KURLRequester;
38class QComboBox; 38class QComboBox;
39class QButtonGroup; 39class QButtonGroup;
40class QLineEdit; 40class QLineEdit;
41class QVBox; 41class QVBox;
42class QStringList; 42class QStringList;
43class KSyncProfile; 43class KSyncProfile;
44 44
45/** Dialog to change the korganizer configuration. 45/** Dialog to change the korganizer configuration.
46 */ 46 */
47class KSyncPrefsDialog : public KDialog 47class KSyncPrefsDialog : public KDialog
48{ 48{
49 Q_OBJECT 49 Q_OBJECT
50 public: 50 public:
51 /** Initialize dialog and pages */ 51 /** Initialize dialog and pages */
52 KSyncPrefsDialog(QWidget *parent=0,char *name=0,bool modal=false); 52 KSyncPrefsDialog(QWidget *parent=0,char *name=0,bool modal=false);
53 ~KSyncPrefsDialog(); 53 ~KSyncPrefsDialog();
54 void usrReadConfig(); 54 void usrReadConfig();
55 void setLocalMachineName ( const QString& name ); 55 void setLocalMachineName ( const QString& name );
56 QString getLocalMachineName ( ); 56 QString getLocalMachineName ( );
57 57
58 QStringList getSyncProfileNames(); 58 QStringList getSyncProfileNames();
59 59
60 public slots: 60 public slots:
61 protected slots: 61 protected slots:
62 void accept(); 62 void accept();
63 void deleteProfile(); 63 void deleteProfile();
64 void newProfile(); 64 void newProfile();
65 void cloneProfile(); 65 void cloneProfile();
66 void kindChanged(bool); 66 void kindChanged(bool);
67 void fillSSH(); 67 void fillSSH();
68 void fillFTP(); 68 void fillFTP();
69 void textChanged( const QString & ); 69 void textChanged( const QString & );
70 void profileChanged( int ); 70 void profileChanged( int );
71 void chooseFile(); 71 void chooseFile();
72 void chooseFileAB(); 72 void chooseFileAB();
73 void slotOK(); 73 void slotOK();
74 void helpDevice();
75 void helpModel();
76 void helpConnection();
74 77
75 protected: 78 protected:
76 void usrWriteConfig(); 79 void usrWriteConfig();
77 80
78 void setupSyncAlgTab(); 81 void setupSyncAlgTab();
79 82
80 private: 83 private:
81 int currentSelection; 84 int currentSelection;
82 QPtrList<KSyncProfile> mSyncProfiles; 85 QPtrList<KSyncProfile> mSyncProfiles;
83 QStringList mSyncProfileNames; 86 QStringList mSyncProfileNames;
84 QLineEdit * mMyMachineName; 87 QLineEdit * mMyMachineName;
85 QComboBox * mProfileBox; 88 QComboBox * mProfileBox;
86 QRadioButton* mIsLocal; 89 QRadioButton* mIsLocal;
87 QRadioButton* mIsNotLocal; 90 QRadioButton* mIsNotLocal;
91 QRadioButton* mIsPhone;
88 QCheckBox* mIncludeInRing; 92 QCheckBox* mIncludeInRing;
89 QCheckBox* mIncludeInRingAB; 93 QCheckBox* mIncludeInRingAB;
90 void addProfile ( KSyncProfile* ); 94 void addProfile ( KSyncProfile* );
91 void insertProfiles(); 95 void insertProfiles();
92 void saveProfile(); 96 void saveProfile();
93 QButtonGroup* proGr; 97 QButtonGroup* proGr;
94 98
95 QRadioButton* loc, *rem, *newest, *ask, *f_loc,* f_rem, *both; 99 QRadioButton* loc, *rem, *newest, *ask, *f_loc,* f_rem, *both;
96 100
97 101
98 QLineEdit * mRemotePostcommand; 102 QLineEdit * mRemotePostcommand;
99 QLineEdit * mRemotePrecommand; 103 QLineEdit * mRemotePrecommand;
100 QLineEdit * mRemoteFile; 104 QLineEdit * mRemoteFile;
101 QLineEdit * mLocalTempFile; 105 QLineEdit * mLocalTempFile;
102 106
103 QLineEdit * mRemotePostcommandAB; 107 QLineEdit * mRemotePostcommandAB;
104 QLineEdit * mRemotePrecommandAB; 108 QLineEdit * mRemotePrecommandAB;
105 QLineEdit * mRemoteFileAB; 109 QLineEdit * mRemoteFileAB;
106 QLineEdit * mLocalTempFileAB; 110 QLineEdit * mLocalTempFileAB;
107 111
112 QLineEdit * mPhoneDevice;
113 QLineEdit * mPhoneConnection;
114 QLineEdit * mPhoneModel;
108 115
109 QWidget* mSetupSyncAlgTab; 116 QWidget* mSetupSyncAlgTab;
110 QVBox* localFileWidget; 117 QVBox* localFileWidget;
111 QVBox* remoteFileWidget; 118 QVBox* remoteFileWidget;
119 QVBox* phoneWidget;
112 QCheckBox* mWriteBackFile; 120 QCheckBox* mWriteBackFile;
113 QCheckBox* mWriteBackFuture; 121 QCheckBox* mWriteBackFuture;
114 QSpinBox* mWriteBackFutureWeeks; 122 QSpinBox* mWriteBackFutureWeeks;
115 QCheckBox* mWriteBackExisting; 123 QCheckBox* mWriteBackExisting;
116 QCheckBox* mAskForPreferences; 124 QCheckBox* mAskForPreferences;
117 QCheckBox* mShowSummaryAfterSync; 125 QCheckBox* mShowSummaryAfterSync;
118}; 126};
119 127
120#endif 128#endif
diff --git a/libkdepim/ksyncprofile.cpp b/libkdepim/ksyncprofile.cpp
index f34c309..425285e 100644
--- a/libkdepim/ksyncprofile.cpp
+++ b/libkdepim/ksyncprofile.cpp
@@ -1,156 +1,173 @@
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 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( const char * name): QObject (0, name ) 33KSyncProfile::KSyncProfile( const char * name): QObject (0, name )
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->setPreSyncCommand( mPreSyncCommand ); 46 myClone->setPreSyncCommand( mPreSyncCommand );
47 myClone->setPostSyncCommand( mPostSyncCommand ); 47 myClone->setPostSyncCommand( mPostSyncCommand );
48 myClone->setLocalTempFile( mLocalTempFile); 48 myClone->setLocalTempFile( mLocalTempFile);
49 myClone->setRemoteFileName( mRemoteFileName ); 49 myClone->setRemoteFileName( mRemoteFileName );
50 myClone->setPreSyncCommandAB( mPreSyncCommandAB ); 50 myClone->setPreSyncCommandAB( mPreSyncCommandAB );
51 myClone->setPostSyncCommandAB( mPostSyncCommandAB ); 51 myClone->setPostSyncCommandAB( mPostSyncCommandAB );
52 myClone->setLocalTempFileAB( mLocalTempFileAB); 52 myClone->setLocalTempFileAB( mLocalTempFileAB);
53 myClone->setRemoteFileNameAB( mRemoteFileNameAB ); 53 myClone->setRemoteFileNameAB( mRemoteFileNameAB );
54 myClone->setShowSummaryAfterSync( mShowSummaryAfterSync ); 54 myClone->setShowSummaryAfterSync( mShowSummaryAfterSync );
55 myClone->setAskForPreferences( mAskForPreferences); 55 myClone->setAskForPreferences( mAskForPreferences);
56 myClone->setWriteBackExisting(mWriteBackExisting ); 56 myClone->setWriteBackExisting(mWriteBackExisting );
57 myClone->setWriteBackFile( mWriteBackFile); 57 myClone->setWriteBackFile( mWriteBackFile);
58 myClone->setWriteBackFuture( mWriteBackFuture ); 58 myClone->setWriteBackFuture( mWriteBackFuture );
59 myClone->setWriteBackFutureWeeks( mWriteBackFutureWeeks ); 59 myClone->setWriteBackFutureWeeks( mWriteBackFutureWeeks );
60 myClone->setIncludeInRingSync( mIncludeInRingSync ); 60 myClone->setIncludeInRingSync( mIncludeInRingSync );
61 myClone->setIncludeInRingSyncAB( mIncludeInRingSyncAB ); 61 myClone->setIncludeInRingSyncAB( mIncludeInRingSyncAB );
62 myClone->setSyncPrefs( mSyncPrefs); 62 myClone->setSyncPrefs( mSyncPrefs);
63 myClone->setIsLocalFileSync( mIsLocalFileSync ); 63 myClone->setIsLocalFileSync( mIsLocalFileSync );
64 myClone->setIsPhoneSync( mIsPhoneSync );
64 myClone->setName( "noName" ); 65 myClone->setName( "noName" );
65 return myClone; 66 return myClone;
66} 67}
67 68
68 69
69void KSyncProfile::setDefault() 70void KSyncProfile::setDefault()
70{ 71{
71 mName = "noName"; 72 mName = "noName";
72 mPreSyncCommand = i18n("command for downloading remote file to local device"); 73 mPreSyncCommand = i18n("command for downloading remote file to local device");
73 mPostSyncCommand = i18n("command for uploading local temp file to remote device"); 74 mPostSyncCommand = i18n("command for uploading local temp file to remote device");
74 mLocalTempFile = "/tmp/mycalendar.ics"; 75 mLocalTempFile = "/tmp/mycalendar.ics";
75 mRemoteFileName = "/home/polo/kdepim/apps/korganizer/localfile.ics"; 76 mRemoteFileName = "/home/polo/kdepim/apps/korganizer/localfile.ics";
76 mPreSyncCommandAB = i18n("command for downloading remote file to local device"); 77 mPreSyncCommandAB = i18n("command for downloading remote file to local device");
77 mPostSyncCommandAB = i18n("command for uploading local temp file to remote device"); 78 mPostSyncCommandAB = i18n("command for uploading local temp file to remote device");
78 mLocalTempFileAB = "/tmp/std.vcf"; 79 mLocalTempFileAB = "/tmp/std.vcf";
79 mRemoteFileNameAB = "/home/polo/kdepim/apps/kabc/localfile.vcf"; 80 mRemoteFileNameAB = "/home/polo/kdepim/apps/kabc/localfile.vcf";
80 mShowSummaryAfterSync = true; 81 mShowSummaryAfterSync = true;
81 mAskForPreferences = true; 82 mAskForPreferences = true;
82 mWriteBackExisting = false; 83 mWriteBackExisting = false;
83 mWriteBackFuture = false; 84 mWriteBackFuture = false;
84 mWriteBackFutureWeeks = 12; 85 mWriteBackFutureWeeks = 12;
85 mWriteBackFile = true; 86 mWriteBackFile = true;
86 mIncludeInRingSync = false; 87 mIncludeInRingSync = false;
87 mIncludeInRingSyncAB = false; 88 mIncludeInRingSyncAB = false;
88 mSyncPrefs = SYNC_PREF_ASK; 89 mSyncPrefs = SYNC_PREF_ASK;
89 mIsLocalFileSync = true; 90 mIsLocalFileSync = true;
91 mIsPhoneSync = false;
92 mPhoneDevice = "/dev/ircomm";
93 mPhoneConnection = "irda";
94 mPhoneModel = "6310i";
90 95
91} 96}
92void KSyncProfile::readConfig(KConfig *config ) 97void KSyncProfile::readConfig(KConfig *config )
93{ 98{
94 config->setGroup("SyncProfiles"); 99 config->setGroup("SyncProfiles");
95 QString prefix = "Profile_"+mName+"_"; 100 QString prefix = "Profile_"+mName+"_";
96 //mName = config->readEntry( prefix+ "Name", mName ); 101 //mName = config->readEntry( prefix+ "Name", mName );
97 mPreSyncCommand = config->readEntry( prefix+ "PreSyncCommand",mPreSyncCommand ); 102 mPreSyncCommand = config->readEntry( prefix+ "PreSyncCommand",mPreSyncCommand );
98 mPostSyncCommand = config->readEntry( prefix+ "PostSyncCommand", mPostSyncCommand );; 103 mPostSyncCommand = config->readEntry( prefix+ "PostSyncCommand", mPostSyncCommand );;
99 mLocalTempFile = config->readEntry( prefix+ "LocalTempFile", mLocalTempFile ); 104 mLocalTempFile = config->readEntry( prefix+ "LocalTempFile", mLocalTempFile );
100 mRemoteFileName = config->readEntry( prefix+ "RemoteFileName", mRemoteFileName ); 105 mRemoteFileName = config->readEntry( prefix+ "RemoteFileName", mRemoteFileName );
101 106
102 mPreSyncCommandAB = config->readEntry( prefix+ "PreSyncCommandAB",mPreSyncCommandAB ); 107 mPreSyncCommandAB = config->readEntry( prefix+ "PreSyncCommandAB",mPreSyncCommandAB );
103 mPostSyncCommandAB = config->readEntry( prefix+ "PostSyncCommandAB", mPostSyncCommandAB ); 108 mPostSyncCommandAB = config->readEntry( prefix+ "PostSyncCommandAB", mPostSyncCommandAB );
104 mLocalTempFileAB = config->readEntry( prefix+ "LocalTempFileAB", mLocalTempFileAB ); 109 mLocalTempFileAB = config->readEntry( prefix+ "LocalTempFileAB", mLocalTempFileAB );
105 mRemoteFileNameAB = config->readEntry( prefix+ "RemoteFileNameAB", mRemoteFileNameAB ); 110 mRemoteFileNameAB = config->readEntry( prefix+ "RemoteFileNameAB", mRemoteFileNameAB );
106 111
112
113 mPhoneDevice = config->readEntry( prefix+ "PhoneDevice", mPhoneDevice );
114 mPhoneConnection = config->readEntry( prefix+ "PhoneConnection", mPhoneConnection );
115 mPhoneModel = config->readEntry( prefix+ "PhoneModel", mPhoneModel );
116
107 mIncludeInRingSync = config->readBoolEntry( prefix+ "IncludeInRingSync",mIncludeInRingSync ); 117 mIncludeInRingSync = config->readBoolEntry( prefix+ "IncludeInRingSync",mIncludeInRingSync );
108 mIncludeInRingSyncAB = config->readBoolEntry( prefix+ "IncludeInRingSyncAB",mIncludeInRingSyncAB ); 118 mIncludeInRingSyncAB = config->readBoolEntry( prefix+ "IncludeInRingSyncAB",mIncludeInRingSyncAB );
109 mShowSummaryAfterSync = config->readBoolEntry( prefix+ "ShowSummaryAfterSync", mShowSummaryAfterSync ); 119 mShowSummaryAfterSync = config->readBoolEntry( prefix+ "ShowSummaryAfterSync", mShowSummaryAfterSync );
110 mAskForPreferences = config->readBoolEntry( prefix+ "AskForPreferences",mAskForPreferences ); 120 mAskForPreferences = config->readBoolEntry( prefix+ "AskForPreferences",mAskForPreferences );
111 mWriteBackExisting = config->readBoolEntry( prefix+ "WriteBackExisting",mWriteBackExisting ); 121 mWriteBackExisting = config->readBoolEntry( prefix+ "WriteBackExisting",mWriteBackExisting );
112 mWriteBackFuture = config->readBoolEntry( prefix+ "WriteBackFuture",mWriteBackFuture ); 122 mWriteBackFuture = config->readBoolEntry( prefix+ "WriteBackFuture",mWriteBackFuture );
113 mSyncPrefs = config->readNumEntry( prefix+ "SyncPrefs", mSyncPrefs ); 123 mSyncPrefs = config->readNumEntry( prefix+ "SyncPrefs", mSyncPrefs );
114 mWriteBackFutureWeeks = config->readNumEntry( prefix+ "WriteBackFutureWeeks", mWriteBackFutureWeeks ); 124 mWriteBackFutureWeeks = config->readNumEntry( prefix+ "WriteBackFutureWeeks", mWriteBackFutureWeeks );
115 mIsLocalFileSync= config->readBoolEntry( prefix+ "IsLocalFileSync", mIsLocalFileSync ); 125 mIsLocalFileSync= config->readBoolEntry( prefix+ "IsLocalFileSync", mIsLocalFileSync );
126 mIsPhoneSync= config->readBoolEntry( prefix+ "IsPhoneSync", mIsPhoneSync );
116} 127}
117void KSyncProfile::writeConfig( KConfig * config ) 128void KSyncProfile::writeConfig( KConfig * config )
118{ 129{
119 config->setGroup("SyncProfiles"); 130 config->setGroup("SyncProfiles");
120 QString prefix = "Profile_"+mName+"_"; 131 QString prefix = "Profile_"+mName+"_";
121 // config->writeEntry( prefix+ "Name", mName ); 132 // config->writeEntry( prefix+ "Name", mName );
122 config->writeEntry( prefix+ "PreSyncCommand",mPreSyncCommand ); 133 config->writeEntry( prefix+ "PreSyncCommand",mPreSyncCommand );
123 config->writeEntry( prefix+ "PostSyncCommand", mPostSyncCommand ); 134 config->writeEntry( prefix+ "PostSyncCommand", mPostSyncCommand );
124 config->writeEntry( prefix+ "LocalTempFile", mLocalTempFile ); 135 config->writeEntry( prefix+ "LocalTempFile", mLocalTempFile );
125 config->writeEntry( prefix+ "RemoteFileName", mRemoteFileName ); 136 config->writeEntry( prefix+ "RemoteFileName", mRemoteFileName );
126 137
127 config->writeEntry( prefix+ "PreSyncCommandAB",mPreSyncCommandAB ); 138 config->writeEntry( prefix+ "PreSyncCommandAB",mPreSyncCommandAB );
128 config->writeEntry( prefix+ "PostSyncCommandAB", mPostSyncCommandAB ); 139 config->writeEntry( prefix+ "PostSyncCommandAB", mPostSyncCommandAB );
129 config->writeEntry( prefix+ "LocalTempFileAB", mLocalTempFileAB ); 140 config->writeEntry( prefix+ "LocalTempFileAB", mLocalTempFileAB );
130 config->writeEntry( prefix+ "RemoteFileNameAB", mRemoteFileNameAB ); 141 config->writeEntry( prefix+ "RemoteFileNameAB", mRemoteFileNameAB );
142
143 config->writeEntry( prefix+ "PhoneDevice", mPhoneDevice );
144 config->writeEntry( prefix+ "PhoneConnection", mPhoneConnection );
145 config->writeEntry( prefix+ "PhoneModel", mPhoneModel );
146
131 config->writeEntry( prefix+ "IncludeInRingSync",mIncludeInRingSync ); 147 config->writeEntry( prefix+ "IncludeInRingSync",mIncludeInRingSync );
132 config->writeEntry( prefix+ "IncludeInRingSyncAB",mIncludeInRingSyncAB ); 148 config->writeEntry( prefix+ "IncludeInRingSyncAB",mIncludeInRingSyncAB );
133 config->writeEntry( prefix+ "ShowSummaryAfterSync", mShowSummaryAfterSync ); 149 config->writeEntry( prefix+ "ShowSummaryAfterSync", mShowSummaryAfterSync );
134 config->writeEntry( prefix+ "AskForPreferences",mAskForPreferences ); 150 config->writeEntry( prefix+ "AskForPreferences",mAskForPreferences );
135 config->writeEntry( prefix+ "WriteBackExisting",mWriteBackExisting ); 151 config->writeEntry( prefix+ "WriteBackExisting",mWriteBackExisting );
136 config->writeEntry( prefix+ "WriteBackFuture",mWriteBackFuture ); 152 config->writeEntry( prefix+ "WriteBackFuture",mWriteBackFuture );
137 config->writeEntry( prefix+ "SyncPrefs", mSyncPrefs ); 153 config->writeEntry( prefix+ "SyncPrefs", mSyncPrefs );
138 config->writeEntry( prefix+ "WriteBackFutureWeeks", mWriteBackFutureWeeks); 154 config->writeEntry( prefix+ "WriteBackFutureWeeks", mWriteBackFutureWeeks);
139 config->writeEntry( prefix+ "IsLocalFileSync", mIsLocalFileSync ); 155 config->writeEntry( prefix+ "IsLocalFileSync", mIsLocalFileSync );
156 config->writeEntry( prefix+ "IsPhoneSync", mIsPhoneSync );
140} 157}
141 158
142/* 159/*
143class KPrefsItemInt : public KPrefsItem { 160class KPrefsItemInt : public KPrefsItem {
144 public: 161 public:
145 KPrefsItemInt(const QString &group,const QString &name,int *,int defaultValue=0); 162 KPrefsItemInt(const QString &group,const QString &name,int *,int defaultValue=0);
146 virtual ~KPrefsItemInt() {} 163 virtual ~KPrefsItemInt() {}
147 164
148 void setDefault(); 165 void setDefault();
149 void readConfig(KConfig *); 166 void readConfig(KConfig *);
150 void writeConfig(KConfig *); 167 void writeConfig(KConfig *);
151 168
152 private: 169 private:
153 int *mReference; 170 int *mReference;
154 int mDefault; 171 int mDefault;
155}; 172};
156*/ 173*/
diff --git a/libkdepim/ksyncprofile.h b/libkdepim/ksyncprofile.h
index 80094b1..300f70f 100644
--- a/libkdepim/ksyncprofile.h
+++ b/libkdepim/ksyncprofile.h
@@ -1,124 +1,138 @@
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 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#ifndef _KSYNCPROFILE_H 20#ifndef _KSYNCPROFILE_H
21#define _KSYNCPROFILE_H 21#define _KSYNCPROFILE_H
22 22
23#include <qptrlist.h> 23#include <qptrlist.h>
24#include <qcolor.h> 24#include <qcolor.h>
25#include <qfont.h> 25#include <qfont.h>
26#include <qstringlist.h> 26#include <qstringlist.h>
27#include <qobject.h> 27#include <qobject.h>
28#include <qstring.h> 28#include <qstring.h>
29 29
30#include <libkcal/syncdefines.h> 30#include <libkcal/syncdefines.h>
31 31
32 32
33 33
34class KConfig; 34class KConfig;
35 35
36/** 36/**
37 @short Class for storing a preferences setting 37 @short Class for storing a preferences setting
38 @author Cornelius Schumacher 38 @author Cornelius Schumacher
39 @see KPref 39 @see KPref
40 40
41 This class represents one preferences setting as used by @ref KPrefs. 41 This class represents one preferences setting as used by @ref KPrefs.
42 Subclasses of KPrefsItem implement storage functions for a certain type of 42 Subclasses of KPrefsItem implement storage functions for a certain type of
43 setting. Normally you don't have to use this class directly. Use the special 43 setting. Normally you don't have to use this class directly. Use the special
44 addItem() functions of KPrefs instead. If you subclass this class you will 44 addItem() functions of KPrefs instead. If you subclass this class you will
45 have to register instances with the function KPrefs::addItem(). 45 have to register instances with the function KPrefs::addItem().
46*/ 46*/
47class KSyncProfile : public QObject { 47class KSyncProfile : public QObject {
48 public: 48 public:
49 KSyncProfile( const char * name = 0); 49 KSyncProfile( const char * name = 0);
50 ~KSyncProfile() ; 50 ~KSyncProfile() ;
51 51
52 KSyncProfile* clone(); 52 KSyncProfile* clone();
53 void setDefault(); 53 void setDefault();
54 void readConfig(KConfig *); 54 void readConfig(KConfig *);
55 void writeConfig(KConfig *); 55 void writeConfig(KConfig *);
56 void setName( const QString& n ) {mName = n;} 56 void setName( const QString& n ) {mName = n;}
57 QString getName( ) { return mName;} 57 QString getName( ) { return mName;}
58 void setPreSyncCommand( const QString& n ) {mPreSyncCommand = n;} 58 void setPreSyncCommand( const QString& n ) {mPreSyncCommand = n;}
59 QString getPreSyncCommand( ) { return mPreSyncCommand; } 59 QString getPreSyncCommand( ) { return mPreSyncCommand; }
60 void setPostSyncCommand( const QString& n ) {mPostSyncCommand = n;} 60 void setPostSyncCommand( const QString& n ) {mPostSyncCommand = n;}
61 QString getPostSyncCommand( ) { return mPostSyncCommand;} 61 QString getPostSyncCommand( ) { return mPostSyncCommand;}
62 void setLocalTempFile( const QString& n ) { mLocalTempFile= n;} 62 void setLocalTempFile( const QString& n ) { mLocalTempFile= n;}
63 QString getLocalTempFile( ) { return mLocalTempFile;} 63 QString getLocalTempFile( ) { return mLocalTempFile;}
64 void setRemoteFileName( const QString& n ) { mRemoteFileName = n;} 64 void setRemoteFileName( const QString& n ) { mRemoteFileName = n;}
65 QString getRemoteFileName( ) { return mRemoteFileName;} 65 QString getRemoteFileName( ) { return mRemoteFileName;}
66 66
67 void setPreSyncCommandAB( const QString& n ) {mPreSyncCommandAB = n;} 67 void setPreSyncCommandAB( const QString& n ) {mPreSyncCommandAB = n;}
68 QString getPreSyncCommandAB( ) { return mPreSyncCommandAB; } 68 QString getPreSyncCommandAB( ) { return mPreSyncCommandAB; }
69 void setPostSyncCommandAB( const QString& n ) {mPostSyncCommandAB = n;} 69 void setPostSyncCommandAB( const QString& n ) {mPostSyncCommandAB = n;}
70 QString getPostSyncCommandAB( ) { return mPostSyncCommandAB;} 70 QString getPostSyncCommandAB( ) { return mPostSyncCommandAB;}
71 void setLocalTempFileAB( const QString& n ) { mLocalTempFileAB= n;} 71 void setLocalTempFileAB( const QString& n ) { mLocalTempFileAB= n;}
72 QString getLocalTempFileAB( ) { return mLocalTempFileAB;} 72 QString getLocalTempFileAB( ) { return mLocalTempFileAB;}
73 void setRemoteFileNameAB( const QString& n ) { mRemoteFileNameAB = n;} 73 void setRemoteFileNameAB( const QString& n ) { mRemoteFileNameAB = n;}
74 QString getRemoteFileNameAB( ) { return mRemoteFileNameAB;} 74 QString getRemoteFileNameAB( ) { return mRemoteFileNameAB;}
75 75
76 void setPhoneDevice( const QString& n ) { mPhoneDevice = n;}
77 QString getPhoneDevice( ) { return mPhoneDevice;}
78 void setPhoneConnection( const QString& n ) { mPhoneConnection = n;}
79 QString getPhoneConnection( ) { return mPhoneConnection;}
80 void setPhoneModel( const QString& n ) { mPhoneModel = n;}
81 QString getPhoneModel( ) { return mPhoneModel;}
76 /* 82 /*
77 void set( const QString& n ) { = n;} 83 void set( const QString& n ) { = n;}
78 QString get( ) { return ;} 84 QString get( ) { return ;}
79 */ 85 */
80 86
81 void setShowSummaryAfterSync( bool b ) { mShowSummaryAfterSync = b;} 87 void setShowSummaryAfterSync( bool b ) { mShowSummaryAfterSync = b;}
82 bool getShowSummaryAfterSync( ) { return mShowSummaryAfterSync ;} 88 bool getShowSummaryAfterSync( ) { return mShowSummaryAfterSync ;}
83 void setAskForPreferences( bool b ) { mAskForPreferences= b;} 89 void setAskForPreferences( bool b ) { mAskForPreferences= b;}
84 bool getAskForPreferences( ) { return mAskForPreferences;} 90 bool getAskForPreferences( ) { return mAskForPreferences;}
85 void setWriteBackExisting( bool b ) { mWriteBackExisting = b;} 91 void setWriteBackExisting( bool b ) { mWriteBackExisting = b;}
86 bool getWriteBackExisting( ) { return mWriteBackExisting;} 92 bool getWriteBackExisting( ) { return mWriteBackExisting;}
87 void setWriteBackFuture( bool b ) { mWriteBackFuture = b;} 93 void setWriteBackFuture( bool b ) { mWriteBackFuture = b;}
88 bool getWriteBackFuture( ) { return mWriteBackFuture;} 94 bool getWriteBackFuture( ) { return mWriteBackFuture;}
89 void setWriteBackFile( bool b ) { mWriteBackFile= b;} 95 void setWriteBackFile( bool b ) { mWriteBackFile= b;}
90 bool getWriteBackFile( ) { return mWriteBackFile;} 96 bool getWriteBackFile( ) { return mWriteBackFile;}
91 void setIncludeInRingSync( bool b ) {mIncludeInRingSync = b;} 97 void setIncludeInRingSync( bool b ) {mIncludeInRingSync = b;}
92 bool getIncludeInRingSync( ) { return mIncludeInRingSync;} 98 bool getIncludeInRingSync( ) { return mIncludeInRingSync;}
93 void setIncludeInRingSyncAB( bool b ) {mIncludeInRingSyncAB = b;} 99 void setIncludeInRingSyncAB( bool b ) {mIncludeInRingSyncAB = b;}
94 bool getIncludeInRingSyncAB( ) { return mIncludeInRingSyncAB;} 100 bool getIncludeInRingSyncAB( ) { return mIncludeInRingSyncAB;}
95 void setSyncPrefs( int n ) { mSyncPrefs= n;} 101 void setSyncPrefs( int n ) { mSyncPrefs= n;}
96 int getSyncPrefs( ) { return mSyncPrefs;} 102 int getSyncPrefs( ) { return mSyncPrefs;}
97 void setWriteBackFutureWeeks( int n ) { mWriteBackFutureWeeks= n;} 103 void setWriteBackFutureWeeks( int n ) { mWriteBackFutureWeeks= n;}
98 int getWriteBackFutureWeeks( ) { return mWriteBackFutureWeeks;} 104 int getWriteBackFutureWeeks( ) { return mWriteBackFutureWeeks;}
99 void setIsLocalFileSync( bool b ) { mIsLocalFileSync= b;} 105 void setIsLocalFileSync( bool b ) { mIsLocalFileSync= b;}
100 bool getIsLocalFileSync( ) { return mIsLocalFileSync;} 106 bool getIsLocalFileSync( ) { return mIsLocalFileSync;}
107 void setIsPhoneSync( bool b ) { mIsPhoneSync= b;}
108 bool getIsPhoneSync( ) { return mIsPhoneSync;}
101 109
102 private: 110 private:
103 QString mName; 111 QString mName;
104 QString mPreSyncCommand; 112 QString mPreSyncCommand;
105 QString mPostSyncCommand; 113 QString mPostSyncCommand;
106 QString mLocalTempFile; 114 QString mLocalTempFile;
107 QString mRemoteFileName; 115 QString mRemoteFileName;
108 QString mPreSyncCommandAB; 116 QString mPreSyncCommandAB;
109 QString mPostSyncCommandAB; 117 QString mPostSyncCommandAB;
110 QString mLocalTempFileAB; 118 QString mLocalTempFileAB;
111 QString mRemoteFileNameAB; 119 QString mRemoteFileNameAB;
120
121 QString mPhoneDevice;
122 QString mPhoneConnection;
123 QString mPhoneModel;
124
112 bool mIncludeInRingSync; 125 bool mIncludeInRingSync;
113 bool mIncludeInRingSyncAB; 126 bool mIncludeInRingSyncAB;
114 int mSyncPrefs; 127 int mSyncPrefs;
115 bool mWriteBackFile; 128 bool mWriteBackFile;
116 bool mWriteBackExisting; 129 bool mWriteBackExisting;
117 bool mWriteBackFuture; 130 bool mWriteBackFuture;
118 int mWriteBackFutureWeeks; 131 int mWriteBackFutureWeeks;
119 bool mAskForPreferences; 132 bool mAskForPreferences;
120 bool mShowSummaryAfterSync; 133 bool mShowSummaryAfterSync;
121 bool mIsLocalFileSync; 134 bool mIsLocalFileSync;
135 bool mIsPhoneSync;
122}; 136};
123 137
124#endif 138#endif