KD Chart 2  [rev.2.8]
Public Member Functions | Protected Attributes | List of all members
KDChart::AutoSpacerLayoutItem Class Reference

#include <KDChartLayoutItems.h>

Inheritance diagram for KDChart::AutoSpacerLayoutItem:
Inheritance graph
[legend]
Collaboration diagram for KDChart::AutoSpacerLayoutItem:
Collaboration graph
[legend]

Public Member Functions

 AutoSpacerLayoutItem (bool layoutIsAtTopPosition, QHBoxLayout *rightLeftLayout, bool layoutIsAtLeftPosition, QVBoxLayout *topBottomLayout)
 
Qt::Orientations expandingDirections () const override
 
QRect geometry () const override
 
bool isEmpty () const override
 
QSize maximumSize () const override
 
QSize minimumSize () const override
 
void paint (QPainter *) override
 
virtual void paintAll (QPainter &painter)
 Default impl: just call paint. More...
 
virtual void paintCtx (PaintContext *context)
 Default impl: Paint the complete item using its layouted position and size. More...
 
QLayout * parentLayout ()
 
void removeFromParentLayout ()
 
void setGeometry (const QRect &r) override
 
void setParentLayout (QLayout *lay)
 
virtual void setParentWidget (QWidget *widget)
 Inform the item about its widget: This enables the item, to trigger that widget's update, whenever the size of the item's contents has changed. More...
 
QSize sizeHint () const override
 
virtual void sizeHintChanged () const
 Report changed size hint: ask the parent widget to recalculate the layout. More...
 

Protected Attributes

QWidgetmParent
 
QLayout * mParentLayout
 

Detailed Description

   @brief An empty layout item
   \internal

   The AutoSpacerLayoutItem is automatically put into each corner cell of
   the planeLayout grid: one of its reference-layouts is a QVBoxLayout (for
   the top, or bottom axes resp.), the other one is a QHBoxLayout (for the
   left/right sided axes).

   The spacer reserves enough space so all of the AbstractAreas contained
   in the two reference-layouts can display not only their in-bounds
   content but also their overlapping content reaching out of their area.

   KD Chart's layouting is applying this schema:
    +------------------+-------------------------+-----------------+
    | +--------------+ | +---------------------+ | +-------------+ |
    | |              | | |  QVBoxLayout for    | | |             | |
    | |     AUTO     | | |  the top axis/axes  | | |    AUTO     | |
    | |    SPACER    | | +---------------------+ | |   SPACER    | |
    | |     ITEM     | | |                     | | |    ITEM     | |
    | |              | | |                     | | |             | |
    | +--------------+ | +---------------------+ | +-------------+ |
    +------------------+-------------------------+-----------------+
    | +--------+-----+ | +---------------------+ | +-------+-----+ |
    | |        |     | | |                     | | |       |     | |
    | |        |     | | |                     | | |       |     | |
    | | QHBox- |     | | |                     | | | Right |     | |
    | | Layout |     | | |                     | | |       |     | |
    | |        |     | | |                     | | | axes  |     | |
    | | for    |     | | |                     | | |       |     | |
    | |        |     | | |                     | | | layout|     | |
    | | the    |     | | |      DIAGRAM(s)     | | |       |     | |
    | |        |     | | |                     | | |       |     | |
    | | left   |     | | |                     | | |       |     | |
    | |        |     | | |                     | | |       |     | |
    | | axis   |     | | |                     | | |       |     | |
    | | or     |     | | |                     | | |       |     | |
    | | axes   |     | | |                     | | |       |     | |
    | |        |     | | |                     | | |       |     | |
    | +--------+-----+ | +---------------------+ | +-------+-----+ |
    +------------------+-------------------------+-----------------+
    | +--------------+ | +---------------------+ | +-------------+ |
    | |              | | |   QVBoxLayout for   | | |             | |
    | |    AUTO      | | |   the bottom axes   | | |    AUTO     | |
    | |   SPACER     | | +---------------------+ | |   SPACER    | |
    | |    ITEM      | | |                     | | |    ITEM     | |
    | |              | | |                     | | |             | |
    | +--------------+ | +---------------------+ | +-------------+ |
    +------------------+-------------------------+-----------------+
   A typical use case is an Abscissa axis with long labels:
    2 -|
       |
    1 -|
       |
    0 -+------------------------------------
       |        |        |        |        |
    Monday  Tuesday  Wednesday Thursday Friday

The last letters of the word "Friday" would have been cut off in previous versions of KD Chart - that is if you did not call KDChart::Chart::setGlobalLeading().

