25#include <QAbstractTableModel>
31#include <ArmarXCore/interface/core/Log.h>
83 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
84 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
85 QVariant
data(
const QModelIndex&
index,
int role)
const override;
86 QVariant
headerData(
int section, Qt::Orientation orientation,
int role)
const override;
87 bool setData(
const QModelIndex&
index,
const QVariant& value,
int role)
override;
88 Qt::ItemFlags
flags(
const QModelIndex&
index)
const override;
90 bool insertRows(
int row,
int count,
const QModelIndex& parent)
override;
92 void addFilter(
const std::string& columnName,
93 const std::string& filter,
100 void search(
const QString& searchStr);
105 return activeSearchStr;
111 return maxNewLogLevelType;
114 int getColumn(
const std::string& columnName)
const;
122 const std::vector<LogFilter>&
125 return activeFilters;
155 bool addEntry(
const LogMessage& entry,
int* entriesAdded = NULL);
156 int addEntries(
const std::vector<LogMessage>& entryList,
const QString& filterStr);
173 QString displayMessage;
175 bool matchesSearch =
false;
176 bool injected =
false;
181 LogEntry buildLogEntry(
const LogMessage& message)
const;
183 QString activeSearchStr;
185 MessageType maxNewLogLevelType;
186 std::vector<LogFilter> activeFilters;
190 std::size_t maxEntries = 10000;
192 std::vector<LogEntry> logEntries;
193 mutable std::mutex logEntriesMutex;
196 LogMarkerRegistry* markerRegistry =
nullptr;
Baseclass for all ArmarX ManagedIceObjects requiring properties.
Shared, session-only store of pinned ("labeled") log lines.
MessageType getMaxNewLogLevelType()
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
void setMarkerRegistry(LogMarkerRegistry *registry)
Attach the shared pin registry.
void addFilter(const std::string &columnName, const std::string &filter, MatchMode mode=MatchMode::Contains)
bool applyFilters(const LogMessage &logMsg)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
LogTableModel(QObject *parent=0)
bool isRowMarked(int row) const
Whether the given display row is currently pinned (has a label color).
bool setData(const QModelIndex &index, const QVariant &value, int role) override
int addEntries(const std::vector< LogMessage > &entryList, const QString &filterStr)
bool applyFilter(const LogFilter &filter, const LogMessage &logMsg)
bool insertRows(int row, int count, const QModelIndex &parent) override
int lineCountAt(int row) const
Number of display lines of the message column for the given row (precomputed).
int rowForMessage(const LogMessage &message) const
Display row of the (first) line identical to message, or -1 if not shown.
void setMaxEntries(std::size_t maxEntries)
Upper bound on retained log entries.
QString getCurrentSearchStr()
const LogMessage & getLogEntry(size_t row) const
int columnCount(const QModelIndex &parent=QModelIndex()) const override
void enforceMaxEntries()
Trim the oldest entries once the buffer exceeds its bound (see setMaxEntries).
int getColumn(const std::string &columnName) const
bool addEntry(const LogMessage &entry, int *entriesAdded=NULL)
bool msgContainsString(const LogMessage &logMsg, QString searchStr) const
const std::vector< LogFilter > & getFilters() const
bool rowContainsString(int row, const QString &searchStr) const
void refreshMarkers()
Rebuild the set of injected pin rows and re-color native rows (full reset).
void search(const QString &searchStr)
bool containsNativeLine(const LogMessage &message) const
Whether this model holds message as a native (non-injected) row.
IceUtil::Handle< RunningTask< T > > pointer_type
Shared pointer type for convenience.
This file offers overloads of toIce() and fromIce() functions for STL container types.
bool Contains(const ContainerType &container, const ElementType &searchElement)