25 #include <QHeaderView>
26 #include <QApplication>
37 #define MAX_BUFFER_SIZE 10000
38 #define BUFFER_SIZE_FACTOR 1.3
43 maxNewLogLevelType(eUNDEFINED)
49 setObjectName(QString::fromUtf8(
"tableLog"));
50 QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Expanding);
51 sizePolicy2.setHorizontalStretch(10);
52 sizePolicy2.setVerticalStretch(10);
53 sizePolicy2.setHeightForWidth(sizePolicy().hasHeightForWidth());
54 setSizePolicy(sizePolicy2);
55 setSizeIncrement(QSize(1, 0));
56 setEditTriggers(QAbstractItemView::DoubleClicked);
57 setAlternatingRowColors(
true);
59 setGridStyle(Qt::SolidLine);
60 setSortingEnabled(
false);
62 setCornerButtonEnabled(
true);
64 setSelectionMode(QAbstractItemView::SingleSelection);
65 setSelectionBehavior(QAbstractItemView::SelectRows);
67 horizontalHeader()->setVisible(
true);
68 horizontalHeader()->setCascadingSectionResizes(
true);
69 horizontalHeader()->setDefaultSectionSize(100);
70 horizontalHeader()->setMinimumSectionSize(20);
71 horizontalHeader()->setStretchLastSection(
true);
72 verticalHeader()->setVisible(
false);
73 verticalHeader()->setDefaultSectionSize(20);
79 setColumnWidth(0, 90);
80 setColumnWidth(1, 90);
81 setColumnWidth(2, 90);
82 setColumnWidth(3, 60);
83 setColumnWidth(4, 700);
84 setColumnWidth(5, 150);
85 setColumnWidth(6, 200);
95 QAbstractItemModel* absmodel = qobject_cast<QAbstractItemModel*>(model());
96 connect(absmodel, SIGNAL(rowsAboutToBeInserted(QModelIndex,
int,
int)),
this, SLOT(
checkAutoScroll(QModelIndex,
int,
int)));
97 connect(
this, SIGNAL(doubleClicked(QModelIndex)),
this, SLOT(
doubleClickOnCell(QModelIndex)));
98 connect(absmodel, SIGNAL(dataChanged(QModelIndex, QModelIndex)),
this, SLOT(
itemsAdded(QModelIndex, QModelIndex)));
99 connect(verticalScrollBar(), SIGNAL(valueChanged(
int)),
this, SLOT(
checkAutoScroll()));
119 if (! isRowHidden(row) && !
contains)
121 setRowHidden(row,
true);
123 else if (isRowHidden(row) &&
contains)
125 setRowHidden(row,
false);
137 int rowCount = model()->rowCount();
139 for (
int i = startRow; i < rowCount; i++)
143 setRowHidden(i,
true);
147 qApp->processEvents();
166 int rowCount = model()->rowCount();
168 for (
int i = startRow; i < rowCount; i++)
174 setRowHidden(i,
false);
179 setRowHidden(i,
true);
183 qApp->processEvents();
236 if (verticalScrollBar()->
value() == verticalScrollBar()->maximum())
263 QTimer::singleShot(50,
this, SLOT(scrollToBottom()));
270 if (verticalScrollBar()->
value() == verticalScrollBar()->maximum())
284 auto fontHeight = QFontMetrics(font()).height();
286 for (
int i = start; i <= end && i < logModel->rowCount(); ++i)
289 auto index = model()->index(i, 4, parent);
290 auto stringRows = model()->data(index).toString().split(
"\n").size();
293 setRowHeight(i, fontHeight * stringRows + 1);
336 if (end - start >= model()->rowCount() - 1)
346 int checkCounter = 0;
347 int tempSelectedSearchIndex = indexAt(QPoint(10, 10)).row();
349 if (selectedIndexes().size() > 0)
351 tempSelectedSearchIndex = selectedIndexes()[0].row();
354 int oldSelectedSearchIndex = tempSelectedSearchIndex;
359 if ((tempSelectedSearchIndex != oldSelectedSearchIndex || keepSelectionIfPossible)
360 &&
getModel()->rowContainsString(tempSelectedSearchIndex,
getModel()->getCurrentSearchStr()))
362 selectRow(tempSelectedSearchIndex);
368 tempSelectedSearchIndex--;
372 tempSelectedSearchIndex++;
375 if (tempSelectedSearchIndex >= model()->rowCount())
377 tempSelectedSearchIndex = 0;
380 if (tempSelectedSearchIndex < 0)
382 tempSelectedSearchIndex = model()->rowCount() - 1;
388 if (checkCounter > model()->rowCount())
393 while (tempSelectedSearchIndex != oldSelectedSearchIndex);
406 QString fileWithLineNumber = model()->data(index).toString();
407 std::string file = fileWithLineNumber.toStdString();
408 file.erase(file.rfind(
':'));
409 std::string line = fileWithLineNumber.toStdString();
410 line = line.erase(0, line.rfind(
':') + 1);
412 if (!std::filesystem::exists(file))
414 ARMARX_INFO <<
"File '" << file <<
"' does not exists - cannot open it.";