"Overwrite Mode" should actually be working now.

This commit is contained in:
LoRd_MuldeR 2012-11-08 21:19:45 +01:00
parent 4d3bce8fc3
commit 977f4d4213
22 changed files with 509 additions and 167 deletions

View File

@ -17,6 +17,10 @@ a:visited { color: #0000EE; }
<body> <body>
<h3>LameXP - Version History</h3><br> <h3>LameXP - Version History</h3><br>
<a name="4.07"></a>Changes between v4.06 and v4.07 [<font color="darkred">unreleased</font>]:<br><ul>
<li>Added option to select the "overwrite mode" to advanced options
</ul><br>
<a name="4.06"></a>Changes between v4.05 and v4.06 [2012-11-04]:<br><ul> <a name="4.06"></a>Changes between v4.05 and v4.06 [2012-11-04]:<br><ul>
<li>Updated Opus encoder/decoder libraries to v1.0.1 and Opus-Tools to v0.1.5 (2012-09-22) <li>Updated Opus encoder/decoder libraries to v1.0.1 and Opus-Tools to v0.1.5 (2012-09-22)
<li>Updated mpg123 decoder to v1.14.4+ (2012-09-24), compiled with GCC 4.7.1 <li>Updated mpg123 decoder to v1.14.4+ (2012-09-24), compiled with GCC 4.7.1

View File

@ -2877,121 +2877,146 @@
<context> <context>
<name>ProcessThread</name> <name>ProcessThread</name>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="125"/> <location filename="../../src/Thread_Process.cpp" line="127"/>
<source>Starting...</source> <source>Starting...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="133"/> <location filename="../../src/Thread_Process.cpp" line="140"/>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="145"/>
<source>Not found!</source> <source>Not found!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="166"/> <location filename="../../src/Thread_Process.cpp" line="178"/>
<source>WARNING: Decoded file size exceeds 4 GB, problems might occur! <source>WARNING: Decoded file size exceeds 4 GB, problems might occur!
</source> </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>The format of this file is NOT supported:</source> <source>The format of this file is NOT supported:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Container Format:</source> <source>Container Format:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Audio Format:</source> <source>Audio Format:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="175"/> <location filename="../../src/Thread_Process.cpp" line="187"/>
<source>Unsupported!</source> <source>Unsupported!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Aborted!</source> <source>Aborted!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Done.</source> <source>Done.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Failed!</source> <source>Failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="270"/> <location filename="../../src/Thread_Process.cpp" line="282"/>
<source>Encoding</source> <source>Encoding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="273"/> <location filename="../../src/Thread_Process.cpp" line="285"/>
<source>Analyzing</source> <source>Analyzing</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="276"/> <location filename="../../src/Thread_Process.cpp" line="288"/>
<source>Filtering</source> <source>Filtering</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="279"/> <location filename="../../src/Thread_Process.cpp" line="291"/>
<source>Decoding</source> <source>Decoding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="302"/> <location filename="../../src/Thread_Process.cpp" line="315"/>
<source>The source audio file could not be found:</source> <source>The source audio file could not be found:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="309"/> <location filename="../../src/Thread_Process.cpp" line="323"/>
<source>The source audio file could not be opened for reading:</source> <source>The source audio file could not be opened for reading:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="335"/> <location filename="../../src/Thread_Process.cpp" line="351"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source> <source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="343"/> <location filename="../../src/Thread_Process.cpp" line="360"/>
<source>The target output directory is NOT writable:</source> <source>The target output directory is NOT writable:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="353"/> <location filename="../../src/Thread_Process.cpp" line="371"/>
<source>Unknown File Name</source> <source>Unknown File Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="355"/> <location filename="../../src/Thread_Process.cpp" line="373"/>
<source>Unknown Title</source> <source>Unknown Title</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="356"/> <location filename="../../src/Thread_Process.cpp" line="374"/>
<source>Unknown Artist</source> <source>Unknown Artist</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="357"/> <location filename="../../src/Thread_Process.cpp" line="375"/>
<source>Unknown Album</source> <source>Unknown Album</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="359"/> <location filename="../../src/Thread_Process.cpp" line="377"/>
<source>Unknown Comment</source> <source>Unknown Comment</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../../src/Thread_Process.cpp" line="386"/>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="387"/>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="394"/>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="404"/>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>
@ -3069,111 +3094,111 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="450"/> <location filename="../../src/Dialog_Processing.cpp" line="451"/>
<source>Aborted! Waiting for running jobs to terminate...</source> <source>Aborted! Waiting for running jobs to terminate...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="465"/> <location filename="../../src/Dialog_Processing.cpp" line="466"/>
<source>Encoding: %1 files of %2 completed so far, please wait...</source> <source>Encoding: %1 files of %2 completed so far, please wait...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="493"/> <location filename="../../src/Dialog_Processing.cpp" line="494"/>
<source>Creating the playlist file, please wait...</source> <source>Creating the playlist file, please wait...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/> <location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted by the user after %1 file(s)!</source> <source>Process was aborted by the user after %1 file(s)!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/> <location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted prematurely by the user!</source> <source>Process was aborted prematurely by the user!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/> <location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>LameXP - Aborted</source> <source>LameXP - Aborted</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/> <location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>Process was aborted by the user.</source> <source>Process was aborted by the user.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="520"/> <location filename="../../src/Dialog_Processing.cpp" line="521"/>
<source>Process finished after %1.</source> <source>Process finished after %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="529"/> <location filename="../../src/Dialog_Processing.cpp" line="530"/>
<source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source> <source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/> <location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>LameXP - Error</source> <source>LameXP - Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/> <location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>At least one file has failed!</source> <source>At least one file has failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="540"/>
<location filename="../../src/Dialog_Processing.cpp" line="541"/> <location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>All files completed successfully.</source> <source>All files completed successfully.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="541"/> <location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>LameXP - Done</source> <source>LameXP - Done</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/> <location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>Playlist creation failed</source> <source>Playlist creation failed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/> <location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>The playlist file could not be created:</source> <source>The playlist file could not be created:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1037"/> <location filename="../../src/Dialog_Processing.cpp" line="1048"/>
<source>Warning: Computer will shutdown in %1 seconds...</source> <source>Warning: Computer will shutdown in %1 seconds...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1041"/> <location filename="../../src/Dialog_Processing.cpp" line="1052"/>
<location filename="../../src/Dialog_Processing.cpp" line="1042"/> <location filename="../../src/Dialog_Processing.cpp" line="1053"/>
<source>Cancel Shutdown</source> <source>Cancel Shutdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1097"/> <location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<source>hour(s)</source> <source>hour(s)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1098"/> <location filename="../../src/Dialog_Processing.cpp" line="1109"/>
<location filename="../../src/Dialog_Processing.cpp" line="1102"/> <location filename="../../src/Dialog_Processing.cpp" line="1113"/>
<source>minute(s)</source> <source>minute(s)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1103"/> <location filename="../../src/Dialog_Processing.cpp" line="1114"/>
<location filename="../../src/Dialog_Processing.cpp" line="1107"/> <location filename="../../src/Dialog_Processing.cpp" line="1118"/>
<source>second(s)</source> <source>second(s)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/> <location filename="../../src/Dialog_Processing.cpp" line="1119"/>
<source>millisecond(s)</source> <source>millisecond(s)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -3181,12 +3206,12 @@
<context> <context>
<name>ProgressModel</name> <name>ProgressModel</name>
<message> <message>
<location filename="../../src/Model_Progress.cpp" line="118"/> <location filename="../../src/Model_Progress.cpp" line="122"/>
<source>Job</source> <source>Job</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Model_Progress.cpp" line="121"/> <location filename="../../src/Model_Progress.cpp" line="125"/>
<source>Status</source> <source>Status</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -2315,6 +2315,26 @@
</source> </source>
<translation>WARNUNG: Dekodierte Dateigröße übersteigt 4 GB, Probleme sind vorprogrammiert!</translation> <translation>WARNUNG: Dekodierte Dateigröße übersteigt 4 GB, Probleme sind vorprogrammiert!</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation>Übersprungen.</translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation>Zieldatei existiert bereits, die Datei wird übersprungen:</translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation>Wenn existierende Dateien nicht übersprungen werden sollen, ändern Sie bitte den Überschreiben-Modus!</translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation>Zieldatei existiert bereits, die Datei wird gelöscht und überschrieben:</translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation>Die existierende Datei konnte nicht gelöscht werden, ein anderer Dateiname wird gewählt!</translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2314,6 +2314,26 @@
</source> </source>
<translation>ADVERTENCIA: ¡El tamaño del archivo decodificado supera los 4 GB, pueden producirse problemas!</translation> <translation>ADVERTENCIA: ¡El tamaño del archivo decodificado supera los 4 GB, pueden producirse problemas!</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2324,6 +2324,26 @@ Ouvrir le dossier récursivement...</translation>
</source> </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2315,6 +2315,26 @@
</source> </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2314,6 +2314,26 @@
</source> </source>
<translation type="unfinished">알림: 디코드 4GB , !</translation> <translation type="unfinished">알림: 디코드 4GB , !</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2878,121 +2878,146 @@
<context> <context>
<name>ProcessThread</name> <name>ProcessThread</name>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="125"/> <location filename="../../src/Thread_Process.cpp" line="127"/>
<source>Starting...</source> <source>Starting...</source>
<translation type="unfinished">Rozpoczynanie...</translation> <translation type="unfinished">Rozpoczynanie...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="133"/> <location filename="../../src/Thread_Process.cpp" line="140"/>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="145"/>
<source>Not found!</source> <source>Not found!</source>
<translation type="unfinished">Nie znaleziono!</translation> <translation type="unfinished">Nie znaleziono!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="166"/> <location filename="../../src/Thread_Process.cpp" line="178"/>
<source>WARNING: Decoded file size exceeds 4 GB, problems might occur! <source>WARNING: Decoded file size exceeds 4 GB, problems might occur!
</source> </source>
<translation type="unfinished">UWAGA: Plik po zdekodowaniu przekracza 4 GB, mogą wystąpić problemy!</translation> <translation type="unfinished">UWAGA: Plik po zdekodowaniu przekracza 4 GB, mogą wystąpić problemy!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>The format of this file is NOT supported:</source> <source>The format of this file is NOT supported:</source>
<translation type="unfinished">Format tego pliku NIE jest obsługiwany:</translation> <translation type="unfinished">Format tego pliku NIE jest obsługiwany:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Container Format:</source> <source>Container Format:</source>
<translation type="unfinished">Format kontenera:</translation> <translation type="unfinished">Format kontenera:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Audio Format:</source> <source>Audio Format:</source>
<translation type="unfinished">Format dźwięku:</translation> <translation type="unfinished">Format dźwięku:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="175"/> <location filename="../../src/Thread_Process.cpp" line="187"/>
<source>Unsupported!</source> <source>Unsupported!</source>
<translation type="unfinished">Nieobsługiwany!</translation> <translation type="unfinished">Nieobsługiwany!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Done.</source> <source>Done.</source>
<translation type="unfinished">Zrobione.</translation> <translation type="unfinished">Zrobione.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Aborted!</source> <source>Aborted!</source>
<translation type="unfinished">Przerwane!</translation> <translation type="unfinished">Przerwane!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Failed!</source> <source>Failed!</source>
<translation type="unfinished">Niepowodzenie!</translation> <translation type="unfinished">Niepowodzenie!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="270"/> <location filename="../../src/Thread_Process.cpp" line="282"/>
<source>Encoding</source> <source>Encoding</source>
<translation type="unfinished">Kompresowanie</translation> <translation type="unfinished">Kompresowanie</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="273"/> <location filename="../../src/Thread_Process.cpp" line="285"/>
<source>Analyzing</source> <source>Analyzing</source>
<translation type="unfinished">Analizowanie</translation> <translation type="unfinished">Analizowanie</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="276"/> <location filename="../../src/Thread_Process.cpp" line="288"/>
<source>Filtering</source> <source>Filtering</source>
<translation type="unfinished">Filtrowanie</translation> <translation type="unfinished">Filtrowanie</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="279"/> <location filename="../../src/Thread_Process.cpp" line="291"/>
<source>Decoding</source> <source>Decoding</source>
<translation type="unfinished">Dekodowanie</translation> <translation type="unfinished">Dekodowanie</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="302"/> <location filename="../../src/Thread_Process.cpp" line="315"/>
<source>The source audio file could not be found:</source> <source>The source audio file could not be found:</source>
<translation type="unfinished">Źródłowy plik dźwiękowy nie został odnaleziony:</translation> <translation type="unfinished">Źródłowy plik dźwiękowy nie został odnaleziony:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="309"/> <location filename="../../src/Thread_Process.cpp" line="323"/>
<source>The source audio file could not be opened for reading:</source> <source>The source audio file could not be opened for reading:</source>
<translation type="unfinished">Źródłowy plik dźwiękowy nie mógł zostać otworzony:</translation> <translation type="unfinished">Źródłowy plik dźwiękowy nie mógł zostać otworzony:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="335"/> <location filename="../../src/Thread_Process.cpp" line="351"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source> <source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation type="unfinished">Lokalizacja docelowa nie istnieje lu NIE mogła zostać utworzona:</translation> <translation type="unfinished">Lokalizacja docelowa nie istnieje lu NIE mogła zostać utworzona:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="343"/> <location filename="../../src/Thread_Process.cpp" line="360"/>
<source>The target output directory is NOT writable:</source> <source>The target output directory is NOT writable:</source>
<translation type="unfinished">Nie można zapisać do lokalizacji docelowej:</translation> <translation type="unfinished">Nie można zapisać do lokalizacji docelowej:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="353"/> <location filename="../../src/Thread_Process.cpp" line="371"/>
<source>Unknown File Name</source> <source>Unknown File Name</source>
<translation type="unfinished">Nieznana nazwa pliku</translation> <translation type="unfinished">Nieznana nazwa pliku</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="355"/> <location filename="../../src/Thread_Process.cpp" line="373"/>
<source>Unknown Title</source> <source>Unknown Title</source>
<translation type="unfinished">Nieznany Tytuł</translation> <translation type="unfinished">Nieznany Tytuł</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="356"/> <location filename="../../src/Thread_Process.cpp" line="374"/>
<source>Unknown Artist</source> <source>Unknown Artist</source>
<translation type="unfinished">Nieznany Artysta</translation> <translation type="unfinished">Nieznany Artysta</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="357"/> <location filename="../../src/Thread_Process.cpp" line="375"/>
<source>Unknown Album</source> <source>Unknown Album</source>
<translation type="unfinished">Nieznany Album</translation> <translation type="unfinished">Nieznany Album</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="359"/> <location filename="../../src/Thread_Process.cpp" line="377"/>
<source>Unknown Comment</source> <source>Unknown Comment</source>
<translation type="unfinished">Nieznany Komentarz</translation> <translation type="unfinished">Nieznany Komentarz</translation>
</message> </message>
<message>
<location filename="../../src/Thread_Process.cpp" line="386"/>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="387"/>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="394"/>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="404"/>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>
@ -3070,111 +3095,111 @@
<translation type="unfinished">Wielowątkowosć włączona: Równolegle wykonywanych jest %1 kodowań!</translation> <translation type="unfinished">Wielowątkowosć włączona: Równolegle wykonywanych jest %1 kodowań!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="450"/> <location filename="../../src/Dialog_Processing.cpp" line="451"/>
<source>Aborted! Waiting for running jobs to terminate...</source> <source>Aborted! Waiting for running jobs to terminate...</source>
<translation type="unfinished">Przerwano! Czekanie na wyłączenie procesu...</translation> <translation type="unfinished">Przerwano! Czekanie na wyłączenie procesu...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="465"/> <location filename="../../src/Dialog_Processing.cpp" line="466"/>
<source>Encoding: %1 files of %2 completed so far, please wait...</source> <source>Encoding: %1 files of %2 completed so far, please wait...</source>
<translation type="unfinished">Kompresja: Prosze czekać, jak dotąd wykonano %1 z %2 plików...</translation> <translation type="unfinished">Kompresja: Prosze czekać, jak dotąd wykonano %1 z %2 plików...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="493"/> <location filename="../../src/Dialog_Processing.cpp" line="494"/>
<source>Creating the playlist file, please wait...</source> <source>Creating the playlist file, please wait...</source>
<translation type="unfinished">Tworzenie pliku playlisty, prosze czekać...</translation> <translation type="unfinished">Tworzenie pliku playlisty, prosze czekać...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/> <location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted by the user after %1 file(s)!</source> <source>Process was aborted by the user after %1 file(s)!</source>
<translation type="unfinished">Proces został przerwany przez użytkownika po wykonaniu %1 plików!</translation> <translation type="unfinished">Proces został przerwany przez użytkownika po wykonaniu %1 plików!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/> <location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted prematurely by the user!</source> <source>Process was aborted prematurely by the user!</source>
<translation type="unfinished">Proces został przedwcześnie zakończony przez użytkownika!</translation> <translation type="unfinished">Proces został przedwcześnie zakończony przez użytkownika!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/> <location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>LameXP - Aborted</source> <source>LameXP - Aborted</source>
<translation type="unfinished">LameXP - Przerwano</translation> <translation type="unfinished">LameXP - Przerwano</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/> <location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>Process was aborted by the user.</source> <source>Process was aborted by the user.</source>
<translation type="unfinished">Proces został przerwany przez użytkownika.</translation> <translation type="unfinished">Proces został przerwany przez użytkownika.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="520"/> <location filename="../../src/Dialog_Processing.cpp" line="521"/>
<source>Process finished after %1.</source> <source>Process finished after %1.</source>
<translation type="unfinished">Proces został zakończony po %1.</translation> <translation type="unfinished">Proces został zakończony po %1.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="529"/> <location filename="../../src/Dialog_Processing.cpp" line="530"/>
<source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source> <source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source>
<translation type="unfinished">Błąd: %1 z %2 plików nie zostało skompresowanych. Kliknij dwukrotnie na plik aby zobaczyć szczegóły!</translation> <translation type="unfinished">Błąd: %1 z %2 plików nie zostało skompresowanych. Kliknij dwukrotnie na plik aby zobaczyć szczegóły!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/> <location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>LameXP - Error</source> <source>LameXP - Error</source>
<translation type="unfinished">LameXP - Błąd</translation> <translation type="unfinished">LameXP - Błąd</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/> <location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>At least one file has failed!</source> <source>At least one file has failed!</source>
<translation type="unfinished">Przynajmniej jeden plik nie został skompresowany!</translation> <translation type="unfinished">Przynajmniej jeden plik nie został skompresowany!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="540"/>
<location filename="../../src/Dialog_Processing.cpp" line="541"/> <location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>All files completed successfully.</source> <source>All files completed successfully.</source>
<translation type="unfinished">Kompresja wszystkich plików zakończona powodzeniem.</translation> <translation type="unfinished">Kompresja wszystkich plików zakończona powodzeniem.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="541"/> <location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>LameXP - Done</source> <source>LameXP - Done</source>
<translation type="unfinished">LameXP - Zrobione</translation> <translation type="unfinished">LameXP - Zrobione</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/> <location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>Playlist creation failed</source> <source>Playlist creation failed</source>
<translation type="unfinished">Tworzenie playlisty zakończone niepowodzeniem</translation> <translation type="unfinished">Tworzenie playlisty zakończone niepowodzeniem</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/> <location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>The playlist file could not be created:</source> <source>The playlist file could not be created:</source>
<translation type="unfinished">Playlista nie mogła zostać utworzona:</translation> <translation type="unfinished">Playlista nie mogła zostać utworzona:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1037"/> <location filename="../../src/Dialog_Processing.cpp" line="1048"/>
<source>Warning: Computer will shutdown in %1 seconds...</source> <source>Warning: Computer will shutdown in %1 seconds...</source>
<translation type="unfinished">Ostrzeżenie: Komputer zostanie zamknięty za %1 sekund/y...</translation> <translation type="unfinished">Ostrzeżenie: Komputer zostanie zamknięty za %1 sekund/y...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1041"/> <location filename="../../src/Dialog_Processing.cpp" line="1052"/>
<location filename="../../src/Dialog_Processing.cpp" line="1042"/> <location filename="../../src/Dialog_Processing.cpp" line="1053"/>
<source>Cancel Shutdown</source> <source>Cancel Shutdown</source>
<translation type="unfinished">Anuluj wyłączenie komputera</translation> <translation type="unfinished">Anuluj wyłączenie komputera</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1097"/> <location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<source>hour(s)</source> <source>hour(s)</source>
<translation type="unfinished">godzinie/ach</translation> <translation type="unfinished">godzinie/ach</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1098"/> <location filename="../../src/Dialog_Processing.cpp" line="1109"/>
<location filename="../../src/Dialog_Processing.cpp" line="1102"/> <location filename="../../src/Dialog_Processing.cpp" line="1113"/>
<source>minute(s)</source> <source>minute(s)</source>
<translation type="unfinished">minutach</translation> <translation type="unfinished">minutach</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1103"/> <location filename="../../src/Dialog_Processing.cpp" line="1114"/>
<location filename="../../src/Dialog_Processing.cpp" line="1107"/> <location filename="../../src/Dialog_Processing.cpp" line="1118"/>
<source>second(s)</source> <source>second(s)</source>
<translation type="unfinished">sekundach</translation> <translation type="unfinished">sekundach</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/> <location filename="../../src/Dialog_Processing.cpp" line="1119"/>
<source>millisecond(s)</source> <source>millisecond(s)</source>
<translation type="unfinished">milisekundach</translation> <translation type="unfinished">milisekundach</translation>
</message> </message>
@ -3182,12 +3207,12 @@
<context> <context>
<name>ProgressModel</name> <name>ProgressModel</name>
<message> <message>
<location filename="../../src/Model_Progress.cpp" line="118"/> <location filename="../../src/Model_Progress.cpp" line="122"/>
<source>Job</source> <source>Job</source>
<translation type="unfinished">Zadanie</translation> <translation type="unfinished">Zadanie</translation>
</message> </message>
<message> <message>
<location filename="../../src/Model_Progress.cpp" line="121"/> <location filename="../../src/Model_Progress.cpp" line="125"/>
<source>Status</source> <source>Status</source>
<translation type="unfinished">Status</translation> <translation type="unfinished">Status</translation>
</message> </message>

View File

@ -2321,6 +2321,26 @@
</source> </source>
<translation type="unfinished">ВНИМАНИЕ: декодированный файл больше 4 ГБ, возможны проблемы!</translation> <translation type="unfinished">ВНИМАНИЕ: декодированный файл больше 4 ГБ, возможны проблемы!</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2878,122 +2878,147 @@
<context> <context>
<name>ProcessThread</name> <name>ProcessThread</name>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="125"/> <location filename="../../src/Thread_Process.cpp" line="127"/>
<source>Starting...</source> <source>Starting...</source>
<translation>Startar...</translation> <translation>Startar...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="133"/> <location filename="../../src/Thread_Process.cpp" line="140"/>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="145"/>
<source>Not found!</source> <source>Not found!</source>
<translation>Hittas ej!</translation> <translation>Hittas ej!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="166"/> <location filename="../../src/Thread_Process.cpp" line="178"/>
<source>WARNING: Decoded file size exceeds 4 GB, problems might occur! <source>WARNING: Decoded file size exceeds 4 GB, problems might occur!
</source> </source>
<translation>VARNING! Omkodad filstorlek överstiger 4 GB. Problem kan uppstå! <translation>VARNING! Omkodad filstorlek överstiger 4 GB. Problem kan uppstå!
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>The format of this file is NOT supported:</source> <source>The format of this file is NOT supported:</source>
<translation>Det här filformatet saknar stöd i LameXP:</translation> <translation>Det här filformatet saknar stöd i LameXP:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Container Format:</source> <source>Container Format:</source>
<translation>Behållarformat:</translation> <translation>Behållarformat:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="174"/> <location filename="../../src/Thread_Process.cpp" line="186"/>
<source>Audio Format:</source> <source>Audio Format:</source>
<translation>Ljudformat:</translation> <translation>Ljudformat:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="175"/> <location filename="../../src/Thread_Process.cpp" line="187"/>
<source>Unsupported!</source> <source>Unsupported!</source>
<translation>Stöd saknas!</translation> <translation>Stöd saknas!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Aborted!</source> <source>Aborted!</source>
<translation>Avbruten!</translation> <translation>Avbruten!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Done.</source> <source>Done.</source>
<translation>Klar.</translation> <translation>Klar.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="253"/> <location filename="../../src/Thread_Process.cpp" line="265"/>
<source>Failed!</source> <source>Failed!</source>
<translation>Misslyckades!</translation> <translation>Misslyckades!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="270"/> <location filename="../../src/Thread_Process.cpp" line="282"/>
<source>Encoding</source> <source>Encoding</source>
<translation>Kodar</translation> <translation>Kodar</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="273"/> <location filename="../../src/Thread_Process.cpp" line="285"/>
<source>Analyzing</source> <source>Analyzing</source>
<translation>Analyserar</translation> <translation>Analyserar</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="276"/> <location filename="../../src/Thread_Process.cpp" line="288"/>
<source>Filtering</source> <source>Filtering</source>
<translation>Filtrerar</translation> <translation>Filtrerar</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="279"/> <location filename="../../src/Thread_Process.cpp" line="291"/>
<source>Decoding</source> <source>Decoding</source>
<translation>Avkodar</translation> <translation>Avkodar</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="302"/> <location filename="../../src/Thread_Process.cpp" line="315"/>
<source>The source audio file could not be found:</source> <source>The source audio file could not be found:</source>
<translation>Källfilen kan inte hittas:</translation> <translation>Källfilen kan inte hittas:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="309"/> <location filename="../../src/Thread_Process.cpp" line="323"/>
<source>The source audio file could not be opened for reading:</source> <source>The source audio file could not be opened for reading:</source>
<translation>Källfilen kan inte öppnas för läsning:</translation> <translation>Källfilen kan inte öppnas för läsning:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="335"/> <location filename="../../src/Thread_Process.cpp" line="351"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source> <source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation>Målmappen finns inte och kan inte skapas:</translation> <translation>Målmappen finns inte och kan inte skapas:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="343"/> <location filename="../../src/Thread_Process.cpp" line="360"/>
<source>The target output directory is NOT writable:</source> <source>The target output directory is NOT writable:</source>
<translation>Målmappen är INTE skrivbar:</translation> <translation>Målmappen är INTE skrivbar:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="353"/> <location filename="../../src/Thread_Process.cpp" line="371"/>
<source>Unknown File Name</source> <source>Unknown File Name</source>
<translation>Okänt filnamn</translation> <translation>Okänt filnamn</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="355"/> <location filename="../../src/Thread_Process.cpp" line="373"/>
<source>Unknown Title</source> <source>Unknown Title</source>
<translation>Okänd titel</translation> <translation>Okänd titel</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="356"/> <location filename="../../src/Thread_Process.cpp" line="374"/>
<source>Unknown Artist</source> <source>Unknown Artist</source>
<translation>Okänd artist</translation> <translation>Okänd artist</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="357"/> <location filename="../../src/Thread_Process.cpp" line="375"/>
<source>Unknown Album</source> <source>Unknown Album</source>
<translation>Okänt album</translation> <translation>Okänt album</translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="359"/> <location filename="../../src/Thread_Process.cpp" line="377"/>
<source>Unknown Comment</source> <source>Unknown Comment</source>
<translation>Okänd kommentar</translation> <translation>Okänd kommentar</translation>
</message> </message>
<message>
<location filename="../../src/Thread_Process.cpp" line="386"/>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="387"/>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="394"/>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="404"/>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>
@ -3071,111 +3096,111 @@
<translation>Flertrådskörning aktiverad: Kör %1 parallella instanser!</translation> <translation>Flertrådskörning aktiverad: Kör %1 parallella instanser!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="450"/> <location filename="../../src/Dialog_Processing.cpp" line="451"/>
<source>Aborted! Waiting for running jobs to terminate...</source> <source>Aborted! Waiting for running jobs to terminate...</source>
<translation>Avbrutet! Väntar att aktiva processer skall avslutas...</translation> <translation>Avbrutet! Väntar att aktiva processer skall avslutas...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="465"/> <location filename="../../src/Dialog_Processing.cpp" line="466"/>
<source>Encoding: %1 files of %2 completed so far, please wait...</source> <source>Encoding: %1 files of %2 completed so far, please wait...</source>
<translation>Omkodning: %1 fil(er) av %2 bearbetade hittills, vänta...</translation> <translation>Omkodning: %1 fil(er) av %2 bearbetade hittills, vänta...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="493"/> <location filename="../../src/Dialog_Processing.cpp" line="494"/>
<source>Creating the playlist file, please wait...</source> <source>Creating the playlist file, please wait...</source>
<translation>Skapar spelningslista, vänta...</translation> <translation>Skapar spelningslista, vänta...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/> <location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted by the user after %1 file(s)!</source> <source>Process was aborted by the user after %1 file(s)!</source>
<translation>Åtgärden avbröts av användaren efter %1 fil(er)!</translation> <translation>Åtgärden avbröts av användaren efter %1 fil(er)!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="503"/> <location filename="../../src/Dialog_Processing.cpp" line="504"/>
<source>Process was aborted prematurely by the user!</source> <source>Process was aborted prematurely by the user!</source>
<translation>Åtgärden avbröts i förtid av användaren!</translation> <translation>Åtgärden avbröts i förtid av användaren!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/> <location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>LameXP - Aborted</source> <source>LameXP - Aborted</source>
<translation>LameXP - Avbrutet</translation> <translation>LameXP - Avbrutet</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="504"/> <location filename="../../src/Dialog_Processing.cpp" line="505"/>
<source>Process was aborted by the user.</source> <source>Process was aborted by the user.</source>
<translation>Åtgärden avbröts av användaren.</translation> <translation>Åtgärden avbröts av användaren.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="520"/> <location filename="../../src/Dialog_Processing.cpp" line="521"/>
<source>Process finished after %1.</source> <source>Process finished after %1.</source>
<translation>Åtgärden slutförd efter %1.</translation> <translation>Åtgärden slutförd efter %1.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="529"/> <location filename="../../src/Dialog_Processing.cpp" line="530"/>
<source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source> <source>Error: %1 of %2 files failed. Double-click failed items for detailed information!</source>
<translation>Fel: %1 av %2 filer misslyckades. Dubbelklicka det misslyckade objektet för detaljerad information!</translation> <translation>Fel: %1 av %2 filer misslyckades. Dubbelklicka det misslyckade objektet för detaljerad information!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/> <location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>LameXP - Error</source> <source>LameXP - Error</source>
<translation>LameXP - Fel</translation> <translation>LameXP - Fel</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="530"/> <location filename="../../src/Dialog_Processing.cpp" line="531"/>
<source>At least one file has failed!</source> <source>At least one file has failed!</source>
<translation>Minst en fil har misslyckats!</translation> <translation>Minst en fil har misslyckats!</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="540"/>
<location filename="../../src/Dialog_Processing.cpp" line="541"/> <location filename="../../src/Dialog_Processing.cpp" line="541"/>
<location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>All files completed successfully.</source> <source>All files completed successfully.</source>
<translation>Alla filer korrekt omkodade.</translation> <translation>Alla filer korrekt omkodade.</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="541"/> <location filename="../../src/Dialog_Processing.cpp" line="542"/>
<source>LameXP - Done</source> <source>LameXP - Done</source>
<translation>LameXP - Klar</translation> <translation>LameXP - Klar</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/> <location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>Playlist creation failed</source> <source>Playlist creation failed</source>
<translation>Kunde inte skapa spelningslista</translation> <translation>Kunde inte skapa spelningslista</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="967"/> <location filename="../../src/Dialog_Processing.cpp" line="978"/>
<source>The playlist file could not be created:</source> <source>The playlist file could not be created:</source>
<translation>Spelningslistan kunde inte skapas:</translation> <translation>Spelningslistan kunde inte skapas:</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1037"/> <location filename="../../src/Dialog_Processing.cpp" line="1048"/>
<source>Warning: Computer will shutdown in %1 seconds...</source> <source>Warning: Computer will shutdown in %1 seconds...</source>
<translation>Varning! Datorn kommer att stängas av om %1 sekunder...</translation> <translation>Varning! Datorn kommer att stängas av om %1 sekunder...</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1041"/> <location filename="../../src/Dialog_Processing.cpp" line="1052"/>
<location filename="../../src/Dialog_Processing.cpp" line="1042"/> <location filename="../../src/Dialog_Processing.cpp" line="1053"/>
<source>Cancel Shutdown</source> <source>Cancel Shutdown</source>
<translation>Avbryt avstängning</translation> <translation>Avbryt avstängning</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1097"/> <location filename="../../src/Dialog_Processing.cpp" line="1108"/>
<source>hour(s)</source> <source>hour(s)</source>
<translation>timma(r)</translation> <translation>timma(r)</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1098"/> <location filename="../../src/Dialog_Processing.cpp" line="1109"/>
<location filename="../../src/Dialog_Processing.cpp" line="1102"/> <location filename="../../src/Dialog_Processing.cpp" line="1113"/>
<source>minute(s)</source> <source>minute(s)</source>
<translation>minut(er)</translation> <translation>minut(er)</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1103"/> <location filename="../../src/Dialog_Processing.cpp" line="1114"/>
<location filename="../../src/Dialog_Processing.cpp" line="1107"/> <location filename="../../src/Dialog_Processing.cpp" line="1118"/>
<source>second(s)</source> <source>second(s)</source>
<translation>sekund(er)</translation> <translation>sekund(er)</translation>
</message> </message>
<message> <message>
<location filename="../../src/Dialog_Processing.cpp" line="1108"/> <location filename="../../src/Dialog_Processing.cpp" line="1119"/>
<source>millisecond(s)</source> <source>millisecond(s)</source>
<translation>millisekund(er)</translation> <translation>millisekund(er)</translation>
</message> </message>
@ -3183,12 +3208,12 @@
<context> <context>
<name>ProgressModel</name> <name>ProgressModel</name>
<message> <message>
<location filename="../../src/Model_Progress.cpp" line="118"/> <location filename="../../src/Model_Progress.cpp" line="122"/>
<source>Job</source> <source>Job</source>
<translation>Åtgärd</translation> <translation>Åtgärd</translation>
</message> </message>
<message> <message>
<location filename="../../src/Model_Progress.cpp" line="121"/> <location filename="../../src/Model_Progress.cpp" line="125"/>
<source>Status</source> <source>Status</source>
<translation>Status</translation> <translation>Status</translation>
</message> </message>

View File

@ -2314,6 +2314,26 @@
</source> </source>
<translation>警告: 解碼文件大小超過4GB, !</translation> <translation>警告: 解碼文件大小超過4GB, !</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2315,6 +2315,26 @@
</source> </source>
<translation>ПОПЕРЕДЖЕННЯ: Розмір декодованного файла перевищує 4 ГБ, можуть виникнути проблеми!</translation> <translation>ПОПЕРЕДЖЕННЯ: Розмір декодованного файла перевищує 4 ГБ, можуть виникнути проблеми!</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -2314,6 +2314,26 @@
</source> </source>
<translation>警告: 解码文件大小超过4GB, !</translation> <translation>警告: 解码文件大小超过4GB, !</translation>
</message> </message>
<message>
<source>Skipped.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to skip this file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you don&apos;t want existing files to be skipped, please change the overwrite mode!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Target output file already exists, going to delete existing file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to delete existing target file, will save to another file name!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProcessingDialog</name> <name>ProcessingDialog</name>

View File

@ -101,6 +101,7 @@
<file>icons/shield_exclamation.png</file> <file>icons/shield_exclamation.png</file>
<file>icons/shield_green.png</file> <file>icons/shield_green.png</file>
<file>icons/sound.png</file> <file>icons/sound.png</file>
<file>icons/step_over.png</file>
<file>icons/star.png</file> <file>icons/star.png</file>
<file>icons/table_edit.png</file> <file>icons/table_edit.png</file>
<file>icons/table_save.png</file> <file>icons/table_save.png</file>

BIN
res/icons/step_over.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

View File

@ -30,7 +30,7 @@
#define VER_LAMEXP_MINOR_LO 7 #define VER_LAMEXP_MINOR_LO 7
#define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 1 #define VER_LAMEXP_PATCH 1
#define VER_LAMEXP_BUILD 1172 #define VER_LAMEXP_BUILD 1174
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!) // Tool versions (minimum expected versions!)

