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

Toolbar with projections buttons (horizontal projections, vertical projections, select, zoom) located at the right-hand side of ProjectionsEditor (part of JobProjectionsWidget). More...

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

Public Slots

void onChangeActivityRequest (MaskEditorFlags::Activity value)
 
void onProjectionTabChange (MaskEditorFlags::Activity value)
 Change activity only if current activity is one of drawing mode (horizontal, vertical projections drawing). More...
 

Signals

void activityModeChanged (MaskEditorFlags::Activity)
 

Public Member Functions

 ProjectionsToolBar (ProjectionsEditorActions *editorActions, QWidget *parent=0)
 

Private Slots

void onActivityGroupChange (int)
 

Private Member Functions

void add_separator ()
 
MaskEditorFlags::Activity currentActivity () const
 
void setCurrentActivity (MaskEditorFlags::Activity value)
 
void setup_extratools_group ()
 
void setup_selection_group ()
 
void setup_shapes_group ()
 

Private Attributes

QButtonGroup * m_activityButtonGroup
 
ProjectionsEditorActionsm_editorActions
 
MaskEditorFlags::Activity m_previousActivity
 

Detailed Description

Toolbar with projections buttons (horizontal projections, vertical projections, select, zoom) located at the right-hand side of ProjectionsEditor (part of JobProjectionsWidget).

Definition at line 27 of file ProjectionsToolBar.h.

Constructor & Destructor Documentation

◆ ProjectionsToolBar()

ProjectionsToolBar::ProjectionsToolBar ( ProjectionsEditorActions editorActions,
QWidget *  parent = 0 
)

Definition at line 39 of file ProjectionsToolBar.cpp.

