diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bcb704366cb5e333a626c18c308c7e0448a8e69f (patch) | |
tree | f0d6ab7d78ecdd9207cf46536376b44b91a1ca71 /kopete/protocols/winpopup/wpaddcontact.cpp | |
download | tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.tar.gz tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kopete/protocols/winpopup/wpaddcontact.cpp')
-rw-r--r-- | kopete/protocols/winpopup/wpaddcontact.cpp | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/kopete/protocols/winpopup/wpaddcontact.cpp b/kopete/protocols/winpopup/wpaddcontact.cpp new file mode 100644 index 00000000..6187c644 --- /dev/null +++ b/kopete/protocols/winpopup/wpaddcontact.cpp @@ -0,0 +1,115 @@ +/*************************************************************************** + wppreferences.cpp - description + ------------------- + begin : Fri Apr 26 2002 + copyright : (C) 2002 by Gav Wood + email : gav@kde.org + + Based on code from : (C) 2002 by Duncan Mac-Vicar Prett + email : duncan@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. * + * * + ***************************************************************************/ +// QT Includes +#include <qlayout.h> + +// KDE Includes +#include <kcombobox.h> +#include <kdebug.h> +#include <kiconloader.h> +#include <kurlrequester.h> +#include <kmessagebox.h> +#include <klocale.h> + +// Kopete Includes +#include <addcontactpage.h> + +// Local Includes +#include "wpaddcontactbase.h" +#include "wpaccount.h" +#include "wpaddcontact.h" + +WPAddContact::WPAddContact(QWidget *parent, WPAccount *newAccount, const char *name) : AddContactPage(parent, name) +{ +// kdDebug(14170) << "WPAddContact::WPAddContact(<owner>, " << newAccount << ", <parent>, " << name << ")" << endl; + + (new QVBoxLayout(this))->setAutoAdd(true); + theDialog = new WPAddContactBase(this); + connect(theDialog->mHostGroup, SIGNAL(activated(const QString &)), this, SLOT(slotSelected(const QString &))); + connect(theDialog->mRefresh, SIGNAL(clicked()), this, SLOT(slotUpdateGroups())); + theDialog->show(); + + theAccount = newAccount; + + slotUpdateGroups(); + slotSelected(theDialog->mHostGroup->currentText()); +} + +WPAddContact::~WPAddContact() +{ +} + +void WPAddContact::slotUpdateGroups() +{ + kdDebug(14170) << "WPAddContact::slotUpdateGroups()" << endl; + + theDialog->mHostGroup->clear(); + QStringList Groups = theAccount->getGroups(); + QStringList::ConstIterator end = Groups.end(); + for (QStringList::ConstIterator i = Groups.begin(); i != end; i++) + theDialog->mHostGroup->insertItem(SmallIcon("network"), *i); + slotSelected(theDialog->mHostGroup->currentText()); +} + +void WPAddContact::slotSelected(const QString &Group) +{ + kdDebug(14170) << "WPAddContact::slotSelected(" << Group << ")" << endl; + + theDialog->mHostName->clear(); + QStringList Hosts = theAccount->getHosts(Group); + QString ownHost = theAccount->myself()->contactId(); + QStringList::ConstIterator end = Hosts.end(); + for (QStringList::ConstIterator i = Hosts.begin(); i != end; i++) + if (*i != ownHost) theDialog->mHostName->insertItem(SmallIcon("personal"), *i); +} + +bool WPAddContact::validateData() +{ + kdDebug(14170) << "WPAddContact::validateData()" << endl; + + QString tmpHostName = theDialog->mHostName->currentText(); + + if (tmpHostName.isEmpty()) { + KMessageBox::sorry(this, i18n("<qt>You must enter a valid hostname.</qt>"), i18n("WinPopup")); + return false; + } + + // If our own host is not allowed as contact localhost should be forbidden as well, + // additionally somehow localhost as contact crashes when receiving a message from it?? GF + if (tmpHostName.upper() == QString::fromLatin1("LOCALHOST")) { + KMessageBox::sorry(this, i18n("<qt>LOCALHOST is not allowed as contact.</qt>"), i18n("WinPopup")); + return false; + } + + return true; +} + +bool WPAddContact::apply(Kopete::Account *theAccount, Kopete::MetaContact *theMetaContact) +{ + kdDebug(14170) << "WPAddContact::apply(" << theAccount << ", " << theMetaContact << ")" << endl; + + // TODO: make the nickname an option + return theAccount->addContact(theDialog->mHostName->currentText(), theMetaContact, Kopete::Account::ChangeKABC ); +} + +#include "wpaddcontact.moc" + +// vim: set noet ts=4 sts=4 sw=4: +// kate: tab-width 4; indent-width 4; replace-trailing-space-save on; |