Krita Source Code Documentation
Loading...
Searching...
No Matches
KisNewsDelegate Class Reference

#include <KisNewsWidget.h>

+ Inheritance diagram for KisNewsDelegate:

Public Member Functions

 KisNewsDelegate (QObject *parent=0)
 
void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const override
 

Detailed Description

Definition at line 19 of file KisNewsWidget.h.

Constructor & Destructor Documentation

◆ KisNewsDelegate()

KisNewsDelegate::KisNewsDelegate ( QObject * parent = 0)

Definition at line 22 of file KisNewsWidget.cpp.

23 : QStyledItemDelegate(parent)
24{
25}

Member Function Documentation

◆ paint()

void KisNewsDelegate::paint ( QPainter * painter,
const QStyleOptionViewItem & option,
const QModelIndex & index ) const
override

Painting item without text

Definition at line 27 of file KisNewsWidget.cpp.

28{
29 painter->save();
30
31 QStyleOptionViewItem optionCopy = option;
32 initStyleOption(&optionCopy, index);
33
34 QStyle *style = optionCopy.widget? optionCopy.widget->style() : QApplication::style();
35
36 QTextDocument doc;
37 doc.setDocumentMargin(6);
38 doc.setHtml(optionCopy.text);
39 doc.setTextWidth(optionCopy.rect.width());
40
42 optionCopy.text = QString();
43 style->drawControl(QStyle::CE_ItemViewItem, &optionCopy, painter);
44
45 QAbstractTextDocumentLayout::PaintContext ctx;
46
47 // Highlighting text if item is selected
48 QColor textColor;
49 if (optionCopy.state & QStyle::State_Selected) {
50 textColor = optionCopy.palette.color(QPalette::Active, QPalette::HighlightedText);
51 } else {
52 textColor = optionCopy.palette.color(QPalette::Text);
53 }
54 ctx.palette.setColor(QPalette::Text, textColor);
55
56 painter->translate(optionCopy.rect.left(), optionCopy.rect.top());
57 QRect clip(0, 0, optionCopy.rect.width(), optionCopy.rect.height());
58 ctx.clip = clip;
59 doc.setPageSize(clip.size());
60 doc.documentLayout()->draw(painter, ctx);
61
62 painter->restore();
63}

◆ sizeHint()

QSize KisNewsDelegate::sizeHint ( const QStyleOptionViewItem & option,
const QModelIndex & index ) const
override

Definition at line 65 of file KisNewsWidget.cpp.

66{
67 QStyleOptionViewItem optionCopy = option;
68 initStyleOption(&optionCopy, index);
69
70 QTextDocument doc;
71 doc.setDocumentMargin(6);
72 doc.setHtml(optionCopy.text);
73 doc.setTextWidth(optionCopy.rect.width());
74 return QSize(doc.idealWidth(), doc.size().height());
75}

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