View File

@ -433,6 +433,7 @@ void ProcessingDialog::initEncoding(void)
for(unsigned int i = 0; i < maximumInstances; i++) for(unsigned int i = 0; i < maximumInstances; i++)
{ {
startNextJob(); startNextJob();
qApp->processEvents();
} }
LARGE_INTEGER counter; LARGE_INTEGER counter;
@ -733,6 +734,10 @@ void ProcessingDialog::startNextJob(void)
{ {
thread->setRenamePattern(m_settings->renameOutputFilesPattern()); thread->setRenamePattern(m_settings->renameOutputFilesPattern());
} }
if(m_settings->overwriteMode() != SettingsModel::Overwrite_KeepBoth)
{
thread->setOverwriteMode((m_settings->overwriteMode() == SettingsModel::Overwrite_SkipFile), (m_settings->overwriteMode() == SettingsModel::Overwrite_Replaces));
}
m_threadList.append(thread); m_threadList.append(thread);
m_allJobs.append(thread->getId()); m_allJobs.append(thread->getId());
@ -747,6 +752,12 @@ void ProcessingDialog::startNextJob(void)
//Give it a go! //Give it a go!
m_runningThreads++; m_runningThreads++;
thread->start(); thread->start();
//Give thread some advance
for(unsigned int i = 0; i < MAX_INSTANCES; i++)
{
QThread::yieldCurrentThread();
}
} }
AbstractEncoder *ProcessingDialog::makeEncoder(bool *nativeResampling) AbstractEncoder *ProcessingDialog::makeEncoder(bool *nativeResampling)

