8#include <QContextMenuEvent>
11#include <QApplication>
39 QTableWidgetItem(QTime::currentTime().toString(
"hh:mm:ss"))
41 setFont(QFont(
"Arial", 8));
45 setStatusTip(
"Message recorded at " + text());
50 return QTableWidgetItem::sizeHint();
54 QTableWidgetItem(QString::fromUtf8(m.text.c_str()))
56 QString ToolTipPrefix;
59 ToolTipPrefix +=
"Critical error: ";
61 setFont(QFont(
"Arial", 8));
81 QString text = QString::fromUtf8(m.text.c_str());
83 setToolTip(ToolTipPrefix + text);
84 setStatusTip(ToolTipPrefix + text);
89 QString ProgressString = Event;
91 if (Progress == 100.0f)
92 ProgressString +=
"... Done";
94 ProgressString += QString::number(Progress,
'f', 2);
96 setText(ProgressString);
97 setFont(QFont(
"Arial", 7));
105 std::lock_guard<std::mutex> tLock(
gMutex);
106 ins =
gInstance.load(std::memory_order_relaxed);
109 gInstance.store(ins, std::memory_order_release);
117 QTableWidget(pParent)
123 QStringList HeaderLabels;
125 HeaderLabels <<
"time" <<
"" <<
"message";
127 setHorizontalHeaderLabels(HeaderLabels);
128 horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
129 horizontalHeader()->setSectionResizeMode(1, QHeaderView::Fixed);
130 horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
131 horizontalHeader()->resizeSection(1, 25);
132 horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
133 horizontalHeader()->setVisible(
false);
136 verticalHeader()->setVisible(
false);
138 setGridStyle(Qt::NoPen);
140 setAlternatingRowColors(
true);
168 ItemIcon =
getIcon(
"exclamation");
174 ItemIcon =
getIcon(
"exclamation-red");
179 ItemIcon =
getIcon(
"exclamation-white");
188 setItem(0, 1,
new QTableWidgetItem(ItemIcon,
""));
195 if (currentRow() < 0)
198 removeRow(currentRow());
215 menu.setTitle(
"Log");
218 menu.exec(pContextMenuEvent->globalPos());
223 return QIcon(QString::fromLocal8Bit(getAssetPath().c_str()) +
"icon/" + name +
".png");
228 return QSize(100, 100);
243 return QTableWidget::sizeHintForColumn(column);
@ Warning
Warning information.
@ Info
Information to user.
@ User
User specific message.
@ Error
Error information while executing something.
static void setUserReceiver(void(*userFunc)(const Message &))
Set user function to receive newly sent messages to logger.
static void sendMessage(MessageType type, const std::string &text)
Add a new message to log.
static void setOutput(const std::string &filename)
Open file where to log the messages.
PTableItemMessage(const Log::Message &m)
PTableItemProgress(const QString &Event, const float &Progress)
This is an implementation of AdditiveCCD based on peridyno.