Olive
keyframeview.h
Go to the documentation of this file.
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef KEYFRAMEVIEW_H
22 #define KEYFRAMEVIEW_H
23 
24 #include <QWidget>
25 #include <QPainter>
26 
27 class Clip;
28 class Effect;
29 class EffectRow;
30 class EffectField;
31 class TimelineHeader;
32 
33 class KeyframeView : public QWidget {
34  Q_OBJECT
35 public:
36  KeyframeView(QWidget* parent = 0);
37 
39 
41 
42  long visible_in;
44 signals:
45  void wheel_event_signal(QWheelEvent*);
46 public slots:
47  void set_x_scroll(int);
48  void set_y_scroll(int);
49  void resize_move(double d);
50 private:
51  QVector<EffectField*> selected_fields;
52  QVector<int> selected_keyframes;
53  QVector<int> rowY;
54  QVector<EffectRow*> rows;
55  QVector<long> old_key_vals;
56  void mousePressEvent(QMouseEvent* event);
57  void mouseMoveEvent(QMouseEvent* event);
58  void mouseReleaseEvent(QMouseEvent *event);
59  void paintEvent(QPaintEvent *event);
60  void wheelEvent(QWheelEvent* e);
61  bool mousedown;
62  bool dragging;
66 
67  bool keyframeIsSelected(EffectField *field, int keyframe);
68 
76 
77  int x_scroll;
78  int y_scroll;
79 
80  void update_keys();
81 private slots:
82  void show_context_menu(const QPoint& pos);
83  void menu_set_key_type(QAction*);
84 };
85 
86 #endif // KEYFRAMEVIEW_H
TimelineHeader * header
Definition: keyframeview.h:40
bool keyframeIsSelected(EffectField *field, int keyframe)
Definition: keyframeview.cpp:193
QVector< EffectField * > selected_fields
Definition: keyframeview.h:51
int rect_select_offset
Definition: keyframeview.h:75
QVector< EffectRow * > rows
Definition: keyframeview.h:54
Definition: keyframeview.h:33
bool scroll_drag
Definition: keyframeview.h:65
void update_keys()
Definition: keyframeview.cpp:202
bool dragging
Definition: keyframeview.h:62
void mouseMoveEvent(QMouseEvent *event)
Definition: keyframeview.cpp:321
long last_frame_diff
Definition: keyframeview.h:70
Definition: effect.h:169
void mouseReleaseEvent(QMouseEvent *event)
Definition: keyframeview.cpp:418
KeyframeView(QWidget *parent=0)
Definition: keyframeview.cpp:46
QVector< int > selected_keyframes
Definition: keyframeview.h:52
void set_x_scroll(int)
Definition: keyframeview.cpp:211
Definition: timelineheader.h:31
Definition: effectrow.h:37
QVector< int > rowY
Definition: keyframeview.h:53
QVector< long > old_key_vals
Definition: keyframeview.h:55
int y_scroll
Definition: keyframeview.h:78
void set_y_scroll(int)
Definition: keyframeview.cpp:216
void wheelEvent(QWheelEvent *e)
Definition: keyframeview.cpp:189
int rect_select_x
Definition: keyframeview.h:71
int rect_select_y
Definition: keyframeview.h:72
void menu_set_key_type(QAction *)
Definition: keyframeview.cpp:83
void paintEvent(QPaintEvent *event)
Definition: keyframeview.cpp:98
bool mousedown
Definition: keyframeview.h:61
long visible_in
Definition: keyframeview.h:42
int x_scroll
Definition: keyframeview.h:77
bool keys_selected
Definition: keyframeview.h:63
int rect_select_h
Definition: keyframeview.h:74
Definition: clip.h:50
long drag_frame_start
Definition: keyframeview.h:69
Definition: effectfield.h:43
void wheel_event_signal(QWheelEvent *)
bool select_rect
Definition: keyframeview.h:64
void show_context_menu(const QPoint &pos)
Definition: keyframeview.cpp:65
void delete_selected_keyframes()
Definition: keyframeview.cpp:207
void resize_move(double d)
Definition: keyframeview.cpp:221
int rect_select_w
Definition: keyframeview.h:73
void mousePressEvent(QMouseEvent *event)
Definition: keyframeview.cpp:227
long visible_out
Definition: keyframeview.h:43