BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SampleToolBar Class Reference

The SampleToolBar class represents a main toolbar on top of SampleView window. More...

Inheritance diagram for SampleToolBar:
[legend]
Collaboration diagram for SampleToolBar:
[legend]

Public Slots

void onMaterialEditorCall ()
 
void onScaleComboChanged (const QString &)
 
void onViewSelectionMode (int)
 

Signals

void centerView ()
 
void changeScale (double)
 
void deleteItems ()
 
void selectionMode (int)
 
void smartAlign ()
 

Public Member Functions

 SampleToolBar (SampleView *parent)
 main tool bar on top of SampleView window More...
 
void addSpacing (int width=2)
 Width of the spacing between buttons. More...
 
void addStyledExpand ()
 
void addStyledSeparator ()
 

Protected Member Functions

void contextMenuEvent (QContextMenuEvent *)
 

Private Attributes

QToolButton * m_centerViewButton
 
QToolButton * m_materialEditorButton
 
QButtonGroup * m_pointerModeGroup
 
QToolButton * m_RealSpaceViewerButton
 
QToolButton * m_removeButton
 
SampleViewm_sampleView
 
QComboBox * m_scaleCombo
 

Detailed Description

The SampleToolBar class represents a main toolbar on top of SampleView window.

Definition at line 32 of file SampleToolBar.h.

Constructor & Destructor Documentation

◆ SampleToolBar()

SampleToolBar::SampleToolBar ( SampleView parent)
explicit

main tool bar on top of SampleView window

Definition at line 29 of file SampleToolBar.cpp.

