Olive
effectcontrols.h
1 #ifndef EFFECTCONTROLS_H
2 #define EFFECTCONTROLS_H
3 
4 #include <QDockWidget>
5 #include <QUndoCommand>
6 #include <QMutex>
7 
8 class Clip;
9 class QMenu;
10 class Effect;
11 class TimelineHeader;
12 class QScrollArea;
13 class KeyframeView;
14 class QVBoxLayout;
15 class ResizableScrollBar;
16 class QLabel;
17 class KeyframeView;
18 class QScrollBar;
19 class QHBoxLayout;
20 
21 class EffectsArea : public QWidget {
22  Q_OBJECT
23 public:
24  EffectsArea(QWidget* parent = 0);
25  QScrollArea* parent_widget;
26  KeyframeView* keyframe_area;
27  TimelineHeader* header;
28 public slots:
29  void receive_wheel_event(QWheelEvent* e);
30 };
31 
32 class EffectControls : public QDockWidget
33 {
34  Q_OBJECT
35 public:
36  explicit EffectControls(QWidget *parent = 0);
37  ~EffectControls();
38  int get_mode();
39  void set_clips(QVector<int>& clips, int mode);
40  void clear_effects(bool clear_cache);
41  void delete_effects();
42  bool is_focused();
43  void reload_clips();
44  void set_zoom(bool in);
45  bool keyframe_focus();
46  void delete_selected_keyframes();
47  bool multiple;
48  void scroll_to_frame(long frame);
49 
50  QVector<int> selected_clips;
51 
52  double zoom;
53 
54  ResizableScrollBar* horizontalScrollBar;
55  QScrollBar* verticalScrollBar;
56 
57  QMutex effects_loaded;
58 
59  void add_effect_paste_action(QMenu* menu);
60 public slots:
61  void cut();
62  void copy(bool del = false);
63  void update_keyframes();
64 private slots:
65  void menu_select(QAction* q);
66 
67  void video_effect_click();
68  void audio_effect_click();
69  void video_transition_click();
70  void audio_transition_click();
71 
72  void deselect_all_effects(QWidget*);
73 
74  void update_scrollbar();
75  void queue_post_update();
76 
77  void effects_area_context_menu();
78 protected:
79  void resizeEvent(QResizeEvent *event);
80 private:
81  void show_effect_menu(int type, int subtype);
82  void load_effects();
83  void load_keyframes();
84  void open_effect(QVBoxLayout* hlayout, Effect* e);
85 
86  void setup_ui();
87 
88  int effect_menu_type;
89  int effect_menu_subtype;
90  QString panel_name;
91  int mode;
92 
93  TimelineHeader* headers;
94  EffectsArea* effects_area;
95  QScrollArea* scrollArea;
96  QLabel* lblMultipleClipsSelected;
97  KeyframeView* keyframeView;
98  QWidget* video_effect_area;
99  QWidget* audio_effect_area;
100  QWidget* vcontainer;
101  QWidget* acontainer;
102 };
103 
104 #endif // EFFECTCONTROLS_H
Definition: keyframeview.h:13
Definition: effectcontrols.h:21
Definition: effect.h:146
Definition: timelineheader.h:11
Definition: effectcontrols.h:32
Definition: resizablescrollbar.h:6
Definition: clip.h:33