diff --git a/src/executionlog.cpp b/src/executionlog.cpp index 62112fee3..900ad1c09 100644 --- a/src/executionlog.cpp +++ b/src/executionlog.cpp @@ -28,6 +28,8 @@ * Contact : chris@qbittorrent.org */ +#include +#include #include "executionlog.h" #include "ui_executionlog.h" #include "qbtsession.h" @@ -40,9 +42,13 @@ ExecutionLog::ExecutionLog(QWidget *parent) : ui->setupUi(this); ui->tabConsole->setTabIcon(0, IconProvider::instance()->getIcon("view-calendar-journal")); ui->tabConsole->setTabIcon(1, IconProvider::instance()->getIcon("view-filter")); - ui->textConsole->setHtml(QBtSession::instance()->getConsoleMessages().join("
")); + const QStringList log_msgs = QBtSession::instance()->getConsoleMessages(); + foreach(const QString& msg, log_msgs) + addLogMessage(msg); + const QStringList ban_msgs = QBtSession::instance()->getPeerBanMessages(); + foreach(const QString& msg, ban_msgs) + addBanMessage(msg); connect(QBtSession::instance(), SIGNAL(newConsoleMessage(QString)), SLOT(addLogMessage(QString))); - ui->textBannedPeers->setHtml(QBtSession::instance()->getPeerBanMessages().join("
")); connect(QBtSession::instance(), SIGNAL(newBanMessage(QString)), SLOT(addBanMessage(QString))); } @@ -53,10 +59,24 @@ ExecutionLog::~ExecutionLog() void ExecutionLog::addLogMessage(const QString &msg) { - ui->textConsole->setHtml(msg+ui->textConsole->toHtml()); + QListWidgetItem *item = new QListWidgetItem; + QLabel *lbl = new QLabel(msg); + lbl->setContentsMargins(4, 2, 4, 2); + item->setSizeHint(lbl->sizeHint()); + ui->logList->insertItem(0, item); + ui->logList->setItemWidget(item, lbl); + if(ui->logList->count() > MAX_LOG_MESSAGES) + delete ui->logList->takeItem(ui->logList->count()-1); } void ExecutionLog::addBanMessage(const QString &msg) { - ui->textBannedPeers->setHtml(msg+ui->textBannedPeers->toHtml()); + QListWidgetItem *item = new QListWidgetItem; + QLabel *lbl = new QLabel(msg); + lbl->setContentsMargins(4, 2, 4, 2); + item->setSizeHint(lbl->sizeHint()); + ui->banList->insertItem(0, item); + ui->banList->setItemWidget(item, lbl); + if(ui->banList->count() > MAX_LOG_MESSAGES) + delete ui->banList->takeItem(ui->banList->count()-1); } diff --git a/src/executionlog.ui b/src/executionlog.ui index 9e8e05b6f..e17e1e435 100644 --- a/src/executionlog.ui +++ b/src/executionlog.ui @@ -28,7 +28,11 @@ - + + + true + + @@ -38,7 +42,11 @@ - + + + true + + diff --git a/src/qtlibtorrent/qbtsession.cpp b/src/qtlibtorrent/qbtsession.cpp index 016ee6add..396c3d963 100644 --- a/src/qtlibtorrent/qbtsession.cpp +++ b/src/qtlibtorrent/qbtsession.cpp @@ -1692,25 +1692,25 @@ void QBtSession::addConsoleMessage(QString msg, QString) { emit newConsoleMessage(QDateTime::currentDateTime().toString("dd/MM/yyyy hh:mm:ss") + " - " + msg); #else void QBtSession::addConsoleMessage(QString msg, QColor color) { - if(consoleMessages.size() > 100) { - consoleMessages.removeLast(); + if(consoleMessages.size() > MAX_LOG_MESSAGES) { + consoleMessages.removeFirst(); } msg = ""+ QDateTime::currentDateTime().toString(QString::fromUtf8("dd/MM/yyyy hh:mm:ss")) + " - " + msg + ""; - consoleMessages.prepend(msg); + consoleMessages.append(msg); emit newConsoleMessage(msg); #endif } void QBtSession::addPeerBanMessage(QString ip, bool from_ipfilter) { - if(peerBanMessages.size() > 100) { - peerBanMessages.removeLast(); + if(peerBanMessages.size() > MAX_LOG_MESSAGES) { + peerBanMessages.removeFirst(); } QString msg; if(from_ipfilter) msg = "" + QDateTime::currentDateTime().toString(QString::fromUtf8("dd/MM/yyyy hh:mm:ss")) + " - " + tr("%1 was blocked due to your IP filter", "x.y.z.w was blocked").arg(ip); else msg = "" + QDateTime::currentDateTime().toString(QString::fromUtf8("dd/MM/yyyy hh:mm:ss")) + " - " + tr("%1 was banned due to corrupt pieces", "x.y.z.w was banned").arg(ip); - peerBanMessages.prepend(msg); + peerBanMessages.append(msg); emit newBanMessage(msg); } diff --git a/src/qtlibtorrent/qbtsession.h b/src/qtlibtorrent/qbtsession.h index 079d618b4..650a58566 100644 --- a/src/qtlibtorrent/qbtsession.h +++ b/src/qtlibtorrent/qbtsession.h @@ -60,6 +60,8 @@ class ScanFoldersModel; class TorrentSpeedMonitor; class DNSUpdater; +const int MAX_LOG_MESSAGES = 100; + class QBtSession : public QObject { Q_OBJECT Q_DISABLE_COPY(QBtSession)