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

The ClickableFrame class. More...

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

Public Slots

void setCaretPixmap (QString pixmapPath)
 Set the caret pixmap. More...
 

Signals

void singleClick (QPoint pos)
 Signal that is emitted upon a singleclick. More...
 

Public Member Functions

 ClickableFrame (QString header, QWidget *parent=0, Qt::WindowFlags f={})
 ClickableFrame constructor. More...
 
bool getClickable ()
 Check if the frame is clickable. More...
 
QString getHeader ()
 Get the header string. More...
 
QString getHoverStylesheet ()
 Get mouseover stylesheet. More...
 
QString getNormalStylesheet ()
 Get the default stylesheet. More...
 
void setClickable (bool status)
 Change clickable status. More...
 
void setHeader (QString header)
 Set the header string. More...
 
void setHoverStylesheet (QString stylesheet)
 Set mouseover stylesheet. More...
 
void setNormalStylesheet (QString stylesheet)
 Set the default stylesheet. More...
 

Protected Member Functions

void enterEvent (QEvent *event)
 Enter event for mouse over effects. More...
 
void leaveEvent (QEvent *event)
 Leave effect for mouse over effects. More...
 
void mousePressEvent (QMouseEvent *event)
 Reimplemented function to QMouseEvents. More...
 

Private Member Functions

void initFrame ()
 

Private Attributes

QLabel * caretLabel
 
bool clickable
 
QString header
 
QString hoverStylesheet
 
QLabel * nameLabel
 
QString normalStylesheet
 
QString tooltip
 

Detailed Description

The ClickableFrame class.

This class represents a clickable QFrame. It is used by a ContentPane. The class is used internally.

Definition at line 64 of file ClickableFrame.h.

Constructor & Destructor Documentation

◆ ClickableFrame()

ClickableFrame::ClickableFrame ( QString  header,
QWidget *  parent = 0,
Qt::WindowFlags  f = {} 
)
explicit

ClickableFrame constructor.

Parameters
headerHeader of the frame
parentParent widget or 0
fQt::WindowFlags

Definition at line 36 of file ClickableFrame.cpp.

37  : QFrame(parent, f), header(header)
38 {
39  this->setAttribute(Qt::WA_Hover, true);
40  this->clickable = true;
41  this->setCursor(Qt::PointingHandCursor);
42  QColor background = this->palette().color(QPalette::Window);
43  QColor lighter = background.lighter(110);
44  this->normalStylesheet = "";
45  this->hoverStylesheet = "QFrame {background-color: " + lighter.name() + ";}";
46  this->initFrame();
47 }
QString normalStylesheet
QString hoverStylesheet

References clickable, hoverStylesheet, initFrame(), and normalStylesheet.

Here is the call graph for this function:

Member Function Documentation

◆ enterEvent()

void ClickableFrame::enterEvent ( QEvent *  event)
protected

Enter event for mouse over effects.

Parameters
event

Definition at line 129 of file ClickableFrame.cpp.

130 {
131  if (this->clickable) {
132  this->setStyleSheet(this->hoverStylesheet);
133  }
134 }

References clickable, and hoverStylesheet.

◆ getClickable()

bool ClickableFrame::getClickable ( )

Check if the frame is clickable.

Returns
bool

Definition at line 59 of file ClickableFrame.cpp.

60 {
61  return this->clickable;
62 }

References clickable.

◆ getHeader()

QString ClickableFrame::getHeader ( )

Get the header string.

Returns
QString

Definition at line 70 of file ClickableFrame.cpp.

71 {
72  return this->header;
73 }

References header.

Referenced by ContentPane::getHeader().

◆ getHoverStylesheet()

QString ClickableFrame::getHoverStylesheet ( )

Get mouseover stylesheet.

Returns

Definition at line 91 of file ClickableFrame.cpp.

92 {
93  return this->hoverStylesheet;
94 }

References hoverStylesheet.

Referenced by ContentPane::getHeaderHoverStylesheet().

◆ getNormalStylesheet()

QString ClickableFrame::getNormalStylesheet ( )

Get the default stylesheet.

Returns
QString

Definition at line 81 of file ClickableFrame.cpp.

82 {
83  return this->normalStylesheet;
84 }

References normalStylesheet.

Referenced by ContentPane::getHeaderStylesheet().

◆ initFrame()

void ClickableFrame::initFrame ( )
private

Definition at line 101 of file ClickableFrame.cpp.