Now the word will be shown completely because there is an auto-spacer-item taking care for the additional space needed in the lower/right corner.

Definition at line 448 of file KDChartLayoutItems.h.

Constructor & Destructor Documentation

◆ AutoSpacerLayoutItem()

KDChart::AutoSpacerLayoutItem::AutoSpacerLayoutItem ( bool  layoutIsAtTopPosition,
QHBoxLayout *  rightLeftLayout,
bool  layoutIsAtLeftPosition,
QVBoxLayout *  topBottomLayout 
)

Definition at line 885 of file KDChartLayoutItems.cpp.

Member Function Documentation

◆ expandingDirections()

Qt::Orientations KDChart::AutoSpacerLayoutItem::expandingDirections ( ) const
override

Definition at line 896 of file KDChartLayoutItems.cpp.

◆ geometry()

QRect KDChart::AutoSpacerLayoutItem::geometry ( ) const
override

Definition at line 901 of file KDChartLayoutItems.cpp.

◆ isEmpty()

bool KDChart::AutoSpacerLayoutItem::isEmpty ( ) const
override

Definition at line 906 of file KDChartLayoutItems.cpp.

◆ maximumSize()

QSize KDChart::AutoSpacerLayoutItem::maximumSize ( ) const
override

Definition at line 911 of file KDChartLayoutItems.cpp.

◆ minimumSize()

QSize KDChart::AutoSpacerLayoutItem::minimumSize ( ) const
override

Definition at line 916 of file KDChartLayoutItems.cpp.

◆ paint()

void KDChart::AutoSpacerLayoutItem::paint ( QPainter *  painter)
overridevirtual

Implements KDChart::AbstractLayoutItem.

Definition at line 988 of file KDChartLayoutItems.cpp.

◆ paintAll()

void KDChart::AbstractLayoutItem::paintAll ( QPainter &  painter)
virtualinherited

Default impl: just call paint.

Derived classes like KDChart::AbstractArea are providing additional action here.

Reimplemented in KDChart::TextArea, KDChart::AbstractArea, and KDChart::TernaryAxis.

Definition at line 64 of file KDChartLayoutItems.cpp.

◆ paintCtx()

void KDChart::AbstractLayoutItem::paintCtx ( PaintContext context)
virtualinherited

Default impl: Paint the complete item using its layouted position and size.

Reimplemented in KDChart::TernaryAxis, KDChart::LeveyJenningsAxis, and KDChart::CartesianAxis.

Definition at line 72 of file KDChartLayoutItems.cpp.

References KDChart::PaintContext::painter().

◆ parentLayout()

QLayout* KDChart::AbstractLayoutItem::parentLayout ( )
inherited

Definition at line 77 of file KDChartLayoutItems.h.

◆ removeFromParentLayout()

void KDChart::AbstractLayoutItem::removeFromParentLayout ( )
inherited

◆ setGeometry()

void KDChart::AutoSpacerLayoutItem::setGeometry ( const QRect &  r)
override

Definition at line 921 of file KDChartLayoutItems.cpp.

◆ setParentLayout()

void KDChart::AbstractLayoutItem::setParentLayout ( QLayout *  lay)
inherited

◆ setParentWidget()

void KDChart::AbstractLayoutItem::setParentWidget ( QWidget widget)
virtualinherited

Inform the item about its widget: This enables the item, to trigger that widget's update, whenever the size of the item's contents has changed.

Thus, you need to call setParentWidget on every item, that has a non-fixed size.

Definition at line 59 of file KDChartLayoutItems.cpp.

References KDChart::AbstractLayoutItem::mParent.

Referenced by KDChart::HeaderFooter::setParent(), and KDChart::AbstractCartesianDiagram::takeAxis().

◆ sizeHint()

QSize KDChart::AutoSpacerLayoutItem::sizeHint ( ) const
override

◆ sizeHintChanged()

void KDChart::AbstractLayoutItem::sizeHintChanged ( ) const
virtualinherited

Report changed size hint: ask the parent widget to recalculate the layout.

Definition at line 81 of file KDChartLayoutItems.cpp.

Member Data Documentation

◆ mParent

QWidget* KDChart::AbstractLayoutItem::mParent
protectedinherited

Definition at line 91 of file KDChartLayoutItems.h.

Referenced by KDChart::AbstractLayoutItem::setParentWidget().

◆ mParentLayout

QLayout* KDChart::AbstractLayoutItem::mParentLayout
protectedinherited

Definition at line 92 of file KDChartLayoutItems.h.


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

Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/

https://www.kdab.com/development-resources/qt-tools/kd-chart/