Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+139
@@ -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);
|
||||
}
|
||||
Reference in new issue
Block a user