40  : QToolBar(parent)
41  , m_editorActions(editorActions)
42  , m_activityButtonGroup(new QButtonGroup(this))
43 {
45  setProperty("_q_custom_style_disabled", QVariant(true));
46 
50 
51 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
52  connect(m_activityButtonGroup, &QButtonGroup::idClicked, this,
54 #else
55  connect(m_activityButtonGroup,
56  static_cast<void (QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked), this,
58 #endif
59 
61 }
QButtonGroup * m_activityButtonGroup
MaskEditorFlags::Activity m_previousActivity
MaskEditorFlags::Activity currentActivity() const
ProjectionsEditorActions * m_editorActions
const int toolbar_icon_size

References currentActivity(), m_activityButtonGroup, m_previousActivity, onActivityGroupChange(), setup_extratools_group(), setup_selection_group(), setup_shapes_group(), and Constants::toolbar_icon_size.

Here is the call graph for this function:

Member Function Documentation

◆ activityModeChanged

void ProjectionsToolBar::activityModeChanged ( MaskEditorFlags::Activity  )
signal

◆ add_separator()

void ProjectionsToolBar::add_separator ( )
private

Definition at line 146 of file ProjectionsToolBar.cpp.

147 {
148  addWidget(new QLabel(" "));
149  addSeparator();
150  addWidget(new QLabel(" "));
151 }

Referenced by setup_selection_group(), and setup_shapes_group().

◆ currentActivity()

MaskEditorFlags::Activity ProjectionsToolBar::currentActivity ( ) const
private

◆ onActivityGroupChange

void ProjectionsToolBar::onActivityGroupChange ( int  )
privateslot

Definition at line 83 of file ProjectionsToolBar.cpp.

84 {
86 }
void activityModeChanged(MaskEditorFlags::Activity)

References activityModeChanged(), and currentActivity().

Referenced by ProjectionsToolBar().

Here is the call graph for this function:

◆ onChangeActivityRequest

void ProjectionsToolBar::onChangeActivityRequest ( MaskEditorFlags::Activity  value)
slot

Definition at line 63 of file ProjectionsToolBar.cpp.

64 {
65  if (value == MaskEditorFlags::PREVIOUS_MODE) {
67  } else {
69  setCurrentActivity(value);
70  }
72 }
void setCurrentActivity(MaskEditorFlags::Activity value)

References activityModeChanged(), currentActivity(), m_previousActivity, MaskEditorFlags::PREVIOUS_MODE, and setCurrentActivity().

Referenced by onProjectionTabChange(), and ProjectionsEditor::setup_connections().

Here is the call graph for this function:

◆ onProjectionTabChange

void ProjectionsToolBar::onProjectionTabChange ( MaskEditorFlags::Activity  value)
slot

Change activity only if current activity is one of drawing mode (horizontal, vertical projections drawing).

Definition at line 76 of file ProjectionsToolBar.cpp.

References currentActivity(), MaskEditorFlags::HORIZONTAL_LINE_MODE, onChangeActivityRequest(), and MaskEditorFlags::VERTICAL_LINE_MODE.

Referenced by ProjectionsEditor::setup_connections().

Here is the call graph for this function:

◆ setCurrentActivity()

void ProjectionsToolBar::setCurrentActivity ( MaskEditorFlags::Activity  value)
private

Definition at line 158 of file ProjectionsToolBar.cpp.

159 {
160  int button_index = static_cast<int>(value);
161  m_activityButtonGroup->button(button_index)->setChecked(true);
162 }

References m_activityButtonGroup.

Referenced by onChangeActivityRequest().

◆ setup_extratools_group()

void ProjectionsToolBar::setup_extratools_group ( )
private

Definition at line 136 of file ProjectionsToolBar.cpp.

137 {
138  auto saveButton = new QToolButton(this);
139  saveButton->setIcon(QIcon(":/MaskWidgets/images/maskeditor_save.svg"));
140  saveButton->setToolTip("Save created projections in multi-column ASCII file.");
141  addWidget(saveButton);
142  connect(saveButton, &QToolButton::clicked, m_editorActions,
144 }
void onSaveAction()
Performs saving of projections in ascii file.

References m_editorActions, and ProjectionsEditorActions::onSaveAction().

Referenced by ProjectionsToolBar().

Here is the call graph for this function:

◆ setup_selection_group()

void ProjectionsToolBar::setup_selection_group ( )
private

Definition at line 88 of file ProjectionsToolBar.cpp.

89 {
90  auto panButton = new QToolButton(this);
91  panButton->setIcon(QIcon(":/images/hand-right.svg"));
92  panButton->setToolTip(pan_zoom_tooltip);
93  panButton->setCheckable(true);
94  panButton->setChecked(true);
95  addWidget(panButton);
96 
97  auto resetViewButton = new QToolButton(this);
98  resetViewButton->setIcon(QIcon(":/images/camera-metering-center.svg"));
99  resetViewButton->setToolTip(reset_view_tooltip);
100  addWidget(resetViewButton);
101  connect(resetViewButton, &QToolButton::clicked, m_editorActions,
103 
104  add_separator();
105 
106  QToolButton* selectionButton = new QToolButton(this);
107  selectionButton->setIcon(QIcon(":/MaskWidgets/images/maskeditor_arrow.svg"));
108  selectionButton->setToolTip(selection_mode_tooltip);
109  selectionButton->setCheckable(true);
110  addWidget(selectionButton);
111 
113  m_activityButtonGroup->addButton(selectionButton, MaskEditorFlags::SELECTION_MODE);
114 }

References add_separator(), m_activityButtonGroup, m_editorActions, MaskEditorFlags::PAN_ZOOM_MODE, ProjectionsEditorActions::resetViewRequest(), and MaskEditorFlags::SELECTION_MODE.

Referenced by ProjectionsToolBar().

Here is the call graph for this function:

◆ setup_shapes_group()

void ProjectionsToolBar::setup_shapes_group ( )
private

Definition at line 116 of file ProjectionsToolBar.cpp.

117 {
118  auto horizontalLineButton = new QToolButton(this);
119  horizontalLineButton->setIcon(QIcon(":/MaskWidgets/images/maskeditor_horizontalline.svg"));
120  horizontalLineButton->setToolTip(horizontal_mode_tooltip);
121  horizontalLineButton->setCheckable(true);
122  addWidget(horizontalLineButton);
123 
124  auto verticalLineButton = new QToolButton(this);
125  verticalLineButton->setIcon(QIcon(":/MaskWidgets/images/maskeditor_verticalline.svg"));
126  verticalLineButton->setToolTip(vertical_mode_tooltip);
127  verticalLineButton->setCheckable(true);
128  addWidget(verticalLineButton);
129 
130  m_activityButtonGroup->addButton(verticalLineButton, MaskEditorFlags::VERTICAL_LINE_MODE);
131  m_activityButtonGroup->addButton(horizontalLineButton, MaskEditorFlags::HORIZONTAL_LINE_MODE);
132 
133  add_separator();
134 }

References add_separator(), MaskEditorFlags::HORIZONTAL_LINE_MODE, m_activityButtonGroup, and MaskEditorFlags::VERTICAL_LINE_MODE.

Referenced by ProjectionsToolBar().

Here is the call graph for this function:

Member Data Documentation

◆ m_activityButtonGroup

QButtonGroup* ProjectionsToolBar::m_activityButtonGroup
private

◆ m_editorActions

ProjectionsEditorActions* ProjectionsToolBar::m_editorActions
private

Definition at line 51 of file ProjectionsToolBar.h.

Referenced by setup_extratools_group(), and setup_selection_group().

◆ m_previousActivity

MaskEditorFlags::Activity ProjectionsToolBar::m_previousActivity
private

Definition at line 53 of file ProjectionsToolBar.h.

Referenced by ProjectionsToolBar(), and onChangeActivityRequest().


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