giant rendering overhaul and many small fixes

This commit is contained in:
itsmattkc
2019-02-25 13:47:18 -08:00
parent b9d7efa0bc
commit c3373524b1
1429 changed files with 10234 additions and 194593 deletions
+30 -5
View File
@@ -43,8 +43,8 @@
#include "dialogs/debugdialog.h"
#include "playback/audio.h"
#include "playback/playback.h"
#include "rendering/audio.h"
#include "rendering/renderfunctions.h"
#include "debug.h"
@@ -233,7 +233,7 @@ MainWindow::MainWindow(QWidget *parent) :
init_audio();
// start omnipotent proxy generator process
proxy_generator.start();
olive::proxy_generator.start();
// set default window title
updateTitle();
@@ -573,6 +573,10 @@ void MainWindow::setup_menus() {
window_menu->addAction(tr("Maximize Panel"), this, SLOT(maximize_panel()), QKeySequence("`"))->setProperty("id", "maximizepanel");
QAction* lock_panels = window_menu->addAction(tr("Lock Panels"), this, SLOT(set_panels_locked(bool)));
lock_panels->setCheckable(true);
lock_panels->setProperty("id", "lockpanels");
window_menu->addSeparator();
window_menu->addAction(tr("Reset to Default Layout"), this, SLOT(reset_layout()))->setProperty("id", "resetdefaultlayout");
@@ -748,11 +752,11 @@ void MainWindow::updateTitle() {
void MainWindow::closeEvent(QCloseEvent *e) {
if (olive::Global->can_close_project()) {
// stop proxy generator thread
proxy_generator.cancel();
olive::proxy_generator.cancel();
panel_effect_controls->clear_effects(true);
set_sequence(nullptr);
olive::Global->set_sequence(nullptr);
panel_footage_viewer->viewer_widget->close_window();
panel_sequence_viewer->viewer_widget->close_window();
@@ -919,6 +923,27 @@ void MainWindow::toggle_panel_visibility() {
temp_panel_state.clear();
}
void MainWindow::set_panels_locked(bool locked)
{
for (int i=0;i<olive::panels.size();i++) {
Panel* panel = olive::panels.at(i);
if (locked) {
// disable moving on QDockWidget
panel->setFeatures(panel->features() & ~QDockWidget::DockWidgetMovable);
// hide the title bar (only real way to do this is to replace it with an empty QWidget)
panel->setTitleBarWidget(new QWidget(panel));
} else {
// re-enable moving on QDockWidget
panel->setFeatures(panel->features() | QDockWidget::DockWidgetMovable);
// set the "custom" titlebar to null so the default gets restored
panel->setTitleBarWidget(nullptr);
}
}
}
void MainWindow::fileMenu_About_To_Be_Shown() {
if (recent_projects.size() > 0) {
open_recent->clear();