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:
34 ObjectEditor ( std::string const & classname, QWidget * parent = nullptr );
35
36 ObjectEditor ( tref const & objref, QWidget * parent = nullptr, bool const iscopy = false );
37
38 void HideDetailWidget ( bool Hide );
39
40 bool CanCloseWindow();
41
42 bool IsEditorValid() const;
43
44 bool WasObjectChanged() const;
45
46 bool ParseToCreate ( std::string const & name, std::string const & filename );
47
48 void SetUsedForCopy ( bool Used );
49
50private:
51 void SetStatusBar();
52 void SetController();
53 void BuildWidgets();
54
57
59
60 void register_attribute_widget ( QString const & name, widgets::editors::base * widget );
61 void register_relation_widget ( QString const & name, widgets::editors::base * widget );
62
63 void BuildFileInfo();
64
65 void closeEvent ( QCloseEvent * Event );
66
67 std::unique_ptr<dbe::Ui::ObjectEditor> ui;
68
69 std::string classname;
70 std::unique_ptr<dref> object_to_edit;
71
73 {
74 return object_to_edit->ref();
75 }
76
77 QStatusBar * StatusBar;
78
79 std::map<QString, widgets::editors::base *> this_widgets;
80
83
85
87
88 QHBoxLayout * MainLayout;
89 QTableWidget * WidgetTable;
90
92 QDialog * RenameWidget;
93 QLineEdit * LineEdit;
94 QPushButton * GoButton;
95
97 QDialog * MoveWidget;
100 QPushButton * MoveGoButton;
101
103 QStringList HorizontalHeaders;
104
105public slots:
106 void ResetObjectChanged();
107
108private slots:
109 void UpdateActions();
110 void ObjectChanged();
111 void ParseToSave();
112 void LaunchRenameObject();
113 void LaunchMoveObject();
114 void RenameObject();
115 void slot_external_rename_object ( QString const & src, dref const & obj );
116 void MoveObject();
117 void ActiveFileChanged ( const QString & File );
118 void UpdateObjectEditor ( QString const &, dref );
119 void UpdateObjectEditor (const QList<QPair<QString, QString>>&);
120 void UpdateObjectEditor ();
121 void ShouldCloseThisWindow ( QString const src, dref const );
122
123signals:
126
127private:
128 QUuid const uuid;
129
130};
131} // namespace dbe
132#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)
std::unique_ptr< dref > object_to_edit
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 *)
void ShouldCloseThisWindow(QString const src, dref const)
QStringList HorizontalHeaders
QPushButton * MoveGoButton
QStatusBar * StatusBar
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)
void ActiveFileChanged(const QString &File)
void closeEvent(QCloseEvent *Event)
ObjectEditor(std::string const &classname, QWidget *parent=nullptr)
FileModel * IncludedFileModel
std::string classname
QDialog * RenameWidget
Rename widget.
dunedaq::conffwk::ConfigObject & ref(bool check_null=true) const
Include QT Headers.