removed all ui files

This commit is contained in:
itsmattkc
2018-12-30 20:23:57 +11:00
parent efdbeec549
commit 34fc8b81d2
28 changed files with 1777 additions and 2770 deletions
+307 -154
View File
@@ -1,5 +1,4 @@
#include "exportdialog.h"
#include "ui_exportdialog.h"
#include <QOpenGLWidget>
#include <QFileDialog>
@@ -7,6 +6,14 @@
#include <QMessageBox>
#include <QOpenGLContext>
#include <QtMath>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QGroupBox>
#include <QComboBox>
#include <QSpinBox>
#include <QPushButton>
#include <QProgressBar>
#include "debug.h"
#include "panels/panels.h"
@@ -48,15 +55,14 @@ enum ExportFormats {
};
ExportDialog::ExportDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::ExportDialog)
QDialog(parent)
{
ui->setupUi(this);
setup_ui();
ui->rangeCombobox->setCurrentIndex(0);
rangeCombobox->setCurrentIndex(0);
if (sequence->using_workarea) {
ui->rangeCombobox->setEnabled(sequence->using_workarea);
ui->rangeCombobox->setCurrentIndex(1);
rangeCombobox->setEnabled(sequence->using_workarea);
rangeCombobox->setCurrentIndex(1);
}
format_strings.resize(FORMAT_SIZE);
@@ -83,27 +89,25 @@ ExportDialog::ExportDialog(QWidget *parent) :
format_strings[FORMAT_WMV] = "Windows Media";
for (int i=0;i<FORMAT_SIZE;i++) {
ui->formatCombobox->addItem(format_strings[i]);
formatCombobox->addItem(format_strings[i]);
}
ui->formatCombobox->setCurrentIndex(FORMAT_MPEG4);
formatCombobox->setCurrentIndex(FORMAT_MPEG4);
ui->widthSpinbox->setValue(sequence->width);
ui->heightSpinbox->setValue(sequence->height);
ui->samplingRateSpinbox->setValue(sequence->audio_frequency);
ui->framerateSpinbox->setValue(sequence->frame_rate);
widthSpinbox->setValue(sequence->width);
heightSpinbox->setValue(sequence->height);
samplingRateSpinbox->setValue(sequence->audio_frequency);
framerateSpinbox->setValue(sequence->frame_rate);
}
ExportDialog::~ExportDialog()
{
delete ui;
}
{}
void ExportDialog::on_formatCombobox_currentIndexChanged(int index)
void ExportDialog::format_changed(int index)
{
format_vcodecs.clear();
format_acodecs.clear();
ui->vcodecCombobox->clear();
ui->acodecCombobox->clear();
vcodecCombobox->clear();
acodecCombobox->clear();
int default_vcodec = 0;
int default_acodec = 0;
@@ -241,7 +245,7 @@ void ExportDialog::on_formatCombobox_currentIndexChanged(int index)
format_acodecs.append(AV_CODEC_ID_OPUS);
format_acodecs.append(AV_CODEC_ID_VORBIS);
default_acodec = 1;
default_acodec = 1;
break;
case FORMAT_MOV:
format_vcodecs.append(AV_CODEC_ID_QTRLE);
@@ -288,60 +292,56 @@ void ExportDialog::on_formatCombobox_currentIndexChanged(int index)
for (int i=0;i<format_vcodecs.size();i++) {
codec_info = avcodec_find_encoder((enum AVCodecID) format_vcodecs.at(i));
if (codec_info == NULL) {
ui->vcodecCombobox->addItem("NULL");
vcodecCombobox->addItem("NULL");
} else {
ui->vcodecCombobox->addItem(codec_info->long_name);
vcodecCombobox->addItem(codec_info->long_name);
}
}
for (int i=0;i<format_acodecs.size();i++) {
codec_info = avcodec_find_encoder((enum AVCodecID) format_acodecs.at(i));
if (codec_info == NULL) {
ui->acodecCombobox->addItem("NULL");
acodecCombobox->addItem("NULL");
} else {
ui->acodecCombobox->addItem(codec_info->long_name);
acodecCombobox->addItem(codec_info->long_name);
}
}
ui->vcodecCombobox->setCurrentIndex(default_vcodec);
ui->acodecCombobox->setCurrentIndex(default_acodec);
vcodecCombobox->setCurrentIndex(default_vcodec);
acodecCombobox->setCurrentIndex(default_acodec);
bool video_enabled = format_vcodecs.size() != 0;
bool audio_enabled = format_acodecs.size() != 0;
ui->videoGroupbox->setChecked(video_enabled);
ui->audioGroupbox->setChecked(audio_enabled);
ui->videoGroupbox->setEnabled(video_enabled);
ui->audioGroupbox->setEnabled(audio_enabled);
}
void ExportDialog::on_pushButton_2_clicked() {
close();
videoGroupbox->setChecked(video_enabled);
audioGroupbox->setChecked(audio_enabled);
videoGroupbox->setEnabled(video_enabled);
audioGroupbox->setEnabled(audio_enabled);
}
void ExportDialog::render_thread_finished() {
if (ui->progressBar->value() < 100 && !cancelled) {
QMessageBox::critical(this, "Export Failed", "Export failed - " + export_error, QMessageBox::Ok);
}
prep_ui_for_render(false);
panel_sequence_viewer->viewer_widget->makeCurrent();
panel_sequence_viewer->viewer_widget->initializeGL();
update_ui(false);
if (ui->progressBar->value() == 100) close();
if (progressBar->value() < 100 && !cancelled) {
QMessageBox::critical(this, "Export Failed", "Export failed - " + export_error, QMessageBox::Ok);
}
prep_ui_for_render(false);
panel_sequence_viewer->viewer_widget->makeCurrent();
panel_sequence_viewer->viewer_widget->initializeGL();
update_ui(false);
if (progressBar->value() == 100) accept();
}
void ExportDialog::prep_ui_for_render(bool r) {
ui->pushButton->setEnabled(!r);
ui->pushButton_2->setEnabled(!r);
ui->renderCancel->setEnabled(r);
export_button->setEnabled(!r);
cancel_button->setEnabled(!r);
renderCancel->setEnabled(r);
}
void ExportDialog::on_pushButton_clicked() {
if (ui->widthSpinbox->value()%2 == 1 || ui->heightSpinbox->value()%2 == 1) {
void ExportDialog::export_action() {
if (widthSpinbox->value()%2 == 1 || heightSpinbox->value()%2 == 1) {
QMessageBox::critical(this, "Invalid dimensions", "Export width and height must both be even numbers/divisible by 2.", QMessageBox::Ok);
return;
}
QString ext;
switch (ui->formatCombobox->currentIndex()) {
switch (formatCombobox->currentIndex()) {
case FORMAT_3GPP:
ext = "3gp";
break;
@@ -366,57 +366,57 @@ void ExportDialog::on_pushButton_clicked() {
case FORMAT_GIF:
ext = "gif";
break;
case FORMAT_IMG:
switch (format_vcodecs.at(ui->vcodecCombobox->currentIndex())) {
case AV_CODEC_ID_BMP:
ext = "bmp";
break;
case AV_CODEC_ID_MJPEG:
ext = "jpg";
break;
case AV_CODEC_ID_JPEG2000:
ext = "jp2";
break;
case AV_CODEC_ID_PSD:
ext = "psd";
break;
case AV_CODEC_ID_PNG:
ext = "png";
break;
case AV_CODEC_ID_TIFF:
ext = "tif";
break;
default:
case FORMAT_IMG:
switch (format_vcodecs.at(vcodecCombobox->currentIndex())) {
case AV_CODEC_ID_BMP:
ext = "bmp";
break;
case AV_CODEC_ID_MJPEG:
ext = "jpg";
break;
case AV_CODEC_ID_JPEG2000:
ext = "jp2";
break;
case AV_CODEC_ID_PSD:
ext = "psd";
break;
case AV_CODEC_ID_PNG:
ext = "png";
break;
case AV_CODEC_ID_TIFF:
ext = "tif";
break;
default:
dout << "[ERROR] Invalid codec selection for an image sequence";
QMessageBox::critical(this, "Invalid codec", "Couldn't determine output parameters for the selected codec. This is a bug, please contact the developers.", QMessageBox::Ok);
return;
}
QMessageBox::critical(this, "Invalid codec", "Couldn't determine output parameters for the selected codec. This is a bug, please contact the developers.", QMessageBox::Ok);
return;
}
break;
case FORMAT_MP3:
ext = "mp3";
break;
case FORMAT_MPEG1:
if (ui->videoGroupbox->isChecked() && !ui->audioGroupbox->isChecked()) {
if (videoGroupbox->isChecked() && !audioGroupbox->isChecked()) {
ext = "m1v";
} else if (!ui->videoGroupbox->isChecked() && ui->audioGroupbox->isChecked()) {
} else if (!videoGroupbox->isChecked() && audioGroupbox->isChecked()) {
ext = "m1a";
} else {
ext = "mpg";
}
break;
case FORMAT_MPEG2:
if (ui->videoGroupbox->isChecked() && !ui->audioGroupbox->isChecked()) {
if (videoGroupbox->isChecked() && !audioGroupbox->isChecked()) {
ext = "m2v";
} else if (!ui->videoGroupbox->isChecked() && ui->audioGroupbox->isChecked()) {
} else if (!videoGroupbox->isChecked() && audioGroupbox->isChecked()) {
ext = "m2a";
} else {
ext = "mpg";
}
break;
case FORMAT_MPEG4:
if (ui->videoGroupbox->isChecked() && !ui->audioGroupbox->isChecked()) {
if (videoGroupbox->isChecked() && !audioGroupbox->isChecked()) {
ext = "m4v";
} else if (!ui->videoGroupbox->isChecked() && ui->audioGroupbox->isChecked()) {
} else if (!videoGroupbox->isChecked() && audioGroupbox->isChecked()) {
ext = "m4a";
} else {
ext = "mp4";
@@ -426,7 +426,7 @@ void ExportDialog::on_pushButton_clicked() {
ext = "ts";
break;
case FORMAT_MKV:
if (!ui->videoGroupbox->isChecked()) {
if (!videoGroupbox->isChecked()) {
ext = "mka";
} else {
ext = "mkv";
@@ -438,14 +438,14 @@ void ExportDialog::on_pushButton_clicked() {
case FORMAT_MOV:
ext = "mov";
break;
case FORMAT_WAV:
ext = "wav";
break;
case FORMAT_WAV:
ext = "wav";
break;
case FORMAT_WEBM:
ext = "webm";
break;
case FORMAT_WMV:
if (ui->videoGroupbox->isChecked()) {
if (videoGroupbox->isChecked()) {
ext = "wmv";
} else {
ext = "wma";
@@ -453,66 +453,66 @@ void ExportDialog::on_pushButton_clicked() {
break;
default:
dout << "[ERROR] Invalid format - this is a bug, please inform the developers";
QMessageBox::critical(this, "Invalid format", "Couldn't determine output format. This is a bug, please contact the developers.", QMessageBox::Ok);
QMessageBox::critical(this, "Invalid format", "Couldn't determine output format. This is a bug, please contact the developers.", QMessageBox::Ok);
return;
}
QString filename = QFileDialog::getSaveFileName(this, "Export Media", "", format_strings[ui->formatCombobox->currentIndex()] + " (*." + ext + ")");
QString filename = QFileDialog::getSaveFileName(this, "Export Media", "", format_strings[formatCombobox->currentIndex()] + " (*." + ext + ")");
if (!filename.isEmpty()) {
if (!filename.endsWith("." + ext, Qt::CaseInsensitive)) {
filename += "." + ext;
}
if (!filename.endsWith("." + ext, Qt::CaseInsensitive)) {
filename += "." + ext;
}
if (ui->formatCombobox->currentIndex() == FORMAT_IMG) {
int ext_location = filename.lastIndexOf('.');
if (ext_location > filename.lastIndexOf('/')) {
filename.insert(ext_location, 'd');
filename.insert(ext_location, '5');
filename.insert(ext_location, '0');
filename.insert(ext_location, '%');
}
}
if (formatCombobox->currentIndex() == FORMAT_IMG) {
int ext_location = filename.lastIndexOf('.');
if (ext_location > filename.lastIndexOf('/')) {
filename.insert(ext_location, 'd');
filename.insert(ext_location, '5');
filename.insert(ext_location, '0');
filename.insert(ext_location, '%');
}
}
et = new ExportThread();
connect(et, SIGNAL(finished()), et, SLOT(deleteLater()));
connect(et, SIGNAL(finished()), this, SLOT(render_thread_finished()));
connect(et, SIGNAL(progress_changed(int, qint64)), this, SLOT(update_progress_bar(int, qint64)));
connect(et, SIGNAL(finished()), this, SLOT(render_thread_finished()));
connect(et, SIGNAL(progress_changed(int, qint64)), this, SLOT(update_progress_bar(int, qint64)));
closeActiveClips(sequence, true);
mainWindow->autorecover_interval();
mainWindow->autorecover_interval();
rendering = true;
panel_sequence_viewer->viewer_widget->context()->doneCurrent();
panel_sequence_viewer->viewer_widget->context()->moveToThread(et);
prep_ui_for_render(true);
prep_ui_for_render(true);
et->filename = filename;
et->video_enabled = ui->videoGroupbox->isChecked();
if (et->video_enabled) {
et->video_codec = format_vcodecs.at(ui->vcodecCombobox->currentIndex());
et->video_width = ui->widthSpinbox->value();
et->video_height = ui->heightSpinbox->value();
et->video_frame_rate = ui->framerateSpinbox->value();
et->video_compression_type = ui->compressionTypeCombobox->currentData().toInt();
et->video_bitrate = ui->videobitrateSpinbox->value();
}
et->audio_enabled = ui->audioGroupbox->isChecked();
if (et->audio_enabled) {
et->audio_codec = format_acodecs.at(ui->acodecCombobox->currentIndex());
et->audio_sampling_rate = ui->samplingRateSpinbox->value();
et->audio_bitrate = ui->audiobitrateSpinbox->value();
}
et->video_enabled = videoGroupbox->isChecked();
if (et->video_enabled) {
et->video_codec = format_vcodecs.at(vcodecCombobox->currentIndex());
et->video_width = widthSpinbox->value();
et->video_height = heightSpinbox->value();
et->video_frame_rate = framerateSpinbox->value();
et->video_compression_type = compressionTypeCombobox->currentData().toInt();
et->video_bitrate = videobitrateSpinbox->value();
}
et->audio_enabled = audioGroupbox->isChecked();
if (et->audio_enabled) {
et->audio_codec = format_acodecs.at(acodecCombobox->currentIndex());
et->audio_sampling_rate = samplingRateSpinbox->value();
et->audio_bitrate = audiobitrateSpinbox->value();
}
et->start_frame = 0;
et->end_frame = sequence->getEndFrame(); // entire sequence
if (ui->rangeCombobox->currentIndex() == 1) {
et->start_frame = qMax(sequence->workarea_in, et->start_frame);
et->end_frame = qMin(sequence->workarea_out, et->end_frame);
}
et->start_frame = 0;
et->end_frame = sequence->getEndFrame(); // entire sequence
if (rangeCombobox->currentIndex() == 1) {
et->start_frame = qMax(sequence->workarea_in, et->start_frame);
et->end_frame = qMin(sequence->workarea_out, et->end_frame);
}
et->ed = this;
et->ed = this;
cancelled = false;
et->start();
@@ -520,54 +520,207 @@ void ExportDialog::on_pushButton_clicked() {
}
void ExportDialog::update_progress_bar(int value, qint64 remaining_ms) {
// convert ms to H:MM:SS
int seconds = qFloor(remaining_ms*0.001)%60;
int minutes = qFloor(remaining_ms/60000)%60;
int hours = qFloor(remaining_ms/3600000);
ui->progressBar->setFormat("%p% (ETA: " + QString::number(hours) + ":" + QString::number(minutes).rightJustified(2, '0') + ":" + QString::number(seconds).rightJustified(2, '0') + ")");
// convert ms to H:MM:SS
int seconds = qFloor(remaining_ms*0.001)%60;
int minutes = qFloor(remaining_ms/60000)%60;
int hours = qFloor(remaining_ms/3600000);
progressBar->setFormat("%p% (ETA: " + QString::number(hours) + ":" + QString::number(minutes).rightJustified(2, '0') + ":" + QString::number(seconds).rightJustified(2, '0') + ")");
ui->progressBar->setValue(value);
progressBar->setValue(value);
}
void ExportDialog::on_renderCancel_clicked() {
panel_sequence_viewer->viewer_widget->force_quit = true;
void ExportDialog::cancel_render() {
panel_sequence_viewer->viewer_widget->force_quit = true;
et->continueEncode = false;
cancelled = true;
cancelled = true;
}
void ExportDialog::on_vcodecCombobox_currentIndexChanged(int index) {
ui->compressionTypeCombobox->clear();
void ExportDialog::vcodec_changed(int index) {
compressionTypeCombobox->clear();
if ((format_vcodecs.size() > 0 && format_vcodecs.at(index) == AV_CODEC_ID_H264)) {
ui->compressionTypeCombobox->setEnabled(true);
ui->compressionTypeCombobox->addItem("Quality-based (Constant Rate Factor)", COMPRESSION_TYPE_CFR);
// ui->compressionTypeCombobox->addItem("File size-based (Two-Pass)", COMPRESSION_TYPE_TARGETSIZE);
// ui->compressionTypeCombobox->addItem("Average bitrate (Two-Pass)", COMPRESSION_TYPE_TARGETBR);
compressionTypeCombobox->setEnabled(true);
compressionTypeCombobox->addItem("Quality-based (Constant Rate Factor)", COMPRESSION_TYPE_CFR);
// compressionTypeCombobox->addItem("File size-based (Two-Pass)", COMPRESSION_TYPE_TARGETSIZE);
// compressionTypeCombobox->addItem("Average bitrate (Two-Pass)", COMPRESSION_TYPE_TARGETBR);
} else {
ui->compressionTypeCombobox->addItem("Constant Bitrate", COMPRESSION_TYPE_CBR);
ui->compressionTypeCombobox->setCurrentIndex(0);
ui->compressionTypeCombobox->setEnabled(false);
compressionTypeCombobox->addItem("Constant Bitrate", COMPRESSION_TYPE_CBR);
compressionTypeCombobox->setCurrentIndex(0);
compressionTypeCombobox->setEnabled(false);
}
}
void ExportDialog::on_compressionTypeCombobox_currentIndexChanged(int) {
ui->videobitrateSpinbox->setToolTip("");
ui->videobitrateSpinbox->setMinimum(0);
ui->videobitrateSpinbox->setMaximum(99.99);
switch (ui->compressionTypeCombobox->currentData().toInt()) {
void ExportDialog::comp_type_changed(int) {
videobitrateSpinbox->setToolTip("");
videobitrateSpinbox->setMinimum(0);
videobitrateSpinbox->setMaximum(99.99);
switch (compressionTypeCombobox->currentData().toInt()) {
case COMPRESSION_TYPE_CBR:
case COMPRESSION_TYPE_TARGETBR:
ui->videoBitrateLabel->setText("Bitrate (Mbps):");
ui->videobitrateSpinbox->setValue(qMax(0.5, (double) qRound((0.01528 * sequence->height) - 4.5)));
videoBitrateLabel->setText("Bitrate (Mbps):");
videobitrateSpinbox->setValue(qMax(0.5, (double) qRound((0.01528 * sequence->height) - 4.5)));
break;
case COMPRESSION_TYPE_CFR:
ui->videoBitrateLabel->setText("Quality (CRF):");
ui->videobitrateSpinbox->setValue(36);
ui->videobitrateSpinbox->setMaximum(51);
ui->videobitrateSpinbox->setToolTip("Quality Factor:\n\n0 = lossless\n17-18 = visually lossless (compressed, but unnoticeable)\n23 = high quality\n51 = lowest quality possible");
videoBitrateLabel->setText("Quality (CRF):");
videobitrateSpinbox->setValue(36);
videobitrateSpinbox->setMaximum(51);
videobitrateSpinbox->setToolTip("Quality Factor:\n\n0 = lossless\n17-18 = visually lossless (compressed, but unnoticeable)\n23 = high quality\n51 = lowest quality possible");
break;
case COMPRESSION_TYPE_TARGETSIZE:
ui->videoBitrateLabel->setText("Target File Size (MB):");
ui->videobitrateSpinbox->setValue(100);
videoBitrateLabel->setText("Target File Size (MB):");
videobitrateSpinbox->setValue(100);
break;
}
}
void ExportDialog::setup_ui() {
QVBoxLayout* verticalLayout = new QVBoxLayout(this);
QHBoxLayout* horizontalLayout = new QHBoxLayout();
horizontalLayout->addWidget(new QLabel("Format:"));
formatCombobox = new QComboBox(this);
horizontalLayout->addWidget(formatCombobox);
verticalLayout->addLayout(horizontalLayout);
QHBoxLayout* horizontalLayout_4 = new QHBoxLayout();
horizontalLayout_4->addWidget(new QLabel("Range:"));
rangeCombobox = new QComboBox(this);
rangeCombobox->addItem("Entire Sequence");
rangeCombobox->addItem("In to Out");
horizontalLayout_4->addWidget(rangeCombobox);
verticalLayout->addLayout(horizontalLayout_4);
videoGroupbox = new QGroupBox(this);
videoGroupbox->setTitle("Video");
videoGroupbox->setFlat(false);
videoGroupbox->setCheckable(true);
QGridLayout* gridLayout = new QGridLayout(videoGroupbox);
gridLayout->addWidget(new QLabel("Compression Type:"), 4, 0, 1, 1);
compressionTypeCombobox = new QComboBox(videoGroupbox);
compressionTypeCombobox->addItem("Quality-based (Constant Rate Factor)");
compressionTypeCombobox->addItem("File size-based (Two-Pass)");
gridLayout->addWidget(compressionTypeCombobox, 4, 1, 1, 1);
gridLayout->addWidget(new QLabel("Codec:"), 0, 0, 1, 1);
vcodecCombobox = new QComboBox(videoGroupbox);
gridLayout->addWidget(vcodecCombobox, 0, 1, 1, 1);
gridLayout->addWidget(new QLabel("Height:"), 2, 0, 1, 1);
gridLayout->addWidget(new QLabel("Width:"), 1, 0, 1, 1);
heightSpinbox = new QSpinBox(videoGroupbox);
heightSpinbox->setMaximum(16777216);
gridLayout->addWidget(heightSpinbox, 2, 1, 1, 1);
widthSpinbox = new QSpinBox(videoGroupbox);
widthSpinbox->setMaximum(16777216);
gridLayout->addWidget(widthSpinbox, 1, 1, 1, 1);
videobitrateSpinbox = new QDoubleSpinBox(videoGroupbox);
videobitrateSpinbox->setMaximum(100);
videobitrateSpinbox->setValue(2);
gridLayout->addWidget(videobitrateSpinbox, 5, 1, 1, 1);
videoBitrateLabel = new QLabel(videoGroupbox);
gridLayout->addWidget(videoBitrateLabel, 5, 0, 1, 1);
gridLayout->addWidget(new QLabel("Frame Rate:"), 3, 0, 1, 1);
framerateSpinbox = new QDoubleSpinBox(videoGroupbox);
framerateSpinbox->setMaximum(60);
framerateSpinbox->setValue(0);
gridLayout->addWidget(framerateSpinbox, 3, 1, 1, 1);
verticalLayout->addWidget(videoGroupbox);
audioGroupbox = new QGroupBox(this);
audioGroupbox->setTitle("Audio");
audioGroupbox->setCheckable(true);
QGridLayout* gridLayout_2 = new QGridLayout(audioGroupbox);
gridLayout_2->addWidget(new QLabel("Codec:"), 0, 0, 1, 1);
acodecCombobox = new QComboBox(audioGroupbox);
gridLayout_2->addWidget(acodecCombobox, 0, 1, 1, 1);
samplingRateSpinbox = new QSpinBox(audioGroupbox);
samplingRateSpinbox->setMaximum(96000);
samplingRateSpinbox->setValue(0);
gridLayout_2->addWidget(samplingRateSpinbox, 1, 1, 1, 1);
gridLayout_2->addWidget(new QLabel("Sampling Rate:"), 1, 0, 1, 1);
gridLayout_2->addWidget(new QLabel("Bitrate (Kbps/CBR):"), 3, 0, 1, 1);
audiobitrateSpinbox = new QSpinBox(audioGroupbox);
audiobitrateSpinbox->setMaximum(320);
audiobitrateSpinbox->setValue(256);
gridLayout_2->addWidget(audiobitrateSpinbox, 3, 1, 1, 1);
verticalLayout->addWidget(audioGroupbox);
QHBoxLayout* horizontalLayout_3 = new QHBoxLayout();
progressBar = new QProgressBar(this);
progressBar->setFormat("%p% (ETA: 0:00:00)");
progressBar->setEnabled(false);
progressBar->setValue(0);
horizontalLayout_3->addWidget(progressBar);
renderCancel = new QPushButton(this);
renderCancel->setText("x");
renderCancel->setEnabled(false);
renderCancel->setMaximumSize(QSize(20, 16777215));
connect(renderCancel, SIGNAL(clicked(bool)), this, SLOT(cancel_render()));
horizontalLayout_3->addWidget(renderCancel);
verticalLayout->addLayout(horizontalLayout_3);
QHBoxLayout* horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->addStretch();
export_button = new QPushButton(this);
export_button->setText("Export");
connect(export_button, SIGNAL(clicked(bool)), this, SLOT(export_action()));
horizontalLayout_2->addWidget(export_button);
cancel_button = new QPushButton(this);
cancel_button->setText("Cancel");
connect(cancel_button, SIGNAL(clicked(bool)), this, SLOT(reject()));
horizontalLayout_2->addWidget(cancel_button);
horizontalLayout_2->addStretch();
verticalLayout->addLayout(horizontalLayout_2);
connect(formatCombobox, SIGNAL(currentIndexChanged(int)), this, SLOT(format_changed(int)));
connect(compressionTypeCombobox, SIGNAL(currentIndexChanged(int)), this, SLOT(comp_type_changed(int)));
connect(vcodecCombobox, SIGNAL(currentIndexChanged(int)), this, SLOT(vcodec_changed(int)));
}