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 static QString get_schema_path() {return s_schema_path;}
43 static QString get_data_path() {return s_data_path;}
44 static void set_schema_path(const QString& path) {s_schema_path=path;}
45 static void set_data_path(const QString& path) {s_data_path=path;}
46
47 private slots:
48 void accept();
49 void reject();
50 void file_info_slot ();
51 void file_info_slot (const QString& fn);
52 void file_info_slot(QListWidgetItem*);
53 void edit_object_slot();
54 void edit_object_slot(QListWidgetItem*);
55 void delete_object_slot();
56 void rename_object_slot();
57 void activate_schema_context_menu(QPoint point);
58 void activate_data_context_menu(QPoint point);
59 void activate_object_context_menu(QPoint point);
60
61 void add_datafile();
62 void add_schemafile();
63 void add_includefile(QFileDialog* fd);
66
69 void remove_includefile(const QString& file);
70
71 void filemodel_updated();
72 private:
73 void parse_objects();
74 void parse_includes();
75 bool check_includes();
76 Ui::FileInfo* m_ui;
77 std::map<QString, const tref> m_obj_map;
78 QString m_filename;
79 bool m_readonly{false};
80 QMenu* m_schema_menu{nullptr};
81 QMenu* m_data_menu{nullptr};
82 QMenu* m_object_menu{nullptr};
83 QUuid const m_uuid;
84
85 bool m_updating{false};
86
87 static std::map<QString, std::map<QString, const tref>> s_obj_map;
88 static std::map<QString, std::set<QString>> s_missing_schema_map;
89 static std::map<QString, std::set<QString>> s_missing_data_map;
90
91 static QStringList s_path_list;
92 static QList<QUrl> s_path_urls;
93 static QString s_schema_path;
94 static QString s_data_path;
95 };
96} //namespace dbe
97#endif // DBE_FILEINFO_H
QString m_filename
Definition FileInfo.hpp:78
static bool match_path(const QString &file, const QString &top_file, const QStringList &includes)
Definition FileInfo.cpp:76
static QList< QUrl > get_path_urls()
Definition FileInfo.cpp:103
static QString prune_path(QString file)
Definition FileInfo.cpp:63
void keyPressEvent(QKeyEvent *event) override
Definition FileInfo.cpp:308
static void parse_all_objects()
Definition FileInfo.cpp:116
static void set_schema_path(const QString &path)
Definition FileInfo.hpp:44
QMenu * m_data_menu
Definition FileInfo.hpp:81
static QString get_data_path()
Definition FileInfo.hpp:43
void add_missing_datafiles()
Definition FileInfo.cpp:426
static QStringList get_path_list()
Definition FileInfo.cpp:109
~FileInfo()=default
void activate_data_context_menu(QPoint point)
Definition FileInfo.cpp:504
void parse_includes()
Definition FileInfo.cpp:285
void rename_object_slot()
Definition FileInfo.cpp:357
void filemodel_updated()
Definition FileInfo.cpp:243
void add_datafile()
Definition FileInfo.cpp:372
QMenu * m_schema_menu
Definition FileInfo.hpp:80
void file_info_slot()
Definition FileInfo.cpp:454
Ui::FileInfo * m_ui
Definition FileInfo.hpp:76
bool check_includes()
Definition FileInfo.cpp:279
void remove_datafile_slot()
Definition FileInfo.cpp:444
QMenu * m_object_menu
Definition FileInfo.hpp:82
static QString get_schema_path()
Definition FileInfo.hpp:42
void activate_schema_context_menu(QPoint point)
Definition FileInfo.cpp:483
void edit_object_slot()
Definition FileInfo.cpp:322
static std::map< QString, std::set< QString > > s_missing_data_map
Definition FileInfo.hpp:89
void add_includefile(QFileDialog *fd)
Definition FileInfo.cpp:394
void add_schemafile()
Definition FileInfo.cpp:383
void delete_object_slot()
Definition FileInfo.cpp:348
static QStringList s_path_list
Definition FileInfo.hpp:91
void activate_object_context_menu(QPoint point)
Definition FileInfo.cpp:534
static std::map< QString, std::set< QString > > s_missing_schema_map
Definition FileInfo.hpp:88
static QString check_file_includes(const QString &file)
Definition FileInfo.cpp:133
static void setup_paths()
Definition FileInfo.cpp:31
std::map< QString, const tref > m_obj_map
Definition FileInfo.hpp:77
static void set_data_path(const QString &path)
Definition FileInfo.hpp:45
static QString s_data_path
Definition FileInfo.hpp:94
void remove_schemafile_slot()
Definition FileInfo.cpp:441
FileInfo(QString filename, QWidget *parent=0)
Definition FileInfo.cpp:193
static QList< QUrl > s_path_urls
Definition FileInfo.hpp:92
void add_missing_schemafiles()
Definition FileInfo.cpp:411
static QString s_schema_path
Definition FileInfo.hpp:93
static std::map< QString, std::map< QString, const tref > > s_obj_map
Definition FileInfo.hpp:87
static void show_file_info(const QString &filename)
Definition FileInfo.cpp:466
void remove_includefile(const QString &file)
Definition FileInfo.cpp:447
QUuid const m_uuid
Definition FileInfo.hpp:83
void parse_objects()
Definition FileInfo.cpp:252
Include QT Headers.