|
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 133 of file KisAnimTimelineFramesView.cpp.
References 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 290 of file KisAnimTimelineFramesView.cpp.
|
slot |
Definition at line 861 of file KisAnimTimelineFramesView.cpp.
References KisAnimTimelineFramesModel::ActiveLayerRole, and m_d.
|
private |
Definition at line 1429 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
private |
Definition at line 1398 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
private |
Definition at line 1596 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisAnimTimelineFramesModel::CloneFramesPolicy, and m_d.
|
private |
Definition at line 1619 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), m_d, KisActionManager::safePopulateMenu(), and slotUpdateFrameActions().
|
overrideprotected |
Definition at line 1334 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::ActiveFrameRole, m_d, KisTimeBasedItemModel::ScrubToRole, SEEK_FINALIZE, and SEEK_PUSH_AUDIO.
|
private |
Definition at line 1571 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisAnimTimelineFramesModel::CopyFramesPolicy, m_d, and KisAnimTimelineFramesModel::MoveFramesPolicy.
|
overrideprotected |
Definition at line 1230 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1263 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1238 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1271 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
private |
Definition at line 1541 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 1444 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), KisTimeBasedItemModel::FrameEditableRole, m_d, and RIGHT.
|
private |
Definition at line 1473 of file KisAnimTimelineFramesView.cpp.
References insertKeyframes(), and m_d.
|
private |
Definition at line 1483 of file KisAnimTimelineFramesView.cpp.
References fanSelectedFrames(), KisTimeBasedItemModel::FrameEditableRole, m_d, and slotUpdateInfiniteFramesCount().
|
private |
Definition at line 1518 of file KisAnimTimelineFramesView.cpp.
References insertOrRemoveHoldFrames(), and m_d.
|
overrideprotected |
Definition at line 1034 of file KisAnimTimelineFramesView.cpp.
|
overrideprotected |
Definition at line 1048 of file KisAnimTimelineFramesView.cpp.
References m_d, KisZoomableScrollBar::overscroll(), and startDrag().
|
overrideprotected |
Definition at line 901 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 1104 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
overrideprotected |
Definition at line 1321 of file KisAnimTimelineFramesView.cpp.
References slotUpdateInfiniteFramesCount(), and updateGeometries().
|
overrideprotected |
Definition at line 1329 of file KisAnimTimelineFramesView.cpp.
|
private |
Definition at line 1689 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 1347 of file KisAnimTimelineFramesView.cpp.
| void KisAnimTimelineFramesView::setActionManager | ( | KisActionManager * | actionManager | ) |
Definition at line 322 of file KisAnimTimelineFramesView.cpp.
References clone(), 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 1392 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
override |
Definition at line 294 of file KisAnimTimelineFramesView.cpp.
References m_d, slotDataChanged(), slotEnsureRowVisible(), slotHeaderDataChanged(), slotReselectCurrentIndex(), slotTryTransferSelectionBetweenRows(), and slotUpdateInfiniteFramesCount().
|
slot |
Definition at line 663 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
slot |
Definition at line 676 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::FrameEditableRole, and m_d.
|
slot |
Definition at line 639 of file KisAnimTimelineFramesView.cpp.
|
slot |
Definition at line 632 of file KisAnimTimelineFramesView.cpp.
|
slot |
|
slot |
Definition at line 772 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
|
slot |
Definition at line 417 of file KisAnimTimelineFramesView.cpp.
References KisCanvas2::animationState(), and m_d.
|
slot |
Definition at line 710 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 624 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 572 of file KisAnimTimelineFramesView.cpp.
References KisTimeBasedItemModel::ActiveFrameRole, m_d, and value().
|
slot |
Definition at line 834 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 850 of file KisAnimTimelineFramesView.cpp.
References KIS_ASSERT, and m_d.
|
slot |
Definition at line 608 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 658 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 735 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), and m_d.
|
inlineslot |
Definition at line 103 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 701 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), and m_d.
|
inlineslot |
Definition at line 114 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 714 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 814 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 651 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 688 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), and m_d.
|
inlineslot |
Definition at line 85 of file KisAnimTimelineFramesView.h.
|
slot |
Definition at line 524 of file KisAnimTimelineFramesView.cpp.
References currentChanged().
|
slot |
Definition at line 783 of file KisAnimTimelineFramesView.cpp.
References m_d, and KisKineticScroller::updateCursor().
|
slot |
Definition at line 743 of file KisAnimTimelineFramesView.cpp.
References KisImportExportManager::askForAudioFileName(), and m_d.
|
slot |
Definition at line 499 of file KisAnimTimelineFramesView.cpp.
References calculateActiveLayerSelectedTimes(), KisTimeSpan::fromTimeWithDuration(), and m_d.
|
slot |
Definition at line 549 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 544 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 530 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 807 of file KisAnimTimelineFramesView.cpp.
References m_d, and slotUpdateInfiniteFramesCount().
|
slot |
Definition at line 456 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionSpan(), KisTimeBasedItemModel::FrameExistsRole, KIS_SAFE_ASSERT_RECOVER_RETURN, m_d, and value().
|
slot |
Definition at line 432 of file KisAnimTimelineFramesView.cpp.
References KisIconUtils::loadIcon(), and m_d.
|
slot |
Definition at line 566 of file KisAnimTimelineFramesView.cpp.
References m_d.
|
slot |
Definition at line 438 of file KisAnimTimelineFramesView.cpp.
References m_d, TimelineNodeListKeeper::OtherLayer::name, KisAnimTimelineFramesModel::OtherLayersRole, and value().
|
slot |
Definition at line 554 of file KisAnimTimelineFramesView.cpp.
References calculateSelectionMetrics(), and m_d.
|
slot |
Definition at line 794 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 1114 of file KisAnimTimelineFramesView.cpp.
References isIndexDragEnabled(), and m_d.
|
override |
Definition at line 396 of file KisAnimTimelineFramesView.cpp.
References m_d, and resizeToMinimalSize().
|
overrideprotected |
Definition at line 873 of file KisAnimTimelineFramesView.cpp.
|
overrideprotected |
Definition at line 1299 of file KisAnimTimelineFramesView.cpp.
References m_d, and slotUpdateInfiniteFramesCount().
|
private |
Definition at line 186 of file KisAnimTimelineFramesView.h.