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

#include <FileModel.hpp>

Inheritance diagram for dbe::FileModel:
[legend]
Collaboration diagram for dbe::FileModel:
[legend]

Signals

void FileCacheReady (QList< QStringList > &Files)

Public Member Functions

 ~FileModel ()
 FileModel (QObject *parent=nullptr)
 Including QT Headers.
 FileModel (QList< QStringList > const &FileList, QObject *parent=nullptr)
int rowCount (const QModelIndex &parent) const
int columnCount (const QModelIndex &parent) const
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Qt::ItemFlags flags (const QModelIndex &index) const
QString GetFullFileName (QString &FileName)
QList< QStringList > GetFilesInfo () const

Private Member Functions

void initpaths ()
void initmodel ()
void initconnections ()

Private Attributes

QList< QStringList > IncludedFiles
QStringList FolderPathList
QStringList Headers

Detailed Description

Definition at line 15 of file FileModel.hpp.

Constructor & Destructor Documentation

◆ ~FileModel()

dbe::FileModel::~FileModel ( )

Definition at line 35 of file FileModel.cpp.

35{}

◆ FileModel() [1/2]

dbe::FileModel::FileModel ( QObject * parent = nullptr)
explicit

Including QT Headers.

Including DBE Headers

Definition at line 18 of file FileModel.cpp.

19 : QAbstractTableModel(parent)
20 , Headers{ tr("Name"), tr("Folder"), tr("Access"), tr("Status") }
21{
22 initpaths();
24 initmodel();
25}
void initconnections()
QStringList Headers
Definition FileModel.hpp:46

◆ FileModel() [2/2]

dbe::FileModel::FileModel ( QList< QStringList > const & FileList,
QObject * parent = nullptr )
explicit

Definition at line 27 of file FileModel.cpp.

28 : QAbstractTableModel(parent)
29 , IncludedFiles(FileList)
30 , Headers{ tr("Name"), tr("Folder"), tr("Access"), tr("Status") }
31{
33}
QList< QStringList > IncludedFiles
Definition FileModel.hpp:44

Member Function Documentation

◆ columnCount()

int dbe::FileModel::columnCount ( const QModelIndex & parent) const

Definition at line 48 of file FileModel.cpp.

49{
50 Q_UNUSED(parent)
51 return Headers.size();
52}

◆ data()

QVariant dbe::FileModel::data ( const QModelIndex & index,
int role = Qt::DisplayRole ) const

Definition at line 55 of file FileModel.cpp.

56{
57 if (index.isValid()) {
58 if (role == Qt::DisplayRole) {
59 return QVariant(IncludedFiles.at(index.row()).at(index.column()));
60 }
61 if (role == Qt::ForegroundRole) {
62 if (IncludedFiles.at(index.row()).at(static_cast<int>(tablepositions::filepermission)) == "RO") {
64 }
65 }
66 if (role == Qt::BackgroundRole) {
67 if (IncludedFiles.at(index.row()).at(static_cast<int>(tablepositions::filepermission)) == "RO") {
69 }
70 }
71 }
72
73 return QVariant();
74}
static QColor FileReadOnlyForeground
static QColor FileReadOnlyBackground

◆ FileCacheReady

void dbe::FileModel::FileCacheReady ( QList< QStringList > & Files)
signal

◆ flags()

Qt::ItemFlags dbe::FileModel::flags ( const QModelIndex & index) const

Definition at line 93 of file FileModel.cpp.

94{
95 // if ( IncludedFiles.at ( index.row() ).at ( static_cast<int>
96 // ( tablepositions::filepermission ) ) == "RW" )
97 // {
98 return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
99 // }
100
101 // return Qt::ItemIsSelectable;
102}

◆ GetFilesInfo()

QList< QStringList > dbe::FileModel::GetFilesInfo ( ) const

Definition at line 160 of file FileModel.cpp.

161{
162 return IncludedFiles;
163}

◆ GetFullFileName()

QString dbe::FileModel::GetFullFileName ( QString & FileName)

Definition at line 133 of file FileModel.cpp.

