22 #include <kcombobox.h>
24 #include <klineedit.h>
25 #include <tdelocale.h>
27 #include <tqbuttongroup.h>
28 #include <tqcheckbox.h>
32 #include <tqradiobutton.h>
33 #include <tqspinbox.h>
34 #include <tqtabwidget.h>
36 #include "configguipalm.h"
38 ConfigGuiPalm::ConfigGuiPalm(
const QSync::Member &member, TQWidget *parent )
39 : ConfigGui( member, parent )
43 mDevice->insertItem(
"/dev/pilot" );
44 mDevice->insertItem(
"/dev/ttyUSB0" );
45 mDevice->insertItem(
"/dev/ttyUSB1" );
46 mDevice->insertItem(
"/dev/ttyUSB2" );
47 mDevice->insertItem(
"/dev/ttyUSB3" );
49 mSpeed->insertItem(
"9600" );
50 mSpeed->insertItem(
"19200" );
51 mSpeed->insertItem(
"38400" );
52 mSpeed->insertItem(
"57600" );
53 mSpeed->insertItem(
"115200" );
56 void ConfigGuiPalm::load(
const TQString &xml )
59 doc.setContent( xml );
60 TQDomElement docElement = doc.documentElement();
62 for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
63 TQDomElement element = node.toElement();
64 if ( element.tagName() ==
"sockaddr" ) {
65 mDevice->setCurrentText( element.text() );
66 }
else if ( element.tagName() ==
"speed" ) {
67 mSpeed->setCurrentText( element.text() );
68 }
else if ( element.tagName() ==
"timeout" ) {
69 mTimeout->setValue( element.text().toInt() );
70 }
else if ( element.tagName() ==
"username" ) {
71 mUserName->setText( element.text() );
72 }
else if ( element.tagName() ==
"mismatch" ) {
73 switch ( element.text().toInt() ) {
75 mSyncAlways->setChecked(
true );
78 mSyncAbort->setChecked(
true );
82 mSyncAsk->setChecked(
true );
85 }
else if ( element.tagName() ==
"popup" ) {
86 mPopup->setChecked( element.text() ==
"1" );
91 TQString ConfigGuiPalm::save()
const
93 TQString config =
"<config>";
95 config +=
"<sockaddr>" + mDevice->currentText() +
"</sockaddr>";
96 config +=
"<username>" + mUserName->text() +
"</username>";
97 config +=
"<timeout>" + TQString::number( mTimeout->value() ) +
"</timeout>";
98 config +=
"<type>0</type>";
99 config +=
"<speed>" + mSpeed->currentText() +
"</speed>";
100 config +=
"<id>0</id>";
101 config +=
"<codepage>cp1252</codepage>";
102 config +=
"<popup>" + TQString( mPopup->isChecked() ?
"1" :
"0" ) +
"</popup>";
105 if ( mSyncAlways->isChecked() )
107 else if ( mSyncAsk->isChecked() )
109 else if ( mSyncAbort->isChecked() )
112 config +=
"<mismatch>" + popup +
"</mismatch>";
114 config +=
"</config>";
119 void ConfigGuiPalm::initGUI()
121 TQFont boldFont = font();
122 boldFont.setBold(
true );
124 TQTabWidget *tabWidget =
new TQTabWidget(
this );
126 TQWidget *connectionWidget =
new TQWidget( tabWidget );
127 TQVBoxLayout *connectionLayout =
new TQVBoxLayout( connectionWidget,
128 KDialog::marginHint(), KDialog::spacingHint() );
130 TQLabel *label =
new TQLabel( i18n(
"Connection" ), connectionWidget );
131 label->setFont( boldFont );
132 connectionLayout->addWidget( label );
134 TQGridLayout *gridLayout =
new TQGridLayout( connectionLayout, 3, 2, KDialog::spacingHint() );
135 gridLayout->setMargin( KDialog::marginHint() );
137 gridLayout->addWidget(
new TQLabel( i18n(
"Port:" ), connectionWidget ), 0, 0 );
138 gridLayout->addWidget(
new TQLabel( i18n(
"Speed:" ), connectionWidget ), 1, 0 );
139 gridLayout->addWidget(
new TQLabel( i18n(
"Timeout:" ), connectionWidget ), 2, 0 );
141 mDevice =
new KComboBox(
true, connectionWidget );
142 mSpeed =
new KComboBox( connectionWidget );
143 mTimeout =
new TQSpinBox( 1, 60, 1, connectionWidget );
144 mTimeout->setSuffix( i18n(
" sec" ) );
146 gridLayout->addWidget( mDevice, 0, 1 );
147 gridLayout->addWidget( mSpeed, 1, 1 );
148 gridLayout->addWidget( mTimeout, 2, 1 );
149 gridLayout->setColStretch( 1, 1 );
151 label =
new TQLabel( i18n(
"User" ), connectionWidget );
152 label->setFont( boldFont );
153 connectionLayout->addWidget( label );
155 gridLayout =
new TQGridLayout( connectionLayout, 1, 2, KDialog::spacingHint() );
156 gridLayout->setMargin( KDialog::marginHint() );
158 gridLayout->addWidget(
new TQLabel( i18n(
"Username:" ), connectionWidget ), 0, 0 );
160 mUserName =
new KLineEdit( connectionWidget );
161 gridLayout->addWidget( mUserName, 0, 1 );
163 label =
new TQLabel( i18n(
"What to do if Username does not match" ), connectionWidget );
164 label->setFont( boldFont );
165 connectionLayout->addWidget( label );
167 gridLayout =
new TQGridLayout( connectionLayout, 1, 2, KDialog::spacingHint() );
168 gridLayout->setMargin( KDialog::marginHint() );
170 TQButtonGroup *buttonGroup =
new TQButtonGroup( 1, TQt::Horizontal, connectionWidget );
171 buttonGroup->setExclusive(
true );
172 buttonGroup->setFrameStyle( TQFrame::NoFrame );
173 mSyncAlways =
new TQRadioButton( i18n(
"Sync Anyway" ), buttonGroup );
174 mSyncAsk =
new TQRadioButton( i18n(
"Ask What To Do" ), buttonGroup );
175 mSyncAbort =
new TQRadioButton( i18n(
"Abort Sync" ), buttonGroup );
177 gridLayout->addMultiCellWidget( buttonGroup, 0, 0, 0, 1 );
179 connectionLayout->addStretch( 1 );
180 tabWidget->addTab( connectionWidget, i18n(
"Connection" ) );
182 TQWidget *optionWidget =
new TQWidget( tabWidget );
183 TQVBoxLayout *optionLayout =
new TQVBoxLayout( optionWidget,
184 KDialog::marginHint(), KDialog::spacingHint() );
186 label =
new TQLabel( i18n(
"Hotsync Notification" ), optionWidget );
187 label->setFont( boldFont );
188 optionLayout->addWidget( label );
190 gridLayout =
new TQGridLayout( optionLayout, 1, 2, KDialog::spacingHint() );
191 gridLayout->setMargin( KDialog::marginHint() );
193 mPopup =
new TQCheckBox( i18n(
"Popup when interaction is required" ), optionWidget );
194 gridLayout->addMultiCellWidget( mPopup, 0, 0, 0, 1 );
196 optionLayout->addStretch( 1 );
197 tabWidget->addTab( optionWidget, i18n(
"Options" ) );
199 topLayout()->addWidget( tabWidget );