Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAnimTimelineTimeHeader::Private Struct Reference

Public Member Functions

int calcSpanWidth (const int sectionWidth)
 
QModelIndexList prepareFramesSlab (int startCol, int endCol)
 
 Private ()
 

Public Attributes

KisActionManageractionMan
 
int fps
 
int lastPressSectionIndex
 
const int maxSectionSize = 72
 
const int minSectionSize = 4
 
KisTimeBasedItemModelmodel
 
qreal offset = 0.0f
 
qreal remainder = 0.0f
 
const int unitSectionSize = 18
 
QScopedPointer< KisSignalCompressorWithParam< qreal > > zoomSaveCompressor
 

Detailed Description

Definition at line 29 of file KisAnimTimelineTimeHeader.cpp.

Constructor & Destructor Documentation

◆ Private()

KisAnimTimelineTimeHeader::Private::Private ( )
inline

Definition at line 31 of file KisAnimTimelineTimeHeader.cpp.

32 : model(nullptr)
33 , actionMan(nullptr)
34 , fps(12)
36 {
37 // Compressed configuration writing..
38 const int compressorDelayMS = 100;
40 new KisSignalCompressorWithParam<qreal>(compressorDelayMS,
41 [](qreal zoomValue){
42 KisConfig cfg(false);
43 cfg.setTimelineZoom(zoomValue);
44 },
46 );
47 }
QScopedPointer< KisSignalCompressorWithParam< qreal > > zoomSaveCompressor

References KisSignalCompressor::POSTPONE, KisConfig::setTimelineZoom(), and zoomSaveCompressor.

Member Function Documentation

◆ calcSpanWidth()

int KisAnimTimelineTimeHeader::Private::calcSpanWidth ( const int sectionWidth)

Definition at line 281 of file KisAnimTimelineTimeHeader.cpp.

281 {
282 const int minWidth = 36;
283
284 int spanWidth = this->fps;
285
286 while (spanWidth * sectionWidth < minWidth) {
287 spanWidth *= 2;
288 }
289
290 bool splitHappened = false;
291
292 do {
293 splitHappened = false;
294
295 if (!(spanWidth & 0x1) &&
296 spanWidth * sectionWidth / 2 > minWidth) {
297
298 spanWidth /= 2;
299 splitHappened = true;
300
301 } else if (!(spanWidth % 3) &&
302 spanWidth * sectionWidth / 3 > minWidth) {
303
304 spanWidth /= 3;
305 splitHappened = true;
306
307 } else if (!(spanWidth % 5) &&
308 spanWidth * sectionWidth / 5 > minWidth) {
309
310 spanWidth /= 5;
311 splitHappened = true;
312 }
313
314 } while (splitHappened);
315
316
317 if (sectionWidth > minWidth) {
318 spanWidth = 1;
319 }
320
321 return spanWidth;
322}

References fps.

◆ prepareFramesSlab()

QModelIndexList KisAnimTimelineTimeHeader::Private::prepareFramesSlab ( int startCol,
int endCol )

Definition at line 627 of file KisAnimTimelineTimeHeader.cpp.

628{
629 QModelIndexList frames;
630
631 const int numRows = model->rowCount();
632
633 for (int i = 0; i < numRows; i++) {
634 for (int j = startCol; j <= endCol; j++) {
635 QModelIndex index = model->index(i, j);
636 const bool exists = model->data(index, KisTimeBasedItemModel::FrameExistsRole).toBool();
637 if (exists) {
638 frames << index;
639 }
640 }
641 }
642
643 return frames;
644}
QVariant data(const QModelIndex &index, int role) const override

References KisTimeBasedItemModel::FrameExistsRole.

Member Data Documentation

◆ actionMan

KisActionManager* KisAnimTimelineTimeHeader::Private::actionMan

Definition at line 50 of file KisAnimTimelineTimeHeader.cpp.

◆ fps

int KisAnimTimelineTimeHeader::Private::fps

Definition at line 53 of file KisAnimTimelineTimeHeader.cpp.

◆ lastPressSectionIndex

int KisAnimTimelineTimeHeader::Private::lastPressSectionIndex

Definition at line 54 of file KisAnimTimelineTimeHeader.cpp.

◆ maxSectionSize

const int KisAnimTimelineTimeHeader::Private::maxSectionSize = 72

Definition at line 58 of file KisAnimTimelineTimeHeader.cpp.

◆ minSectionSize

const int KisAnimTimelineTimeHeader::Private::minSectionSize = 4

Definition at line 57 of file KisAnimTimelineTimeHeader.cpp.

◆ model

KisTimeBasedItemModel* KisAnimTimelineTimeHeader::Private::model

Definition at line 49 of file KisAnimTimelineTimeHeader.cpp.

◆ offset

qreal KisAnimTimelineTimeHeader::Private::offset = 0.0f

Definition at line 56 of file KisAnimTimelineTimeHeader.cpp.

◆ remainder

qreal KisAnimTimelineTimeHeader::Private::remainder = 0.0f

Definition at line 60 of file KisAnimTimelineTimeHeader.cpp.

◆ unitSectionSize

const int KisAnimTimelineTimeHeader::Private::unitSectionSize = 18

Definition at line 59 of file KisAnimTimelineTimeHeader.cpp.

◆ zoomSaveCompressor

QScopedPointer<KisSignalCompressorWithParam<qreal> > KisAnimTimelineTimeHeader::Private::zoomSaveCompressor

Definition at line 51 of file KisAnimTimelineTimeHeader.cpp.


The documentation for this struct was generated from the following file: