DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dbe::TableTab Class Reference

#include <TableTab.hpp>

Inheritance diagram for dbe::TableTab:
[legend]
Collaboration diagram for dbe::TableTab:
[legend]

Public Slots

void ResetTabView ()
 

Signals

void sig_data_dropped (QMimeData const &data, Qt::DropAction)
 

Public Member Functions

 TableTab (QWidget *parent=0)
 Including Qt.
 
 ~TableTab ()
 
dbe::models::tableGetTableModel () const
 
dbe::models::tableselectionGetTableFilter () const
 
CustomDelegateGetTableDelegate () const
 
CustomTableViewGetTableView () const
 
void CreateModels ()
 
void DisconnectView ()
 
void ResetTableView ()
 
void ResizeHeaders ()
 

Protected Member Functions

void dropEvent (QDropEvent *event) override
 
void dragEnterEvent (QDragEnterEvent *event) override
 

Private Member Functions

void create_models ()
 
void reset_models ()
 

Private Attributes

dbe::models::tablethis_model
 
dbe::models::tableselectionthis_filter
 
CustomDelegatethis_delegate
 
CustomTableViewthis_view
 
QTabWidget * this_holder
 

Detailed Description

Definition at line 17 of file TableTab.hpp.

Constructor & Destructor Documentation

◆ TableTab()

dbe::TableTab::TableTab ( QWidget * parent = 0)

Including Qt.

Including dbe Construct a Tabletab and let everything unitialized until first use

Set the geometry and operational properties of the object

Parameters
parenta pointer to the parent widget

Adjusting layout

Definition at line 19 of file TableTab.cpp.

20 : QWidget ( parent ),
21 this_model ( nullptr ),
22 this_filter ( nullptr ),
23 this_delegate ( nullptr ),
24 this_view ( nullptr )
25{
26 this_view = new CustomTableView();
28 QVBoxLayout * TabLayout = new QVBoxLayout ( this );
29 TabLayout->addWidget ( this_view );
30 this_view->hide();
31 setAcceptDrops ( true );
32 this_holder = dynamic_cast<QTabWidget *> ( parent );
33}
CustomTableView * this_view
Definition TableTab.hpp:40
dbe::models::table * this_model
Definition TableTab.hpp:37
QTabWidget * this_holder
Definition TableTab.hpp:41
CustomDelegate * this_delegate
Definition TableTab.hpp:39
dbe::models::tableselection * this_filter
Definition TableTab.hpp:38

◆ ~TableTab()

dbe::TableTab::~TableTab ( )

Definition at line 35 of file TableTab.cpp.

36{
37 delete this_model;
38 delete this_filter;
39 delete this_delegate;
40 delete this_view;
41}

Member Function Documentation

◆ create_models()

void dbe::TableTab::create_models ( )
private

Definition at line 45 of file TableTab.cpp.

46{
47
48 if ( this_model == nullptr )
49 {
51 connect ( this, SIGNAL ( sig_data_dropped ( QMimeData const &, Qt::DropAction ) ),
53 SLOT ( slot_data_dropped ( QMimeData const &, Qt::DropAction ) ) );
54 }
55
56 this_delegate = this_delegate == nullptr ? new CustomDelegate() : this_delegate;
58}
void sig_data_dropped(QMimeData const &data, Qt::DropAction)

◆ CreateModels()

void dbe::TableTab::CreateModels ( )

Definition at line 66 of file TableTab.cpp.

67{
68 if ( this_model == nullptr )
69 {
71 }
72 else
73 {
75 }
76
77 connect ( this_model, SIGNAL ( ResetTab() ), this, SLOT ( ResetTabView() ) );
78}
void create_models()
Definition TableTab.cpp:45
void ResetTabView()
Definition TableTab.cpp:111
void reset_models()
Definition TableTab.cpp:60

◆ DisconnectView()

void dbe::TableTab::DisconnectView ( )

Definition at line 82 of file TableTab.cpp.

83{
84 this_view->setModel ( NULL );
85}

◆ dragEnterEvent()

void dbe::TableTab::dragEnterEvent ( QDragEnterEvent * event)
overrideprotected

Capture event of the pointer entering the tabletab while dragging something

Parameters
eventis a pointer to the associated qt event object

Definition at line 125 of file TableTab.cpp.

