diff --git a/gui/gui.pro b/gui/gui.pro
index 3e1de7f02..e4215cfe1 100644
--- a/gui/gui.pro
+++ b/gui/gui.pro
@@ -26,7 +26,8 @@ FORMS = main.ui \
settings.ui \
file.ui \
projectfile.ui \
- about.ui
+ about.ui \
+ logview.ui
TRANSLATIONS = cppcheck_fi.ts \
cppcheck_nl.ts \
@@ -60,7 +61,9 @@ HEADERS += mainwindow.h \
txtreport.h \
xmlreport.h \
translationhandler.h \
- csvreport.h
+ csvreport.h \
+ logview.h
+
SOURCES += main.cpp \
mainwindow.cpp\
checkthread.cpp \
@@ -81,7 +84,8 @@ SOURCES += main.cpp \
txtreport.cpp \
xmlreport.cpp \
translationhandler.cpp \
- csvreport.cpp
+ csvreport.cpp \
+ logview.cpp
win32 {
RC_FILE = cppcheck-gui.rc
diff --git a/gui/logview.cpp b/gui/logview.cpp
new file mode 100644
index 000000000..88b064684
--- /dev/null
+++ b/gui/logview.cpp
@@ -0,0 +1,30 @@
+/*
+ * Cppcheck - A tool for static C/C++ code analysis
+ * Copyright (C) 2007-2010 Daniel Marjamäki and Cppcheck team.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "logview.h"
+
+LogView::LogView(QWidget *parent)
+{
+ mUI.setupUi(this);
+ setWindowFlags(Qt::Tool);
+}
+
+void LogView::AppendLine(const QString &line)
+{
+ mUI.mLogEdit->appendPlainText(line);
+}
diff --git a/gui/logview.h b/gui/logview.h
new file mode 100644
index 000000000..aa5b921f0
--- /dev/null
+++ b/gui/logview.h
@@ -0,0 +1,51 @@
+/*
+ * Cppcheck - A tool for static C/C++ code analysis
+ * Copyright (C) 2007-2010 Daniel Marjamäki and Cppcheck team.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef LOGVIEW_H
+#define LOGVIEW_H
+
+#include
+#include "ui_logview.h"
+
+/// @addtogroup GUI
+/// @{
+
+/**
+* @brief A tool window that shows checking log.
+*
+*/
+class LogView : public QWidget
+{
+ Q_OBJECT
+public:
+ LogView(QWidget *parent = 0);
+
+ /**
+ * @brief Append new log file to view.
+ * @param line String to add.
+ *
+ */
+ void AppendLine(const QString &line);
+
+private:
+ Ui::LogView mUI;
+};
+
+/// @}
+
+#endif // LOGVIEW_H
diff --git a/gui/logview.ui b/gui/logview.ui
new file mode 100644
index 000000000..8c733213a
--- /dev/null
+++ b/gui/logview.ui
@@ -0,0 +1,34 @@
+
+
+ LogView
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ Qt::NoContextMenu
+
+
+ Checking Log
+
+
+ -
+
+
+ false
+
+
+ true
+
+
+
+
+
+
+
+
diff --git a/gui/main.ui b/gui/main.ui
index 939106b55..72f62b145 100644
--- a/gui/main.ui
+++ b/gui/main.ui
@@ -100,6 +100,7 @@
+
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index 159327950..5202ee49b 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -33,6 +33,7 @@
#include "projectfile.h"
#include "project.h"
#include "report.h"
+#include "logview.h"
#include "../lib/filelister.h"
// HTMLHelp is only available in Windows
@@ -45,12 +46,14 @@ MainWindow::MainWindow() :
mSettings(new QSettings("Cppcheck", "Cppcheck-GUI", this)),
mApplications(new ApplicationList(this)),
mTranslation(new TranslationHandler(this)),
- mLanguages(new QActionGroup(this))
+ mLanguages(new QActionGroup(this)),
+ mLogView(NULL)
{
mUI.setupUi(this);
mUI.mResults->Initialize(mSettings, mApplications);
mThread = new ThreadHandler(this);
+ mLogView = new LogView(this);
connect(mUI.mActionQuit, SIGNAL(triggered()), this, SLOT(close()));
connect(mUI.mActionCheckFiles, SIGNAL(triggered()), this, SLOT(CheckFiles()));
@@ -65,6 +68,7 @@ MainWindow::MainWindow() :
connect(mUI.mActionUncheckAll, SIGNAL(triggered()), this, SLOT(UncheckAll()));
connect(mUI.mActionCollapseAll, SIGNAL(triggered()), mUI.mResults, SLOT(CollapseAllResults()));
connect(mUI.mActionExpandAll, SIGNAL(triggered()), mUI.mResults, SLOT(ExpandAllResults()));
+ connect(mUI.mActionViewLog, SIGNAL(triggered()), this, SLOT(ShowLogView()));
connect(mUI.mActionRecheck, SIGNAL(triggered()), this, SLOT(ReCheck()));
@@ -114,6 +118,7 @@ MainWindow::MainWindow() :
MainWindow::~MainWindow()
{
+ delete mLogView;
}
void MainWindow::CreateLanguageMenuItems()
@@ -731,3 +736,21 @@ void MainWindow::NewProjectFile()
prj.Edit();
}
}
+
+void MainWindow::ShowLogView()
+{
+ if (mLogView == NULL)
+ mLogView = new LogView(this);
+
+ mLogView->show();
+ if (!mLogView->isActiveWindow())
+ mLogView->activateWindow();
+}
+
+void MainWindow::Log(const QString &logline)
+{
+ if (mLogView)
+ {
+ mLogView->AppendLine(logline);
+ }
+}
diff --git a/gui/mainwindow.h b/gui/mainwindow.h
index 1c8cae8b2..f37cc9b67 100644
--- a/gui/mainwindow.h
+++ b/gui/mainwindow.h
@@ -32,6 +32,7 @@
#include "ui_main.h"
class ThreadHandler;
+class LogView;
/// @addtogroup GUI
/// @{
@@ -143,6 +144,12 @@ public slots:
*/
void OpenProjectFile();
+ /**
+ * @brief Slot for showing the log view.
+ *
+ */
+ void ShowLogView();
+
protected slots:
/**
@@ -190,6 +197,12 @@ protected slots:
*/
void OpenHelpContents();
+ /**
+ * @brief Add new line to log.
+ *
+ */
+ void Log(const QString &logline);
+
protected:
/**
@@ -325,6 +338,11 @@ protected:
*/
QString mCurrentDirectory;
+ /**
+ * @brief Log view..
+ */
+ LogView *mLogView;
+
};
/// @}
#endif // MAINWINDOW_H
diff --git a/gui/threadhandler.cpp b/gui/threadhandler.cpp
index 7ea918437..9b1bca96f 100644
--- a/gui/threadhandler.cpp
+++ b/gui/threadhandler.cpp
@@ -144,6 +144,8 @@ void ThreadHandler::Initialize(ResultsView *view)
connect(&mResults, SIGNAL(Error(const ErrorItem &)),
view, SLOT(Error(const ErrorItem &)));
+ connect(&mResults, SIGNAL(Log(const QString &)),
+ parent(), SLOT(Log(const QString &)));
}
void ThreadHandler::LoadSettings(QSettings &settings)
diff --git a/gui/threadresult.cpp b/gui/threadresult.cpp
index 9a48be25c..7e933d64f 100644
--- a/gui/threadresult.cpp
+++ b/gui/threadresult.cpp
@@ -33,7 +33,7 @@ ThreadResult::~ThreadResult()
void ThreadResult::reportOut(const std::string &outmsg)
{
- Q_UNUSED(outmsg);
+ emit Log(QString::fromStdString(outmsg));
}
void ThreadResult::FileChecked(const QString &file)
diff --git a/gui/threadresult.h b/gui/threadresult.h
index 7e6b1a618..80133a90e 100644
--- a/gui/threadresult.h
+++ b/gui/threadresult.h
@@ -93,6 +93,13 @@ signals:
*/
void Error(const ErrorItem &item);
+ /**
+ * @brief Signal of a new log message
+ *
+ * @param logline Log line
+ */
+ void Log(const QString &logline);
+
protected:
/**