Olive
grapheditor.h
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 GRAPHEDITOR_H
22 #define GRAPHEDITOR_H
23 
24 #include <QDockWidget>
25 
26 class GraphView;
27 class TimelineHeader;
28 class QPushButton;
29 class EffectRow;
30 class QHBoxLayout;
31 class LabelSlider;
32 class QLabel;
33 class KeyframeNavigator;
34 
35 class GraphEditor : public QDockWidget {
36  Q_OBJECT
37 public:
38  GraphEditor(QWidget* parent = 0);
39  void update_panel();
40  void set_row(EffectRow* r);
41  bool view_is_focused();
42  bool view_is_under_mouse();
43  void delete_selected_keys();
44  void select_all();
45 private:
46  GraphView* view;
47  TimelineHeader* header;
48  QHBoxLayout* value_layout;
49  QVector<LabelSlider*> slider_proxies;
50  QVector<QPushButton*> slider_proxy_buttons;
51  QVector<LabelSlider*> slider_proxy_sources;
52  QLabel* current_row_desc;
53  EffectRow* row;
54  KeyframeNavigator* keyframe_nav;
55  QPushButton* linear_button;
56  QPushButton* bezier_button;
57  QPushButton* hold_button;
58 private slots:
59  void set_key_button_enabled(bool e, int type);
60  void passthrough_slider_value();
61  void set_keyframe_type();
62  void set_field_visibility(bool b);
63 };
64 
65 #endif // GRAPHEDITOR_H
Definition: keyframenavigator.h:29
Definition: timelineheader.h:31
Definition: effectrow.h:37
Definition: graphview.h:32
Definition: grapheditor.h:35
The LabelSlider class.
Definition: labelslider.h:40