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

Public Member Functions

bool addKeyframe (int row, int column, bool copy)
 
bool addNewLayer (int row)
 
int frameColorLabel (int row, int column)
 
bool frameExists (int row, int column) const
 
bool frameHasContent (int row, int column) const
 
int layerColorLabel (int row) const
 
bool layerEditable (int row) const
 
QVariant layerName (int row) const
 
QVariant layerProperties (int row) const
 
 Private ()
 
bool removeLayer (int row)
 
void setFrameColorLabel (int row, int column, int color)
 
bool setLayerProperties (int row, PropertyList props)
 
bool specialKeyframeExists (int row, int column)
 

Public Attributes

int activeLayerIndex
 
QScopedPointer< TimelineNodeListKeeperconverter
 
QPointer< KisDummiesFacadeBasedummiesFacade
 
KisImageWSP image
 
QPersistentModelIndex lastClickedIndex
 
bool needFinishInsertRows
 
bool needFinishRemoveRows
 
QScopedPointer< NodeManipulationInterfacenodeInterface
 
KisNodeDummyparentOfRemovedNode
 
QList< KisNodeDummy * > updateQueue
 
KisSignalCompressor updateTimer
 

Detailed Description

Definition at line 55 of file KisAnimTimelineFramesModel.cpp.

Constructor & Destructor Documentation

◆ Private()

Member Function Documentation

◆ addKeyframe()

bool KisAnimTimelineFramesModel::Private::addKeyframe ( int row,
int column,
bool copy )
inline

Definition at line 186 of file KisAnimTimelineFramesModel.cpp.

186 {
187 KisNodeDummy *dummy = converter->dummyFromRow(row);
188 if (!dummy) return false;
189
190 KisNodeSP node = dummy->node();
191 if (!KisAnimUtils::supportsContentFrames(node)) return false;
192
194 return true;
195 }
static const KoID Raster
KisNodeSP node() const
void createKeyframeLazy(KisImageSP image, KisNodeSP node, const QString &channelId, int time, bool copy)
bool supportsContentFrames(KisNodeSP node)
QScopedPointer< TimelineNodeListKeeper > converter

References converter, KisAnimUtils::createKeyframeLazy(), image, KisNodeDummy::node(), KisKeyframeChannel::Raster, and KisAnimUtils::supportsContentFrames().

◆ addNewLayer()

bool KisAnimTimelineFramesModel::Private::addNewLayer ( int row)
inline

Definition at line 197 of file KisAnimTimelineFramesModel.cpp.

197 {
198 Q_UNUSED(row);
199
200 if (nodeInterface) {
201 KisLayerSP layer = nodeInterface->addPaintLayer();
202 layer->setPinnedToTimeline(true);
203 }
204
205 return true;
206 }
QScopedPointer< NodeManipulationInterface > nodeInterface
void setPinnedToTimeline(bool pinned)

References nodeInterface, and KisBaseNode::setPinnedToTimeline().

◆ frameColorLabel()

int KisAnimTimelineFramesModel::Private::frameColorLabel ( int row,
int column )
inline

Definition at line 138 of file KisAnimTimelineFramesModel.cpp.

138 {
139 KisNodeDummy *dummy = converter->dummyFromRow(row);
140 if (!dummy) return -1;
141
143 if (!primaryChannel) return -1;
144
145 KisKeyframeSP frame = primaryChannel->activeKeyframeAt(column);
146 if (!frame) return -1;
147
148 return frame->colorLabel();
149 }
KisKeyframeChannel stores and manages KisKeyframes. Maps units of time to virtual keyframe values....
KisKeyframeSP activeKeyframeAt(int time) const
KisKeyframeChannel * getKeyframeChannel(const QString &id, bool create)

References KisKeyframeChannel::activeKeyframeAt(), converter, KisBaseNode::getKeyframeChannel(), KisNodeDummy::node(), and KisKeyframeChannel::Raster.

◆ frameExists()

bool KisAnimTimelineFramesModel::Private::frameExists ( int row,
int column ) const
inline

Definition at line 101 of file KisAnimTimelineFramesModel.cpp.

