qtopiaconfig.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "qtopiaconfig.h"
00024
00025 #include "qtopiakonnector.h"
00026
00027 #include <kapplication.h>
00028 #include <kdebug.h>
00029 #include <klocale.h>
00030 #include <kdialog.h>
00031
00032 #include <qcombobox.h>
00033 #include <qlabel.h>
00034
00035 using namespace OpieHelper;
00036
00037 namespace {
00038
00039 void setCurrent( const QString &str, QComboBox *box, bool insert = true )
00040 {
00041 if ( str.isEmpty() ) return;
00042 uint b = box->count();
00043 for ( uint i = 0; i < b; i++ ) {
00044 if ( box->text(i) == str ) {
00045 box->setCurrentItem(i );
00046 return;
00047 }
00048 }
00049 if ( !insert ) return;
00050
00051 box->insertItem( str );
00052 box->setCurrentItem( b );
00053 }
00054
00055 }
00056
00057
00058 QtopiaConfig::QtopiaConfig( QWidget *parent, const char *name )
00059 : KRES::ConfigWidget( parent, name )
00060 {
00061 initUI();
00062 }
00063
00064 QtopiaConfig::~QtopiaConfig()
00065 {
00066 }
00067
00068 void QtopiaConfig::loadSettings( KRES::Resource *resource )
00069 {
00070 KSync::QtopiaKonnector *k =
00071 dynamic_cast<KSync::QtopiaKonnector *>( resource );
00072 if ( !k ) {
00073 kdError() << "QtopiConfig::loadSettings(): Wrong Konnector type." << endl;
00074 return;
00075 }
00076
00077 setCurrent( k->userName(), m_cmbUser );
00078 setCurrent( k->password(), m_cmbPass );
00079 setCurrent( k->destinationIP(), m_cmbIP );
00080 setCurrent( k->model(), m_cmbDev, false );
00081 if ( m_cmbDev->currentText() == QString::fromLatin1("Sharp Zaurus ROM") )
00082 m_name->setText( k->modelName() );
00083
00084 slotTextChanged( m_cmbDev->currentText() );
00085 }
00086
00087 void QtopiaConfig::saveSettings( KRES::Resource *resource )
00088 {
00089 KSync::QtopiaKonnector *k =
00090 dynamic_cast<KSync::QtopiaKonnector *>( resource );
00091 if ( !k ) {
00092 kdError() << "QtopiConfig::loadSettings(): Wrong Konnector type." << endl;
00093 return;
00094 }
00095
00096 k->setDestinationIP( m_cmbIP->currentText() );
00097 k->setUserName( m_cmbUser->currentText() );
00098 k->setPassword( m_cmbPass->currentText() );
00099 k->setModel( m_cmbDev->currentText() );
00100 k->setModelName( name() );
00101 }
00102
00103 QString QtopiaConfig::name() const
00104 {
00105 return m_name->text().isEmpty() ? "Zaurus" + kapp->randomString( 5 ) :
00106 m_name->text();
00107 }
00108
00109 void QtopiaConfig::initUI()
00110 {
00111 m_layout = new QGridLayout( this, 4, 5 );
00112 m_layout->setSpacing( KDialog::spacingHint() );
00113
00114 m_lblUser = new QLabel( i18n("User:"), this );
00115
00116 m_cmbUser = new QComboBox(this);
00117 m_cmbUser->setEditable( true );
00118 m_cmbUser->insertItem( "root");
00119
00120 m_lblPass = new QLabel( i18n("Password:"), this );
00121
00122 m_cmbPass = new QComboBox(this);
00123 m_cmbPass->setEditable( true );
00124 m_cmbPass->insertItem("Qtopia");
00125
00126 m_lblName = new QLabel( i18n("Name:"), this );
00127
00128 m_name = new QLineEdit(this);
00129 m_name->setEnabled( false );
00130
00131 m_lblIP = new QLabel( i18n("Destination address:"), this );
00132
00133 m_cmbIP = new QComboBox(this);
00134 m_cmbIP->setEditable( true );
00135 m_cmbIP->insertItem("1.1.1.1", 0);
00136 m_cmbIP->insertItem("192.168.129.201", 1);
00137
00138 m_lblDev = new QLabel( i18n("Distribution:"), this );
00139
00140 m_cmbDev = new QComboBox(this);
00141 m_cmbDev->insertItem("Sharp Zaurus ROM");
00142 m_cmbDev->insertItem("Opie and Qtopia1.6", 0 );
00143 connect( m_cmbDev, SIGNAL( activated( const QString & ) ),
00144 SLOT( slotTextChanged( const QString & ) ) );
00145
00146 m_layout->addWidget( m_lblDev, 0, 0 );
00147 m_layout->addWidget( m_cmbDev, 0, 1 );
00148
00149 m_layout->addWidget( m_lblUser, 1, 0 );
00150 m_layout->addWidget( m_cmbUser, 1, 1 );
00151
00152 m_layout->addWidget( m_lblPass, 1, 2 );
00153 m_layout->addWidget( m_cmbPass, 1, 3 );
00154
00155 m_layout->addWidget( m_lblIP, 2, 0 );
00156 m_layout->addWidget( m_cmbIP, 2, 1 );
00157
00158 m_layout->addWidget( m_lblName, 2, 2 );
00159 m_layout->addWidget( m_name, 2, 3 );
00160 }
00161
00162 void QtopiaConfig::slotTextChanged( const QString &str )
00163 {
00164 bool b = ( str == QString::fromLatin1("Sharp Zaurus ROM") );
00165 kdDebug(5225) << "Text Changed to " << str << " " << b <<endl;
00166
00167 m_name->setEnabled( b );
00168 m_lblName->setEnabled( b );
00169
00170 m_cmbUser->setEnabled( !b );
00171 m_lblUser->setEnabled( !b );
00172
00173 m_cmbPass->setEnabled( !b );
00174 m_lblPass->setEnabled( !b );
00175 }
00176
00177 #include "qtopiaconfig.moc"
This file is part of the documentation for kitchensync Library Version 3.3.2.