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

The JobPropertiesWidget class holds component editor for JobItem. More...

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

Public Types

enum  ETabId { JOB_PROPERTIES , JOB_COMMENTS }
 

Public Member Functions

 JobPropertiesWidget (QWidget *parent=nullptr)
 
virtual QList< QAction * > actionList ()
 
SessionItemcurrentItem ()
 
const SessionItemcurrentItem () const
 
QSize minimumSizeHint () const
 
virtual void setItem (SessionItem *item)
 
QSize sizeHint () const
 

Protected Member Functions

void contextMenuEvent (QContextMenuEvent *)
 
virtual void hideEvent (QHideEvent *)
 
virtual void showEvent (QShowEvent *)
 
void subscribeToItem ()
 
void unsubscribeFromItem ()
 

Private Slots

void onTextChanged ()
 

Private Member Functions

JobItemjobItem ()
 
void updateItem ()
 

Private Attributes

bool m_block_update
 
QTextEdit * m_commentsEditor
 
ComponentEditorm_componentEditor
 
SessionItemControllerm_itemController
 
QTabWidget * m_tabWidget
 

Detailed Description

The JobPropertiesWidget class holds component editor for JobItem.

Part of JobSelectorWidget, resides at lower left corner of JobView.

Definition at line 28 of file JobPropertiesWidget.h.

Member Enumeration Documentation

◆ ETabId

Enumerator
JOB_PROPERTIES 
JOB_COMMENTS 

Definition at line 31 of file JobPropertiesWidget.h.

Constructor & Destructor Documentation

◆ JobPropertiesWidget()

JobPropertiesWidget::JobPropertiesWidget ( QWidget *  parent = nullptr)
explicit

Definition at line 25 of file JobPropertiesWidget.cpp.

26  : SessionItemWidget(parent)
27  , m_tabWidget(new QTabWidget)
29  , m_commentsEditor(new QTextEdit)
30  , m_block_update(false)
31 {
32  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding);
33  setWindowTitle(Constants::JobPropertiesWidgetName);
34 
35  auto mainLayout = new QVBoxLayout;
36  mainLayout->setMargin(0);
37  mainLayout->setSpacing(0);
38  mainLayout->setContentsMargins(0, 0, 0, 0);
39 
40  m_tabWidget->setTabPosition(QTabWidget::South);
41  m_tabWidget->insertTab(JOB_PROPERTIES, m_componentEditor, "Job Properties");
42  m_tabWidget->insertTab(JOB_COMMENTS, m_commentsEditor, "Details");
43 
44  mainLayout->addWidget(m_tabWidget);
45  setLayout(mainLayout);
46 
47  connect(m_commentsEditor, &QTextEdit::textChanged, this, &JobPropertiesWidget::onTextChanged);
48 }
Component editor for SessionItem.
ComponentEditor * m_componentEditor
SessionItemWidget(QWidget *parent=0)
const QString JobPropertiesWidgetName

References JOB_COMMENTS, JOB_PROPERTIES, Constants::JobPropertiesWidgetName, m_commentsEditor, m_componentEditor, m_tabWidget, and onTextChanged().

Here is the call graph for this function:

Member Function Documentation

◆ actionList()

QList< QAction * > SessionItemWidget::actionList ( )
virtualinherited

◆ contextMenuEvent()

void JobPropertiesWidget::contextMenuEvent ( QContextMenuEvent *  )
protected

Definition at line 79 of file JobPropertiesWidget.cpp.

80 {
81  // Reimplemented to suppress menu from main window
82 }

◆ currentItem() [1/2]

SessionItem * SessionItemWidget::currentItem ( )
inherited

Definition at line 41 of file SessionItemWidget.cpp.

42 {
43  return const_cast<SessionItem*>(static_cast<const SessionItemWidget*>(this)->currentItem());
44 }
The SessionItemWidget class is a base for all widgets representing the content of SessionItem.
SessionItem * currentItem()

