+ QAction *m_autoTransition;
+ QAction *m_pasteEffectsAction;
+ QAction *m_ungroupAction;
+ QAction *m_editGuide;
+ QAction *m_deleteGuide;
+ QActionGroup *m_clipTypeGroup;
+ QTimer m_scrollTimer;
+ QTimer m_thumbsTimer;
+ int m_scrollOffset;
+ bool m_clipDrag;
+
+ int m_findIndex;
+ PROJECTTOOL m_tool;
+ QCursor m_razorCursor;
+ QCursor m_spacerCursor;
+ /** list containing items currently copied in the timeline */
+ QList<AbstractClipItem *> m_copiedItems;
+ /** Used to get the point in timeline where a context menu was opened */
+ QPoint m_menuPosition;
+ bool m_blockRefresh;
+ AbstractGroupItem *m_selectionGroup;
+ QList <ClipItem *> m_waitingThumbs;
+ int m_selectedTrack;
+ int m_spacerOffset;
+
+ /** Get the index of the video track that is just below current track */
+ int getPreviousVideoTrack(int track);
+ void updatePositionEffects(ClipItem * item, ItemInfo info);
+ bool insertDropClips(const QMimeData *data, const QPoint pos);
+ bool canBePastedTo(ItemInfo info, int type) const;
+ bool canBePastedTo(QList <ItemInfo> infoList, int type) const;
+ bool canBePasted(QList<AbstractClipItem *> items, GenTime offset, int trackOffset) const;
+ bool canBeMoved(QList<AbstractClipItem *> items, GenTime offset, int trackOffset) const;
+ ClipItem *getClipUnderCursor() const;
+ AbstractClipItem *getMainActiveClip() const;
+ void resetSelectionGroup(bool selectItems = true);
+ void groupSelectedItems(bool force = false, bool createNewGroup = false);
+ /** Get available space for clip move (min and max free positions) */
+ void getClipAvailableSpace(AbstractClipItem *item, GenTime &minimum, GenTime &maximum);
+ /** Get available space for transition move (min and max free positions) */
+ void getTransitionAvailableSpace(AbstractClipItem *item, GenTime &minimum, GenTime &maximum);
+ void updateClipTypeActions(ClipItem *clip);
+ /** Whether an item can be moved to a new position without colliding with similar items */
+ bool itemCollision(AbstractClipItem *item, ItemInfo newPos);
+ /** Selects all items in the scene rect, and sets ok to false if a group going over several tracks is found in it */
+ QList<QGraphicsItem *> checkForGroups(const QRectF &rect, bool *ok);
+ /** Adjust clips under another one when working in overwrite mode */
+ void adjustTimelineClips(EDITMODE mode, ClipItem *item, ItemInfo posinfo, QUndoCommand *command);
+ void adjustTimelineTransitions(EDITMODE mode, Transition *item, QUndoCommand *command);
+ /** Adjust keyframes when pasted to another clip */
+ void adjustKeyfames(GenTime oldstart, GenTime newstart, GenTime duration, QDomElement xml);
+
+private slots:
+ void slotRefreshGuides();
+ void slotEnableRefresh();
+ void slotCheckMouseScrolling();
+ void slotEditTimeLineGuide();
+ void slotDeleteTimeLineGuide();
+ void slotFetchNextThumbs();
+ void checkTrackSequence(int track);