OSDN Git Service

Switched the method for including the UIC header files to "Using a Pointer Member...
authorlordmulder <mulder2@gmx.de>
Thu, 14 Nov 2013 01:29:18 +0000 (02:29 +0100)
committerlordmulder <mulder2@gmx.de>
Thu, 14 Nov 2013 01:29:18 +0000 (02:29 +0100)
13 files changed:
src/main.cpp
src/thread_encode.cpp
src/version.h
src/win_addJob.cpp
src/win_addJob.h
src/win_editor.cpp
src/win_editor.h
src/win_help.cpp
src/win_help.h
src/win_main.cpp
src/win_main.h
src/win_preferences.cpp
src/win_preferences.h

index d12ced3..5507df7 100644 (file)
@@ -24,7 +24,7 @@
 #include "taskbar7.h"
 
 //Qt includes
-#include <QCoreApplication>
+#include <QApplication>
 #include <QDate>
 #include <QPlastiqueStyle>
 
index 9b2772a..5a98ce1 100644 (file)
@@ -45,7 +45,7 @@ QMutex EncodeThread::m_mutex_startProcess;
 /*
  * RAII execution state handler
  */
-static class ExecutionStateHandler
+class ExecutionStateHandler
 {
 public:
        ExecutionStateHandler(void)
index e919d23..47d18fa 100644 (file)
@@ -26,7 +26,7 @@
 #define VER_X264_MAJOR 2
 #define VER_X264_MINOR 2
 #define VER_X264_PATCH 6
-#define VER_X264_BUILD 630
+#define VER_X264_BUILD 638
 
 #define VER_X264_MINIMUM_REV 2363
 #define VER_X264_CURRENT_API 140
index 1b1fc89..145ffdd 100644 (file)
@@ -20,6 +20,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "win_addJob.h"
+#include "uic_win_addJob.h"
 
 #include "global.h"
 #include "model_options.h"
 
 #define REMOVE_USAFED_ITEM \
 { \
-       for(int i = 0; i < cbxTemplate->count(); i++) \
+       for(int i = 0; i < ui->cbxTemplate->count(); i++) \
        { \
-               OptionsModel* temp = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(i).value<void*>()); \
+               OptionsModel* temp = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(i).value<void*>()); \
                if(temp == NULL) \
                { \
-                       cbxTemplate->blockSignals(true); \
-                       cbxTemplate->removeItem(i); \
-                       cbxTemplate->blockSignals(false); \
+                       ui->cbxTemplate->blockSignals(true); \
+                       ui->cbxTemplate->removeItem(i); \
+                       ui->cbxTemplate->blockSignals(false); \
                        break; \
                } \
        } \
@@ -209,95 +210,97 @@ AddJobDialog::AddJobDialog(QWidget *parent, OptionsModel *options, RecentlyUsed
        m_x64supported(x64supported),
        m_use10BitEncoding(use10BitEncoding),
        m_saveToSourceFolder(saveToSourceFolder),
-       m_recentlyUsed(recentlyUsed)
+       m_recentlyUsed(recentlyUsed),
+       ui(new Ui::AddJobDialog())
 {
        //Init the dialog, from the .ui file
-       setupUi(this);
+       ui->setupUi(this);
        setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint));
        
        //Fix dialog size
-       buttonSaveTemplate->setMaximumHeight(20);
-       buttonDeleteTemplate->setMaximumHeight(20);
+       ui->buttonSaveTemplate->setMaximumHeight(20);
+       ui->buttonDeleteTemplate->setMaximumHeight(20);
        resize(width(), minimumHeight());
        setMinimumSize(size());
        setMaximumHeight(height());
 
        //Hide optional controls
-       checkBoxApplyToAll->setVisible(false);
+       ui->checkBoxApplyToAll->setVisible(false);
 
        //Monitor RC mode combobox
-       connect(cbxRateControlMode, SIGNAL(currentIndexChanged(int)), this, SLOT(modeIndexChanged(int)));
+       connect(ui->cbxRateControlMode, SIGNAL(currentIndexChanged(int)), this, SLOT(modeIndexChanged(int)));
 
        //Activate buttons
-       connect(buttonBrowseSource, SIGNAL(clicked()), this, SLOT(browseButtonClicked()));
-       connect(buttonBrowseOutput, SIGNAL(clicked()), this, SLOT(browseButtonClicked()));
-       connect(buttonSaveTemplate, SIGNAL(clicked()), this, SLOT(saveTemplateButtonClicked()));
-       connect(buttonDeleteTemplate, SIGNAL(clicked()), this, SLOT(deleteTemplateButtonClicked()));
+       connect(ui->buttonBrowseSource, SIGNAL(clicked()), this, SLOT(browseButtonClicked()));
+       connect(ui->buttonBrowseOutput, SIGNAL(clicked()), this, SLOT(browseButtonClicked()));
+       connect(ui->buttonSaveTemplate, SIGNAL(clicked()), this, SLOT(saveTemplateButtonClicked()));
+       connect(ui->buttonDeleteTemplate, SIGNAL(clicked()), this, SLOT(deleteTemplateButtonClicked()));
 
        //Setup validator
-       editCustomX264Params->installEventFilter(this);
-       editCustomX264Params->setValidator(new StringValidatorX264(labelNotificationX264, iconNotificationX264));
-       editCustomX264Params->clear();
-       editCustomAvs2YUVParams->installEventFilter(this);
-       editCustomAvs2YUVParams->setValidator(new StringValidatorAvs2YUV(labelNotificationAvs2YUV, iconNotificationAvs2YUV));
-       editCustomAvs2YUVParams->clear();
+       ui->editCustomX264Params->installEventFilter(this);
+       ui->editCustomX264Params->setValidator(new StringValidatorX264(ui->labelNotificationX264, ui->iconNotificationX264));
+       ui->editCustomX264Params->clear();
+       ui->editCustomAvs2YUVParams->installEventFilter(this);
+       ui->editCustomAvs2YUVParams->setValidator(new StringValidatorAvs2YUV(ui->labelNotificationAvs2YUV, ui->iconNotificationAvs2YUV));
+       ui->editCustomAvs2YUVParams->clear();
 
        //Install event filter
-       labelHelpScreenX264->installEventFilter(this);
-       labelHelpScreenAvs2YUV->installEventFilter(this);
+       ui->labelHelpScreenX264->installEventFilter(this);
+       ui->labelHelpScreenAvs2YUV->installEventFilter(this);
 
        //Monitor for options changes
