Today in IRC, someone suggested that it should be easier for gTalk users to set up their account in Kopete.
Enclosed is a patch for this. This method can be extended beyond just gmail.com addresses though. Here is how it works: QMap <QString, JabberWellKnownServer> is a mapping of some well known addresses (ex"@gmail.com") to well known setting (enable SSL, server, etc). It can be populated in the constructor of EditAccountWidget: wellKnownServers.insert("gmail.com", JabberWellKnownServer(true, true, true, "talk.google.com", 5223)); Now, when the jabber ID changes, we query this object for the configuration, and, if it fails, we use the default values (this shouldn't affect kopete's behaviour in any way to the user). JabberWellKnownServer values = wellKnownServers.value(newServer, JabberWellKnownServer(newServer, cbUseSSL->isChecked())); Please tell me if I can commit this -- Tejas Dinkar http://gja.in
diff --git a/kopete/protocols/jabber/ui/jabbereditaccountwidget.cpp b/kopete/protocols/jabber/ui/jabbereditaccountwidget.cpp index 31e69b5..87fd0dd 100644 --- a/kopete/protocols/jabber/ui/jabbereditaccountwidget.cpp +++ b/kopete/protocols/jabber/ui/jabbereditaccountwidget.cpp @@ -24,6 +24,7 @@ #include <qspinbox.h> #include <q3combobox.h> #include <qlabel.h> +#include <QMap> #include <kconfig.h> #include <kmessagebox.h> @@ -52,6 +53,33 @@ #include "alsaio.h" #endif +struct JabberWellKnownServer { + bool sslToggled; + bool allowPlainTextPassword; + bool override; + QString server; + int port; + + JabberWellKnownServer(bool asslToggled, bool aallowPlainTextPassword, bool aoverride, QString aserver, int aport) + { + sslToggled = asslToggled; + allowPlainTextPassword = aallowPlainTextPassword; + override = aoverride; + server = aserver; + port = aport; + } + + JabberWellKnownServer(const QString &s, bool asslToggled = false) + { + JabberWellKnownServer(asslToggled, true, false, s, 5222); + } +}; + +// Use wellKnownServers to query a username for a well known server +// ex, @gmail.com +// Populate this in the constructor please +QMap <QString, JabberWellKnownServer> wellKnownServers; + JabberEditAccountWidget::JabberEditAccountWidget (JabberProtocol * proto, JabberAccount * ident, QWidget * parent) : QWidget(parent), DlgJabberEditAccountWidget(), KopeteEditAccountWidget (ident) { @@ -82,6 +110,9 @@ JabberEditAccountWidget::JabberEditAccountWidget (JabberProtocol * proto, Jabber } #endif + // Add all the Well Known Servers + wellKnownServers.insert("gmail.com", JabberWellKnownServer(true, true, true, "talk.google.com", 5223)); + if (account()) { // we are working with an existing account @@ -315,13 +346,16 @@ bool JabberEditAccountWidget::validateData () void JabberEditAccountWidget::updateServerField () { + QString newServer = mID->text().section("@", 1); + JabberWellKnownServer values = wellKnownServers.value(newServer, JabberWellKnownServer(newServer, cbUseSSL->isChecked())); + if(!cbCustomServer->isChecked()) { - QString newServer = mID->text().section("@", 1); - mPort->setValue(5222); + mPort->setValue(values.port); // check if ssl is enabled and set the port correctly - sslToggled(cbUseSSL->isChecked()); - mServer->setText(newServer); + cbUseSSL->setChecked(values.sslToggled); + sslToggled(values.sslToggled); + mServer->setText(values.server); labelServer->setEnabled(false); mServer->setEnabled(false); labelPort->setEnabled(false);
_______________________________________________ kopete-devel mailing list kopete-devel@kde.org https://mail.kde.org/mailman/listinfo/kopete-devel