void DiagnosticsDialog::updateLogView() { QString log; log.append( QString( "TOMAHAWK DIAGNOSTICS LOG -%1 \n\n" ).arg( QDateTime::currentDateTime().toString() ) ); log.append( "TOMAHAWK-VERSION: " TOMAHAWK_VERSION "\n" ); log.append( "PLATFORM: " TOMAHAWK_SYSTEM "\n\n"); log.append( "NETWORK:\n General:\n" ); if ( Servent::instance()->visibleExternally() ) { log.append( QString( " visible: true\n" " host: %1\n" " port: %2\n" "\n" ).arg( Servent::instance()->externalAddress() ) .arg( Servent::instance()->externalPort() ) ); } else { log.append( " visible: false\n" ); } log.append( "\n\nINFOPLUGINS:\n" ); QThread* infoSystemWorkerThreadSuperClass = Tomahawk::InfoSystem::InfoSystem::instance()->workerThread(); Tomahawk::InfoSystem::InfoSystemWorkerThread* infoSystemWorkerThread = qobject_cast< Tomahawk::InfoSystem::InfoSystemWorkerThread* >(infoSystemWorkerThreadSuperClass); foreach(const Tomahawk::InfoSystem::InfoPluginPtr& plugin, infoSystemWorkerThread->worker()->plugins()) { log.append(" "); log.append( plugin->friendlyName() ); log.append("\n"); } log.append( "\n\n" ); log.append( "ACCOUNTS:\n" ); const QList< Tomahawk::source_ptr > sources = SourceList::instance()->sources( true ); const QList< Tomahawk::Accounts::Account* > accounts = Tomahawk::Accounts::AccountManager::instance()->accounts( Tomahawk::Accounts::SipType ); foreach ( Tomahawk::Accounts::Account* account, accounts ) { Q_ASSERT( account && account->sipPlugin() ); if ( !account || !account->sipPlugin() ) continue; connect( account, SIGNAL( connectionStateChanged( Tomahawk::Accounts::Account::ConnectionState ) ), SLOT( updateLogView() ), Qt::UniqueConnection ); connect( account, SIGNAL( error( int, QString ) ), SLOT( updateLogView() ), Qt::UniqueConnection ); connect( account->sipPlugin(), SIGNAL( peerOnline( QString ) ), SLOT( updateLogView() ), Qt::UniqueConnection ); connect( account->sipPlugin(), SIGNAL( peerOffline( QString ) ), SLOT( updateLogView() ), Qt::UniqueConnection ); connect( account->sipPlugin(), SIGNAL( sipInfoReceived( QString, SipInfo ) ), SLOT( updateLogView() ), Qt::UniqueConnection ); connect( account->sipPlugin(), SIGNAL( softwareVersionReceived( QString, QString ) ), SLOT( updateLogView() ), Qt::UniqueConnection ); log.append( accountLog( account ) + "\n" ); }
DiagnosticsDialog::DiagnosticsDialog( QWidget *parent ) : QDialog( parent ) , ui( new Ui::DiagnosticsDialog ) { ui->setupUi( this ); connect( ui->updateButton, SIGNAL( clicked() ), this, SLOT( updateLogView() ) ); connect( ui->clipboardButton, SIGNAL( clicked() ), this, SLOT( copyToClipboard() ) ); connect( ui->buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) ); updateLogView(); }