Referenced by RectangularDetectorEditor::detectorItem(), SphericalDetectorEditor::detectorItem(), FitFlowWidget::fitSuiteItem(), DistributionEditor::groupItem(), DepthProbeInstrumentEditor::instrumentItem(), EnvironmentEditor::instrumentItem(), GISASBeamEditor::instrumentItem(), GISASDetectorEditor::instrumentItem(), GISASInstrumentEditor::instrumentItem(), OffSpecularBeamEditor::instrumentItem(), OffSpecularInstrumentEditor::instrumentItem(), PolarizationAnalysisEditor::instrumentItem(), SpecularBeamEditor::instrumentItem(), SpecularInstrumentEditor::instrumentItem(), RealDataMaskWidget::intensityDataItem(), IntensityDataCanvas::intensityDataItem(), IntensityDataProjectionsWidget::intensityDataItem(), IntensityDataWidget::intensityDataItem(), ProjectionsPlot::intensityItem(), ColorMap::intensityItem(), DetectorPresenter::itemPresentation(), InstrumentPresenter::itemPresentation(), JobResultsPresenter::itemPresentation(), FitComparisonWidget::jobItem(), FitComparisonWidget1D::jobItem(), FitParameterWidget::jobItem(), RunFitControlWidget::jobItem(), jobItem(), ParameterTuningWidget::jobItem(), SpecularDataImportWidget::realDataItem(), ItemComboWidget::setPresentation(), JobResultsPresenter::setPresentation(), SpecularDataCanvas::specularDataItem(), SpecularDataImportWidget::specularDataItem(), SpecularDataWidget::specularDataItem(), SpecularPlot::specularItem(), ItemComboWidget::subscribeToItem(), DistributionEditor::subscribeToItem(), GISASDetectorEditor::subscribeToItem(), PolarizationAnalysisEditor::subscribeToItem(), IntensityDataPropertyWidget::subscribeToItem(), subscribeToItem(), ProjectionsPropertyPanel::subscribeToItem(), ProjectionsPlot::unsubscribeFromChildren(), and Plot1D::viewItem().

◆ currentItem() [2/2]

const SessionItem * SessionItemWidget::currentItem ( ) const
inherited

Definition at line 46 of file SessionItemWidget.cpp.

47 {
48  return m_itemController->currentItem();
49 }
SessionItemController * m_itemController

References SessionItemController::currentItem(), and SessionItemWidget::m_itemController.

Here is the call graph for this function:

◆ hideEvent()

void SessionItemWidget::hideEvent ( QHideEvent *  )
protectedvirtualinherited

Definition at line 56 of file SessionItemWidget.cpp.

57 {
59 }
void unsubscribe()
Fully unsubscribes the parent from listening item's signals.

References SessionItemWidget::m_itemController, and SessionItemController::unsubscribe().

Here is the call graph for this function:

◆ jobItem()

JobItem * JobPropertiesWidget::jobItem ( )
private

Definition at line 106 of file JobPropertiesWidget.cpp.

107 {
108  return dynamic_cast<JobItem*>(currentItem());
109 }

References SessionItemWidget::currentItem().

Referenced by onTextChanged(), and updateItem().

Here is the call graph for this function:

◆ minimumSizeHint()

QSize JobPropertiesWidget::minimumSizeHint ( ) const

Definition at line 55 of file JobPropertiesWidget.cpp.

56 {
58 }
int PropertyPanelWidth()
Returns typical width of the vertical property panel.
Definition: StyleUtils.cpp:121

References StyleUtils::PropertyPanelWidth().

Here is the call graph for this function:

◆ onTextChanged

void JobPropertiesWidget::onTextChanged ( )
privateslot

Definition at line 84 of file JobPropertiesWidget.cpp.

85 {
86  m_block_update = true;
87  jobItem()->setComments(m_commentsEditor->toPlainText());
88  m_block_update = false;
89 }
void setComments(const QString &comments)
Definition: JobItem.cpp:194

References jobItem(), m_block_update, m_commentsEditor, and JobItem::setComments().

Referenced by JobPropertiesWidget().

Here is the call graph for this function:

◆ setItem()

void SessionItemWidget::setItem ( SessionItem item)
virtualinherited

Reimplemented in SpecularPlotCanvas, SpecularDataImportWidget, SpecularDataWidget, IntensityDataWidget, SpecularDataCanvas, ProjectionsWidget, IntensityDataCanvas, ColorMapCanvas, and Plot1DCanvas.

Definition at line 28 of file SessionItemWidget.cpp.

29 {
31 
32  if (isVisible())
34 }
void setItem(SessionItem *item)
void subscribe()
Subscribe parent to item's signals.

References SessionItemWidget::m_itemController, SessionItemController::setItem(), and SessionItemController::subscribe().

