diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts
index 4e250cc8..18cab277 100644
--- a/etc/Translation/Blank.ts
+++ b/etc/Translation/Blank.ts
@@ -3046,47 +3046,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3137,209 +3137,209 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
diff --git a/etc/Translation/LameXP_DE.ts b/etc/Translation/LameXP_DE.ts
index fce2a567..bcdb531c 100644
--- a/etc/Translation/LameXP_DE.ts
+++ b/etc/Translation/LameXP_DE.ts
@@ -3039,27 +3039,27 @@
In das Zielverzeichnis kann nicht geschrieben werden:
-
+
Unbekannter Dateiname
-
+
Unbekannter Titel
-
+
Unbekannter Künstler
-
+
Unbekanntes Album
-
+
Unbekannter Kommentar
@@ -3080,22 +3080,22 @@
Übersprungen.
-
+
Zieldatei existiert bereits, die Datei wird übersprungen:
-
+
Wenn existierende Dateien nicht übersprungen werden sollen, ändern Sie bitte den Überschreiben-Modus!
-
+
Zieldatei existiert bereits, die Datei wird gelöscht und überschrieben:
-
+
Die existierende Datei konnte nicht gelöscht werden, ein anderer Dateiname wird gewählt!
@@ -3123,88 +3123,88 @@
Schließen
-
+
Kodiere Dateien
-
+
Ihre Dateien werden kodiert, bitte warten...
-
+
Zeige Details für den ausgewählten Job
-
+
Dateien werden kodiert, bitte warten...
-
+
Abbruch! Laufende Jobs werden beendet...
-
+
Erzeuge Wiedergabeliste, bitte warten...
-
+
LameXP - Abgebrochen
-
+
Der Vorgang wurde vom Benutzer abgebrochen.
-
+
LameXP - Fehler
-
+
Mindestens eine Datei ist fehlgeschlagen!
-
-
+
+
Alle Dateien wurden erfolgreich umgewandelt.
-
+
LameXP - Fertig
-
+
Wiedergabeliste konnte nicht erstellt werden
-
+
Die Wiedergabeliste konnte nicht erstellt werden:
-
+
Der Vorgang wurde vom Benutzer abgebrochen!
-
+
Multithreading aktiviert: Führe %1 Instanzen parallel aus!
-
+
Ausgabedatei suchen
@@ -3214,13 +3214,13 @@
Computer herunterfahren sobald alle Dateien fertiggestellt sind
-
+
Achtung: Computer wird in %1 Sekunden heruntergefahren...
-
-
+
+
Herunterfahren abbrechen
@@ -3243,47 +3243,47 @@
Freier Festplattenspeicher (Temp Ordner)
-
+
Vorgang abgeschlossen nach %1.
-
+
Logeinträge filtern
-
+
Nur laufende anzeigen
-
+
Nur erfolgreiche anzeigen
-
+
Nur fehlgeschlagene anzeigen
-
+
Nur übersprungene anzeigen
-
+
Alle Einträge anzeigen
-
+
Keiner der Einträge entspricht den aktuellen Filterregeln
-
+
Der Vorgang wurde vom Benutzter nach %n Track abgebrochen!
@@ -3291,7 +3291,7 @@
-
+
%n Stunde
@@ -3299,8 +3299,8 @@
-
-
+
+
%n Minute
@@ -3308,8 +3308,8 @@
-
-
+
+
%n Sekunde
@@ -3317,7 +3317,7 @@
-
+
%n Millisekunde
@@ -3325,7 +3325,7 @@
-
+
Kodiere: %n Datei von %1 abgeschlossen. Bitte warten...
@@ -3333,7 +3333,7 @@
-
+
Fehler: %1 von %n Datei fehlgeschlagen (%2). Doppelklicken um Details anzuzeigen!
@@ -3341,7 +3341,7 @@
-
+
%n Datei übersprungen
@@ -3349,7 +3349,7 @@
-
+
Fehler: %1 von %n Datei fehlgeschlagen. Doppelklicken um detaillierte Informationen anzuzeigen!
@@ -3357,7 +3357,7 @@
-
+
Alle Dateien wurden erfolgreich umgewandelt. %n Datei wurde übersprungen.
diff --git a/etc/Translation/LameXP_EN.ts b/etc/Translation/LameXP_EN.ts
index ecb4c0fc..942783d2 100644
--- a/etc/Translation/LameXP_EN.ts
+++ b/etc/Translation/LameXP_EN.ts
@@ -74,7 +74,7 @@
ProcessingDialog
-
+
Encoding: %n file of %1 completed so far, please wait...
@@ -82,7 +82,7 @@
-
+
Process was aborted by the user after %n file!
@@ -90,7 +90,7 @@
-
+
Error: %1 of %n file failed (%2). Double-click failed items for detailed information!
@@ -98,7 +98,7 @@
-
+
%n file skipped
@@ -106,7 +106,7 @@
-
+
Error: %1 of %n file failed. Double-click failed items for detailed information!
@@ -114,7 +114,7 @@
-
+
All files completed successfully. Skipped %n file.
@@ -122,7 +122,7 @@
-
+
%n hour
@@ -130,8 +130,8 @@
-
-
+
+
%n minute
@@ -139,8 +139,8 @@
-
-
+
+
%n second
@@ -148,7 +148,7 @@
-
+
%n millisecond
diff --git a/etc/Translation/LameXP_ES.ts b/etc/Translation/LameXP_ES.ts
index ea58377f..95674071 100644
--- a/etc/Translation/LameXP_ES.ts
+++ b/etc/Translation/LameXP_ES.ts
@@ -3039,27 +3039,27 @@
NO se puede escribir en la carpeta de salida:
-
+
Nombre de archivo desconocido
-
+
Título desconocido
-
+
Artista desconocido
-
+
Álbum desconocido
-
+
Comentario desconocido
@@ -3080,22 +3080,22 @@
Omitidos.
-
+
El archivo de destino ya existe, se omitirá este archivo:
-
+
¡Si no quiere sobreescribir los archivos existentes, cambie el modo sobreescritura por favor!
-
+
El archivo de destino ya existe, se eliminará este archivo:
-
+
¡Error al eliminar el archivo de destino existente, se guardará con otro nombre!
@@ -3123,88 +3123,88 @@
Cerrar
-
+
Mostrar detalles de la tarea seleccionada
-
+
Codificando archivos
-
+
Sus archivos están siendo codificados, tenga paciencia...
-
+
Codificando archivos, espere por favor...
-
+
¡Cancelado! Esperando a que finalicen las tareas que se están ejecutando...
-
+
Creando el archivo de lista de reproducción, espere por favor...
-
+
LameXP - Cancelado
-
+
El proceso ha sido cancelado por el usuario.
-
+
LameXP - Error
-
+
¡Se ha producido al menos un error!
-
-
+
+
Todos los archivos han sido codificados correctamente.
-
+
LameXP - Finalizado
-
+
Error al crear la lista de reproducción
-
+
No ha podido crearse la lista de reproducción:
-
+
¡El proceso fue cancelado prematuramente por el usuario!
-
+
Ejecución multi-hilo habilitada: ¡Ejecutando %1 instancias en paralelo!
-
+
Navegar hasta la ubicación del archivo de salida
@@ -3214,13 +3214,13 @@
Apagar el ordenador cuando todos los archivos hayan sido convertidos
-
+
Aviso: El ordenador de apagará en %1 segundos...
-
-
+
+
Cancelar apagado
@@ -3243,47 +3243,47 @@
Espcaio libre en disco (Carpeta temporal)
-
+
Finalizado en %1.
-
+
Filtrar el registro de archivos
-
+
Mostrar solo en ejecución
-
+
Mostrar solo finalizados
-
+
Mostrar solo fallidos
-
+
Mostrar solo omitidos
-
+
Mostrar todos los archivos
-
+
Ninguno de los archivos concuerda con las reglas de filtrado
-
+
¡El proceso fue abortado por el usuario tras %n archivo!
@@ -3291,7 +3291,7 @@
-
+
%n hora
@@ -3299,8 +3299,8 @@
-
-
+
+
%n minuto
@@ -3308,8 +3308,8 @@
-
-
+
+
%n segundo
@@ -3317,7 +3317,7 @@
-
+
%n milisegundo
@@ -3325,7 +3325,7 @@
-
+
Codificando: %n de %1 archivo completado, espere por favor...
@@ -3333,7 +3333,7 @@
-
+
Error: %1 de %n archivo fallido (%2). ¡Haga doble clic en el archivo para obtener información más detallada!
@@ -3341,7 +3341,7 @@
-
+
%n archivo omitido
@@ -3349,7 +3349,7 @@
-
+
Error: %1 de %n archivo fallido. ¡Haga doble clic en el archivo para obtener información más detallada!
@@ -3357,7 +3357,7 @@
-
+
Todos los archivos han sido procesados. Se ha omitido %n archivo.
diff --git a/etc/Translation/LameXP_FR.ts b/etc/Translation/LameXP_FR.ts
index 392859d8..c4b2933d 100644
--- a/etc/Translation/LameXP_FR.ts
+++ b/etc/Translation/LameXP_FR.ts
@@ -3047,27 +3047,27 @@ Ouvrir le dossier récursivement...
Le répertoire de sortie cible n'est pas accessible en écriture:
-
+
Nom de fichier inconnu
-
+
Titre inconnu
-
+
Artiste inconnu
-
+
Album inconnu
-
+
Commentaire inconnu
@@ -3089,22 +3089,22 @@ Ouvrir le dossier récursivement...
Ignorée.
-
+
Le fichier de sortie existe déjà, vous allez ignorer ce fichier :
-
+
Si vous ne voulez pas ignorer les fichiers existants, veuillez changer le mode de remplacement !
-
+
Le fichier de sortie existe déjà, vous allez supprimer ce fichier :
-
+
Impossible de supprimer le fichier existant, voulez-vous l'enregistrer sous un autre nom !
@@ -3132,88 +3132,88 @@ Ouvrir le dossier récursivement...
Fermer
-
+
Afficher les détails pour travail sélectionné
-
+
Encodage des fichiers
-
+
Vos fichiers sont en cours d'encodage, veuillez être patient...
-
+
Encodage des fichiers, patientez...
-
+
Abandonné ! En attente pour la fin de l'exécution des travaux...
-
+
Création de la liste de lecture, patientez...
-
+
LameXP - Abandonné
-
+
Le processus a été abandonné par l'utilisateur.
-
+
LameXP - Erreur
-
+
Au moins un fichier n'a pas réussi!
-
-
+
+
Tous les fichiers terminés avec succès.
-
+
LameXP - -Fait
-
+
La création de liste de lecture a échoué
-
+
La liste de lecture n'a pas pu être créée:
-
+
Le processus a été abandonné prématurément par l'utilisateur !
-
+
Multi-threading activé : %1 instances en cours d'exécution en parallèle !
-
+
Rechercher l'emplacement du fichier de sortie
@@ -3223,13 +3223,13 @@ Ouvrir le dossier récursivement...
Arrêter l'ordinateur dès que tous les fichiers ont été convertis
-
+
Avertissement : l'ordinateur s'éteindra dans %1 secondes...
-
-
+
+
Annuler l'extinction
@@ -3252,48 +3252,48 @@ Ouvrir le dossier récursivement...
Espace disque libre (dossier Temp)
-
+
Processus terminé après %1.
-
+
Filtrer les éléments du journal
-
+
Afficher uniquement les fichiers en cours
-
+
Affichier uniquement les fichiers terminés
-
+
Afficher uniquement les échecs
-
+
Afficher uniquement les fichiers ignorés
-
+
Afficher tous les éléments
-
+
Les règles de filtrage actuelles ne correspondent à aucun des éléments
-
+
Le processus a été interrompu par l'utilisateur après %n fichier !
@@ -3301,7 +3301,7 @@ Ouvrir le dossier récursivement...
-
+
%n heure
@@ -3309,8 +3309,8 @@ Ouvrir le dossier récursivement...
-
-
+
+
%n minute
@@ -3318,8 +3318,8 @@ Ouvrir le dossier récursivement...
-
-
+
+
%n seconde
@@ -3327,7 +3327,7 @@ Ouvrir le dossier récursivement...
-
+
%n milliseconde
@@ -3335,7 +3335,7 @@ Ouvrir le dossier récursivement...
-
+
Encodage : %n fichier sur %1 terminé pour l'instant, veuillez patienter...
@@ -3343,7 +3343,7 @@ Ouvrir le dossier récursivement...
-
+
Erreur : %1 sur %n fichier échoué (%2). Double-cliquez sur l'élément défaillant pour plus d'informations !
@@ -3351,7 +3351,7 @@ Ouvrir le dossier récursivement...
-
+
%n fichier ignoré
@@ -3359,7 +3359,7 @@ Ouvrir le dossier récursivement...
-
+
Erreur : %1 sur %n fichier échoué. Double-cliquez sur l'élément défaillant pour plus d'informations !
@@ -3367,7 +3367,7 @@ Ouvrir le dossier récursivement...
-
+
Tous les fichiers terminés avec succès. %n fichier ignoré.
diff --git a/etc/Translation/LameXP_HU.ts b/etc/Translation/LameXP_HU.ts
index 24961f5f..00d0de2a 100644
--- a/etc/Translation/LameXP_HU.ts
+++ b/etc/Translation/LameXP_HU.ts
@@ -3046,47 +3046,47 @@
A cél kimeneti könyvtár NEM írható:
-
+
Ismeretlen fájlnév
-
+
Ismeretlen cím
-
+
Ismeretlen előadó
-
+
Ismeretlen album
-
+
Ismeretlen hozzászólás
-
+
A cél kimeneti fájl már létezik, ez a fájl ki lesz hagyva:
-
+
Ha nem szeretné a meglévő fájlokat kihagyni, kérjük, változtassa meg a felülírási módot!
-
+
A cél kimeneti fájl már létezik, a meglévő fájl törlésre kerül:
-
+
Nem sikerült törölni a meglévő cél fájlt. Az állomány másik fájlnéven lesz elmentve!
@@ -3137,209 +3137,209 @@
Bezárás
-
+
A kiválasztott feladat részleteinek megjelenítése
-
+
Kimeneti fájl helyének tallózása
-
+
Naplóelemek szűrő
-
+
Csak a futó állományok megjelenítése
-
+
Csak a sikeresek megjelenítése
-
+
Csak a sikertelenek megjelenítése
-
+
Csak a kihagyottak megjelenítése
-
+
Az összes elem megjelenítése
-
+
Fájlok kódolása
-
+
A fájlok kódolás alatt állnak, kis türelmet...
-
+
Fájlok kódolása, kis türelmet...
-
+
Többszálú feldolgozás engedélyezve: %1 példány fut párhuzamosan!
-
+
Megszakítva! Várakozás a futó feladatok lezárására...
-
+
Kódolás: %1 - %n fájl került feldolgozásra eddig, kis türelmet...
-
+
Lejátszási lista fájl létrehozása, kis türelmet...
-
+
A folyamatot a felhasználó megszakította %n fájl után!
-
+
A folyamat idő előtt meg lett szakítva a felhasználó által!
-
+
LameXP - Megszakítva
-
+
A folyamat meg lett szakítva a felhasználó által.
-
+
A folyamat befejeződött %1 után.
-
+
Hiba: %n - %1 fájl feldolgozási hiba (%2). Kattintson duplán a hibás tételekre a részletes információkért!
-
+
%n fájl kihagyva
-
+
Hiba: %n - %1 fájlnál hiba lépett fel. Kattintson duplán a hibás tételekre a részletes információkért!
-
+
LameXP - Hiba
-
+
Legalább egy fájlnál hiba lépett fel!
-
+
Az összes fájl feldolgozása sikeresen befejeződött. Kihagyva %n fájl.
-
-
+
+
Az összes fájl feldolgozása sikeresen befejeződött.
-
+
LameXP - Kész
-
+
Az elemek egyike sem egyezik a jelenlegi szűrési szabályokkal
-
+
Lejátszási lista létrehozási hiba
-
+
A lejátszási lista fájlt nem lehet létrehozni:
-
+
Figyelem: a számítógép %1 másodperc múlva le fog állni...
-
-
+
+
Leállítás megszakítása
-
+
%n óra
-
-
+
+
%n perc
-
-
+
+
%n másodperc
-
+
%n ezredmásodperc
diff --git a/etc/Translation/LameXP_IT.ts b/etc/Translation/LameXP_IT.ts
index eb87d869..5afdf16c 100644
--- a/etc/Translation/LameXP_IT.ts
+++ b/etc/Translation/LameXP_IT.ts
@@ -3039,27 +3039,27 @@
La directory di destinazione è di SOLA LETTURA:
-
+
Nome File Sconosciuto
-
+
Titolo Sconosciuto
-
+
Artista Sconosciuto
-
+
Album Sconosciuto
-
+
Commento Sconosciuto
@@ -3080,22 +3080,22 @@
Saltato.
-
+
File di output di destinazione esiste già, questo file verrà saltato:
-
+
Se non si desidera saltare i file esistenti, cambiare la modalità di sovrascrittura!
-
+
File di output di destinazione esiste già, il file esistente verrà eliminato:
-
+
Impossibile eliminare il file di destinazione esistente, il file verrà salvato con un altro nome!
@@ -3123,88 +3123,88 @@
Chiudi
-
+
Codifica File In Corso
-
+
I tuoi files sono in corso di codifica, per favore sii paziente...
-
+
Mostra dettagli per il lavoro selezionato
-
+
Codifica File In Corso, attendere prego...
-
+
Interrotto! Attendi che venga concluso il lavoro in corso...
-
+
LameXP - Interrotto
-
+
Il processo è stato interrotto dall'utente.
-
+
LameXP - Errore
-
+
Almeno un file non è riuscito!
-
-
+
+
Tutti i files sono stati completati con successo.
-
+
LameXP - Fatto
-
+
Creazione della playlist fallita
-
+
Il file di playlist non può essere creato:
-
+
Creazione del file di playlist, attendere prego...
-
+
Il processo è stato interrotto prematuramente dall'utente!
-
+
Multi-threading abilitato: esecuzione %1 istanze in parallelo!
-
+
Apri Percorso File
@@ -3214,13 +3214,13 @@
Spegnere il computer, non appena tutti i file sono stati convertiti
-
+
Attenzione: Il Computer verrà spento tra %1 secondi...
-
-
+
+
Annullare l'Arresto
@@ -3243,47 +3243,47 @@
Spazio Libero su Disco (Cartella Temp)
-
+
Processo Completato in %1.
-
+
Filtra
-
+
Mostra Solo in Corso
-
+
Mostra Solo Riusciti
-
+
Mostra Solo Falliti
-
+
Mostra Solo Saltati
-
+
Mostra Tutti
-
+
Nessuno degli elementi corrisponde alle regole di filtraggio attuali
-
+
Il processo è stato interrotto dall'utente dopo %n file!
@@ -3291,7 +3291,7 @@
-
+
%n ora
@@ -3299,8 +3299,8 @@
-
-
+
+
%n minuto
@@ -3308,8 +3308,8 @@
-
-
+
+
%n secondo
@@ -3317,7 +3317,7 @@
-
+
%n millisecondo
@@ -3325,7 +3325,7 @@
-
+
Codifica: %n file di %1 completato finora, attendere prego...
@@ -3333,7 +3333,7 @@
-
+
Errore: %1 di %n file fallito (%2). Fare doppio clic su elementi non riusciti per informazioni dettagliate!
@@ -3341,7 +3341,7 @@
-
+
%n file saltato
@@ -3349,7 +3349,7 @@
-
+
Errore: %1 su %n file fallito. Fare doppio clic su elementi non riusciti per informazioni dettagliate!
@@ -3357,7 +3357,7 @@
-
+
Tutti i file completati con successo. Saltato %n file.
diff --git a/etc/Translation/LameXP_KR.ts b/etc/Translation/LameXP_KR.ts
index f49ba97d..fe5bb140 100644
--- a/etc/Translation/LameXP_KR.ts
+++ b/etc/Translation/LameXP_KR.ts
@@ -3030,27 +3030,27 @@
대상 출력 디렉터리에 쓰기 불가:
-
+
알수 없는 파일명
-
+
알수 없는 제목
-
+
알수 없는 가수
-
+
알수 없는 앨범
-
+
알수 없는 설명
@@ -3071,22 +3071,22 @@
건너뜀.
-
+
대상 출력 파일이 이미 존재합니다. 건너뛰기할 파일:
-
+
기존 파일을 건너뛰기하지 않으려면, 덮어쓰기 방식을 변경하시기 바랍니다!
-
+
대상 출력 파일이 이미 존재합니다. 건너뛰기할 파일:
-
+
기존 대상 파일 삭제 실패. 다른 파일명으로 저장됩니다!
@@ -3119,99 +3119,99 @@
닫기
-
+
선택 작업 자세히 표시
-
+
출력 파일 위치 찾아보기
-
+
인코딩 파일
-
+
파일을 인코딩하고 있습니다. 잠시만 기다려 주십시오...
-
+
파일 인코딩 중, 잠시만 기다려 주십시오...
-
+
멀티-쓰레딩 활성화: %1 인스턴스 동시 실행!
-
+
중단됨! 종료를 위해 실행중인 작업을 대기 중...
-
+
재생 목록 파일 생성 중, 잠시 기다려 주십시오...
-
+
처리가 사용자에 의해 완전히 중단되었습니다!
-
+
LameXP - 중단됨
-
+
처리가 사용자에 의해 중단되었습니다.
-
+
LameXP - 오류
-
+
최소한 한 개의 파일이 실패되었습니다!
-
-
+
+
모든 파일을 성공적으로 인코딩 완료하였습니다.
-
+
LameXP - 완료
-
+
재생 목록 생성 실패
-
+
재생 목록 파일을 생성할 수 없음:
-
+
경고: 컴퓨터가 %1초 후 종료됩니다...
-
-
+
+
컴퓨터 종료 취소
@@ -3234,112 +3234,112 @@
여유 디스크 공간(임시 폴더)
-
+
작업 경과 시간: %1 소요됨.
-
+
필터링 로그 항목
-
+
실행 중인 항목만 표시
-
+
성공한 항목만 표시
-
+
실패된 항목만 표시
-
+
건너뛴 항목만 표시
-
+
모든 항목 표시
-
+
현재 필터링 규칙과 일치하지 항목이 없습니다.
-
+
%n 파일 후 사용자에 의해 작업이 취소되었습니다!
-
+
%n 시간
-
-
+
+
%n 분
-
-
+
+
%n 초
-
+
%n ms
-
+
인코딩: 현재 %n / %1 파일 완료됨, 잠시만 기다려 주십시오...
-
+
오류: %1/%n 파일 실패 (%2). 자세한 정보를 보려면 실패 항목을 더블 클릭하십시오!
-
+
%n 파일 건너뜀
-
+
오류: : %1 / %n 파일 실패. 자세한 정보를 보려면 실패 항목을 더블 클릭하십시오!
-
+
모든 파일들이 성공적으로 완료되었습니다. %n 파일 건너뜀.
diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts
index 9ef2551f..b460d4d1 100644
--- a/etc/Translation/LameXP_PL.ts
+++ b/etc/Translation/LameXP_PL.ts
@@ -3063,47 +3063,47 @@
Nie można zapisać do lokalizacji docelowej:
-
+
Nieznana nazwa pliku
-
+
Nieznany Tytuł
-
+
Nieznany Artysta
-
+
Nieznany Album
-
+
Nieznany Komentarz
-
+
Plik wynikowy już istnieje, zostanie pominięty plik:
-
+
Jeśli nie chcesz aby istniejące pliki były pomijane, zmień tryb nadpisywania!
-
+
Plik wynikowy już istnieje, zostanie usunięty plik:
-
+
Usuwanie istniejącego pliku zakończone niepowodzeniem, nowy plik zostanie zapisany pod inną nazwą!
@@ -3154,72 +3154,72 @@
Powrót
-
+
Pokaż szczegóły wybranego zadania
-
+
Wybierz lokalizację dla plików wyjściowych
-
+
Filtruj długie pozycje
-
+
Pokaż tylko trwające
-
+
Pokaż tylko zakończone pomyślnie
-
+
Pokaż tylko zakończone niepowodzeniem
-
+
Pokaż tylko pominięte
-
+
Pokaż wszystkie pozycje
-
+
Kompresowanie plików
-
+
Twoje pliki są właśnie kompresowane, prosze być cierpliwy...
-
+
Kompresowanie plików, prosze czekać...
-
+
Wielowątkowosć włączona: Równolegle wykonywanych jest %1 kodowań!
-
+
Przerwano! Czekanie na wyłączenie procesu...
-
+
Kompresowanie: %n plik z %1 został do tej pory zakończony, prosze czekać...
@@ -3228,17 +3228,17 @@
-
+
Tworzenie pliku playlisty, prosze czekać...
-
+
Proces został przedwcześnie zakończony przez użytkownika!
-
+
Proces został zakończony przez użytkownika po zakończeniu %n pliku!
@@ -3247,22 +3247,22 @@
-
+
LameXP - Przerwano
-
+
Proces został przerwany przez użytkownika.
-
+
Proces został zakończony po %1.
-
+
Błąd: %1 z %n pliku zakończono niepowodzeniem (%2). Kliknij dwukrotnie aby uzyskać więcej informacji!
@@ -3271,7 +3271,7 @@
-
+
pominięto %n plik
@@ -3280,7 +3280,7 @@
-
+
Błąd: %1 z %n pliku zakończono niepowodzeniem. Kliknij dwukrotnie aby uzyskać więcej informacji!
@@ -3289,7 +3289,7 @@
-
+
Wszystkie zadania wykonano pomyślnie. Pominięto %n plik.
@@ -3298,54 +3298,54 @@
-
+
LameXP - Błąd
-
+
Przynajmniej jeden plik nie został skompresowany!
-
-
+
+
Kompresja wszystkich plików zakończona powodzeniem.
-
+
LameXP - Zrobione
-
+
Żadna z pozycji nie spełnia reguł filtra
-
+
Tworzenie playlisty zakończone niepowodzeniem
-
+
Playlista nie mogła zostać utworzona:
-
+
Ostrzeżenie: Komputer zostanie zamknięty za %1 sekund/y...
-
-
+
+
Anuluj wyłączenie komputera
-
+
%n godzina
@@ -3354,8 +3354,8 @@
-
-
+
+
%n minuta
@@ -3364,8 +3364,8 @@
-
-
+
+
%n sekunda
@@ -3374,7 +3374,7 @@
-
+
%n milisekunda
diff --git a/etc/Translation/LameXP_RU.ts b/etc/Translation/LameXP_RU.ts
index 49d73052..5b5f6b1d 100644
--- a/etc/Translation/LameXP_RU.ts
+++ b/etc/Translation/LameXP_RU.ts
@@ -3054,27 +3054,27 @@
Папка для выходных файлов недоступна для записи:
-
+
Неизвестное имя файла
-
+
Неизвестное Название
-
+
Неизвестный Артист
-
+
Неизвестный Альбом
-
+
Неизвестный Комментарий
@@ -3095,22 +3095,22 @@
Пропущен.
-
+
Файл уже существует, будет пропущен:
-
+
Если Вы не хотите пропускать уже существующие файлы, пожалуйста, измените режим перезаписи!
-
+
Файл уже существует, будет удалён:
-
+
Ошибка удаления существующего файла, будет сохранение с другим именем!
@@ -3138,88 +3138,88 @@
Закрыть
-
+
Показать подробности задания
-
+
Открыть папку с преобразованным файлом
-
+
Преобразование Файлов
-
+
Ваши файлы кодируются, пожалуйста, проявите терпение...
-
+
Кодирую файлы, пожалуйста, подождите...
-
+
Многопоточность включена: Выполняется %1 экземпляра(ов) параллельно!
-
+
Отменено! Ожидание завершения запущенных заданий...
-
+
Создаю плэйлист, пожалуйста, подождите...
-
+
Процесс был преждевременно прерван пользователем!
-
+
LameXP - Отменено
-
+
Процесс был прерван пользователем.
-
+
LameXP - Ошибка
-
+
Ошибка как минимум с 1 файлом!
-
+
LameXP - Завершено
-
-
+
+
Все файлы преобразовались успешно.
-
+
Не могу создать плэйлист
-
+
Плэйлист не может быть создан:
@@ -3229,13 +3229,13 @@
Выключить компьютер после завершения преобразования всех файлов
-
+
Внимание: Компьютер выключится через %1 секунд...
-
-
+
+
Отменить выключение
@@ -3258,47 +3258,47 @@
Свободное место на диске (Временная папка)
-
+
Процесс завершился спустя %1.
-
+
Фильтр
-
+
Показать только выполняемые
-
+
Показать только готовые
-
+
Показать только с ошибками
-
+
Показать только пропущенные
-
+
Показать все
-
+
Ни один из элементов не удовлетворяет правилам фильтра
-
+
Процесс был прерван пользователем после %n файла!
@@ -3307,7 +3307,7 @@
-
+
%n час
@@ -3316,8 +3316,8 @@
-
-
+
+
%n минута
@@ -3326,8 +3326,8 @@
-
-
+
+
%n секунда
@@ -3336,7 +3336,7 @@
-
+
%n миллисекунда
@@ -3345,7 +3345,7 @@
-
+
Кодирование: %n файл из %1 завершено, пожалуйста ждите...
@@ -3354,7 +3354,7 @@
-
+
Ошибка в: %1 из %n файла (%2). Узнайте подробности по двойному щелчку на элементе с ошибкой!
@@ -3363,7 +3363,7 @@
-
+
%n файл пропущен
@@ -3372,7 +3372,7 @@
-
+
Ошибка в: %1 из %n файла. Узнайте подробности по двойному щелчку на элементе с ошибкой!
@@ -3381,7 +3381,7 @@
-
+
Все файлы успешно преобразованы. Пропущен %n файл.
diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts
index 313d448c..23dd2e34 100644
--- a/etc/Translation/LameXP_SV.ts
+++ b/etc/Translation/LameXP_SV.ts
@@ -3056,47 +3056,47 @@
Målmappen är INTE skrivbar:
-
+
Okänt filnamn
-
+
Okänd titel
-
+
Okänd artist
-
+
Okänt album
-
+
Okänd kommentar
-
+
Målfilen finns redan! Den här filen hoppas över:
-
+
Om du inte vill att befintliga filer hoppas över, måste du ändra överskrivningsläge!
-
+
Målfilen finns redan! Befintlig fil kommer att tas bort:
-
+
Kunde inte ta bort befintlig målfil. Sparar med annat filnamn!
@@ -3147,72 +3147,72 @@
Stäng
-
+
Visa detaljerad info för markerad åtgärd
-
+
Öppna utdatamnappen
-
+
Filtrera loggobjekt
-
+
Visa endast aktiva
-
+
Visa endast klara
-
+
Visa endast misslyckade
-
+
Visa endast överhoppade
-
+
Visa alla
-
+
Kodar om filer
-
+
Dina filer kodas om, vänta...
-
+
Kodar om filer, vänta...
-
+
Flertrådskörning aktiverad: Kör %1 parallella instanser!
-
+
Avbrutet! Väntar på att aktiva processer skall avslutas...
-
+
Kodar! %n fil av%1 slutförd. vänta...
@@ -3220,17 +3220,17 @@
-
+
Skapar spelningslista, vänta...
-
+
Åtgärden avbröts i förtid av användaren!
-
+
Åtgärden avbröts av användaren efter %n fil!
@@ -3238,22 +3238,22 @@
-
+
LameXP - Avbrutet
-
+
Åtgärden avbröts av användaren.
-
+
Åtgärden slutförd efter %1.
-
+
Fel! %1 av %n filer misslyckades (%2). Dubbelklicka på misslyckat objekt för info!
@@ -3261,7 +3261,7 @@
-
+
%n fil hoppades över
@@ -3269,7 +3269,7 @@
-
+
Fel! %1 av %n filer misslyckades. Dubbelklicka på misslyckat objekt för info!
@@ -3277,7 +3277,7 @@
-
+
Alla filer korrekt slutförda. %n fil hoppades över.
@@ -3285,54 +3285,54 @@
-
+
LameXP - Fel
-
+
Minst en fil har misslyckats!
-
-
+
+
Alla filer korrekt omkodade.
-
+
LameXP - Klar
-
+
Inga objekt matchar aktuell filtrering
-
+
Kunde inte skapa spelningslista
-
+
Spelningslistan kunde inte skapas:
-
+
Varning! Datorn kommer att stängas av om %1 sekunder...
-
-
+
+
Avbryt avstängning
-
+
%n timma
@@ -3340,8 +3340,8 @@
-
-
+
+
%n minut
@@ -3349,8 +3349,8 @@
-
-
+
+
%n sekund
@@ -3358,7 +3358,7 @@
-
+
%n millisekund
diff --git a/etc/Translation/LameXP_TW.ts b/etc/Translation/LameXP_TW.ts
index bbf3654f..ac1a7306 100644
--- a/etc/Translation/LameXP_TW.ts
+++ b/etc/Translation/LameXP_TW.ts
@@ -3030,27 +3030,27 @@
目標輸出目錄不是可寫:
-
+
未知文件名稱
-
+
未知標題
-
+
未知藝術家
-
+
未知專輯
-
+
未知評論
@@ -3071,22 +3071,22 @@
跳過.
-
+
目標輸出文件已經存在, 將跳過此文件:
-
+
如果你不希望被跳過已存在的文件, 請更改覆蓋模式!
-
+
目標輸出文件已經存在, 要刪除現有的文件:
-
+
無法刪除現有目標文件, 將保存到另一個文件名!
@@ -3114,88 +3114,88 @@
關閉
-
+
顯示選定的項目的詳細信息
-
+
文件編碼
-
+
正在為您的文件編碼,請耐心等待...
-
+
正在編碼文件,請稍候...
-
+
中止! 正在等待運行項目終止...
-
+
創建播放列表文件,請稍候...
-
+
LameXP - 中止
-
+
進程被用戶終止.
-
+
LameXP - 錯誤
-
+
至少一個文件失敗 !
-
-
+
+
已成功完成的所有文件.
-
+
LameXP - 完成了
-
+
播放列表創建失敗
-
+
無法創建播放列表文件:
-
+
用戶提前中止了進程 !
-
+
多線程啟用: 以并行方式運行 %1 個實例 !
-
+
瀏覽輸出文件的位置
@@ -3205,13 +3205,13 @@
所有文件都轉換后自動關閉計算機
-
+
警告:計算機將在 %1 秒關機...
-
-
+
+
取消關機
@@ -3234,112 +3234,112 @@
可用的磁盤空間(Temp文件夾)
-
+
過程執行了 %1.
-
+
過濾日志項目
-
+
顯示僅運行
-
+
顯示僅成功
-
+
顯示僅失敗
-
+
顯示僅跳過
-
+
顯示所有項目
-
+
此項目都不匹配當前的過濾規則
-
+
用戶在第 %n 個文件時進程被中止!
-
+
%n 小時
-
-
+
+
%n 分鐘
-
-
+
+
%n 秒
-
+
%n 毫秒
-
+
編碼: %1 個文件迄今已完成 %n 個文件 , 請稍候...
-
+
錯誤: %n 個文件 %1 失敗 %2. 雙擊失敗的項目的詳細信息!
-
+
跳過 %n 個文件
-
+
錯誤: 總 %n 個文件 %1 個失敗. 雙擊失敗的項目的詳細信息!
-
+
所有文件已成功完成. 跳過 %n 個文件.
diff --git a/etc/Translation/LameXP_UK.ts b/etc/Translation/LameXP_UK.ts
index f64f3e95..2ddacf64 100644
--- a/etc/Translation/LameXP_UK.ts
+++ b/etc/Translation/LameXP_UK.ts
@@ -3047,27 +3047,27 @@
До вихідної теки неможливо проводити запис:
-
+
Невідома назва файла
-
+
Невідомий заголовок
-
+
Невідомий виконавець
-
+
Невідомий альбом
-
+
Невідомий коментар
@@ -3088,22 +3088,22 @@
Пропущено.
-
+
Вихідний цільовий файл вже існує, спроба пропустити цей файл:
-
+
Якщо ви не хочете, щоб існуючі файли були пропущені, будь ласка, змініть режим перезапису!
-
+
Вихідний цільовий файл вже існує, спроба видалити існуючий файл:
-
+
Неможливо видалити існуючий файл, збереження буде проведено до файла з іншою назвою!
@@ -3131,88 +3131,88 @@
Вийти
-
+
Показати деталі поточного завдання
-
+
Файли, що кодуються
-
+
Йде кодування ваших файлів, будь ласка, зачекайте...
-
+
Йде кодування файлів, будь ласка, зачекайте...
-
+
Багатопотоковість увімкнено: Паралельно запущено %1 копій!
-
+
Перервано! Чекаємо на завершення запущених завдань...
-
+
Йде створення списку відтворення, будь ласка, зачекайте...
-
+
Процес було перервано користувачем завчасно!
-
+
LameXP - Перервано
-
+
Процес було перервано користувачем.
-
+
LameXP - Помилка
-
+
Стався збій при обробці щонайменше одного файла!
-
+
LameXP - Виконано
-
-
+
+
Обробка усіх файлів успішно завершена.
-
+
Збій створення списка відтворення
-
+
Неможливо створити файл списка відтворення:
-
+
Відкрити теку з вихідними файлами
@@ -3222,13 +3222,13 @@
Вимкнути комп'ютер після завершення конвертації усіх файлів
-
+
Попередження: Комп'ютер буде вимкнено через %1 секунд...
-
-
+
+
Відмінити Вимкнення
@@ -3251,47 +3251,47 @@
Вільне місце на диску (тека тимчасових файлів)
-
+
Процес тривав %1.
-
+
Фільтрувати записи журналу
-
+
Відображати лише запущені
-
+
Відображати лише завершені успішно
-
+
Відображати лише завершені невдачею
-
+
Відображати лише пропущені
-
+
Відображати всі записи
-
+
Жодного запису не підпадає під поточні правила фільтрування
-
+
Процес було перервано користувачем після %n файлу!
@@ -3300,7 +3300,7 @@
-
+
%n годину
@@ -3309,8 +3309,8 @@
-
-
+
+
%n хвилину
@@ -3319,8 +3319,8 @@
-
-
+
+
%n секунду
@@ -3329,7 +3329,7 @@
-
+
%n мілісекунду
@@ -3338,7 +3338,7 @@
-
+
Кодування: %n файл з %1 поки що оброблено, будь ласка, зачекайте...
@@ -3347,7 +3347,7 @@
-
+
Помилка: збій обробки %1 з %n файлів (%2). Для детальної інформації необхідно зробити подвійний клік на потрібних елементах!
@@ -3356,7 +3356,7 @@
-
+
%n файл пропущено
@@ -3365,7 +3365,7 @@
-
+
Помилка: збій обробки %1 з %n файлів. Для детальної інформації необхідно зробити подвійний клік на потрібних елементах!
@@ -3374,7 +3374,7 @@
-
+
Всі файли оброблено успішно. Пропущено %n файл.
diff --git a/etc/Translation/LameXP_ZH.ts b/etc/Translation/LameXP_ZH.ts
index 95b82818..fd54aeac 100644
--- a/etc/Translation/LameXP_ZH.ts
+++ b/etc/Translation/LameXP_ZH.ts
@@ -3030,27 +3030,27 @@
目标输出目录不可写:
-
+
未知文件名称
-
+
未知标题
-
+
未知艺术家
-
+
未知专辑
-
+
未知注释
@@ -3071,22 +3071,22 @@
跳过。
-
+
目标输出文件已经存在, 将跳过此文件:
-
+
如果你不希望跳过已存在的文件, 请更改覆盖模式!
-
+
目标输出文件已经存在, 将删除现有的文件:
-
+
无法删除现有目标文件, 将保存为另一个文件名!
@@ -3114,88 +3114,88 @@
关闭
-
+
显示选定的项目的详细信息
-
+
编码文件
-
+
正在编码您的文件,请耐心等待...
-
+
正在编码文件,请稍候...
-
+
中止! 正在等待运行项目终止...
-
+
创建播放列表文件,请稍候...
-
+
LameXP - 中止
-
+
进程被用户中止。
-
+
LameXP - 错误
-
+
至少一个文件失败 !
-
-
+
+
已成功完成所有文件。
-
+
LameXP - 完成
-
+
播放列表创建失败
-
+
无法创建播放列表文件:
-
+
用户提前中止了进程!
-
+
多线程启用: 以并行方式运行 %1 个实例 !
-
+
浏览输出文件的位置
@@ -3205,13 +3205,13 @@
所有文件都转换后自动关闭计算机
-
+
警告:计算机将在 %1 秒后关机...
-
-
+
+
取消关机
@@ -3234,112 +3234,112 @@
可用磁盘空间(Temp文件夹)
-
+
过程执行了 %1。
-
+
筛选日志项目
-
+
仅显示运行
-
+
仅显示成功
-
+
仅显示失败
-
+
仅显示跳过
-
+
显示所有项目
-
+
所有项目都不匹配当前的筛选规则
-
+
用户在第 %n 个文件时中止进程!
-
+
%n 小时
-
-
+
+
%n 分钟
-
-
+
+
%n 秒
-
+
%n 毫秒
-
+
编码: %1 个文件迄今已完成 %n 个文件 , 请稍候...
-
+
错误: %n 个文件中 %1 个失败 (%2). 双击查看失败项目的详细信息!
-
+
跳过 %n 个文件
-
+
错误: %n 个文件中 %1 个失败。 双击失败的项目的详细信息!
-
+
所有文件已成功完成。 跳过 %n 个文件。
diff --git a/src/Config.h b/src/Config.h
index a2060089..073dd26b 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -34,8 +34,8 @@
#define VER_LAMEXP_MINOR_HI 1
#define VER_LAMEXP_MINOR_LO 2
#define VER_LAMEXP_TYPE Alpha
-#define VER_LAMEXP_PATCH 2
-#define VER_LAMEXP_BUILD 1729
+#define VER_LAMEXP_PATCH 3
+#define VER_LAMEXP_BUILD 1730
#define VER_LAMEXP_CONFG 1700
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/Dialog_Processing.cpp b/src/Dialog_Processing.cpp
index 538bd084..6d114ce9 100644
--- a/src/Dialog_Processing.cpp
+++ b/src/Dialog_Processing.cpp
@@ -30,6 +30,7 @@
#include "Model_FileList.h"
#include "Model_Progress.h"
#include "Model_Settings.h"
+#include "Model_FileExts.h"
#include "Thread_Process.h"
#include "Thread_CPUObserver.h"
#include "Thread_RAMObserver.h"
@@ -148,7 +149,7 @@ private:
// Constructor
////////////////////////////////////////////////////////////
-ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFileModel_MetaInfo *metaInfo, SettingsModel *settings, QWidget *parent)
+ProcessingDialog::ProcessingDialog(FileListModel *const fileListModel, const AudioFileModel_MetaInfo *const metaInfo, const SettingsModel *const settings, QWidget *const parent)
:
QDialog(parent),
ui(new Ui::ProcessingDialog),
@@ -157,10 +158,6 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
m_settings(settings),
m_metaInfo(metaInfo),
m_shutdownFlag(SHUTDOWN_FLAG_NONE),
- m_threadPool(NULL),
- m_diskObserver(NULL),
- m_cpuObserver(NULL),
- m_ramObserver(NULL),
m_progressViewFilter(-1),
m_initThreads(0),
m_defaultColor(new QColor()),
@@ -193,34 +190,34 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
connect(ui->button_AbortProcess, SIGNAL(clicked()), this, SLOT(abortEncoding()));
//Init progress indicator
- m_progressIndicator = new QMovie(":/images/Working.gif");
+ m_progressIndicator.reset(new QMovie(":/images/Working.gif"));
m_progressIndicator->setCacheMode(QMovie::CacheAll);
- ui->label_headerWorking->setMovie(m_progressIndicator);
+ ui->label_headerWorking->setMovie(m_progressIndicator.data());
ui->progressBar->setValue(0);
//Init progress model
- m_progressModel = new ProgressModel();
- ui->view_log->setModel(m_progressModel);
+ m_progressModel.reset(new ProgressModel());
+ ui->view_log->setModel(m_progressModel.data());
ui->view_log->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
ui->view_log->verticalHeader()->hide();
ui->view_log->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
ui->view_log->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
ui->view_log->viewport()->installEventFilter(this);
- connect(m_progressModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(progressModelChanged()));
- connect(m_progressModel, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), this, SLOT(progressModelChanged()));
- connect(m_progressModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(progressModelChanged()));
- connect(m_progressModel, SIGNAL(modelReset()), this, SLOT(progressModelChanged()));
+ connect(m_progressModel.data(), SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(progressModelChanged()));
+ connect(m_progressModel.data(), SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), this, SLOT(progressModelChanged()));
+ connect(m_progressModel.data(), SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(progressModelChanged()));
+ connect(m_progressModel.data(), SIGNAL(modelReset()), this, SLOT(progressModelChanged()));
connect(ui->view_log, SIGNAL(activated(QModelIndex)), this, SLOT(logViewDoubleClicked(QModelIndex)));
connect(ui->view_log->horizontalHeader(), SIGNAL(sectionResized(int,int,int)), this, SLOT(logViewSectionSizeChanged(int,int,int)));
//Create context menu
- m_contextMenu = new QMenu();
- QAction *contextMenuDetailsAction = m_contextMenu->addAction(QIcon(":/icons/zoom.png"), tr("Show details for selected job"));
+ m_contextMenu.reset(new QMenu());
+ QAction *contextMenuDetailsAction = m_contextMenu->addAction(QIcon(":/icons/zoom.png"), tr("Show details for selected job"));
QAction *contextMenuShowFileAction = m_contextMenu->addAction(QIcon(":/icons/folder_go.png"), tr("Browse Output File Location"));
m_contextMenu->addSeparator();
//Create "filter" context menu
- m_progressViewFilterGroup = new QActionGroup(this);
+ m_progressViewFilterGroup.reset(new QActionGroup(this));
QAction *contextMenuFilterAction[5] = {NULL, NULL, NULL, NULL, NULL};
if(QMenu *filterMenu = m_contextMenu->addMenu(QIcon(":/icons/filter.png"), tr("Filter Log Items")))
{
@@ -237,27 +234,24 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
}
//Create info label
- if(m_filterInfoLabel = new QLabel(ui->view_log))
- {
- m_filterInfoLabel->setFrameShape(QFrame::NoFrame);
- m_filterInfoLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- m_filterInfoLabel->setUserData(0, new IntUserData(-1));
- SET_FONT_BOLD(m_filterInfoLabel, true);
- SET_TEXT_COLOR(m_filterInfoLabel, Qt::darkGray);
- m_filterInfoLabel->setContextMenuPolicy(Qt::CustomContextMenu);
- connect(m_filterInfoLabel, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuTriggered(QPoint)));
- m_filterInfoLabel->hide();
- }
- if(m_filterInfoLabelIcon = new QLabel(ui->view_log))
- {
- m_filterInfoLabelIcon->setFrameShape(QFrame::NoFrame);
- m_filterInfoLabelIcon->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
- m_filterInfoLabelIcon->setContextMenuPolicy(Qt::CustomContextMenu);
- const QIcon &ico = m_progressModel->getIcon(ProgressModel::JobState(-1));
- m_filterInfoLabelIcon->setPixmap(ico.pixmap(16, 16));
- connect(m_filterInfoLabelIcon, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuTriggered(QPoint)));
- m_filterInfoLabelIcon->hide();
- }
+ m_filterInfoLabel.reset(new QLabel(ui->view_log));
+ m_filterInfoLabel->setFrameShape(QFrame::NoFrame);
+ m_filterInfoLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
+ m_filterInfoLabel->setUserData(0, new IntUserData(-1));
+ SET_FONT_BOLD(m_filterInfoLabel, true);
+ SET_TEXT_COLOR(m_filterInfoLabel, Qt::darkGray);
+ m_filterInfoLabel->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(m_filterInfoLabel.data(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuTriggered(QPoint)));
+ m_filterInfoLabel->hide();
+
+ m_filterInfoLabelIcon .reset(new QLabel(ui->view_log));
+ m_filterInfoLabelIcon->setFrameShape(QFrame::NoFrame);
+ m_filterInfoLabelIcon->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
+ m_filterInfoLabelIcon->setContextMenuPolicy(Qt::CustomContextMenu);
+ const QIcon &ico = m_progressModel->getIcon(ProgressModel::JobState(-1));
+ m_filterInfoLabelIcon->setPixmap(ico.pixmap(16, 16));
+ connect(m_filterInfoLabelIcon.data(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuTriggered(QPoint)));
+ m_filterInfoLabelIcon->hide();
//Connect context menu
ui->view_log->setContextMenuPolicy(Qt::CustomContextMenu);
@@ -270,6 +264,13 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
}
SET_FONT_BOLD(contextMenuDetailsAction, true);
+ //Setup file extensions
+ if(!m_settings->renameFiles_fileExtension().isEmpty())
+ {
+ m_fileExts.reset(new FileExtsModel());
+ m_fileExts->importItems(m_settings->renameFiles_fileExtension());
+ }
+
//Enque jobs
if(fileListModel)
{
@@ -283,7 +284,7 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
ui->label_headerStatus->setText(QString("%1
%2").arg(tr("Encoding Files"), tr("Your files are being encoded, please be patient...")));
//Enable system tray icon
- connect(m_systemTray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(systemTrayActivated(QSystemTrayIcon::ActivationReason)));
+ connect(m_systemTray.data(), SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(systemTrayActivated(QSystemTrayIcon::ActivationReason)));
//Init other vars
m_runningThreads = 0;
@@ -304,12 +305,12 @@ ProcessingDialog::~ProcessingDialog(void)
{
ui->view_log->setModel(NULL);
- if(m_progressIndicator)
+ if(!m_progressIndicator.isNull())
{
m_progressIndicator->stop();
}
- if(m_diskObserver)
+ if(!m_diskObserver.isNull())
{
m_diskObserver->stop();
if(!m_diskObserver->wait(15000))
@@ -319,7 +320,7 @@ ProcessingDialog::~ProcessingDialog(void)
}
}
- if(m_cpuObserver)
+ if(!m_cpuObserver.isNull())
{
m_cpuObserver->stop();
if(!m_cpuObserver->wait(15000))
@@ -329,7 +330,7 @@ ProcessingDialog::~ProcessingDialog(void)
}
}
- if(m_ramObserver)
+ if(!m_ramObserver.isNull())
{
m_ramObserver->stop();
if(!m_ramObserver->wait(15000))
@@ -339,7 +340,7 @@ ProcessingDialog::~ProcessingDialog(void)
}
}
- if(m_threadPool)
+ if(!m_threadPool.isNull())
{
if(!m_threadPool->waitForDone(100))
{
@@ -348,19 +349,6 @@ ProcessingDialog::~ProcessingDialog(void)
}
}
- MUTILS_DELETE(m_progressIndicator);
- MUTILS_DELETE(m_systemTray);
- MUTILS_DELETE(m_diskObserver);
- MUTILS_DELETE(m_cpuObserver);
- MUTILS_DELETE(m_ramObserver);
- MUTILS_DELETE(m_progressViewFilterGroup);
- MUTILS_DELETE(m_filterInfoLabel);
- MUTILS_DELETE(m_filterInfoLabelIcon);
- MUTILS_DELETE(m_contextMenu);
- MUTILS_DELETE(m_progressModel);
- MUTILS_DELETE(m_threadPool);
- MUTILS_DELETE(m_defaultColor);
-
m_taskbar->setOverlayIcon(NULL);
m_taskbar->setTaskbarState(MUtils::Taskbar7::TASKBAR_STATE_NONE);
@@ -513,25 +501,25 @@ void ProcessingDialog::initEncoding(void)
if(!m_diskObserver)
{
- m_diskObserver = new DiskObserverThread(m_settings->customTempPathEnabled() ? m_settings->customTempPath() : MUtils::temp_folder());
- connect(m_diskObserver, SIGNAL(messageLogged(QString,int)), m_progressModel, SLOT(addSystemMessage(QString,int)), Qt::QueuedConnection);
- connect(m_diskObserver, SIGNAL(freeSpaceChanged(quint64)), this, SLOT(diskUsageHasChanged(quint64)), Qt::QueuedConnection);
+ m_diskObserver.reset(new DiskObserverThread(m_settings->customTempPathEnabled() ? m_settings->customTempPath() : MUtils::temp_folder()));
+ connect(m_diskObserver.data(), SIGNAL(messageLogged(QString,int)), m_progressModel.data(), SLOT(addSystemMessage(QString,int)), Qt::QueuedConnection);
+ connect(m_diskObserver.data(), SIGNAL(freeSpaceChanged(quint64)), this, SLOT(diskUsageHasChanged(quint64)), Qt::QueuedConnection);
m_diskObserver->start();
}
if(!m_cpuObserver)
{
- m_cpuObserver = new CPUObserverThread();
- connect(m_cpuObserver, SIGNAL(currentUsageChanged(double)), this, SLOT(cpuUsageHasChanged(double)), Qt::QueuedConnection);
+ m_cpuObserver.reset(new CPUObserverThread());
+ connect(m_cpuObserver.data(), SIGNAL(currentUsageChanged(double)), this, SLOT(cpuUsageHasChanged(double)), Qt::QueuedConnection);
m_cpuObserver->start();
}
if(!m_ramObserver)
{
- m_ramObserver = new RAMObserverThread();
- connect(m_ramObserver, SIGNAL(currentUsageChanged(double)), this, SLOT(ramUsageHasChanged(double)), Qt::QueuedConnection);
+ m_ramObserver.reset(new RAMObserverThread());
+ connect(m_ramObserver.data(), SIGNAL(currentUsageChanged(double)), this, SLOT(ramUsageHasChanged(double)), Qt::QueuedConnection);
m_ramObserver->start();
}
- if(!m_threadPool)
+ if(m_threadPool.isNull())
{
unsigned int maximumInstances = qBound(0U, m_settings->maximumInstances(), MAX_INSTANCES);
if(maximumInstances < 1)
@@ -546,7 +534,7 @@ void ProcessingDialog::initEncoding(void)
m_progressModel->addSystemMessage(tr("Multi-threading enabled: Running %1 instances in parallel!").arg(QString::number(maximumInstances)));
}
- m_threadPool = new QThreadPool();
+ m_threadPool.reset(new QThreadPool());
m_threadPool->setMaxThreadCount(maximumInstances);
}
@@ -624,6 +612,10 @@ void ProcessingDialog::startNextJob(void)
{
thread->setRenameRegExp(m_settings->renameFiles_regExpSearch(), m_settings->renameFiles_regExpReplace());
}
+ if(!m_fileExts.isNull())
+ {
+ thread->setRenameFileExt(m_fileExts->apply(QString::fromUtf8(EncoderRegistry::getEncoderInfo(m_settings->compressionEncoder())->extension())));
+ }
if(m_settings->overwriteMode() != SettingsModel::Overwrite_KeepBoth)
{
thread->setOverwriteMode((m_settings->overwriteMode() == SettingsModel::Overwrite_SkipFile), (m_settings->overwriteMode() == SettingsModel::Overwrite_Replaces));
@@ -633,10 +625,10 @@ void ProcessingDialog::startNextJob(void)
//Connect thread signals
connect(thread, SIGNAL(processFinished()), this, SLOT(doneEncoding()), Qt::QueuedConnection);
- connect(thread, SIGNAL(processStateInitialized(QUuid,QString,QString,int)), m_progressModel, SLOT(addJob(QUuid,QString,QString,int)), Qt::QueuedConnection);
- connect(thread, SIGNAL(processStateChanged(QUuid,QString,int)), m_progressModel, SLOT(updateJob(QUuid,QString,int)), Qt::QueuedConnection);
+ connect(thread, SIGNAL(processStateInitialized(QUuid,QString,QString,int)), m_progressModel.data(), SLOT(addJob(QUuid,QString,QString,int)), Qt::QueuedConnection);
+ connect(thread, SIGNAL(processStateChanged(QUuid,QString,int)), m_progressModel.data(), SLOT(updateJob(QUuid,QString,int)), Qt::QueuedConnection);
connect(thread, SIGNAL(processStateFinished(QUuid,QString,int)), this, SLOT(processFinished(QUuid,QString,int)), Qt::QueuedConnection);
- connect(thread, SIGNAL(processMessageLogged(QUuid,QString)), m_progressModel, SLOT(appendToLog(QUuid,QString)), Qt::QueuedConnection);
+ connect(thread, SIGNAL(processMessageLogged(QUuid,QString)), m_progressModel.data(), SLOT(appendToLog(QUuid,QString)), Qt::QueuedConnection);
connect(this, SIGNAL(abortRunningTasks()), thread, SLOT(abort()), Qt::DirectConnection);
//Initialize thread object
@@ -646,7 +638,7 @@ void ProcessingDialog::startNextJob(void)
}
//Give it a go!
- if(!thread->start(m_threadPool))
+ if(!thread->start(m_threadPool.data()))
{
qWarning("Job failed to start or file was skipped!");
}
diff --git a/src/Dialog_Processing.h b/src/Dialog_Processing.h
index 0ee65b9f..56d7753b 100644
--- a/src/Dialog_Processing.h
+++ b/src/Dialog_Processing.h
@@ -44,6 +44,7 @@ class QThreadPool;
class QElapsedTimer;
class RAMObserverThread;
class SettingsModel;
+class FileExtsModel;
enum lamexp_shutdownFlag_t
{
@@ -70,7 +71,7 @@ class ProcessingDialog : public QDialog
Q_OBJECT
public:
- ProcessingDialog(FileListModel *fileListModel, const AudioFileModel_MetaInfo *metaInfo, SettingsModel *settings, QWidget *parent = 0);
+ ProcessingDialog(FileListModel *const fileListModel, const AudioFileModel_MetaInfo *const metaInfo, const SettingsModel *const settings, QWidget *const parent = 0);
~ProcessingDialog(void);
int getShutdownFlag(void) { return m_shutdownFlag; }
@@ -113,17 +114,17 @@ private:
bool shutdownComputer(void);
QString time2text(const qint64 &msec) const;
- QThreadPool *m_threadPool;
+ QScopedPointer m_threadPool;
QList m_pendingJobs;
- SettingsModel *m_settings;
+ const SettingsModel *const m_settings;
const AudioFileModel_MetaInfo *const m_metaInfo;
- QMovie *m_progressIndicator;
- ProgressModel *m_progressModel;
+ QScopedPointer m_progressIndicator;
+ QScopedPointer m_progressModel;
QMap m_playList;
- QMenu *m_contextMenu;
- QActionGroup *m_progressViewFilterGroup;
- QLabel *m_filterInfoLabel;
- QLabel *m_filterInfoLabelIcon;
+ QScopedPointer m_contextMenu;
+ QScopedPointer m_progressViewFilterGroup;
+ QScopedPointer m_filterInfoLabel;
+ QScopedPointer m_filterInfoLabelIcon;
unsigned int m_initThreads;
unsigned int m_runningThreads;
unsigned int m_currentFile;
@@ -134,13 +135,14 @@ private:
bool m_userAborted;
bool m_forcedAbort;
bool m_firstShow;
- QSystemTrayIcon *m_systemTray;
+ QScopedPointer m_systemTray;
int m_shutdownFlag;
- CPUObserverThread *m_cpuObserver;
- RAMObserverThread *m_ramObserver;
- DiskObserverThread *m_diskObserver;
+ QScopedPointer m_cpuObserver;
+ QScopedPointer m_ramObserver;
+ QScopedPointer m_diskObserver;
QScopedPointer m_totalTime;
int m_progressViewFilter;
- QColor *m_defaultColor;
+ QScopedPointer m_defaultColor;
+ QScopedPointer m_fileExts;
QScopedPointer m_taskbar;
};
diff --git a/src/Model_FileExts.cpp b/src/Model_FileExts.cpp
index 4d57093e..039cb27d 100644
--- a/src/Model_FileExts.cpp
+++ b/src/Model_FileExts.cpp
@@ -291,6 +291,20 @@ void FileExtsModel::importItems(const QString &data)
endResetModel();
}
+////////////////////////////////////////////////////////////
+// Apply Replacement
+////////////////////////////////////////////////////////////
+
+QString FileExtsModel::apply(const QString &originalExtension) const
+{
+ if((!m_replace.isEmpty()) && m_replace.contains(originalExtension.toLower()))
+ {
+ return m_replace.value(originalExtension);
+ }
+ return originalExtension;
+}
+
+
////////////////////////////////////////////////////////////
// Private Functions
////////////////////////////////////////////////////////////
diff --git a/src/Model_FileExts.h b/src/Model_FileExts.h
index 597ee812..3e93d437 100644
--- a/src/Model_FileExts.h
+++ b/src/Model_FileExts.h
@@ -49,6 +49,9 @@ public:
QString exportItems(void) const;
void importItems(const QString &data);
+ //Replace extension
+ QString apply(const QString &originalExtension) const;
+
signals:
void rowAppended(void);
diff --git a/src/Thread_Process.cpp b/src/Thread_Process.cpp
index eaa4542b..3a3685b6 100644
--- a/src/Thread_Process.cpp
+++ b/src/Thread_Process.cpp
@@ -128,7 +128,7 @@ bool ProcessThread::init(void)
return false;
}
-bool ProcessThread::start(QThreadPool *pool)
+bool ProcessThread::start(QThreadPool *const pool)
{
//Make sure object was initialized correctly
if(m_initialized < 0)
@@ -440,7 +440,8 @@ int ProcessThread::generateOutFileName(QString &outFileName)
const QString fileName = MUtils::clean_file_name(applyRegularExpression(applyRenamePattern(baseName, m_audioFile.metaInfo())));
//Generate full output path
- const QString fileExt = QString::fromUtf8(m_encoder->getEncoderInfo()->extension());
+
+ const QString fileExt = m_renameFileExt.isEmpty() ? QString::fromUtf8(m_encoder->getEncoderInfo()->extension()) : m_renameFileExt;
outFileName = QString("%1/%2.%3").arg(targetDir.canonicalPath(), fileName, fileExt);
//Skip file, if target file exists (optional!)
@@ -711,6 +712,15 @@ void ProcessThread::setRenameRegExp(const QString &search, const QString &replac
}
}
+void ProcessThread::setRenameFileExt(const QString &fileExtension)
+{
+ m_renameFileExt = MUtils::clean_file_name(fileExtension).simplified();
+ while(m_renameFileExt.startsWith('.'))
+ {
+ m_renameFileExt = m_renameFileExt.mid(1).trimmed();
+ }
+}
+
void ProcessThread::setOverwriteMode(const bool &bSkipExistingFile, const bool &bReplacesExisting)
{
if(bSkipExistingFile && bReplacesExisting)
diff --git a/src/Thread_Process.h b/src/Thread_Process.h
index 7c1a5e67..8db28038 100644
--- a/src/Thread_Process.h
+++ b/src/Thread_Process.h
@@ -43,11 +43,12 @@ public:
~ProcessThread(void);
bool init(void);
- bool start(QThreadPool *pool);
+ bool start(QThreadPool *const pool);
QUuid getId(void) { return m_jobId; }
void setRenamePattern(const QString &pattern);
void setRenameRegExp(const QString &search, const QString &replace);
+ void setRenameFileExt(const QString &fileExtension);
void setOverwriteMode(const bool &bSkipExistingFile, const bool &bReplacesExisting = false);
void addFilter(AbstractFilter *filter);
@@ -108,6 +109,7 @@ private:
QString m_renamePattern;
QString m_renameRegExp_Search;
QString m_renameRegExp_Replace;
+ QString m_renameFileExt;
int m_overwriteMode;
WaveProperties *m_propDetect;
QString m_outFileName;