|
|
|
/*
|
|
|
|
This file is part of KitchenSync.
|
|
|
|
|
|
|
|
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
|
|
|
USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <kcombobox.h>
|
|
|
|
#include <kdialog.h>
|
|
|
|
#include <tdeglobal.h>
|
|
|
|
#include <kiconloader.h>
|
|
|
|
#include <kinputdialog.h>
|
|
|
|
#include <klineedit.h>
|
|
|
|
#include <tdelocale.h>
|
|
|
|
#include <tdemessagebox.h>
|
|
|
|
|
|
|
|
#include <kdebug.h>
|
|
|
|
|
|
|
|
#include <tqapplication.h>
|
|
|
|
#include <tqeventloop.h>
|
|
|
|
#include <tqlabel.h>
|
|
|
|
#include <tqlayout.h>
|
|
|
|
#include <tqpushbutton.h>
|
|
|
|
#include <tqspinbox.h>
|
|
|
|
#include <tqtabwidget.h>
|
|
|
|
#include <tqtooltip.h>
|
|
|
|
#include <tqvbox.h>
|
|
|
|
|
|
|
|
#include "configguiirmc.h"
|
|
|
|
|
|
|
|
ConfigGuiIRMC::ConfigGuiIRMC( const QSync::Member &member, TQWidget *parent )
|
|
|
|
: ConfigGui( member, parent )
|
|
|
|
{
|
|
|
|
initGUI();
|
|
|
|
|
|
|
|
mConnectionType->insertItem( i18n( "Bluetooth" ) );
|
|
|
|
mConnectionType->insertItem( i18n( "InfraRed (IR)" ) );
|
|
|
|
mConnectionType->insertItem( i18n( "Cable" ) );
|
|
|
|
|
|
|
|
connect( mConnectionType, TQT_SIGNAL( activated( int ) ),
|
|
|
|
this, TQT_SLOT( connectionTypeChanged( int ) ) );
|
|
|
|
|
|
|
|
connectionTypeChanged( 0 );
|
|
|
|
}
|
|
|
|
|
|
|
|
void ConfigGuiIRMC::load( const TQString &xml )
|
|
|
|
{
|
|
|
|
TQDomDocument doc;
|
|
|
|
doc.setContent( xml );
|
|
|
|
TQDomElement docElement = doc.documentElement();
|
|
|
|
TQDomNode node;
|
|
|
|
for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
|
|
|
TQDomElement element = node.toElement();
|
|
|
|
if ( element.tagName() == "connectmedium" ) {
|
|
|
|
if ( element.text() == "bluetooth" ) {
|
|
|
|
mConnectionType->setCurrentItem( 0 );
|
|
|
|
connectionTypeChanged( 0 );
|
|
|
|
} else if ( element.text() == "ir" ) {
|
|
|
|
mConnectionType->setCurrentItem( 1 );
|
|
|
|
connectionTypeChanged( 1 );
|
|
|
|
} else if ( element.text() == "cable" ) {
|
|
|
|
mConnectionType->setCurrentItem( 2 );
|
|
|
|
connectionTypeChanged( 2 );
|
|
|
|
}
|
|
|
|
} else if (element.tagName() == "btunit" ) {
|
|
|
|
mBluetoothWidget->setAddress( element.text() );
|
|
|
|
} else if (element.tagName() == "btchannel" ) {
|
|
|
|
mBluetoothWidget->setChannel( element.text() );
|
|
|
|
} else if (element.tagName() == "donttellsync" ) {
|
|
|
|
mDontTellSync->setChecked( element.text() == "true" );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
mIRWidget->load( docElement );
|
|
|
|
mCableWidget->load( docElement );
|
|
|
|
}
|
|
|
|
|
|
|
|
TQString ConfigGuiIRMC::save() const
|
|
|
|
{
|
|
|
|
TQDomDocument doc;
|
|
|
|
TQDomElement config = doc.createElement( "config" );
|
|
|
|
doc.appendChild( config );
|
|
|
|
|
|
|
|
TQDomElement element = doc.createElement( "connectmedium" );
|
|
|
|
if ( mConnectionType->currentItem() == 0 )
|
|
|
|
element.appendChild( doc.createTextNode( "bluetooth" ) );
|
|
|
|
if ( mConnectionType->currentItem() == 1 )
|
|
|
|
element.appendChild( doc.createTextNode( "ir" ) );
|
|
|
|
if ( mConnectionType->currentItem() == 2 )
|
|
|
|
element.appendChild( doc.createTextNode( "cable" ) );
|
|
|
|
|
|
|
|
config.appendChild( element );
|
|
|
|
|
|
|
|
if ( mConnectionType->currentItem() == 0 ) {
|
|
|
|
TQDomElement btunit = doc.createElement( "btunit" );
|
|
|
|
if ( !mBluetoothWidget->address().isEmpty() )
|
|
|
|
btunit.appendChild( doc.createTextNode( mBluetoothWidget->address() ) );
|
|
|
|
|
|
|
|
TQDomElement btchannel = doc.createElement( "btchannel" );
|
|
|
|
if ( !mBluetoothWidget->channel().isEmpty() )
|
|
|
|
btchannel.appendChild( doc.createTextNode( mBluetoothWidget->channel() ) );
|
|
|
|
|
|
|
|
config.appendChild( btunit );
|
|
|
|
config.appendChild( btchannel );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( mDontTellSync->isChecked() ) {
|
|
|
|
TQDomElement dontellsync = doc.createElement( "donttellsync" );
|
|
|
|
dontellsync.appendChild( doc.createTextNode( "true" ) );
|
|
|
|
config.appendChild( dontellsync );
|
|
|
|
}
|
|
|
|
|
|
|
|
mIRWidget->save( doc, config );
|
|
|
|
mCableWidget->save( doc, config );
|
|
|
|
|
|
|
|
return doc.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
void ConfigGuiIRMC::connectionTypeChanged( int type )
|
|
|
|
{
|
|
|
|
mBluetoothWidget->hide();
|
|
|
|
mIRWidget->hide();
|
|
|
|
mCableWidget->hide();
|
|
|
|
|
|
|
|
if ( type == 0 )
|
|
|
|
mBluetoothWidget->show();
|
|
|
|
else if ( type == 1 )
|
|
|
|
mIRWidget->show();
|
|
|
|
else
|
|
|
|
mCableWidget->show();
|
|
|
|
}
|
|
|
|
|
|
|
|
void ConfigGuiIRMC::initGUI()
|
|
|
|
{
|
|
|
|
TQTabWidget *tabWidget = new TQTabWidget( this );
|
|
|
|
topLayout()->addWidget( tabWidget );
|
|
|
|
|
|
|
|
TQVBox *connectionWidget = new TQVBox( tabWidget );
|
|
|
|
connectionWidget->setMargin( KDialog::marginHint() );
|
|
|
|
connectionWidget->setSpacing( 5 );
|
|
|
|
|
|
|
|
tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
|
|
|
|
|
|
|
|
mConnectionType = new KComboBox( connectionWidget );
|
|
|
|
TQToolTip::add( mConnectionType, i18n( "Select your connection type." ) );
|
|
|
|
|
|
|
|
mBluetoothWidget = new BluetoothWidget( connectionWidget );
|
|
|
|
mBluetoothWidget->hide();
|
|
|
|
|
|
|
|
mIRWidget = new IRWidget( connectionWidget );
|
|
|
|
mIRWidget->hide();
|
|
|
|
|
|
|
|
mCableWidget = new CableWidget( connectionWidget );
|
|
|
|
mCableWidget->hide();
|
|
|
|
|
|
|
|
connectionWidget->setStretchFactor( mBluetoothWidget, 1 );
|
|
|
|
connectionWidget->setStretchFactor( mIRWidget, 1 );
|
|
|
|
connectionWidget->setStretchFactor( mCableWidget, 1 );
|
|
|
|
|
|
|
|
TQVBox *optionsWidget = new TQVBox( tabWidget );
|
|
|
|
optionsWidget->setMargin( KDialog::marginHint() );
|
|
|
|
optionsWidget->setSpacing( 5 );
|
|
|
|
|
|
|
|
tabWidget->addTab( optionsWidget, i18n( "Options" ) );
|
|
|
|
|
|
|
|
TQHBox *optionBox = new TQHBox( optionsWidget );
|
|
|
|
optionBox->setSpacing( KDialog::spacingHint() );
|
|
|
|
|
|
|
|
TQLabel *label = new TQLabel( i18n( "Don't send OBEX UUID (IRMC-SYNC)" ), optionBox );
|
|
|
|
mDontTellSync = new TQCheckBox( optionBox );
|
|
|
|
TQToolTip::add( mDontTellSync, i18n( "Don't send OBEX UUID while connecting. Needed for older IrMC based mobile phones." ) );
|
|
|
|
label->setBuddy( mDontTellSync );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "configguiirmc.moc"
|