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

#include <SchemaCustomFileModel.hpp>

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

Public Member Functions

 CustomFileModel (QStringList &Headers, QObject *parent=nullptr)
 Including Schema Editor.
 ~CustomFileModel ()
int rowCount (const QModelIndex &parent) const
int columnCount (const QModelIndex &parent) const
QVariant headerData (int section, Qt::Orientation orientation, int role) const
QVariant data (const QModelIndex &index, int role) const
void setupModel ()
QStringList getRowFromIndex (QModelIndex &index)

Private Attributes

QStringList HeaderList
QList< QStringList > Data

Detailed Description

Definition at line 15 of file SchemaCustomFileModel.hpp.

Constructor & Destructor Documentation

◆ CustomFileModel()

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

Including Schema Editor.

Including C++ Headers

Definition at line 12 of file SchemaCustomFileModel.cpp.

13 : QAbstractTableModel(parent)
14 , HeaderList(Headers)
15{
16 setupModel();
17}

◆ ~CustomFileModel()

dbse::CustomFileModel::~CustomFileModel ( )

Definition at line 19 of file SchemaCustomFileModel.cpp.

19{}

Member Function Documentation

◆ columnCount()

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

Definition at line 29 of file SchemaCustomFileModel.cpp.

30{
31 Q_UNUSED(parent);
32 return HeaderList.size();
33}

◆ data()

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

Definition at line 60 of file SchemaCustomFileModel.cpp.

61{
62 if (role == Qt::DisplayRole) {
63 return Data.value(index.row()).value(index.column());
64 }
65 if (role == Qt::ForegroundRole) {
66 if (Data.value(index.row()).value(2).contains("Active")) {
67 return QBrush(QColor(SchemaStyle::get_color("foreground", "active_file")));
68 }
69 if (Data.value(index.row()).value(1) == "RW") {
70 return QBrush(QColor(SchemaStyle::get_color("foreground", "default")));
71 }
72 return QBrush(SchemaStyle::get_color("foreground", "readonly"));
73 }
74 if (role == Qt::BackgroundRole) {
75 if (Data.value(index.row()).value(2).contains("Active")) {
76 return QBrush(QColor(SchemaStyle::get_color("background", "active_file")));
77 }
78 if (Data.value(index.row()).value(1) == "RW") {
79 return QBrush(QColor(SchemaStyle::get_color("background", "default")));
80 }
81 return QBrush(SchemaStyle::get_color("background", "readonly"));
82 }
83 if (role == Qt::ToolTipRole) {
84 return Data.value(index.row()).value(0);
85 }
86
87 return QVariant();
88}
static QColor get_color(const QString &item, const QString &group)

◆ getRowFromIndex()

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

Definition at line 124 of file SchemaCustomFileModel.cpp.

125{
126 if (!index.isValid()) {
127 return QStringList();
128 }
129
130 return Data.at(index.row());
131}

◆ headerData()

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

Definition at line 46 of file SchemaCustomFileModel.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}

◆ rowCount()

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

Definition at line 22 of file SchemaCustomFileModel.cpp.

23{
24 Q_UNUSED(parent);
25 return Data.size();
26}

◆ setupModel()

void dbse::CustomFileModel::setupModel ( )

Definition at line 91 of file SchemaCustomFileModel.cpp.

92{
93 std::vector<std::string> SchemaFiles;
95 std::string ActiveSchema = KernelWrapper::GetInstance().GetActiveSchema();
96 std::string Modified = KernelWrapper::GetInstance().ModifiedSchemaFiles();
97 for (std::string& FileName : SchemaFiles) {
98 QStringList Row;
99 Row.append(QString::fromStdString(FileName));
100
101 if (KernelWrapper::GetInstance().IsFileWritable(FileName)) {
102 Row.append("RW");
103 } else {
104 Row.append("RO");
105 }
106
107 std::string Status = "";
108 if (Modified.find(FileName) != std::string::npos) {
109 Status = "Modified";
110 }
111 if (FileName == ActiveSchema) {
112 if (!Status.empty()) {
113 Status += " ";
114 }
115 Status += "Active";
116 }
117
118 Row.append(QString::fromStdString(Status));
119 Data.append(Row);
120 }
121}
std::string GetActiveSchema() const
static KernelWrapper & GetInstance()
std::string ModifiedSchemaFiles() const
void GetSchemaFiles(std::vector< std::string > &SchemaFiles)

Member Data Documentation

◆ Data

QList<QStringList> dbse::CustomFileModel::Data
private

Definition at line 31 of file SchemaCustomFileModel.hpp.

◆ HeaderList

QStringList dbse::CustomFileModel::HeaderList
private

Definition at line 30 of file SchemaCustomFileModel.hpp.


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