Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list
Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF
Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
- Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
- Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)
Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified
Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
140 lines
5.1 KiB
C++
140 lines
5.1 KiB
C++
/*
|
|
* @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);
|
|
}
|