/* 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 Kopete (c) 2002-2003 by the Kopete developers ************************************************************************* * * * 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 #include #include #include #include #include #include #include #include #include #include "kopetepasswordedaccount.h" #include "kopetepasswordwidget.h" #include "gwaccountpreferences.h" #include "gwaccount.h" #include "gwerror.h" #include "gwprotocol.h" #include "gweditaccountwidget.h" GroupWiseEditAccountWidget::GroupWiseEditAccountWidget( TQWidget* parent, Kopete::Account* theAccount) : TQWidget( parent ), KopeteEditAccountWidget( theAccount ) { kdDebug(GROUPWISE_DEBUG_GLOBAL) << k_funcinfo << endl; m_layout = new TQVBoxLayout( this ); m_preferencesDialog = new GroupWiseAccountPreferences( this ); m_layout->addWidget( m_preferencesDialog ); connect( m_preferencesDialog->m_password, TQT_SIGNAL( changed() ), this, TQT_SLOT( configChanged() ) ); connect( m_preferencesDialog->m_server, TQT_SIGNAL( textChanged( const TQString & ) ), this, TQT_SLOT( configChanged() ) ); connect( m_preferencesDialog->m_port, TQT_SIGNAL( valueChanged( int ) ), this, TQT_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 ) ); } TQWidget::setTabOrder( m_preferencesDialog->m_userId, m_preferencesDialog->m_password->mRemembered ); TQWidget::setTabOrder( m_preferencesDialog->m_password->mRemembered, m_preferencesDialog->m_password->mPassword ); TQWidget::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", TQString::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"