126{
127
128 // If there is nothing created then create as needed
129 CreateModels();
130
131 // Check that all mimetypes are supported
132 for ( auto const & mimetype : this_model->mimeTypes() )
133 {
134 if ( not event->mimeData()->hasFormat( mimetype.toStdString().c_str() ) )
135 {
136 event->ignore();
137 return;
138 }
139 }
140
141 // Support only copy actions
142 if ( event->proposedAction() != Qt::DropAction::CopyAction )
143 {
144 return;
145 }
146
147 event->acceptProposedAction();
148
149 // connect signals
150 MainWindow * mainwin = MainWindow::findthis();
151 connect ( GetTableView(), SIGNAL ( OpenEditor ( tref ) ), mainwin,
152 SLOT ( slot_launch_object_editor ( tref ) ), Qt::UniqueConnection );
153 connect ( GetTableDelegate(), SIGNAL ( CreateObjectEditorSignal ( tref ) ), mainwin,
154 SLOT ( slot_launch_object_editor ( tref ) ), Qt::UniqueConnection );
155}
static MainWindow * findthis()
void CreateModels()
Definition TableTab.cpp:66
CustomTableView * GetTableView() const
Definition TableTab.cpp:188
CustomDelegate * GetTableDelegate() const
Definition TableTab.cpp:183
QStringList mimeTypes() const override
Definition table.cpp:185
inner::configobject::tref tref
Definition tref.hpp:30

◆ dropEvent()

void dbe::TableTab::dropEvent ( QDropEvent * event)
overrideprotected

Capture a mouse release event of a dragged object

Properly emits a signal to the associated tablemodel, i.e. this is a thread safe operation

Parameters
eventis a pointer to the associated qt event object

Definition at line 166 of file TableTab.cpp.

167{
168 emit sig_data_dropped ( *event->mimeData(), event->proposedAction() );
169}

◆ GetTableDelegate()

dbe::CustomDelegate * dbe::TableTab::GetTableDelegate ( ) const

Definition at line 183 of file TableTab.cpp.

184{
185 return this_delegate;
186}

◆ GetTableFilter()

dbe::models::tableselection * dbe::TableTab::GetTableFilter ( ) const

Definition at line 178 of file TableTab.cpp.

179{
180 return this_filter;
181}

◆ GetTableModel()

dbe::models::table * dbe::TableTab::GetTableModel ( ) const

Definition at line 173 of file TableTab.cpp.

174{
175 return this_model;
176}

◆ GetTableView()

dbe::CustomTableView * dbe::TableTab::GetTableView ( ) const

Definition at line 188 of file TableTab.cpp.

189{
190 return this_view;
191}

◆ reset_models()

void dbe::TableTab::reset_models ( )
private

Definition at line 60 of file TableTab.cpp.

◆ ResetTableView()

void dbe::TableTab::ResetTableView ( )

Definition at line 87 of file TableTab.cpp.

88{
89 this_filter->setSourceModel ( this_model );
90
91 this_view->setItemDelegate ( this_delegate );
92 this_view->setModel ( this_filter );
93 this_view->show();
94
96}
void ResizeHeaders()
Definition TableTab.cpp:98

◆ ResetTabView

void dbe::TableTab::ResetTabView ( )
slot

Definition at line 111 of file TableTab.cpp.

112{
113 reset_models();
115 this_holder->setTabText ( this_holder->indexOf ( this ), this_model->get_class_name() );
116}
void ResetTableView()
Definition TableTab.cpp:87
QString get_class_name() const
Definition table.cpp:440

◆ ResizeHeaders()

void dbe::TableTab::ResizeHeaders ( )

Definition at line 98 of file TableTab.cpp.

99{
100 // TODO: at the moment the resize of columns creates too large columns when several data are in a cell
101 // the resize of rows is a little bit expensive with large tables
102 // to be re-evaluated
103 //
104 // if ( this_view->model() != nullptr )
105 // {
106 // this_view->resizeRowsToContents();
107 // this_view->resizeColumnsToContents();
108 // }
109}

◆ sig_data_dropped

void dbe::TableTab::sig_data_dropped ( QMimeData const & data,
Qt::DropAction  )
signal

Member Data Documentation

◆ this_delegate

CustomDelegate* dbe::TableTab::this_delegate
private

Definition at line 39 of file TableTab.hpp.

◆ this_filter

dbe::models::tableselection* dbe::TableTab::this_filter
private

Definition at line 38 of file TableTab.hpp.

◆ this_holder

QTabWidget* dbe::TableTab::this_holder
private

Definition at line 41 of file TableTab.hpp.

◆ this_model

dbe::models::table* dbe::TableTab::this_model
private

Definition at line 37 of file TableTab.hpp.

◆ this_view

CustomTableView* dbe::TableTab::this_view
private

Definition at line 40 of file TableTab.hpp.


The documentation for this class was generated from the following files: