From 643dda78dc7a0634afbd0f562dbfa10f73355969 Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Wed, 23 Jan 2013 20:56:01 +0100 Subject: [PATCH] Check for a valid xmpp id in the config widget --- src/accounts/xmpp/XmppConfigWidget.cpp | 38 +++++++++++++++++-- src/accounts/xmpp/XmppConfigWidget.h | 4 ++ .../xmpp/googlewrapper/GoogleWrapper.cpp | 1 + 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/accounts/xmpp/XmppConfigWidget.cpp b/src/accounts/xmpp/XmppConfigWidget.cpp index 36abb52ee..59c9a9f10 100644 --- a/src/accounts/xmpp/XmppConfigWidget.cpp +++ b/src/accounts/xmpp/XmppConfigWidget.cpp @@ -33,10 +33,11 @@ namespace Tomahawk namespace Accounts { -XmppConfigWidget::XmppConfigWidget( XmppAccount* account, QWidget *parent ) : - AccountConfigWidget( parent ), - m_ui( new Ui::XmppConfigWidget ), - m_account( account ) +XmppConfigWidget::XmppConfigWidget( XmppAccount* account, QWidget *parent ) + : AccountConfigWidget( parent ) + , m_ui( new Ui::XmppConfigWidget ) + , m_account( account ) + , m_disableChecksForGoogle( false ) { m_ui->setupUi( this ); @@ -109,6 +110,35 @@ XmppConfigWidget::onCheckJidExists( QString jid ) } +void +XmppConfigWidget::checkForErrors() +{ + const QString username = m_ui->xmppUsername->text().trimmed(); + const QStringList usernameParts = username.split( '@', QString::KeepEmptyParts ); + + QString errorMessage; + if( username.isEmpty() ) + { + errorMessage.append( tr( "You forgot to enter your username!" ) ); + } + + //HACK: don't check for xmpp id being an "email address" + if( !m_disableChecksForGoogle ) + { + if( usernameParts.count() != 2 || usernameParts.at( 0 ).isEmpty() || ( usernameParts.count() == 2 && usernameParts.at( 1 ).isEmpty() ) ) + { + errorMessage.append( tr( "Your Xmpp Id should look like an email address" ) ); + } + } + + if( !errorMessage.isEmpty() ) + { + errorMessage.append( tr( "\n\nExample:\nusername@jabber.org" ) ); + m_errors.append( errorMessage ); + } +} + + } } diff --git a/src/accounts/xmpp/XmppConfigWidget.h b/src/accounts/xmpp/XmppConfigWidget.h index 6ecc6ec76..7e2a5b3e2 100644 --- a/src/accounts/xmpp/XmppConfigWidget.h +++ b/src/accounts/xmpp/XmppConfigWidget.h @@ -49,6 +49,8 @@ public: void saveConfig(); + virtual void checkForErrors(); + signals: void dataError( bool exists ); @@ -59,6 +61,8 @@ private: Ui::XmppConfigWidget *m_ui; XmppAccount *m_account; + bool m_disableChecksForGoogle; + friend class GoogleWrapper; // So google wrapper can modify the labels and text }; diff --git a/src/accounts/xmpp/googlewrapper/GoogleWrapper.cpp b/src/accounts/xmpp/googlewrapper/GoogleWrapper.cpp index 705f35fd8..61a3aa3df 100644 --- a/src/accounts/xmpp/googlewrapper/GoogleWrapper.cpp +++ b/src/accounts/xmpp/googlewrapper/GoogleWrapper.cpp @@ -85,6 +85,7 @@ GoogleWrapper::GoogleWrapper ( const QString& pluginID ) : XmppAccount ( pluginID ) { XmppConfigWidget* config = static_cast< XmppConfigWidget* >( m_configWidget.data() ); + config->m_disableChecksForGoogle = true; config->m_ui->headerLabel->setText( tr( "Configure this Google Account" ) ); config->m_ui->emailLabel->setText( tr( "Google Address:" ) ); config->m_ui->xmppBlurb->setText( tr( "Enter your Google login to connect with your friends using Tomahawk!" ) );