22 #include "configguisyncmlhttp.h"
24 #include <kcombobox.h>
26 #include <klineedit.h>
27 #include <tdelocale.h>
28 #include <kurlrequester.h>
30 #include <tqcheckbox.h>
34 #include <tqspinbox.h>
35 #include <tqtabwidget.h>
38 ConfigGuiSyncmlHttp::ConfigGuiSyncmlHttp(
const QSync::Member &member, TQWidget *parent )
39 : ConfigGui( member, parent ), mUrl( 0 ), mPort( 0 )
42 TQTabWidget *tabWidget =
new TQTabWidget(
this );
43 topLayout()->addWidget( tabWidget );
46 TQWidget *connectionWidget =
new TQWidget( tabWidget );
47 TQVBoxLayout *connectionLayout =
new TQVBoxLayout( connectionWidget,
48 KDialog::marginHint(), KDialog::spacingHint() );
50 tabWidget->addTab( connectionWidget, i18n(
"Connection" ) );
52 mGridLayout =
new TQGridLayout( connectionLayout );
54 TQLabel *label =
new TQLabel( i18n(
"Port:"), connectionWidget );
55 mGridLayout->addWidget( label, 0, 0 );
57 mPort =
new TQSpinBox( connectionWidget );
58 mPort->setMinValue( 1 );
59 mPort->setMaxValue( 65536 );
60 mGridLayout->addWidget( mPort, 0, 1 );
63 TQWidget *databaseWidget =
new TQWidget( tabWidget );
64 TQVBoxLayout *databaseLayout =
new TQVBoxLayout( databaseWidget,
65 KDialog::marginHint(), KDialog::spacingHint() );
67 tabWidget->addTab( databaseWidget, i18n(
"Databases" ) );
69 mGridLayout =
new TQGridLayout( databaseLayout );
70 addLineEdit( databaseWidget, i18n(
"Contact Database:"), &mContactDb, 0 );
71 addLineEdit( databaseWidget, i18n(
"Calendar Database:"), &mCalendarDb, 1 );
72 addLineEdit( databaseWidget, i18n(
"Note Database:"), &mNoteDb, 2 );
74 mContactDb->insertItem(
"addressbook" );
75 mContactDb->insertItem(
"contacts" );
77 mCalendarDb->insertItem(
"agenda" );
78 mCalendarDb->insertItem(
"calendar" );
80 mNoteDb->insertItem(
"notes" );
84 TQWidget *optionWidget =
new TQWidget( tabWidget );
85 TQVBoxLayout *optionLayout =
new TQVBoxLayout( optionWidget,
86 KDialog::marginHint(), KDialog::spacingHint() );
88 tabWidget->addTab( optionWidget, i18n(
"Options" ) );
90 mGridLayout =
new TQGridLayout( optionLayout );
92 label =
new TQLabel( i18n(
"User name:"), optionWidget );
93 mGridLayout->addWidget( label, 0, 0 );
95 mUsername =
new KLineEdit( optionWidget );
96 mGridLayout->addWidget( mUsername, 0, 1 );
98 label =
new TQLabel( i18n(
"Password:"), optionWidget );
99 mGridLayout->addWidget( label, 1, 0 );
101 mPassword =
new KLineEdit( optionWidget );
102 mPassword->setEchoMode( TQLineEdit::Password );
103 mGridLayout->addWidget( mPassword, 1, 1 );
106 mUseStringTable =
new TQCheckBox( i18n(
"Use String Table"), optionWidget );
107 mGridLayout->addMultiCellWidget( mUseStringTable, 2, 2, 0, 1 );
109 mOnlyReplace =
new TQCheckBox( i18n(
"Only Replace Entries"), optionWidget );
110 mGridLayout->addMultiCellWidget( mOnlyReplace, 3, 3, 0, 1 );
113 label =
new TQLabel( i18n(
"URL:"), optionWidget );
114 mGridLayout->addWidget( label, 4, 0 );
116 mUrl =
new KLineEdit( optionWidget );
117 mGridLayout->addWidget( mUrl, 4, 1 );
120 label =
new TQLabel( i18n(
"Receive Limit:"), optionWidget );
121 mGridLayout->addWidget( label, 5, 0 );
123 mRecvLimit =
new TQSpinBox( optionWidget );
124 mRecvLimit->setMinValue( 1 );
125 mRecvLimit->setMaxValue( 65536 );
126 mGridLayout->addWidget( mRecvLimit, 5, 1 );
129 label =
new TQLabel( i18n(
"Maximum Object Size"), optionWidget );
130 mGridLayout->addWidget( label, 6, 0 );
132 mMaxObjSize =
new TQSpinBox( optionWidget );
133 mMaxObjSize->setMinValue( 1 );
134 mMaxObjSize->setMaxValue( 65536 );
135 mGridLayout->addWidget( mMaxObjSize, 6, 1 );
137 topLayout()->addStretch( 1 );
140 void ConfigGuiSyncmlHttp::addLineEdit( TQWidget *parent,
const TQString &text, KComboBox **edit,
int row )
142 TQLabel *label =
new TQLabel( text, parent);
143 mGridLayout->addWidget( label, row, 0 );
145 *edit =
new KComboBox(
true, parent );
146 mGridLayout->addWidget( *edit, row, 1 );
149 void ConfigGuiSyncmlHttp::load(
const TQString &xml )
151 TQDomDocument document;
152 document.setContent( xml );
154 TQDomElement docElement = document.documentElement();
157 for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
158 TQDomElement element = node.toElement();
159 if ( element.tagName() ==
"username" ) {
160 mUsername->setText( element.text() );
161 }
else if ( element.tagName() ==
"password" ) {
162 mPassword->setText( element.text() );
163 }
else if ( element.tagName() ==
"url" ) {
165 mUrl->setText( element.text() );
166 }
else if ( element.tagName() ==
"port" ) {
168 mPort->setValue( element.text().toInt() );
169 }
else if ( element.tagName() ==
"recvLimit" ) {
171 mRecvLimit->setValue( element.text().toInt() );
172 }
else if ( element.tagName() ==
"maxObjSize" ) {
174 mMaxObjSize->setValue( element.text().toInt() );
175 }
else if ( element.tagName() ==
"usestringtable" ) {
176 mUseStringTable->setChecked( element.text() ==
"1" );
177 }
else if ( element.tagName() ==
"onlyreplace" ) {
178 mOnlyReplace->setChecked( element.text() ==
"1" );
179 }
else if ( element.tagName() ==
"contact_db" ) {
180 mContactDb->setCurrentText( element.text() );
181 }
else if ( element.tagName() ==
"calendar_db" ) {
182 mCalendarDb->setCurrentText( element.text() );
183 }
else if ( element.tagName() ==
"note_db" ) {
184 mNoteDb->setCurrentText( element.text() );
189 TQString ConfigGuiSyncmlHttp::save()
const
193 xml +=
"<username>" + mUsername->text() +
"</username>\n";
194 xml +=
"<password>" + mPassword->text() +
"</password>\n";
196 xml +=
"<url>" + mUrl->text() +
"</url>\n";
197 xml +=
"<port>" + TQString::number( mPort->value() ) +
"</port>\n";
199 xml +=
"<recvLimit>" + TQString::number( mRecvLimit->value() ) +
"</recvLimit>\n";
202 xml +=
"<maxObjSize>" + TQString::number( mMaxObjSize->value() ) +
"</maxObjSize>\n";
204 xml +=
"<usestringtable>";
205 if ( mUseStringTable->isChecked() )
209 xml +=
"</usestringtable>\n";
211 xml +=
"<onlyreplace>";
212 if ( mOnlyReplace->isChecked() )
216 xml +=
"</onlyreplace>\n";
218 xml +=
"<contact_db>" + mContactDb->currentText() +
"</contact_db>\n";
219 xml +=
"<calendar_db>" + mCalendarDb->currentText() +
"</calendar_db>\n";
220 xml +=
"<note_db>" + mNoteDb->currentText() +
"</note_db>\n";
226 #include "configguisyncmlhttp.moc"