DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
FileInfo.hpp
Go to the documentation of this file.
1#ifndef DBE_FILEINFO_H
2#define DBE_FILEINFO_H
3
5#include "dbe/tref.hpp"
6
7#include <QFileDialog>
8#include <QKeyEvent>
9#include <QListWidgetItem>
10#include <QString>
11#include <QUuid>
12#include <QWidget>
13
14#include <map>
15#include <set>
16
17namespace dbe {
18namespace Ui {
19class FileInfo;
20} // namespace Ui
21
22class FileInfo : public QWidget
23{
24 Q_OBJECT
25public:
26 FileInfo(QString filename, QWidget* parent = 0);
27 ~FileInfo() = default;
28
29 void keyPressEvent(QKeyEvent* event) override;
30
31 static void show_file_info(const QString& filename);
32 static void setup_paths();
33 static QList<QUrl> get_path_urls();
34 static QStringList get_path_list();
35 static QString prune_path(QString file);
36 static bool match_path(const QString& file, const QString& top_file, const QStringList& includes);
37 static void parse_all_objects();
38 static QString check_file_includes(const QString& file);
39 static QString get_schema_path() { return s_schema_path; }
40 static QString get_data_path() { return s_data_path; }
41 static void set_schema_path(const QString& path) { s_schema_path = path; }
42 static void set_data_path(const QString& path) { s_data_path = path; }
43
44private slots:
45 void accept();
46 void reject();
47 void file_info_slot();
48 void file_info_slot(const QString& fn);
49 void file_info_slot(QListWidgetItem*);
50 void edit_object_slot();
51 void edit_object_slot(QListWidgetItem*);
52 void delete_object_slot();
53 void rename_object_slot();
54 void activate_schema_context_menu(QPoint point);
55 void activate_data_context_menu(QPoint point);
56 void activate_object_context_menu(QPoint point);
57
58 void add_datafile();
59 void add_schemafile();
60 void add_includefile(QFileDialog* fd);
63
66 void remove_includefile(const QString& file);
67
68 void filemodel_updated();
69
70private:
71 void parse_objects();
72 void parse_includes();
73 bool check_includes();
74 Ui::FileInfo* m_ui;
75 std::map<QString, const tref> m_obj_map;
76 QString m_filename;
77 bool m_readonly{ false };
78 QMenu* m_schema_menu{ nullptr };
79 QMenu* m_data_menu{ nullptr };
80 QMenu* m_object_menu{ nullptr };
81 QUuid const m_uuid;
82
83 bool m_updating{ false };
84
85 static std::map<QString, std::map<QString, const tref>> s_obj_map;
86 static std::map<QString, std::set<QString>> s_missing_schema_map;
87 static std::map<QString, std::set<QString>> s_missing_data_map;
88
89 static QStringList s_path_list;
90 static QList<QUrl> s_path_urls;
91 static QString s_schema_path;
92 static QString s_data_path;
93};
94} // namespace dbe
95#endif // DBE_FILEINFO_H
QString m_filename
Definition FileInfo.hpp:76
static bool match_path(const QString &file, const QString &top_file, const QStringList &includes)
Definition FileInfo.cpp:81
static QList< QUrl > get_path_urls()
Definition FileInfo.cpp:108
static QString prune_path(QString file)
Definition FileInfo.cpp:66
void keyPressEvent(QKeyEvent *event) override
Definition FileInfo.cpp:314
static void parse_all_objects()
Definition FileInfo.cpp:125
static void set_schema_path(const QString &path)
Definition FileInfo.hpp:41
QMenu * m_data_menu
Definition FileInfo.hpp:79
static QString get_data_path()
Definition FileInfo.hpp:40
void add_missing_datafiles()
Definition FileInfo.cpp:452
static QStringList get_path_list()
Definition FileInfo.cpp:116
~FileInfo()=default
void activate_data_context_menu(QPoint point)
Definition FileInfo.cpp:547
void parse_includes()
Definition FileInfo.cpp:291
void rename_object_slot()
Definition FileInfo.cpp:375
void filemodel_updated()
Definition FileInfo.cpp:245
void add_datafile()
Definition FileInfo.cpp:392
QMenu * m_schema_menu
Definition FileInfo.hpp:78
void file_info_slot()
Definition FileInfo.cpp:487
Ui::FileInfo * m_ui
Definition FileInfo.hpp:74
bool check_includes()
Definition FileInfo.cpp:283
void remove_datafile_slot()
Definition FileInfo.cpp:474
QMenu * m_object_menu
Definition FileInfo.hpp:80
static QString get_schema_path()
Definition FileInfo.hpp:39
void activate_schema_context_menu(QPoint point)
Definition FileInfo.cpp:524
void edit_object_slot()
Definition FileInfo.cpp:334
static std::map< QString, std::set< QString > > s_missing_data_map
Definition FileInfo.hpp:87
void add_includefile(QFileDialog *fd)
Definition FileInfo.cpp:416
void add_schemafile()
Definition FileInfo.cpp:404
void delete_object_slot()
Definition FileInfo.cpp:364
static QStringList s_path_list
Definition FileInfo.hpp:89
void activate_object_context_menu(QPoint point)
Definition FileInfo.cpp:578
static std::map< QString, std::set< QString > > s_missing_schema_map
Definition FileInfo.hpp:86
static QString check_file_includes(const QString &file)
Definition FileInfo.cpp:143
static void setup_paths()
Definition FileInfo.cpp:32
std::map< QString, const tref > m_obj_map
Definition FileInfo.hpp:75
static void set_data_path(const QString &path)
Definition FileInfo.hpp:42
static QString s_data_path
Definition FileInfo.hpp:92
void remove_schemafile_slot()
Definition FileInfo.cpp:469
FileInfo(QString filename, QWidget *parent=0)
Definition FileInfo.cpp:196
static QList< QUrl > s_path_urls
Definition FileInfo.hpp:90
void add_missing_schemafiles()
Definition FileInfo.cpp:435
static QString s_schema_path
Definition FileInfo.hpp:91
static std::map< QString, std::map< QString, const tref > > s_obj_map
Definition FileInfo.hpp:85
static void show_file_info(const QString &filename)
Definition FileInfo.cpp:505
void remove_includefile(const QString &file)
Definition FileInfo.cpp:479
QUuid const m_uuid
Definition FileInfo.hpp:81
void parse_objects()
Definition FileInfo.cpp:255
Include QT Headers.