-       connect(cbxRateControlMode, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
-       connect(spinQuantizer, SIGNAL(valueChanged(double)), this, SLOT(configurationChanged()));
-       connect(spinBitrate, SIGNAL(valueChanged(int)), this, SLOT(configurationChanged()));
-       connect(cbxPreset, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
-       connect(cbxTuning, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
-       connect(cbxProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
-       connect(editCustomX264Params, SIGNAL(textChanged(QString)), this, SLOT(configurationChanged()));
-       connect(editCustomAvs2YUVParams, SIGNAL(textChanged(QString)), this, SLOT(configurationChanged()));
+       connect(ui->cbxRateControlMode, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
+       connect(ui->spinQuantizer, SIGNAL(valueChanged(double)), this, SLOT(configurationChanged()));
+       connect(ui->spinBitrate, SIGNAL(valueChanged(int)), this, SLOT(configurationChanged()));
+       connect(ui->cbxPreset, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
+       connect(ui->cbxTuning, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
+       connect(ui->cbxProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(configurationChanged()));
+       connect(ui->editCustomX264Params, SIGNAL(textChanged(QString)), this, SLOT(configurationChanged()));
+       connect(ui->editCustomAvs2YUVParams, SIGNAL(textChanged(QString)), this, SLOT(configurationChanged()));
 
        //Create context menus
-       ADD_CONTEXTMENU_ACTION(editCustomX264Params, QIcon(":/buttons/page_edit.png"), tr("Open the Text-Editor"), editorActionTriggered);
-       ADD_CONTEXTMENU_ACTION(editCustomAvs2YUVParams, QIcon(":/buttons/page_edit.png"), tr("Open the Text-Editor"), editorActionTriggered);
-       ADD_CONTEXTMENU_SEPARATOR(editCustomX264Params);
-       ADD_CONTEXTMENU_SEPARATOR(editCustomAvs2YUVParams);
-       ADD_CONTEXTMENU_ACTION(editCustomX264Params, QIcon(":/buttons/page_copy.png"), tr("Copy to Clipboard"), copyActionTriggered);
-       ADD_CONTEXTMENU_ACTION(editCustomAvs2YUVParams, QIcon(":/buttons/page_copy.png"), tr("Copy to Clipboard"), copyActionTriggered);
-       ADD_CONTEXTMENU_ACTION(editCustomX264Params, QIcon(":/buttons/page_paste.png"), tr("Paste from Clipboard"), pasteActionTriggered);
-       ADD_CONTEXTMENU_ACTION(editCustomAvs2YUVParams, QIcon(":/buttons/page_paste.png"), tr("Paste from Clipboard"), pasteActionTriggered);
+       ADD_CONTEXTMENU_ACTION(ui->editCustomX264Params, QIcon(":/buttons/page_edit.png"), tr("Open the Text-Editor"), editorActionTriggered);
+       ADD_CONTEXTMENU_ACTION(ui->editCustomAvs2YUVParams, QIcon(":/buttons/page_edit.png"), tr("Open the Text-Editor"), editorActionTriggered);
+       ADD_CONTEXTMENU_SEPARATOR(ui->editCustomX264Params);
+       ADD_CONTEXTMENU_SEPARATOR(ui->editCustomAvs2YUVParams);
+       ADD_CONTEXTMENU_ACTION(ui->editCustomX264Params, QIcon(":/buttons/page_copy.png"), tr("Copy to Clipboard"), copyActionTriggered);
+       ADD_CONTEXTMENU_ACTION(ui->editCustomAvs2YUVParams, QIcon(":/buttons/page_copy.png"), tr("Copy to Clipboard"), copyActionTriggered);
+       ADD_CONTEXTMENU_ACTION(ui->editCustomX264Params, QIcon(":/buttons/page_paste.png"), tr("Paste from Clipboard"), pasteActionTriggered);
+       ADD_CONTEXTMENU_ACTION(ui->editCustomAvs2YUVParams, QIcon(":/buttons/page_paste.png"), tr("Paste from Clipboard"), pasteActionTriggered);
 
        //Setup template selector
        loadTemplateList();
-       connect(cbxTemplate, SIGNAL(currentIndexChanged(int)), this, SLOT(templateSelected()));
+       connect(ui->cbxTemplate, SIGNAL(currentIndexChanged(int)), this, SLOT(templateSelected()));
 }
 
 AddJobDialog::~AddJobDialog(void)
 {
        //Free templates
-       for(int i = 0; i < cbxTemplate->model()->rowCount(); i++)
+       for(int i = 0; i < ui->cbxTemplate->model()->rowCount(); i++)
        {
-               if(cbxTemplate->itemText(i).startsWith("<") || cbxTemplate->itemText(i).endsWith(">"))
+               if(ui->cbxTemplate->itemText(i).startsWith("<") || ui->cbxTemplate->itemText(i).endsWith(">"))
                {
                        continue;
                }
-               OptionsModel *item = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(i).value<void*>());
-               cbxTemplate->setItemData(i, QVariant::fromValue<void*>(NULL));
+               OptionsModel *item = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(i).value<void*>());
+               ui->cbxTemplate->setItemData(i, QVariant::fromValue<void*>(NULL));
                X264_DELETE(item);
        }
 
        //Free validators
-       if(const QValidator *tmp = editCustomX264Params->validator())
+       if(const QValidator *tmp = ui->editCustomX264Params->validator())
        {
-               editCustomX264Params->setValidator(NULL);
+               ui->editCustomX264Params->setValidator(NULL);
                X264_DELETE(tmp);
        }
-       if(const QValidator *tmp = editCustomAvs2YUVParams->validator())
+       if(const QValidator *tmp = ui->editCustomAvs2YUVParams->validator())
        {
-               editCustomAvs2YUVParams->setValidator(NULL);
+               ui->editCustomAvs2YUVParams->setValidator(NULL);
                X264_DELETE(tmp);
        }
 
        X264_DELETE(m_defaults);
+       delete ui;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -309,17 +312,17 @@ void AddJobDialog::showEvent(QShowEvent *event)
        QDialog::showEvent(event);
        templateSelected();
 
-       if((!editSource->text().isEmpty()) && editOutput->text().isEmpty())
+       if((!ui->editSource->text().isEmpty()) && ui->editOutput->text().isEmpty())
        {
-               QString outPath = generateOutputFileName(QDir::fromNativeSeparators(editSource->text()), m_recentlyUsed->outputDirectory(), m_recentlyUsed->filterIndex(), m_saveToSourceFolder);
-               editOutput->setText(QDir::toNativeSeparators(outPath));
-               buttonAccept->setFocus();
+               QString outPath = generateOutputFileName(QDir::fromNativeSeparators(ui->editSource->text()), m_recentlyUsed->outputDirectory(), m_recentlyUsed->filterIndex(), m_saveToSourceFolder);
+               ui->editOutput->setText(QDir::toNativeSeparators(outPath));
+               ui->buttonAccept->setFocus();
        }
 
-       labelNotificationX264->hide();
-       iconNotificationX264->hide();
-       labelNotificationAvs2YUV->hide();
-       iconNotificationAvs2YUV->hide();
+       ui->labelNotificationX264->hide();
+       ui->iconNotificationX264->hide();
+       ui->labelNotificationAvs2YUV->hide();
+       ui->iconNotificationAvs2YUV->hide();
 
        //Enable drag&drop support for this window, required for Qt v4.8.4+
        setAcceptDrops(true);
@@ -327,25 +330,25 @@ void AddJobDialog::showEvent(QShowEvent *event)
 
 bool AddJobDialog::eventFilter(QObject *o, QEvent *e)
 {
-       if((o == labelHelpScreenX264) && (e->type() == QEvent::MouseButtonPress))
+       if((o == ui->labelHelpScreenX264) && (e->type() == QEvent::MouseButtonPress))
        {
                HelpDialog *helpScreen = new HelpDialog(this, false, m_x64supported, m_use10BitEncoding);
                helpScreen->exec();
                X264_DELETE(helpScreen);
        }
-       else if((o == labelHelpScreenAvs2YUV) && (e->type() == QEvent::MouseButtonPress))
+       else if((o == ui->labelHelpScreenAvs2YUV) && (e->type() == QEvent::MouseButtonPress))
        {
                HelpDialog *helpScreen = new HelpDialog(this, true, m_x64supported, m_use10BitEncoding);
                helpScreen->exec();
                X264_DELETE(helpScreen);
        }
-       else if((o == editCustomX264Params) && (e->type() == QEvent::FocusOut))
+       else if((o == ui->editCustomX264Params) && (e->type() == QEvent::FocusOut))
        {
-               editCustomX264Params->setText(editCustomX264Params->text().simplified());
+               ui->editCustomX264Params->setText(ui->editCustomX264Params->text().simplified());
        }
-       else if((o == editCustomAvs2YUVParams) && (e->type() == QEvent::FocusOut))
+       else if((o == ui->editCustomAvs2YUVParams) && (e->type() == QEvent::FocusOut))
        {
-               editCustomAvs2YUVParams->setText(editCustomAvs2YUVParams->text().simplified());
+               ui->editCustomAvs2YUVParams->setText(ui->editCustomAvs2YUVParams->text().simplified());
        }
        return false;
 }
@@ -395,8 +398,8 @@ void AddJobDialog::dropEvent(QDropEvent *event)
        if(!droppedFile.isEmpty())
        {
                const QString outFileName = generateOutputFileName(droppedFile, currentOutputPath(), currentOutputIndx(), m_saveToSourceFolder);
-               editSource->setText(QDir::toNativeSeparators(droppedFile));
-               editOutput->setText(QDir::toNativeSeparators(outFileName));
+               ui->editSource->setText(QDir::toNativeSeparators(droppedFile));
+               ui->editOutput->setText(QDir::toNativeSeparators(outFileName));
        }
 }
 
@@ -406,19 +409,19 @@ void AddJobDialog::dropEvent(QDropEvent *event)
 
 void AddJobDialog::modeIndexChanged(int index)
 {
-       spinQuantizer->setEnabled(index == 0 || index == 1);
-       spinBitrate->setEnabled(index == 2 || index == 3);
+       ui->spinQuantizer->setEnabled(index == 0 || index == 1);
+       ui->spinBitrate->setEnabled(index == 2 || index == 3);
 }
 
 void AddJobDialog::accept(void)
 {
        //Selection complete?
-       if(editSource->text().trimmed().isEmpty())
+       if(ui->editSource->text().trimmed().isEmpty())
        {
                QMessageBox::warning(this, tr("Not Found!"), tr("Please select a valid source file first!"));
                return;
        }
-       if(editOutput->text().trimmed().isEmpty())
+       if(ui->editOutput->text().trimmed().isEmpty())
        {
                QMessageBox::warning(this, tr("Not Selected!"), tr("<nobr>Please select a valid output file first!</nobr>"));
                return;
@@ -454,7 +457,7 @@ void AddJobDialog::accept(void)
        }
 
        //Custom parameters okay?
-       if(!editCustomX264Params->hasAcceptableInput())
+       if(!ui->editCustomX264Params->hasAcceptableInput())
        {
                int ret = QMessageBox::warning(this, tr("Invalid Params"), tr("<nobr>Your custom parameters are invalid and will be discarded!</nobr>"), QMessageBox::Ignore | QMessageBox::Cancel, QMessageBox::Cancel);
                if(ret != QMessageBox::Ignore) return;
@@ -473,17 +476,17 @@ void AddJobDialog::accept(void)
 
 void AddJobDialog::browseButtonClicked(void)
 {
-       if(QObject::sender() == buttonBrowseSource)
+       if(QObject::sender() == ui->buttonBrowseSource)
        {
                QString filePath = QFileDialog::getOpenFileName(this, tr("Open Source File"), currentSourcePath(true), getInputFilterLst(), NULL, QFileDialog::DontUseNativeDialog);
                if(!(filePath.isNull() || filePath.isEmpty()))
                {
                        QString destFile = generateOutputFileName(filePath, currentOutputPath(), currentOutputIndx(), m_saveToSourceFolder);
-                       editSource->setText(QDir::toNativeSeparators(filePath));
-                       editOutput->setText(QDir::toNativeSeparators(destFile));
+                       ui->editSource->setText(QDir::toNativeSeparators(filePath));
+                       ui->editOutput->setText(QDir::toNativeSeparators(destFile));
                }
        }
-       else if(QObject::sender() == buttonBrowseOutput)
+       else if(QObject::sender() == ui->buttonBrowseOutput)
        {
                QString selectedType = getFilterStr(currentOutputIndx());
                QString filePath = QFileDialog::getSaveFileName(this, tr("Choose Output File"), currentOutputPath(true), getFilterLst(), &selectedType, QFileDialog::DontUseNativeDialog | QFileDialog::DontConfirmOverwrite);
@@ -504,26 +507,26 @@ void AddJobDialog::browseButtonClicked(void)
                                }
                                filePath = QString("%1.%2").arg(filePath, getFilterExt(tempIndex));
                        }
-                       editOutput->setText(QDir::toNativeSeparators(filePath));
+                       ui->editOutput->setText(QDir::toNativeSeparators(filePath));
                }
        }
 }
 
 void AddJobDialog::configurationChanged(void)
 {
-       OptionsModel* options = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(cbxTemplate->currentIndex()).value<void*>());
+       OptionsModel* options = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(ui->cbxTemplate->currentIndex()).value<void*>());
        if(options)
        {
-               cbxTemplate->blockSignals(true);
-               cbxTemplate->insertItem(0, tr("<Unsaved Configuration>"), QVariant::fromValue<void*>(NULL));
-               cbxTemplate->setCurrentIndex(0);
-               cbxTemplate->blockSignals(false);
+               ui->cbxTemplate->blockSignals(true);
+               ui->cbxTemplate->insertItem(0, tr("<Unsaved Configuration>"), QVariant::fromValue<void*>(NULL));
+               ui->cbxTemplate->setCurrentIndex(0);
+               ui->cbxTemplate->blockSignals(false);
        }
 }
 
 void AddJobDialog::templateSelected(void)
 {
-       OptionsModel* options = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(cbxTemplate->currentIndex()).value<void*>());
+       OptionsModel* options = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(ui->cbxTemplate->currentIndex()).value<void*>());
        if(options)
        {
                qDebug("Loading options!");
@@ -531,7 +534,7 @@ void AddJobDialog::templateSelected(void)
                restoreOptions(options);
        }
 
