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

#include <ChannelDockerWidget.h>

+ Inheritance diagram for ChannelDockerWidget:

Public Slots

void slotScrollerStateChanged (QScroller::State state)
 
void startUpdateCanvasProjection ()
 

Public Member Functions

 ChannelDockerWidget (QWidget *parent=0, const char *name=0)
 
void setCanvas (KisCanvas2 *canvas) override
 
- Public Member Functions inherited from KisWidgetWithIdleTask< QWidget >
void hideEvent (QHideEvent *event) override
 
 KisWidgetWithIdleTask (QWidget *parent=0, Qt::WindowFlags flags=Qt::WindowFlags())
 
void showEvent (QShowEvent *event) override
 
void triggerCacheUpdate ()
 
 ~KisWidgetWithIdleTask () override=default
 

Private Slots

void updateImageThumbnails (const QVector< QImage > &channels, const KoColorSpace *cs)
 

Private Member Functions

void clearCachedState () override
 
KisIdleTasksManager::TaskGuard registerIdleTask (KisCanvas2 *canvas) override
 

Private Attributes

QTableView * m_channelTable {nullptr}
 
ChannelModelm_model {nullptr}
 

Additional Inherited Members

- Protected Attributes inherited from KisWidgetWithIdleTask< QWidget >
KisCanvas2m_canvas
 
KisIdleTasksManager::TaskGuard m_idleTaskGuard
 
bool m_isVisibleState
 

Detailed Description

Definition at line 21 of file ChannelDockerWidget.h.

Constructor & Destructor Documentation

◆ ChannelDockerWidget()

ChannelDockerWidget::ChannelDockerWidget ( QWidget * parent = 0,
const char * name = 0 )

Definition at line 20 of file ChannelDockerWidget.cpp.

22{
23 setObjectName(name);
24
25 m_channelTable = new QTableView();
26 m_model = new ChannelModel(this);
27 m_channelTable->setModel(m_model);
28 m_channelTable->setShowGrid(false);
29 m_channelTable->horizontalHeader()->setStretchLastSection(true);
30 m_channelTable->verticalHeader()->setVisible(false);
31 m_channelTable->horizontalHeader()->setVisible(false);
32 m_channelTable->setSelectionBehavior( QAbstractItemView::SelectRows );
33
34 m_channelTable->setMinimumHeight(50);
35
36 // Use a layout so the widget gets resized properly
37 QGridLayout *layout = new QGridLayout();
38 layout->addWidget(m_channelTable);
39 this->setLayout(layout);
40
42 if (scroller){
43 connect(scroller, SIGNAL(stateChanged(QScroller::State)),
44 this, SLOT(slotScrollerStateChanged(QScroller::State)));
45 }
46
48}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void slotScrollerStateChanged(QScroller::State state)
void rowActivated(const QModelIndex &index)
KRITAWIDGETUTILS_EXPORT QScroller * createPreconfiguredScroller(QAbstractScrollArea *target)

References connect(), KisKineticScroller::createPreconfiguredScroller(), m_channelTable, m_model, ChannelModel::rowActivated(), and slotScrollerStateChanged().

Member Function Documentation

◆ clearCachedState()

void ChannelDockerWidget::clearCachedState ( )
overrideprivatevirtual

Implements KisWidgetWithIdleTask< QWidget >.

Definition at line 98 of file ChannelDockerWidget.cpp.

99{
100 m_model->setChannelThumbnails({}, nullptr);
101}
void setChannelThumbnails(const QVector< QImage > &channels, const KoColorSpace *cs)

References m_model, and ChannelModel::setChannelThumbnails().

◆ registerIdleTask()

KisIdleTasksManager::TaskGuard ChannelDockerWidget::registerIdleTask ( KisCanvas2 * canvas)
overrideprivatevirtual

Implements KisWidgetWithIdleTask< QWidget >.

Definition at line 71 of file ChannelDockerWidget.cpp.

