Made the help dialog or AVS2YUV work again + some code refactoring by using QScopedPointer's.

This commit is contained in:
LoRd_MuldeR 2014-11-19 17:21:46 +01:00
parent a76b1b13b1
commit 09bf5b3a94
2 changed files with 14 additions and 19 deletions

View File

@ -26,7 +26,7 @@
#define VER_X264_MAJOR 2 #define VER_X264_MAJOR 2
#define VER_X264_MINOR 4 #define VER_X264_MINOR 4
#define VER_X264_PATCH 4 #define VER_X264_PATCH 4
#define VER_X264_BUILD 891 #define VER_X264_BUILD 895
#define VER_X264_PORTABLE_EDITION (0) #define VER_X264_PORTABLE_EDITION (0)

View File

@ -47,6 +47,8 @@
#include <QClipboard> #include <QClipboard>
#include <QToolTip> #include <QToolTip>
#include <memory>
#define ARRAY_SIZE(ARRAY) (sizeof((ARRAY))/sizeof((ARRAY[0]))) #define ARRAY_SIZE(ARRAY) (sizeof((ARRAY))/sizeof((ARRAY[0])))
#define VALID_DIR(PATH) ((!(PATH).isEmpty()) && QFileInfo(PATH).exists() && QFileInfo(PATH).isDir()) #define VALID_DIR(PATH) ((!(PATH).isEmpty()) && QFileInfo(PATH).exists() && QFileInfo(PATH).isDir())
@ -348,15 +350,14 @@ bool AddJobDialog::eventFilter(QObject *o, QEvent *e)
if((o == ui->labelHelpScreenX264) && (e->type() == QEvent::MouseButtonPress)) if((o == ui->labelHelpScreenX264) && (e->type() == QEvent::MouseButtonPress))
{ {
OptionsModel options(m_sysinfo); saveOptions(&options); OptionsModel options(m_sysinfo); saveOptions(&options);
HelpDialog *helpScreen = new HelpDialog(this, false, m_sysinfo, &options, m_preferences); QScopedPointer<HelpDialog> helpScreen(new HelpDialog(this, false, m_sysinfo, &options, m_preferences));
helpScreen->exec(); helpScreen->exec();
X264_DELETE(helpScreen);
} }
else if((o == ui->labelHelpScreenAvs2YUV) && (e->type() == QEvent::MouseButtonPress)) else if((o == ui->labelHelpScreenAvs2YUV) && (e->type() == QEvent::MouseButtonPress))
{ {
HelpDialog *helpScreen = new HelpDialog(this, false, m_sysinfo, m_defaults, m_preferences); OptionsModel options(m_sysinfo); saveOptions(&options);
QScopedPointer<HelpDialog> helpScreen(new HelpDialog(this, true, m_sysinfo, &options, m_preferences));
helpScreen->exec(); helpScreen->exec();
X264_DELETE(helpScreen);
} }
else if((o == ui->editCustomX264Params) && (e->type() == QEvent::FocusOut)) else if((o == ui->editCustomX264Params) && (e->type() == QEvent::FocusOut))
{ {
@ -685,8 +686,8 @@ void AddJobDialog::saveTemplateButtonClicked(void)
} }
} }
OptionsModel *options = new OptionsModel(m_sysinfo); QScopedPointer<OptionsModel> options(new OptionsModel(m_sysinfo));
saveOptions(options); saveOptions(options.data());
if(options->equals(m_defaults)) if(options->equals(m_defaults))
{ {
@ -695,7 +696,6 @@ void AddJobDialog::saveTemplateButtonClicked(void)
ui->cbxTemplate->setCurrentIndex(0); ui->cbxTemplate->setCurrentIndex(0);
ui->cbxTemplate->blockSignals(false); ui->cbxTemplate->blockSignals(false);
REMOVE_USAFED_ITEM; REMOVE_USAFED_ITEM;
X264_DELETE(options);
return; return;
} }
@ -716,7 +716,6 @@ void AddJobDialog::saveTemplateButtonClicked(void)
ui->cbxTemplate->setCurrentIndex(i); ui->cbxTemplate->setCurrentIndex(i);
ui->cbxTemplate->blockSignals(false); ui->cbxTemplate->blockSignals(false);
REMOVE_USAFED_ITEM; REMOVE_USAFED_ITEM;
X264_DELETE(options);
return; return;
} }
} }
@ -740,7 +739,6 @@ void AddJobDialog::saveTemplateButtonClicked(void)
name = QInputDialog::getItem(this, tr("Save Template"), tr("Please enter the name of the template:").leftJustified(144, ' '), items, 0, true, &ok).simplified(); name = QInputDialog::getItem(this, tr("Save Template"), tr("Please enter the name of the template:").leftJustified(144, ' '), items, 0, true, &ok).simplified();
if(!ok) if(!ok)
{ {
X264_DELETE(options);
return; return;
} }
if(name.isEmpty()) if(name.isEmpty())
@ -769,29 +767,26 @@ void AddJobDialog::saveTemplateButtonClicked(void)
break; break;
} }
if(!OptionsModel::saveTemplate(options, name)) if(!OptionsModel::saveTemplate(options.data(), name))
{ {
QMessageBox::critical(this, tr("Save Failed"), tr("Sorry, the template could not be saved!")); QMessageBox::critical(this, tr("Save Failed"), tr("Sorry, the template could not be saved!"));
X264_DELETE(options);
return; return;
} }
int index = ui->cbxTemplate->model()->rowCount();
ui->cbxTemplate->blockSignals(true); ui->cbxTemplate->blockSignals(true);
for(int i = 0; i < ui->cbxTemplate->count(); i++) for(int i = 0; i < ui->cbxTemplate->count(); i++)
{ {
if(ui->cbxTemplate->itemText(i).compare(name, Qt::CaseInsensitive) == 0) if(ui->cbxTemplate->itemText(i).compare(name, Qt::CaseInsensitive) == 0)
{ {
index = -1; //Do not append new template QScopedPointer<const OptionsModel> oldItem(reinterpret_cast<const OptionsModel*>(ui->cbxTemplate->itemData(i).value<const void*>()));
const OptionsModel *oldItem = reinterpret_cast<const OptionsModel*>(ui->cbxTemplate->itemData(i).value<const void*>()); ui->cbxTemplate->setItemData(i, QVariant::fromValue<const void*>(options.take()));
ui->cbxTemplate->setItemData(i, QVariant::fromValue<const void*>(options));
ui->cbxTemplate->setCurrentIndex(i); ui->cbxTemplate->setCurrentIndex(i);
X264_DELETE(oldItem);
} }
} }
if(index >= 0) if(!options.isNull())
{ {
ui->cbxTemplate->insertItem(index, name, QVariant::fromValue<const void*>(options)); const int index = ui->cbxTemplate->model()->rowCount();
ui->cbxTemplate->insertItem(index, name, QVariant::fromValue<const void*>(options.take()));
ui->cbxTemplate->setCurrentIndex(index); ui->cbxTemplate->setCurrentIndex(index);
} }
ui->cbxTemplate->blockSignals(false); ui->cbxTemplate->blockSignals(false);