View File

@ -33,7 +33,8 @@ ProgressModel::ProgressModel(void)
m_iconFailed(":/icons/exclamation.png"), m_iconFailed(":/icons/exclamation.png"),
m_iconSystem(":/icons/computer.png"), m_iconSystem(":/icons/computer.png"),
m_iconWarning(":/icons/error.png"), m_iconWarning(":/icons/error.png"),
m_iconPerformance(":/icons/clock.png") m_iconPerformance(":/icons/clock.png"),
m_iconSkipped(":/icons/step_over.png")
{ {
} }
@ -92,6 +93,9 @@ QVariant ProgressModel::data(const QModelIndex &index, int role) const
case JobPerformance: case JobPerformance:
return m_iconPerformance; return m_iconPerformance;
break; break;
case JobSkipped:
return m_iconSkipped;
break;
default: default:
return m_iconFailed; return m_iconFailed;
break; break;

View File

@ -48,7 +48,8 @@ public:
JobFailed = 3, JobFailed = 3,
JobSystem = 4, JobSystem = 4,
JobWarning = 5, JobWarning = 5,
JobPerformance = 6 JobPerformance = 6,
JobSkipped = 7
}; };
enum SysMsgType enum SysMsgType
{ {
@ -91,4 +92,5 @@ private:
const QIcon m_iconSystem; const QIcon m_iconSystem;
const QIcon m_iconWarning; const QIcon m_iconWarning;
const QIcon m_iconPerformance; const QIcon m_iconPerformance;
const QIcon m_iconSkipped;
}; };

