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

#include <KoMarkerSelector.h>

+ Inheritance diagram for KoMarkerSelector:

Classes

class  Private
 

Public Member Functions

QVariant itemData (int index, int role=Qt::UserRole) const
 reimplement
 
 KoMarkerSelector (KoFlake::MarkerPosition position, QWidget *parent=0)
 
KoMarkermarker () const
 
void setMarker (KoMarker *marker)
 
void updateMarkers (const QList< KoMarker * > markers)
 
 ~KoMarkerSelector () override
 

Protected Member Functions

void paintEvent (QPaintEvent *pe) override
 

Private Attributes

Private *const d
 

Detailed Description

Definition at line 18 of file KoMarkerSelector.h.

Constructor & Destructor Documentation

◆ KoMarkerSelector()

KoMarkerSelector::KoMarkerSelector ( KoFlake::MarkerPosition position,
QWidget * parent = 0 )
explicit

Definition at line 27 of file KoMarkerSelector.cpp.

28: QComboBox(parent)
29, d(new Private(position, this))
30{
31 setModel(d->model);
32 setItemDelegate(new KoMarkerItemDelegate(position, this));
33}
Private *const d

References d, and KoMarkerSelector::Private::model.

◆ ~KoMarkerSelector()

KoMarkerSelector::~KoMarkerSelector ( )
override

Definition at line 35 of file KoMarkerSelector.cpp.

36{
37 delete d;
38}

References d.

Member Function Documentation

◆ itemData()

QVariant KoMarkerSelector::itemData ( int index,
int role = Qt::UserRole ) const

reimplement

Definition at line 96 of file KoMarkerSelector.cpp.

97{
98 return d->model->marker(index, role);
99}
QVariant marker(int index, int role=Qt::UserRole) const

References d, KoMarkerModel::marker(), and KoMarkerSelector::Private::model.

◆ marker()

KoMarker * KoMarkerSelector::marker ( ) const

Definition at line 83 of file KoMarkerSelector.cpp.

84{
85 return itemData(currentIndex(), Qt::DecorationRole).value<KoMarker*>();
86}
QVariant itemData(int index, int role=Qt::UserRole) const
reimplement

References itemData().

◆ paintEvent()

void KoMarkerSelector::paintEvent ( QPaintEvent * pe)
overrideprotected

Definition at line 40 of file KoMarkerSelector.cpp.

41{
42 QComboBox::paintEvent(pe);
43
44 QStyleOptionComboBox option;
45 option.initFrom(this);
46 option.frame = hasFrame();
47 QRect rect = style()->subControlRect(QStyle::CC_ComboBox, &option, QStyle::SC_ComboBoxEditField, this);
48 if (!option.frame) { // frameless combo boxes have smaller margins but styles do not take this into account
49 rect.adjust(-14, 0, 14, 1);
50 }
51
52 QPainter painter(this);
53 bool antialiasing = painter.testRenderHint(QPainter::Antialiasing);
54 if (!antialiasing) {
55 painter.setRenderHint(QPainter::Antialiasing, true);
56 }
57
58 if (!(option.state & QStyle::State_Enabled)) {
59 painter.setOpacity(0.5);
60 }
61 QPen pen(Qt::black, 2);
62 KoMarker *marker = itemData(currentIndex(), Qt::DecorationRole).value<KoMarker*>();
64
65 if (!antialiasing) {
66 painter.setRenderHint(QPainter::Antialiasing, false);
67 }
68}
static void drawMarkerPreview(QPainter *painter, const QRect &rect, const QPen &pen, KoMarker *marker, KoFlake::MarkerPosition position)
KoFlake::MarkerPosition position() const
KoMarker * marker() const

References d, KoMarkerItemDelegate::drawMarkerPreview(), itemData(), marker(), KoMarkerSelector::Private::model, and KoMarkerModel::position().

◆ setMarker()

void KoMarkerSelector::setMarker ( KoMarker * marker)

Definition at line 70 of file KoMarkerSelector.cpp.

71{
72 int index = d->model->markerIndex(marker);
73 if (index >= 0) {
74 setCurrentIndex(index);
75 if (index != d->model->temporaryMarkerPosition()) {
77 }
78 } else {
79 setCurrentIndex(d->model->addTemporaryMarker(marker));
80 }
81}
int temporaryMarkerPosition() const
void removeTemporaryMarker()
int addTemporaryMarker(KoMarker *marker)
int markerIndex(KoMarker *marker) const

References KoMarkerModel::addTemporaryMarker(), d, marker(), KoMarkerModel::markerIndex(), KoMarkerSelector::Private::model, KoMarkerModel::removeTemporaryMarker(), and KoMarkerModel::temporaryMarkerPosition().

◆ updateMarkers()

void KoMarkerSelector::updateMarkers ( const QList< KoMarker * > markers)

Set the available markers in the document.

Definition at line 88 of file KoMarkerSelector.cpp.

89{
90 KoMarkerModel *model = new KoMarkerModel(markers, d->model->position(), this);
91 d->model = model;
92 // this deletes the old model
93 setModel(model);
94}

References d, KoMarkerSelector::Private::model, and KoMarkerModel::position().

Member Data Documentation

◆ d

Private* const KoMarkerSelector::d
private

Definition at line 43 of file KoMarkerSelector.h.


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