29  : StyledToolBar(parent), m_sampleView(parent)
30 {
31  // Select & Pan
32  auto selectionPointerButton = new QToolButton;
33  selectionPointerButton->setCheckable(true);
34  selectionPointerButton->setChecked(true);
35  selectionPointerButton->setIcon(QIcon(":/SampleDesigner/images/arrow-top-left.svg"));
36  selectionPointerButton->setToolTip("Edit mode.");
37 
38  auto handPointerButton = new QToolButton;
39  handPointerButton->setCheckable(true);
40  handPointerButton->setIcon(QIcon(":/SampleDesigner/images/hand-right.svg"));
41  handPointerButton->setToolTip("Pan mode (space).");
42 
43  m_pointerModeGroup = new QButtonGroup(this);
44  m_pointerModeGroup->addButton(selectionPointerButton, DesignerView::RUBBER_SELECTION);
45  m_pointerModeGroup->addButton(handPointerButton, DesignerView::HAND_DRAG);
46 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
47  connect(m_pointerModeGroup, &QButtonGroup::idClicked, this, &SampleToolBar::selectionMode);
48 #else
49  connect(m_pointerModeGroup,
50  static_cast<void (QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked), this,
52 #endif
53  addWidget(selectionPointerButton);
54  addWidget(handPointerButton);
55 
57 
58  // Remove item
59  m_removeButton = new QToolButton;
60  m_removeButton->setText("Remove item");
61  m_removeButton->setIcon(QIcon(":/SampleDesigner/images/delete.svg"));
62  m_removeButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
63  m_removeButton->setToolTip("Remove selected items and they child items (del).");
64  connect(m_removeButton, &QToolButton::clicked, this, &SampleToolBar::deleteItems);
65  addWidget(m_removeButton);
66 
68 
69  // Center view
70  m_centerViewButton = new QToolButton;
71  m_centerViewButton->setText("Center view");
72  m_centerViewButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
73  m_centerViewButton->setIcon(QIcon(":/SampleDesigner/images/camera-metering-center.svg"));
74  m_centerViewButton->setToolTip("Center view.");
75  connect(m_centerViewButton, &QToolButton::clicked, this, &SampleToolBar::centerView);
76  addWidget(m_centerViewButton);
77 
78  // Zoom
79  addWidget(new QLabel(" "));
80  m_scaleCombo = new QComboBox;
81  QStringList scales = QStringList() << "25%"
82  << "50%"
83  << "75%"
84  << "100%"
85  << "125%"
86  << "150%";
87  m_scaleCombo->addItems(scales);
88  m_scaleCombo->setCurrentIndex(3);
89 #if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)
90  connect(m_scaleCombo,
91  static_cast<void (QComboBox::*)(const QString&)>(&QComboBox::currentTextChanged), this,
93 #else
94  connect(m_scaleCombo,
95  static_cast<void (QComboBox::*)(const QString&)>(&QComboBox::currentIndexChanged), this,
97 #endif
98 
99  addWidget(m_scaleCombo);
100  addWidget(new QLabel(" Zoom "));
101 
102  // MaterialEditor
103  addWidget(new QLabel(" "));
104  m_materialEditorButton = new QToolButton;
105  m_materialEditorButton->setText("Material Editor");
106  m_materialEditorButton->setIcon(QIcon(":/SampleDesigner/images/alpha-m-box.svg"));
107  m_materialEditorButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
108  m_materialEditorButton->setToolTip("Open material editor (m).");
109  m_materialEditorButton->setShortcut(Qt::Key_M);
110  connect(m_materialEditorButton, &QToolButton::clicked, this,
112  addWidget(m_materialEditorButton);
113 
115 
116  // RealSpace 3D Viewer
117  addWidget(new QLabel(" "));
118  addWidget(new QLabel(" "));
119  m_RealSpaceViewerButton = new QToolButton;
120  m_RealSpaceViewerButton->setIcon(QIcon(":/SampleDesigner/images/rotate-3d.svg"));
121  m_RealSpaceViewerButton->setText("3D Viewer");
122  m_RealSpaceViewerButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
123  m_RealSpaceViewerButton->setToolTip("Open real space 3D viewer.");
124  connect(m_RealSpaceViewerButton, &QToolButton::clicked, m_sampleView,
126  addWidget(m_RealSpaceViewerButton);
127 }
void deleteItems()
void selectionMode(int)
QButtonGroup * m_pointerModeGroup
Definition: SampleToolBar.h:51
QToolButton * m_centerViewButton
Definition: SampleToolBar.h:53
QToolButton * m_removeButton
Definition: SampleToolBar.h:52
void onMaterialEditorCall()
QToolButton * m_materialEditorButton
Definition: SampleToolBar.h:55
void onScaleComboChanged(const QString &)
QComboBox * m_scaleCombo
Definition: SampleToolBar.h:54
SampleView * m_sampleView
Definition: SampleToolBar.h:57
void centerView()
QToolButton * m_RealSpaceViewerButton
Definition: SampleToolBar.h:56
void toggleRealSpaceView()
Definition: SampleView.cpp:46
StyledToolBar(QWidget *parent=nullptr)
void addStyledSeparator()

References StyledToolBar::addStyledSeparator(), centerView(), deleteItems(), DesignerView::HAND_DRAG, m_centerViewButton, m_materialEditorButton, m_pointerModeGroup, m_RealSpaceViewerButton, m_removeButton, m_sampleView, m_scaleCombo, onMaterialEditorCall(), onScaleComboChanged(), DesignerView::RUBBER_SELECTION, selectionMode(), and SampleView::toggleRealSpaceView().

Here is the call graph for this function:

Member Function Documentation

◆ addSpacing()

void StyledToolBar::addSpacing ( int  width = 2)
inherited

Width of the spacing between buttons.

Definition at line 37 of file StyledToolBar.cpp.

38 {
39  QString space;
40  space.fill(' ', width);
41  addWidget(new QLabel(space));
42 }

Referenced by ItemComboToolBar::setActionList().

◆ addStyledExpand()

void StyledToolBar::addStyledExpand ( )
inherited

Definition at line 44 of file StyledToolBar.cpp.

45 {
46  QWidget* empty = new QWidget();
47  empty->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
48  addWidget(empty);
49 }

Referenced by ItemComboToolBar::setActionList().

◆ addStyledSeparator()

void StyledToolBar::addStyledSeparator ( )
inherited

Definition at line 28 of file StyledToolBar.cpp.

29 {
30  addWidget(new QLabel(" "));
31  addSeparator();
32  addWidget(new QLabel(" "));
33 }

Referenced by SampleToolBar().

◆ centerView

void SampleToolBar::centerView ( )
signal

◆ changeScale

void SampleToolBar::changeScale ( double  )
signal

◆ contextMenuEvent()

void StyledToolBar::contextMenuEvent ( QContextMenuEvent *  )
protectedinherited

Definition at line 51 of file StyledToolBar.cpp.

52 {
53  // Context menu reimplemented to suppress the default one
54 }

◆ deleteItems

void SampleToolBar::deleteItems ( )
signal

◆ onMaterialEditorCall

void SampleToolBar::onMaterialEditorCall ( )
slot

Definition at line 141 of file SampleToolBar.cpp.

142 {
144 }
The ExternalProperty class defines custom QVariant property to carry the text, color and an identifie...
ExternalProperty selectMaterialProperty(const ExternalProperty &previous=ExternalProperty())
Calls material selector dialog.

References MaterialItemUtils::selectMaterialProperty().

Referenced by SampleToolBar().

Here is the call graph for this function:

◆ onScaleComboChanged

void SampleToolBar::onScaleComboChanged ( const QString &  scale_string)
slot

Definition at line 135 of file SampleToolBar.cpp.

136 {
137  double scale = scale_string.left(scale_string.indexOf("%")).toDouble() / 100.0;
138  emit changeScale(scale);
139 }
void changeScale(double)

References changeScale().

Referenced by SampleToolBar().

◆ onViewSelectionMode

void SampleToolBar::onViewSelectionMode ( int  mode)
slot

Definition at line 129 of file SampleToolBar.cpp.

130 {
132  m_pointerModeGroup->button(mode)->setChecked(true);
133 }

References DesignerView::HAND_DRAG, m_pointerModeGroup, and DesignerView::RUBBER_SELECTION.

Referenced by SampleView::connectSignals().

◆ selectionMode

void SampleToolBar::selectionMode ( int  )
signal

◆ smartAlign

void SampleToolBar::smartAlign ( )
signal

Member Data Documentation

◆ m_centerViewButton

QToolButton* SampleToolBar::m_centerViewButton
private

Definition at line 53 of file SampleToolBar.h.

Referenced by SampleToolBar().

◆ m_materialEditorButton

QToolButton* SampleToolBar::m_materialEditorButton
private

Definition at line 55 of file SampleToolBar.h.

Referenced by SampleToolBar().

◆ m_pointerModeGroup

QButtonGroup* SampleToolBar::m_pointerModeGroup
private

Definition at line 51 of file SampleToolBar.h.

Referenced by SampleToolBar(), and onViewSelectionMode().

◆ m_RealSpaceViewerButton

QToolButton* SampleToolBar::m_RealSpaceViewerButton
private

Definition at line 56 of file SampleToolBar.h.

Referenced by SampleToolBar().

◆ m_removeButton

QToolButton* SampleToolBar::m_removeButton
private

Definition at line 52 of file SampleToolBar.h.

Referenced by SampleToolBar().

◆ m_sampleView

SampleView* SampleToolBar::m_sampleView
private

Definition at line 57 of file SampleToolBar.h.

Referenced by SampleToolBar().

◆ m_scaleCombo

QComboBox* SampleToolBar::m_scaleCombo
private

Definition at line 54 of file SampleToolBar.h.

Referenced by SampleToolBar().


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