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/sms/smseditaccountwidget.cpp

138 lines
4.5 KiB

/* *************************************************************************
* copyright: (C) 2003 Richard L<EFBFBD>rk<EFBFBD>ng <nouseforaname@home.se> *
* copyright: (C) 2003 Gav Wood <gav@kde.org> *
*************************************************************************
*/
/* *************************************************************************
* *
* This program 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 <tqvgroupbox.h>
#include <tqlayout.h>
#include <tqcombobox.h>
#include <tqpushbutton.h>
#include <tqlineedit.h>
#include <tqcheckbox.h>
#include <tqradiobutton.h>
#include <tdeconfigbase.h>
#include <tdelocale.h>
#include <tdemessagebox.h>
#include <krestrictedline.h>
#include "kopeteuiglobal.h"
#include "smseditaccountwidget.h"
#include "smsactprefs.h"
#include "serviceloader.h"
#include "smsprotocol.h"
#include "smsaccount.h"
SMSEditAccountWidget::SMSEditAccountWidget(SMSProtocol *protocol, Kopete::Account *account, TQWidget *parent, const char */*name*/)
: TQWidget(parent), KopeteEditAccountWidget(account)
{
TQVBoxLayout *l = new TQVBoxLayout(this, TQBoxLayout::Down);
preferencesDialog = new smsActPrefsUI(this);
l->addWidget(preferencesDialog);
service = 0L;
configWidget = 0L;
middleFrameLayout = 0L;
m_protocol = protocol;
TQString sName;
if (account)
{
preferencesDialog->accountId->setText(account->accountId());
//Disable changing the account ID for now
//FIXME: Remove this when we can safely change the account ID (Matt)
preferencesDialog->accountId->setDisabled(true);
sName = account->configGroup()->readEntry("ServiceName", TQString());
preferencesDialog->subEnable->setChecked(account->configGroup()->readBoolEntry("SubEnable", false));
preferencesDialog->subCode->setText(account->configGroup()->readEntry("SubCode", TQString()));
preferencesDialog->ifMessageTooLong->setCurrentItem(SMSMsgAction(account->configGroup()->readNumEntry("MsgAction", 0)));
}
preferencesDialog->serviceName->insertStringList(ServiceLoader::services());
connect (preferencesDialog->serviceName, TQT_SIGNAL(activated(const TQString &)),
this, TQT_SLOT(setServicePreferences(const TQString &)));
connect (preferencesDialog->descButton, TQT_SIGNAL(clicked()),
this, TQT_SLOT(showDescription()));
for (int i=0; i < preferencesDialog->serviceName->count(); i++)
{
if (preferencesDialog->serviceName->text(i) == sName)
{
preferencesDialog->serviceName->setCurrentItem(i);
break;
}
}
setServicePreferences(preferencesDialog->serviceName->currentText());
}
SMSEditAccountWidget::~SMSEditAccountWidget()
{
delete service;
}
bool SMSEditAccountWidget::validateData()
{
return true;
}
Kopete::Account* SMSEditAccountWidget::apply()
{
if (!account())
setAccount( new SMSAccount( m_protocol, preferencesDialog->accountId->text() ) );
if (service)
service->setAccount(account());
TDEConfigGroup *c = account()->configGroup();
c->writeEntry("ServiceName", preferencesDialog->serviceName->currentText());
c->writeEntry("SubEnable", preferencesDialog->subEnable->isChecked() ? "true" : "false");
c->writeEntry("SubCode", preferencesDialog->subCode->text());
c->writeEntry("MsgAction", preferencesDialog->ifMessageTooLong->currentItem());
emit saved();
return account();
}
void SMSEditAccountWidget::setServicePreferences(const TQString& serviceName)
{
delete service;
delete configWidget;
service = ServiceLoader::loadService(serviceName, account());
if (service == 0L)
return;
connect (this, TQT_SIGNAL(saved()), service, TQT_SLOT(savePreferences()));
delete middleFrameLayout;
middleFrameLayout = new TQGridLayout(preferencesDialog->middleFrame, 1, 2, 0, 6, "middleFrameLayout");
service->setWidgetContainer(preferencesDialog->middleFrame, middleFrameLayout);
}
void SMSEditAccountWidget::showDescription()
{
SMSService* s = ServiceLoader::loadService(preferencesDialog->serviceName->currentText(), 0L);
TQString d = s->description();
KMessageBox::information(Kopete::UI::Global::mainWidget(), d, i18n("Description"));
}
#include "smseditaccountwidget.moc"