DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
SchemaMainWindow.hpp
Go to the documentation of this file.
1// DUNE DAQ modification notice:
2// This file has been modified from the original ATLAS dbe source for the DUNE DAQ project.
3// Fork baseline commit: dbe-02-12-17 (2022-05-12).
4// Renamed since fork: yes (from dbe/SchemaMainWindow.h to include/dbe/SchemaMainWindow.hpp).
5
6#ifndef MAINWINDOW_H
7#define MAINWINDOW_H
8
12#include <QDir>
13#include <QMainWindow>
14#include <QMenu>
15#include <QModelIndex>
16#include <QPrinter>
17#include <QSortFilterProxyModel>
18#include <memory>
19
20class QGraphicsView;
21
22namespace dbse {
23class SchemaTab;
24class SchemaFileInfo;
25
26namespace Ui {
27class SchemaMainWindow;
28} // namespace Ui
29
30class SchemaMainWindow : public QMainWindow
31{
32 Q_OBJECT
33public:
35 explicit SchemaMainWindow(QString SchemaFile, QWidget* parent = nullptr);
36
37private:
38 std::unique_ptr<dbse::Ui::SchemaMainWindow> ui;
39
42 QSortFilterProxyModel* m_proxyModel;
46 QString m_title{ "DUNE DAQ Configuration Schema editor" };
47 QString m_view_dir{ "." };
48 QString m_export_path{ "." };
49 QDir m_schema_directory{ "." };
50 QList<QUrl> m_path_urls;
52 QByteArray m_default_state;
55 QPrinter* m_printer{};
56
57 void InitialSettings();
58 void InitialTab();
59 void InitialTabCorner();
60 void SetController();
61 void BuildFileModel();
62 void BuildTableModel();
63 void update_window_title(QString text);
64 void write_view_file(const QString& fn, SchemaTab* tab);
65 [[nodiscard]] int ShouldSaveChanges() const;
66 [[nodiscard]] int ShouldSaveViewChanges() const;
67 bool check_schema_file(QString file);
68 bool save_schema_file(QString file);
69
70protected:
71 void closeEvent(QCloseEvent* event);
72 void OpenSchemaFile(QString SchemaFile);
73public slots:
74 void modifiedView(bool modified);
75 void update_models();
76private slots:
77 void OpenSchemaFile();
78 void CreateNewSchema();
80 void show_file_info(QModelIndex);
81 void show_file_info(QString);
82 void show_file_info();
84 void edit_settings();
85 // From main menu / shortcut
86 void SaveSchema();
87 // From FileView
88 void SaveSchemaFile();
89 bool SaveModifiedSchema();
90 void ChangeCursorRelationship(bool State);
91 void ChangeCursorInheritance(bool State);
92 void add_tab();
93 void SaveView();
94 void SaveViewAs();
95 void LoadView();
96 void NameView();
97 void LaunchClassEditor(QModelIndex Index);
98 void RemoveTab(int i);
99 void close_tab();
100 void CustomContextMenuFileView(QPoint Pos);
101 void CustomContextMenuTableView(QPoint Pos);
102 void AddNewClass();
103 void RemoveClass();
104 void editClass();
105 void SetSchemaFileActive();
106 void PrintCurrentView();
107 void export_current_view();
108 void toggle_case_sensitive(int);
109 void update_view();
110 void save_layout();
111 void restore_layout();
112 void default_layout();
113};
114
115} // namespace dbse
116#endif // MAINWINDOW_H
SchemaMainWindow(QString SchemaFile, QWidget *parent=nullptr)
SchemaSettings * m_settings
void connect_file_info(SchemaFileInfo *win)
void LaunchClassEditor(QModelIndex Index)
void CustomContextMenuTableView(QPoint Pos)
void ChangeCursorInheritance(bool State)
void write_view_file(const QString &fn, SchemaTab *tab)
void modifiedView(bool modified)
void CustomContextMenuFileView(QPoint Pos)
bool save_schema_file(QString file)
void update_window_title(QString text)
CustomFileModel * FileModel
QSortFilterProxyModel * m_proxyModel
void ChangeCursorRelationship(bool State)
CustomTableModel * TableModel
std::unique_ptr< dbse::Ui::SchemaMainWindow > ui
void closeEvent(QCloseEvent *event)
bool check_schema_file(QString file)
Including QT Headers.