From f96abc2d82913ee473c416ac95674f94d4b342a9 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sat, 28 Dec 2019 02:09:23 +1100 Subject: [PATCH] set up sizing defaults --- app/config/config.cpp | 1 + app/core.cpp | 1 + app/core.h | 3 +- app/widget/nodeparamview/nodeparamview.cpp | 3 + .../timelinewidget/timelineandtrackview.cpp | 2 + app/window/mainwindow/mainwindow.cpp | 83 +++++++++---------- app/window/mainwindow/mainwindow.h | 24 ++++++ 7 files changed, 72 insertions(+), 45 deletions(-) diff --git a/app/config/config.cpp b/app/config/config.cpp index b838fabbf..385aa4bbe 100644 --- a/app/config/config.cpp +++ b/app/config/config.cpp @@ -28,6 +28,7 @@ #include "core.h" #include "common/filefunctions.h" +#include "window/mainwindow/mainwindow.h" Config Config::current_config_; diff --git a/app/core.cpp b/app/core.cpp index c24f5003f..edcdb09a0 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -49,6 +49,7 @@ #include "undo/undostack.h" #include "widget/menu/menushared.h" #include "widget/taskview/taskviewitem.h" +#include "window/mainwindow/mainwindow.h" Core Core::instance_; diff --git a/app/core.h b/app/core.h index 05d54545a..9cb06a0e4 100644 --- a/app/core.h +++ b/app/core.h @@ -27,11 +27,12 @@ #include "common/rational.h" #include "project/project.h" #include "project/projectviewmodel.h" -#include "window/mainwindow/mainwindow.h" #include "task/task.h" #include "tool/tool.h" #include "undo/undostack.h" +class MainWindow; + /** * @brief The main central Olive application instance * diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 6e4da7860..952121891 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -81,6 +81,9 @@ NodeParamView::NodeParamView(QWidget *parent) : splitter->addWidget(keyframe_area); + // Set both widgets to 50/50 + splitter->setSizes({INT_MAX, INT_MAX}); + // Disable collapsing param view (but collapsing keyframe view is permitted) splitter->setCollapsible(0, false); diff --git a/app/widget/timelinewidget/timelineandtrackview.cpp b/app/widget/timelinewidget/timelineandtrackview.cpp index 33d43556f..3f07809af 100644 --- a/app/widget/timelinewidget/timelineandtrackview.cpp +++ b/app/widget/timelinewidget/timelineandtrackview.cpp @@ -18,6 +18,8 @@ TimelineAndTrackView::TimelineAndTrackView(const TrackType &type, Qt::Alignment view_ = new TimelineView(type, vertical_alignment); splitter_->addWidget(view_); + + splitter_->setSizes({1, width()}); } QSplitter *TimelineAndTrackView::splitter() const diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index 295c63bb5..ddb743e65 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -24,19 +24,6 @@ #include #include -// Panel objects -#include "panel/panelmanager.h" -#include "panel/audiomonitor/audiomonitor.h" -#include "panel/curve/curve.h" -#include "panel/node/node.h" -#include "panel/param/param.h" -#include "panel/project/project.h" -#include "panel/taskmanager/taskmanager.h" -#include "panel/timeline/timeline.h" -#include "panel/tool/tool.h" -#include "panel/viewer/viewer.h" - -// Main menu bar #include "mainmenu.h" MainWindow::MainWindow(QWidget *parent) : @@ -63,6 +50,28 @@ MainWindow::MainWindow(QWidget *parent) : // Create and set main menu MainMenu* main_menu = new MainMenu(this); setMenuBar(main_menu); + + // Create standard panels + node_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::TopDockWidgetArea, node_panel_); + param_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::TopDockWidgetArea, param_panel_); + viewer_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::TopDockWidgetArea, viewer_panel_); + project_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::BottomDockWidgetArea, project_panel_); + tool_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::BottomDockWidgetArea, tool_panel_); + timeline_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::BottomDockWidgetArea, timeline_panel_); + audio_monitor_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::BottomDockWidgetArea, audio_monitor_panel_); + task_man_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::BottomDockWidgetArea, task_man_panel_); + curve_panel_ = PanelManager::instance()->CreatePanel(this); + addDockWidget(Qt::BottomDockWidgetArea, curve_panel_); + + connect(node_panel_, SIGNAL(SelectionChanged(QList)), param_panel_, SLOT(SetNodes(QList))); } void MainWindow::SetFullscreen(bool fullscreen) @@ -111,38 +120,9 @@ void MainWindow::ToggleMaximizedPanel() void MainWindow::ProjectOpen(Project* p) { // FIXME Use settings data to create panels and restore state if they exist - NodePanel* node_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::TopDockWidgetArea, node_panel); + project_panel_->set_project(p); - ParamPanel* param_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::TopDockWidgetArea, param_panel); - - ViewerPanel* viewer_panel2 = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::TopDockWidgetArea, viewer_panel2); - - ProjectPanel* project_panel = PanelManager::instance()->CreatePanel(this); - project_panel->set_project(p); - addDockWidget(Qt::BottomDockWidgetArea, project_panel); - - ToolPanel* tool_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::BottomDockWidgetArea, tool_panel); - - TimelinePanel* timeline_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::BottomDockWidgetArea, timeline_panel); - - AudioMonitorPanel* audio_monitor_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::BottomDockWidgetArea, audio_monitor_panel); - - TaskManagerPanel* task_man_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::BottomDockWidgetArea, task_man_panel); - task_man_panel->setFloating(true); - task_man_panel->setVisible(false); - - CurvePanel* curve_panel = PanelManager::instance()->CreatePanel(this); - addDockWidget(Qt::BottomDockWidgetArea, curve_panel); - task_man_panel->setFloating(true); - - connect(node_panel, SIGNAL(SelectionChanged(QList)), param_panel, SLOT(SetNodes(QList))); + SetDefaultLayout(); } // FIXME: Test code @@ -162,3 +142,18 @@ void MainWindow::closeEvent(QCloseEvent *e) QMainWindow::closeEvent(e); } + +void MainWindow::SetDefaultLayout() +{ + task_man_panel_->setFloating(true); + task_man_panel_->setVisible(false); + curve_panel_->setFloating(true); + + resizeDocks({node_panel_, param_panel_, viewer_panel_}, + {width()/3, width()/3, width()/3}, + Qt::Horizontal); + + resizeDocks({project_panel_, tool_panel_, timeline_panel_, audio_monitor_panel_}, + {width()/4, 0, width(), 0}, + Qt::Horizontal); +} diff --git a/app/window/mainwindow/mainwindow.h b/app/window/mainwindow/mainwindow.h index 897fa50d1..7743eaba2 100644 --- a/app/window/mainwindow/mainwindow.h +++ b/app/window/mainwindow/mainwindow.h @@ -23,6 +23,16 @@ #include +#include "panel/panelmanager.h" +#include "panel/audiomonitor/audiomonitor.h" +#include "panel/curve/curve.h" +#include "panel/node/node.h" +#include "panel/param/param.h" +#include "panel/project/project.h" +#include "panel/taskmanager/taskmanager.h" +#include "panel/timeline/timeline.h" +#include "panel/tool/tool.h" +#include "panel/viewer/viewer.h" #include "project/project.h" /** @@ -44,6 +54,20 @@ protected: private: QByteArray premaximized_state_; + // Standard panels + NodePanel* node_panel_; + ParamPanel* param_panel_; + ViewerPanel* viewer_panel_; + ProjectPanel* project_panel_; + ToolPanel* tool_panel_; + TimelinePanel* timeline_panel_; + AudioMonitorPanel* audio_monitor_panel_; + TaskManagerPanel* task_man_panel_; + CurvePanel* curve_panel_; + +private slots: + void SetDefaultLayout(); + }; #endif