-       modeIndexChanged(cbxRateControlMode->currentIndex());
+       modeIndexChanged(ui->cbxRateControlMode->currentIndex());
 }
 
 void AddJobDialog::saveTemplateButtonClicked(void)
@@ -551,30 +554,30 @@ void AddJobDialog::saveTemplateButtonClicked(void)
        if(options->equals(m_defaults))
        {
                QMessageBox::warning (this, tr("Oups"), tr("<nobr>It makes no sense to save the default settings!</nobr>"));
-               cbxTemplate->blockSignals(true);
-               cbxTemplate->setCurrentIndex(0);
-               cbxTemplate->blockSignals(false);
+               ui->cbxTemplate->blockSignals(true);
+               ui->cbxTemplate->setCurrentIndex(0);
+               ui->cbxTemplate->blockSignals(false);
                REMOVE_USAFED_ITEM;
                X264_DELETE(options);
                return;
        }
 
-       for(int i = 0; i < cbxTemplate->count(); i++)
+       for(int i = 0; i < ui->cbxTemplate->count(); i++)
        {
-               const QString tempName = cbxTemplate->itemText(i);
+               const QString tempName = ui->cbxTemplate->itemText(i);
                if(tempName.contains('<') || tempName.contains('>'))
                {
                        continue;
                }
-               OptionsModel* test = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(i).value<void*>());
+               OptionsModel* test = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(i).value<void*>());
                if(test != NULL)
                {
                        if(options->equals(test))
                        {
                                QMessageBox::warning (this, tr("Oups"), tr("<nobr>There already is a template for the current settings!</nobr>"));
-                               cbxTemplate->blockSignals(true);
-                               cbxTemplate->setCurrentIndex(i);
-                               cbxTemplate->blockSignals(false);
+                               ui->cbxTemplate->blockSignals(true);
+                               ui->cbxTemplate->setCurrentIndex(i);
+                               ui->cbxTemplate->blockSignals(false);
                                REMOVE_USAFED_ITEM;
                                X264_DELETE(options);
                                return;
@@ -620,33 +623,33 @@ void AddJobDialog::saveTemplateButtonClicked(void)
                return;
        }
        
-       int index = cbxTemplate->model()->rowCount();
-       cbxTemplate->blockSignals(true);
-       for(int i = 0; i < cbxTemplate->count(); i++)
+       int index = ui->cbxTemplate->model()->rowCount();
+       ui->cbxTemplate->blockSignals(true);
+       for(int i = 0; i < ui->cbxTemplate->count(); i++)
        {
-               if(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
-                       OptionsModel *oldItem = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(i).value<void*>());
-                       cbxTemplate->setItemData(i, QVariant::fromValue<void*>(options));
-                       cbxTemplate->setCurrentIndex(i);
+                       OptionsModel *oldItem = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(i).value<void*>());
+                       ui->cbxTemplate->setItemData(i, QVariant::fromValue<void*>(options));
+                       ui->cbxTemplate->setCurrentIndex(i);
                        X264_DELETE(oldItem);
                }
        }
        if(index >= 0)
        {
-               cbxTemplate->insertItem(index, name, QVariant::fromValue<void*>(options));
-               cbxTemplate->setCurrentIndex(index);
+               ui->cbxTemplate->insertItem(index, name, QVariant::fromValue<void*>(options));
+               ui->cbxTemplate->setCurrentIndex(index);
        }
-       cbxTemplate->blockSignals(false);
+       ui->cbxTemplate->blockSignals(false);
 
        REMOVE_USAFED_ITEM;
 }
 
 void AddJobDialog::deleteTemplateButtonClicked(void)
 {
-       const int index = cbxTemplate->currentIndex();
-       QString name = cbxTemplate->itemText(index);
+       const int index = ui->cbxTemplate->currentIndex();
+       QString name = ui->cbxTemplate->itemText(index);
 
        if(name.contains('<') || name.contains('>') || name.contains('\\') || name.contains('/'))
        {
@@ -662,8 +665,8 @@ void AddJobDialog::deleteTemplateButtonClicked(void)
 
 
        OptionsModel::deleteTemplate(name);
-       OptionsModel *item = reinterpret_cast<OptionsModel*>(cbxTemplate->itemData(index).value<void*>());
-       cbxTemplate->removeItem(index);
+       OptionsModel *item = reinterpret_cast<OptionsModel*>(ui->cbxTemplate->itemData(index).value<void*>());
+       ui->cbxTemplate->removeItem(index);
        X264_DELETE(item);
 }
 
@@ -714,12 +717,66 @@ void AddJobDialog::pasteActionTriggered(void)
 
 QString AddJobDialog::sourceFile(void)
 {
-       return QDir::fromNativeSeparators(editSource->text());
+       return QDir::fromNativeSeparators(ui->editSource->text());
 }
 
 QString AddJobDialog::outputFile(void)
 {
-       return QDir::fromNativeSeparators(editOutput->text());
+       return QDir::fromNativeSeparators(ui->editOutput->text());
+}
+
+QString AddJobDialog::preset(void)
+{
+       return ui->cbxPreset->itemText(ui->cbxPreset->currentIndex());
+}
+
+QString AddJobDialog::tuning(void)
+{
+       return ui->cbxTuning->itemText(ui->cbxTuning->currentIndex());
+}
+
+QString AddJobDialog::profile(void)
+{
+       return ui->cbxProfile->itemText(ui->cbxProfile->currentIndex());
+}
+
+QString AddJobDialog::params(void)
+{
+       return ui->editCustomX264Params->text().simplified();
+}
+
+bool AddJobDialog::runImmediately(void)
+{
+       return ui->checkBoxRun->isChecked();
+}
+
+bool AddJobDialog::applyToAll(void)
+{
+       return ui->checkBoxApplyToAll->isChecked();
+}
+
+void AddJobDialog::setRunImmediately(bool run)
+{
+       ui->checkBoxRun->setChecked(run);
+}
+
+void AddJobDialog::setSourceFile(const QString &path)
+{
+       ui->editSource->setText(QDir::toNativeSeparators(path));
+}
+
+void AddJobDialog::setOutputFile(const QString &path)
+{
+       ui->editOutput->setText(QDir::toNativeSeparators(path));}
+
+void AddJobDialog::setSourceEditable(const bool editable)
+{
+       ui->buttonBrowseSource->setEnabled(editable);
+}
+
+void AddJobDialog::setApplyToAllVisible(const bool visible)
+{
+       ui->checkBoxApplyToAll->setVisible(visible);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -728,8 +785,8 @@ QString AddJobDialog::outputFile(void)
 
 void AddJobDialog::loadTemplateList(void)
 {
-       cbxTemplate->addItem(tr("<Default>"), QVariant::fromValue<void*>(m_defaults));
-       cbxTemplate->setCurrentIndex(0);
+       ui->cbxTemplate->addItem(tr("<Default>"), QVariant::fromValue<void*>(m_defaults));
+       ui->cbxTemplate->setCurrentIndex(0);
 
        QMap<QString, OptionsModel*> templates = OptionsModel::loadAllTemplates();
        QStringList templateNames = templates.keys();
@@ -738,18 +795,18 @@ void AddJobDialog::loadTemplateList(void)
        while(!templateNames.isEmpty())
        {
                QString current = templateNames.takeFirst();
-               cbxTemplate->addItem(current, QVariant::fromValue<void*>(templates.value(current)));
+               ui->cbxTemplate->addItem(current, QVariant::fromValue<void*>(templates.value(current)));
 
                if(templates.value(current)->equals(m_options))
                {
-                       cbxTemplate->setCurrentIndex(cbxTemplate->count() - 1);
+                       ui->cbxTemplate->setCurrentIndex(ui->cbxTemplate->count() - 1);
                }
        }
 
-       if((cbxTemplate->currentIndex() == 0) && (!m_options->equals(m_defaults)))
+       if((ui->cbxTemplate->currentIndex() == 0) && (!m_options->equals(m_defaults)))
        {
-               cbxTemplate->insertItem(1, tr("<Recently Used>"), QVariant::fromValue<void*>(m_options));
-               cbxTemplate->setCurrentIndex(1);
+               ui->cbxTemplate->insertItem(1, tr("<Recently Used>"), QVariant::fromValue<void*>(m_options));
+               ui->cbxTemplate->setCurrentIndex(1);
        }
 }
 
@@ -767,44 +824,44 @@ void AddJobDialog::updateComboBox(QComboBox *cbox, const QString &text)
 
 void AddJobDialog::restoreOptions(OptionsModel *options)
 {
-       cbxRateControlMode->blockSignals(true);
-       spinQuantizer->blockSignals(true);
-       spinBitrate->blockSignals(true);
-       cbxPreset->blockSignals(true);
-       cbxTuning->blockSignals(true);
-       cbxProfile->blockSignals(true);
-       editCustomX264Params->blockSignals(true);
-       editCustomAvs2YUVParams->blockSignals(true);
-
-       cbxRateControlMode->setCurrentIndex(options->rcMode());
-       spinQuantizer->setValue(options->quantizer());
-       spinBitrate->setValue(options->bitrate());
-       updateComboBox(cbxPreset, options->preset());
-       updateComboBox(cbxTuning, options->tune());
-       updateComboBox(cbxProfile, options->profile());
-       editCustomX264Params->setText(options->customX264());
-       editCustomAvs2YUVParams->setText(options->customAvs2YUV());
-
-       cbxRateControlMode->blockSignals(false);
-       spinQuantizer->blockSignals(false);
-       spinBitrate->blockSignals(false);
-       cbxPreset->blockSignals(false);
-       cbxTuning->blockSignals(false);
-       cbxProfile->blockSignals(false);
-       editCustomX264Params->blockSignals(false);
-       editCustomAvs2YUVParams->blockSignals(false);
+       ui->cbxRateControlMode->blockSignals(true);
+       ui->spinQuantizer->blockSignals(true);
+       ui->spinBitrate->blockSignals(true);
+       ui->cbxPreset->blockSignals(true);
+       ui->cbxTuning->blockSignals(true);
+       ui->cbxProfile->blockSignals(true);
+       ui->editCustomX264Params->blockSignals(true);
+       ui->editCustomAvs2YUVParams->blockSignals(true);
+
+       ui->cbxRateControlMode->setCurrentIndex(options->rcMode());
+       ui->spinQuantizer->setValue(options->quantizer());
+       ui->spinBitrate->setValue(options->bitrate());
+       updateComboBox(ui->cbxPreset, options->preset());
+       updateComboBox(ui->cbxTuning, options->tune());
+       updateComboBox(ui->cbxProfile, options->profile());
+       ui->editCustomX264Params->setText(options->customX264());
+       ui->editCustomAvs2YUVParams->setText(options->customAvs2YUV());
+
+       ui->cbxRateControlMode->blockSignals(false);
+       ui->spinQuantizer->blockSignals(false);
+       ui->spinBitrate->blockSignals(false);
+       ui->cbxPreset->blockSignals(false);
+       ui->cbxTuning->blockSignals(false);
+       ui->cbxProfile->blockSignals(false);
+       ui->editCustomX264Params->blockSignals(false);
+       ui->editCustomAvs2YUVParams->blockSignals(false);
 }
 
 void AddJobDialog::saveOptions(OptionsModel *options)
 {
-       options->setRCMode(static_cast<OptionsModel::RCMode>(cbxRateControlMode->currentIndex()));
-       options->setQuantizer(spinQuantizer->value());
-       options->setBitrate(spinBitrate->value());
-       options->setPreset(cbxPreset->model()->data(cbxPreset->model()->index(cbxPreset->currentIndex(), 0)).toString());
-       options->setTune(cbxTuning->model()->data(cbxTuning->model()->index(cbxTuning->currentIndex(), 0)).toString());
-       options->setProfile(cbxProfile->model()->data(cbxProfile->model()->index(cbxProfile->currentIndex(), 0)).toString());
-       options->setCustomX264(editCustomX264Params->hasAcceptableInput() ? editCustomX264Params->text().simplified() : QString());
-       options->setCustomAvs2YUV(editCustomAvs2YUVParams->hasAcceptableInput() ? editCustomAvs2YUVParams->text().simplified() : QString());
+       options->setRCMode(static_cast<OptionsModel::RCMode>(ui->cbxRateControlMode->currentIndex()));
+       options->setQuantizer(ui->spinQuantizer->value());
+       options->setBitrate(ui->spinBitrate->value());
+       options->setPreset(ui->cbxPreset->model()->data(ui->cbxPreset->model()->index(ui->cbxPreset->currentIndex(), 0)).toString());
+       options->setTune(ui->cbxTuning->model()->data(ui->cbxTuning->model()->index(ui->cbxTuning->currentIndex(), 0)).toString());
+       options->setProfile(ui->cbxProfile->model()->data(ui->cbxProfile->model()->index(ui->cbxProfile->currentIndex(), 0)).toString());
+       options->setCustomX264(ui->editCustomX264Params->hasAcceptableInput() ? ui->editCustomX264Params->text().simplified() : QString());
+       options->setCustomAvs2YUV(ui->editCustomAvs2YUVParams->hasAcceptableInput() ? ui->editCustomAvs2YUVParams->text().simplified() : QString());
 }
 
 QString AddJobDialog::currentSourcePath(const bool bWithName)
index 2fef82f..345712c 100644 (file)
 
 #pragma once
 
-#include "uic_win_addJob.h"
-
-#include <QDir>
+#include <QDialog>
 
 class OptionsModel;
 class RecentlyUsed;
+class QComboBox;
+
+namespace Ui
+{
+       class AddJobDialog;
+}
 
-class AddJobDialog : public QDialog, private Ui::AddJobDialog
+class AddJobDialog : public QDialog
 {
        Q_OBJECT
 
@@ -38,17 +42,17 @@ public:
 
        QString sourceFile(void);
        QString outputFile(void);
-       QString preset(void) { return cbxPreset->itemText(cbxPreset->currentIndex()); }
-       QString tuning(void) { return cbxTuning->itemText(cbxTuning->currentIndex()); }
-       QString profile(void) { return cbxProfile->itemText(cbxProfile->currentIndex()); }
-       QString params(void) { return editCustomX264Params->text().simplified(); }
-       bool runImmediately(void) { return checkBoxRun->isChecked(); }
-       bool applyToAll(void) { return checkBoxApplyToAll->isChecked(); }
-       void setRunImmediately(bool run) { checkBoxRun->setChecked(run); }
-       void setSourceFile(const QString &path) { editSource->setText(QDir::toNativeSeparators(path)); }
-       void setOutputFile(const QString &path) { editOutput->setText(QDir::toNativeSeparators(path)); }
-       void setSourceEditable(const bool editable) { buttonBrowseSource->setEnabled(editable); }
-       void setApplyToAllVisible(const bool visible) { checkBoxApplyToAll->setVisible(visible); }
+       QString preset(void);
+       QString tuning(void);
+       QString profile(void);
+       QString params(void);
+       bool runImmediately(void);
+       bool applyToAll(void);
+       void setRunImmediately(bool run);
+       void setSourceFile(const QString &path);
+       void setOutputFile(const QString &path);
+       void setSourceEditable(const bool editable);
+       void setApplyToAllVisible(const bool visible);
        
        static QString generateOutputFileName(const QString &sourceFilePath, const QString &destinationDirectory, const int filterIndex, const bool saveToSourceDir);
        static int getFilterIdx(const QString &fileExt);
@@ -85,6 +89,8 @@ private slots:
        virtual void accept(void);
 
 private:
+       Ui::AddJobDialog *const ui;
+
        void loadTemplateList(void);
        void restoreOptions(OptionsModel *options);
        void saveOptions(OptionsModel *options);
index 1053ea9..7dd211f 100644 (file)
@@ -20,6 +20,8 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "win_editor.h"
+#include "uic_win_editor.h"
+
 #include "global.h"
 
 #include <QProcess>
 
 EditorDialog::EditorDialog(QWidget *parent)
 :
-       QDialog(parent)
+       QDialog(parent),
+       ui(new Ui::EditorDialog())
 {
        //Init the dialog, from the .ui file
-       setupUi(this);
+       ui->setupUi(this);
        setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint));
 
        //Fix size
@@ -44,6 +47,22 @@ EditorDialog::EditorDialog(QWidget *parent)
 
 EditorDialog::~EditorDialog(void)
 {
+       delete ui;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Public Functions
+///////////////////////////////////////////////////////////////////////////////
+
+QString EditorDialog::getEditText(void)
+{
+       return ui->plainTextEdit->toPlainText().simplified();
+}
+       
+void EditorDialog::setEditText(const QString &text)
+{
+       ui->plainTextEdit->clear();
+       ui->plainTextEdit->appendPlainText(text.simplified());
 }
 
 ///////////////////////////////////////////////////////////////////////////////
index d90d9a7..a6802bc 100644 (file)
 
 #pragma once
 
-#include "uic_win_editor.h"
+#include <QDialog>
 
-class QProcess;
+namespace Ui
+{
+       class EditorDialog;
+}
 
-class EditorDialog : public QDialog, private Ui::EditorDialog
+class EditorDialog : public QDialog
 {
        Q_OBJECT
 
@@ -33,12 +36,10 @@ public:
        EditorDialog(QWidget *parent);
        ~EditorDialog(void);
 
-       QString getEditText(void) { return plainTextEdit->toPlainText().simplified(); }
-       
-       void setEditText(const QString &text)
-       {
-               plainTextEdit->clear();
-               plainTextEdit->appendPlainText(text.simplified());
-       }
+       QString getEditText(void);
+       void setEditText(const QString &text);
+
+private:
+       Ui::EditorDialog *const ui;
 };
 
index 9d2ed0b..71adb10 100644 (file)
@@ -20,6 +20,8 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "win_help.h"
+#include "uic_win_help.h"
+
 #include "global.h"
 
 #include <QProcess>
@@ -40,10 +42,11 @@ HelpDialog::HelpDialog(QWidget *parent, bool avs2yuv, bool x64supported, bool us
        m_avs2yuv(avs2yuv),
        m_x64supported(x64supported),
        m_use10BitEncoding(use10BitEncoding),
-       m_process(new QProcess())
+       m_process(new QProcess()),
+       ui(new Ui::HelpDialog())
 {
        //Init the dialog, from the .ui file
-       setupUi(this);
+       ui->setupUi(this);
        setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint));
 
        //Fix size
@@ -61,6 +64,7 @@ HelpDialog::HelpDialog(QWidget *parent, bool avs2yuv, bool x64supported, bool us
 HelpDialog::~HelpDialog(void)
 {
        delete m_process;
+       delete ui;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -69,8 +73,8 @@ HelpDialog::~HelpDialog(void)
 
 void HelpDialog::showEvent(QShowEvent *event)
 {
-       logo_x264->setHidden(m_avs2yuv);
-       logo_avisynth->setVisible(m_avs2yuv);
+       ui->logo_x264->setHidden(m_avs2yuv);
+       ui->logo_avisynth->setVisible(m_avs2yuv);
        
        QDialog::showEvent(event);
        
@@ -87,7 +91,7 @@ void HelpDialog::showEvent(QShowEvent *event)
 
        if(!m_process->waitForStarted())
        {
-               plainTextEdit->appendPlainText(tr("Failed to create x264 process :-("));
+               ui->plainTextEdit->appendPlainText(tr("Failed to create x264 process :-("));
        }
 }
 
@@ -116,7 +120,7 @@ void HelpDialog::readyRead(void)
                {
                        line = line.left(line.length() - 1);
                }
-               plainTextEdit->appendPlainText(line);
+               ui->plainTextEdit->appendPlainText(line);
        }
 }
 
@@ -128,16 +132,16 @@ void HelpDialog::finished(void)
                if(!m_avs2yuv)
                {
                        m_process->start(X264_BINARY(m_appDir, m_use10BitEncoding, m_x64supported), QStringList() << "--fullhelp");
-                       plainTextEdit->appendPlainText("\n--------\n");
+                       ui->plainTextEdit->appendPlainText("\n--------\n");
 
                        if(!m_process->waitForStarted())
                        {
-                               plainTextEdit->appendPlainText(tr("Failed to create x264 process :-("));
+                               ui->plainTextEdit->appendPlainText(tr("Failed to create x264 process :-("));
                        }
                }
        }
        else
        {
-               plainTextEdit->verticalScrollBar()->setSliderPosition(0);
+               ui->plainTextEdit->verticalScrollBar()->setSliderPosition(0);
        }
 }
index d60a8ca..89dbd90 100644 (file)
 
 #pragma once
 
-#include "uic_win_help.h"
+#include <QDialog>
 
 class QProcess;
 
-class HelpDialog : public QDialog, private Ui::HelpDialog
+namespace Ui
+{
+       class HelpDialog;
+}
+
+class HelpDialog : public QDialog
 {
        Q_OBJECT
 
@@ -38,6 +43,8 @@ private slots:
        void finished(void);
 
 private:
+       Ui::HelpDialog *const ui;
+
        const QString m_appDir;
        QProcess *const m_process;
 
index b58336f..c9efa0b 100644 (file)
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "win_main.h"
+#include "uic_win_main.h"
 
+#include "global.h"
+#include "model_status.h"
 #include "model_jobList.h"
 #include "model_options.h"
 #include "model_preferences.h"
@@ -81,10 +84,11 @@ MainWindow::MainWindow(const x264_cpu_t *const cpuFeatures)
        m_skipVersionTest(false),
        m_abortOnTimeout(true),
        m_firstShow(true),
-       m_initialized(false)
+       m_initialized(false),
+       ui(new Ui::MainWindow())
 {
        //Init the dialog, from the .ui file
-       setupUi(this);
+       ui->setupUi(this);
        setWindowFlags(windowFlags() & (~Qt::WindowMaximizeButtonHint));
 
        //Register meta types
@@ -110,11 +114,11 @@ MainWindow::MainWindow(const x264_cpu_t *const cpuFeatures)
 
        //Freeze minimum size
        setMinimumSize(size());
-       splitter->setSizes(QList<int>() << 16 << 196);
+       ui->splitter->setSizes(QList<int>() << 16 << 196);
 
        //Update title
-       labelBuildDate->setText(tr("Built on %1 at %2").arg(x264_version_date().toString(Qt::ISODate), QString::fromLatin1(x264_version_time())));
-       labelBuildDate->installEventFilter(this);
+       ui->labelBuildDate->setText(tr("Built on %1 at %2").arg(x264_version_date().toString(Qt::ISODate), QString::fromLatin1(x264_version_time())));
+       ui->labelBuildDate->installEventFilter(this);
        setWindowTitle(QString("%1 (%2 Mode)").arg(windowTitle(), m_cpuFeatures->x64 ? "64-Bit" : "32-Bit"));
        if(X264_DEBUG)
        {
@@ -129,63 +133,63 @@ MainWindow::MainWindow(const x264_cpu_t *const cpuFeatures)
        //Create model
        m_jobList = new JobListModel(m_preferences);
        connect(m_jobList, SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, SLOT(jobChangedData(QModelIndex, QModelIndex)));
-       jobsView->setModel(m_jobList);
+       ui->jobsView->setModel(m_jobList);
        
        //Setup view
-       jobsView->horizontalHeader()->setSectionHidden(3, true);
-       jobsView->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
-       jobsView->horizontalHeader()->setResizeMode(1, QHeaderView::Fixed);
-       jobsView->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);
-       jobsView->horizontalHeader()->resizeSection(1, 150);
-       jobsView->horizontalHeader()->resizeSection(2, 90);
-       jobsView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
-       connect(jobsView->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(jobSelected(QModelIndex, QModelIndex)));
+       ui->jobsView->horizontalHeader()->setSectionHidden(3, true);
+       ui->jobsView->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
+       ui->jobsView->horizontalHeader()->setResizeMode(1, QHeaderView::Fixed);
+       ui->jobsView->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);
+       ui->jobsView->horizontalHeader()->resizeSection(1, 150);
+       ui->jobsView->horizontalHeader()->resizeSection(2, 90);
+       ui->jobsView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
+       connect(ui->jobsView->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(jobSelected(QModelIndex, QModelIndex)));
 
        //Create context menu
-       QAction *actionClipboard = new QAction(QIcon(":/buttons/page_paste.png"), tr("Copy to Clipboard"), logView);
+       QAction *actionClipboard = new QAction(QIcon(":/buttons/page_paste.png"), tr("Copy to Clipboard"), ui->logView);
        actionClipboard->setEnabled(false);
-       logView->addAction(actionClipboard);
+       ui->logView->addAction(actionClipboard);
        connect(actionClipboard, SIGNAL(triggered(bool)), this, SLOT(copyLogToClipboard(bool)));
-       jobsView->addActions(menuJob->actions());
+       ui->jobsView->addActions(ui->menuJob->actions());
 
        //Enable buttons
-       connect(buttonAddJob, SIGNAL(clicked()), this, SLOT(addButtonPressed()));
-       connect(buttonStartJob, SIGNAL(clicked()), this, SLOT(startButtonPressed()));
-       connect(buttonAbortJob, SIGNAL(clicked()), this, SLOT(abortButtonPressed()));
-       connect(buttonPauseJob, SIGNAL(toggled(bool)), this, SLOT(pauseButtonPressed(bool)));
-       connect(actionJob_Delete, SIGNAL(triggered()), this, SLOT(deleteButtonPressed()));
-       connect(actionJob_Restart, SIGNAL(triggered()), this, SLOT(restartButtonPressed()));
-       connect(actionJob_Browse, SIGNAL(triggered()), this, SLOT(browseButtonPressed()));
+       connect(ui->buttonAddJob, SIGNAL(clicked()), this, SLOT(addButtonPressed()));
+       connect(ui->buttonStartJob, SIGNAL(clicked()), this, SLOT(startButtonPressed()));
+       connect(ui->buttonAbortJob, SIGNAL(clicked()), this, SLOT(abortButtonPressed()));
+       connect(ui->buttonPauseJob, SIGNAL(toggled(bool)), this, SLOT(pauseButtonPressed(bool)));
+       connect(ui->actionJob_Delete, SIGNAL(triggered()), this, SLOT(deleteButtonPressed()));
+       connect(ui->actionJob_Restart, SIGNAL(triggered()), this, SLOT(restartButtonPressed()));
+       connect(ui->actionJob_Browse, SIGNAL(triggered()), this, SLOT(browseButtonPressed()));
 
        //Enable menu
-       connect(actionOpen, SIGNAL(triggered()), this, SLOT(openActionTriggered()));
-       connect(actionAbout, SIGNAL(triggered()), this, SLOT(showAbout()));
-       connect(actionWebMulder, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebX264, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebKomisar, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebVideoLAN, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebJEEB, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebAvisynth32, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebAvisynth64, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebVapourSynth, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebVapourSynthDocs, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebWiki, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebBluRay, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebAvsWiki, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebSecret, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionWebSupport, SIGNAL(triggered()), this, SLOT(showWebLink()));
-       connect(actionPreferences, SIGNAL(triggered()), this, SLOT(showPreferences()));
+       connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openActionTriggered()));
+       connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(showAbout()));
+       connect(ui->actionWebMulder, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebX264, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebKomisar, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebVideoLAN, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebJEEB, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebAvisynth32, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebAvisynth64, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebVapourSynth, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebVapourSynthDocs, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebWiki, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebBluRay, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebAvsWiki, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebSecret, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionWebSupport, SIGNAL(triggered()), this, SLOT(showWebLink()));
+       connect(ui->actionPreferences, SIGNAL(triggered()), this, SLOT(showPreferences()));
 
        //Create floating label