72{
73 return
74 canvas->viewManager()->idleTasksManager()->
75 addIdleTaskWithGuard([this](KisImageSP image) {
76 const KisDisplayConfig config = m_canvas->displayColorConverter()->displayConfig();
77
78 const QSize previewSize = m_model->thumbnailSizeLimit();
79
82 previewSize, false, config.profile,
83 config.intent, config.conversionFlags);
84
85 connect(strategy, SIGNAL(thumbnailsUpdated(QVector<QImage>, const KoColorSpace*)), this, SLOT(updateImageThumbnails(QVector<QImage>, const KoColorSpace*)));
86
87 return strategy;
88 });
89}
void updateImageThumbnails(const QVector< QImage > &channels, const KoColorSpace *cs)
QSize thumbnailSizeLimit() const
KisDisplayColorConverter displayColorConverter
KisViewManager * viewManager() const
KisDisplayConfig This class keeps track of the color management configuration for image to display....
KoColorConversionTransformation::ConversionFlags conversionFlags
const KoColorProfile * profile
KoColorConversionTransformation::Intent intent
KisPaintDeviceSP projection() const
QRect bounds() const override
KisIdleTasksManager * idleTasksManager()

References KisImage::bounds(), connect(), KisDisplayConfig::conversionFlags, KisCanvas2::displayColorConverter, KisViewManager::idleTasksManager(), KisDisplayConfig::intent, KisWidgetWithIdleTask< QWidget >::m_canvas, m_model, KisDisplayConfig::profile, KisImage::projection(), ChannelModel::thumbnailSizeLimit(), updateImageThumbnails(), and KisCanvas2::viewManager().

◆ setCanvas()

void ChannelDockerWidget::setCanvas ( KisCanvas2 * canvas)
overridevirtual

Reimplemented from KisWidgetWithIdleTask< QWidget >.

Definition at line 50 of file ChannelDockerWidget.cpp.

51{
52 if(m_canvas == canvas)
53 return;
54 m_canvas = canvas;
55
57
59
60 if (m_canvas) {
61 connect(m_canvas->displayColorConverter(), SIGNAL(displayConfigurationChanged()), SLOT(startUpdateCanvasProjection()));
62 connect(m_model, SIGNAL(channelFlagsChanged()), m_canvas, SLOT(channelSelectionChanged()));
63 }
64}
void setCanvas(KisCanvas2 *canvas)
virtual void setCanvas(KisCanvas2 *canvas)

References connect(), KisCanvas2::displayColorConverter, KisWidgetWithIdleTask< QWidget >::m_canvas, m_model, KisWidgetWithIdleTask< BaseWidget >::setCanvas(), ChannelModel::setCanvas(), and startUpdateCanvasProjection().

◆ slotScrollerStateChanged

void ChannelDockerWidget::slotScrollerStateChanged ( QScroller::State state)
inlineslot

Definition at line 30 of file ChannelDockerWidget.h.

KRITAWIDGETUTILS_EXPORT void updateCursor(QWidget *source, QScroller::State state)

References KisKineticScroller::updateCursor().

◆ startUpdateCanvasProjection

void ChannelDockerWidget::startUpdateCanvasProjection ( )
slot

◆ updateImageThumbnails

void ChannelDockerWidget::updateImageThumbnails ( const QVector< QImage > & channels,
const KoColorSpace * cs )
privateslot

Definition at line 91 of file ChannelDockerWidget.cpp.

92{
93 m_model->setChannelThumbnails(channels, cs);
94 m_channelTable->resizeRowsToContents();
95 m_channelTable->resizeColumnsToContents();
96}

References m_channelTable, m_model, and ChannelModel::setChannelThumbnails().

Member Data Documentation

◆ m_channelTable

QTableView* ChannelDockerWidget::m_channelTable {nullptr}
private

Definition at line 40 of file ChannelDockerWidget.h.

40{nullptr};

◆ m_model

ChannelModel* ChannelDockerWidget::m_model {nullptr}
private

Definition at line 41 of file ChannelDockerWidget.h.

41{nullptr};

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