Added an "advanced" option to apply the original file's "creation" and "last modified" date/time to the output file.

This commit is contained in:
LoRd_MuldeR 2015-11-07 21:39:33 +01:00
parent 2645f40ea2
commit 83ef96701a
37 changed files with 4351 additions and 4230 deletions

View File

@ -84,6 +84,7 @@
<h2 id="lamexp-v4.13-xxxx-xx-xx" class="unnumbered">LameXP v4.13 [xxxx-xx-xx]</h2>
<ul>
<li>Upgraded build environment to Microsoft Visual Studio 2015<br /></li>
<li>Apply the original file's &quot;creation&quot; and &quot;last modified&quot; date/time to the output file (optional)<br /></li>
<li>Updated Vorbis encoder to OggEnc v2.88 (2015-09-10), using libvorbis v1.3.5 and aoTuV b6.03_2015<br /></li>
<li>Updated MediaInfo to v0.7.78 (2015-10-02), compiled with ICL 15.0 and MSVC 12.0<br /></li>
<li>Fixed resampling bug with Vorbis encoder, regression in OggEnc v2.87<br /></li>

View File

@ -5,6 +5,7 @@
## LameXP v4.13 [xxxx-xx-xx] ## {-}
* Upgraded build environment to Microsoft Visual Studio 2015
* Apply the original file's "creation" and "last modified" date/time to the output file (optional)
* Updated Vorbis encoder to OggEnc v2.88 (2015-09-10), using libvorbis v1.3.5 and aoTuV b6.03_2015
* Updated MediaInfo to v0.7.78 (2015-10-02), compiled with ICL 15.0 and MSVC 12.0
* Fixed resampling bug with Vorbis encoder, regression in OggEnc v2.87

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,7 @@
<context>
<name>MainWindow</name>
<message numerus="yes">
<location filename="../../src/Dialog_MainWindow.cpp" line="830"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="832"/>
<source>%n file(s) have been rejected, because read access was not granted!</source>
<translation>
<numerusform>%n file have been rejected, because read access was not granted!</numerusform>
@ -39,7 +39,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_MainWindow.cpp" line="834"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="836"/>
<source>%n file(s) have been rejected, because they are dummy CDDA files!</source>
<translation>
<numerusform>%n file have been rejected, because they are dummy CDDA files!</numerusform>
@ -47,7 +47,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_MainWindow.cpp" line="838"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="840"/>
<source>%n file(s) have been rejected, because they appear to be Cue Sheet images!</source>
<translation>
<numerusform>%n file have been rejected, because they appear to be Cue Sheet images!</numerusform>
@ -55,7 +55,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_MainWindow.cpp" line="842"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="844"/>
<source>%n file(s) have been rejected, because the file format could not be recognized!</source>
<translation>
<numerusform>%n file have been rejected, because the file format could not be recognized!</numerusform>
@ -63,7 +63,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_MainWindow.cpp" line="4228"/>
<location filename="../../src/Dialog_MainWindow.cpp" line="4230"/>
<source>%n Instance(s)</source>
<translation>
<numerusform>%n Instance</numerusform>
@ -74,7 +74,7 @@
<context>
<name>ProcessingDialog</name>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="663"/>
<location filename="../../src/Dialog_Processing.cpp" line="667"/>
<source>Encoding: %n file(s) of %1 completed so far, please wait...</source>
<translation>
<numerusform>Encoding: %n file of %1 completed so far, please wait...</numerusform>
@ -82,7 +82,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="695"/>
<location filename="../../src/Dialog_Processing.cpp" line="699"/>
<source>Process was aborted by the user after %n file(s)!</source>
<translation>
<numerusform>Process was aborted by the user after %n file!</numerusform>
@ -90,7 +90,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="716"/>
<location filename="../../src/Dialog_Processing.cpp" line="720"/>
<source>Error: %1 of %n file(s) failed (%2). Double-click failed items for detailed information!</source>
<translation>
<numerusform>Error: %1 of %n file failed (%2). Double-click failed items for detailed information!</numerusform>
@ -98,7 +98,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="716"/>
<location filename="../../src/Dialog_Processing.cpp" line="720"/>
<source>%n file(s) skipped</source>
<translation>
<numerusform>%n file skipped</numerusform>
@ -106,7 +106,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="720"/>
<location filename="../../src/Dialog_Processing.cpp" line="724"/>
<source>Error: %1 of %n file(s) failed. Double-click failed items for detailed information!</source>
<translation>
<numerusform>Error: %1 of %n file failed. Double-click failed items for detailed information!</numerusform>
@ -114,7 +114,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="734"/>
<location filename="../../src/Dialog_Processing.cpp" line="738"/>
<source>All files completed successfully. Skipped %n file(s).</source>
<translation>
<numerusform>All files completed successfully. Skipped %n file.</numerusform>
@ -122,7 +122,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="1153"/>
<location filename="../../src/Dialog_Processing.cpp" line="1157"/>
<source>%n hour(s)</source>
<translation>
<numerusform>%n hour</numerusform>
@ -130,8 +130,8 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="1154"/>
<location filename="../../src/Dialog_Processing.cpp" line="1158"/>
<location filename="../../src/Dialog_Processing.cpp" line="1162"/>
<source>%n minute(s)</source>
<translation>
<numerusform>%n minute</numerusform>
@ -139,8 +139,8 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="1159"/>
<location filename="../../src/Dialog_Processing.cpp" line="1163"/>
<location filename="../../src/Dialog_Processing.cpp" line="1167"/>
<source>%n second(s)</source>
<translation>
<numerusform>%n second</numerusform>
@ -148,7 +148,7 @@
</translation>
</message>
<message numerus="yes">
<location filename="../../src/Dialog_Processing.cpp" line="1164"/>
<location filename="../../src/Dialog_Processing.cpp" line="1168"/>
<source>%n millisecond(s)</source>
<translation>
<numerusform>%n millisecond</numerusform>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1509,8 +1509,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>602</width>
<height>1840</height>
<width>613</width>
<height>1881</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_22">
@ -4326,7 +4326,7 @@
</font>
</property>
<property name="title">
<string> Overwrite Mode </string>
<string> File Operations </string>
</property>
<layout class="QGridLayout" name="gridLayout_42">
<item row="0" column="0">
@ -4404,7 +4404,7 @@
</property>
</spacer>
</item>
<item row="2" column="1" colspan="7">
<item row="4" column="1" colspan="7">
<spacer name="verticalSpacer_37">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -4436,7 +4436,7 @@
</property>
</spacer>
</item>
<item row="0" column="9" rowspan="3">
<item row="0" column="9" rowspan="5">
<spacer name="horizontalSpacer_62">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -4452,7 +4452,7 @@
</property>
</spacer>
</item>
<item row="0" column="0" rowspan="3">
<item row="0" column="0" rowspan="5">
<spacer name="horizontalSpacer_61">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -4468,7 +4468,7 @@
</property>
</spacer>
</item>
<item row="1" column="8">
<item row="1" column="8" rowspan="3">
<spacer name="horizontalSpacer_66">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -4481,6 +4481,29 @@
</property>
</spacer>
</item>
<item row="3" column="1" colspan="7">
<widget class="QCheckBox" name="checkBoxKeepOriginalDateTime">
<property name="text">
<string>Apply the &quot;creation&quot; and &quot;last modified&quot; date/time of the original file to the converted file</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="7">
<spacer name="verticalSpacer_43">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>3</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -33,9 +33,9 @@
#define VER_LAMEXP_MAJOR 4
#define VER_LAMEXP_MINOR_HI 1
#define VER_LAMEXP_MINOR_LO 3
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 2
#define VER_LAMEXP_BUILD 1828
#define VER_LAMEXP_TYPE RC
#define VER_LAMEXP_PATCH 1
#define VER_LAMEXP_BUILD 1830
#define VER_LAMEXP_CONFG 1818
///////////////////////////////////////////////////////////////////////////////

View File

@ -504,6 +504,7 @@ MainWindow::MainWindow(MUtils::IPCChannel *const ipcChannel, FileListModel *cons
SET_CHECKBOX_STATE(ui->checkBoxRename_RegExp, m_settings->renameFiles_regExpEnabled());
SET_CHECKBOX_STATE(ui->checkBoxForceStereoDownmix, m_settings->forceStereoDownmix());
SET_CHECKBOX_STATE(ui->checkBoxOpusDisableResample, m_settings->opusDisableResample());
SET_CHECKBOX_STATE(ui->checkBoxKeepOriginalDateTime, m_settings->keepOriginalDataTime());
ui->checkBoxNeroAAC2PassMode->setEnabled(aacEncoder == SettingsModel::AAC_ENCODER_NERO);
@ -593,6 +594,7 @@ MainWindow::MainWindow(MUtils::IPCChannel *const ipcChannel, FileListModel *cons
connect(ui->buttonRename_FileEx, SIGNAL(clicked(bool)), this, SLOT(renameButtonClicked(bool)));
connect(ui->buttonFileExts_Add, SIGNAL(clicked()), this, SLOT(fileExtAddButtonClicked()));
connect(ui->buttonFileExts_Remove, SIGNAL(clicked()), this, SLOT(fileExtRemoveButtonClicked()));
connect(ui->checkBoxKeepOriginalDateTime, SIGNAL(clicked(bool)), this, SLOT(keepOriginalDateTimeChanged(bool)));
connect(m_overwriteButtonGroup.data(), SIGNAL(buttonClicked(int)), this, SLOT(overwriteModeChanged(int)));
connect(m_evenFilterCustumParamsHelp.data(), SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(customParamsHelpRequested(QWidget*, QEvent*)));
connect(fileExtModel, SIGNAL(modelReset()), this, SLOT(fileExtModelChanged()));
@ -4398,6 +4400,10 @@ void MainWindow::showCustomParamsHelpScreen(const QString &toolName, const QStri
dialog->exec(output);
}
/*
* File overwrite mode has changed
*/
void MainWindow::overwriteModeChanged(int id)
{
if((id == SettingsModel::Overwrite_Replaces) && (m_settings->overwriteMode() != SettingsModel::Overwrite_Replaces))
@ -4413,6 +4419,14 @@ void MainWindow::overwriteModeChanged(int id)
m_settings->overwriteMode(id);
}
/*
* Keep original date/time opertion changed
*/
void MainWindow::keepOriginalDateTimeChanged(bool checked)
{
m_settings->keepOriginalDataTime(checked);
}
/*
* Reset all advanced options to their defaults
*/
@ -4448,7 +4462,8 @@ void MainWindow::resetAdvancedOptionsButtonClicked(void)
SET_CHECKBOX_STATE(ui->checkBoxRename_RegExp, m_settings->renameFiles_regExpEnabledDefault());
SET_CHECKBOX_STATE(ui->checkBoxForceStereoDownmix, m_settings->forceStereoDownmixDefault());
SET_CHECKBOX_STATE(ui->checkBoxOpusDisableResample, m_settings->opusDisableResampleDefault());
SET_CHECKBOX_STATE(ui->checkBoxKeepOriginalDateTime, m_settings->keepOriginalDataTimeDefault());
ui->lineEditCustomParamLAME ->setText(m_settings->customParametersLAMEDefault());
ui->lineEditCustomParamOggEnc ->setText(m_settings->customParametersOggEncDefault());
ui->lineEditCustomParamNeroAAC ->setText(m_settings->customParametersAacEncDefault());

View File

@ -125,6 +125,7 @@ private slots:
void importCsvContextActionTriggered(void);
void initOutputFolderModel(void);
void initOutputFolderModel_doAsync(void);
void keepOriginalDateTimeChanged(bool checked);
void languageActionActivated(QAction *action);
void languageFromFileActionActivated(bool checked);
void makeFolderButtonClicked(void);

View File

@ -620,6 +620,10 @@ void ProcessingDialog::startNextJob(void)
{
thread->setOverwriteMode((m_settings->overwriteMode() == SettingsModel::Overwrite_SkipFile), (m_settings->overwriteMode() == SettingsModel::Overwrite_Replaces));
}
if (m_settings->keepOriginalDataTime())
{
thread->setKeepDateTime(m_settings->keepOriginalDataTime());
}
m_allJobs.append(thread->getId());

View File

@ -253,6 +253,7 @@ LAMEXP_MAKE_ID(favoriteOutputFolders, "OutputDirectory/Favorites");
LAMEXP_MAKE_ID(forceStereoDownmix, "AdvancedOptions/StereoDownmix/Force");
LAMEXP_MAKE_ID(hibernateComputer, "AdvancedOptions/HibernateComputerOnShutdown");
LAMEXP_MAKE_ID(interfaceStyle, "InterfaceStyle");
LAMEXP_MAKE_ID(keepOriginalDataTime, "AdvancedOptions/FileOperations/KeepOriginalDataTime");
LAMEXP_MAKE_ID(lameAlgoQuality, "AdvancedOptions/LAME/AlgorithmQuality");
LAMEXP_MAKE_ID(lameChannelMode, "AdvancedOptions/LAME/ChannelMode");
LAMEXP_MAKE_ID(licenseAccepted, "LicenseAccepted");
@ -272,7 +273,7 @@ LAMEXP_MAKE_ID(opusFramesize, "AdvancedOptions/Opus/FrameSize");
LAMEXP_MAKE_ID(opusOptimizeFor, "AdvancedOptions/Opus/OptimizeForSignalType");
LAMEXP_MAKE_ID(outputDir, "OutputDirectory/SelectedPath");
LAMEXP_MAKE_ID(outputToSourceDir, "OutputDirectory/OutputToSourceFolder");
LAMEXP_MAKE_ID(overwriteMode, "AdvancedOptions/OverwriteMode");
LAMEXP_MAKE_ID(overwriteMode, "AdvancedOptions/FileOperations/OverwriteMode");
LAMEXP_MAKE_ID(prependRelativeSourcePath, "OutputDirectory/PrependRelativeSourcePath");
LAMEXP_MAKE_ID(renameFiles_regExpEnabled, "AdvancedOptions/RenameOutputFiles/RegExp/Enabled");
LAMEXP_MAKE_ID(renameFiles_regExpSearch, "AdvancedOptions/RenameOutputFiles/RegExp/SearchPattern");
@ -652,6 +653,7 @@ LAMEXP_MAKE_OPTION_S(favoriteOutputFolders, QString())
LAMEXP_MAKE_OPTION_B(forceStereoDownmix, false)
LAMEXP_MAKE_OPTION_B(hibernateComputer, false)
LAMEXP_MAKE_OPTION_I(interfaceStyle, 0)
LAMEXP_MAKE_OPTION_B(keepOriginalDataTime, false)
LAMEXP_MAKE_OPTION_I(lameAlgoQuality, 2)
LAMEXP_MAKE_OPTION_I(lameChannelMode, 0)
LAMEXP_MAKE_OPTION_I(licenseAccepted, 0)

View File

@ -171,6 +171,7 @@ public:
LAMEXP_MAKE_OPTION_B(forceStereoDownmix)
LAMEXP_MAKE_OPTION_B(hibernateComputer)
LAMEXP_MAKE_OPTION_I(interfaceStyle)
LAMEXP_MAKE_OPTION_B(keepOriginalDataTime)
LAMEXP_MAKE_OPTION_I(lameAlgoQuality)
LAMEXP_MAKE_OPTION_I(lameChannelMode)
LAMEXP_MAKE_OPTION_I(licenseAccepted)

View File

@ -72,6 +72,7 @@ ProcessThread::ProcessThread(const AudioFileModel &audioFile, const QString &out
m_prependRelativeSourcePath(prependRelativeSourcePath),
m_renamePattern("<BaseName>"),
m_overwriteMode(OverwriteMode_KeepBoth),
m_keepDateTime(false),
m_initialized(-1),
m_aborted(false),
m_propDetect(new WaveProperties())
@ -340,7 +341,7 @@ void ProcessThread::processFile()
// Finalize
//-----------------------------------------------------
if (bSuccess && (!m_aborted))
if (bSuccess && (!m_aborted) && m_keepDateTime)
{
updateFileTime(m_audioFile.filePath(), m_outFileName);
}
@ -750,6 +751,11 @@ void ProcessThread::setOverwriteMode(const bool &bSkipExistingFile, const bool &
}
}
void ProcessThread::setKeepDateTime(const bool &keepDateTime)
{
m_keepDateTime = keepDateTime;
}
////////////////////////////////////////////////////////////
// EVENTS
////////////////////////////////////////////////////////////

View File

@ -50,6 +50,7 @@ public:
void setRenameRegExp(const QString &search, const QString &replace);
void setRenameFileExt(const QString &fileExtension);
void setOverwriteMode(const bool &bSkipExistingFile, const bool &bReplacesExisting = false);
void setKeepDateTime(const bool &keepDateTime);
void addFilter(AbstractFilter *filter);
public slots:
@ -112,6 +113,7 @@ private:
QString m_renameRegExp_Replace;
QString m_renameFileExt;
int m_overwriteMode;
bool m_keepDateTime;
WaveProperties *m_propDetect;
QString m_outFileName;
};