implemented majority of export dialog widget layout
This commit is contained in:
@@ -18,5 +18,9 @@ set(OLIVE_SOURCES
|
||||
${OLIVE_SOURCES}
|
||||
dialog/export/export.h
|
||||
dialog/export/export.cpp
|
||||
dialog/export/exportaudiotab.h
|
||||
dialog/export/exportaudiotab.cpp
|
||||
dialog/export/exportvideotab.h
|
||||
dialog/export/exportvideotab.cpp
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -3,10 +3,15 @@
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
#include "widget/viewer/viewer.h"
|
||||
|
||||
class ExportDialog : public QDialog
|
||||
{
|
||||
public:
|
||||
ExportDialog(QWidget* parent = nullptr);
|
||||
|
||||
private:
|
||||
ViewerWidget* preview_viewer_;
|
||||
};
|
||||
|
||||
#endif // EXPORTDIALOG_H
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#include "exportaudiotab.h"
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QGridLayout>
|
||||
#include <QLabel>
|
||||
|
||||
ExportAudioTab::ExportAudioTab(QWidget* parent) :
|
||||
QWidget(parent)
|
||||
{
|
||||
QVBoxLayout* outer_layout = new QVBoxLayout(this);
|
||||
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
outer_layout->addLayout(layout);
|
||||
|
||||
int row = 0;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Codec:")), row, 0);
|
||||
layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Sample Rate:")), row, 0);
|
||||
layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Channel Layout:")), row, 0);
|
||||
layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Format:")), row, 0);
|
||||
layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
outer_layout->addStretch();
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef EXPORTAUDIOTAB_H
|
||||
#define EXPORTAUDIOTAB_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class ExportAudioTab : public QWidget
|
||||
{
|
||||
public:
|
||||
ExportAudioTab(QWidget* parent = nullptr);
|
||||
};
|
||||
|
||||
#endif // EXPORTAUDIOTAB_H
|
||||
@@ -0,0 +1,104 @@
|
||||
#include "exportvideotab.h"
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QComboBox>
|
||||
#include <QGridLayout>
|
||||
#include <QGroupBox>
|
||||
#include <QLabel>
|
||||
|
||||
#include "widget/slider/integerslider.h"
|
||||
|
||||
ExportVideoTab::ExportVideoTab(QWidget *parent) :
|
||||
QWidget(parent)
|
||||
{
|
||||
QVBoxLayout* outer_layout = new QVBoxLayout(this);
|
||||
|
||||
outer_layout->addWidget(SetupResolutionSection());
|
||||
|
||||
outer_layout->addWidget(SetupColorSection());
|
||||
|
||||
outer_layout->addWidget(SetupCodecSection());
|
||||
|
||||
outer_layout->addStretch();
|
||||
}
|
||||
|
||||
QWidget* ExportVideoTab::SetupResolutionSection()
|
||||
{
|
||||
int row = 0;
|
||||
|
||||
QGroupBox* resolution_group = new QGroupBox();
|
||||
resolution_group->setTitle(tr("Basic"));
|
||||
|
||||
QGridLayout* layout = new QGridLayout(resolution_group);
|
||||
|
||||
layout->addWidget(new QLabel(tr("Width:")), row, 0);
|
||||
|
||||
IntegerSlider* width_slider = new IntegerSlider();
|
||||
layout->addWidget(width_slider, row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Height:")), row, 0);
|
||||
|
||||
IntegerSlider* height_slider = new IntegerSlider();
|
||||
layout->addWidget(height_slider, row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Maintain Aspect Ratio:")), row, 0);
|
||||
layout->addWidget(new QCheckBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Scaling Method:")), row, 0);
|
||||
layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
layout->addWidget(new QLabel(tr("Frame Rate:")), row, 0);
|
||||
layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
return resolution_group;
|
||||
}
|
||||
|
||||
QWidget* ExportVideoTab::SetupColorSection()
|
||||
{
|
||||
int row = 0;
|
||||
|
||||
QGroupBox* color_group = new QGroupBox();
|
||||
color_group->setTitle(tr("Color Management"));
|
||||
|
||||
QGridLayout* color_layout = new QGridLayout(color_group);
|
||||
|
||||
color_layout->addWidget(new QLabel(tr("Display:")), row, 0);
|
||||
color_layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
color_layout->addWidget(new QLabel(tr("View:")), row, 0);
|
||||
color_layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
color_layout->addWidget(new QLabel(tr("Look:")), row, 0);
|
||||
color_layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
row++;
|
||||
|
||||
return color_group;
|
||||
}
|
||||
|
||||
QWidget *ExportVideoTab::SetupCodecSection()
|
||||
{
|
||||
int row = 0;
|
||||
|
||||
QGroupBox* codec_group = new QGroupBox();
|
||||
codec_group->setTitle(tr("Codec"));
|
||||
|
||||
QGridLayout* codec_layout = new QGridLayout(codec_group);
|
||||
|
||||
codec_layout->addWidget(new QLabel(tr("Codec:")), row, 0);
|
||||
codec_layout->addWidget(new QComboBox(), row, 1);
|
||||
|
||||
return codec_group;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef EXPORTVIDEOTAB_H
|
||||
#define EXPORTVIDEOTAB_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class ExportVideoTab : public QWidget
|
||||
{
|
||||
public:
|
||||
ExportVideoTab(QWidget* parent = nullptr);
|
||||
|
||||
private:
|
||||
QWidget* SetupResolutionSection();
|
||||
QWidget* SetupColorSection();
|
||||
QWidget* SetupCodecSection();
|
||||
};
|
||||
|
||||
#endif // EXPORTVIDEOTAB_H
|
||||
@@ -45,7 +45,7 @@ class ViewerWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ViewerWidget(QWidget* parent);
|
||||
ViewerWidget(QWidget* parent = nullptr);
|
||||
|
||||
void SetPlaybackControlsEnabled(bool enabled);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user