Signals | Public Member Functions | Protected Member Functions | List of all members
pqCheckableHeaderView Class Reference

A convenience QHeaderView painted with a QCheckBox. More...

#include <pqCheckableHeaderView.h>

Inherits QHeaderView.

Signals

void checkStateChanged (int section) const
 This signal is emitted whenever the state of the section header checkbox changes. More...
 

Public Member Functions

 pqCheckableHeaderView (Qt::Orientation orientation, QWidget *parent=nullptr)
 Constructs the pqCheckableHeaderView class. More...
 
 ~pqCheckableHeaderView () override
 
QVariant getCheckState (int section)
 Get the checkstate of the header checkbox for the section. More...
 

Protected Member Functions

void paintSection (QPainter *painter, const QRect &rect, int logicalIndex) const override
 Paint the header section. More...
 
void mousePressEvent (QMouseEvent *event) override
 Handle mouse press event on the header. More...
 
void updateModelCheckState (int section)
 Update the checkstate of all checkable items in the model based on the checkstate of the header checkbox. More...
 

Detailed Description

A convenience QHeaderView painted with a QCheckBox.

This allows for providing a global checkbox when the model items are user checkable. The checkbox is painted per section with one of the three states (checked, partially checked, unchecked) depending on the check state of individual items. Currently used in pqTreeView.

pqCheckableHeaderView is flagged to be investigated for deprecation. pqHeaderView provides a much simpler and more model-view friendly implementation that relies on the QAbstractItemModel simply respecting Qt::CheckStateRole for the header. It is recommended that you update your code to use pqHeaderView instead.

Definition at line 31 of file pqCheckableHeaderView.h.

Constructor & Destructor Documentation

◆ pqCheckableHeaderView()

pqCheckableHeaderView::pqCheckableHeaderView ( Qt::Orientation  orientation,
QWidget *  parent = nullptr 
)

Constructs the pqCheckableHeaderView class.

Parameters
[in]orientationOrientation for the header.
[in]parentThe parent object

◆ ~pqCheckableHeaderView()

pqCheckableHeaderView::~pqCheckableHeaderView ( )
override

Member Function Documentation

◆ getCheckState()

QVariant pqCheckableHeaderView::getCheckState ( int  section)

Get the checkstate of the header checkbox for the section.

Parameters
sectionThe section to get the checkstate of

◆ checkStateChanged

void pqCheckableHeaderView::checkStateChanged ( int  section) const
signal

This signal is emitted whenever the state of the section header checkbox changes.

The new state can be obtained using the getCheckState method.

Parameters
sectionThe section whose checkstate changed
See also
getCheckState

◆ paintSection()

void pqCheckableHeaderView::paintSection ( QPainter *  painter,
const QRect &  rect,
int  logicalIndex 
) const
overrideprotected

Paint the header section.

Depending on whether the top-level items in the model are checkable a checkbox is painted left-aligned on the header section. The checkbox is tristate and the state is decided based on the initial checkstates of model items. Reimplemented form QHeaderView::paintSection()

See also
QHeaderView::paintSection

◆ mousePressEvent()

void pqCheckableHeaderView::mousePressEvent ( QMouseEvent *  event)
overrideprotected

Handle mouse press event on the header.

Checks whether the mouse press was in the checkbox. Clicking on the checkbox triggers the checkStateChanged signal. Reimplemented from QWidget::mousePressEvent()

See also
QHeaderView::mousePressEvent

◆ updateModelCheckState()

void pqCheckableHeaderView::updateModelCheckState ( int  section)
protected

Update the checkstate of all checkable items in the model based on the checkstate of the header checkbox.

This will undo any individual item checkstate modifications.

Parameters
sectionThe section whose model checkstate is updated.

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