* @brief Implementation of the LogView module
* @author Enar Vaikene
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
#include <Common/Globals>
#include <Common/iLogger>
#include <Common/iApp>
+#include <Common/iRegistry>
+#include <SdiWindow/iSdiWindow>
-#include <QtGui>
+#include <QtWidgets>
+#include <QXmlStreamReader>
using namespace eVaf;
// Return the message for the display role
case Qt::DisplayRole: {
return mData.at(index.row()).simplified;
- break;
}
// Change color for different message types
switch (s) {
case Common::iLogger::Info:
return QBrush(QColor(Qt::blue));
- break;
case Common::iLogger::Warning:
return QBrush(QColor(Qt::black));
- break;
case Common::iLogger::Error:
case Common::iLogger::Fatal:
return QBrush(QColor(Qt::red));
- break;
default:
return QVariant();
}
- break;
}
} // switch (role)
return true;
}
-char const * const Model::severityText(Common::iLogger::Severity s) const
+char const * Model::severityText(Common::iLogger::Severity s) const
{
if (s >= Common::iLogger::None && s < Common::iLogger::Count)
return SeverityText[s];
//-------------------------------------------------------------------
-Window::Window(QWidget * parent, Qt::WindowFlags flags)
- : QWidget(parent, flags)
+Window::Window(QString const & args, QWidget * parent, Qt::WindowFlags flags)
+ : Gui::Panel(parent, flags)
{
setObjectName(QString("%1-Window").arg(VER_MODULE_NAME_STR));
+ SdiWindow::iSdiWindow * win = evafQueryInterface<SdiWindow::iSdiWindow>("iSdiWindow");
+ win->addPanel(getPanelName(args), this);
+
setWindowTitle(tr("Messages"));
Common::iLogger * logger = Common::iLogger::instance();
EVAF_INFO("%s destroyed", qPrintable(objectName()));
}
+QString Window::getPanelName(QString const & args) const
+{
+ QString panelName = "LogView";
+
+ QXmlStreamReader xml(args);
+ while (!xml.atEnd()) {
+ xml.readNext();
+ if (xml.isStartElement() && xml.name() == "attributes") {
+ if (xml.attributes().hasAttribute("panelName")) {
+ QString s = xml.attributes().value("panelName").toString();
+ if (!s.isEmpty())
+ panelName = s;
+ }
+ }
+ }
+
+ return panelName;
+}
+
bool Window::event(QEvent * e)
{
if (e->type() == QEvent::StatusTip) {
bool Module::init(QString const & args)
{
- Q_UNUSED(args);
-
- wWindow = new Window();
+ wWindow = new Window(args);
EVAF_INFO("%s initialized", qPrintable(objectName()));