102 {
103  this->setSizePolicy(QSizePolicy::Policy::Preferred, QSizePolicy::Policy::Fixed);
104  this->setLayout(new QHBoxLayout());
105 
106  this->caretLabel = new QLabel();
107  this->caretLabel->setPixmap(QPixmap(":/qAccordionIcons/caret-right.png"));
108  this->layout()->addWidget(this->caretLabel);
109 
110  this->nameLabel = new QLabel();
111  nameLabel->setText(this->header);
112  this->layout()->addWidget(nameLabel);
113 
114  dynamic_cast<QHBoxLayout*>(this->layout())->addStretch();
115 
116  this->setStyleSheet(this->normalStylesheet);
117 }
QLabel * caretLabel
QLabel * nameLabel

References caretLabel, header, nameLabel, and normalStylesheet.

Referenced by ClickableFrame().

◆ leaveEvent()

void ClickableFrame::leaveEvent ( QEvent *  event)
protected

Leave effect for mouse over effects.

Parameters
event

Definition at line 136 of file ClickableFrame.cpp.

137 {
138  if (this->clickable) {
139  this->setStyleSheet(this->normalStylesheet);
140  }
141 }

References clickable, and normalStylesheet.

◆ mousePressEvent()

void ClickableFrame::mousePressEvent ( QMouseEvent *  event)
protected

Reimplemented function to QMouseEvents.

Parameters
event

Definition at line 119 of file ClickableFrame.cpp.

120 {
121  if (this->clickable) {
122  emit this->singleClick(event->pos());
123  event->accept();
124  } else {
125  event->ignore();
126  }
127 }
void singleClick(QPoint pos)
Signal that is emitted upon a singleclick.

References clickable, and singleClick().

◆ setCaretPixmap

void ClickableFrame::setCaretPixmap ( QString  pixmapPath)
slot

Set the caret pixmap.

Parameters
pixmapPath

Set the carret pixmap according to the state (expanded, retracted) of the ContentPane that this ClickableFrame belongs to.

Definition at line 96 of file ClickableFrame.cpp.

97 {
98  this->caretLabel->setPixmap(QPixmap(pixmapPath));
99 }

References caretLabel.

Referenced by ContentPane::closeContentPane(), and ContentPane::openContentPane().

◆ setClickable()

void ClickableFrame::setClickable ( bool  status)

Change clickable status.

Parameters
status
Warning
This function is currently not exposed by the qAccordion api.

Definition at line 49 of file ClickableFrame.cpp.

50 {
51  this->clickable = status;
52  if (status) {
53  this->setCursor(Qt::PointingHandCursor);
54  } else {
55  this->setCursor(Qt::ForbiddenCursor);
56  }
57 }

References clickable.

◆ setHeader()

void ClickableFrame::setHeader ( QString  header)

Set the header string.

Parameters
header

Definition at line 64 of file ClickableFrame.cpp.

65 {
66  this->header = header;
67  this->nameLabel->setText(this->header);
68 }

References header, and nameLabel.

◆ setHoverStylesheet()

void ClickableFrame::setHoverStylesheet ( QString  stylesheet)

Set mouseover stylesheet.

Parameters
stylesheet

Definition at line 86 of file ClickableFrame.cpp.

87 {
88  this->hoverStylesheet = stylesheet;
89 }

References hoverStylesheet.

Referenced by ContentPane::setHeaderHoverStylesheet().

◆ setNormalStylesheet()

void ClickableFrame::setNormalStylesheet ( QString  stylesheet)

Set the default stylesheet.

Parameters
stylesheet

Definition at line 75 of file ClickableFrame.cpp.

76 {
77  this->normalStylesheet = stylesheet;
78  this->setStyleSheet(this->normalStylesheet);
79 }

References normalStylesheet.

Referenced by ContentPane::setHeaderStylesheet().

◆ singleClick

void ClickableFrame::singleClick ( QPoint  pos)
signal

Signal that is emitted upon a singleclick.

Parameters
pos

Referenced by ContentPane::initHeaderFrame(), and mousePressEvent().

Member Data Documentation

◆ caretLabel

QLabel* ClickableFrame::caretLabel
private

Definition at line 141 of file ClickableFrame.h.

Referenced by initFrame(), and setCaretPixmap().

◆ clickable

bool ClickableFrame::clickable
private

◆ header

QString ClickableFrame::header
private

Definition at line 147 of file ClickableFrame.h.

Referenced by getHeader(), initFrame(), and setHeader().

◆ hoverStylesheet

QString ClickableFrame::hoverStylesheet
private

◆ nameLabel

QLabel* ClickableFrame::nameLabel
private

Definition at line 142 of file ClickableFrame.h.

Referenced by initFrame(), and setHeader().

◆ normalStylesheet

QString ClickableFrame::normalStylesheet
private

◆ tooltip

QString ClickableFrame::tooltip
private

Definition at line 148 of file ClickableFrame.h.


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