Olive
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
mainwindow.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 MAINWINDOW_H
22 #define MAINWINDOW_H
23 
24 #include <QMainWindow>
25 
26 class Project;
27 class EffectControls;
28 class Viewer;
29 class Timeline;
30 
31 class MainWindow : public QMainWindow {
32  Q_OBJECT
33 public:
34  explicit MainWindow(QWidget *parent);
35  virtual ~MainWindow() override;
36 
45  void updateTitle();
46 
57  void load_shortcuts(const QString &fn);
58 
68  void save_shortcuts(const QString &fn);
69 
81  bool load_css_from_file(const QString& fn);
82 
86  void Restyle();
87 
88 public slots:
94  void toggle_full_screen();
95 
96 signals:
102  void finished_first_paint();
103 
104 protected:
112  virtual void closeEvent(QCloseEvent *) override;
113 
119  virtual void paintEvent(QPaintEvent *) override;
120 
131  virtual void changeEvent(QEvent* e) override;
132 
133 private slots:
140  void maximize_panel();
141 
147  void reset_layout();
148 
155 
162 
169 
176 
184 
191 
199 
207  void set_panels_locked(bool locked);
208 
209 private:
221  void setup_layout(bool reset);
222 
229  void setup_menus();
230 
231  void Retranslate();
232 
233  // file menu actions
234  QMenu* file_menu;
235  QMenu* new_menu;
236  QAction* open_project;
237  QMenu* open_recent;
238  QAction* open_action;
240  QAction* save_project;
241  QAction* save_project_as;
242  QAction* import_action;
243  QAction* export_action;
244  QAction* exit_action;
245 
246  // edit menu actions
247  QMenu* edit_menu;
248  QAction* undo_action;
249  QAction* redo_action;
258  QAction* setedit_marker_;
259 
260  // view menu actions
261  QMenu* view_menu;
262  QAction* zoom_in_;
263  QAction* zoom_out_;
266  QAction* track_lines;
267  QAction* frames_action;
271  QAction* no_autoscroll;
272  QAction* page_autoscroll;
274 
276  QAction* title_safe_off;
278  QAction* title_safe_43;
279  QAction* title_safe_169;
281 
282  QAction* full_screen;
284  QAction* show_all;
285 
286  // playback menu
288 
289  QAction* go_to_start_;
290  QAction* previous_frame_;
291  QAction* playpause_;
292  QAction* play_in_to_out_;
293  QAction* next_frame_;
294  QAction* go_to_end_;
295  QAction* go_to_prev_cut_;
296  QAction* go_to_next_cut_;
297  QAction* go_to_in_point_;
299  QAction* shuttle_left_;
300  QAction* shuttle_stop_;
301  QAction* shuttle_right_;
302  QAction* loop_action_;
303 
304  // window menu
305 
306  QMenu* window_menu;
307 
314 
315  QAction* maximize_panel_;
316  QAction* lock_panels_;
318 
319  // tools menu
320  QMenu* tools_menu;
321 
330  QAction* snap_toggle;
335 
336  // help menu
337  QMenu* help_menu;
338  QAction* action_search_;
339  QAction* debug_log_;
340  QAction* about_action_;
341 
342  // used to store the panel state when one panel is maximized
343  QByteArray temp_panel_state;
344 
345  // used in paintEvent() to determine the first paintEvent() performed
347 };
348 
349 namespace olive {
350 extern MainWindow* MainWindow;
351 }
352 
353 #endif // MAINWINDOW_H
QAction * ripple_to_in_point_
Definition: mainwindow.h:252
QAction * save_project_as
Definition: mainwindow.h:241
QAction * slide_tool_action
Definition: mainwindow.h:327
QAction * go_to_start_
Definition: mainwindow.h:289
void finished_first_paint()
Signal emitted once when the main window has finished initializing.
QMenu * tools_menu
Definition: mainwindow.h:320
void set_panels_locked(bool locked)
Set panel lock.
Definition: mainwindow.cpp:1175
QAction * window_footageviewer_action
Definition: mainwindow.h:312
QAction * playpause_
Definition: mainwindow.h:291
void toggle_panel_visibility()
Toggle whether a panel is visible or not.
Definition: mainwindow.cpp:1165
Definition: effectcontrols.h:55
QAction * previous_frame_
Definition: mainwindow.h:290
QAction * clear_open_recent_action
Definition: mainwindow.h:239
void playbackMenu_About_To_Be_Shown()
Function to prepare Playback menu.
Definition: mainwindow.cpp:1116
QAction * next_frame_
Definition: mainwindow.h:293
void updateTitle()
Update window title.
Definition: mainwindow.cpp:943
void reset_layout()
Reset panel layout to default.
Definition: mainwindow.cpp:1071
QAction * debug_log_
Definition: mainwindow.h:339
QAction * show_all
Definition: mainwindow.h:284
QAction * autocut_silence_
Definition: mainwindow.h:332
QAction * select_all_action
Definition: mainwindow.h:250
QAction * delete_inout_point_
Definition: mainwindow.h:256
QAction * go_to_end_
Definition: mainwindow.h:294
QAction * export_action
Definition: mainwindow.h:243
void windowMenu_About_To_Be_Shown()
Function to prepare Window menu.
Definition: mainwindow.cpp:1106
void save_shortcuts(const QString &fn)
Save shortcut file.
Definition: mainwindow.cpp:366
QAction * window_project_action
Definition: mainwindow.h:308
void editMenu_About_To_Be_Shown()
Function to prepare Edit menu.
Definition: mainwindow.cpp:482
QAction * zoom_out_
Definition: mainwindow.h:263
QAction * track_lines
Definition: mainwindow.h:266
QAction * full_screen
Definition: mainwindow.h:282
Definition: viewer.h:44
QAction * go_to_prev_cut_
Definition: mainwindow.h:295
QAction * zoom_in_
Definition: mainwindow.h:262
QMenu * view_menu
Definition: mainwindow.h:261
virtual void changeEvent(QEvent *e) override
Change event.
Definition: mainwindow.cpp:1056
QAction * edit_to_in_point_
Definition: mainwindow.h:254
QAction * slip_tool_action
Definition: mainwindow.h:326
void fileMenu_About_To_Be_Shown()
Function to prepare File menu.
Definition: mainwindow.cpp:1198
QAction * exit_action
Definition: mainwindow.h:244
QMenu * playback_menu
Definition: mainwindow.h:287
QAction * rectified_waveforms
Definition: mainwindow.h:331
QAction * title_safe_off
Definition: mainwindow.h:276
Definition: timeline.h:105
void viewMenu_About_To_Be_Shown()
Function to prepare View menu.
Definition: mainwindow.cpp:1120
QAction * go_to_in_point_
Definition: mainwindow.h:297
QAction * window_graph_editor_action
Definition: mainwindow.h:311
QAction * preferences_action_
Definition: mainwindow.h:333
Definition: project.h:54
QAction * save_project
Definition: mainwindow.h:240
QAction * ripple_to_out_point_
Definition: mainwindow.h:253
QAction * action_search_
Definition: mainwindow.h:338
QAction * frames_action
Definition: mainwindow.h:267
QAction * open_project
Definition: mainwindow.h:236
bool first_show
Definition: mainwindow.h:346
QMenu * help_menu
Definition: mainwindow.h:337
QAction * go_to_next_cut_
Definition: mainwindow.h:296
QAction * lock_panels_
Definition: mainwindow.h:316
QAction * ripple_tool_action
Definition: mainwindow.h:324
QAction * about_action_
Definition: mainwindow.h:340
QAction * hand_tool_action
Definition: mainwindow.h:328
QAction * import_action
Definition: mainwindow.h:242
QAction * full_screen_viewer_
Definition: mainwindow.h:283
QMenu * window_menu
Definition: mainwindow.h:306
QMenu * title_safe_area_menu
Definition: mainwindow.h:275
QMenu * open_recent
Definition: mainwindow.h:237
MainWindow * MainWindow
Definition: mainwindow.cpp:61
QAction * shuttle_left_
Definition: mainwindow.h:299
virtual void closeEvent(QCloseEvent *) override
Close event.
Definition: mainwindow.cpp:950
QAction * no_autoscroll
Definition: mainwindow.h:271
QAction * window_timeline_action
Definition: mainwindow.h:310
QAction * undo_action
Definition: mainwindow.h:248
QAction * reset_default_layout_
Definition: mainwindow.h:317
QAction * razor_tool_action
Definition: mainwindow.h:325
QAction * page_autoscroll
Definition: mainwindow.h:272
virtual void paintEvent(QPaintEvent *) override
Paint event.
Definition: mainwindow.cpp:1032
QAction * title_safe_default
Definition: mainwindow.h:277
virtual ~MainWindow() override
Definition: mainwindow.cpp:298
QByteArray temp_panel_state
Definition: mainwindow.h:343
QAction * shuttle_stop_
Definition: mainwindow.h:300
bool load_css_from_file(const QString &fn)
Load a CSS/QSS style from file to customize Olive&#39;s interface.
Definition: mainwindow.cpp:383
QAction * maximize_panel_
Definition: mainwindow.h:315
QAction * transition_tool_action
Definition: mainwindow.h:329
QAction * deselect_all_action
Definition: mainwindow.h:251
QAction * edit_tool_action
Definition: mainwindow.h:323
QAction * window_effectcontrols_action
Definition: mainwindow.h:309
QAction * ripple_delete_inout_point_
Definition: mainwindow.h:257
QAction * shuttle_right_
Definition: mainwindow.h:301
QAction * title_safe_169
Definition: mainwindow.h:279
QMenu * new_menu
Definition: mainwindow.h:235
QAction * smooth_autoscroll
Definition: mainwindow.h:273
QAction * pointer_tool_action
Definition: mainwindow.h:322
QAction * nondrop_frame_action
Definition: mainwindow.h:269
QAction * increase_track_height_
Definition: mainwindow.h:264
QAction * open_action
Definition: mainwindow.h:238
QAction * setedit_marker_
Definition: mainwindow.h:258
void Retranslate()
Definition: mainwindow.cpp:821
QAction * go_to_out_point_
Definition: mainwindow.h:298
QAction * title_safe_custom
Definition: mainwindow.h:280
void maximize_panel()
Maximizes the currently hovered panel.
Definition: mainwindow.cpp:1075
MainWindow(QWidget *parent)
Definition: mainwindow.cpp:182
QMenu * edit_menu
Definition: mainwindow.h:247
QAction * redo_action
Definition: mainwindow.h:249
QAction * milliseconds_action
Definition: mainwindow.h:270
QAction * snap_toggle
Definition: mainwindow.h:330
QAction * decrease_track_height_
Definition: mainwindow.h:265
QAction * edit_to_out_point_
Definition: mainwindow.h:255
QAction * clear_undo_action_
Definition: mainwindow.h:334
QAction * drop_frame_action
Definition: mainwindow.h:268
QAction * loop_action_
Definition: mainwindow.h:302
QMenu * file_menu
Definition: mainwindow.h:234
void load_shortcuts(const QString &fn)
Load shortcut file.
Definition: mainwindow.cpp:352
void setup_menus()
Initialize menu bar menus and items.
Definition: mainwindow.cpp:487
void Restyle()
Set application&#39;s QStyle based on values from Config.
Definition: mainwindow.cpp:393
QAction * window_sequenceviewer_action
Definition: mainwindow.h:313
Definition: mainwindow.h:31
void setup_layout(bool reset)
Internal function for setting the panel layout to a predetermined preset.
Definition: mainwindow.cpp:63
QAction * title_safe_43
Definition: mainwindow.h:278
QAction * play_in_to_out_
Definition: mainwindow.h:292
void toolMenu_About_To_Be_Shown()
Function to prepare Tools menu.
Definition: mainwindow.cpp:1149
void toggle_full_screen()
Toggles full screen mode.
Definition: mainwindow.cpp:1216