digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::DCategoryDrawer Class Reference

The category drawing is performed by this class. More...

+ Inheritance diagram for Digikam::DCategoryDrawer:

Signals

void actionRequested (int action, const QModelIndex &index)
 Emit this signal on your subclass implementation to notify that something happened.
 
void collapseOrExpandClicked (const QModelIndex &index)
 This signal becomes emitted when collapse or expand has been clicked.
 

Public Member Functions

 DCategoryDrawer (DCategorizedView *const view)
 Construct a category drawer for a given view.
 
virtual int categoryHeight (const QModelIndex &index, const QStyleOption &option) const
 
virtual void drawCategory (const QModelIndex &index, int sortRole, const QStyleOption &option, QPainter *painter) const
 This method purpose is to draw a category represented by the given.
 
virtual int leftMargin () const
 
virtual int rightMargin () const
 
DCategorizedViewview () const
 

Protected Member Functions

virtual void mouseButtonDoubleClicked (const QModelIndex &index, const QRect &blockRect, QMouseEvent *event)
 Method called when the mouse button has been double clicked.
 
virtual void mouseButtonPressed (const QModelIndex &index, const QRect &blockRect, QMouseEvent *event)
 Method called when the mouse button has been pressed.
 
virtual void mouseButtonReleased (const QModelIndex &index, const QRect &blockRect, QMouseEvent *event)
 Method called when the mouse button has been released.
 
virtual void mouseLeft (const QModelIndex &index, const QRect &blockRect)
 Method called when the mouse button has left this block.
 
virtual void mouseMoved (const QModelIndex &index, const QRect &blockRect, QMouseEvent *event)
 Method called when the mouse has been moved.
 

Friends

class DCategorizedView
 

Detailed Description

It also gives information about the category height and margins.

Member Function Documentation

◆ actionRequested

void Digikam::DCategoryDrawer::actionRequested ( int  action,
const QModelIndex &  index 
)
signal

Usually this will be triggered when you have received an event, and its position matched some "hot spot".

You give this action the integer you want, and having connected this signal to your code, the connected slot can perform the needed changes (view, model, selection model, delegate...)

◆ categoryHeight()

int Digikam::DCategoryDrawer::categoryHeight ( const QModelIndex &  index,
const QStyleOption &  option 
) const
virtual
Returns
The category height for the category represented by index index with style options option.

Reimplemented in Digikam::ItemCategoryDrawer, and Digikam::ImportCategoryDrawer.

◆ drawCategory()

void Digikam::DCategoryDrawer::drawCategory ( const QModelIndex &  index,
int  sortRole,
const QStyleOption &  option,
QPainter *  painter 
) const
virtual
Parameters
indexThe index with the given
sortRoleThe sorting role
optionThe painter style options
painterThe painter instance
Note
This method will be called one time per category, always with the first element in that category

Reimplemented in Digikam::ItemCategoryDrawer, and Digikam::ImportCategoryDrawer.

◆ leftMargin()

int Digikam::DCategoryDrawer::leftMargin ( ) const
virtual
Note
0 by default

◆ mouseButtonDoubleClicked()

void Digikam::DCategoryDrawer::mouseButtonDoubleClicked ( const QModelIndex &  index,
const QRect &  blockRect,
QMouseEvent *  event 
)
protectedvirtual
Parameters
indexThe representative index of the block of items.
blockRectThe rect occupied by the block of items.
eventThe mouse event.
Warning
You explicitly have to determine whether the event has been accepted or not. You have to call event->accept() or event->ignore() at all possible case branches in your code.

◆ mouseButtonPressed()

void Digikam::DCategoryDrawer::mouseButtonPressed ( const QModelIndex &  index,
const QRect &  blockRect,
QMouseEvent *  event 
)
protectedvirtual
Parameters
indexThe representative index of the block of items.
blockRectThe rect occupied by the block of items.
eventThe mouse event.
Warning
You explicitly have to determine whether the event has been accepted or not. You have to call event->accept() or event->ignore() at all possible case branches in your code.

◆ mouseButtonReleased()

void Digikam::DCategoryDrawer::mouseButtonReleased ( const QModelIndex &  index,
const QRect &  blockRect,
QMouseEvent *  event 
)
protectedvirtual
Parameters
indexThe representative index of the block of items.
blockRectThe rect occupied by the block of items.
eventThe mouse event.
Warning
You explicitly have to determine whether the event has been accepted or not. You have to call event->accept() or event->ignore() at all possible case branches in your code.

◆ mouseLeft()

void Digikam::DCategoryDrawer::mouseLeft ( const QModelIndex &  index,
const QRect &  blockRect 
)
protectedvirtual
Parameters
indexThe representative index of the block of items.
blockRectThe rect occupied by the block of items.

◆ mouseMoved()

void Digikam::DCategoryDrawer::mouseMoved ( const QModelIndex &  index,
const QRect &  blockRect,
QMouseEvent *  event 
)
protectedvirtual
Parameters
indexThe representative index of the block of items.
blockRectThe rect occupied by the block of items.
eventThe mouse event.

◆ rightMargin()

int Digikam::DCategoryDrawer::rightMargin ( ) const
virtual
Note
0 by default

◆ view()

DCategorizedView * Digikam::DCategoryDrawer::view ( ) const
Returns
The view this category drawer is associated with.