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

The WarningSign controls appearance of WarningSignWidget on top of parent widget. More...

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

Public Member Functions

 WarningSign (QWidget *parent)
 
void clear ()
 Clears warning message;. More...
 
bool isShown () const
 
void setArea (QWidget *area)
 
void setWarningHeader (const QString &warningHeader)
 
void setWarningMessage (const QString &warningMessage)
 Shows warning sign on the screen. More...
 

Protected Member Functions

bool eventFilter (QObject *obj, QEvent *event)
 

Private Member Functions

QPoint positionForWarningSign () const
 
void updateLabelGeometry ()
 

Private Attributes

QWidget * m_area
 
bool m_clear_just_had_happened
 
QString m_warning_header
 
QString m_warning_message
 
WarningSignWidgetm_warningWidget
 

Detailed Description

The WarningSign controls appearance of WarningSignWidget on top of parent widget.

Definition at line 25 of file WarningSign.h.

Constructor & Destructor Documentation

◆ WarningSign()

WarningSign::WarningSign ( QWidget *  parent)

Definition at line 28 of file WarningSign.cpp.

29  : QObject(parent)
30  , m_warning_header("Houston, we have a problem.")
31  , m_warningWidget(0)
32  , m_area(nullptr)
34 {
35  setArea(parent);
36 }
QWidget * m_area
Definition: WarningSign.h:49
WarningSignWidget * m_warningWidget
Definition: WarningSign.h:48
void setArea(QWidget *area)
Definition: WarningSign.cpp:78
bool m_clear_just_had_happened
Definition: WarningSign.h:50
QString m_warning_header
Definition: WarningSign.h:46

References setArea().

Here is the call graph for this function:

Member Function Documentation

◆ clear()

◆ eventFilter()

bool WarningSign::eventFilter ( QObject *  obj,
QEvent *  event 
)
protected

Definition at line 89 of file WarningSign.cpp.

90 {
91  if (event->type() == QEvent::Resize)
93 
94  return QObject::eventFilter(obj, event);
95 }
void updateLabelGeometry()
Definition: WarningSign.cpp:97

References updateLabelGeometry().

Here is the call graph for this function:

◆ isShown()

bool WarningSign::isShown ( ) const

Definition at line 84 of file WarningSign.cpp.

85 {
86  return (m_warningWidget == nullptr ? false : true);
87 }

References m_warningWidget.

◆ positionForWarningSign()

QPoint WarningSign::positionForWarningSign ( ) const
private

Definition at line 106 of file WarningSign.cpp.

107 {
108  ASSERT(m_area);
109 
110  int x = m_area->width() - xpos_offset;
111  int y = m_area->height() - ypos_offset;
112 
113  if (QAbstractScrollArea* scrollArea = dynamic_cast<QAbstractScrollArea*>(m_area)) {
114 
115  if (QScrollBar* horizontal = scrollArea->horizontalScrollBar()) {
116  if (horizontal->isVisible())
117  y -= horizontal->height();
118  }
119 
120  if (QScrollBar* vertical = scrollArea->verticalScrollBar()) {
121  if (vertical->isVisible())
122  x -= vertical->width();
123  }
124  }
125 
126  return QPoint(x, y);
127 }
#define ASSERT(condition)
Definition: Assert.h:31

References ASSERT, and m_area.

Referenced by updateLabelGeometry().

◆ setArea()

void WarningSign::setArea ( QWidget *  area)

Definition at line 78 of file WarningSign.cpp.

79 {
80  m_area = area;
81  m_area->installEventFilter(this);
82 }

References m_area.

Referenced by WarningSign().

◆ setWarningHeader()

void WarningSign::setWarningHeader ( const QString &  warningHeader)

Definition at line 50 of file WarningSign.cpp.

51 {
52  m_warning_header = warningHeader;
53 }

References m_warning_header.

◆ setWarningMessage()

void WarningSign::setWarningMessage ( const QString &  warningMessage)

Shows warning sign on the screen.

If clear of previous warning sign had happened just few msec ago, make a small delay, to stress its reapearance.

Definition at line 58 of file WarningSign.cpp.

59 {
60  ASSERT(m_area);
61 
64  QTimer::singleShot(50, this, [=]() { setWarningMessage(warningMessage); });
65  } else {
66 
67  m_warning_message = warningMessage;
68 
69  if (!m_warningWidget)
71 
74  m_warningWidget->show();
75  }
76 }
The WarningSignWidget is an transparent widget with warning sign pixmap intended to be overlayed onto...
void setWarningMessage(const QString &message)
void setWarningMessage(const QString &warningMessage)
Shows warning sign on the screen.
Definition: WarningSign.cpp:58

References ASSERT, m_area, m_clear_just_had_happened, m_warning_message, m_warningWidget, WarningSignWidget::setWarningMessage(), and updateLabelGeometry().

Referenced by PySampleWidget::generateCodeSnippet(), PythonScriptWidget::generatePythonScript(), RunFitControlWidget::onFittingError(), ParameterTuningWidget::onPropertyChanged(), DistributionWidget::plotItem(), and RealSpaceCanvas::updateScene().

Here is the call graph for this function:

◆ updateLabelGeometry()

void WarningSign::updateLabelGeometry ( )
private

Definition at line 97 of file WarningSign.cpp.

98 {
99  if (!m_warningWidget || !m_area)
100  return;
101 
102  QPoint pos = positionForWarningSign();
103  m_warningWidget->setPosition(pos.x(), pos.y());
104 }
void setPosition(int x, int y)
set geometry of widget around center point
QPoint positionForWarningSign() const

References m_area, m_warningWidget, positionForWarningSign(), and WarningSignWidget::setPosition().

Referenced by eventFilter(), and setWarningMessage().

Here is the call graph for this function:

Member Data Documentation

◆ m_area

QWidget* WarningSign::m_area
private

◆ m_clear_just_had_happened

bool WarningSign::m_clear_just_had_happened
private

Definition at line 50 of file WarningSign.h.

Referenced by clear(), and setWarningMessage().

◆ m_warning_header

QString WarningSign::m_warning_header
private

Definition at line 46 of file WarningSign.h.

Referenced by setWarningHeader().

◆ m_warning_message

QString WarningSign::m_warning_message
private

Definition at line 47 of file WarningSign.h.

Referenced by clear(), and setWarningMessage().

◆ m_warningWidget

WarningSignWidget* WarningSign::m_warningWidget
private

Definition at line 48 of file WarningSign.h.

Referenced by clear(), isShown(), setWarningMessage(), and updateLabelGeometry().


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