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

#include <timeline_frames_index_converter.h>

Public Member Functions

KisNodeDummyactiveDummy () const
 
KisNodeDummydummyFromRow (int row)
 
bool isDummyAvailableForTimeline (KisNodeDummy *dummy) const
 
bool isDummyVisible (KisNodeDummy *dummy) const
 
void notifyDummyRemoved (KisNodeDummy *dummy)
 
int rowCount ()
 
int rowForDummy (KisNodeDummy *dummy)
 
void setShowGlobalSelectionMask (bool value)
 
 TimelineFramesIndexConverter (KisDummiesFacadeBase *dummiesFacade)
 
void updateActiveDummy (KisNodeDummy *dummy, bool *oldRemoved, bool *newAdded)
 
 ~TimelineFramesIndexConverter ()
 

Private Member Functions

bool calcNodesInPath (KisNodeDummy *root, int &startCount, KisNodeDummy *endDummy)
 
KisNodeDummyfindNodeFromRow (KisNodeDummy *root, int &startCount)
 

Private Attributes

KisNodeDummym_activeDummy
 
KisDummiesFacadeBasem_dummiesFacade
 
bool m_showGlobalSelectionMask
 

Detailed Description

Definition at line 16 of file timeline_frames_index_converter.h.

Constructor & Destructor Documentation

◆ TimelineFramesIndexConverter()

TimelineFramesIndexConverter::TimelineFramesIndexConverter ( KisDummiesFacadeBase * dummiesFacade)

◆ ~TimelineFramesIndexConverter()

TimelineFramesIndexConverter::~TimelineFramesIndexConverter ( )

Definition at line 20 of file timeline_frames_index_converter.cpp.

21{
22}

Member Function Documentation

◆ activeDummy()

KisNodeDummy * TimelineFramesIndexConverter::activeDummy ( ) const

Definition at line 96 of file timeline_frames_index_converter.cpp.

97{
98 return m_activeDummy;
99}

References m_activeDummy.

◆ calcNodesInPath()

bool TimelineFramesIndexConverter::calcNodesInPath ( KisNodeDummy * root,
int & startCount,
KisNodeDummy * endDummy )
private

Definition at line 24 of file timeline_frames_index_converter.cpp.

25{
26 if (isDummyVisible(root)) {
27 if (endDummy && root == endDummy) {
28 return true;
29 }
30
31 startCount++;
32 }
33
34 KisNodeDummy *dummy = root->lastChild();
35 while (dummy) {
36 if (calcNodesInPath(dummy, startCount, endDummy)) {
37 return true;
38 }
39
40 dummy = dummy->prevSibling();
41 }
42
43 return false;
44}
KisNodeDummy * lastChild() const
KisNodeDummy * prevSibling() const
bool calcNodesInPath(KisNodeDummy *root, int &startCount, KisNodeDummy *endDummy)
bool isDummyVisible(KisNodeDummy *dummy) const

References calcNodesInPath(), isDummyVisible(), KisNodeDummy::lastChild(), and KisNodeDummy::prevSibling().

◆ dummyFromRow()

KisNodeDummy * TimelineFramesIndexConverter::dummyFromRow ( int row)

Definition at line 67 of file timeline_frames_index_converter.cpp.

68{
70 if(!root) return 0;
71
72 return findNodeFromRow(root, row);
73}
virtual KisNodeDummy * rootDummy() const =0
KisNodeDummy * findNodeFromRow(KisNodeDummy *root, int &startCount)

References findNodeFromRow(), m_dummiesFacade, and KisDummiesFacadeBase::rootDummy().

◆ findNodeFromRow()

KisNodeDummy * TimelineFramesIndexConverter::findNodeFromRow ( KisNodeDummy * root,
int & startCount )
private

Definition at line 46 of file timeline_frames_index_converter.cpp.

47{
48 if (isDummyVisible(root)) {
49 if (!startCount) {
50 return root;
51 }
52
53 startCount--;
54 }
55
56 KisNodeDummy *dummy = root->lastChild();
57 while (dummy) {
58 KisNodeDummy *found = findNodeFromRow(dummy, startCount);
59 if (found) return found;
60
61 dummy = dummy->prevSibling();
62 }
63
64 return 0;
65}

