DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dbse::CustomTableModel Class Reference

#include <SchemaCustomTableModel.hpp>

Inheritance diagram for dbse::CustomTableModel:
[legend]
Collaboration diagram for dbse::CustomTableModel:
[legend]

Public Member Functions

 CustomTableModel (QStringList Headers, QObject *parent=nullptr)
 ~CustomTableModel ()
int rowCount (const QModelIndex &parent) const
int columnCount (const QModelIndex &parent) const
Qt::ItemFlags flags (const QModelIndex &index) const
QVariant headerData (int section, Qt::Orientation orientation, int role) const
QVariant data (const QModelIndex &index, int role) const
QStringList getRowFromIndex (QModelIndex &index)
void setupModel ()
QStringList mimeTypes () const
 Drag/Drop Handlers.
QMimeData * mimeData (const QModelIndexList &indexes) const

Private Attributes

QStringList HeaderList
QList< QList< QString > > m_data
QList< QList< QString > > m_tooltips
std::vector< QBrush > m_brushes
std::vector< QColor > m_backgrounds

Detailed Description

Definition at line 20 of file SchemaCustomTableModel.hpp.

Constructor & Destructor Documentation

◆ CustomTableModel()

dbse::CustomTableModel::CustomTableModel ( QStringList Headers,
QObject * parent = nullptr )
explicit

Definition at line 15 of file SchemaCustomTableModel.cpp.

16 : QAbstractTableModel(parent)
17 , HeaderList(Headers)
18{
19 setupModel();
20}

◆ ~CustomTableModel()

dbse::CustomTableModel::~CustomTableModel ( )

Definition at line 22 of file SchemaCustomTableModel.cpp.

22{}

Member Function Documentation

◆ columnCount()

int dbse::CustomTableModel::columnCount ( const QModelIndex & parent) const

Definition at line 32 of file SchemaCustomTableModel.cpp.

33{
34 Q_UNUSED(parent);
35 return HeaderList.size();
36}

◆ data()

QVariant dbse::CustomTableModel::data ( const QModelIndex & index,
int role ) const

Definition at line 60 of file SchemaCustomTableModel.cpp.

61{
62 if (role == Qt::DisplayRole) {
63 return m_data.value(index.row()).value(index.column());
64 }
65 if (role == Qt::ToolTipRole) {
66 return m_tooltips.value(index.row()).value(index.column());
67 }
68 if (role == Qt::ForegroundRole) {
69 return m_brushes.at(index.row());
70 }
71 if (role == Qt::BackgroundRole) {
72 return m_backgrounds.at(index.row());
73 }
74
75 return QVariant();
76}
QList< QList< QString > > m_tooltips
QList< QList< QString > > m_data
std::vector< QColor > m_backgrounds
std::vector< QBrush > m_brushes

◆ flags()

Qt::ItemFlags dbse::CustomTableModel::flags ( const QModelIndex & index) const

Definition at line 39 of file SchemaCustomTableModel.cpp.

40{
41 Q_UNUSED(index);
42 return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled;
43}

◆ getRowFromIndex()

QStringList dbse::CustomTableModel::getRowFromIndex ( QModelIndex & index)

Definition at line 79 of file SchemaCustomTableModel.cpp.

80{
81 if (!index.isValid()) {
82 return QStringList();
83 }
84
85 return m_data.at(index.row());
86}

◆ headerData()

QVariant dbse::CustomTableModel::headerData ( int section,
Qt::Orientation orientation,
int role ) const

Definition at line 46 of file SchemaCustomTableModel.cpp.

47{
48 if (role != Qt::DisplayRole) {
49 return QVariant();
50 }
51
52 if (orientation == Qt::Horizontal) {
53 return HeaderList.at(section);
54 }
55
56 return QVariant();
57}

◆ mimeData()

QMimeData * dbse::CustomTableModel::mimeData ( const QModelIndexList & indexes) const

Definition at line 124 of file SchemaCustomTableModel.cpp.

125{
126 QMimeData* mimeData = new QMimeData();
127 QByteArray encodedData;
128
129 QDataStream stream(&encodedData, QIODevice::WriteOnly);
130
131 foreach (QModelIndex index, indexes) {
132 if (index.isValid() && index.column() == 0) {
133 QString ClassName = data(index, Qt::DisplayRole).toString();
134 stream << ClassName;
135 }
136 }
137
138 mimeData->setData("application/vnd.text.list", encodedData);
139 return mimeData;
140}
QMimeData * mimeData(const QModelIndexList &indexes) const
QVariant data(const QModelIndex &index, int role) const

◆ mimeTypes()

QStringList dbse::CustomTableModel::mimeTypes ( ) const

Drag/Drop Handlers.

Definition at line 116 of file SchemaCustomTableModel.cpp.

117{
118 QStringList types;
119 types << "application/vnd.text.list";
120 return types;
121}

◆ rowCount()

int dbse::CustomTableModel::rowCount ( const QModelIndex & parent) const

Definition at line 25 of file SchemaCustomTableModel.cpp.

26{
27 Q_UNUSED(parent);
28 return m_data.size();
29}

◆ setupModel()

void dbse::CustomTableModel::setupModel ( )

Definition at line 89 of file SchemaCustomTableModel.cpp.

90{
91 std::vector<OksClass*> ClassList;
93
94 for (unsigned int i = 0; i < ClassList.size(); ++i) {
95 QList<QString> Row;
96 OksClass* Class = ClassList.at(i);
97 Row.append(QString(Class->get_name().c_str()));
98 m_data.append(Row);
99 m_tooltips.append(QStringList{ QString(Class->get_description().c_str()) });
100
101 auto fn = Class->get_file()->get_full_file_name();
102 if (!KernelWrapper::GetInstance().IsFileWritable(fn)) {
103 m_brushes.emplace_back(QBrush(SchemaStyle::get_color("foreground", "readonly")));
104 m_backgrounds.emplace_back(SchemaStyle::get_color("background", "readonly"));
105 } else if (fn == KernelWrapper::GetInstance().GetActiveSchema()) {
106 m_brushes.emplace_back(QBrush(SchemaStyle::get_color("foreground", "active_file")));
107 m_backgrounds.emplace_back(SchemaStyle::get_color("background", "active_file"));
108 } else {
109 m_brushes.emplace_back(QBrush(SchemaStyle::get_color("foreground", "default")));
110 m_backgrounds.emplace_back(SchemaStyle::get_color("background", "default"));
111 }
112 }
113}
static KernelWrapper & GetInstance()
void GetClassList(std::vector< dunedaq::oks::OksClass * > &ClassList) const
const std::string & get_name() const noexcept
Definition class.hpp:374
const std::string & get_description() const noexcept
Definition class.hpp:378
OksFile * get_file() const noexcept
Definition class.hpp:352
const std::string & get_full_file_name() const
Definition file.hpp:528
static QColor get_color(const QString &item, const QString &group)

Member Data Documentation

◆ HeaderList

QStringList dbse::CustomTableModel::HeaderList
private

Definition at line 38 of file SchemaCustomTableModel.hpp.

◆ m_backgrounds

std::vector<QColor> dbse::CustomTableModel::m_backgrounds
private

Definition at line 42 of file SchemaCustomTableModel.hpp.

◆ m_brushes

std::vector<QBrush> dbse::CustomTableModel::m_brushes
private

Definition at line 41 of file SchemaCustomTableModel.hpp.

◆ m_data

QList<QList<QString> > dbse::CustomTableModel::m_data
private

Definition at line 39 of file SchemaCustomTableModel.hpp.

◆ m_tooltips

QList<QList<QString> > dbse::CustomTableModel::m_tooltips
private

Definition at line 40 of file SchemaCustomTableModel.hpp.


The documentation for this class was generated from the following files: