+ void updateEffect(int track, GenTime pos, QDomElement insertedEffect, int ix, bool triggeredByUser = true);
+ void moveEffect(int track, GenTime pos, int oldPos, int newPos);
+ void addTransition(ItemInfo transitionInfo, int endTrack, QDomElement params, bool refresh);
+ void deleteTransition(ItemInfo transitionInfo, int endTrack, QDomElement params, bool refresh);
+ void updateTransition(int track, GenTime pos, QDomElement oldTransition, QDomElement transition, bool updateTransitionWidget);
+ void moveTransition(GenTime oldpos, GenTime newpos);
+ void activateMonitor();
+ int duration() const;
+ void deleteSelectedClips();
+ void cutSelectedClips();
+ void setContextMenu(QMenu *timeline, QMenu *clip, QMenu *transition, QActionGroup *clipTypeGroup, QMenu *markermenu);
+ void checkTrackHeight();
+ //QList <TrackInfo> tracksList() const;
+ void setTool(PROJECTTOOL tool);
+ ClipItem *cutClip(ItemInfo info, GenTime cutTime, bool cut, bool execute = true);
+ void slotSeekToPreviousSnap();
+ void slotSeekToNextSnap();
+ double getSnapPointForPos(double pos);
+ void editKeyFrame(const GenTime pos, const int track, const int index, const QString keyframes);
+ bool findString(const QString &text);
+ void selectFound(QString track, QString pos);
+ bool findNextString(const QString &text);
+ void initSearchStrings();
+ void clearSearchStrings();
+ QList<ItemInfo> findId(const QString &clipId);
+ void clipStart();
+ void clipEnd();
+ void changeClipSpeed();
+ void doChangeClipSpeed(ItemInfo info, ItemInfo speedIndependantInfo, const double speed, const double oldspeed, int strobe, const QString &id);
+ /** @brief Sets the document as modified. */
+ void setDocumentModified();
+ void setInPoint();
+ void setOutPoint();
+
+ /** @brief Prepares inserting space.
+ *
+ * Shows a dialog to configure length and track. */
+ void slotInsertSpace();
+ /** @brief Prepares removing space. */
+ void slotRemoveSpace();
+ void insertSpace(QList<ItemInfo> clipsToMove, QList<ItemInfo> transToMove, int track, const GenTime duration, const GenTime offset);
+ ClipItem *getActiveClipUnderCursor(bool allowOutsideCursor = false) const;
+ void deleteTimelineTrack(int ix, TrackInfo trackinfo);
+ void saveThumbnails();
+ void autoTransition();
+ QStringList getLadspaParams(QDomElement effect) const;
+ void initCursorPos(int pos);
+
+ /** @brief Locks or unlocks a track.
+ * @param ix number of track
+ * @param lock whether to lock or unlock
+ *
+ * Makes sure no clip on track to lock is selected. */
+ void lockTrack(int ix, bool lock);
+ void groupClips(bool group = true);
+ void doGroupClips(QList <ItemInfo> clipInfos, QList <ItemInfo> transitionInfos, bool group);
+ void loadGroups(const QDomNodeList groups);
+
+ /** @brief Creates SplitAudioCommands for selected clips. */
+ void splitAudio();