View File

@ -63,6 +63,8 @@ ProcessThread::ProcessThread(const AudioFileModel &audioFile, const QString &out
m_jobId(QUuid::createUuid()), m_jobId(QUuid::createUuid()),
m_prependRelativeSourcePath(prependRelativeSourcePath), m_prependRelativeSourcePath(prependRelativeSourcePath),
m_renamePattern("<BaseName>"), m_renamePattern("<BaseName>"),
m_overwriteSkipExistingFile(false),
m_overwriteReplacesExisting(false),
m_aborted(false), m_aborted(false),
m_propDetect(new WaveProperties()) m_propDetect(new WaveProperties())
{ {
@ -127,9 +129,19 @@ void ProcessThread::processFile()
handleMessage("\n-------------------------------\n"); handleMessage("\n-------------------------------\n");
//Generate output file name //Generate output file name
QString outFileName = generateOutFileName(); QString outFileName;
if(outFileName.isEmpty()) switch(generateOutFileName(outFileName))
{ {
case 1:
//File name generated successfully :-)
break;
case -1:
//File name already exists -> skipping!
emit processStateChanged(m_jobId, tr("Skipped."), ProgressModel::JobSkipped);
emit processStateFinished(m_jobId, outFileName, true);
return;
default:
//File name could not be generated
emit processStateChanged(m_jobId, tr("Not found!"), ProgressModel::JobFailed); emit processStateChanged(m_jobId, tr("Not found!"), ProgressModel::JobFailed);
emit processStateFinished(m_jobId, outFileName, false); emit processStateFinished(m_jobId, outFileName, false);
return; return;
@ -247,7 +259,7 @@ void ProcessThread::processFile()
bSuccess = fileInfo.exists() && fileInfo.isFile() && (fileInfo.size() > 0); bSuccess = fileInfo.exists() && fileInfo.isFile() && (fileInfo.size() > 0);
} }
QThread::msleep(500); QThread::msleep(125);
//Report result //Report result
emit processStateChanged(m_jobId, (m_aborted ? tr("Aborted!") : (bSuccess ? tr("Done.") : tr("Failed!"))), ((bSuccess && !m_aborted) ? ProgressModel::JobComplete : ProgressModel::JobFailed)); emit processStateChanged(m_jobId, (m_aborted ? tr("Aborted!") : (bSuccess ? tr("Done.") : tr("Failed!"))), ((bSuccess && !m_aborted) ? ProgressModel::JobComplete : ProgressModel::JobFailed));
@ -290,24 +302,26 @@ void ProcessThread::handleMessage(const QString &line)
// PRIVAE FUNCTIONS // PRIVAE FUNCTIONS
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
QString ProcessThread::generateOutFileName(void) int ProcessThread::generateOutFileName(QString &outFileName)
{ {
outFileName.clear();
QMutexLocker lock(m_mutex_genFileName); QMutexLocker lock(m_mutex_genFileName);
int n = 1; //Make sure the source file exists
QFileInfo sourceFile(m_audioFile.filePath()); QFileInfo sourceFile(m_audioFile.filePath());
if(!sourceFile.exists() || !sourceFile.isFile()) if(!sourceFile.exists() || !sourceFile.isFile())
{ {
handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be found:"), sourceFile.absoluteFilePath())); handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be found:"), sourceFile.absoluteFilePath()));
return QString(); return 0;
} }
//Make sure the source file readable
QFile readTest(sourceFile.canonicalFilePath()); QFile readTest(sourceFile.canonicalFilePath());
if(!readTest.open(QIODevice::ReadOnly)) if(!readTest.open(QIODevice::ReadOnly))
{ {
handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be opened for reading:"), readTest.fileName())); handleMessage(QString("%1\n%2").arg(tr("The source audio file could not be opened for reading:"), QDir::toNativeSeparators(readTest.fileName())));
return QString(); return 0;
} }
else else
{ {
@ -317,6 +331,7 @@ QString ProcessThread::generateOutFileName(void)
QString baseName = sourceFile.completeBaseName(); QString baseName = sourceFile.completeBaseName();
QDir targetDir(m_outputDirectory.isEmpty() ? sourceFile.canonicalPath() : m_outputDirectory); QDir targetDir(m_outputDirectory.isEmpty() ? sourceFile.canonicalPath() : m_outputDirectory);
//Prepend relative source file path?
if(m_prependRelativeSourcePath && !m_outputDirectory.isEmpty()) if(m_prependRelativeSourcePath && !m_outputDirectory.isEmpty())
{ {
QDir rootDir = sourceFile.dir(); QDir rootDir = sourceFile.dir();
@ -327,21 +342,23 @@ QString ProcessThread::generateOutFileName(void)
targetDir.setPath(QString("%1/%2").arg(targetDir.absolutePath(), QFileInfo(rootDir.relativeFilePath(sourceFile.canonicalFilePath())).path())); targetDir.setPath(QString("%1/%2").arg(targetDir.absolutePath(), QFileInfo(rootDir.relativeFilePath(sourceFile.canonicalFilePath())).path()));
} }
//Make sure output directory does exist
if(!targetDir.exists()) if(!targetDir.exists())
{ {
targetDir.mkpath("."); targetDir.mkpath(".");
if(!targetDir.exists()) if(!targetDir.exists())
{ {
handleMessage(QString("%1\n%2").arg(tr("The target output directory doesn't exist and could NOT be created:"), targetDir.absolutePath())); handleMessage(QString("%1\n%2").arg(tr("The target output directory doesn't exist and could NOT be created:"), QDir::toNativeSeparators(targetDir.absolutePath())));
return QString(); return 0;
} }
} }
//Make sure that the output dir is writable
QFile writeTest(QString("%1/.%2").arg(targetDir.canonicalPath(), lamexp_rand_str())); QFile writeTest(QString("%1/.%2").arg(targetDir.canonicalPath(), lamexp_rand_str()));
if(!writeTest.open(QIODevice::ReadWrite)) if(!writeTest.open(QIODevice::ReadWrite))
{ {
handleMessage(QString("%1\n%2").arg(tr("The target output directory is NOT writable:"), targetDir.absolutePath())); handleMessage(QString("%1\n%2").arg(tr("The target output directory is NOT writable:"), QDir::toNativeSeparators(targetDir.absolutePath())));
return QString(); return 0;
} }
else else
{ {
@ -349,6 +366,7 @@ QString ProcessThread::generateOutFileName(void)
writeTest.remove(); writeTest.remove();
} }
//Apply rename pattern
QString fileName = m_renamePattern; QString fileName = m_renamePattern;
fileName.replace("<BaseName>", STRDEF(baseName, tr("Unknown File Name")), Qt::CaseInsensitive); fileName.replace("<BaseName>", STRDEF(baseName, tr("Unknown File Name")), Qt::CaseInsensitive);
fileName.replace("<TrackNo>", QString().sprintf("%02d", m_audioFile.filePosition()), Qt::CaseInsensitive); fileName.replace("<TrackNo>", QString().sprintf("%02d", m_audioFile.filePosition()), Qt::CaseInsensitive);
@ -359,19 +377,50 @@ QString ProcessThread::generateOutFileName(void)
fileName.replace("<Comment>", STRDEF(m_audioFile.fileComment(), tr("Unknown Comment")), Qt::CaseInsensitive); fileName.replace("<Comment>", STRDEF(m_audioFile.fileComment(), tr("Unknown Comment")), Qt::CaseInsensitive);
fileName = lamexp_clean_filename(fileName).simplified(); fileName = lamexp_clean_filename(fileName).simplified();
QString outFileName = QString("%1/%2.%3").arg(targetDir.canonicalPath(), fileName, m_encoder->extension()); //Generate full output path
outFileName = QString("%1/%2.%3").arg(targetDir.canonicalPath(), fileName, m_encoder->extension());
//Skip file, if target file exists (optional!)
if(m_overwriteSkipExistingFile && QFileInfo(outFileName).exists())
{
handleMessage(QString("%1\n%2\n").arg(tr("Target output file already exists, going to skip this file:"), QDir::toNativeSeparators(outFileName)));
handleMessage(tr("If you don't want existing files to be skipped, please change the overwrite mode!"));
return -1;
}
//Delete file, if target file exists (optional!)
if(m_overwriteReplacesExisting && QFileInfo(outFileName).exists())
{
handleMessage(QString("%1\n%2\n").arg(tr("Target output file already exists, going to delete existing file:"), QDir::toNativeSeparators(outFileName)));
bool bOkay = false;
for(int i = 0; i < 16; i++)
{
bOkay = QFile::remove(outFileName);
if(bOkay) break;
QThread::msleep(125);
}
if(QFileInfo(outFileName).exists() || (!bOkay))
{
handleMessage(QString("%1\n").arg(tr("Failed to delete existing target file, will save to another file name!")));
}
}
int n = 1;
//Generate final name
while(QFileInfo(outFileName).exists()) while(QFileInfo(outFileName).exists())
{ {
outFileName = QString("%1/%2 (%3).%4").arg(targetDir.canonicalPath(), fileName, QString::number(++n), m_encoder->extension()); outFileName = QString("%1/%2 (%3).%4").arg(targetDir.canonicalPath(), fileName, QString::number(++n), m_encoder->extension());
} }
//Create placeholder
QFile placeholder(outFileName); QFile placeholder(outFileName);
if(placeholder.open(QIODevice::WriteOnly)) if(placeholder.open(QIODevice::WriteOnly))
{ {
placeholder.close(); placeholder.close();
} }
return outFileName; return 1;
} }
QString ProcessThread::generateTempFileName(void) QString ProcessThread::generateTempFileName(void)
@ -541,6 +590,19 @@ void ProcessThread::setRenamePattern(const QString &pattern)
if(!newPattern.isEmpty()) m_renamePattern = newPattern; if(!newPattern.isEmpty()) m_renamePattern = newPattern;
} }
void ProcessThread::setOverwriteMode(const bool bSkipExistingFile, const bool bReplacesExisting)
{
if(bSkipExistingFile && bReplacesExisting)
{
qWarning("Inconsistent overwrite flags, reverting to default!");
m_overwriteSkipExistingFile = false;
m_overwriteReplacesExisting = false;
}
m_overwriteSkipExistingFile = bSkipExistingFile;
m_overwriteReplacesExisting = bReplacesExisting;
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// EVENTS // EVENTS
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -45,6 +45,7 @@ public:
void abort() { m_aborted = true; } void abort() { m_aborted = true; }
QUuid getId() { return m_jobId; } QUuid getId() { return m_jobId; }
void setRenamePattern(const QString &pattern); void setRenamePattern(const QString &pattern);
void setOverwriteMode(const bool bSkipExistingFile, const bool ReplacesExisting = false);
void addFilter(AbstractFilter *filter); void addFilter(AbstractFilter *filter);
private slots: private slots:
@ -68,7 +69,7 @@ private:
}; };
void processFile(); void processFile();
QString generateOutFileName(void); int generateOutFileName(QString &outFileName);
QString generateTempFileName(void); QString generateTempFileName(void);
void insertDownsampleFilter(void); void insertDownsampleFilter(void);
void insertDownmixFilter(void); void insertDownmixFilter(void);
@ -84,6 +85,8 @@ private:
const bool m_prependRelativeSourcePath; const bool m_prependRelativeSourcePath;
QList<AbstractFilter*> m_filters; QList<AbstractFilter*> m_filters;
QString m_renamePattern; QString m_renamePattern;
bool m_overwriteSkipExistingFile;
bool m_overwriteReplacesExisting;
WaveProperties *m_propDetect; WaveProperties *m_propDetect;
static QMutex *m_mutex_genFileName; static QMutex *m_mutex_genFileName;