implemented majority of export dialog widget layout

This commit is contained in:
itsmattkc
2019-12-15 19:56:12 +11:00
parent eb7c63bace
commit 83cf67fe7b
8 changed files with 250 additions and 12 deletions
+71 -11
View File
@@ -1,13 +1,18 @@
#include "export.h"
#include <QComboBox>
#include <QDialogButtonBox>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QOpenGLWidget>
#include <QPushButton>
#include <QScrollArea>
#include <QSplitter>
#include "exportvideotab.h"
#include "exportaudiotab.h"
#include "ui/icons/icons.h"
ExportDialog::ExportDialog(QWidget *parent) :
QDialog(parent)
{
@@ -18,21 +23,76 @@ ExportDialog::ExportDialog(QWidget *parent) :
QWidget* preferences_area = new QWidget();
QGridLayout* preferences_layout = new QGridLayout(preferences_area);
preferences_layout->addWidget(new QLabel(tr("Filename:")), 0, 0);
preferences_layout->addWidget(new QLineEdit(), 0, 1);
preferences_layout->addWidget(new QLabel(tr("Preset:")), 1, 0);
preferences_layout->addWidget(new QComboBox(), 1, 1);
int row = 0;
QLabel* fn_lbl = new QLabel(tr("Filename:"));
fn_lbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
preferences_layout->addWidget(fn_lbl, row, 0);
QLineEdit* filename_edit = new QLineEdit();
preferences_layout->addWidget(filename_edit, row, 1, 1, 2);
QPushButton* file_browse_btn = new QPushButton();
file_browse_btn->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
file_browse_btn->setIcon(olive::icon::Folder);
preferences_layout->addWidget(file_browse_btn, row, 3);
row++;
QLabel* preset_lbl = new QLabel(tr("Preset:"));
preset_lbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
preferences_layout->addWidget(preset_lbl, row, 0);
preferences_layout->addWidget(new QComboBox(), row, 1);
QPushButton* preset_load_btn = new QPushButton();
preset_load_btn->setIcon(olive::icon::Open);
preset_load_btn->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
preferences_layout->addWidget(preset_load_btn, row, 2);
QPushButton* preset_save_btn = new QPushButton();
preset_save_btn->setIcon(olive::icon::Save);
preset_save_btn->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
preferences_layout->addWidget(preset_save_btn, row, 3);
row++;
QFrame* horizontal_line = new QFrame();
horizontal_line->setFrameShape(QFrame::HLine);
horizontal_line->setFrameShadow(QFrame::Sunken);
preferences_layout->addWidget(horizontal_line, row, 0, 1, 4);
row++;
preferences_layout->addWidget(new QLabel(tr("Format:")), row, 0);
preferences_layout->addWidget(new QComboBox(), row, 1, 1, 3);
row++;
QTabWidget* preferences_tabs = new QTabWidget();
preferences_tabs->addTab(new QWidget(), tr("Video"));
preferences_tabs->addTab(new QWidget(), tr("Audio"));
preferences_layout->addWidget(preferences_tabs, 2, 0, 1, 2);
preferences_layout->addWidget(new QPushButton(tr("Export")), 3, 0);
preferences_layout->addWidget(new QPushButton(tr("Cancel")), 3, 1);
QScrollArea* video_area = new QScrollArea();
video_area->setWidgetResizable(true);
video_area->setWidget(new ExportVideoTab());
preferences_tabs->addTab(video_area, tr("Video"));
QScrollArea* audio_area = new QScrollArea();
audio_area->setWidgetResizable(true);
audio_area->setWidget(new ExportAudioTab());
preferences_tabs->addTab(audio_area, tr("Audio"));
preferences_layout->addWidget(preferences_tabs, row, 0, 1, 4);
row++;
QDialogButtonBox* buttons = new QDialogButtonBox();
buttons->setCenterButtons(true);
buttons->addButton(tr("Export"), QDialogButtonBox::AcceptRole);
buttons->addButton(QDialogButtonBox::Cancel);
connect(buttons, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttons, SIGNAL(rejected()), this, SLOT(reject()));
preferences_layout->addWidget(buttons, row, 0, 1, 4);
splitter->addWidget(preferences_area);
QWidget* preview_area = new QWidget();
QVBoxLayout* preview_layout = new QVBoxLayout(preview_area);
preview_layout->addWidget(new QLabel(tr("Preview")));
preview_layout->addWidget(new QOpenGLWidget());
preview_viewer_ = new ViewerWidget();
preview_viewer_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
preview_layout->addWidget(preview_viewer_);
splitter->addWidget(preview_area);
}