Referenced by IntensityDataWidget::onFFTAction(), JobSelectorWidget::onSelectionChanged(), ProjectionsEditor::resetContext(), ProjectionsEditor::setContext(), MaskGraphicsProxy::setIntensityItem(), FitSessionWidget::setItem(), Plot1DCanvas::setItem(), InstrumentEditorWidget::setItem(), ColorMapCanvas::setItem(), IntensityDataCanvas::setItem(), ProjectionsWidget::setItem(), SpecularDataCanvas::setItem(), DistributionDialog::setItem(), IntensityDataWidget::setItem(), SpecularDataWidget::setItem(), SpecularDataImportWidget::setItem(), SpecularPlotCanvas::setItem(), ItemComboWidget::setPresentation(), GISASInstrumentEditor::subscribeToItem(), OffSpecularInstrumentEditor::subscribeToItem(), SpecularInstrumentEditor::subscribeToItem(), FitComparisonWidget::subscribeToItem(), FitComparisonWidget1D::subscribeToItem(), and GISASDetectorEditor::updateDetectorPresenter().

Here is the call graph for this function:

◆ showEvent()

void SessionItemWidget::showEvent ( QShowEvent *  )
protectedvirtualinherited

Definition at line 51 of file SessionItemWidget.cpp.

52 {
54 }

References SessionItemWidget::m_itemController, and SessionItemController::subscribe().

Here is the call graph for this function:

◆ sizeHint()

QSize JobPropertiesWidget::sizeHint ( ) const

Definition at line 50 of file JobPropertiesWidget.cpp.

51 {
53 }

References StyleUtils::PropertyPanelWidth().

Here is the call graph for this function:

◆ subscribeToItem()

void JobPropertiesWidget::subscribeToItem ( )
protectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 60 of file JobPropertiesWidget.cpp.

61 {
63  [this](const QString& name) {
65  updateItem();
66  },
67  this);
68 
70 
71  updateItem();
72 }
void setItem(SessionItem *item)
static const QString P_COMMENTS
Definition: JobItem.h:44
void setOnPropertyChange(std::function< void(QString)> f, const void *caller=0)
Definition: ModelMapper.cpp:35
ModelMapper * mapper()
Returns the current model mapper of this item. Creates new one if necessary.
QString const & name(EShape k)
Definition: particles.cpp:21

References SessionItemWidget::currentItem(), m_componentEditor, SessionItem::mapper(), RealSpace::Particles::name(), JobItem::P_COMMENTS, ComponentEditor::setItem(), ModelMapper::setOnPropertyChange(), and updateItem().

Here is the call graph for this function:

◆ unsubscribeFromItem()

void JobPropertiesWidget::unsubscribeFromItem ( )
protectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 74 of file JobPropertiesWidget.cpp.

75 {
76  m_componentEditor->setItem(nullptr);
77 }

References m_componentEditor, and ComponentEditor::setItem().

Here is the call graph for this function:

◆ updateItem()

void JobPropertiesWidget::updateItem ( )
private

Definition at line 91 of file JobPropertiesWidget.cpp.

92 {
93  if (m_block_update)
94  return;
95 
96  if (JobItem* item = jobItem()) {
97  if (item->getStatus() == "Failed")
98  m_tabWidget->tabBar()->setTabTextColor(JOB_COMMENTS, Qt::red);
99  else
100  m_tabWidget->tabBar()->setTabTextColor(JOB_COMMENTS, Qt::black);
101 
102  m_commentsEditor->setText(item->getComments());
103  }
104 }

References JOB_COMMENTS, jobItem(), m_block_update, m_commentsEditor, and m_tabWidget.

Referenced by subscribeToItem().

Here is the call graph for this function:

Member Data Documentation

◆ m_block_update

bool JobPropertiesWidget::m_block_update
private

Definition at line 52 of file JobPropertiesWidget.h.

Referenced by onTextChanged(), and updateItem().

◆ m_commentsEditor

QTextEdit* JobPropertiesWidget::m_commentsEditor
private

Definition at line 51 of file JobPropertiesWidget.h.

Referenced by JobPropertiesWidget(), onTextChanged(), and updateItem().

◆ m_componentEditor

ComponentEditor* JobPropertiesWidget::m_componentEditor
private

Definition at line 50 of file JobPropertiesWidget.h.

Referenced by JobPropertiesWidget(), subscribeToItem(), and unsubscribeFromItem().

◆ m_itemController

◆ m_tabWidget

QTabWidget* JobPropertiesWidget::m_tabWidget
private

Definition at line 49 of file JobPropertiesWidget.h.

Referenced by JobPropertiesWidget(), and updateItem().


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