///////////////////////////////////////////////////////////////////////////////
// Simple x264 Launcher
-// Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2021 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#pragma once
-#include "uic_win_addJob.h"
-
-#include <QDir>
+#include <QDialog>
class OptionsModel;
+class RecentlyUsed;
+class SysinfoModel;
+class PreferencesModel;
+class AbstractEncoderInfo;
+class QComboBox;
+
+namespace Ui
+{
+ class AddJobDialog;
+}
-class AddJobDialog : public QDialog, private Ui::AddJobDialog
+class AddJobDialog : public QDialog
{
Q_OBJECT
public:
- AddJobDialog(QWidget *parent, OptionsModel *options, bool x64supported);
+ AddJobDialog(QWidget *parent, OptionsModel *const options, RecentlyUsed *const recentlyUsed, const SysinfoModel *const sysinfo, const PreferencesModel *const preferences);
~AddJobDialog(void);
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 editCustomParams->text().simplified(); }
- bool runImmediately(void) { return checkBoxRun->isChecked(); }
- void setRunImmediately(bool run) { checkBoxRun->setChecked(run); }
- void setSourceFile(const QString &path) { editSource->setText(QDir::toNativeSeparators(path)); }
-protected:
- OptionsModel *m_options;
- OptionsModel *m_defaults;
+ 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);
+ static QString getFilterExt(const int filterIndex);
+ static QString AddJobDialog::getFilterStr(const int filterIndex);
+ static QString getFilterLst(void);
+ static QString getInputFilterLst(void);
- const bool m_x64supported;
+protected:
+ OptionsModel *const m_options;
+ RecentlyUsed *const m_recentlyUsed;
- QString initialDir_src;
- QString initialDir_out;
+ const SysinfoModel *const m_sysinfo;
+ const PreferencesModel *const m_preferences;
+ const OptionsModel *m_defaults;
virtual void showEvent(QShowEvent *event);
virtual bool eventFilter(QObject *o, QEvent *e);
+ virtual void dragEnterEvent(QDragEnterEvent *event);
+ virtual void dropEvent(QDropEvent *event);
private slots:
+ void encoderIndexChanged(int index);
+ void variantIndexChanged(int index);
void modeIndexChanged(int index);
void browseButtonClicked(void);
void configurationChanged(void);
void templateSelected(void);
void saveTemplateButtonClicked(void);
void deleteTemplateButtonClicked(void);
+ void editorActionTriggered(void);
+ void copyActionTriggered(void);
+ void pasteActionTriggered(void);
virtual void accept(void);
private:
+ Ui::AddJobDialog *const ui;
+ bool m_monitorConfigChanges;
+ QString m_lastTemplateName;
+
void loadTemplateList(void);
- void restoreOptions(OptionsModel *options);
+ void restoreOptions(const OptionsModel *options);
void saveOptions(OptionsModel *options);
- void updateComboBox(QComboBox *cbox, const QString &text);
- QString makeFileFilter(void);
- void generateOutputFileName(const QString &filePath);
+ void updateComboBox(QComboBox *const cbox, const QString &text);
+ void updateComboBox(QComboBox *const cbox, const int &data);
+ void updateComboBox(QComboBox *const cbox, const quint32 &data);
+
+ QString currentSourcePath(const bool bWithName = false);
+ QString currentOutputPath(const bool bWithName = false);
+ int currentOutputIndx(void);
};