Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

+139
View File
@@ -0,0 +1,139 @@
/*
* @RDE_HEADER@
* <short description>
* $Id$
* $HeadURL$
* $Author$
* Created by Malte Schröder, SLSE, 2016-07-14
*/
#include "logviewtableview.h"
#include "logviewtablemodel.h"
#include <QAction>
#include <QColor>
#include <QColorDialog>
#include <QIcon>
#include <QMenu>
#include <QMouseEvent>
LogViewTableView::LogViewTableView(QWidget *parent)
: QTableView(parent)
, m_contextMenu(new QMenu(this))
, m_colorMenu(new QMenu(tr("Select Color"), m_contextMenu))
, m_actionSetCellColor(new QAction(m_colorMenu))
, m_actionSetFontColor(new QAction(m_colorMenu))
, m_filterMenu(new QMenu(tr("Select Filter"), m_contextMenu))
, m_actionFilterDate(nullptr)
, m_actionFilterLevel(nullptr)
, m_actionFilterLogger(nullptr)
, m_actionFilterData(nullptr)
, m_actionFilterLocation(nullptr)
, m_actionResetFilter(nullptr)
, m_coords()
, m_contentAvailable(false)
{
this->setMouseTracking(true);
// ---------- COLOR ---------
m_actionSetCellColor = m_colorMenu->addAction(tr("Cell-Color"));
m_actionSetFontColor = m_colorMenu->addAction(tr("Font-Color"));
m_contextMenu->addMenu(m_colorMenu);
// ---------- FILTER ---------
m_actionFilterDate = m_filterMenu->addAction(tr("Date"));
m_actionFilterLevel = m_filterMenu->addAction(tr("Level"));
m_actionFilterLogger = m_filterMenu->addAction(tr("Logger"));
m_actionFilterData = m_filterMenu->addAction(tr("Data"));
m_actionFilterLocation = m_filterMenu->addAction(tr("Location"));
m_filterMenu->addSeparator();
m_actionResetFilter = m_filterMenu->addAction(tr("Reset all filter"));
m_contextMenu->addMenu(m_filterMenu);
// ICONS
m_actionFilterDate->setIcon(QIcon(QLatin1String("://icons/16x16/dialog-ok-apply.png")));
m_actionFilterLevel->setIcon(QIcon(QLatin1String("://icons/16x16/dialog-ok-apply.png")));
m_actionFilterLogger->setIcon(QIcon(QLatin1String("://icons/16x16/dialog-ok-apply.png")));
m_actionFilterData->setIcon(QIcon(QLatin1String("://icons/16x16/dialog-ok-apply.png")));
m_actionFilterLocation->setIcon(QIcon(QLatin1String("://icons/16x16/dialog-ok-apply.png")));
m_actionResetFilter->setIcon(QIcon(QLatin1String("://icons/16x16/edit-undo.png")));
m_actionFilterDate->setIconVisibleInMenu(false);
m_actionFilterLevel->setIconVisibleInMenu(false);
m_actionFilterLogger->setIconVisibleInMenu(false);
m_actionFilterData->setIconVisibleInMenu(false);
m_actionFilterLocation->setIconVisibleInMenu(false);
m_actionResetFilter->setIconVisibleInMenu(true);
connect(m_actionSetCellColor, &QAction::triggered, this, &LogViewTableView::setCellColor);
connect(m_actionSetFontColor, &QAction::triggered, this, &LogViewTableView::setFontColor);
connect(m_actionFilterDate, &QAction::triggered, this, &LogViewTableView::dateFilterIsAboutToChange);
connect(m_actionFilterLevel, &QAction::triggered, this, &LogViewTableView::levelFilterIsAboutToChange);
connect(m_actionFilterLogger, &QAction::triggered, this, &LogViewTableView::loggerFilterIsAboutToChange);
connect(m_actionFilterData, &QAction::triggered, this, &LogViewTableView::dataFilterIsAboutToChange);
connect(m_actionResetFilter, &QAction::triggered, this, &LogViewTableView::resetAllFilter);
connect(m_actionFilterLocation, &QAction::triggered, this, &LogViewTableView::locationFilterIsAboutToChange);
}
LogViewTableView::~LogViewTableView()
{
delete m_contextMenu;
// all other menus and actions are children of m_contextMenu
}
void LogViewTableView::setCellColor()
{
QColor color = QColorDialog::getColor(Qt::white, this, tr("Select cell color"), QColorDialog::DontUseNativeDialog);
QModelIndex index = indexAt(m_coords);
QString level = index.data().toString();
emit cellColorIsAboutToChange(color, level);
}
void LogViewTableView::setFontColor()
{
QColor color = QColorDialog::getColor(Qt::white, this, tr("Select font color"), QColorDialog::DontUseNativeDialog);
QModelIndex index = indexAt(m_coords);
QString level = index.data().toString();
emit fontColorIsAboutToChange(color, level);
}
void LogViewTableView::showActivatedFilter(QVector<bool> &filter)
{
m_actionFilterDate->setIconVisibleInMenu(filter.at(LogViewTableModel::colDate));
m_actionFilterLevel->setIconVisibleInMenu(filter.at(LogViewTableModel::colLevel));
m_actionFilterLogger->setIconVisibleInMenu(filter.at(LogViewTableModel::colLogger));
m_actionFilterData->setIconVisibleInMenu(filter.at(LogViewTableModel::colData));
m_actionFilterLocation->setIconVisibleInMenu(filter.at(LogViewTableModel::colLocation));
}
void LogViewTableView::mouseReleaseEvent(QMouseEvent *event)
{
if (QTableView::indexAt(m_coords).column() == LogViewTableModel::colLevel)
enableColorSubMenuActions(true);
else
enableColorSubMenuActions(false);
if (event->button() == Qt::RightButton
&& m_contentAvailable)
{
emit whichFilterAreActivated();
m_contextMenu->exec(mapToGlobal(m_coords));
}
}
void LogViewTableView::mouseMoveEvent(QMouseEvent *event)
{
m_coords.setX(event->x());
m_coords.setY(event->y());
emit mouseMoved(m_coords);
}
void LogViewTableView::enableColorSubMenuActions(bool checkState)
{
m_actionSetCellColor->setEnabled(checkState);
m_actionSetFontColor->setEnabled(checkState);
}