diff --git a/src/Icons/skin/disconnected.png b/src/Icons/skin/disconnected.png new file mode 100755 index 000000000..3263c8323 Binary files /dev/null and b/src/Icons/skin/disconnected.png differ diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index c32d9d3dd..3d6e95f9f 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -1705,18 +1705,6 @@ void Bittorrent::readAlerts() { } } #endif - else if (listen_failed_alert* p = dynamic_cast(a.get())) { - // Level: fatal - int tried_port = p->endpoint.port(); - srand(time(0)); - int fallback_port = tried_port; - do { - fallback_port = rand() % 64512 + 1024; - } while(fallback_port == tried_port); - addConsoleMessage(tr("Couldn't listen on port %1, using %2 instead.").arg(QString::number(tried_port)).arg(QString::number(fallback_port)), QString::fromUtf8("red")); - setListeningPort(fallback_port); - //emit portListeningFailure(); - } /*else if (torrent_paused_alert* p = dynamic_cast(a.get())) { QTorrentHandle h(p->handle); qDebug("Received a torrent_paused_alert for %s", h.hash().toLocal8Bit().data()); diff --git a/src/icons.qrc b/src/icons.qrc index 820256380..c4ebd12bf 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -60,6 +60,7 @@ Icons/skin/exit.png Icons/skin/delete_all.png Icons/skin/splash.png + Icons/skin/disconnected.png Icons/skin/decrease.png Icons/skin/uploading.png Icons/skin/filterall.png diff --git a/src/statusbar.h b/src/statusbar.h index 0eaf2b713..006a8f11f 100644 --- a/src/statusbar.h +++ b/src/statusbar.h @@ -142,13 +142,18 @@ public slots: void refreshStatusBar() { // Update connection status session_status sessionStatus = BTSession->getSessionStatus(); - if(sessionStatus.has_incoming_connections) { - // Connection OK - connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/connected.png"))); - connecStatusLblIcon->setToolTip(QString::fromUtf8("")+tr("Connection Status:")+QString::fromUtf8("
")+tr("Online")); - }else{ - connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/firewalled.png"))); - connecStatusLblIcon->setToolTip(QString::fromUtf8("")+tr("Connection status:")+QString::fromUtf8("
")+QString::fromUtf8("")+tr("No direct connections. This may indicate network configuration problems.")+QString::fromUtf8("")); + if(!BTSession->getSession()->is_listening()) { + connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/disconnected.png"))); + connecStatusLblIcon->setToolTip(QString::fromUtf8("")+tr("Connection Status:")+QString::fromUtf8("
")+tr("Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections.")); + } else { + if(sessionStatus.has_incoming_connections) { + // Connection OK + connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/connected.png"))); + connecStatusLblIcon->setToolTip(QString::fromUtf8("")+tr("Connection Status:")+QString::fromUtf8("
")+tr("Online")); + }else{ + connecStatusLblIcon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/skin/firewalled.png"))); + connecStatusLblIcon->setToolTip(QString::fromUtf8("")+tr("Connection status:")+QString::fromUtf8("
")+QString::fromUtf8("")+tr("No direct connections. This may indicate network configuration problems.")+QString::fromUtf8("")); + } } // Update Number of DHT nodes if(BTSession->isDHTEnabled()) {