101 {
102 KisNodeDummy *dummy = converter->dummyFromRow(row);
103
104 if (!dummy) return false;
105
107
108 return (primaryChannel && primaryChannel->keyframeAt(column));
109 }
KisKeyframeSP keyframeAt(int time) const
Get a keyframe at specified time. Used primarily when the value of a given keyframe is needed.

References converter, KisBaseNode::getKeyframeChannel(), KisKeyframeChannel::keyframeAt(), KisNodeDummy::node(), and KisKeyframeChannel::Raster.

◆ frameHasContent()

bool KisAnimTimelineFramesModel::Private::frameHasContent ( int row,
int column ) const
inline

Definition at line 111 of file KisAnimTimelineFramesModel.cpp.

111 {
112 KisNodeDummy *dummy = converter->dummyFromRow(row);
113
114 if (!dummy) return false;
115
117 if (!primaryChannel) return false;
118
119 // first check if we are a key frame
120 KisRasterKeyframeSP frame = primaryChannel->activeKeyframeAt<KisRasterKeyframe>(column);
121 if (!frame) return false;
122
123 return frame->hasContent();
124 }
The KisRasterKeyframe class is a concrete subclass of KisKeyframe that wraps a physical raster image ...

References KisKeyframeChannel::activeKeyframeAt(), converter, KisBaseNode::getKeyframeChannel(), KisNodeDummy::node(), and KisKeyframeChannel::Raster.

◆ layerColorLabel()

int KisAnimTimelineFramesModel::Private::layerColorLabel ( int row) const
inline

Definition at line 164 of file KisAnimTimelineFramesModel.cpp.

164 {
165 KisNodeDummy *dummy = converter->dummyFromRow(row);
166 if (!dummy) return -1;
167 return dummy->node()->colorLabelIndex();
168 }
int colorLabelIndex() const

References KisBaseNode::colorLabelIndex(), converter, and KisNodeDummy::node().

◆ layerEditable()

bool KisAnimTimelineFramesModel::Private::layerEditable ( int row) const
inline

Definition at line 89 of file KisAnimTimelineFramesModel.cpp.

89 {
90 KisNodeDummy *dummy = converter->dummyFromRow(row);
91
92 if (!dummy) return true;
93
94 if (image->isIsolatingLayer()) {
95 return dummy->node()->isIsolatedRoot() && !dummy->node()->userLocked();
96 } else {
97 return dummy->node()->visible() && !dummy->node()->userLocked();
98 }
99 }
bool isIsolatingLayer() const
bool isIsolatedRoot() const
bool userLocked() const
virtual bool visible(bool recursive=false) const

References converter, image, KisBaseNode::isIsolatedRoot(), KisImage::isIsolatingLayer(), KisNodeDummy::node(), KisBaseNode::userLocked(), and KisBaseNode::visible().

◆ layerName()

QVariant KisAnimTimelineFramesModel::Private::layerName ( int row) const
inline

Definition at line 83 of file KisAnimTimelineFramesModel.cpp.

83 {
84 KisNodeDummy *dummy = converter->dummyFromRow(row);
85 if (!dummy) return QVariant();
86 return dummy->node()->name();
87 }
QString name() const

References converter, KisBaseNode::name(), and KisNodeDummy::node().

◆ layerProperties()

QVariant KisAnimTimelineFramesModel::Private::layerProperties ( int row) const
inline

Definition at line 170 of file KisAnimTimelineFramesModel.cpp.

170 {
171 KisNodeDummy *dummy = converter->dummyFromRow(row);
172 if (!dummy) return QVariant();
173
174 PropertyList props = dummy->node()->sectionModelProperties();
175 return QVariant::fromValue(props);
176 }
KisBaseNode::PropertyList PropertyList
virtual PropertyList sectionModelProperties() const

References converter, KisNodeDummy::node(), and KisBaseNode::sectionModelProperties().

◆ removeLayer()

bool KisAnimTimelineFramesModel::Private::removeLayer ( int row)
inline

Definition at line 208 of file KisAnimTimelineFramesModel.cpp.

208 {
209 KisNodeDummy *dummy = converter->dummyFromRow(row);
210 if (!dummy) return false;
211
212 if (nodeInterface) {
213 nodeInterface->removeNode(dummy->node());
214 }
215
216 return true;
217 }

References converter, KisNodeDummy::node(), and nodeInterface.

◆ setFrameColorLabel()