-       m_label = new QLabel(jobsView->viewport());
+       m_label = new QLabel(ui->jobsView->viewport());
        m_label->setText(tr("No job created yet. Please click the 'Add New Job' button!"));
        m_label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        SET_TEXT_COLOR(m_label, Qt::darkGray);
        SET_FONT_BOLD(m_label, true);
        m_label->setVisible(true);
        m_label->setContextMenuPolicy(Qt::ActionsContextMenu);
-       m_label->addActions(jobsView->actions());
-       connect(splitter, SIGNAL(splitterMoved(int, int)), this, SLOT(updateLabelPos()));
+       m_label->addActions(ui->jobsView->actions());
+       connect(ui->splitter, SIGNAL(splitterMoved(int, int)), this, SLOT(updateLabelPos()));
        updateLabelPos();
 }
 
@@ -222,6 +226,8 @@ MainWindow::~MainWindow(void)
        X264_DELETE(m_recentlyUsed);
        VapourSynthCheckThread::unload();
        AvisynthCheckThread::unload();
+
+       delete ui;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -273,7 +279,7 @@ void MainWindow::openActionTriggered()
  */
 void MainWindow::startButtonPressed(void)
 {
-       m_jobList->startJob(jobsView->currentIndex());
+       m_jobList->startJob(ui->jobsView->currentIndex());
 }
 
 /*
@@ -281,7 +287,7 @@ void MainWindow::startButtonPressed(void)
  */
 void MainWindow::abortButtonPressed(void)
 {
-       m_jobList->abortJob(jobsView->currentIndex());
+       m_jobList->abortJob(ui->jobsView->currentIndex());
 }
 
 /*
@@ -289,7 +295,7 @@ void MainWindow::abortButtonPressed(void)
  */
 void MainWindow::deleteButtonPressed(void)
 {
-       m_jobList->deleteJob(jobsView->currentIndex());
+       m_jobList->deleteJob(ui->jobsView->currentIndex());
        m_label->setVisible(m_jobList->rowCount(QModelIndex()) == 0);
 }
 
