BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
RealSpaceToolBar.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/RealSpaceWidgets/RealSpaceToolBar.cpp
6 //! @brief Implements class RealSpaceWidget
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 
17 
18 #include <QCheckBox>
19 #include <QToolButton>
20 
21 namespace {
22 const double increaseLayerSizeScale = 1.25;
23 const double decreaseLayerSizeScale = 0.8;
24 } // namespace
25 
27  : StyledToolBar(parent)
28  , m_defaultViewButton(new QToolButton)
29  , m_sideViewButton(new QToolButton)
30  , m_topViewButton(new QToolButton)
31  , m_lockViewCheckBox(new QCheckBox)
32  , m_increaseLayerSizeButton(new QToolButton)
33  , m_decreaseLayerSizeButton(new QToolButton)
34  , m_savePictureButton(new QToolButton)
35 {
37 
38  // Save image -- this first so it is available for smaller widget sizes
39  m_savePictureButton->setText("Save Picture");
40  m_savePictureButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
41  m_savePictureButton->setToolTip("Save 3D real space view as .png file");
42  connect(m_savePictureButton, &QToolButton::clicked, this,
43  [&]() { emit RealSpaceToolBar::savePictureAction(); });
44  addWidget(m_savePictureButton);
45 
46  addSeparator();
47 
48  // Default View
49  m_defaultViewButton->setText("Default View");
50  // m_defaultViewButton->setIcon(QIcon(":/SampleDesigner/images/toolbar_recycle.png"));
51  m_defaultViewButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
52  m_defaultViewButton->setToolTip("Reset view and zoom level to default");
53  connect(m_defaultViewButton, &QToolButton::clicked, this, &RealSpaceToolBar::defaultViewAction);
54  addWidget(m_defaultViewButton);
55 
56  addSeparator();
57 
58  // Side View
59  m_sideViewButton->setText("Side View");
60  // m_sideViewButton->setIcon(QIcon(":/SampleDesigner/images/toolbar_recycle.png"));
61  m_sideViewButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
62  m_sideViewButton->setToolTip("View sample from the side at current zoom level");
63  connect(m_sideViewButton, &QToolButton::clicked, this, &RealSpaceToolBar::sideViewAction);
64  addWidget(m_sideViewButton);
65 
66  addSeparator();
67 
68  // Top View
69  m_topViewButton->setText("Top View");
70  // m_topViewButton->setIcon(QIcon(":/SampleDesigner/images/toolbar_recycle.png"));
71  m_topViewButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
72  m_topViewButton->setToolTip("View sample from the top at current zoom level");
73  connect(m_topViewButton, &QToolButton::clicked, this, &RealSpaceToolBar::topViewAction);
74  addWidget(m_topViewButton);
75 
76  addSeparator();
77 
78  // Lock View
79  m_lockViewCheckBox->setText("Lock View");
80  m_lockViewCheckBox->setToolTip("Lock/unlock current sample selection");
81  m_lockViewCheckBox->setCheckable(true);
82  connect(m_lockViewCheckBox, &QCheckBox::clicked, this,
83  [&]() { emit RealSpaceToolBar::lockViewAction(m_lockViewCheckBox->isChecked()); });
84  addWidget(m_lockViewCheckBox);
85 
86  addSeparator();
87 
88  // Increase layer size
89  m_increaseLayerSizeButton->setText("Enlarge");
90  // m_increaseLayerSizeButton->setIcon(QIcon(":/SampleDesigner/images/toolbar_recycle.png"));
91  m_increaseLayerSizeButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
92  m_increaseLayerSizeButton->setToolTip("Increase layer size");
93  connect(m_increaseLayerSizeButton, &QToolButton::clicked, this,
94  [&]() { emit RealSpaceToolBar::changeLayerSizeAction(increaseLayerSizeScale); });
95  addWidget(m_increaseLayerSizeButton);
96 
97  addSeparator();
98 
99  // Decrease layer size
100  m_decreaseLayerSizeButton->setText("Reduce");
101  // m_decreaseLayerSizeButton->setIcon(QIcon(":/SampleDesigner/images/toolbar_recycle.png"));
102  m_decreaseLayerSizeButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
103  m_decreaseLayerSizeButton->setToolTip("Decrease layer size");
104  connect(m_decreaseLayerSizeButton, &QToolButton::clicked, this,
105  [&]() { emit RealSpaceToolBar::changeLayerSizeAction(decreaseLayerSizeScale); });
106  addWidget(m_decreaseLayerSizeButton);
107 
108  addSeparator();
109 }
Defines class RealSpaceWidget.
void changeLayerSizeAction(double)
QToolButton * m_decreaseLayerSizeButton
void savePictureAction()
QToolButton * m_savePictureButton
void defaultViewAction()
QToolButton * m_sideViewButton
QCheckBox * m_lockViewCheckBox
QToolButton * m_defaultViewButton
QToolButton * m_topViewButton
QToolButton * m_increaseLayerSizeButton
RealSpaceToolBar(QWidget *parent=nullptr)
void lockViewAction(bool)
The StyledToolBar class represents our standard narrow toolbar with the height 24 pixels.
Definition: StyledToolBar.h:22
Defines namespace Constants.
const int styled_toolbar_height