Files
oak-editor/app/dialog/export/exportvideotab.h
T

85 lines
1.9 KiB
C++

#ifndef EXPORTVIDEOTAB_H
#define EXPORTVIDEOTAB_H
#include <QCheckBox>
#include <QComboBox>
#include <QWidget>
#include "common/rational.h"
#include "dialog/export/codec/h264section.h"
#include "dialog/export/codec/imagesection.h"
#include "render/colormanager.h"
#include "widget/slider/integerslider.h"
class ExportVideoTab : public QWidget
{
Q_OBJECT
public:
ExportVideoTab(ColorManager* color_manager, QWidget* parent = nullptr);
enum ScalingMethod {
kFit,
kStretch,
kCrop
};
QComboBox* codec_combobox() const;
IntegerSlider* width_slider() const;
IntegerSlider* height_slider() const;
QCheckBox* maintain_aspect_checkbox() const;
QComboBox* scaling_method_combobox() const;
const rational& frame_rate() const;
void set_frame_rate(const rational& frame_rate);
QString CurrentOCIODisplay();
QString CurrentOCIOView();
QString CurrentOCIOLook();
CodecSection* GetCodecSection() const;
void SetCodecSection(CodecSection* section);
ImageSection* image_section() const;
H264Section* h264_section() const;
signals:
void DisplayChanged(const QString& display);
void ViewChanged(const QString& view);
void LookChanged(const QString& look);
private:
QWidget* SetupResolutionSection();
QWidget* SetupColorSection();
QWidget* SetupCodecSection();
QComboBox* codec_combobox_;
QComboBox* frame_rate_combobox_;
QCheckBox* maintain_aspect_checkbox_;
QComboBox* scaling_method_combobox_;
QStackedWidget* codec_stack_;
ImageSection* image_section_;
H264Section* h264_section_;
IntegerSlider* width_slider_;
IntegerSlider* height_slider_;
QComboBox* display_combobox_;
QComboBox* views_combobox_;
QComboBox* looks_combobox_;
QList<rational> frame_rates_;
ColorManager* color_manager_;
private slots:
void ColorDisplayChanged();
void ColorViewChanged();
void ColorLookChanged();
void MaintainAspectRatioChanged(bool val);
};
#endif // EXPORTVIDEOTAB_H