DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ObjectEditor.hpp
Go to the documentation of this file.
1#ifndef OBJECTEDITOR_H
2#define OBJECTEDITOR_H
3
7#include "dbe/FileModel.hpp"
8
9#include <QWidget>
10#include <QStatusBar>
11#include <QSplitter>
12#include <QFormLayout>
13#include <QDialog>
14#include <QTableWidget>
15#include <QUuid>
16
17#include <memory>
18#include <map>
19
20namespace dbe
21{
22namespace Ui
23{
24class ObjectEditor;
25} // namespace Ui
26
28 public QWidget
29{
30 Q_OBJECT
31
32public:
33 explicit ObjectEditor(QWidget * parent = nullptr);
34 ObjectEditor ( std::string const & classname, QWidget * parent = nullptr );
35
36 ObjectEditor ( tref const & objref, QWidget * parent = nullptr, bool const iscopy = false );
37
39
40 void HideDetailWidget ( bool Hide );
41
42 bool CanCloseWindow();
43
44 bool IsEditorValid() const;
45
46 bool WasObjectChanged() const;
47
48 bool ParseToCreate ( std::string const & name, std::string const & filename );
49
50 void SetUsedForCopy ( bool Used );
51
52private:
53 void keyPressEvent(QKeyEvent* event) override;
54 void init();
55 void SetStatusBar();
56 void SetController();
57 void BuildWidgets();
58
61
63
64 void register_attribute_widget ( QString const & name, widgets::editors::base * widget );
65 void register_relation_widget ( QString const & name, widgets::editors::base * widget );
66
67 void BuildFileInfo();
68
69 // void closeEvent ( QCloseEvent * Event );
70
71 std::unique_ptr<dbe::Ui::ObjectEditor> ui;
72
73 std::string classname;
74 std::unique_ptr<dref> m_object_to_edit;
75
77 {
78 return m_object_to_edit->ref();
79 }
80
81 QStatusBar * StatusBar;
82
83 std::map<QString, widgets::editors::base *> this_widgets;
84
87
89
91
92 QHBoxLayout * MainLayout;
93 QTableWidget * WidgetTable;
94
96 QDialog * RenameWidget;
97 QLineEdit * LineEdit;
98 QPushButton * GoButton;
99
101 QDialog * MoveWidget;
104 QPushButton * MoveGoButton;
105
107 QStringList HorizontalHeaders;
108
109public slots:
110 void ResetObjectChanged();
111
112private slots:
113 void save_and_close();
114 void UpdateActions();
115 void ObjectChanged();
116 void ParseToSave();
117 void LaunchRenameObject();
118 void LaunchMoveObject();
119 void RenameObject();
120 void slot_external_rename_object ( QString const & src, dref const & obj );
121 void MoveObject();
122 void ActiveFileChanged ( const QString & File );
123 void UpdateObjectEditor ( QString const &, dref );
124 void UpdateObjectEditor (const QList<QPair<QString, QString>>&);
125 void UpdateObjectEditor ();
126 void ShouldCloseThisWindow ( QString src, dref key );
127
128signals:
131
132private:
133 QUuid const uuid;
134
135};
136} // namespace dbe
137#endif // OBJECTEDITOR_H
QTableWidget * WidgetTable
void set_attribute_widget(dunedaq::conffwk::attribute_t const &, widgets::editors::base *)
bool IsEditorValid() const
QPushButton * GoButton
std::map< QString, widgets::editors::base * > this_widgets
QDialog * MoveWidget
Move widget.
QLineEdit * LineEdit
void slot_external_rename_object(QString const &src, dref const &obj)
bool WasObjectChanged() const
void SetUsedForCopy(bool Used)
std::unique_ptr< dbe::Ui::ObjectEditor > ui
bool ParseToCreate(std::string const &name, std::string const &filename)
void set_tooltip(dunedaq::conffwk::attribute_t const &, widgets::editors::base *)
QStringList HorizontalHeaders
QPushButton * MoveGoButton
QStatusBar * StatusBar
std::unique_ptr< dref > m_object_to_edit
void register_attribute_widget(QString const &name, widgets::editors::base *widget)
CustomFileView * FileView
void HideDetailWidget(bool Hide)
QHBoxLayout * MainLayout
void register_relation_widget(QString const &name, widgets::editors::base *widget)
ObjectEditor(QWidget *parent=nullptr)
void ActiveFileChanged(const QString &File)
void keyPressEvent(QKeyEvent *event) override
void ShouldCloseThisWindow(QString src, dref key)
FileModel * IncludedFileModel
std::string classname
QDialog * RenameWidget
Rename widget.
dunedaq::conffwk::ConfigObject & ref(bool check_null=true) const
Include QT Headers.