References findNodeFromRow(), isDummyVisible(), KisNodeDummy::lastChild(), and KisNodeDummy::prevSibling().

◆ isDummyAvailableForTimeline()

bool TimelineFramesIndexConverter::isDummyAvailableForTimeline ( KisNodeDummy * dummy) const

Definition at line 130 of file timeline_frames_index_converter.cpp.

131{
133}
bool isGUIVisible(bool showGlobalSelection) const

References KisNodeDummy::isGUIVisible(), and m_showGlobalSelectionMask.

◆ isDummyVisible()

bool TimelineFramesIndexConverter::isDummyVisible ( KisNodeDummy * dummy) const

Definition at line 135 of file timeline_frames_index_converter.cpp.

136{
137 return (isDummyAvailableForTimeline(dummy) &&
138 dummy->node()->isPinnedToTimeline()) ||
139 dummy == m_activeDummy;
140}
KisNodeSP node() const
bool isDummyAvailableForTimeline(KisNodeDummy *dummy) const
bool isPinnedToTimeline() const

References isDummyAvailableForTimeline(), KisBaseNode::isPinnedToTimeline(), m_activeDummy, and KisNodeDummy::node().

◆ notifyDummyRemoved()

void TimelineFramesIndexConverter::notifyDummyRemoved ( KisNodeDummy * dummy)

Definition at line 118 of file timeline_frames_index_converter.cpp.

119{
120 if (m_activeDummy && m_activeDummy == dummy) {
121 m_activeDummy = 0;
122 }
123}

References m_activeDummy.

◆ rowCount()

int TimelineFramesIndexConverter::rowCount ( )

Definition at line 86 of file timeline_frames_index_converter.cpp.

87{
89 if(!root) return 0;
90
91 int count = 0;
92 calcNodesInPath(root, count, 0);
93 return count;
94}

References calcNodesInPath(), m_dummiesFacade, and KisDummiesFacadeBase::rootDummy().

◆ rowForDummy()

int TimelineFramesIndexConverter::rowForDummy ( KisNodeDummy * dummy)

Definition at line 75 of file timeline_frames_index_converter.cpp.

76{
77 if (!dummy) return -1;
78
80 if(!root) return -1;
81
82 int count = 0;
83 return calcNodesInPath(root, count, dummy) ? count : -1;
84}

References calcNodesInPath(), m_dummiesFacade, and KisDummiesFacadeBase::rootDummy().

◆ setShowGlobalSelectionMask()

void TimelineFramesIndexConverter::setShowGlobalSelectionMask ( bool value)

Definition at line 125 of file timeline_frames_index_converter.cpp.

126{
128}
float value(const T *src, size_t ch)

References m_showGlobalSelectionMask, and value().

◆ updateActiveDummy()

void TimelineFramesIndexConverter::updateActiveDummy ( KisNodeDummy * dummy,
bool * oldRemoved,
bool * newAdded )

Definition at line 101 of file timeline_frames_index_converter.cpp.

104{
105 if (m_activeDummy == dummy) return;
106
108 *oldRemoved = true;
109 }
110
111 m_activeDummy = dummy;
112
114 *newAdded = true;
115 }
116}

References KisBaseNode::isPinnedToTimeline(), m_activeDummy, and KisNodeDummy::node().

Member Data Documentation

◆ m_activeDummy

KisNodeDummy* TimelineFramesIndexConverter::m_activeDummy
private

Definition at line 41 of file timeline_frames_index_converter.h.

◆ m_dummiesFacade

KisDummiesFacadeBase* TimelineFramesIndexConverter::m_dummiesFacade
private

Definition at line 40 of file timeline_frames_index_converter.h.

◆ m_showGlobalSelectionMask

bool TimelineFramesIndexConverter::m_showGlobalSelectionMask
private

Definition at line 42 of file timeline_frames_index_converter.h.


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