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
4#include "dbe/tref.hpp"
6
7#include <QFileDialog>
8#include <QKeyEvent>
9#include <QString>
10#include <QListWidgetItem>
11#include <QUuid>
12#include <QWidget>
13
14#include <map>
15#include <set>
16
17namespace dbe
18{
19 namespace Ui
20 {
21 class FileInfo;
22 } // namespace Ui
23
24 class FileInfo : public QWidget {
25 Q_OBJECT
26 public:
27 FileInfo(QString filename, QWidget* parent=0);
28 ~FileInfo() = default;
29
30 void keyPressEvent(QKeyEvent* event) override;
31
32 static void show_file_info(const QString& filename);
33 static void setup_paths();
34 static QList<QUrl> get_path_urls();
35 static QStringList get_path_list();
36 static QString prune_path(QString file);
37 static bool match_path(const QString& file,
38 const QString& top_file,
39 const QStringList& includes);
40 static void parse_all_objects();
41 static QString check_file_includes(const QString& file);
42
43 private slots:
44 void accept();
45 void reject();
46 void file_info_slot ();
47 void file_info_slot (const QString& fn);
48 void file_info_slot(QListWidgetItem*);
49 void edit_object_slot();
50 void edit_object_slot(QListWidgetItem*);
51 void delete_object_slot();
52 void rename_object_slot();
53 void activate_schema_context_menu(QPoint point);
54 void activate_data_context_menu(QPoint point);
55 void activate_object_context_menu(QPoint point);
56
57 void add_datafile();
58 void add_schemafile();
59 void add_includefile(QFileDialog* fd);
62
65 void remove_includefile(const QString& file);
66
67 void filemodel_updated();
68 private:
69 void parse_objects();
70 void parse_includes();
71 bool check_includes();
72 Ui::FileInfo* m_ui;
73 std::map<QString, const tref> m_obj_map;
74 QString m_filename;
75 bool m_readonly{false};
76 QMenu* m_schema_menu{nullptr};
77 QMenu* m_data_menu{nullptr};
78 QMenu* m_object_menu{nullptr};
79 QUuid const m_uuid;
80
81 bool m_updating{false};
82
83 static std::map<QString, std::map<QString, const tref>> s_obj_map;
84 static std::map<QString, std::set<QString>> s_missing_schema_map;
85 static std::map<QString, std::set<QString>> s_missing_data_map;
86
87 static QStringList s_path_list;
88 static QList<QUrl> s_path_urls;
89 static QString s_schema_path;
90 static QString s_data_path;
91 };
92} //namespace dbe
93#endif // DBE_FILEINFO_H
QString m_filename
Definition FileInfo.hpp:74
static bool match_path(const QString &file, const QString &top_file, const QStringList &includes)
Definition FileInfo.cpp:64
static QList< QUrl > get_path_urls()
Definition FileInfo.cpp:91
static QString prune_path(QString file)
Definition FileInfo.cpp:51
void keyPressEvent(QKeyEvent *event) override
Definition FileInfo.cpp:296
static void parse_all_objects()
Definition FileInfo.cpp:104
QMenu * m_data_menu
Definition FileInfo.hpp:77
void add_missing_datafiles()
Definition FileInfo.cpp:414
static QStringList get_path_list()
Definition FileInfo.cpp:97
~FileInfo()=default
void activate_data_context_menu(QPoint point)
Definition FileInfo.cpp:492
void parse_includes()
Definition FileInfo.cpp:273
void rename_object_slot()
Definition FileInfo.cpp:345
void filemodel_updated()
Definition FileInfo.cpp:231
void add_datafile()
Definition FileInfo.cpp:360
QMenu * m_schema_menu
Definition FileInfo.hpp:76
void file_info_slot()
Definition FileInfo.cpp:442
Ui::FileInfo * m_ui
Definition FileInfo.hpp:72
bool check_includes()
Definition FileInfo.cpp:267
void remove_datafile_slot()
Definition FileInfo.cpp:432
QMenu * m_object_menu
Definition FileInfo.hpp:78
void activate_schema_context_menu(QPoint point)
Definition FileInfo.cpp:471
void edit_object_slot()
Definition FileInfo.cpp:310
static std::map< QString, std::set< QString > > s_missing_data_map
Definition FileInfo.hpp:85
void add_includefile(QFileDialog *fd)
Definition FileInfo.cpp:382
void add_schemafile()
Definition FileInfo.cpp:371
void delete_object_slot()
Definition FileInfo.cpp:336
static QStringList s_path_list
Definition FileInfo.hpp:87
void activate_object_context_menu(QPoint point)
Definition FileInfo.cpp:522
static std::map< QString, std::set< QString > > s_missing_schema_map
Definition FileInfo.hpp:84
static QString check_file_includes(const QString &file)
Definition FileInfo.cpp:121
static void setup_paths()
Definition FileInfo.cpp:31
std::map< QString, const tref > m_obj_map
Definition FileInfo.hpp:73
static QString s_data_path
Definition FileInfo.hpp:90
void remove_schemafile_slot()
Definition FileInfo.cpp:429
FileInfo(QString filename, QWidget *parent=0)
Definition FileInfo.cpp:181
static QList< QUrl > s_path_urls
Definition FileInfo.hpp:88
void add_missing_schemafiles()
Definition FileInfo.cpp:399
static QString s_schema_path
Definition FileInfo.hpp:89
static std::map< QString, std::map< QString, const tref > > s_obj_map
Definition FileInfo.hpp:83
static void show_file_info(const QString &filename)
Definition FileInfo.cpp:454
void remove_includefile(const QString &file)
Definition FileInfo.cpp:435
QUuid const m_uuid
Definition FileInfo.hpp:79
void parse_objects()
Definition FileInfo.cpp:240
Include QT Headers.