00001
#include <qcombobox.h>
00002
#include <qlabel.h>
00003
#include <qlineedit.h>
00004
00005
#include <kapplication.h>
00006
#include <klocale.h>
00007
00008
#include "configwidget.h"
00009
00010
using namespace Vr3;
00011
00012
namespace {
00013
void setCurrent(
const QString& str,
QComboBox* box,
bool insert =
true ) {
00014
if (str.isEmpty() )
return;
00015 uint b = box->count();
00016
for ( uint i = 0; i < b; i++ ) {
00017
if ( box->text(i) == str ) {
00018 box->setCurrentItem(i );
00019
return;
00020 }
00021 }
00022
if (!insert )
return;
00023
00024 box->insertItem( str );
00025 box->setCurrentItem( b );
00026 }
00027 }
00028
00029 ConfigWidget::ConfigWidget(
const KSync::Kapabilities& cap,
00030
QWidget* parent,
const char* name )
00031 : KSync::
ConfigWidget( cap, parent, name ) {
00032 initUI();
00033
setCapabilities( cap );
00034 }
00035 ConfigWidget::ConfigWidget(
QWidget* parent,
const char* name )
00036 : KSync::
ConfigWidget( parent, name ){
00037 initUI();
00038 }
00039
ConfigWidget::~ConfigWidget() {
00040 }
00041
void ConfigWidget::initUI() {
00042 m_lay =
new QGridLayout(
this, 2, 5 );
00043 m_lay->addColSpacing( 3, 20 );
00044
00045
00046
QLabel* label =
new QLabel(
this);
00047 label->setText(
"<qt><h1>Agenda Vr3 Konnector</h1></qt>");
00048
00049 m_lblIP =
new QLabel(
this );
00050 m_lblIP->setText(i18n(
"IP Address:") );
00051 m_cmbIP =
new QComboBox(
this );
00052 m_cmbIP->setEditable(
true);
00053
00054 m_lblName =
new QLabel(
this );
00055 m_lblName->setText(i18n(
"Name:") );
00056 m_lneName =
new QLineEdit(
this );
00057
00058 m_lay->addMultiCellWidget( label, 0, 0, 0, 2, AlignLeft );
00059
00060 m_lay->addWidget( m_lblIP, 1, 0 );
00061 m_lay->addWidget( m_cmbIP, 1, 1 );
00062
00063 m_lay->addWidget( m_lblName, 1, 3 );
00064 m_lay->addWidget( m_lneName, 1, 4 );
00065 }
00066
00067 KSync::Kapabilities
ConfigWidget::capabilities()const {
00068 KSync::Kapabilities caps;
00069
00070 caps.setSupportMetaSyncing(
true );
00071 caps.setSupportsPushSync(
true );
00072 caps.setNeedsConnection(
true );
00073 caps.setSupportsListDir(
true );
00074 caps.setNeedsIPs(
true );
00075 caps.setNeedsSrcIP(
false );
00076 caps.setNeedsDestIP(
true );
00077 caps.setAutoHandle(
false );
00078 caps.setNeedAuthentication(
false );
00079 caps.setNeedsModelName(
true );
00080
00081 caps.setDestIP( m_cmbIP->currentText() );
00082 caps.setModelName( name() );
00083
00084
return caps;
00085 }
00086
00087
void ConfigWidget::setCapabilities(
const KSync::Kapabilities& caps) {
00088 setCurrent( caps.destIP(), m_cmbIP );
00089 m_lneName->setText( caps.modelName() );
00090 m_lneName->setEnabled(
false );
00091 }
00092
00093
QString ConfigWidget::name()const {
00094
return m_lneName->text().isEmpty() ?
"AgendaVr3" + kapp->randomString(5) : m_lneName->text();
00095 }
00096
00097
00098
#include "configwidget.moc"