|
Krita Source Code Documentation
|
#include <KisAnimTimelineFramesView.h>
Inheritance diagram for KisAnimTimelineFramesView:Classes | |
| struct | Private |
Public Member Functions | |
| KisAnimTimelineFramesView (QWidget *parent) | |
| void | setActionManager (KisActionManager *actionManager) |
| void | setModel (QAbstractItemModel *model) override |
| void | updateGeometries () override |
| ~KisAnimTimelineFramesView () override | |
Protected Member Functions | |
| void | currentChanged (const QModelIndex ¤t, const QModelIndex &previous) override |
| void | dragEnterEvent (QDragEnterEvent *event) override |
| void | dragLeaveEvent (QDragLeaveEvent *event) override |
| void | dragMoveEvent (QDragMoveEvent *event) override |
| void | dropEvent (QDropEvent *event) override |
| void | mouseDoubleClickEvent (QMouseEvent *event) override |
| void | mouseMoveEvent (QMouseEvent *e) override |
| void | mousePressEvent (QMouseEvent *event) override |
| void | mouseReleaseEvent (QMouseEvent *e) override |
| void | resizeEvent (QResizeEvent *e) override |
| void | rowsInserted (const QModelIndex &parent, int start, int end) override |
| QItemSelectionModel::SelectionFlags | selectionCommand (const QModelIndex &index, const QEvent *event) const override |
| void | startDrag (Qt::DropActions supportedActions) override |
| bool | viewportEvent (QEvent *event) override |
| void | wheelEvent (QWheelEvent *e) override |
Private Member Functions | |
| void | calculateSelectionMetrics (int &minColumn, int &maxColumn, QSet< int > &rows, bool ignoreEditability) const |
| QModelIndexList | calculateSelectionSpan (bool entireColumn, bool editableOnly=true) const |
| void | clone (bool entireColumn) |
| void | createFrameEditingMenuActions (QMenu *menu, bool emptyFrame, bool cloneFrameSelected) |
| void | cutCopyImpl (bool entireColumn, bool copy) |
| void | fanSelectedFrames (const QModelIndexList &selection, int count, bool ignoreKeyless=true) |
| void | insertKeyframes (int count=1, int timing=1, TimelineDirection direction=TimelineDirection::LEFT, bool entireColumn=false) |
| void | insertMultipleKeyframes (bool entireColumn=false) |
| void | insertOrRemoveHoldFrames (int count, bool entireColumn=false) |
| void | insertOrRemoveMultipleHoldFrames (bool insertion, bool entireColumn=false) |
| int | scrollPositionFromColumn (int column) |
| void | setFramesPerSecond (int fps) |
Private Attributes | |
| const QScopedPointer< Private > | m_d |
Definition at line 29 of file KisAnimTimelineFramesView.h.
| KisAnimTimelineFramesView::KisAnimTimelineFramesView | ( | QWidget * | parent | ) |
Definition at line 132 of file KisAnimTimelineFramesView.cpp.
References connect(), KisKineticScroller::createPreconfiguredScroller(), KisColorLabelSelectorWidget::currentIndexChanged(), KisKineticScroller::getConfiguredGestureType(), KisIconUtils::loadIcon(), m_d, KisAnimUtils::newLayerActionName, KisAnimUtils::pinExistingLayerActionName, KisAnimUtils::removeLayerActionName, setFramesPerSecond(), KisAnimTimelineTimeHeader::setPixelOffset(), slotAddExistingLayer(), slotAddNewLayer(), slotClearCache(), slotColorLabelChanged(), slotCopyColumns(), slotCutColumns(), slotInsertHoldFrameColumn(), slotInsertKeyframeColumnLeft(), slotInsertKeyframeColumnRight(), slotInsertMultipleHoldFrameColumns(), slotInsertMultipleKeyframeColumns(), slotLayerContextMenuRequested(), slotMirrorColumns(), slotPasteColumns(), slotRemoveHoldFrameColumn(), slotRemoveLayer(), slotRemoveMultipleHoldFrameColumns(), slotRemoveSelectedColumns(), slotRemoveSelectedColumnsAndShift(), slotScrollerStateChanged(), slotSelectionChanged(), slotUpdateFrameActions(), slotUpdateInfiniteFramesCount(), slotUpdateLayersMenu(), and slotZoom().
|
override |
Definition at line 289 of file KisAnimTimelineFramesView.cpp.
|
slot |
Definition at line 860 of file KisAnimTimelineFramesView.cpp.
References KisAnimTimelineFramesModel::ActiveLayerRole, and m_d.
|
private |
Definition at line 1428 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
private |
Definition at line 1397 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
private |
Definition at line 1595 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisAnimTimelineFramesModel::CloneFramesPolicy, and m_d.
|
private |
Definition at line 1618 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), m_d, KisActionManager::safePopulateMenu(), and slotUpdateFrameActions().
|
overrideprotected |
Definition at line 1333 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::ActiveFrameRole, m_d, KisTimeBasedItemModel::ScrubToRole, SEEK_FINALIZE, and SEEK_PUSH_AUDIO.
|
private |
Definition at line 1570 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisAnimTimelineFramesModel::CopyFramesPolicy, m_d, and KisAnimTimelineFramesModel::MoveFramesPolicy.
|
overrideprotected |
Definition at line 1229 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1262 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1237 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1270 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
private |
Definition at line 1540 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::FrameExistsRole, and m_d.
|
private |
Insert new keyframes/columns.
count - Number of frames to add. If <0, use number of currently SELECTED frames. timing - Animation timing of frames to be added (on 1s, 2s, 3s, etc.) direction - Insert frames before (left) or after (right) selection scrubber. entireColumn - Create frames on all layers (rows) instead of just the active layer?
Definition at line 1443 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), KisTimeBasedItemModel::FrameEditableRole, m_d, and RIGHT.
|
private |
Definition at line 1472 of file KisAnimTimelineFramesView.cpp.
References insertKeyframes(), and m_d.
|
private |
Definition at line 1482 of file KisAnimTimelineFramesView.cpp.
References fanSelectedFrames(), KisTimeBasedItemModel::FrameEditableRole, m_d, and slotUpdateInfiniteFramesCount().
|
private |
Definition at line 1517 of file KisAnimTimelineFramesView.cpp.
References insertOrRemoveHoldFrames(), and m_d.
|
overrideprotected |
Definition at line 1033 of file KisAnimTimelineFramesView.cpp.
|
overrideprotected |
Definition at line 1047 of file KisAnimTimelineFramesView.cpp.
References m_d, KisZoomableScrollBar::overscroll(), and startDrag().
|
overrideprotected |
Definition at line 900 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::ActiveFrameRole, KisAnimTimelineFramesModel::ActiveLayerRole, KisTimeBasedItemModel::CloneCount, createFrameEditingMenuActions(), KisImageConfig::defaultFrameColorLabel(), KisAnimTimelineFramesModel::FrameColorLabelIndexRole, KisTimeBasedItemModel::FrameEditableRole, KisTimeBasedItemModel::FrameExistsRole, m_d, KisActionManager::safePopulateMenu(), KisTimeBasedItemModel::ScrubToRole, SEEK_FINALIZE, SEEK_PUSH_AUDIO, KisTimeBasedItemModel::SpecialKeyframeExists, and value().
|
overrideprotected |
Definition at line 1103 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1320 of file KisAnimTimelineFramesView.cpp.
References slotUpdateInfiniteFramesCount(), and updateGeometries().
|
overrideprotected |
Definition at line 1328 of file KisAnimTimelineFramesView.cpp.
|
private |
Definition at line 1688 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Qt has a bug: when we Ctrl+click on an item, the item's selections gets toggled on mouse press, whereas usually it is done on mouse release. Therefore the user cannot do a Ctrl+D&D with the default configuration. This code fixes the problem by manually returning QItemSelectionModel::NoUpdate flag when the user clicks on an item and returning QItemSelectionModel::Toggle on release.
Definition at line 1346 of file KisAnimTimelineFramesView.cpp.
| void KisAnimTimelineFramesView::setActionManager | ( | KisActionManager * | actionManager | ) |
Definition at line 321 of file KisAnimTimelineFramesView.cpp.
References clone(), connect(), m_d, slotAddBlankFrame(), slotAddDuplicateFrame(), slotCopyFrames(), slotCutFrames(), slotInsertHoldFrame(), slotInsertKeyframeLeft(), slotInsertKeyframeRight(), slotInsertMultipleHoldFrames(), slotInsertMultipleKeyframes(), slotMakeClonesUnique(), slotMirrorFrames(), slotPasteFrames(), slotRemoveHoldFrame(), slotRemoveMultipleHoldFrames(), slotRemoveSelectedFrames(), slotRemoveSelectedFramesAndShift(), slotSetEndTimeToCurrentPosition(), slotSetStartTimeToCurrentPosition(), and slotUpdatePlaybackRange().
|
private |
Definition at line 1391 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
override |
Definition at line 293 of file KisAnimTimelineFramesView.cpp.
References connect(), m_d, slotDataChanged(), slotEnsureRowVisible(), slotHeaderDataChanged(), slotReselectCurrentIndex(), slotTryTransferSelectionBetweenRows(), and slotUpdateInfiniteFramesCount().
|
slot |
Definition at line 662 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
slot |
Definition at line 675 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
slot |
Definition at line 638 of file KisAnimTimelineFramesView.cpp.
|
slot |
Definition at line 631 of file KisAnimTimelineFramesView.cpp.
|
slot |
|
slot |
Definition at line 771 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
|
slot |
Definition at line 416 of file KisAnimTimelineFramesView.cpp.
References KisCanvas2::animationState(), and m_d.
|
slot |
Definition at line 709 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 623 of file KisAnimTimelineFramesView.cpp.
References KisAnimTimelineFramesModel::FrameColorLabelIndexRole, m_d, and KisImageConfig::setDefaultFrameColorLabel().
|
inlineslot |
Definition at line 110 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 107 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 111 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 108 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 571 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::ActiveFrameRole, m_d, and value().
|
slot |
Definition at line 833 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 849 of file KisAnimTimelineFramesView.cpp.
References KIS_ASSERT, and m_d.
|
slot |
Definition at line 607 of file KisAnimTimelineFramesView.cpp.
References calculateActiveLayerSelectedTimes(), KisTimeBasedItemModel::FramesPerSecondRole, m_d, and setFramesPerSecond().
|
inlineslot |
Definition at line 90 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 93 of file KisAnimTimelineFramesView.h.
|
inlineslot |
|
inlineslot |
|
inlineslot |
|
inlineslot |
|
inlineslot |
Definition at line 99 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 96 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 82 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 81 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 657 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 734 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), and m_d.
|
inlineslot |
Definition at line 103 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 700 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), and m_d.
|
inlineslot |
Definition at line 114 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 713 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 813 of file KisAnimTimelineFramesView.cpp.
|
inlineslot |
Definition at line 91 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 94 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 650 of file KisAnimTimelineFramesView.cpp.
|
inlineslot |
Definition at line 100 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 97 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 87 of file KisAnimTimelineFramesView.h.
|
inlineslot |
Definition at line 88 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 687 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), and m_d.
|
inlineslot |
Definition at line 85 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 523 of file KisAnimTimelineFramesView.cpp.
References currentChanged().
|
slot |
Definition at line 782 of file KisAnimTimelineFramesView.cpp.
References m_d, and KisKineticScroller::updateCursor().
|
slot |
Definition at line 742 of file KisAnimTimelineFramesView.cpp.
References KisImportExportManager::askForAudioFileName(), and m_d.
|
slot |
Definition at line 498 of file KisAnimTimelineFramesView.cpp.
References calculateActiveLayerSelectedTimes(), KisTimeSpan::fromTimeWithDuration(), and m_d.
|
slot |
Definition at line 548 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 543 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 529 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 806 of file KisAnimTimelineFramesView.cpp.
References m_d, and slotUpdateInfiniteFramesCount().
|
slot |
Definition at line 455 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisTimeBasedItemModel::FrameExistsRole, KIS_SAFE_ASSERT_RECOVER_RETURN, m_d, and value().
|
slot |
Definition at line 431 of file KisAnimTimelineFramesView.cpp.
References KisIconUtils::loadIcon(), and m_d.
|
slot |
Definition at line 565 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 437 of file KisAnimTimelineFramesView.cpp.
References m_d, TimelineNodeListKeeper::OtherLayer::name, KisAnimTimelineFramesModel::OtherLayersRole, and value().
|
slot |
Definition at line 553 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), and m_d.
|
slot |
Definition at line 793 of file KisAnimTimelineFramesView.cpp.
References m_d, scrollPositionFromColumn(), and slotUpdateInfiniteFramesCount().
|
overrideprotected |
Workaround for Qt5's bug: if we start a dragging action right during Shift-selection, Qt will get crazy. We cannot workaround it easily, because we would need to fork mouseMoveEvent() for that (where the decision about drag state is done). So we just abort dragging in that case.
BUG:373067
Workaround for Qt5's bugs:
1) Qt doesn't treat selection the selection on D&D correctly, so we save it in advance and restore afterwards.
2) There is a private variable in QAbstractItemView: QAbstractItemView::Private::currentSelectionStartIndex. It is initialized only when the setCurrentIndex() is called explicitly on the view object, not on the selection model. Therefore we should explicitly call setCurrentIndex() after D&D, even if it already has correct value!
2) We should also call selectionModel()->select() explicitly. There are two reasons for it: 1) Qt doesn't maintain selection over D&D; 2) when reselecting single element after D&D, Qt goes crazy, because it tries to read global keyboard modifiers. Therefore if we are dragging with Shift or Ctrl pressed it'll get crazy. So just reset it explicitly.
Definition at line 1113 of file KisAnimTimelineFramesView.cpp.
References isIndexDragEnabled(), and m_d.
|
override |
Definition at line 395 of file KisAnimTimelineFramesView.cpp.
References m_d, and resizeToMinimalSize().
|
overrideprotected |
Definition at line 872 of file KisAnimTimelineFramesView.cpp.
|
overrideprotected |
Definition at line 1298 of file KisAnimTimelineFramesView.cpp.
References m_d, and slotUpdateInfiniteFramesCount().
|
private |
Definition at line 186 of file KisAnimTimelineFramesView.h.