You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdenetwork/kopete/protocols/groupwise/ui/gweditaccountwidget.cpp

137 lines
5.1 KiB

/*
Kopete GroupWise Protocol
gweditaccountwidget.cpp - widget for adding or editing GroupWise accounts
Copyright (c) 2004 SUSE Linux AG http://www.suse.com
Based on Testbed
Copyright (c) 2003 by Will Stephenson <will@stevello.free-online.co.uk>
Kopete (c) 2002-2003 by the Kopete developers <kopete-devel@kde.org>
*************************************************************************
* *
* This library 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. *
* *
*************************************************************************
*/
#include <qcheckbox.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qspinbox.h>
#include <kapplication.h>
#include <kdebug.h>
#include <kconfig.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <kpassdlg.h>
#include "kopetepasswordedaccount.h"
#include "kopetepasswordwidget.h"
#include "gwaccountpreferences.h"
#include "gwaccount.h"
#include "gwerror.h"
#include "gwprotocol.h"
#include "gweditaccountwidget.h"
GroupWiseEditAccountWidget::GroupWiseEditAccountWidget( QWidget* parent, Kopete::Account* theAccount)
: QWidget( parent ), KopeteEditAccountWidget( theAccount )
{
kdDebug(GROUPWISE_DEBUG_GLOBAL) << k_funcinfo << endl;
m_layout = new QVBoxLayout( this );
m_preferencesDialog = new GroupWiseAccountPreferences( this );
m_layout->addWidget( m_preferencesDialog );
connect( m_preferencesDialog->m_password, SIGNAL( changed() ), this, SLOT( configChanged() ) );
connect( m_preferencesDialog->m_server, SIGNAL( textChanged( const QString & ) ), this, SLOT( configChanged() ) );
connect( m_preferencesDialog->m_port, SIGNAL( valueChanged( int ) ), this, SLOT( configChanged() ) );
if ( account() )
reOpen();
else
{
// look for a default server and port setting
KConfig *config = kapp->config();
config->setGroup("GroupWise Messenger");
m_preferencesDialog->m_server->setText( config->readEntry( "DefaultServer" ) );
m_preferencesDialog->m_port->setValue( config->readNumEntry( "DefaultPort", 8300 ) );
}
QWidget::setTabOrder( m_preferencesDialog->m_userId, m_preferencesDialog->m_password->mRemembered );
QWidget::setTabOrder( m_preferencesDialog->m_password->mRemembered, m_preferencesDialog->m_password->mPassword );
QWidget::setTabOrder( m_preferencesDialog->m_password->mPassword, m_preferencesDialog->m_autoConnect );
}
GroupWiseEditAccountWidget::~GroupWiseEditAccountWidget()
{
}
GroupWiseAccount *GroupWiseEditAccountWidget::account ()
{
Q_ASSERT( KopeteEditAccountWidget::account() );
return dynamic_cast< GroupWiseAccount *>( KopeteEditAccountWidget::account() );
}
void GroupWiseEditAccountWidget::reOpen()
{
kdDebug(GROUPWISE_DEBUG_GLOBAL) << k_funcinfo << endl;
m_preferencesDialog->m_password->load( &account()->password () );
// Kopete at least <=0.90 doesn't support changing account IDs
m_preferencesDialog->m_userId->setDisabled( true );
m_preferencesDialog->m_userId->setText( account()->accountId() );
m_preferencesDialog->m_password->load( &account()->password() );
m_preferencesDialog->m_server->setText( account()->configGroup()->readEntry( "Server") );
m_preferencesDialog->m_port->setValue( account()->configGroup()->readNumEntry( "Port" ) );
m_preferencesDialog->m_autoConnect->setChecked( account()->excludeConnect() );
m_preferencesDialog->m_alwaysAccept->setChecked( account()->configGroup()->readBoolEntry( "AlwaysAcceptInvitations" ) );
}
Kopete::Account* GroupWiseEditAccountWidget::apply()
{
kdDebug(GROUPWISE_DEBUG_GLOBAL) << k_funcinfo << endl;
if ( !account() )
setAccount( new GroupWiseAccount( GroupWiseProtocol::protocol(), m_preferencesDialog->m_userId->text() ) );
if(account()->isConnected())
{
KMessageBox::information(this,
i18n("The changes you just made will take effect next time you log in with GroupWise."),
i18n("GroupWise Settings Changed While Signed In"));
}
writeConfig();
return account();
}
bool GroupWiseEditAccountWidget::validateData()
{
return !( m_preferencesDialog->m_userId->text().isEmpty() || m_preferencesDialog->m_server->text().isEmpty() );
}
void GroupWiseEditAccountWidget::writeConfig()
{
kdDebug(GROUPWISE_DEBUG_GLOBAL) << k_funcinfo << endl;
account()->configGroup()->writeEntry( "Server", m_preferencesDialog->m_server->text() );
account()->configGroup()->writeEntry( "Port", QString::number( m_preferencesDialog->m_port->value() ) );
account()->configGroup()->writeEntry( "AlwaysAcceptInvitations",
m_preferencesDialog->m_alwaysAccept->isChecked() ? "true" : "false" );
account()->setExcludeConnect( m_preferencesDialog->m_autoConnect->isChecked() );
m_preferencesDialog->m_password->save( &account()->password() );
settings_changed = false;
}
void GroupWiseEditAccountWidget::configChanged ()
{
settings_changed = true;
}
#include "gweditaccountwidget.moc"