BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
statuslabel.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // qt-mvvm: Model-view-view-model framework for large GUI applications
4 //
5 //! @file mvvm/view/mvvm/widgets/statuslabel.cpp
6 //! @brief Implements class CLASS?
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2020
11 //! @authors Gennady Pospelov et al, Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
18 #include <QColor>
19 #include <QFont>
20 #include <QPainter>
21 
22 using namespace ModelView;
23 
24 StatusLabel::StatusLabel(QWidget* parent)
25  : QFrame(parent), m_font("Monospace", Style::DefaultInfoBarTextSize(), QFont::Normal, false)
26 {
27  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
28  setFixedHeight(Style::DefaultInfoBarHeight());
29 }
30 
31 void StatusLabel::setText(const QString& text)
32 {
33  m_text = text;
34  update();
35 }
36 
37 void StatusLabel::setFont(const QFont& font)
38 {
39  m_font = font;
40  update();
41 }
42 
43 void StatusLabel::setPointSize(int pointSize)
44 {
45  m_font.setPointSize(pointSize);
46  update();
47 }
48 
49 void StatusLabel::setAlignment(Qt::Alignment alignment)
50 {
51  m_alignment = alignment;
52  update();
53 }
54 
55 void StatusLabel::paintEvent(QPaintEvent* event)
56 {
57  QFrame::paintEvent(event);
58 
59  QPainter painter(this);
60  painter.setBrush(QColor(Qt::black));
61  painter.setPen(QColor(Qt::black));
62  painter.setFont(m_font);
63 
64  QRect bbox(0, 0, geometry().width(), geometry().height());
65  const int gap(Utils::WidthOfLetterM() / 2); // make it smaller
66  auto textRect = bbox.adjusted(gap, 0, gap, 0);
67 
68  painter.fillRect(bbox, QColor(Qt::white));
69  painter.drawText(textRect, static_cast<int>(m_alignment), m_text);
70 }
void setText(const QString &text)
Definition: statuslabel.cpp:31
void setPointSize(int pointSize)
Definition: statuslabel.cpp:43
void setFont(const QFont &font)
Definition: statuslabel.cpp:37
void setAlignment(Qt::Alignment)
Definition: statuslabel.cpp:49
void paintEvent(QPaintEvent *event)
Definition: statuslabel.cpp:55
StatusLabel(QWidget *parent=nullptr)
Definition: statuslabel.cpp:24
Qt::Alignment m_alignment
Definition: statuslabel.h:45
Defines class CLASS?
MVVM_VIEWMODEL_EXPORT int DefaultInfoBarHeight()
Returns default height of info bar.
Definition: styleutils.cpp:23
MVVM_VIEWMODEL_EXPORT int DefaultInfoBarTextSize()
Returns default size of text on info bar.
Definition: styleutils.cpp:29
MVVM_VIEW_EXPORT int WidthOfLetterM()
Returns width of the letter 'M' deduced from current font metrics.
materialitems.h Collection of materials to populate MaterialModel.
Defines class CLASS?
Defines class CLASS?