From 61e83c8581778e0feaf581ddfae9d49c8f42d20f Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Thu, 24 Jan 2013 03:27:40 +0100 Subject: [PATCH] Show connection erros in JobStatusView as well --- src/TomahawkWindow.cpp | 17 ----------------- src/TomahawkWindow.h | 2 -- src/libtomahawk/accounts/AccountManager.cpp | 9 ++++++++- src/libtomahawk/sip/SipStatusMessage.cpp | 14 ++++++++++++-- src/libtomahawk/sip/SipStatusMessage.h | 7 +++++-- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/TomahawkWindow.cpp b/src/TomahawkWindow.cpp index 334584767..aec607537 100644 --- a/src/TomahawkWindow.cpp +++ b/src/TomahawkWindow.cpp @@ -554,9 +554,6 @@ TomahawkWindow::setupSignals() connect( ac->getAction( "toggleMenuBar" ), SIGNAL( triggered() ), SLOT( toggleMenuBar() ) ); #endif - // - connect( AccountManager::instance(), SIGNAL( authError( Tomahawk::Accounts::Account* ) ), SLOT( onAccountError() ) ); - connect( ViewManager::instance(), SIGNAL( historyBackAvailable( bool ) ), SLOT( onHistoryBackAvailable( bool ) ) ); connect( ViewManager::instance(), SIGNAL( historyForwardAvailable( bool ) ), SLOT( onHistoryForwardAvailable( bool ) ) ); } @@ -1171,20 +1168,6 @@ TomahawkWindow::onPlaybackLoading( const Tomahawk::result_ptr& result ) } -void -TomahawkWindow::onAccountError() -{ - // TODO fix. -// onAccountDisconnected(); - - // TODO real error message from plugin kthxbbq - QMessageBox::warning( this, - tr( "Authentication Error" ), - tr( "Error connecting to SIP: Authentication failed!" ), - QMessageBox::Ok ); -} - - void TomahawkWindow::setWindowTitle( const QString& title ) { diff --git a/src/TomahawkWindow.h b/src/TomahawkWindow.h index 8050f5e4b..16517226d 100644 --- a/src/TomahawkWindow.h +++ b/src/TomahawkWindow.h @@ -109,8 +109,6 @@ public slots: void fullScreenExited(); private slots: - void onAccountError(); - void onHistoryBackAvailable( bool avail ); void onHistoryForwardAvailable( bool avail ); diff --git a/src/libtomahawk/accounts/AccountManager.cpp b/src/libtomahawk/accounts/AccountManager.cpp index 8664099e2..d0024ca60 100644 --- a/src/libtomahawk/accounts/AccountManager.cpp +++ b/src/libtomahawk/accounts/AccountManager.cpp @@ -23,6 +23,9 @@ #include "TomahawkSettings.h" #include "ResolverAccount.h" #include "utils/Logger.h" +#include "sip/SipStatusMessage.h" +#include "jobview/JobStatusView.h" +#include "jobview/JobStatusModel.h" #include #include @@ -444,12 +447,16 @@ AccountManager::onError( int code, const QString& msg ) qWarning() << "Failed to connect to SIP:" << account->accountFriendlyName() << code << msg; + SipStatusMessage* statusMessage; if ( code == Account::AuthError ) { - emit authError( account ); + statusMessage = new SipStatusMessage( SipStatusMessage::SipLoginFailure, account->accountFriendlyName() ); + JobStatusView::instance()->model()->addJob( statusMessage ); } else { + statusMessage = new SipStatusMessage(SipStatusMessage::SipConnectionFailure, account->accountFriendlyName(), msg ); + JobStatusView::instance()->model()->addJob( statusMessage ); QTimer::singleShot( 10000, account, SLOT( authenticate() ) ); } } diff --git a/src/libtomahawk/sip/SipStatusMessage.cpp b/src/libtomahawk/sip/SipStatusMessage.cpp index 6c6861760..132c678c2 100644 --- a/src/libtomahawk/sip/SipStatusMessage.cpp +++ b/src/libtomahawk/sip/SipStatusMessage.cpp @@ -23,9 +23,10 @@ #include #include -SipStatusMessage::SipStatusMessage( SipStatusMessageType statusMessageType, const QString& contactId ) +SipStatusMessage::SipStatusMessage( SipStatusMessageType statusMessageType, const QString& contactId, const QString& message ) : m_statusMessageType( statusMessageType ) , m_contactId( contactId ) + , m_message( message ) { // make this temporary for now, as soon as i know how: add ack button m_timer = new QTimer( this ); @@ -40,6 +41,7 @@ SipStatusMessage::SipStatusMessage( SipStatusMessageType statusMessageType, cons TomahawkUtils::ImageType imageType; switch( m_statusMessageType ) { + case SipLoginFailure: case SipInviteFailure: imageType = TomahawkUtils::ProcessStop; break; @@ -79,11 +81,19 @@ SipStatusMessage::mainText() const text = "Received authorization from %1"; break; + case SipLoginFailure: + text = "Could not login to %1. Please check your user credentials!"; + break; + + case SipConnectionFailure: + text = "Could not connect to %1: %2"; + break; + default: tLog() << Q_FUNC_INFO << "Not all status types handled"; Q_ASSERT(false); } - return text.arg( m_contactId ); + return text.arg( m_contactId ).arg( m_message ); } diff --git a/src/libtomahawk/sip/SipStatusMessage.h b/src/libtomahawk/sip/SipStatusMessage.h index 7e0c8cb1d..5a34cdd2a 100644 --- a/src/libtomahawk/sip/SipStatusMessage.h +++ b/src/libtomahawk/sip/SipStatusMessage.h @@ -35,10 +35,12 @@ public: { SipInviteSuccess, SipInviteFailure, - SipAuthReceived + SipAuthReceived, + SipLoginFailure, + SipConnectionFailure }; - explicit SipStatusMessage( SipStatusMessageType statusMessageType, const QString& contactId ); + explicit SipStatusMessage( SipStatusMessageType statusMessageType, const QString& contactId, const QString& message = QString() ); QString type() const { return "sipstatusmessage"; } @@ -49,6 +51,7 @@ public: private: QString m_contactId; SipStatusMessageType m_statusMessageType; + QString m_message; QHash< SipStatusMessageType, QPixmap > s_typesPixmaps;