BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ColumnResizer.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/CommonWidgets/ColumnResizer.h
6 //! @brief Defines class ColumnResizer
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 /*
16  * Copyright 2011 Aurélien Gâteau <agateau@kde.org>
17  * License: LGPL v2.1 or later (see COPYING)
18  * http://agateau.com/2011/clean-up-your-layouts-with-columnresizer/
19  * https://github.com/agateau/columnresizer
20  */
21 
22 #ifndef BORNAGAIN_GUI_COREGUI_VIEWS_COMMONWIDGETS_COLUMNRESIZER_H
23 #define BORNAGAIN_GUI_COREGUI_VIEWS_COMMONWIDGETS_COLUMNRESIZER_H
24 
25 #include <QFormLayout>
26 #include <QList>
27 #include <QObject>
28 
29 class QEvent;
30 class QGridLayout;
31 class QLayout;
32 class QWidget;
34 
35 //! The ColumnResizer class provides vertically aligned widgets from diferent layouts.
36 
37 class ColumnResizer : public QObject {
38  Q_OBJECT
39 public:
40  ColumnResizer(QObject* parent = 0);
41  virtual ~ColumnResizer();
42 
43  void addWidget(QWidget* widget);
44  void addWidgetsFromLayout(QLayout*, int column);
45  void addWidgetsFromGridLayout(QGridLayout*, int column);
46  void addWidgetsFromFormLayout(QFormLayout*, QFormLayout::ItemRole role);
47 
48  void dropWidgetsFromGridLayout(QGridLayout* layout);
49 
50 public slots:
51  void updateWidth();
52 
53 protected:
54  void removeWidget(QWidget* widget);
55  virtual bool eventFilter(QObject*, QEvent* event);
56 
57 private:
59 };
60 
61 #endif // BORNAGAIN_GUI_COREGUI_VIEWS_COMMONWIDGETS_COLUMNRESIZER_H
The ColumnResizer class provides vertically aligned widgets from diferent layouts.
Definition: ColumnResizer.h:37
void removeWidget(QWidget *widget)
virtual bool eventFilter(QObject *, QEvent *event)
ColumnResizer(QObject *parent=0)
virtual ~ColumnResizer()
ColumnResizerPrivate *const d
Definition: ColumnResizer.h:58
void addWidget(QWidget *widget)
void addWidgetsFromGridLayout(QGridLayout *, int column)
void addWidgetsFromFormLayout(QFormLayout *, QFormLayout::ItemRole role)
void dropWidgetsFromGridLayout(QGridLayout *layout)
void addWidgetsFromLayout(QLayout *, int column)