kitchensync

connectionwidgets.cpp

00001 /*
00002     This file is part of KitchenSync.
00003 
00004     Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
00005     Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
00006 
00007     This program is free software; you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation; either version 2 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program; if not, write to the Free Software
00019     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00020 */
00021 
00022 #include <kcombobox.h>
00023 #include <kdialog.h>
00024 #include <kglobal.h>
00025 #include <kiconloader.h>
00026 #include <kinputdialog.h>
00027 #include <klineedit.h>
00028 #include <klocale.h>
00029 #include <kmessagebox.h>
00030 
00031 #include <qapplication.h>
00032 #include <qeventloop.h>
00033 #include <qlabel.h>
00034 #include <qlayout.h>
00035 #include <qpushbutton.h>
00036 #include <qspinbox.h>
00037 #include <qtabwidget.h>
00038 #include <qtooltip.h>
00039 #include <qvbox.h>
00040 
00041 #include "connectionwidgets.h"
00042 
00043 BluetoothWidget::BluetoothWidget( QWidget *parent )
00044   : QWidget( parent )
00045 {
00046   QGridLayout *layout = new QGridLayout( this );
00047 
00048   mAddress = new KLineEdit( this );
00049   mAddress->setInputMask( ">NN:NN:NN:NN:NN:NN;" );
00050   layout->addWidget( mAddress, 1, 0 );
00051 
00052   QLabel *label = new QLabel( i18n( "Bluetooth address:" ), this );
00053   label->setBuddy( mAddress );
00054   layout->addWidget( label, 0, 0 );
00055 
00056   mChannel = new KLineEdit( this );
00057   layout->addWidget( mChannel, 1, 1 );
00058 
00059   mChannelLabel = new QLabel( i18n( "Channel:" ), this );
00060   mChannelLabel->setBuddy( mChannel );
00061   layout->addWidget( mChannelLabel, 0, 1 );
00062 
00063   layout->setRowStretch( 2, 1 );
00064 }
00065 
00066 void BluetoothWidget::hideChannel()
00067 {
00068   mChannelLabel->hide();
00069   mChannel->hide();
00070 }
00071 
00072 void BluetoothWidget::showChannel()
00073 {
00074   mChannelLabel->show();
00075   mChannel->show();
00076 }
00077 
00078 void BluetoothWidget::setAddress( const QString address )
00079 {
00080   mAddress->setText( address );
00081 }
00082 
00083 void BluetoothWidget::setChannel( const QString channel )
00084 {
00085   if ( mChannel )
00086     mChannel->setText( channel );
00087 }
00088 
00089 QString BluetoothWidget::address() const
00090 {
00091   return mAddress->text();
00092 }
00093 
00094 QString BluetoothWidget::channel() const
00095 {
00096   if ( mChannel->text().isEmpty() )
00097     return QString();
00098 
00099   return mChannel->text();
00100 }
00101 
00102 // FIXME - Only IrMC specific
00103 IRWidget::IRWidget( QWidget *parent )
00104   : QWidget( parent )
00105 {
00106   QGridLayout *layout = new QGridLayout( this, 3, 3, 11, 3 );
00107 
00108   mDevice = new KLineEdit( this );
00109   mSerialNumber = new KLineEdit( this );
00110 
00111   layout->addWidget( mDevice, 1, 0 );
00112   layout->addWidget( mSerialNumber, 1, 1 );
00113 
00114   QLabel *label = new QLabel( i18n( "Device Name:" ), this );
00115   label->setBuddy( mDevice );
00116   layout->addWidget( label, 0, 0 );
00117 
00118   label = new QLabel( i18n( "Serial Number:" ), this );
00119   label->setBuddy( mSerialNumber );
00120   layout->addWidget( label, 0, 1 );
00121 
00122   layout->setRowStretch( 2, 1 );
00123 }
00124 
00125 void IRWidget::load( const QDomElement &parent )
00126 {
00127   QDomNode node;
00128   for ( node = parent.firstChild(); !node.isNull(); node = node.nextSibling() ) {
00129     QDomElement element = node.toElement();
00130     if ( element.tagName() == "irname" )
00131       mDevice->setText( element.text() );
00132     else if ( element.tagName() == "irserial" )
00133       mSerialNumber->setText( element.text() );
00134   }
00135 }
00136 
00137 void IRWidget::save( QDomDocument &doc, QDomElement &parent )
00138 {
00139   QDomElement element = doc.createElement( "irname" );
00140   element.appendChild( doc.createTextNode( mDevice->text() ) );
00141   parent.appendChild( element );
00142 
00143   element = doc.createElement( "irserial" );
00144   element.appendChild( doc.createTextNode( mSerialNumber->text() ) );
00145   parent.appendChild( element );
00146 }
00147 
00148 // FIXME - Only IrMC specific
00149 CableWidget::CableWidget( QWidget *parent )
00150   : QWidget( parent )
00151 {
00152   QGridLayout *layout = new QGridLayout( this, 3, 2, 11, 3 );
00153 
00154   mManufacturer = new KComboBox( this );
00155   mDevice = new KComboBox( true, this );
00156 
00157   layout->addWidget( mManufacturer, 0, 1 );
00158   layout->addWidget( mDevice, 1, 1 );
00159 
00160   QLabel *label = new QLabel( i18n( "Device Manufacturer:" ), this );
00161   label->setBuddy( mManufacturer );
00162   layout->addWidget( label, 0, 0 );
00163 
00164   label = new QLabel( i18n( "Device:" ), this );
00165   label->setBuddy( mDevice );
00166   layout->addWidget( label, 1, 0 );
00167 
00168   layout->setRowStretch( 2, 1 );
00169 
00170   mManufacturer->insertItem( i18n( "SonyEricsson/Ericsson" ) );
00171   mManufacturer->insertItem( i18n( "Siemens" ) );
00172 
00173   mDevice->insertItem( "/dev/ttyS0" );
00174   mDevice->insertItem( "/dev/ttyS1" );
00175   mDevice->insertItem( "/dev/ttyUSB0" );
00176   mDevice->insertItem( "/dev/ttyUSB1" );
00177 }
00178 
00179 void CableWidget::load( const QDomElement &parent )
00180 {
00181   QDomNode node;
00182   for ( node = parent.firstChild(); !node.isNull(); node = node.nextSibling() ) {
00183     QDomElement element = node.toElement();
00184     if ( element.tagName() == "cabletype" )
00185       mManufacturer->setCurrentItem( element.text().toInt() );
00186     else if ( element.tagName() == "cabledev" )
00187       mDevice->setCurrentText( element.text() );
00188   }
00189 }
00190 
00191 void CableWidget::save( QDomDocument &doc, QDomElement &parent )
00192 {
00193   QDomElement element = doc.createElement( "cabletype" );
00194   element.appendChild( doc.createTextNode( QString::number( mManufacturer->currentItem() ) ) );
00195   parent.appendChild( element );
00196 
00197   element = doc.createElement( "cabledev" );
00198   element.appendChild( doc.createTextNode( mDevice->currentText() ) );
00199   parent.appendChild( element );
00200 }
00201 
00202 UsbWidget::UsbWidget( QWidget *parent )
00203   : QWidget( parent )
00204 {
00205   QGridLayout *layout = new QGridLayout( this, 3, 2, 11, 3);
00206 
00207   mInterface = new QSpinBox( this );
00208   layout->addWidget( mInterface, 0, 1 );
00209 
00210   QLabel *label = new QLabel( i18n( "USB Interface:" ), this );
00211   label->setBuddy( mInterface );
00212   layout->addWidget( label, 0, 0 );
00213 
00214   layout->setRowStretch( 2, 1 );
00215 }
00216 
00217 void UsbWidget::setInterface( int interface )
00218 {
00219   mInterface->setValue( interface );
00220 }
00221 
00222 int UsbWidget::interface() const
00223 {
00224   return mInterface->value();
00225 }
00226 
00227 #include "connectionwidgets.moc"