134{
135 QFileInfo FileInfo(FileName);
136
137 if (FileInfo.isRelative()) {
138 bool found = false;
139 for (const QString& Folder : FolderPathList) {
140 QDir TdaqFolder(Folder);
141
142 if (TdaqFolder.exists(FileName)) {
143 FileName = TdaqFolder.path() + "/" + FileName;
144 char* rpath = realpath(FileName.toStdString().c_str(), NULL);
145 FileName = QString(rpath);
146 free(rpath);
147 found = true;
148 break;
149 }
150 }
151 if (!found) {
152 FileName = FileInfo.absoluteFilePath();
153 }
154 }
155
156 return FileName;
157}
FileInfo(QString filename, QWidget *parent=0)
Definition FileInfo.cpp:196
QStringList FolderPathList
Definition FileModel.hpp:45

◆ headerData()

QVariant dbe::FileModel::headerData ( int section,
Qt::Orientation orientation,
int role = Qt::DisplayRole ) const

Definition at line 77 of file FileModel.cpp.

78{
79 if (role == Qt::DisplayRole) {
80 if (orientation == Qt::Horizontal) {
81 return Headers.at(section);
82 }
83
84 if (orientation == Qt::Vertical) {
85 return section + 1;
86 }
87 }
88
89 return QVariant();
90}
Missing configuration section
Message.

◆ initconnections()

void dbe::FileModel::initconnections ( )
private

Definition at line 126 of file FileModel.cpp.

127{
128 connect(
129 this, SIGNAL(FileCacheReady(QList<QStringList>&)), &confaccessor::ref(), SLOT(GetFileCache(QList<QStringList>&)));
130}
void FileCacheReady(QList< QStringList > &Files)
static confaccessor & ref()

◆ initmodel()

void dbe::FileModel::initmodel ( )
private

Definition at line 166 of file FileModel.cpp.

167{
169
170 std::list<std::string> updated = confaccessor::uncommitted_files();
171 for (QString const& source : sources) {
172 QFileInfo srcinfo(source);
173 QString fn = srcinfo.filePath();
174 QString dn = GetFullFileName(fn).remove(QRegularExpression("/[a-zA-Z0-9_-]*.data.xml"));
175
176 QString modified{};
177 auto file = GetFullFileName(fn).toStdString();
178 for (auto ufile : updated) {
179 if (file == ufile) {
180 modified = "Modified";
181 break;
182 }
183 }
184
185 IncludedFiles.append(
186 QStringList{ srcinfo.fileName(), dn, confaccessor::check_file_rw(source) ? "RW" : "RO", modified });
187 }
188
189 if (IncludedFiles.size()) {
191 }
192}
QString GetFullFileName(QString &FileName)
static std::list< std::string > uncommitted_files()
static bool check_file_rw(const QString &FileName)
static QString dbfullname()
static QStringList inclusions(QStringList const &candidates, QStringList files={})

◆ initpaths()

void dbe::FileModel::initpaths ( )
private

Definition at line 105 of file FileModel.cpp.

106{
107 QString TDAQ_DB_REPOSITORY = getenv("TDAQ_DB_REPOSITORY");
108 if (TDAQ_DB_REPOSITORY.isEmpty() == false) {
109 QString TDAQ_DB_USER_REPOSITORY = getenv("TDAQ_DB_USER_REPOSITORY");
110 FolderPathList = TDAQ_DB_USER_REPOSITORY.split(":", Qt::SkipEmptyParts);
111
113 } else {
114 QString DUNEDAQ_DB_PATH = getenv("DUNEDAQ_DB_PATH");
115 FolderPathList = DUNEDAQ_DB_PATH.split(":", Qt::SkipEmptyParts);
116 }
117
118 for (QString& PathName : FolderPathList) {
119 if (!PathName.endsWith("/")) {
120 PathName.append("/");
121 }
122 }
123}
QString find_db_repository_dir()
static MainWindow * findthis()

◆ rowCount()

int dbe::FileModel::rowCount ( const QModelIndex & parent) const

Definition at line 38 of file FileModel.cpp.

39{
40 if (!parent.isValid()) {
41 return IncludedFiles.size();
42 }
43
44 return 0;
45}

Member Data Documentation

◆ FolderPathList

QStringList dbe::FileModel::FolderPathList
private

Definition at line 45 of file FileModel.hpp.

◆ Headers

QStringList dbe::FileModel::Headers
private

Definition at line 46 of file FileModel.hpp.

◆ IncludedFiles

QList<QStringList> dbe::FileModel::IncludedFiles
private

Definition at line 44 of file FileModel.hpp.


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