@@ -298,7 +304,7 @@ void MainWindow::deleteButtonPressed(void)
  */
 void MainWindow::browseButtonPressed(void)
 {
-       QString outputFile = m_jobList->getJobOutputFile(jobsView->currentIndex());
+       QString outputFile = m_jobList->getJobOutputFile(ui->jobsView->currentIndex());
        if((!outputFile.isEmpty()) && QFileInfo(outputFile).exists() && QFileInfo(outputFile).isFile())
        {
                QProcess::startDetached(QString::fromLatin1("explorer.exe"), QStringList() << QString::fromLatin1("/select,") << QDir::toNativeSeparators(outputFile), QFileInfo(outputFile).path());
@@ -316,11 +322,11 @@ void MainWindow::pauseButtonPressed(bool checked)
 {
        if(checked)
        {
-               m_jobList->pauseJob(jobsView->currentIndex());
+               m_jobList->pauseJob(ui->jobsView->currentIndex());
        }
        else
        {
-               m_jobList->resumeJob(jobsView->currentIndex());
+               m_jobList->resumeJob(ui->jobsView->currentIndex());
        }
 }
 
@@ -329,7 +335,7 @@ void MainWindow::pauseButtonPressed(bool checked)
  */
 void MainWindow::restartButtonPressed(void)
 {
-       const QModelIndex index = jobsView->currentIndex();
+       const QModelIndex index = ui->jobsView->currentIndex();
        const OptionsModel *options = m_jobList->getJobOptions(index);
        QString sourceFileName = m_jobList->getJobSourceFile(index);
        QString outputFileName = m_jobList->getJobOutputFile(index);
@@ -353,34 +359,34 @@ void MainWindow::jobSelected(const QModelIndex & current, const QModelIndex & pr
 {
        qDebug("Job selected: %d", current.row());
        
-       if(logView->model())
+       if(ui->logView->model())
        {
-               disconnect(logView->model(), SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(jobLogExtended(QModelIndex, int, int)));
+               disconnect(ui->logView->model(), SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(jobLogExtended(QModelIndex, int, int)));
        }
        
        if(current.isValid())
        {
-               logView->setModel(m_jobList->getLogFile(current));
-               connect(logView->model(), SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(jobLogExtended(QModelIndex, int, int)));
-               logView->actions().first()->setEnabled(true);
-               QTimer::singleShot(0, logView, SLOT(scrollToBottom()));
+               ui->logView->setModel(m_jobList->getLogFile(current));
+               connect(ui->logView->model(), SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(jobLogExtended(QModelIndex, int, int)));
+               ui->logView->actions().first()->setEnabled(true);
+               QTimer::singleShot(0, ui->logView, SLOT(scrollToBottom()));
 
-               progressBar->setValue(m_jobList->getJobProgress(current));
-               editDetails->setText(m_jobList->data(m_jobList->index(current.row(), 3, QModelIndex()), Qt::DisplayRole).toString());
+               ui->progressBar->setValue(m_jobList->getJobProgress(current));
+               ui->editDetails->setText(m_jobList->data(m_jobList->index(current.row(), 3, QModelIndex()), Qt::DisplayRole).toString());
                updateButtons(m_jobList->getJobStatus(current));
                updateTaskbar(m_jobList->getJobStatus(current), m_jobList->data(m_jobList->index(current.row(), 0, QModelIndex()), Qt::DecorationRole).value<QIcon>());
        }
        else
        {
-               logView->setModel(NULL);
-               logView->actions().first()->setEnabled(false);
-               progressBar->setValue(0);
-               editDetails->clear();
+               ui->logView->setModel(NULL);
+               ui->logView->actions().first()->setEnabled(false);
+               ui->progressBar->setValue(0);
+               ui->editDetails->clear();
                updateButtons(JobStatus_Undefined);
                updateTaskbar(JobStatus_Undefined, QIcon());
        }
 
-       progressBar->repaint();
+       ui->progressBar->repaint();
 }
 
 /*
@@ -388,7 +394,7 @@ void MainWindow::jobSelected(const QModelIndex & current, const QModelIndex & pr
  */
 void MainWindow::jobChangedData(const QModelIndex &topLeft, const  QModelIndex &bottomRight)
 {
-       int selected = jobsView->currentIndex().row();
+       int selected = ui->jobsView->currentIndex().row();
        
        if(topLeft.column() <= 1 && bottomRight.column() >= 1) /*STATUS*/
        {
@@ -415,8 +421,8 @@ void MainWindow::jobChangedData(const QModelIndex &topLeft, const  QModelIndex &
                {
                        if(i == selected)
                        {
-                               progressBar->setValue(m_jobList->getJobProgress(m_jobList->index(i, 0, QModelIndex())));
-                               WinSevenTaskbar::setTaskbarProgress(this, progressBar->value(), progressBar->maximum());
+                               ui->progressBar->setValue(m_jobList->getJobProgress(m_jobList->index(i, 0, QModelIndex())));
+                               WinSevenTaskbar::setTaskbarProgress(this, ui->progressBar->value(), ui->progressBar->maximum());
                                break;
                        }
                }
@@ -427,7 +433,7 @@ void MainWindow::jobChangedData(const QModelIndex &topLeft, const  QModelIndex &
                {
                        if(i == selected)
                        {
-                               editDetails->setText(m_jobList->data(m_jobList->index(i, 3, QModelIndex()), Qt::DisplayRole).toString());
+                               ui->editDetails->setText(m_jobList->data(m_jobList->index(i, 3, QModelIndex()), Qt::DisplayRole).toString());
                                break;
                        }
                }
@@ -439,7 +445,7 @@ void MainWindow::jobChangedData(const QModelIndex &topLeft, const  QModelIndex &
  */
 void MainWindow::jobLogExtended(const QModelIndex & parent, int start, int end)
 {
-       QTimer::singleShot(0, logView, SLOT(scrollToBottom()));
+       QTimer::singleShot(0, ui->logView, SLOT(scrollToBottom()));
 }
 
 /*
@@ -540,20 +546,20 @@ void MainWindow::showAbout(void)
  */
 void MainWindow::showWebLink(void)
 {
-       if(QObject::sender() == actionWebMulder)          QDesktopServices::openUrl(QUrl(home_url));
-       if(QObject::sender() == actionWebX264)            QDesktopServices::openUrl(QUrl("http://www.x264.com/"));
-       if(QObject::sender() == actionWebKomisar)         QDesktopServices::openUrl(QUrl("http://komisar.gin.by/"));
-       if(QObject::sender() == actionWebVideoLAN)        QDesktopServices::openUrl(QUrl("http://download.videolan.org/pub/x264/binaries/"));
-       if(QObject::sender() == actionWebJEEB)            QDesktopServices::openUrl(QUrl("http://x264.fushizen.eu/"));
-       if(QObject::sender() == actionWebAvisynth32)      QDesktopServices::openUrl(QUrl("http://sourceforge.net/projects/avisynth2/files/AviSynth%202.5/"));
-       if(QObject::sender() == actionWebAvisynth64)      QDesktopServices::openUrl(QUrl("http://code.google.com/p/avisynth64/downloads/list"));
-       if(QObject::sender() == actionWebVapourSynth)     QDesktopServices::openUrl(QUrl("http://www.vapoursynth.com/"));
-       if(QObject::sender() == actionWebVapourSynthDocs) QDesktopServices::openUrl(QUrl("http://www.vapoursynth.com/doc/"));
-       if(QObject::sender() == actionWebWiki)            QDesktopServices::openUrl(QUrl("http://mewiki.project357.com/wiki/X264_Settings"));
-       if(QObject::sender() == actionWebBluRay)          QDesktopServices::openUrl(QUrl("http://www.x264bluray.com/"));
-       if(QObject::sender() == actionWebAvsWiki)         QDesktopServices::openUrl(QUrl("http://avisynth.nl/index.php/Main_Page#Usage"));
-       if(QObject::sender() == actionWebSupport)         QDesktopServices::openUrl(QUrl("http://forum.doom9.org/showthread.php?t=144140"));
-       if(QObject::sender() == actionWebSecret)          QDesktopServices::openUrl(QUrl("http://www.youtube.com/watch_popup?v=AXIeHY-OYNI"));
+       if(QObject::sender() == ui->actionWebMulder)          QDesktopServices::openUrl(QUrl(home_url));
+       if(QObject::sender() == ui->actionWebX264)            QDesktopServices::openUrl(QUrl("http://www.x264.com/"));
+       if(QObject::sender() == ui->actionWebKomisar)         QDesktopServices::openUrl(QUrl("http://komisar.gin.by/"));
+       if(QObject::sender() == ui->actionWebVideoLAN)        QDesktopServices::openUrl(QUrl("http://download.videolan.org/pub/x264/binaries/"));
+       if(QObject::sender() == ui->actionWebJEEB)            QDesktopServices::openUrl(QUrl("http://x264.fushizen.eu/"));
+       if(QObject::sender() == ui->actionWebAvisynth32)      QDesktopServices::openUrl(QUrl("http://sourceforge.net/projects/avisynth2/files/AviSynth%202.5/"));
+       if(QObject::sender() == ui->actionWebAvisynth64)      QDesktopServices::openUrl(QUrl("http://code.google.com/p/avisynth64/downloads/list"));
+       if(QObject::sender() == ui->actionWebVapourSynth)     QDesktopServices::openUrl(QUrl("http://www.vapoursynth.com/"));
+       if(QObject::sender() == ui->actionWebVapourSynthDocs) QDesktopServices::openUrl(QUrl("http://www.vapoursynth.com/doc/"));
+       if(QObject::sender() == ui->actionWebWiki)            QDesktopServices::openUrl(QUrl("http://mewiki.project357.com/wiki/X264_Settings"));
+       if(QObject::sender() == ui->actionWebBluRay)          QDesktopServices::openUrl(QUrl("http://www.x264bluray.com/"));
+       if(QObject::sender() == ui->actionWebAvsWiki)         QDesktopServices::openUrl(QUrl("http://avisynth.nl/index.php/Main_Page#Usage"));
+       if(QObject::sender() == ui->actionWebSupport)         QDesktopServices::openUrl(QUrl("http://forum.doom9.org/showthread.php?t=144140"));
+       if(QObject::sender() == ui->actionWebSecret)          QDesktopServices::openUrl(QUrl("http://www.youtube.com/watch_popup?v=AXIeHY-OYNI"));
 }
 
 /*
@@ -581,7 +587,7 @@ void MainWindow::launchNextJob(void)
                return;
        }
 
-       int startIdx= jobsView->currentIndex().isValid() ? qBound(0, jobsView->currentIndex().row(), rows-1) : 0;
+       int startIdx= ui->jobsView->currentIndex().isValid() ? qBound(0, ui->jobsView->currentIndex().row(), rows-1) : 0;
 
        for(int i = 0; i < rows; i++)
        {
@@ -591,7 +597,7 @@ void MainWindow::launchNextJob(void)
                {
                        if(m_jobList->startJob(m_jobList->index(currentIdx, 0, QModelIndex())))
                        {
-                               jobsView->selectRow(currentIdx);
+                               ui->jobsView->selectRow(currentIdx);
                                return;
                        }
                }
@@ -910,7 +916,7 @@ void MainWindow::init(void)
  */
 void MainWindow::updateLabelPos(void)
 {
-       const QWidget *const viewPort = jobsView->viewport();
+       const QWidget *const viewPort = ui->jobsView->viewport();
        m_label->setGeometry(0, 0, viewPort->width(), viewPort->height());
 }
 
@@ -921,7 +927,7 @@ void MainWindow::copyLogToClipboard(bool checked)
 {
        qDebug("copyLogToClipboard");
        
-       if(LogFileModel *log = dynamic_cast<LogFileModel*>(logView->model()))
+       if(LogFileModel *log = dynamic_cast<LogFileModel*>(ui->logView->model()))
        {
                log->copyToClipboard();
                x264_beep(x264_beep_info);
@@ -1028,7 +1034,7 @@ void MainWindow::resizeEvent(QResizeEvent *e)
  */
 bool MainWindow::eventFilter(QObject *o, QEvent *e)
 {
-       if((o == labelBuildDate) && (e->type() == QEvent::MouseButtonPress))
+       if((o == ui->labelBuildDate) && (e->type() == QEvent::MouseButtonPress))
        {
                QTimer::singleShot(0, this, SLOT(showAbout()));
                return true;
@@ -1204,7 +1210,7 @@ bool MainWindow::appendJob(const QString &sourceFileName, const QString &outputF
        {
                if(runImmediately)
                {
-                       jobsView->selectRow(newIndex.row());
+                       ui->jobsView->selectRow(newIndex.row());
                        QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
                        m_jobList->startJob(newIndex);
                }
@@ -1263,21 +1269,21 @@ void MainWindow::updateButtons(JobStatus status)
 {
        qDebug("MainWindow::updateButtons(void)");
 
-       buttonStartJob->setEnabled(status == JobStatus_Enqueued);
-       buttonAbortJob->setEnabled(status == JobStatus_Indexing || status == JobStatus_Running || status == JobStatus_Running_Pass1 || status == JobStatus_Running_Pass2 || status == JobStatus_Paused);
-       buttonPauseJob->setEnabled(status == JobStatus_Indexing || status == JobStatus_Running || status == JobStatus_Paused || status == JobStatus_Running_Pass1 || status == JobStatus_Running_Pass2);
-       buttonPauseJob->setChecked(status == JobStatus_Paused || status == JobStatus_Pausing);
+       ui->buttonStartJob->setEnabled(status == JobStatus_Enqueued);
+       ui->buttonAbortJob->setEnabled(status == JobStatus_Indexing || status == JobStatus_Running || status == JobStatus_Running_Pass1 || status == JobStatus_Running_Pass2 || status == JobStatus_Paused);
+       ui->buttonPauseJob->setEnabled(status == JobStatus_Indexing || status == JobStatus_Running || status == JobStatus_Paused || status == JobStatus_Running_Pass1 || status == JobStatus_Running_Pass2);
+       ui->buttonPauseJob->setChecked(status == JobStatus_Paused || status == JobStatus_Pausing);
 
-       actionJob_Delete->setEnabled(status == JobStatus_Completed || status == JobStatus_Aborted || status == JobStatus_Failed || status == JobStatus_Enqueued);
-       actionJob_Restart->setEnabled(status == JobStatus_Completed || status == JobStatus_Aborted || status == JobStatus_Failed || status == JobStatus_Enqueued);
-       actionJob_Browse->setEnabled(status == JobStatus_Completed);
+       ui->actionJob_Delete->setEnabled(status == JobStatus_Completed || status == JobStatus_Aborted || status == JobStatus_Failed || status == JobStatus_Enqueued);
+       ui->actionJob_Restart->setEnabled(status == JobStatus_Completed || status == JobStatus_Aborted || status == JobStatus_Failed || status == JobStatus_Enqueued);
+       ui->actionJob_Browse->setEnabled(status == JobStatus_Completed);
 
-       actionJob_Start->setEnabled(buttonStartJob->isEnabled());
-       actionJob_Abort->setEnabled(buttonAbortJob->isEnabled());
-       actionJob_Pause->setEnabled(buttonPauseJob->isEnabled());
-       actionJob_Pause->setChecked(buttonPauseJob->isChecked());
+       ui->actionJob_Start->setEnabled(ui->buttonStartJob->isEnabled());
+       ui->actionJob_Abort->setEnabled(ui->buttonAbortJob->isEnabled());
+       ui->actionJob_Pause->setEnabled(ui->buttonPauseJob->isEnabled());
+       ui->actionJob_Pause->setChecked(ui->buttonPauseJob->isChecked());
 
-       editDetails->setEnabled(status != JobStatus_Paused);
+       ui->editDetails->setEnabled(status != JobStatus_Paused);
 }
 
 /*
@@ -1318,7 +1324,7 @@ void MainWindow::updateTaskbar(JobStatus status, const QIcon &icon)
        case JobStatus_Resuming:
                break;
        default:
-               WinSevenTaskbar::setTaskbarProgress(this, progressBar->value(), progressBar->maximum());
+               WinSevenTaskbar::setTaskbarProgress(this, ui->progressBar->value(), ui->progressBar->maximum());
                break;
        }
 
index a6ab1f5..e26f9dd 100644 (file)
 
 #pragma once
 
-#include "uic_win_main.h"
-
 #include "global.h"
-#include "model_status.h"
+#include <QMainWindow>
 
 class JobListModel;
 class OptionsModel;
@@ -33,8 +31,16 @@ class QLibrary;
 class PreferencesModel;
 class RecentlyUsed;
 class IPCThread;
+class QModelIndex;
+class QLabel;
+enum JobStatus;
+
+namespace Ui
+{
+       class MainWindow;
+}
 
-class MainWindow: public QMainWindow, private Ui::MainWindow
+class MainWindow: public QMainWindow
 {
        Q_OBJECT
 
@@ -52,6 +58,8 @@ protected:
        virtual bool winEvent(MSG *message, long *result);
 
 private:
+       Ui::MainWindow *const ui;
+
        bool m_firstShow;
        bool m_skipVersionTest;
        bool m_abortOnTimeout;
@@ -92,7 +100,7 @@ private slots:
        void handleDroppedFiles(void);
        void init(void);
        void instanceCreated(unsigned int pid);
-       void jobSelected(const QModelIndex & current, const QModelIndex & previous);
+       void jobSelected(const QModelIndex &current, const QModelIndex &previous);
        void jobChangedData(const  QModelIndex &top, const  QModelIndex &bottom);
        void jobLogExtended(const QModelIndex & parent, int start, int end);
        void launchNextJob();
index 1fbe89a..20d024e 100644 (file)
@@ -20,6 +20,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 #include "win_preferences.h"
+#include "uic_win_preferences.h"
 
 #include "global.h"
 #include "model_preferences.h"
 #include <QMouseEvent>
 #include <QMessageBox>
 
-#define UPDATE_CHECKBOX(CHKBOX, VALUE, BLOCK) do \
-{ \
-       if((BLOCK)) { (CHKBOX)->blockSignals(true); } \
-       if((CHKBOX)->isChecked() != (VALUE)) (CHKBOX)->click(); \
-       if((CHKBOX)->isChecked() != (VALUE)) (CHKBOX)->setChecked(VALUE); \
-       if((BLOCK)) { (CHKBOX)->blockSignals(false); } \
-} \
-while(0)
-
-#define UPDATE_COMBOBOX(COBOX, VALUE, DEFAULT) do \
-{ \
-       const int _cnt = (COBOX)->count(); \
-       const int _val = (VALUE); \
-       const int _def = (DEFAULT); \
-       for(int _i = 0; _i < _cnt; _i++) \
-       { \
-               const int _current = (COBOX)->itemData(_i).toInt(); \
-               if((_current == _val) || (_current == _def)) \
-               { \
-                       (COBOX)->setCurrentIndex(_i); \
-                       if((_current == _val)) break; \
-               } \
-       } \
-} \
-while(0)
+static inline void UPDATE_CHECKBOX(QCheckBox *const chkbox, const bool value, const bool block)
+{
+       if(block) { chkbox->blockSignals(true); }
+       if(chkbox->isChecked() != value) chkbox->click();
+       if(chkbox->isChecked() != value) chkbox->setChecked(value);
+       if(block) { chkbox->blockSignals(false); }
+}
+
+static inline void UPDATE_COMBOBOX(QComboBox *const cobox, const int value, const int defVal)
+{
+       const int count = cobox->count();
+       for(int i = 0; i < count; i++)
+       {
+               const int current = cobox->itemData(i).toInt();
+               if((current == value) || (current == defVal))
+               {
+                       cobox->setCurrentIndex(i);
+                       if((current == value)) break;
+               }
+       }
+}
 
 PreferencesDialog::PreferencesDialog(QWidget *parent, PreferencesModel *preferences, bool x64)
 :
        QDialog(parent),
-       m_x64(x64)
+       m_x64(x64),
+       ui(new Ui::PreferencesDialog())
 {
-       setupUi(this);
+       ui->setupUi(this);
        setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint));
        setFixedSize(minimumSize());
        x264_enable_close_button(this, false);
        
-       comboBoxPriority->setItemData(0, QVariant::fromValue( 1)); //Above Normal
-       comboBoxPriority->setItemData(1, QVariant::fromValue( 0)); //Normal
-       comboBoxPriority->setItemData(2, QVariant::fromValue(-1)); //Below Normal
-       comboBoxPriority->setItemData(3, QVariant::fromValue(-2)); //Idle
-
-       labelRunNextJob->installEventFilter(this);
-       labelUse10BitEncoding->installEventFilter(this);
-       labelUse64BitAvs2YUV->installEventFilter(this);
-       labelShutdownComputer->installEventFilter(this);
-       labelSaveLogFiles->installEventFilter(this);
-       labelSaveToSourceFolder->installEventFilter(this);
-       labelEnableSounds->installEventFilter(this);
-       labelDisableWarnings->installEventFilter(this);
-
-       connect(resetButton, SIGNAL(clicked()), this, SLOT(resetButtonPressed()));
-       connect(checkUse10BitEncoding, SIGNAL(toggled(bool)), this, SLOT(use10BitEncodingToggled(bool)));
-       connect(checkDisableWarnings, SIGNAL(toggled(bool)), this, SLOT(disableWarningsToggled(bool)));
+       ui->comboBoxPriority->setItemData(0, QVariant::fromValue( 1)); //Above Normal
+       ui->comboBoxPriority->setItemData(1, QVariant::fromValue( 0)); //Normal
+       ui->comboBoxPriority->setItemData(2, QVariant::fromValue(-1)); //Below Normal
+       ui->comboBoxPriority->setItemData(3, QVariant::fromValue(-2)); //Idle
+
+       ui->labelRunNextJob->installEventFilter(this);
+       ui->labelUse10BitEncoding->installEventFilter(this);
+       ui->labelUse64BitAvs2YUV->installEventFilter(this);
+       ui->labelShutdownComputer->installEventFilter(this);
+       ui->labelSaveLogFiles->installEventFilter(this);
+       ui->labelSaveToSourceFolder->installEventFilter(this);
+       ui->labelEnableSounds->installEventFilter(this);
+       ui->labelDisableWarnings->installEventFilter(this);
+
+       connect(ui->resetButton, SIGNAL(clicked()), this, SLOT(resetButtonPressed()));
+       connect(ui->checkUse10BitEncoding, SIGNAL(toggled(bool)), this, SLOT(use10BitEncodingToggled(bool)));
+       connect(ui->checkDisableWarnings, SIGNAL(toggled(bool)), this, SLOT(disableWarningsToggled(bool)));
        
        m_preferences = preferences;
 }
 
 PreferencesDialog::~PreferencesDialog(void)
 {
+       delete ui;
 }
 
 void PreferencesDialog::showEvent(QShowEvent *event)
 {
        if(event) QDialog::showEvent(event);
        
-       UPDATE_CHECKBOX(checkRunNextJob, m_preferences->autoRunNextJob(), false);
-       UPDATE_CHECKBOX(checkShutdownComputer, m_preferences->shutdownComputer(), false);
-       UPDATE_CHECKBOX(checkUse64BitAvs2YUV, m_preferences->useAvisyth64Bit(), false);
-       UPDATE_CHECKBOX(checkSaveLogFiles, m_preferences->saveLogFiles(), false);
-       UPDATE_CHECKBOX(checkSaveToSourceFolder, m_preferences->saveToSourcePath(), false);
-       UPDATE_CHECKBOX(checkEnableSounds, m_preferences->enableSounds(), false);
-       UPDATE_CHECKBOX(checkDisableWarnings, m_preferences->disableWarnings(), true);
-       UPDATE_CHECKBOX(checkUse10BitEncoding, m_preferences->use10BitEncoding(), true);
-
-       spinBoxJobCount->setValue(m_preferences->maxRunningJobCount());
+       UPDATE_CHECKBOX(ui->checkRunNextJob,         m_preferences->autoRunNextJob(),   false);
+       UPDATE_CHECKBOX(ui->checkShutdownComputer,   m_preferences->shutdownComputer(), false);
+       UPDATE_CHECKBOX(ui->checkUse64BitAvs2YUV,    m_preferences->useAvisyth64Bit(),  false);
+       UPDATE_CHECKBOX(ui->checkSaveLogFiles,       m_preferences->saveLogFiles(),     false);
+       UPDATE_CHECKBOX(ui->checkSaveToSourceFolder, m_preferences->saveToSourcePath(), false);
+       UPDATE_CHECKBOX(ui->checkEnableSounds,       m_preferences->enableSounds(),     false);
+       UPDATE_CHECKBOX(ui->checkDisableWarnings,    m_preferences->disableWarnings(),  true);
+       UPDATE_CHECKBOX(ui->checkUse10BitEncoding,   m_preferences->use10BitEncoding(), true);
+
+       ui->spinBoxJobCount->setValue(m_preferences->maxRunningJobCount());
        
-       UPDATE_COMBOBOX(comboBoxPriority, qBound(-2, m_preferences->processPriority(), 1), 0);
+       UPDATE_COMBOBOX(ui->comboBoxPriority, qBound(-2, m_preferences->processPriority(), 1), 0);
        
-       checkUse64BitAvs2YUV->setEnabled(m_x64);
-       labelUse64BitAvs2YUV->setEnabled(m_x64);
+       ui->checkUse64BitAvs2YUV->setEnabled(m_x64);
+       ui->labelUse64BitAvs2YUV->setEnabled(m_x64);
 }
 
 bool PreferencesDialog::eventFilter(QObject *o, QEvent *e)
 {
-       emulateMouseEvent(o, e, labelRunNextJob, checkRunNextJob);
-       emulateMouseEvent(o, e, labelShutdownComputer, checkShutdownComputer);
-       emulateMouseEvent(o, e, labelUse10BitEncoding, checkUse10BitEncoding);
-       emulateMouseEvent(o, e, labelUse64BitAvs2YUV, checkUse64BitAvs2YUV);
-       emulateMouseEvent(o, e, labelSaveLogFiles, checkSaveLogFiles);
-       emulateMouseEvent(o, e, labelSaveToSourceFolder, checkSaveToSourceFolder);
-       emulateMouseEvent(o, e, labelEnableSounds, checkEnableSounds);
-       emulateMouseEvent(o, e, labelDisableWarnings, checkDisableWarnings);
+       emulateMouseEvent(o, e, ui->labelRunNextJob,         ui->checkRunNextJob);
+       emulateMouseEvent(o, e, ui->labelShutdownComputer,   ui->checkShutdownComputer);
+       emulateMouseEvent(o, e, ui->labelUse10BitEncoding,   ui->checkUse10BitEncoding);
+       emulateMouseEvent(o, e, ui->labelUse64BitAvs2YUV,    ui->checkUse64BitAvs2YUV);
+       emulateMouseEvent(o, e, ui->labelSaveLogFiles,       ui->checkSaveLogFiles);
+       emulateMouseEvent(o, e, ui->labelSaveToSourceFolder, ui->checkSaveToSourceFolder);
+       emulateMouseEvent(o, e, ui->labelEnableSounds,       ui->checkEnableSounds);
+       emulateMouseEvent(o, e, ui->labelDisableWarnings,    ui->checkDisableWarnings);
        return false;
 }
 
@@ -146,16 +145,16 @@ void PreferencesDialog::emulateMouseEvent(QObject *object, QEvent *event, QWidge
 
 void PreferencesDialog::done(int n)
 {
-       m_preferences->setAutoRunNextJob(checkRunNextJob->isChecked());
-       m_preferences->setShutdownComputer(checkShutdownComputer->isChecked());
-       m_preferences->setUse10BitEncoding(checkUse10BitEncoding->isChecked());
-       m_preferences->setUseAvisyth64Bit(checkUse64BitAvs2YUV->isChecked());
-       m_preferences->setSaveLogFiles(checkSaveLogFiles->isChecked());
-       m_preferences->setSaveToSourcePath(checkSaveToSourceFolder->isChecked());
-       m_preferences->setMaxRunningJobCount(spinBoxJobCount->value());
-       m_preferences->setProcessPriority(comboBoxPriority->itemData(comboBoxPriority->currentIndex()).toInt());
-       m_preferences->setEnableSounds(checkEnableSounds->isChecked());
-       m_preferences->setDisableWarnings(checkDisableWarnings->isChecked());
+       m_preferences->setAutoRunNextJob(ui->checkRunNextJob->isChecked());
+       m_preferences->setShutdownComputer(ui->checkShutdownComputer->isChecked());
+       m_preferences->setUse10BitEncoding(ui->checkUse10BitEncoding->isChecked());
+       m_preferences->setUseAvisyth64Bit(ui->checkUse64BitAvs2YUV->isChecked());
+       m_preferences->setSaveLogFiles(ui->checkSaveLogFiles->isChecked());
+       m_preferences->setSaveToSourcePath(ui->checkSaveToSourceFolder->isChecked());
+       m_preferences->setMaxRunningJobCount(ui->spinBoxJobCount->value());
+       m_preferences->setProcessPriority(ui->comboBoxPriority->itemData(ui->comboBoxPriority->currentIndex()).toInt());
+       m_preferences->setEnableSounds(ui->checkEnableSounds->isChecked());
+       m_preferences->setDisableWarnings(ui->checkDisableWarnings->isChecked());
 
        PreferencesModel::savePreferences(m_preferences);
        QDialog::done(n);
@@ -178,7 +177,7 @@ void PreferencesDialog::use10BitEncodingToggled(bool checked)
                
                if(QMessageBox::warning(this, tr("10-Bit Encoding"), text.replace("-", "&minus;"), tr("Continue"), tr("Revert"), QString(), 1) != 0)
                {
-                       UPDATE_CHECKBOX(checkUse10BitEncoding, false, true);
+                       UPDATE_CHECKBOX(ui->checkUse10BitEncoding, false, true);
                }
        }
 }
@@ -193,7 +192,7 @@ void PreferencesDialog::disableWarningsToggled(bool checked)
 
                if(QMessageBox::warning(this, tr("Avisynth/VapourSynth Warnings"), text.replace("-", "&minus;"), tr("Continue"), tr("Revert"), QString(), 1) != 0)
                {
-                       UPDATE_CHECKBOX(checkDisableWarnings, false, true);
+                       UPDATE_CHECKBOX(ui->checkDisableWarnings, false, true);
                }
        }
 }
\ No newline at end of file
index d8792d3..17dcd68 100644 (file)
 
 #pragma once
 
-#include "uic_win_preferences.h"
+#include <QDialog>
 
 class PreferencesModel;
 
-class PreferencesDialog : public QDialog, private Ui::PreferencesDialog
+namespace Ui
+{
+       class PreferencesDialog;
+}
+
+class PreferencesDialog : public QDialog
 {
        Q_OBJECT
 
@@ -43,6 +48,7 @@ protected:
        void emulateMouseEvent(QObject *object, QEvent *event, QWidget *source, QWidget *target);
 
 private:
+       Ui::PreferencesDialog *const ui;
        PreferencesModel *m_preferences;
 
 private slots: