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.