X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectstackedit.h;h=257dfb157564b819af41f385c948aa630f45aea5;hb=a329b67428d05252cf806081288e9a1f884483b8;hp=88688c75981d819415397768a66e42717acf39f4;hpb=aa49bce660baf4d4e29b0355024ff8b0556e3f18;p=kdenlive diff --git a/src/effectstackedit.h b/src/effectstackedit.h index 88688c75..257dfb15 100644 --- a/src/effectstackedit.h +++ b/src/effectstackedit.h @@ -21,6 +21,7 @@ #include "definitions.h" #include "timecode.h" #include "keyframeedit.h" +#include "effectstack/collapsibleeffect.h" #include #include @@ -29,15 +30,6 @@ #include #include -enum WIPE_DIRECTON { UP = 0, DOWN = 1, LEFT = 2, RIGHT = 3, CENTER = 4 }; - -struct wipeInfo { - WIPE_DIRECTON start; - WIPE_DIRECTON end; - int startTransparency; - int endTransparency; -}; - class QFrame; class Monitor; class GeometryWidget; @@ -57,12 +49,15 @@ public: void setFrameSize(QPoint p); /** @brief Tells the parameters to update their timecode format according to KdenliveSettings. */ void updateTimecodeFormat(); + /** @brief Returns true if this effect wants to keep track of current position in clip. */ + bool effectNeedsSyncPosition() const; + Monitor *monitor(); + /** @brief Install event filter so that scrolling with mouse wheel does not change parameter value. */ + virtual bool eventFilter( QObject * o, QEvent * e ); private: /** @brief Deletes all parameter widgets. */ void clearAllItems(); - wipeInfo getWipeInfo(QString value); - QString getWipeString(wipeInfo info); /** @brief Updates parameter @param name according to new value of dependency. * @param name Name of the parameter which will be updated * @param type Type of the parameter which will be updated @@ -71,21 +66,20 @@ private: QVBoxLayout *m_vbox; QList m_uiItems; - QWidget *m_baseWidget; QDomElement m_params; QMap m_valueItems; - MltVideoProfile m_profile; - Timecode m_timecode; int m_in; int m_out; - QPoint m_frameSize; KeyframeEdit *m_keyframeEditor; Monitor *m_monitor; GeometryWidget *m_geometryWidget; + EffectMetaInfo m_metaInfo; + QWidget *m_baseWidget; + ParameterContainer *m_paramWidget; public slots: /** @brief Called when an effect is selected, builds the UI for this effect. */ - void transferParamDesc(const QDomElement d, ItemInfo info, bool isEffect = true); + void transferParamDesc(const QDomElement &d, ItemInfo info, bool isEffect = true); /** @brief Called whenever(?) some parameter is changed in the gui. * @@ -94,15 +88,20 @@ public slots: /** @brief Pass position changes of the timeline cursor to the effects to keep their local timelines in sync. */ void slotSyncEffectsPos(int pos); + +private slots: + void slotStartFilterJobAction(); signals: - void parameterChanged(const QDomElement, const QDomElement); + void parameterChanged(const QDomElement, const QDomElement, int); void seekTimeline(int); void displayMessage(const QString&, int); void checkMonitorPosition(int); void syncEffectsPos(int pos); void showComments(bool show); void effectStateChanged(bool enabled); + /** @brief Start an MLT filter job on this clip. */ + void startFilterJob(const QString &filterName, const QString &filterParams, const QString &finalFilterName, const QString &consumer, const QString &consumerParams, const QString &properties); }; #endif