void KisAnimTimelineFramesModel::Private::setFrameColorLabel ( int row,
int column,
int color )
inline

Definition at line 151 of file KisAnimTimelineFramesModel.cpp.

151 {
152 KisNodeDummy *dummy = converter->dummyFromRow(row);
153 if (!dummy) return;
154
156 if (!primaryChannel) return;
157
158 KisKeyframeSP frame = primaryChannel->keyframeAt(column);
159 if (!frame) return;
160
161 frame->setColorLabel(color);
162 }

References converter, KisBaseNode::getKeyframeChannel(), KisKeyframeChannel::keyframeAt(), KisNodeDummy::node(), and KisKeyframeChannel::Raster.

◆ setLayerProperties()

bool KisAnimTimelineFramesModel::Private::setLayerProperties ( int row,
PropertyList props )
inline

Definition at line 178 of file KisAnimTimelineFramesModel.cpp.

178 {
179 KisNodeDummy *dummy = converter->dummyFromRow(row);
180 if (!dummy) return false;
181
182 nodeInterface->setNodeProperties(dummy->node(), image, props);
183 return true;
184 }

References converter, image, KisNodeDummy::node(), and nodeInterface.

◆ specialKeyframeExists()

bool KisAnimTimelineFramesModel::Private::specialKeyframeExists ( int row,
int column )
inline

Definition at line 126 of file KisAnimTimelineFramesModel.cpp.

126 {
127 KisNodeDummy *dummy = converter->dummyFromRow(row);
128 if (!dummy) return false;
129
130 Q_FOREACH(KisKeyframeChannel *channel, dummy->node()->keyframeChannels()) {
131 if (channel->id() != KisKeyframeChannel::Raster.id() && channel->keyframeAt(column)) {
132 return true;
133 }
134 }
135 return false;
136 }
QString id() const
Definition KoID.cpp:63
QMap< QString, KisKeyframeChannel * > keyframeChannels

References converter, KoID::id(), KisKeyframeChannel::id(), KisKeyframeChannel::keyframeAt(), KisBaseNode::keyframeChannels, KisNodeDummy::node(), and KisKeyframeChannel::Raster.

Member Data Documentation

◆ activeLayerIndex

int KisAnimTimelineFramesModel::Private::activeLayerIndex

Definition at line 66 of file KisAnimTimelineFramesModel.cpp.

◆ converter

QScopedPointer<TimelineNodeListKeeper> KisAnimTimelineFramesModel::Private::converter

Definition at line 77 of file KisAnimTimelineFramesModel.cpp.

◆ dummiesFacade

QPointer<KisDummiesFacadeBase> KisAnimTimelineFramesModel::Private::dummiesFacade

Definition at line 68 of file KisAnimTimelineFramesModel.cpp.

◆ image

KisImageWSP KisAnimTimelineFramesModel::Private::image

Definition at line 69 of file KisAnimTimelineFramesModel.cpp.

◆ lastClickedIndex

QPersistentModelIndex KisAnimTimelineFramesModel::Private::lastClickedIndex

Definition at line 81 of file KisAnimTimelineFramesModel.cpp.

◆ needFinishInsertRows

bool KisAnimTimelineFramesModel::Private::needFinishInsertRows

Definition at line 70 of file KisAnimTimelineFramesModel.cpp.

◆ needFinishRemoveRows

bool KisAnimTimelineFramesModel::Private::needFinishRemoveRows

Definition at line 71 of file KisAnimTimelineFramesModel.cpp.

◆ nodeInterface

QScopedPointer<NodeManipulationInterface> KisAnimTimelineFramesModel::Private::nodeInterface

Definition at line 79 of file KisAnimTimelineFramesModel.cpp.

◆ parentOfRemovedNode

KisNodeDummy* KisAnimTimelineFramesModel::Private::parentOfRemovedNode

Definition at line 76 of file KisAnimTimelineFramesModel.cpp.

◆ updateQueue

QList<KisNodeDummy*> KisAnimTimelineFramesModel::Private::updateQueue

Definition at line 73 of file KisAnimTimelineFramesModel.cpp.

◆ updateTimer

KisSignalCompressor KisAnimTimelineFramesModel::Private::updateTimer

Definition at line 74 of file KisAnimTimelineFramesModel.cpp.


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