summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addressbook.cpp2
-rw-r--r--kabc/plugins/dir/resourcedir.cpp2
-rw-r--r--kabc/plugins/file/resourcefile.cpp28
-rw-r--r--kabc/plugins/ldap/resourceldap.cpp2
-rw-r--r--kabc/plugins/opie/resourceopie.cpp2
-rw-r--r--kabc/plugins/qtopia/resourceqtopia.cpp2
-rw-r--r--kabc/plugins/sharpdtm/resourcesharpdtm.cpp2
-rw-r--r--kabc/resource.cpp5
-rw-r--r--kabc/resource.h2
-rw-r--r--kabc/stdaddressbook.cpp36
-rw-r--r--kabc/syncprefwidget.cpp681
-rw-r--r--kabc/syncprefwidget.h138
-rw-r--r--microkde/kresources/configdialog.cpp78
-rw-r--r--microkde/kresources/configdialog.h4
-rw-r--r--microkde/kresources/configpage.cpp15
-rw-r--r--microkde/kresources/factory.cpp4
-rw-r--r--microkde/kresources/factory.h5
-rw-r--r--microkde/kresources/resource.h8
-rw-r--r--microkde/kresources/syncwidget.h10
19 files changed, 512 insertions, 514 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp
index 20310a0..c61b387 100644
--- a/kabc/addressbook.cpp
+++ b/kabc/addressbook.cpp
@@ -237,3 +237,3 @@ void AddressBook::init(const QString &config, const QString &family )
237 if (config != 0) { 237 if (config != 0) {
238 d->mConfig = new KConfig( config ); 238 d->mConfig = new KConfig( locateLocal("config", config) );
239// qDebug("AddressBook::init 1 config=%s",config.latin1() ); 239// qDebug("AddressBook::init 1 config=%s",config.latin1() );
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp
index 29f1e3a..eccd482 100644
--- a/kabc/plugins/dir/resourcedir.cpp
+++ b/kabc/plugins/dir/resourcedir.cpp
@@ -73,3 +73,3 @@ __declspec(dllexport)
73 { 73 {
74 return new KRES::PluginFactory<ResourceDir,ResourceDirConfig, SyncPrefWidget>(); 74 return new KRES::PluginFactory<ResourceDir,ResourceDirConfig, SyncPrefWidgetContainer>();
75 } 75 }
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp
index d98efc8..da2e4d7 100644
--- a/kabc/plugins/file/resourcefile.cpp
+++ b/kabc/plugins/file/resourcefile.cpp
@@ -68,3 +68,3 @@ __declspec(dllexport)
68 { 68 {
69 return new KRES::PluginFactory<ResourceFile,ResourceFileConfig, SyncPrefWidget>(); 69 return new KRES::PluginFactory<ResourceFile,ResourceFileConfig, SyncPrefWidgetContainer>();
70 } 70 }
@@ -77,3 +77,8 @@ ResourceFile::ResourceFile( const KConfig *config, bool syncable )
77{ 77{
78 QString fileName, formatName; 78 QString fileName, formatName, default_fileName;
79
80 if (syncable == true)
81 default_fileName = "/home/polo/kdepim/apps/kabc/localfile.vcf";
82 else
83 default_fileName = StdAddressBook::fileName();
79 84
@@ -81,9 +86,7 @@ ResourceFile::ResourceFile( const KConfig *config, bool syncable )
81 if ( cfg ) { 86 if ( cfg ) {
82 fileName = cfg->readEntry( "FileName", StdAddressBook::fileName() ); 87 fileName = cfg->readEntry( "FileName", default_fileName );
83 formatName = cfg->readEntry( "FileFormat", "vcard" ); 88 formatName = cfg->readEntry( "FileFormat", "vcard" );
84// qDebug("ResourceFile::ResourceFile : 1 %s, %s", fileName.latin1(), formatName.latin1() );
85 } else { 89 } else {
86 fileName = StdAddressBook::fileName(); 90 fileName = default_fileName;
87 formatName = "vcard"; 91 formatName = "vcard";
88// qDebug("ResourceFile::ResourceFile : 2 %s, %s", fileName.latin1(), formatName.latin1() );
89 } 92 }
@@ -113,15 +116,2 @@ void ResourceFile::init( const QString &fileName, const QString &formatName )
113 116
114/*US
115//US qDebug("ResourceFile::init initialized with format %s ", formatName.latin1());
116 if (mFormatName == "vcard") {
117 mFormat = new VCardFormatPlugin2();
118// qDebug("ResourceFile::init format VCardFormatPlugin2");
119 }
120 else if (mFormatName == "binary") {
121 mFormat = new BinaryFormat();
122// qDebug("ResourceFile::init format BinaryFormat");
123 }
124 else
125 qDebug("ResourceFile::init format unknown !!! %s ", formatName.latin1());
126*/
127 117
diff --git a/kabc/plugins/ldap/resourceldap.cpp b/kabc/plugins/ldap/resourceldap.cpp
index 198e80a..17f115d 100644
--- a/kabc/plugins/ldap/resourceldap.cpp
+++ b/kabc/plugins/ldap/resourceldap.cpp
@@ -47,3 +47,3 @@ extern "C"
47 { 47 {
48 return new KRES::PluginFactory<ResourceLDAP,ResourceLDAPConfig, SyncPrefWidget>(); 48 return new KRES::PluginFactory<ResourceLDAP,ResourceLDAPConfig, SyncPrefWidgetContainer>();
49 } 49 }
diff --git a/kabc/plugins/opie/resourceopie.cpp b/kabc/plugins/opie/resourceopie.cpp
index 9dfd473..4b811e9 100644
--- a/kabc/plugins/opie/resourceopie.cpp
+++ b/kabc/plugins/opie/resourceopie.cpp
@@ -63,3 +63,3 @@ extern "C"
63 { 63 {
64 return new KRES::PluginFactory<ResourceOpie,ResourceOpieConfig, SyncPrefWidget>(); 64 return new KRES::PluginFactory<ResourceOpie,ResourceOpieConfig, SyncPrefWidgetContainer>();
65 } 65 }
diff --git a/kabc/plugins/qtopia/resourceqtopia.cpp b/kabc/plugins/qtopia/resourceqtopia.cpp
index 5565580..93a4d33 100644
--- a/kabc/plugins/qtopia/resourceqtopia.cpp
+++ b/kabc/plugins/qtopia/resourceqtopia.cpp
@@ -60,3 +60,3 @@ extern "C"
60 { 60 {
61 return new KRES::PluginFactory<ResourceQtopia,ResourceQtopiaConfig, SyncPrefWidget>(); 61 return new KRES::PluginFactory<ResourceQtopia,ResourceQtopiaConfig, SyncPrefWidgetContainer>();
62 } 62 }
diff --git a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
index 70c3718..b63df0c 100644
--- a/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
+++ b/kabc/plugins/sharpdtm/resourcesharpdtm.cpp
@@ -62,3 +62,3 @@ extern "C"
62 { 62 {
63 return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig,SyncPrefWidget>(); 63 return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig,SyncPrefWidgetContainer>();
64 } 64 }
diff --git a/kabc/resource.cpp b/kabc/resource.cpp
index 2f03927..d39fd6a 100644
--- a/kabc/resource.cpp
+++ b/kabc/resource.cpp
@@ -115,2 +115,7 @@ bool Resource::isSyncable() const
115 115
116KSyncProfile* Resource::getSyncProfile()
117{
118 return mSyncProfile;
119}
120
116 121
diff --git a/kabc/resource.h b/kabc/resource.h
index 7d42f81..2024d2d 100644
--- a/kabc/resource.h
+++ b/kabc/resource.h
@@ -144,2 +144,4 @@ public:
144 144
145 virtual KSyncProfile* getSyncProfile();
146
145 /** 147 /**
diff --git a/kabc/stdaddressbook.cpp b/kabc/stdaddressbook.cpp
index 1e00cc6..760820e 100644
--- a/kabc/stdaddressbook.cpp
+++ b/kabc/stdaddressbook.cpp
@@ -61,5 +61,5 @@ StdAddressBook *StdAddressBook::self()
61{ 61{
62 62
63 if ( !mSelf ) 63 if ( !mSelf )
64 { 64 {
65 QString appdir = StdAddressBook::setTempAppDir(); 65 QString appdir = StdAddressBook::setTempAppDir();
@@ -72,4 +72,4 @@ StdAddressBook *StdAddressBook::self()
72 addressBookDeleter.setObject( mSelf, new StdAddressBook ); 72 addressBookDeleter.setObject( mSelf, new StdAddressBook );
73#endif //KAB_EMBEDDED 73#endif //KAB_EMBEDDED
74 KStandardDirs::setAppDir( appdir ); 74 KStandardDirs::setAppDir( appdir );
75 } 75 }
@@ -91,4 +91,4 @@ QString StdAddressBook::setTempAppDir()
91 QString appdir = QDir::homeDirPath() + "/kdepim/apps/kaddressbook"; 91 QString appdir = QDir::homeDirPath() + "/kdepim/apps/kaddressbook";
92 92
93 KStandardDirs::setAppDir( appdir ); 93 KStandardDirs::setAppDir( appdir );
94#endif 94#endif
@@ -99,5 +99,5 @@ StdAddressBook *StdAddressBook::self( bool onlyFastResources )
99{ 99{
100 100
101 if ( !mSelf ) 101 if ( !mSelf )
102 { 102 {
103 QString appdir =StdAddressBook::setTempAppDir(); 103 QString appdir =StdAddressBook::setTempAppDir();
@@ -107,4 +107,4 @@ StdAddressBook *StdAddressBook::self( bool onlyFastResources )
107 addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) ); 107 addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) );
108#endif //KAB_EMBEDDED 108#endif //KAB_EMBEDDED
109 KStandardDirs::setAppDir( appdir ); 109 KStandardDirs::setAppDir( appdir );
110 } 110 }
@@ -114,6 +114,5 @@ StdAddressBook *StdAddressBook::self( bool onlyFastResources )
114StdAddressBook::StdAddressBook() 114StdAddressBook::StdAddressBook()
115//US : AddressBook( "kabcrc" ) 115 : AddressBook( "kabcrc" )
116 : AddressBook( locateLocal( "config", "kabcrc") )
117{ 116{
118 117
119 init( false ); 118 init( false );
@@ -122,6 +121,5 @@ StdAddressBook::StdAddressBook()
122StdAddressBook::StdAddressBook( bool onlyFastResources ) 121StdAddressBook::StdAddressBook( bool onlyFastResources )
123//US : AddressBook( "kabcrc" ) 122 : AddressBook( "kabcrc" )
124 : AddressBook( locateLocal( "config", "kabcrc") )
125{ 123{
126 124
127 init( onlyFastResources ); 125 init( onlyFastResources );
@@ -145,3 +143,3 @@ void StdAddressBook::init( bool )
145 } 143 }
146 144
147 Resource *res = standardResource(); 145 Resource *res = standardResource();
@@ -188,3 +186,3 @@ bool StdAddressBook::save()
188 } 186 }
189 187
190 return ok; 188 return ok;
@@ -197,3 +195,3 @@ void StdAddressBook::close()
197 addressBookDeleter.setObject(0); 195 addressBookDeleter.setObject(0);
198 196
199} 197}
diff --git a/kabc/syncprefwidget.cpp b/kabc/syncprefwidget.cpp
index 51a8040..a2bde72 100644
--- a/kabc/syncprefwidget.cpp
+++ b/kabc/syncprefwidget.cpp
@@ -27,46 +27,2 @@ $Id$
27 27
28/*US
29#include <qlayout.h>
30#include <qlabel.h>
31#include <qgroupbox.h>
32#include <qbuttongroup.h>
33#include <qlineedit.h>
34#include <qfont.h>
35#include <qslider.h>
36#include <qfile.h>
37#include <qtextstream.h>
38#include <qcombobox.h>
39#include <qvbox.h>
40#include <qhbox.h>
41#include <qspinbox.h>
42#include <qdatetime.h>
43#include <qcheckbox.h>
44#include <qradiobutton.h>
45#include <qpushbutton.h>
46#include <qstrlist.h>
47#include <qapplication.h>
48
49#include <kcolorbutton.h>
50#include <kdebug.h>
51#include <klocale.h>
52#include <kglobal.h>
53#include <kfontdialog.h>
54#include <kmessagebox.h>
55#include <kcolordialog.h>
56#include <kiconloader.h>
57#include <kemailsettings.h>
58#include <kstandarddirs.h>
59#include <kfiledialog.h>
60#include <kmessagebox.h>
61
62#include <kurlrequester.h>
63#include <klineedit.h>
64#include <libkdepim/ksyncprofile.h>
65
66
67#include "koprefs.h"
68
69#include "kosyncprefsdialog.h"
70#include "koglobals.h"
71*/
72 28
@@ -81,2 +37,4 @@ $Id$
81#include <qpushbutton.h> 37#include <qpushbutton.h>
38#include <qscrollview.h>
39#include <qcombobox.h>
82 40
@@ -86,3 +44,4 @@ $Id$
86 44
87 45#include "ksyncprofile.h"
46#include "resource.h"
88#include "syncprefwidget.h" 47#include "syncprefwidget.h"
@@ -90,10 +49,6 @@ $Id$
90 49
91SyncPrefWidget::SyncPrefWidget(QWidget *parent) : 50SyncPrefWidget_Settings::SyncPrefWidget_Settings(QWidget *parent, const char *name) :
92 KRES::SyncWidget(parent) 51 KRES::SyncWidget(parent, name)
93{ 52{
94 53 init();
95//US setCaption( i18n("Synchronization Preferences"));
96
97//US mSyncProfiles.setAutoDelete( true );
98 init();
99} 54}
@@ -101,3 +56,3 @@ SyncPrefWidget::SyncPrefWidget(QWidget *parent) :
101 56
102SyncPrefWidget::~SyncPrefWidget() 57SyncPrefWidget_Settings::~SyncPrefWidget_Settings()
103{ 58{
@@ -105,35 +60,4 @@ SyncPrefWidget::~SyncPrefWidget()
105 60
106//US #include <qlayout.h> 61void SyncPrefWidget_Settings::init()
107//US #include <qscrollview.h>
108void SyncPrefWidget::init()
109{ 62{
110 QLabel * lab;
111 QPushButton* button;
112
113/*US
114 //QFrame *page = addPage(i18n("Sync Prefs"),0,0);
115 QVBox * mainbox = new QVBox( this );
116 QScrollView* sv = new QScrollView( mainbox );
117 QHBoxLayout * lay = new QHBoxLayout( this );
118 lay->addWidget( mainbox );
119 QHBox * b_box = new QHBox( mainbox );
120*/
121/*US
122 QPushButton* button = new QPushButton( i18n("Ok"), b_box );
123 connect ( button, SIGNAL( clicked()), this, SLOT (slotOK() ) );
124 button = new QPushButton( i18n("Cancel"), b_box );
125 connect ( button, SIGNAL( clicked()), this, SLOT (reject() ) );
126*/
127 //QBoxLayout * sl = new QVBoxLayout(this );
128 //sl->addWidget ( sv );
129/*US
130 sv->setResizePolicy ( QScrollView::AutoOneFit );
131 QFrame *topFrame = new QFrame ( sv );
132 sv->addChild( topFrame );
133 mSetupSyncAlgTab = topFrame;
134 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
135 topLayout->setSpacing(spacingHint());
136 topLayout->setMargin(marginHint());
137*/
138//US new code for the layout
139 QGridLayout *topLayout = new QGridLayout( this, 6,2 ); 63 QGridLayout *topLayout = new QGridLayout( this, 6,2 );
@@ -142,354 +66,345 @@ void SyncPrefWidget::init()
142 66
143 //lab = new QLabel(i18n("Sync settings not yet implemented. DO NOT USE!"), topFrame); 67 int iii = 0;
144 int iii = 0; 68 mIncludeInRing = new QCheckBox( i18n("Include in multiple sync"), this );
145 //topLayout->addMultiCellWidget(lab , iii,iii,0,1); 69 topLayout->addMultiCellWidget(mIncludeInRing, iii,iii,0,1);
146 //++iii; 70 ++iii;
147
148/*US
149 mMyMachineName = new QLineEdit(topFrame);
150 lab = new QLabel(mMyMachineName, i18n("Local device name:"), topFrame);
151 topLayout->addWidget(lab ,iii,0);
152 topLayout->addWidget(mMyMachineName,iii,1);
153 ++iii;
154
155 QHBox* buttonbox = new QHBox( topFrame);
156 topLayout->addMultiCellWidget(buttonbox, iii,iii,0,1);
157 ++iii;
158 button = new QPushButton( i18n("New profile"), buttonbox );
159 connect ( button, SIGNAL( clicked()), this, SLOT (newProfile() ) );
160
161 button = new QPushButton( i18n("Clone profile"), buttonbox );
162 connect ( button, SIGNAL( clicked()), this, SLOT ( cloneProfile() ) );
163
164 button = new QPushButton( i18n("Delete profile"), buttonbox );
165 connect ( button, SIGNAL( clicked()), this, SLOT (deleteProfile() ) );
166
167 mProfileBox = new QComboBox(topFrame);
168 mProfileBox->setEditable ( true );
169 connect ( mProfileBox, SIGNAL(activated ( int ) ), this, SLOT (profileChanged( int ) ) );
170 connect ( mProfileBox, SIGNAL( textChanged ( const QString & ) ), this, SLOT (textChanged( const QString & ) ) );
171
172 lab = new QLabel(mProfileBox, i18n("Profile:"), topFrame);
173 topLayout->addWidget(lab ,iii,0);
174 topLayout->addWidget(mProfileBox, iii,1);
175 ++iii;
176*/
177 mIncludeInRing = new QCheckBox( i18n("Include in multiple sync"), this );
178 topLayout->addMultiCellWidget(mIncludeInRing, iii,iii,0,1);
179 ++iii;
180
181 mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), this );
182 topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1);
183 ++iii;
184 QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Sync preferences"), this);
185 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
186 ++iii;
187 loc = new QRadioButton ( i18n("Take local entry on conflict"), gr );
188 rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr );
189 newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr );
190 ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr );
191 f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr );
192 f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr );
193 // both = new QRadioButton ( i18n("Take both on conflict"), gr );
194 71
195 mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), this ); 72 mAskForPreferences = new QCheckBox( i18n("Ask for preferences before sync"), this );
196 topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1); 73 topLayout->addMultiCellWidget(mAskForPreferences, iii,iii,0,1);
197 ++iii; 74 ++iii;
198
199 mWriteBackExisting= new QCheckBox( i18n("Write back existing entries only"), this );
200 topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1);
201 ++iii;
202
203 mWriteBackFile = new QCheckBox( i18n("Write back file"), this );
204 topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1);
205 ++iii;
206
207 mIsNotLocal = new QCheckBox( i18n("Remote file (w down/upload command)"), this );
208 topLayout->addMultiCellWidget(mIsNotLocal, iii,iii,0,1);
209 connect (mIsNotLocal, SIGNAL( checked(bool)), this, SLOT (kindChanged(bool) ) );
210/*US
211 proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), this);
212 gr = proGr;
213 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
214 ++iii;
215 mIsLocal = new QRadioButton ( i18n("Local file"), gr );
216 mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr );
217 connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) );
218*/
219 75
220/*US 76 mShowSummaryAfterSync = new QCheckBox( i18n("Show summary after sync"), this );
221 localFileWidget = new QVBox( topFrame); 77 topLayout->addMultiCellWidget(mShowSummaryAfterSync, iii,iii,0,1);
222 topLayout->addMultiCellWidget(localFileWidget, iii,iii,0,1); 78 ++iii;
223 ++iii;
224 QHBox* temphb = new QHBox( localFileWidget );
225 lab = new QLabel( i18n("Local file:"), temphb);
226 mRemoteFile = new QLineEdit(localFileWidget);
227 79
228 button = new QPushButton( i18n("Choose..."), temphb ); 80 mWriteBackExisting= new QCheckBox( i18n("Write back existing entries only"), this );
229 connect ( button, SIGNAL( clicked()), this, SLOT ( chooseFile() ) ); 81 topLayout->addMultiCellWidget(mWriteBackExisting, iii,iii,0,1);
230*/ 82 ++iii;
231 QHBox* temphb;
232 83
233 remoteFileWidget = new QVBox( this); 84 mWriteBackFile = new QCheckBox( i18n("Write back synced data"), this );
234 topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1); 85 topLayout->addMultiCellWidget(mWriteBackFile, iii,iii,0,1);
235 ++iii; 86 ++iii;
236 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
237 mRemotePrecommand = new QLineEdit(remoteFileWidget);
238 87
239 lab = new QLabel( i18n("Local temp file:"), remoteFileWidget); 88}
240 mLocalTempFile = new QLineEdit(remoteFileWidget);
241 89
90void SyncPrefWidget_Settings::loadSettings( KRES::Resource *res )
91{
92 KABC::Resource* resource = (KABC::Resource*)( res );
93 KSyncProfile* prof = resource->getSyncProfile();
94
95 if (prof == 0)
96 {
97 qDebug("SyncPrefWidget_Settings::loadSettings: something is wrong, because resource does have no syncprofile" );
98 return;
99 }
100
101 mIncludeInRing->setChecked( prof->getIncludeInRingSync() );
102 mAskForPreferences->setChecked( prof->getAskForPreferences());
103 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync());
104 mWriteBackExisting->setChecked( prof->getWriteBackExisting() );
105 mWriteBackFile->setChecked( prof->getWriteBackFile());
106}
242 107
243 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget); 108void SyncPrefWidget_Settings::saveSettings( KRES::Resource *res )
244 mRemotePostcommand = new QLineEdit(remoteFileWidget); 109{
110 KABC::Resource* resource = (KABC::Resource*)( res );
111 KSyncProfile* prof = resource->getSyncProfile();
112
113 if (prof == 0)
114 {
115 qDebug("SyncPrefWidget_Settings::saveSettings: something is wrong, because resource does have no syncprofile" );
116 return;
117 }
118
119 prof->setIncludeInRingSync( mIncludeInRing->isChecked() );
120 prof->setAskForPreferences( mAskForPreferences->isChecked());
121 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() );
122 prof->setWriteBackExisting(mWriteBackExisting->isChecked() );
123 prof->setWriteBackFile( mWriteBackFile->isChecked());
124}
245 125
246 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
247 temphb = new QHBox( remoteFileWidget );
248 button = new QPushButton( i18n("ssh/scp"), temphb );
249 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
250 button = new QPushButton( i18n("ftp"), temphb );
251 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
252 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
253 126
127/***********************************************************************
128 *
129 *
130 **********************************************************************/
254 131
255} 132SyncPrefWidget_Conflict::SyncPrefWidget_Conflict(QWidget *parent, const char *name) :
256/*US 133 KRES::SyncWidget(parent, name)
257void SyncPrefWidget::slotOK()
258{ 134{
259 if ( mMyMachineName->text() == "undefined" ) { 135 init();
260 KMessageBox::error(this,i18n("Local device name undefined!\nPlease define device name!"),i18n("KO/Pi config error"));
261 return;
262 }
263 int i;
264 for (i = 0; i < mSyncProfileNames.count(); ++ i) {
265 if ( mSyncProfileNames.contains( mSyncProfileNames[i]) > 1 ) {
266 KMessageBox::error(this,i18n("Multiple profiles with same name!\nPlease use unique profile names!"),i18n("KO/Pi config error"));
267 return;
268 }
269 }
270 usrWriteConfig();
271 QDialog::accept();
272} 136}
273void SyncPrefWidget::accept() 137
138
139SyncPrefWidget_Conflict::~SyncPrefWidget_Conflict()
274{ 140{
275 slotOK();
276} 141}
277void KOSyncPrefsDialog::chooseFile() 142
143void SyncPrefWidget_Conflict::init()
278{ 144{
279 QString fn =KOPrefs::instance()->mLastSyncedLocalFile; 145 QGridLayout *topLayout = new QGridLayout( this, 6,2 );
146 topLayout->setMargin( KDialog::marginHint() );
147 topLayout->setSpacing( KDialog::spacingHint() );
280 148
281 fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); 149 int iii = 0;
282 if ( fn == "" ) 150
283 return; 151 QButtonGroup* gr = new QButtonGroup ( 1, Qt::Horizontal, i18n("In case of conflicts"), this);
284 mRemoteFile->setText( fn ); 152 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
153 ++iii;
154 loc = new QRadioButton ( i18n("Take local entry on conflict"), gr );
155 rem = new QRadioButton ( i18n("Take remote entry on conflict"), gr );
156 newest = new QRadioButton ( i18n("Take newest entry on conflict"), gr );
157 ask = new QRadioButton ( i18n("Ask for every entry on conflict"), gr );
158 f_loc= new QRadioButton ( i18n("Force: Take local entry always"), gr );
159 f_rem = new QRadioButton ( i18n("Force: Take remote entry always"), gr );
160 // both = new QRadioButton ( i18n("Take both on conflict"), gr );
285} 161}
286 162
287void KOSyncPrefsDialog::textChanged( const QString & s ) 163void SyncPrefWidget_Conflict::loadSettings( KRES::Resource *res )
288{ 164{
289 if ( mProfileBox->count() == 0 ) 165 KABC::Resource* resource = (KABC::Resource*)( res );
290 return; 166 KSyncProfile* prof = resource->getSyncProfile();
291 if ( currentSelection < 3 ) { 167
292 //KMessageBox::error(this,i18n("This profil name\ncannot be edited!\n"),i18n("KO/Pi config error")); 168 if (prof == 0)
293 mProfileBox->blockSignals( true ); 169 {
294 mProfileBox->setCurrentItem(mProfileBox-> currentItem ()); 170 qDebug("SyncPrefWidget_Conflict::loadSettings: something is wrong, because resource does have no syncprofile" );
295 mProfileBox->blockSignals( false ); 171 return;
296 return; 172 }
297 } 173
298 //qDebug("cur i %d ",mProfileBox-> currentItem () ); 174 switch ( prof->getSyncPrefs() ) {
299 mProfileBox->changeItem ( s, mProfileBox-> currentItem () ) ; 175 case 0:
300 KSyncProfile* prof = mSyncProfiles.at(mProfileBox-> currentItem ()) ; 176 loc->setChecked( true);
301 prof->setName( s ); 177 break;
302 mSyncProfileNames[mProfileBox-> currentItem ()] = s; 178 case 1:
179 rem->setChecked( true );
180 break;
181 case 2:
182 newest->setChecked( true);
183 break;
184 case 3:
185 ask->setChecked( true);
186 break;
187 case 4:
188 f_loc->setChecked( true);
189 break;
190 case 5:
191 f_rem->setChecked( true);
192 break;
193 case 6:
194 //both->setChecked( true);
195 break;
196 default:
197 break;
198 }
303} 199}
304void KOSyncPrefsDialog::profileChanged( int item ) 200
201void SyncPrefWidget_Conflict::saveSettings( KRES::Resource *res )
305{ 202{
306 //qDebug("KOSyncPrefsDialog::profileChanged %d ", item ); 203 KABC::Resource* resource = (KABC::Resource*)( res );
307 KSyncProfile* prof; 204 KSyncProfile* prof = resource->getSyncProfile();
308 saveProfile(); 205
309 currentSelection = item; 206 if (prof == 0)
310 prof = mSyncProfiles.at(item) ; 207 {
311 mRemotePrecommand->setText(prof->getPreSyncCommand()); 208 qDebug("SyncPrefWidget_Conftlict::saveSettings: something is wrong, because resource does have no syncprofile" );
312 mRemotePostcommand->setText(prof->getPostSyncCommand()); 209 return;
313 mLocalTempFile->setText(prof->getLocalTempFile()); 210 }
314 mRemoteFile->setText(prof->getRemoteFileName()) ; 211
315 mShowSummaryAfterSync->setChecked( prof->getShowSummaryAfterSync()); 212 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ;
316 mAskForPreferences->setChecked( prof->getAskForPreferences()); 213 prof->setSyncPrefs( syncprefs );
317 mWriteBackExisting->setChecked( prof->getWriteBackExisting() ); 214
318 mWriteBackFile->setChecked( prof->getWriteBackFile()); 215}
319 mIncludeInRing->setChecked( prof->getIncludeInRingSync() ); 216
320 217
321 switch ( prof->getSyncPrefs() ) { 218/***********************************************************************
322 case 0: 219 *
323 loc->setChecked( true); 220 *
324 break; 221 **********************************************************************/
325 case 1: 222
326 rem->setChecked( true ); 223SyncPrefWidget_Remote::SyncPrefWidget_Remote(QWidget *parent, const char *name) :
327 break; 224 KRES::SyncWidget(parent, name)
328 case 2: 225{
329 newest->setChecked( true); 226 init();
330 break;
331 case 3:
332 ask->setChecked( true);
333 break;
334 case 4:
335 f_loc->setChecked( true);
336 break;
337 case 5:
338 f_rem->setChecked( true);
339 break;
340 case 6:
341 //both->setChecked( true);
342 break;
343 default:
344 break;
345 }
346 mIsLocal->setChecked(prof->getIsLocalFileSync()) ;
347 mIsNotLocal->setChecked(!prof->getIsLocalFileSync());
348 proGr->setEnabled( item > 2 );
349 if ( item < 3 ) {
350 localFileWidget->setEnabled(false);
351 remoteFileWidget->setEnabled(false);
352
353 } else
354 kindChanged( prof->getIsLocalFileSync() );
355} 227}
356 228
357void KOSyncPrefsDialog::fillSSH() 229
230SyncPrefWidget_Remote::~SyncPrefWidget_Remote()
358{ 231{
359 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" );
360 mLocalTempFile->setText("/tmp/mycalendar.ics" );
361 mRemotePostcommand->setText("scp /tmp/mycalendar.ics zaurus@192.168.0.65:/home/zaurus/kdepim/apps/korganizer/mycalendar.ics" );
362} 232}
363void KOSyncPrefsDialog::fillFTP() 233
234void SyncPrefWidget_Remote::init()
364{ 235{
365 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics" ); 236 QLabel * lab;
366 mLocalTempFile->setText("/tmp/mycalendar.ics" ); 237 QPushButton* button;
367 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/apps/korganizer/mycalendar.ics /tmp/mycalendar.ics" ); 238
239
240 QGridLayout *topLayout = new QGridLayout( this, 6,2 );
241 topLayout->setMargin( KDialog::marginHint() );
242 topLayout->setSpacing( KDialog::spacingHint() );
243
244 int iii = 0;
245
246 QButtonGroup* gr;
247
248 QButtonGroup *proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), this);
249 gr = proGr;
250 topLayout->addMultiCellWidget(gr, iii,iii,0,1);
251 ++iii;
252 mProfileKind = new QComboBox( gr );
253
254 mProfileKind->insertItem( i18n("Local file"), Local );
255 mProfileKind->insertItem( i18n("Remote file (w down/upload cmd)"),Remote );
256 mProfileKind->insertItem( i18n("Mobile device (cell phone)"), Mobile );
257
258 connect( mProfileKind, SIGNAL( activated( int ) ),
259 this, SLOT (kindChanged( int ) ) );
260
261
262 QHBox* temphb;
263
264 remoteFileWidget = new QVBox( this);
265 topLayout->addMultiCellWidget(remoteFileWidget, iii,iii,0,1);
266 ++iii;
267 lab = new QLabel( i18n("Pre sync (download) command:"), remoteFileWidget);
268 mRemotePrecommand = new QLineEdit(remoteFileWidget);
269
270 lab = new QLabel( i18n("Local temp file (=Location):"), remoteFileWidget);
271 mLocalTempFile = new QLineEdit(remoteFileWidget);
272 mLocalTempFile->setEnabled(false);
273
274
275 lab = new QLabel( i18n("Post sync (upload) command:"), remoteFileWidget);
276 mRemotePostcommand = new QLineEdit(remoteFileWidget);
277
278 lab = new QLabel( i18n("Fill in default values for:"), remoteFileWidget);
279 temphb = new QHBox( remoteFileWidget );
280 button = new QPushButton( i18n("ssh/scp"), temphb );
281 connect ( button, SIGNAL( clicked()), this, SLOT (fillSSH() ) );
282 button = new QPushButton( i18n("ftp"), temphb );
283 connect ( button, SIGNAL( clicked()), this, SLOT (fillFTP() ) );
284 lab = new QLabel( i18n("Hint: Use $PWD$ for placeholder of password!"), remoteFileWidget);
368 285
369} 286}
370void KOSyncPrefsDialog::kindChanged( bool b ) 287
288void SyncPrefWidget_Remote::loadSettings( KRES::Resource *res )
371{ 289{
290 KABC::Resource* resource = (KABC::Resource*)( res );
291 KSyncProfile* prof = resource->getSyncProfile();
292
293 if (prof == 0)
294 {
295 qDebug("SyncPrefWidget_Remote::loadSettings: something is wrong, because resource does have no syncprofile" );
296 return;
297 }
372 298
373 localFileWidget->setEnabled(b); 299 int val;
374 remoteFileWidget->setEnabled(!b);
375 300
301 if (prof->getIsPhoneSync())
302 val = Mobile;
303 else if (!prof->getIsLocalFileSync())
304 val = Remote;
305 else // default value
306 val = Local;
307
308 mProfileKind->setCurrentItem( val );
309 kindChanged( val );
310
311
312 mRemotePrecommand->setText(prof->getPreSyncCommand());
313 mLocalTempFile->setText(resource->fileName());
314 mRemotePostcommand->setText(prof->getPostSyncCommand());
376} 315}
377void KOSyncPrefsDialog::deleteProfile() 316
317void SyncPrefWidget_Remote::saveSettings( KRES::Resource *res )
378{ 318{
379 //qDebug("KOSyncPrefsDialog::deleteProfile() "); 319 KABC::Resource* resource = (KABC::Resource*)( res );
380 if ( currentSelection >= 0 ) { 320 KSyncProfile* prof = resource->getSyncProfile();
381 if ( currentSelection < 3 ) { 321
382 KMessageBox::error(this,i18n("This profil cannot be deleted!\n"),i18n("KO/Pi config error")); 322 if (prof == 0)
383 return; 323 {
384 } 324 qDebug("SyncPrefWidget_Remote::saveSettings: something is wrong, because resource does have no syncprofile" );
385 KSyncProfile* temp = mSyncProfiles.at(currentSelection); 325 return;
386 mSyncProfiles.remove( temp ); 326 }
387 mSyncProfileNames.remove( mSyncProfileNames.at( currentSelection )); 327
388 insertProfiles(); 328 int val = mProfileKind->currentItem();
389 } 329
330 if (val == Mobile)
331 {
332 prof->setIsLocalFileSync(true);
333 prof->setIsPhoneSync(true);
334 }
335 else if (val == Remote)
336 {
337 prof->setIsLocalFileSync(false);
338 prof->setIsPhoneSync(false);
339 }
340 else // default value is Local
341 {
342 prof->setIsLocalFileSync(true);
343 prof->setIsPhoneSync(false);
344 }
345
346
347 prof->setPreSyncCommand( mRemotePrecommand->text());
348//US prof->setLocalTempFile( mLocalTempFile->text());
349 prof->setPostSyncCommand( mRemotePostcommand->text() );
390} 350}
391 351
392void KOSyncPrefsDialog::saveProfile() 352
353void SyncPrefWidget_Remote::fillSSH()
393{ 354{
394 KSyncProfile* prof; 355 QString location = mLocalTempFile->text();
395 if ( currentSelection >= 0 ) {
396 prof = mSyncProfiles.at(currentSelection) ;
397 prof->setPreSyncCommand( mRemotePrecommand->text());
398 prof->setPostSyncCommand( mRemotePostcommand->text() );
399 prof->setLocalTempFile( mLocalTempFile->text());
400 prof->setRemoteFileName( mRemoteFile->text() );
401 prof->setShowSummaryAfterSync( mShowSummaryAfterSync->isChecked() );
402 prof->setAskForPreferences( mAskForPreferences->isChecked());
403 prof->setWriteBackExisting(mWriteBackExisting->isChecked() );
404 prof->setWriteBackFile( mWriteBackFile->isChecked());
405 prof->setIncludeInRingSync( mIncludeInRing->isChecked() );
406 int syncprefs = rem->isChecked()*1+newest->isChecked()*2+ ask->isChecked()*3+ f_loc->isChecked()*4+ f_rem->isChecked()*5 ;//+ both->isChecked()*6 ;
407 prof->setSyncPrefs( syncprefs);
408 prof->setIsLocalFileSync( mIsLocal->isChecked() );
409 }
410 356
357 mRemotePrecommand->setText("scp zaurus@192.168.0.65:/home/zaurus/kdepim/"+location + " " + location );
358//US mLocalTempFile->setText("/tmp/mycalendar.ics" );
359 mRemotePostcommand->setText("scp " + location + " zaurus@192.168.0.65:/home/zaurus/kdepim/"+location );
411} 360}
412 361
413void KOSyncPrefsDialog::insertProfiles() 362void SyncPrefWidget_Remote::fillFTP()
414{ 363{
415 int curItem = mProfileBox->currentItem(); 364 QString location = mLocalTempFile->text();
416 mProfileBox->blockSignals( true ); 365
417 mProfileBox->clear(); 366 mRemotePrecommand->setText("cd /tmp;ftp ftp://zaurus:a@192.168.0.65/kdepim/" + location );
418 mProfileBox->insertStringList (mSyncProfileNames ); 367//US mLocalTempFile->setText("/tmp/mycalendar.ics" );
419 int item = mSyncProfileNames.count() -1; 368 mRemotePostcommand->setText("ftp -u ftp://zaurus:a@192.168.0.65/kdepim/"+location+ " " + location);
420 if ( curItem >= 0 && mSyncProfileNames.count() > 0 && curItem < mSyncProfileNames.count() ) 369
421 mProfileBox->setCurrentItem( curItem );
422 else if ( item >= 0 ) {
423 mProfileBox->setCurrentItem( item );
424 }
425 currentSelection = -1;
426 if ( mSyncProfileNames.count() > 0 ) {
427 //qDebug(" profileChanged( mProfileBox->currentItem() ");
428 profileChanged( mProfileBox->currentItem() );
429 currentSelection = mProfileBox->currentItem();
430 }
431 mProfileBox->blockSignals( false );
432} 370}
433 371
434void KOSyncPrefsDialog::addProfile ( KSyncProfile* temp ) 372
373void SyncPrefWidget_Remote::kindChanged( int newKind )
435{ 374{
436 saveProfile(); 375
437 mSyncProfiles.append( temp ); 376 if (newKind == Mobile)
438 mSyncProfileNames << temp->getName(); 377 remoteFileWidget->setEnabled(false);
439 insertProfiles(); 378 else if (newKind == Remote)
440 int last = mProfileBox->count() -1; 379 remoteFileWidget->setEnabled(true);
441 mProfileBox->blockSignals( true ); 380 else // default value is local
442 mProfileBox->setCurrentItem( last ); 381 remoteFileWidget->setEnabled(false);
443 mProfileBox->blockSignals( false ); 382
444 profileChanged(last);
445} 383}
446void KOSyncPrefsDialog::newProfile() 384
385/***********************************************************************
386 *
387 *
388 **********************************************************************/
389
390
391SyncPrefWidgetContainer::SyncPrefWidgetContainer()
392 : SyncWidgetContainer()
447{ 393{
448 addProfile ( new KSyncProfile () );
449} 394}
450 395
451void KOSyncPrefsDialog::cloneProfile() 396KRES::SyncWidget* SyncPrefWidgetContainer::generateSettingsTab(QWidget *parent = 0, const char *name = 0)
452{ 397{
453 if ( currentSelection >= 0 ) 398 return new SyncPrefWidget_Settings(parent, name);
454 addProfile (mSyncProfiles.at(currentSelection)->clone()) ;
455 else
456 newProfile();
457} 399}
458 400
459 401KRES::SyncWidget* SyncPrefWidgetContainer::generateConflictsTab(QWidget *parent = 0, const char *name = 0)
460void KOSyncPrefsDialog::usrReadConfig()
461{ 402{
462 KConfig *config = KOGlobals::config(); 403 return new SyncPrefWidget_Conflict(parent, name);
463 config->setGroup("SyncProfiles");
464 mSyncProfileNames = KOPrefs::instance()->mSyncProfileNames;
465 int i;
466 KSyncProfile* temp ;
467 mSyncProfiles.clear();
468 for ( i = 0; i < mSyncProfileNames.count();++i ) {
469 temp = new KSyncProfile ();
470 temp->setName( mSyncProfileNames[i] );
471 temp->readConfig( config );
472 mSyncProfiles.append( temp );
473 }
474 insertProfiles();
475 mMyMachineName->setText(KOPrefs::instance()->mLocalMachineName );
476} 404}
477 405
478 406KRES::SyncWidget* SyncPrefWidgetContainer::generateRemoteTab(QWidget *parent = 0, const char *name = 0)
479void KOSyncPrefsDialog::usrWriteConfig()
480{ 407{
481 saveProfile(); 408 return new SyncPrefWidget_Remote(parent, name);
482 if ( currentSelection >= 0 )
483 profileChanged(currentSelection);
484 KConfig *config = KOGlobals::config();
485 config->setGroup("SyncProfiles");
486 KSyncProfile* prof = mSyncProfiles.first();
487 while ( prof ) {
488 prof->writeConfig(config);
489 prof = mSyncProfiles.next();
490 }
491 KOPrefs::instance()->mSyncProfileNames = mSyncProfileNames;
492 KOPrefs::instance()->mLocalMachineName = mMyMachineName->text();
493 config->writeEntry("SyncProfileNames",&mSyncProfileNames);
494} 409}
495*/ 410
diff --git a/kabc/syncprefwidget.h b/kabc/syncprefwidget.h
index 3709d78..b20a68e 100644
--- a/kabc/syncprefwidget.h
+++ b/kabc/syncprefwidget.h
@@ -32,17 +32,2 @@ $Id$
32 32
33/*US
34//#include <qframe.h>
35//#include <qdict.h>
36#include <qvbox.h>
37#include <qhbox.h>
38//#include <qcolor.h>
39//#include <qlistview.h>
40
41#include <kdialogbase.h>
42
43#include <libkdepim/kprefsdialog.h>
44*/
45
46//US class KColorButton;
47//US class QSpinBox;;
48class QRadioButton; 33class QRadioButton;
@@ -50,13 +35,7 @@ class QCheckBox;
50class QVBox; 35class QVBox;
51//US class QSlider; 36class QComboBox;
52//US class KURLRequester;
53//US class QComboBox;
54class QLineEdit; 37class QLineEdit;
55//US class QStringList; 38class KRES::Resource;
56//US class KSyncProfile;
57 39
58 40class SyncPrefWidget_Settings : public KRES::SyncWidget
59/** Dialog to change the korganizer configuration.
60 */
61class SyncPrefWidget : public KRES::SyncWidget
62{ 41{
@@ -64,23 +43,11 @@ class SyncPrefWidget : public KRES::SyncWidget
64 public: 43 public:
65 SyncPrefWidget(QWidget *parent=0); 44 SyncPrefWidget_Settings(QWidget *parent=0, const char *name = 0 );
66 ~SyncPrefWidget(); 45 ~SyncPrefWidget_Settings();
67//US void usrReadConfig();
68 46
69 public slots: 47 public slots:
70 protected slots: 48 virtual void loadSettings( KRES::Resource *resource );
71//US void accept(); 49 virtual void saveSettings( KRES::Resource *resource );
72//US void deleteProfile();
73//US void newProfile();
74//US void cloneProfile();
75//US void kindChanged(bool);
76//US void fillSSH();
77//US void fillFTP();
78//US void textChanged( const QString & );
79//US void profileChanged( int );
80//US void chooseFile();
81//US void slotOK();
82 50
83 protected:
84//US void usrWriteConfig();
85 51
52 protected:
86 void init(); 53 void init();
@@ -88,20 +55,60 @@ class SyncPrefWidget : public KRES::SyncWidget
88 private: 55 private:
56 QCheckBox* mIncludeInRing;
57 QCheckBox* mWriteBackFile;
58 QCheckBox* mWriteBackExisting;
59 QCheckBox* mAskForPreferences;
60 QCheckBox* mShowSummaryAfterSync;
61};
89 62
90 63
91//US int currentSelection;
92//US QPtrList<KSyncProfile> mSyncProfiles;
93//US QStringList mSyncProfileNames;
94//US QLineEdit * mMyMachineName;
95//US QComboBox * mProfileBox;
96//US QRadioButton* mIsLocal;
97 QCheckBox* mIsNotLocal;
98 QCheckBox* mIncludeInRing;
99//US void addProfile ( KSyncProfile* );
100//US void insertProfiles();
101//US void saveProfile();
102//US QButtonGroup* proGr;
103 64
65class SyncPrefWidget_Conflict : public KRES::SyncWidget
66{
67 Q_OBJECT
68 public:
69 SyncPrefWidget_Conflict(QWidget *parent=0, const char *name = 0 );
70 ~SyncPrefWidget_Conflict();
71
72 public slots:
73 virtual void loadSettings( KRES::Resource *resource );
74 virtual void saveSettings( KRES::Resource *resource );
75
76 protected:
77 void init();
78
79 private:
104 QRadioButton* loc, *rem, *newest, *ask, *f_loc,* f_rem, *both; 80 QRadioButton* loc, *rem, *newest, *ask, *f_loc,* f_rem, *both;
81};
82
83
84
105 85
86class SyncPrefWidget_Remote : public KRES::SyncWidget
87{
88 Q_OBJECT
89 public:
90 SyncPrefWidget_Remote(QWidget *parent=0, const char *name = 0 );
91 ~SyncPrefWidget_Remote();
92
93 enum Types {
94 Local = 0,
95 Remote = 1,
96 Mobile =2
97 };
106 98
99
100 public slots:
101 virtual void loadSettings( KRES::Resource *resource );
102 virtual void saveSettings( KRES::Resource *resource );
103
104 protected slots:
105 void fillSSH();
106 void fillFTP();
107 void kindChanged( int newKind );
108
109 protected:
110 void init();
111
112 private:
113 QComboBox* mProfileKind;
107 QLineEdit * mRemotePostcommand; 114 QLineEdit * mRemotePostcommand;
@@ -110,12 +117,23 @@ class SyncPrefWidget : public KRES::SyncWidget
110 QLineEdit * mLocalTempFile; 117 QLineEdit * mLocalTempFile;
111//US QWidget* mSetupSyncAlgTab;
112
113//US QVBox* localFileWidget;
114 QVBox* remoteFileWidget; 118 QVBox* remoteFileWidget;
115 QCheckBox* mWriteBackFile;
116 QCheckBox* mWriteBackExisting;
117 QCheckBox* mAskForPreferences;
118 QCheckBox* mShowSummaryAfterSync;
119}; 119};
120 120
121
122
123
124
125class SyncPrefWidgetContainer : public KRES::SyncWidgetContainer
126{
127 Q_OBJECT
128
129public:
130 SyncPrefWidgetContainer();
131
132 virtual KRES::SyncWidget* generateSettingsTab(QWidget *parent, const char *name);
133 virtual KRES::SyncWidget* generateConflictsTab(QWidget *parent, const char *name);
134 virtual KRES::SyncWidget* generateRemoteTab(QWidget *parent, const char *name);
135};
136
137
138
121#endif 139#endif
diff --git a/microkde/kresources/configdialog.cpp b/microkde/kresources/configdialog.cpp
index 90febca..f8240f9 100644
--- a/microkde/kresources/configdialog.cpp
+++ b/microkde/kresources/configdialog.cpp
@@ -31,4 +31,6 @@
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qvbox.h>
32 33
33#include <qcheckbox.h> 34#include <qcheckbox.h>
35#include <qscrollview.h>
34 36
@@ -48,3 +50,3 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
48 : KDialogBase( parent, name, true, resource->isSyncable()?i18n( "Sync Profile Configuration" ):i18n( "Resource Configuration" ), 50 : KDialogBase( parent, name, true, resource->isSyncable()?i18n( "Sync Profile Configuration" ):i18n( "Resource Configuration" ),
49 Ok|Cancel, Ok, true )/*, mConfig( config )*/, mSyncWidget(0), mResource( resource ), mPersistentReadOnly(false) 51 Ok|Cancel, Ok, true )/*, mConfig( config )*/, mSyncWidget_Settings(0), mSyncWidget_Conflicts(0),mSyncWidget_Remote(0), mResource( resource ), mPersistentReadOnly(false)
50{ 52{
@@ -56,4 +58,8 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
56 58
57//US QFrame *main = makeMainWidget(); 59 QFrame *main;
58 QFrame *main = plainPage(); 60
61 if (!mResource->isSyncable())
62 main = plainPage();
63 else
64 main = addPage("Profile");
59 65
@@ -61,2 +67,3 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
61 67
68
62 QGroupBox *generalGroupBox = new QGroupBox( 2, Qt::Horizontal, main ); 69 QGroupBox *generalGroupBox = new QGroupBox( 2, Qt::Horizontal, main );
@@ -100,10 +107,43 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
100 { 107 {
101 QGroupBox *syncGroupBox = new QGroupBox( 2, Qt::Horizontal, main ); 108 SyncWidgetContainer* c = factory->syncWidgetContainer( resource->type() );
102 syncGroupBox->layout()->setSpacing( spacingHint()); 109
103 syncGroupBox->setTitle( i18n( "Syncronize Preferences" ) ); 110 QFrame* syncPage = addPage("Settings");
104 mainLayout->addWidget( syncGroupBox ); 111 QVBoxLayout *syncLayout = new QVBoxLayout( syncPage, 0, spacingHint() );
112 mSyncWidget_Settings = c->generateSettingsTab(syncPage);
113 syncLayout->addWidget( mSyncWidget_Settings );
114
115 syncPage = addPage("Conflicts");
116 syncLayout = new QVBoxLayout( syncPage, 0, spacingHint() );
117 mSyncWidget_Conflicts = c->generateConflictsTab(syncPage);
118 syncLayout->addWidget( mSyncWidget_Conflicts );
119
120 syncPage = addPage("Remote");
121 syncLayout = new QVBoxLayout( syncPage, 0, spacingHint() );
122 mSyncWidget_Remote = c->generateRemoteTab(syncPage);
123 syncLayout->addWidget( mSyncWidget_Remote );
124
105 125
106 mainLayout->addStretch(); 126 mSyncWidget_Settings->setInEditMode( false );
127 mSyncWidget_Settings->loadSettings( mResource );
128 mSyncWidget_Settings->show();
107 129
108 mSyncWidget = factory->syncWidget( resource->type(), syncGroupBox ); 130 mSyncWidget_Conflicts->setInEditMode( false );
131 mSyncWidget_Conflicts->loadSettings( mResource );
132 mSyncWidget_Conflicts->show();
133
134 mSyncWidget_Remote->setInEditMode( false );
135 mSyncWidget_Remote->loadSettings( mResource );
136 mSyncWidget_Remote->show();
137
138 delete c;
139
140// QGroupBox *syncGroupBox = new QGroupBox( 2, Qt::Horizontal, syncPage );
141// syncGroupBox->layout()->setSpacing( spacingHint());
142// syncGroupBox->setTitle( i18n( "Syncronize Preferences" ) );
143// syncLayout->addWidget( syncGroupBox );
144
145// syncLayout->addStretch();
146/*US
147 mSyncWidget = factory->syncWidget( resource->type(), syncPage );
148 syncLayout->addWidget( mSyncWidget );
109 if ( mSyncWidget ) { 149 if ( mSyncWidget ) {
@@ -113,2 +153,3 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
113 } 153 }
154 */
114 } 155 }
@@ -133,4 +174,8 @@ void ConfigDialog::setInEditMode( bool value )
133 174
134 if ( mSyncWidget ) 175 if ( mSyncWidget_Settings )
135 mSyncWidget->setInEditMode( value ); 176 mSyncWidget_Settings->setInEditMode( value );
177 if ( mSyncWidget_Conflicts )
178 mSyncWidget_Conflicts->setInEditMode( value );
179 if ( mSyncWidget_Remote )
180 mSyncWidget_Remote->setInEditMode( value );
136 181
@@ -184,7 +229,8 @@ void ConfigDialog::accept()
184 229
185 if ( mSyncWidget ) { 230 if ( mSyncWidget_Settings )
186 // First save generic information 231 mSyncWidget_Settings->saveSettings( mResource );
187 // Also save setting of specific resource type 232 if ( mSyncWidget_Conflicts )
188 mSyncWidget->saveSettings( mResource ); 233 mSyncWidget_Conflicts->saveSettings( mResource );
189 } 234 if ( mSyncWidget_Remote )
235 mSyncWidget_Remote->saveSettings( mResource );
190 236
diff --git a/microkde/kresources/configdialog.h b/microkde/kresources/configdialog.h
index b629347..63cd4e9 100644
--- a/microkde/kresources/configdialog.h
+++ b/microkde/kresources/configdialog.h
@@ -53,3 +53,5 @@ class ConfigDialog : public KDialogBase
53 ConfigWidget *mConfigWidget; 53 ConfigWidget *mConfigWidget;
54 SyncWidget *mSyncWidget; 54 SyncWidget *mSyncWidget_Settings;
55 SyncWidget *mSyncWidget_Conflicts;
56 SyncWidget *mSyncWidget_Remote;
55 Resource* mResource; 57 Resource* mResource;
diff --git a/microkde/kresources/configpage.cpp b/microkde/kresources/configpage.cpp
index 2fe021d..1a3a22c 100644
--- a/microkde/kresources/configpage.cpp
+++ b/microkde/kresources/configpage.cpp
@@ -207,2 +207,4 @@ void ConfigPage::load()
207 info.mConfig = new KConfig( locateLocal( "config", "kcalrc" ) ); 207 info.mConfig = new KConfig( locateLocal( "config", "kcalrc" ) );
208 } else if ( family == syncfamily && QFile::exists( configDir + "/kabcsyncrc" ) ) {
209 info.mConfig = new KConfig( locateLocal( "config", "kabcsyncrc" ) );
208 } else { 210 } else {
@@ -313,3 +315,3 @@ void ConfigPage::slotAdd()
313 desc = QInputDialog::getItem( i18n( "Sync Configuration" ), 315 desc = QInputDialog::getItem( i18n( "Sync Configuration" ),
314 i18n( "Please select resource type for new sync profile:" ), descs, 0, 316 i18n( "Select resource type for the new sync profile:" ), descs, 0,
315 false, &ok, this ); 317 false, &ok, this );
@@ -319,3 +321,3 @@ void ConfigPage::slotAdd()
319 desc = QInputDialog::getItem( i18n( "Resource Configuration" ), 321 desc = QInputDialog::getItem( i18n( "Resource Configuration" ),
320 i18n( "Please select type of the new resource:" ), descs, 0, 322 i18n( "Select type of the new resource:" ), descs, 0,
321 false, &ok, this ); 323 false, &ok, this );
@@ -336,3 +338,10 @@ void ConfigPage::slotAdd()
336 338
337 resource->setResourceName( type + "-resource" ); 339 if (mFamily == syncfamily)
340 {
341 resource->setResourceName( type + "-syncprofile" );
342 }
343 else
344 {
345 resource->setResourceName( type + "-resource" );
346 }
338 347
diff --git a/microkde/kresources/factory.cpp b/microkde/kresources/factory.cpp
index 7a5c2f6..e44fce3 100644
--- a/microkde/kresources/factory.cpp
+++ b/microkde/kresources/factory.cpp
@@ -189,3 +189,3 @@ ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent )
189 189
190SyncWidget *Factory::syncWidget( const QString& type, QWidget *parent ) 190SyncWidgetContainer *Factory::syncWidgetContainer( const QString& type )
191{ 191{
@@ -212,3 +212,3 @@ SyncWidget *Factory::syncWidget( const QString& type, QWidget *parent )
212 212
213 SyncWidget *wdg = pluginFactory->syncWidget( parent ); 213 SyncWidgetContainer *wdg = pluginFactory->syncWidgetContainer( );
214 if ( !wdg ) { 214 if ( !wdg ) {
diff --git a/microkde/kresources/factory.h b/microkde/kresources/factory.h
index a265bc8..0e4231b 100644
--- a/microkde/kresources/factory.h
+++ b/microkde/kresources/factory.h
@@ -36,2 +36,5 @@ namespace KRES {
36 36
37class SyncWidgetContainer;
38class ConfigWidget;
39
37//US 40//US
@@ -94,3 +97,3 @@ class Factory
94 */ 97 */
95 SyncWidget *syncWidget( const QString& type, QWidget *parent = 0 ); 98 SyncWidgetContainer *syncWidgetContainer( const QString& type );
96 99
diff --git a/microkde/kresources/resource.h b/microkde/kresources/resource.h
index c9202c9..580b5d1 100644
--- a/microkde/kresources/resource.h
+++ b/microkde/kresources/resource.h
@@ -42,3 +42,3 @@ namespace KRES {
42class ConfigWidget; 42class ConfigWidget;
43class SyncWidget; 43class SyncWidgetContainer;
44 44
@@ -380,3 +380,3 @@ class PluginFactoryBase : public KLibFactory
380 380
381 virtual SyncWidget *syncWidget( QWidget *parent ) = 0; 381 virtual SyncWidgetContainer *syncWidgetContainer() = 0;
382 382
@@ -404,5 +404,5 @@ class PluginFactory : public PluginFactoryBase
404 404
405 virtual SyncWidget *syncWidget( QWidget *parent ) 405 SyncWidgetContainer *syncWidgetContainer()
406 { 406 {
407 return new TS( parent ); 407 return new TS();
408 } 408 }
diff --git a/microkde/kresources/syncwidget.h b/microkde/kresources/syncwidget.h
index e94252c..6632b69 100644
--- a/microkde/kresources/syncwidget.h
+++ b/microkde/kresources/syncwidget.h
@@ -60,2 +60,12 @@ protected:
60 60
61class SyncWidgetContainer : public QObject
62{
63 Q_OBJECT
64
65public:
66 virtual SyncWidget* generateSettingsTab(QWidget *parent = 0, const char *name = 0) = 0;
67 virtual SyncWidget* generateConflictsTab(QWidget *parent = 0, const char *name = 0) = 0;
68 virtual SyncWidget* generateRemoteTab(QWidget *parent = 0, const char *name = 0) = 0;
69};
70
61} 71}