]> git.sesse.net Git - kdenlive/blob - src/effectstackview.h
Use new timecode widget for position parameter in effects
[kdenlive] / src / effectstackview.h
1 /***************************************************************************
2                           effecstackview.h  -  description
3                              -------------------
4     begin                : Feb 15 2008
5     copyright            : (C) 2008 by Marco Gittler
6     email                : g.marco@freenet.de
7  ***************************************************************************/
8
9 /***************************************************************************
10  *                                                                         *
11  *   This program is free software; you can redistribute it and/or modify  *
12  *   it under the terms of the GNU General Public License as published by  *
13  *   the Free Software Foundation; either version 2 of the License, or     *
14  *   (at your option) any later version.                                   *
15  *                                                                         *
16  ***************************************************************************/
17
18 /**
19 * @class EffectStackView
20 * @brief View part of the EffectStack
21 * @author Marco Gittler
22 */
23
24 #ifndef EFFECTSTACKVIEW_H
25 #define EFFECTSTACKVIEW_H
26
27 #include "ui_effectstack_ui.h"
28 #include "effectstackedit.h"
29
30 class EffectsList;
31 class ClipItem;
32 class MltVideoProfile;
33
34 class EffectStackView : public QWidget
35 {
36     Q_OBJECT
37
38 public:
39     EffectStackView(QWidget *parent = 0);
40     virtual ~EffectStackView();
41     void raiseWindow(QWidget*);
42     void clear();
43     void setMenu(QMenu *menu);
44     void updateProjectFormat(MltVideoProfile profile, Timecode t);
45     void updateTimecodeFormat();
46
47 private:
48     Ui::EffectStack_UI m_ui;
49     ClipItem* m_clipref;
50     QMap<QString, EffectsList*> m_effectLists;
51     EffectStackEdit* m_effectedit;
52     void setupListView(int ix);
53     //void updateButtonStatus();
54
55 public slots:
56     void slotClipItemSelected(ClipItem*, int ix);
57     void slotUpdateEffectParams(const QDomElement, const QDomElement);
58     /** @brief Remove selected effect. */
59     void slotItemDel();
60
61 private slots:
62     void slotItemSelectionChanged(bool update = true);
63     void slotItemUp();
64     void slotItemDown();
65     void slotResetEffect();
66     void slotItemChanged(QListWidgetItem *item);
67     void slotSaveEffect();
68     void slotSeekTimeline(int pos);
69
70 signals:
71     void removeEffect(ClipItem*, QDomElement);
72     /**  Parameters for an effect changed, update the filter in playlist */
73     void updateClipEffect(ClipItem*, QDomElement, QDomElement, int);
74     /** An effect in stack was moved, we need to regenerate
75         all effects for this clip in the playlist */
76     void refreshEffectStack(ClipItem *);
77     /** Enable or disable an effect */
78     void changeEffectState(ClipItem*, int, bool);
79     /** An effect in stack was moved */
80     void changeEffectPosition(ClipItem*, int, int);
81     /** an effect was saved, reload list */
82     void reloadEffects();
83     /** An effect with position parameter was changed, seek */
84     void seekTimeline(int);
85
86 };
87
88 #endif