diff --git a/src/executionlog.cpp b/src/executionlog.cpp index 734003750..5bb9e0a64 100644 --- a/src/executionlog.cpp +++ b/src/executionlog.cpp @@ -57,6 +57,8 @@ ExecutionLog::ExecutionLog(QWidget *parent) : addBanMessage(msg); connect(QBtSession::instance(), SIGNAL(newConsoleMessage(QString)), SLOT(addLogMessage(QString))); connect(QBtSession::instance(), SIGNAL(newBanMessage(QString)), SLOT(addBanMessage(QString))); + connect(m_logList, SIGNAL(logCleared()), QBtSession::instance(), SLOT(clearConsoleMessages())); + connect(m_banList, SIGNAL(logCleared()), QBtSession::instance(), SLOT(clearPeerBanMessages())); } ExecutionLog::~ExecutionLog() diff --git a/src/loglistwidget.cpp b/src/loglistwidget.cpp index 62b904c42..dfd123e9b 100644 --- a/src/loglistwidget.cpp +++ b/src/loglistwidget.cpp @@ -45,8 +45,11 @@ LogListWidget::LogListWidget(int max_lines, QWidget *parent) : setSelectionMode(QAbstractItemView::ExtendedSelection); // Context menu QAction *copyAct = new QAction(IconProvider::instance()->getIcon("edit-copy"), tr("Copy"), this); + QAction *clearAct = new QAction(IconProvider::instance()->getIcon("edit-clear"), tr("Clear"), this); connect(copyAct, SIGNAL(triggered()), SLOT(copySelection())); + connect(clearAct, SIGNAL(triggered()), SLOT(clearLog())); addAction(copyAct); + addAction(clearAct); setContextMenuPolicy(Qt::ActionsContextMenu); } @@ -87,3 +90,8 @@ void LogListWidget::copySelection() QApplication::clipboard()->setText(strings.join("\n")); } + +void LogListWidget::clearLog() { + clear(); + emit logCleared(); +} diff --git a/src/loglistwidget.h b/src/loglistwidget.h index c22f9cd8a..b4a088394 100644 --- a/src/loglistwidget.h +++ b/src/loglistwidget.h @@ -48,6 +48,10 @@ public slots: protected slots: void copySelection(); + void clearLog(); + +signals: + void logCleared(); protected: void keyPressEvent(QKeyEvent *event); diff --git a/src/qtlibtorrent/qbtsession.h b/src/qtlibtorrent/qbtsession.h index 1ddb09b6f..02df04358 100755 --- a/src/qtlibtorrent/qbtsession.h +++ b/src/qtlibtorrent/qbtsession.h @@ -166,6 +166,8 @@ public slots: void addConsoleMessage(QString msg, QColor color=QApplication::palette().color(QPalette::WindowText)); #endif void addPeerBanMessage(QString msg, bool from_ipfilter); + void clearConsoleMessages() { consoleMessages.clear(); } + void clearPeerBanMessages() { peerBanMessages.clear(); } void processDownloadedFile(QString, QString); void addMagnetSkipAddDlg(const QString& uri, const QString& save_path = QString(), const QString& label = QString()); void addMagnetInteractive(const QString& uri);