diff --git a/gui/erroritem.cpp b/gui/erroritem.cpp index bb2eb219b..280617494 100644 --- a/gui/erroritem.cpp +++ b/gui/erroritem.cpp @@ -37,3 +37,12 @@ ErrorItem::ErrorItem(const ErrorLine &line) severity = line.severity; msg = line.msg; } + +QString ErrorItem::ToString() const +{ + QString str = file + " - " + id + " - " + severity +"\n"; + str += " " + msg; + for (int i = 0; i < files.size(); i++) + str += " " + files[i] + ": " + lines[i] + "\n"; + return str; +} diff --git a/gui/erroritem.h b/gui/erroritem.h index 692e6d888..281f01bfb 100644 --- a/gui/erroritem.h +++ b/gui/erroritem.h @@ -39,6 +39,12 @@ public: ErrorItem(const ErrorLine &line); ~ErrorItem() { } + /** + * @brief Convert error item to string. + * @return Error item as string. + */ + QString ToString() const; + QString file; QStringList files; QList lines; diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 7a7b9cea0..df9c96395 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -819,6 +819,14 @@ void MainWindow::Log(const QString &logline) } } +void MainWindow::DebugError(const ErrorItem &item) +{ + if (mLogView) + { + mLogView->AppendLine(item.ToString()); + } +} + void MainWindow::EnableProjectActions(bool enable) { mUI.mActionCloseProjectFile->setEnabled(enable); diff --git a/gui/mainwindow.h b/gui/mainwindow.h index b166f71ae..23daa9a85 100644 --- a/gui/mainwindow.h +++ b/gui/mainwindow.h @@ -36,6 +36,7 @@ class ThreadHandler; class LogView; class HelpWindow; class Project; +class ErrorItem; /// @addtogroup GUI /// @{ @@ -218,6 +219,12 @@ protected slots: */ void Log(const QString &logline); + /** + * @brief Handle new debug error. + * + */ + void DebugError(const ErrorItem &item); + protected: /** diff --git a/gui/threadhandler.cpp b/gui/threadhandler.cpp index 9b1bca96f..6a8c0196c 100644 --- a/gui/threadhandler.cpp +++ b/gui/threadhandler.cpp @@ -146,6 +146,9 @@ void ThreadHandler::Initialize(ResultsView *view) connect(&mResults, SIGNAL(Log(const QString &)), parent(), SLOT(Log(const QString &))); + + connect(&mResults, SIGNAL(Error(const ErrorItem &)), + parent(), SLOT(Error(const ErrorItem &))); } void ThreadHandler::LoadSettings(QSettings &settings) diff --git a/gui/threadresult.cpp b/gui/threadresult.cpp index ad249936b..428303d00 100644 --- a/gui/threadresult.cpp +++ b/gui/threadresult.cpp @@ -71,7 +71,10 @@ void ThreadResult::reportErr(const ErrorLogger::ErrorMessage &msg) item.msg = QString(msg._msg.c_str()); item.severity = QString::fromStdString(Severity::toString(msg._severity)); - emit Error(item); + if (msg._severity != Severity::debug) + emit Error(item); + else + emit DebugError(item); } QString ThreadResult::GetNextFile() diff --git a/gui/threadresult.h b/gui/threadresult.h index 80133a90e..978b3a118 100644 --- a/gui/threadresult.h +++ b/gui/threadresult.h @@ -100,6 +100,13 @@ signals: */ void Log(const QString &logline); + /** + * @brief Signal of a debug error + * + * @param item Error data + */ + void DebugError(const ErrorItem &item); + protected: /**