reimplemented panel state restoration
This commit is contained in:
+21
-21
@@ -60,31 +60,26 @@ void MainWindow::setup_layout(bool reset) {
|
||||
panel_timeline->show();
|
||||
panel_graph_editor->hide();
|
||||
|
||||
bool load_default = true;
|
||||
|
||||
/*if (!reset) {
|
||||
QFile panel_config(get_data_path() + "/layout");
|
||||
if (panel_config.exists() && panel_config.open(QFile::ReadOnly)) {
|
||||
if (restoreState(panel_config.readAll(), 0)) {
|
||||
load_default = false;
|
||||
}
|
||||
panel_config.close();
|
||||
}
|
||||
}*/
|
||||
|
||||
if (load_default) {
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_project);
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_footage_viewer);
|
||||
tabifyDockWidget(panel_footage_viewer, panel_effect_controls);
|
||||
panel_footage_viewer->raise();
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_sequence_viewer);
|
||||
addDockWidget(Qt::BottomDockWidgetArea, panel_timeline);
|
||||
panel_graph_editor->setFloating(true);
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_project);
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_footage_viewer);
|
||||
tabifyDockWidget(panel_footage_viewer, panel_effect_controls);
|
||||
panel_footage_viewer->raise();
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_sequence_viewer);
|
||||
addDockWidget(Qt::BottomDockWidgetArea, panel_timeline);
|
||||
panel_graph_editor->setFloating(true);
|
||||
|
||||
// workaround for strange Qt dock bug (see https://bugreports.qt.io/browse/QTBUG-65592)
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
|
||||
resizeDocks({panel_project}, {40}, Qt::Horizontal);
|
||||
resizeDocks({panel_project}, {40}, Qt::Horizontal);
|
||||
#endif
|
||||
|
||||
// load panels from file
|
||||
if (!reset) {
|
||||
QFile panel_config(get_data_path() + "/layout");
|
||||
if (panel_config.exists() && panel_config.open(QFile::ReadOnly)) {
|
||||
restoreState(panel_config.readAll(), 0);
|
||||
panel_config.close();
|
||||
}
|
||||
}
|
||||
|
||||
layout()->update();
|
||||
@@ -662,6 +657,7 @@ void MainWindow::windowMenu_About_To_Be_Shown() {
|
||||
ui->actionTimeline->setChecked(panel_timeline->isVisible());
|
||||
ui->actionViewer->setChecked(panel_sequence_viewer->isVisible());
|
||||
ui->actionFootage_Viewer->setChecked(panel_footage_viewer->isVisible());
|
||||
ui->actionGraph_Editor->setChecked(panel_graph_editor->isVisible());
|
||||
}
|
||||
|
||||
void MainWindow::viewMenu_About_To_Be_Shown() {
|
||||
@@ -1064,3 +1060,7 @@ void MainWindow::on_actionHand_Tool_triggered() {
|
||||
|| panel_sequence_viewer->is_focused())
|
||||
panel_timeline->ui->toolHandButton->click();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionGraph_Editor_triggered() {
|
||||
panel_graph_editor->setVisible(!panel_graph_editor->isVisible());
|
||||
}
|
||||
|
||||
@@ -215,6 +215,8 @@ private slots:
|
||||
|
||||
void on_actionHand_Tool_triggered();
|
||||
|
||||
void on_actionGraph_Editor_triggered();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
void setup_layout(bool reset);
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
<addaction name="actionFootage_Viewer"/>
|
||||
<addaction name="actionViewer"/>
|
||||
<addaction name="actionTimeline"/>
|
||||
<addaction name="actionGraph_Editor"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionReset_to_default_layout"/>
|
||||
</widget>
|
||||
@@ -957,6 +958,14 @@
|
||||
<string>H</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionGraph_Editor">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Graph Editor</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources/>
|
||||
|
||||
+19
-2
@@ -5,9 +5,11 @@
|
||||
#include <QPushButton>
|
||||
|
||||
#include "ui/graphview.h"
|
||||
#include "ui/keyframenavigator.h"
|
||||
|
||||
GraphEditor::GraphEditor(QWidget* parent) : QDockWidget(parent) {
|
||||
setWindowTitle("Graph Editor");
|
||||
resize(720, 480);
|
||||
|
||||
QWidget* central_widget = new QWidget();
|
||||
setWidget(central_widget);
|
||||
@@ -15,17 +17,32 @@ GraphEditor::GraphEditor(QWidget* parent) : QDockWidget(parent) {
|
||||
QVBoxLayout* layout = new QVBoxLayout();
|
||||
central_widget->setLayout(layout);
|
||||
|
||||
QWidget* tool_widget = new QWidget();
|
||||
tool_widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
|
||||
QHBoxLayout* tools = new QHBoxLayout();
|
||||
tool_widget->setLayout(tools);
|
||||
|
||||
KeyframeNavigator* keyframe_nav = new KeyframeNavigator();
|
||||
tools->addWidget(keyframe_nav);
|
||||
tools->addStretch();
|
||||
|
||||
tools->addWidget(new QPushButton("HECK!"));
|
||||
layout->addLayout(tools);
|
||||
tools->addStretch();
|
||||
|
||||
tools->addWidget(new QPushButton("Hand"));
|
||||
|
||||
layout->addWidget(tool_widget);
|
||||
|
||||
view = new GraphView();
|
||||
layout->addWidget(view);
|
||||
|
||||
QWidget* value_widget = new QWidget();
|
||||
value_widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
|
||||
QHBoxLayout* values = new QHBoxLayout();
|
||||
value_widget->setLayout(values);
|
||||
values->addStretch();
|
||||
values->addWidget(new QLabel("1920.0"));
|
||||
values->addWidget(new QLabel("1080.0"));
|
||||
values->addStretch();
|
||||
layout->addLayout(values);
|
||||
layout->addWidget(value_widget);
|
||||
}
|
||||
|
||||
@@ -143,11 +143,17 @@ QDockWidget *get_focused_panel() {
|
||||
void alloc_panels(QWidget* parent) {
|
||||
// TODO maybe replace these with non-pointers later on?
|
||||
panel_sequence_viewer = new Viewer(parent);
|
||||
panel_sequence_viewer->setObjectName("seq_viewer");
|
||||
panel_footage_viewer = new Viewer(parent);
|
||||
panel_footage_viewer->setObjectName("footage_viewer");
|
||||
panel_project = new Project(parent);
|
||||
panel_project->setObjectName("proj_root");
|
||||
panel_effect_controls = new EffectControls(parent);
|
||||
panel_effect_controls->setObjectName("fx_controls");
|
||||
panel_timeline = new Timeline(parent);
|
||||
panel_timeline->setObjectName("timeline");
|
||||
panel_graph_editor = new GraphEditor(parent);
|
||||
panel_graph_editor->setObjectName("graph_editor");
|
||||
}
|
||||
|
||||
void free_panels() {
|
||||
|
||||
+4
-2
@@ -99,8 +99,10 @@ void stop_audio() {
|
||||
}
|
||||
|
||||
void clear_audio_ibuffer() {
|
||||
if (audio_thread != NULL) audio_thread->lock.lock();
|
||||
memset(audio_ibuffer, 0, audio_ibuffer_size);
|
||||
audio_ibuffer_read = 0;
|
||||
if (audio_thread != NULL) audio_thread->lock.unlock();
|
||||
}
|
||||
|
||||
int get_buffer_offset_from_frame(double framerate, long frame) {
|
||||
@@ -130,7 +132,7 @@ void AudioSenderThread::run() {
|
||||
// start data loop
|
||||
send_audio_to_output(0, audio_ibuffer_size);
|
||||
|
||||
lock.lock();
|
||||
lock.lock();
|
||||
while (true) {
|
||||
cond.wait(&lock);
|
||||
if (close) {
|
||||
@@ -149,7 +151,7 @@ void AudioSenderThread::run() {
|
||||
|
||||
audio_scrub = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -9,5 +9,8 @@ void GraphView::paintEvent(QPaintEvent *event) {
|
||||
|
||||
p.setPen(Qt::white);
|
||||
|
||||
p.drawRect(rect());
|
||||
QRect border = rect();
|
||||
border.setWidth(border.width()-1);
|
||||
border.setHeight(border.height()-1);
|
||||
p.drawRect(border);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user