BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
gui2::QuickSimEditorToolBar Class Reference

Toolbar for QuickSimEditor. More...

Inheritance diagram for gui2::QuickSimEditorToolBar:
[legend]
Collaboration diagram for gui2::QuickSimEditorToolBar:
[legend]

Public Slots

void onProgressChanged (int value)
 Set progress bar to given value. More...
 

Signals

void cancelPressed ()
 
void instrumentSettingsRequest ()
 
void plotSettingsRequest ()
 
void realTimeRequest (bool)
 
void resetViewRequest ()
 
void runSimulationRequest ()
 

Public Member Functions

 QuickSimEditorToolBar (QWidget *parent=nullptr)
 

Private Member Functions

void add_wide_separator ()
 
void setup_plot_elements ()
 Setups actions to reset plot and access its settings. More...
 
void setup_simulation_elements ()
 Setups elements to run simulation. More...
 

Private Attributes

QCheckBox * m_liveCheckbox {nullptr}
 
QProgressBar * m_progressBar {nullptr}
 

Detailed Description

Toolbar for QuickSimEditor.

Contains live simulation button, cancel button, simulation progress bar and settings buttons.

Definition at line 29 of file quicksimeditortoolbar.h.

Constructor & Destructor Documentation

◆ QuickSimEditorToolBar()

gui2::QuickSimEditorToolBar::QuickSimEditorToolBar ( QWidget *  parent = nullptr)
explicit

Definition at line 25 of file quicksimeditortoolbar.cpp.

26  : QToolBar(parent), m_liveCheckbox(new QCheckBox), m_progressBar(new QProgressBar)
27 {
28  const int toolbar_icon_size = 24;
29  setIconSize(QSize(toolbar_icon_size, toolbar_icon_size));
30  setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
31 
34 
36 }
void setup_plot_elements()
Setups actions to reset plot and access its settings.
void setup_simulation_elements()
Setups elements to run simulation.
const int toolbar_icon_size

References add_wide_separator(), setup_plot_elements(), setup_simulation_elements(), and Constants::toolbar_icon_size.

Here is the call graph for this function:

Member Function Documentation

◆ add_wide_separator()

void gui2::QuickSimEditorToolBar::add_wide_separator ( )
private

Definition at line 45 of file quicksimeditortoolbar.cpp.

46 {
47  addWidget(new QLabel(" "));
48  addSeparator();
49  addWidget(new QLabel(" "));
50 }

Referenced by QuickSimEditorToolBar().

◆ cancelPressed

void gui2::QuickSimEditorToolBar::cancelPressed ( )
signal

◆ instrumentSettingsRequest

void gui2::QuickSimEditorToolBar::instrumentSettingsRequest ( )
signal

◆ onProgressChanged

void gui2::QuickSimEditorToolBar::onProgressChanged ( int  value)
slot

Set progress bar to given value.

Definition at line 40 of file quicksimeditortoolbar.cpp.

41 {
42  m_progressBar->setValue(value);
43 }

References m_progressBar.

Referenced by gui2::QuickSimEditor::setup_controller_connections().

◆ plotSettingsRequest

void gui2::QuickSimEditorToolBar::plotSettingsRequest ( )
signal

◆ realTimeRequest

void gui2::QuickSimEditorToolBar::realTimeRequest ( bool  )
signal

◆ resetViewRequest

void gui2::QuickSimEditorToolBar::resetViewRequest ( )
signal

◆ runSimulationRequest

void gui2::QuickSimEditorToolBar::runSimulationRequest ( )
signal

◆ setup_plot_elements()

void gui2::QuickSimEditorToolBar::setup_plot_elements ( )
private

Setups actions to reset plot and access its settings.

Definition at line 91 of file quicksimeditortoolbar.cpp.

92 {
93  auto reset_view = new QAction("Replot", this);
94  reset_view->setToolTip("Set plot axes to default range");
95  reset_view->setIcon(QIcon(":/icons/aspect-ratio.svg"));
96  connect(reset_view, &QAction::triggered, this, &QuickSimEditorToolBar::resetViewRequest);
97  addAction(reset_view);
98 }

References resetViewRequest().

Referenced by QuickSimEditorToolBar().

◆ setup_simulation_elements()

void gui2::QuickSimEditorToolBar::setup_simulation_elements ( )
private

Setups elements to run simulation.

Definition at line 54 of file quicksimeditortoolbar.cpp.

55 {
56  // live check box and label
57  const QString live_tooltip = "Automatically run simulation and update plot\n"
58  "on any multilayer change.";
59  m_liveCheckbox->setCheckState(Constants::live_simulation_default_on ? Qt::Checked
60  : Qt::Unchecked);
61  m_liveCheckbox->setToolTip(live_tooltip);
62  auto on_check_state = [this](int state) { realTimeRequest(state == Qt::Checked); };
63  connect(m_liveCheckbox, &QCheckBox::stateChanged, on_check_state);
64  addWidget(m_liveCheckbox);
65  auto label = new QLabel("Live");
66  label->setToolTip(live_tooltip);
67  addWidget(label);
68 
69  // run simulation
70  auto run_action = new QAction("Run", this);
71  run_action->setIcon(QIcon(":/icons/play-circle-outline.svg"));
72  run_action->setToolTip("Run simulation for current multilayer state");
73  connect(run_action, &QAction::triggered, this, &QuickSimEditorToolBar::runSimulationRequest);
74  addAction(run_action);
75 
76  // progress bar
77  m_progressBar->setFixedWidth(150);
78  m_progressBar->setTextVisible(false);
79  addWidget(m_progressBar);
80 
81  // cancel simulation
82  auto cancel_action = new QAction("Cancel", this);
83  cancel_action->setIcon(QIcon(":/icons/close-circle-outline.svg"));
84  cancel_action->setToolTip("Cancel running simulation");
85  connect(cancel_action, &QAction::triggered, this, &QuickSimEditorToolBar::cancelPressed);
86  addAction(cancel_action);
87 }
const bool live_simulation_default_on
Initial state of some widgets.
Definition: app_constants.h:29

References cancelPressed(), gui2::Constants::live_simulation_default_on, m_liveCheckbox, m_progressBar, realTimeRequest(), and runSimulationRequest().

Referenced by QuickSimEditorToolBar().

Member Data Documentation

◆ m_liveCheckbox

QCheckBox* gui2::QuickSimEditorToolBar::m_liveCheckbox {nullptr}
private

Definition at line 51 of file quicksimeditortoolbar.h.

Referenced by setup_simulation_elements().

◆ m_progressBar

QProgressBar* gui2::QuickSimEditorToolBar::m_progressBar {nullptr}
private

Definition at line 52 of file quicksimeditortoolbar.h.

Referenced by onProgressChanged(), and setup_simulation_elements().


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