OSDN Git Service

Updated CueImportDialog and CueSheetModel as well as the CueSheet helper classes...
authorLoRd_MuldeR <mulder2@gmx.de>
Sun, 13 Oct 2013 18:50:12 +0000 (20:50 +0200)
committerLoRd_MuldeR <mulder2@gmx.de>
Sun, 13 Oct 2013 18:50:12 +0000 (20:50 +0200)
14 files changed:
etc/Translation/Blank.ts
etc/Translation/LameXP_EN.ts
etc/Translation/LameXP_PL.ts
etc/Translation/LameXP_SV.ts
src/Config.h
src/Dialog_CueImport.cpp
src/Dialog_Processing.cpp
src/Model_Artwork.cpp
src/Model_AudioFile.cpp
src/Model_AudioFile.h
src/Model_CueSheet.cpp
src/Model_CueSheet.h
src/Model_MetaInfo.cpp
src/Thread_CueSplitter.cpp

index 17d9036..3642051 100644 (file)
 <context>
     <name>AudioFileModel</name>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="227"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="283"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="260"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="316"/>
         <source>Profile</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="244"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="277"/>
         <source>Channels</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="249"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="282"/>
         <source>Samplerate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="256"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="260"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="289"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="293"/>
         <source>Bitdepth</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="278"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="311"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="287"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="320"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="294"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="297"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="300"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="327"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="330"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="333"/>
         <source>Bitrate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="294"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="327"/>
         <source>Constant</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="297"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="330"/>
         <source>Variable</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="306"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="339"/>
         <source>Encoder</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../../src/Dialog_CueImport.cpp" line="120"/>
         <location filename="../../src/Dialog_CueImport.cpp" line="221"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="414"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="417"/>
         <source>Cue Sheet Error</source>
         <translation type="unfinished"></translation>
     </message>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="236"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="238"/>
         <source>Unknown Artist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="237"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="239"/>
         <source>Unknown Album</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="252"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="256"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="255"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="259"/>
         <source>Choose Output Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="282"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="289"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="285"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="292"/>
         <source>LameXP</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="282"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="285"/>
         <source>Error: The selected output directory could not be created!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="289"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="292"/>
         <source>Error: The selected output directory is not writable!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>Low Diskspace Warning</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>There are less than %1 GB of free diskspace available in the selected output directory.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>It is highly recommend to free up more diskspace before proceeding with the import!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="373"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="376"/>
         <source>Analyzing file(s), please wait...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Analysis Failed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Warning: The format of some of the input files could not be determined!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Continue Anyway</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Abort</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="405"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="408"/>
         <source>Splitting file(s), please wait...</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
         <source>Process was aborted by the user after %n track(s)!</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="414"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="417"/>
         <source>An unexpected error has occured while splitting the Cue Sheet!</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Imported %n track(s) from the Cue Sheet.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Skipped %n track(s).</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="419"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="422"/>
         <source>Cue Sheet Completed</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>CueSheetModel</name>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="211"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="199"/>
         <source>No.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="214"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="202"/>
         <source>File / Track</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="217"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="205"/>
         <source>Index</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="220"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="208"/>
         <source>Duration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="246"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="234"/>
         <source>File %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="261"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="250"/>
         <source>Track %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="270"/>
-        <location filename="../../src/Model_CueSheet.cpp" line="278"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="259"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="267"/>
         <source>Unknown Artist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="274"/>
-        <location filename="../../src/Model_CueSheet.cpp" line="278"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="263"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="267"/>
         <source>Unknown Title</source>
         <translation type="unfinished"></translation>
     </message>
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../../src/Global.cpp" line="900"/>
+        <location filename="../../src/Global.cpp" line="933"/>
         <source>Executable &apos;%1&apos; doesn&apos;t support Windows compatibility mode.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1154"/>
+        <location filename="../../src/Global.cpp" line="1187"/>
         <source>Executable &apos;%1&apos; requires Qt v%2, but found Qt v%3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1159"/>
+        <location filename="../../src/Global.cpp" line="1192"/>
         <source>Executable &apos;%1&apos; was built for Qt &apos;%2&apos;, but found Qt &apos;%3&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1172"/>
-        <location filename="../../src/Global.cpp" line="1199"/>
+        <location filename="../../src/Global.cpp" line="1205"/>
+        <location filename="../../src/Global.cpp" line="1232"/>
         <source>Executable &apos;%1&apos; requires Windows 2000 or later.</source>
         <translation type="unfinished"></translation>
     </message>
index 8799117..3a90684 100644 (file)
@@ -4,7 +4,7 @@
 <context>
     <name>CueImportDialog</name>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
         <source>Process was aborted by the user after %n track(s)!</source>
         <translation>
             <numerusform>Process was aborted by the user after %n track!</numerusform>
@@ -12,7 +12,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Imported %n track(s) from the Cue Sheet.</source>
         <translation>
             <numerusform>Imported %n track from the Cue Sheet.</numerusform>
@@ -20,7 +20,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Skipped %n track(s).</source>
         <translation>
             <numerusform>Skipped %n track.</numerusform>
index fc1b028..bd1f50a 100644 (file)
 <context>
     <name>AudioFileModel</name>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="227"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="283"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="260"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="316"/>
         <source>Profile</source>
         <translation type="unfinished">Profil</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="244"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="277"/>
         <source>Channels</source>
         <translation type="unfinished">KanaÅ‚y</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="249"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="282"/>
         <source>Samplerate</source>
         <translation type="unfinished">CzÄ™stotliwość</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="256"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="260"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="289"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="293"/>
         <source>Bitdepth</source>
         <translation type="unfinished">GÅ‚Ä™bia bitów</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="278"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="311"/>
         <source>Type</source>
         <translation type="unfinished">Typ</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="287"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="320"/>
         <source>Version</source>
         <translation type="unfinished">Wersja</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="294"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="297"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="300"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="327"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="330"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="333"/>
         <source>Bitrate</source>
         <translation type="unfinished">PrzepÅ‚ywność bitów</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="294"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="327"/>
         <source>Constant</source>
         <translation type="unfinished">StaÅ‚y</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="297"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="330"/>
         <source>Variable</source>
         <translation type="unfinished">Zmienny</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="306"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="339"/>
         <source>Encoder</source>
         <translation type="unfinished">Enkoder</translation>
     </message>
     <message>
         <location filename="../../src/Dialog_CueImport.cpp" line="120"/>
         <location filename="../../src/Dialog_CueImport.cpp" line="221"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="414"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="417"/>
         <source>Cue Sheet Error</source>
         <translation type="unfinished">BÅ‚Ä…d pliku Cue Sheet</translation>
     </message>
         <translation type="unfinished">Wybrany plik Cue Sheet zawiera niespójne informacje. Prosze zachować ostrożność!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="236"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="238"/>
         <source>Unknown Artist</source>
         <translation type="unfinished">Nieznany Artysta</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="237"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="239"/>
         <source>Unknown Album</source>
         <translation type="unfinished">Nieznany Album</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="252"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="256"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="255"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="259"/>
         <source>Choose Output Directory</source>
         <translation type="unfinished">Wybierz folder wyjÅ›ciowy</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="282"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="289"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="285"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="292"/>
         <source>LameXP</source>
         <translation type="unfinished">LameXP</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="282"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="285"/>
         <source>Error: The selected output directory could not be created!</source>
         <translation type="unfinished">BÅ‚Ä…d: Wybrana  lokalizacja wyjÅ›ciowa nie może zostać utworzona!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="289"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="292"/>
         <source>Error: The selected output directory is not writable!</source>
         <translation type="unfinished">BÅ‚Ä…d: Nie można zapisać w wybranej lokalizacji wyjÅ›ciowej!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>Low Diskspace Warning</source>
         <translation type="unfinished">Ostrzeżenie o maÅ‚ej iloÅ›ci miejsca na dysku</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>There are less than %1 GB of free diskspace available in the selected output directory.</source>
         <translation type="unfinished">Jest mniej niż %1 GB wolnego miejsca w wybranej lokalizacji wyjÅ›ciowej.</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>It is highly recommend to free up more diskspace before proceeding with the import!</source>
         <translation type="unfinished">Jest wysoce zalecane zwolnić miejsce na dysku zanim zaczniesz importować!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="373"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="376"/>
         <source>Analyzing file(s), please wait...</source>
         <translation type="unfinished">Analizowanie pliku/ów, prosze czekać...</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Analysis Failed</source>
         <translation type="unfinished">Analiza zakoÅ„czona niepowodzeniem</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Warning: The format of some of the input files could not be determined!</source>
         <translation type="unfinished">Ostrzeżenie: Nie można rozpoznać formatu kilku plików wejÅ›ciowych!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Continue Anyway</source>
         <translation type="unfinished">Kontynuuj pomimo to</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Abort</source>
         <translation type="unfinished">Przerwij</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="405"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="408"/>
         <source>Splitting file(s), please wait...</source>
         <translation type="unfinished">Dzielenie pliku/ów, prosze czekać...</translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
         <source>Process was aborted by the user after %n track(s)!</source>
         <translation type="unfinished">
             <numerusform>Proces zostaÅ‚ przerwany przez użytkownika po zakoÅ„czeniu %n Å›cieżki!</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="414"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="417"/>
         <source>An unexpected error has occured while splitting the Cue Sheet!</source>
         <translation type="unfinished">WystÄ…piÅ‚ nieoczekiwany bÅ‚Ä…d podczas podziaÅ‚u pliku Cue Sheet!</translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Imported %n track(s) from the Cue Sheet.</source>
         <translation type="unfinished">
             <numerusform>Zaimportowano %n Å›cieżkÄ™ z pliku Cue Sheet.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Skipped %n track(s).</source>
         <translation type="unfinished">
             <numerusform>PominiÄ™to %n Å›cieżkÄ™.</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="419"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="422"/>
         <source>Cue Sheet Completed</source>
         <translation type="unfinished">Stworzono plik Cue Sheet</translation>
     </message>
 <context>
     <name>CueSheetModel</name>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="211"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="199"/>
         <source>No.</source>
         <translation type="unfinished">Numer.</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="214"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="202"/>
         <source>File / Track</source>
         <translation type="unfinished">Plik/ÅšcieżKa</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="217"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="205"/>
         <source>Index</source>
         <translation type="unfinished">Indeks</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="220"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="208"/>
         <source>Duration</source>
         <translation type="unfinished">Czas trwania</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="246"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="234"/>
         <source>File %1</source>
         <translation type="unfinished">Plik %1</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="261"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="250"/>
         <source>Track %1</source>
         <translation type="unfinished">Åšcieżka %1</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="270"/>
-        <location filename="../../src/Model_CueSheet.cpp" line="278"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="259"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="267"/>
         <source>Unknown Artist</source>
         <translation type="unfinished">Nieznany Artysta</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="274"/>
-        <location filename="../../src/Model_CueSheet.cpp" line="278"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="263"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="267"/>
         <source>Unknown Title</source>
         <translation type="unfinished">Nieznany TytuÅ‚</translation>
     </message>
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../../src/Global.cpp" line="900"/>
+        <location filename="../../src/Global.cpp" line="933"/>
         <source>Executable &apos;%1&apos; doesn&apos;t support Windows compatibility mode.</source>
         <translation type="unfinished">Plik wykonywalny &apos;%1&apos; nie dziaÅ‚a w trybie kompatybilnoÅ›ci z Windows.</translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1154"/>
+        <location filename="../../src/Global.cpp" line="1187"/>
         <source>Executable &apos;%1&apos; requires Qt v%2, but found Qt v%3.</source>
         <translation type="unfinished">Plik wykonywalny &apos;%1&apos; wymaga Qt v%2, znaleziono jednak Qt v%3.</translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1159"/>
+        <location filename="../../src/Global.cpp" line="1192"/>
         <source>Executable &apos;%1&apos; was built for Qt &apos;%2&apos;, but found Qt &apos;%3&apos;.</source>
         <translation type="unfinished">Plik wykonywalny &quot;%1&quot; zostaÅ‚ skompilowany dla Qt &quot;%2&quot;, znaleziono &quot;%3&quot;.</translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1172"/>
-        <location filename="../../src/Global.cpp" line="1199"/>
+        <location filename="../../src/Global.cpp" line="1205"/>
+        <location filename="../../src/Global.cpp" line="1232"/>
         <source>Executable &apos;%1&apos; requires Windows 2000 or later.</source>
         <translation type="unfinished">Plik wykonywalny &apos;%1&apos; wymaga do uruchomienia Windows 2000 lub nowszego.</translation>
     </message>
index 49be0ff..33d4bb0 100644 (file)
 <context>
     <name>AudioFileModel</name>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="227"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="283"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="260"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="316"/>
         <source>Profile</source>
         <translation>Profil</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="244"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="277"/>
         <source>Channels</source>
         <translation>Kanaler</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="249"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="282"/>
         <source>Samplerate</source>
         <translation>Samplingsfrekvens</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="256"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="260"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="289"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="293"/>
         <source>Bitdepth</source>
         <translation>Bitdjup</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="278"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="311"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="287"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="320"/>
         <source>Version</source>
         <translation>Version</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="294"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="297"/>
-        <location filename="../../src/Model_AudioFile.cpp" line="300"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="327"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="330"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="333"/>
         <source>Bitrate</source>
         <translation>Bithastighet</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="294"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="327"/>
         <source>Constant</source>
         <translation>Konstant</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="297"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="330"/>
         <source>Variable</source>
         <translation>Variabel</translation>
     </message>
     <message>
-        <location filename="../../src/Model_AudioFile.cpp" line="306"/>
+        <location filename="../../src/Model_AudioFile.cpp" line="339"/>
         <source>Encoder</source>
         <translatorcomment>Kodare</translatorcomment>
         <translation></translation>
     <message>
         <location filename="../../src/Dialog_CueImport.cpp" line="120"/>
         <location filename="../../src/Dialog_CueImport.cpp" line="221"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="414"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="417"/>
         <source>Cue Sheet Error</source>
         <translation>Cue-fel</translation>
     </message>
         <translation>Den specificerade cue-filen innehÃ¥ller inkonsekvent information. Undersök det!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="236"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="238"/>
         <source>Unknown Artist</source>
         <translation>Okänd artist</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="237"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="239"/>
         <source>Unknown Album</source>
         <translation>Okänt album</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="252"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="256"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="255"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="259"/>
         <source>Choose Output Directory</source>
         <translation>Välj mÃ¥lmapp för utdata</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="282"/>
-        <location filename="../../src/Dialog_CueImport.cpp" line="289"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="285"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="292"/>
         <source>LameXP</source>
         <translation>LameXP</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="282"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="285"/>
         <source>Error: The selected output directory could not be created!</source>
         <translation>Fel: Den specificerade mÃ¥lmappen kunde inte skapas!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="289"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="292"/>
         <source>Error: The selected output directory is not writable!</source>
         <translation>Fel: Den specificerade mÃ¥lmappen Ã¤r skrivskyddad!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>Low Diskspace Warning</source>
         <translation>Varning för lÃ¥gt diskutrymme</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>There are less than %1 GB of free diskspace available in the selected output directory.</source>
         <translation>Det finns mindre Ã¤n %1 GB ledigt diskutrymme pÃ¥ den specificerade mÃ¥ladressen.</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="303"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="306"/>
         <source>It is highly recommend to free up more diskspace before proceeding with the import!</source>
         <translation>Du bör frigöra mer diskutrymme innan du fortsätter med importen!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="373"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="376"/>
         <source>Analyzing file(s), please wait...</source>
         <translation>Analyserar fil(er), vänta...</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Analysis Failed</source>
         <translation>Analys misslyckades</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Warning: The format of some of the input files could not be determined!</source>
         <translation>Varning! Formatet pÃ¥ vissa filer kunde inte avgöras!</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Continue Anyway</source>
         <translation>Fortsätt Ã¤ndÃ¥</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="378"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="381"/>
         <source>Abort</source>
         <translation>Avbryt</translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="405"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="408"/>
         <source>Splitting file(s), please wait...</source>
         <translation>Delar fil(er), vänta...</translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="410"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="413"/>
         <source>Process was aborted by the user after %n track(s)!</source>
         <translation>
             <numerusform>Ã…tgärden avbröts av användaren efter %n spÃ¥r!</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="414"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="417"/>
         <source>An unexpected error has occured while splitting the Cue Sheet!</source>
         <translation>Ett oväntat fel uppstod vid delningen av cue-filen!</translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Imported %n track(s) from the Cue Sheet.</source>
         <translation>
             <numerusform>Importerade %n spÃ¥r frÃ¥n cue-filen.</numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../../src/Dialog_CueImport.cpp" line="418"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="421"/>
         <source>Skipped %n track(s).</source>
         <translation>
             <numerusform>Hoppade Ã¶ver %n spÃ¥r.</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../../src/Dialog_CueImport.cpp" line="419"/>
+        <location filename="../../src/Dialog_CueImport.cpp" line="422"/>
         <source>Cue Sheet Completed</source>
         <translation>cue-fil färdigbearbetad</translation>
     </message>
 <context>
     <name>CueSheetModel</name>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="211"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="199"/>
         <source>No.</source>
         <translation>Nr.</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="214"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="202"/>
         <source>File / Track</source>
         <translation>Fil / SpÃ¥r</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="217"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="205"/>
         <source>Index</source>
         <translation>Index</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="220"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="208"/>
         <source>Duration</source>
         <translation>Varaktighet</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="246"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="234"/>
         <source>File %1</source>
         <translation>Fil %1</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="261"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="250"/>
         <source>Track %1</source>
         <translation>SpÃ¥r %1</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="270"/>
-        <location filename="../../src/Model_CueSheet.cpp" line="278"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="259"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="267"/>
         <source>Unknown Artist</source>
         <translation>Okänd artist</translation>
     </message>
     <message>
-        <location filename="../../src/Model_CueSheet.cpp" line="274"/>
-        <location filename="../../src/Model_CueSheet.cpp" line="278"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="263"/>
+        <location filename="../../src/Model_CueSheet.cpp" line="267"/>
         <source>Unknown Title</source>
         <translation>Okänd titel</translation>
     </message>
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../../src/Global.cpp" line="900"/>
+        <location filename="../../src/Global.cpp" line="933"/>
         <source>Executable &apos;%1&apos; doesn&apos;t support Windows compatibility mode.</source>
         <translation>EXE-filen &apos;%1&apos; stöder inte Windows kompatibilitetsläge.</translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1154"/>
+        <location filename="../../src/Global.cpp" line="1187"/>
         <source>Executable &apos;%1&apos; requires Qt v%2, but found Qt v%3.</source>
         <translation>EXE-filen &apos;%1&apos; kräver Qt v%2, du har Qt v%3.</translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1159"/>
+        <location filename="../../src/Global.cpp" line="1192"/>
         <source>Executable &apos;%1&apos; was built for Qt &apos;%2&apos;, but found Qt &apos;%3&apos;.</source>
         <translation>EXE-filen &apos;%1&apos; Ã¤r byggd för Qt &apos;%2&apos;, du har Qt &apos;%3&apos;.</translation>
     </message>
     <message>
-        <location filename="../../src/Global.cpp" line="1172"/>
-        <location filename="../../src/Global.cpp" line="1199"/>
+        <location filename="../../src/Global.cpp" line="1205"/>
+        <location filename="../../src/Global.cpp" line="1232"/>
         <source>Executable &apos;%1&apos; requires Windows 2000 or later.</source>
         <translation>EXE-filen &apos;%1&apos; kräver Windows 2000 eller senare.</translation>
     </message>
index 2f1039d..f0ef197 100644 (file)
@@ -34,7 +34,7 @@
 #define VER_LAMEXP_MINOR_LO                                    9
 #define VER_LAMEXP_TYPE                                                Alpha
 #define VER_LAMEXP_PATCH                                       2
-#define VER_LAMEXP_BUILD                                       1382
+#define VER_LAMEXP_BUILD                                       1385
 #define VER_LAMEXP_CONFG                                       1348
 
 ///////////////////////////////////////////////////////////////////////////////
index b749cde..94054cd 100644 (file)
@@ -233,8 +233,11 @@ void CueImportDialog::modelChanged(void)
 {
        ui->treeView->expandAll();
        ui->editOutputDir->setText(QDir::toNativeSeparators(m_outputDir));
-       ui->labelArtist->setText(m_model->getAlbumPerformer().isEmpty() ? tr("Unknown Artist") : m_model->getAlbumPerformer());
-       ui->labelAlbum->setText(m_model->getAlbumTitle().isEmpty() ? tr("Unknown Album") : m_model->getAlbumTitle());
+       if(const AudioFileModel_MetaInfo *albumInfo = m_model->getAlbumInfo())
+       {
+               ui->labelArtist->setText(albumInfo->artist().isEmpty() ? tr("Unknown Artist") : albumInfo->artist());
+               ui->labelAlbum->setText(albumInfo->album().isEmpty() ? tr("Unknown Album") : albumInfo->album());
+       }
 }
 
 void CueImportDialog::browseButtonClicked(void)
index 22c6d96..349e8a8 100644 (file)
@@ -1039,7 +1039,7 @@ AudioFileModel ProcessingDialog::updateMetaInfo(AudioFileModel &audioFile)
                return audioFile;
        }
        
-       audioFile.metaInfo().update(*m_metaInfo);
+       audioFile.metaInfo().update(*m_metaInfo, true);
        
        if(audioFile.metaInfo().position() == UINT_MAX)
        {
index aeb2b3c..679f98e 100644 (file)
@@ -132,8 +132,11 @@ ArtworkModel::ArtworkModel(const ArtworkModel &model)
 ArtworkModel &ArtworkModel::operator=(const ArtworkModel &model)
 {
        QMutexLocker lock(m_mutex);
-       ArtworkModel_SharedData::detach(&m_data);
-       m_data = ArtworkModel_SharedData::attach(model.m_data);
+       if(m_data != model.m_data)
+       {
+               ArtworkModel_SharedData::detach(&m_data);
+               m_data = ArtworkModel_SharedData::attach(model.m_data);
+       }
        return (*this);
 }
 
index f704164..00247b6 100644 (file)
 
 const unsigned int AudioFileModel::BITDEPTH_IEEE_FLOAT32 = UINT_MAX-1;
 
+#define PRINT_S(VAR) do \
+{ \
+       if((VAR).isEmpty()) qDebug(#VAR " = N/A"); else qDebug(#VAR " = \"%s\"", (VAR).toUtf8().constData()); \
+} \
+while(0)
+
+#define PRINT_U(VAR) do \
+{ \
+       if((VAR) < 1) qDebug(#VAR " = N/A"); else qDebug(#VAR " = %u", (VAR)); \
+} \
+while(0)
+
 ///////////////////////////////////////////////////////////////////////////////
 // Audio File - Meta Info
 ///////////////////////////////////////////////////////////////////////////////
@@ -43,40 +55,50 @@ AudioFileModel_MetaInfo::AudioFileModel_MetaInfo(void)
 
 AudioFileModel_MetaInfo::AudioFileModel_MetaInfo(const AudioFileModel_MetaInfo &model)
 {
-       m_titel = model.m_titel;
-       m_artist = model.m_artist;
-       m_album = model.m_album;
-       m_genre = model.m_genre;
-       m_comment = model.m_comment;
-       m_cover = model.m_cover;
-       m_year = model.m_year;
+       m_titel =    model.m_titel;
+       m_artist =   model.m_artist;
+       m_album =    model.m_album;
+       m_genre =    model.m_genre;
+       m_comment =  model.m_comment;
+       m_cover =    model.m_cover;
+       m_year =     model.m_year;
        m_position = model.m_position;
 }
 
 AudioFileModel_MetaInfo &AudioFileModel_MetaInfo::operator=(const AudioFileModel_MetaInfo &model)
 {
-       m_titel = model.m_titel;
-       m_artist = model.m_artist;
-       m_album = model.m_album;
-       m_genre = model.m_genre;
-       m_comment = model.m_comment;
-       m_cover = model.m_cover;
-       m_year = model.m_year;
+       m_titel =    model.m_titel;
+       m_artist =   model.m_artist;
+       m_album =    model.m_album;
+       m_genre =    model.m_genre;
+       m_comment =  model.m_comment;
+       m_cover =    model.m_cover;
+       m_year =     model.m_year;
        m_position = model.m_position;
 
        return (*this);
 }
 
-void AudioFileModel_MetaInfo::update(const AudioFileModel_MetaInfo &model)
+void AudioFileModel_MetaInfo::update(const AudioFileModel_MetaInfo &model, const bool replace)
 {
-       if(!model.m_titel.isEmpty()) m_titel = model.m_titel;
-       if(!model.m_artist.isEmpty()) m_artist = model.m_artist;
-       if(!model.m_album.isEmpty()) m_album = model.m_album;
-       if(!model.m_genre.isEmpty()) m_genre = model.m_genre;
-       if(!model.m_comment.isEmpty()) m_comment = model.m_comment;
-       if(!model.m_cover.isEmpty()) m_cover = model.m_cover;
-       if(model.m_year > 0) m_year = model.m_year;
-       if(model.m_position > 0) m_position = model.m_position;
+       qDebug("\n-------[AudioFileModel_MetaInfo::update]-------");
+       qDebug("Updating (%p):", this);
+       print();
+       qDebug("\nUpdating with (%p):", &model);
+       model.print();
+
+       if((!model.m_titel.isEmpty())   && (replace || m_titel.isEmpty()))   m_titel    = model.m_titel;
+       if((!model.m_artist.isEmpty())  && (replace || m_artist.isEmpty()))  m_artist   = model.m_artist;
+       if((!model.m_album.isEmpty())   && (replace || m_album.isEmpty()))   m_album    = model.m_album;
+       if((!model.m_genre.isEmpty())   && (replace || m_genre.isEmpty()))   m_genre    = model.m_genre;
+       if((!model.m_comment.isEmpty()) && (replace || m_comment.isEmpty())) m_comment  = model.m_comment;
+       if((!model.m_cover.isEmpty())   && (replace || m_cover.isEmpty()))   m_cover    = model.m_cover;
+       if((model.m_year > 0)           && (replace || (m_year == 0)))       m_year     = model.m_year;
+       if((model.m_position > 0)       && (replace || (m_position == 0)))   m_position = model.m_position;
+
+       qDebug("\nResult:");
+       print();
+       qDebug("-----------------------------------------------\n\n");
 }
 
 AudioFileModel_MetaInfo::~AudioFileModel_MetaInfo(void)
@@ -96,6 +118,18 @@ void AudioFileModel_MetaInfo::reset(void)
        m_position = 0;
 }
 
+void AudioFileModel_MetaInfo::print(void) const
+{
+       PRINT_S(m_titel);
+       PRINT_S(m_artist);
+       PRINT_S(m_album);
+       PRINT_S(m_genre);
+       PRINT_S(m_comment);
+       PRINT_S(m_cover.filePath());
+       PRINT_U(m_year);
+       PRINT_U(m_position);
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 // Audio File - Technical Info
 ///////////////////////////////////////////////////////////////////////////////
@@ -107,35 +141,34 @@ AudioFileModel_TechInfo::AudioFileModel_TechInfo(void)
 
 AudioFileModel_TechInfo::AudioFileModel_TechInfo(const AudioFileModel_TechInfo &model)
 {
-       m_containerType = model.m_containerType;
+       m_containerType =    model.m_containerType;
        m_containerProfile = model.m_containerProfile;
-       m_audioType = model.m_audioType;
-       m_audioProfile = model.m_audioProfile;
-       m_audioVersion = model.m_audioVersion;
-       m_audioEncodeLib = model.m_audioEncodeLib;
-       m_audioSamplerate = model.m_audioSamplerate;
-       m_audioChannels = model.m_audioChannels;
-       m_audioBitdepth = model.m_audioBitdepth;
-       m_audioBitrate = model.m_audioBitrate;
+       m_audioType =        model.m_audioType;
+       m_audioProfile =     model.m_audioProfile;
+       m_audioVersion =     model.m_audioVersion;
+       m_audioEncodeLib =   model.m_audioEncodeLib;
+       m_audioSamplerate =  model.m_audioSamplerate;
+       m_audioChannels =    model.m_audioChannels;
+       m_audioBitdepth =    model.m_audioBitdepth;
+       m_audioBitrate =     model.m_audioBitrate;
        m_audioBitrateMode = model.m_audioBitrateMode;
-       m_duration = model.m_duration;
+       m_duration =         model.m_duration;
 }
 
 AudioFileModel_TechInfo &AudioFileModel_TechInfo::operator=(const AudioFileModel_TechInfo &model)
 {
-       m_containerType = model.m_containerType;
+       m_containerType =    model.m_containerType;
        m_containerProfile = model.m_containerProfile;
-       m_audioType = model.m_audioType;
-       m_audioProfile = model.m_audioProfile;
-       m_audioVersion = model.m_audioVersion;
-       m_audioEncodeLib = model.m_audioEncodeLib;
-       m_audioSamplerate = model.m_audioSamplerate;
-       m_audioChannels = model.m_audioChannels;
-       m_audioBitdepth = model.m_audioBitdepth;
-       m_audioBitrate = model.m_audioBitrate;
+       m_audioType =        model.m_audioType;
+       m_audioProfile =     model.m_audioProfile;
+       m_audioVersion =     model.m_audioVersion;
+       m_audioEncodeLib =   model.m_audioEncodeLib;
+       m_audioSamplerate =  model.m_audioSamplerate;
+       m_audioChannels =    model.m_audioChannels;
+       m_audioBitdepth =    model.m_audioBitdepth;
+       m_audioBitrate =     model.m_audioBitrate;
        m_audioBitrateMode = model.m_audioBitrateMode;
-       m_duration = model.m_duration;
-
+       m_duration =         model.m_duration;
 
        return (*this);
 }
index d8a5e72..df22401 100644 (file)
@@ -65,7 +65,10 @@ public:
        void reset(void);
 
        //Update
-       void update(const AudioFileModel_MetaInfo &model);
+       void update(const AudioFileModel_MetaInfo &model, const bool replace);
+
+       //Debug
+       void print(void) const;
 
 private:
        QString m_titel;
index 6f4df01..11f1056 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "Global.h"
 #include "Model_CueSheet.h"
+#include "Model_AudioFile.h"
 #include "Genres.h"
 
 #include <QApplication>
@@ -53,38 +54,32 @@ class CueSheetTrack : public CueSheetItem
 public:
        CueSheetTrack(CueSheetFile *parent, int trackNo)
        :
-               m_parent(parent),
-               m_trackNo(trackNo)
+               m_parent(parent)
        {
                m_startIndex = std::numeric_limits<double>::quiet_NaN();
                m_duration = std::numeric_limits<double>::infinity();
-               m_year = 0;
+               m_metaInfo.setPosition(trackNo);
        }
-       int trackNo(void) { return m_trackNo; }
+       
+       //Getter
+       CueSheetFile *parent(void) { return m_parent; }
        double startIndex(void) { return m_startIndex; }
        double duration(void) { return m_duration; }
-       QString title(void) { return m_title; }
-       QString performer(void) { return m_performer; }
-       QString genre(void) { return m_genre; }
-       unsigned int year(void) { return m_year; }
-       CueSheetFile *parent(void) { return m_parent; }
+       AudioFileModel_MetaInfo &metaInfo(void) { return m_metaInfo; }
+
+       //Setter
        void setStartIndex(double startIndex) { m_startIndex = startIndex; }
        void setDuration(double duration) { m_duration = duration; }
-       void setTitle(const QString &title, bool update = false) { if(!update || (m_title.isEmpty() && !title.isEmpty())) m_title = title; }
-       void setPerformer(const QString &performer, bool update = false) { if(!update || (m_performer.isEmpty() && !performer.isEmpty())) m_performer = performer; }
-       void setGenre(const QString &genre, bool update = false) { if(!update || (m_genre.isEmpty() && !m_genre.isEmpty())) m_genre = genre; }
-       void setYear(const unsigned int year, bool update = false) { if(!update || (year == 0)) m_year = year; }
-       virtual bool isValid(void) { return !(_isnan(m_startIndex) || (m_trackNo < 0)); }
+       
+       //Misc
+       virtual bool isValid(void) { return !(_isnan(m_startIndex) || (m_metaInfo.position() == 0)); }
        virtual const char* type(void) { return "CueSheetTrack"; }
+
 private:
-       int m_trackNo;
        double m_startIndex;
        double m_duration;
-       QString m_title;
-       QString m_performer;
-       QString m_genre;
-       unsigned int m_year;
-       CueSheetFile *m_parent;
+       AudioFileModel_MetaInfo m_metaInfo;
+       CueSheetFile *const m_parent;
 };
 
 class CueSheetFile : public CueSheetItem
@@ -92,13 +87,20 @@ class CueSheetFile : public CueSheetItem
 public:
        CueSheetFile(const QString &fileName) : m_fileName(fileName) {}
        ~CueSheetFile(void) { while(!m_tracks.isEmpty()) delete m_tracks.takeLast(); }
+       
+       //Getter
        QString fileName(void) { return m_fileName; }
-       void addTrack(CueSheetTrack *track) { m_tracks.append(track); }
-       void clearTracks(void) { while(!m_tracks.isEmpty()) delete m_tracks.takeLast(); }
        CueSheetTrack *track(int index) { return m_tracks.at(index); }
        int trackCount(void) { return m_tracks.count(); }
+
+       //Modifier
+       void addTrack(CueSheetTrack *track) { m_tracks.append(track); }
+       void clearTracks(void) { while(!m_tracks.isEmpty()) delete m_tracks.takeLast(); }
+
+       //Misc
        virtual bool isValid(void) { return m_tracks.count() > 0; }
        virtual const char* type(void) { return "CueSheetFile"; }
+
 private:
        const QString m_fileName;
        QList<CueSheetTrack*> m_tracks;
@@ -115,21 +117,7 @@ CueSheetModel::CueSheetModel()
        m_fileIcon(":/icons/music.png"),
        m_trackIcon(":/icons/control_play_blue.png")
 {
-       int trackNo = 0;
-       m_albumYear = 0;
-       
-       for(int i = 0; i < 5; i++)
-       {
-               CueSheetFile *currentFile = new CueSheetFile(QString().sprintf("File %02d.wav", i+1));
-               for(int j = 0; j < 8; j++)
-               {
-                       CueSheetTrack *currentTrack = new CueSheetTrack(currentFile, trackNo++);
-                       currentTrack->setTitle("ATWA (Air Trees Water Animals)");
-                       currentTrack->setPerformer("System of a Down");
-                       currentFile->addTrack(currentTrack);
-               }
-               m_files.append(currentFile);
-       }
+       /*nothing to do*/
 }
 
 CueSheetModel::~CueSheetModel(void)
@@ -255,23 +243,24 @@ QVariant CueSheetModel::data(const QModelIndex &index, int role) const
                }
                else if(CueSheetTrack *trackPtr = dynamic_cast<CueSheetTrack*>(item))
                {
+                       const AudioFileModel_MetaInfo &trackInfo = trackPtr->metaInfo();
                        switch(index.column())
                        {
                        case 0:
-                               return tr("Track %1").arg(QString().sprintf("%02d", trackPtr->trackNo())).append(" ");
+                               return tr("Track %1").arg(QString().sprintf("%02d", trackInfo.position())).append(" ");
                                break;
                        case 1:
-                               if(!trackPtr->title().isEmpty() && !trackPtr->performer().isEmpty())
+                               if(!trackInfo.title().isEmpty() && !trackInfo.artist().isEmpty())
                                {
-                                       return QString("%1 - %2").arg(trackPtr->performer(), trackPtr->title());
+                                       return QString("%1 - %2").arg(trackInfo.artist(), trackInfo.title());
                                }
-                               else if(!trackPtr->title().isEmpty())
+                               else if(!trackInfo.title().isEmpty())
                                {
-                                       return QString("%1 - %2").arg(tr("Unknown Artist"), trackPtr->title());
+                                       return QString("%1 - %2").arg(tr("Unknown Artist"), trackInfo.title());
                                }
-                               else if(!trackPtr->performer().isEmpty())
+                               else if(!trackInfo.artist().isEmpty())
                                {
-                                       return QString("%1 - %2").arg(trackPtr->performer(), tr("Unknown Title"));
+                                       return QString("%1 - %2").arg(trackInfo.artist(), tr("Unknown Title"));
                                }
                                else
                                {
@@ -399,7 +388,7 @@ int CueSheetModel::getTrackCount(int fileIndex)
        return m_files.at(fileIndex)->trackCount();
 }
 
-int CueSheetModel::getTrackNo(int fileIndex, int trackIndex)
+const AudioFileModel_MetaInfo *CueSheetModel::getTrackInfo(int fileIndex, int trackIndex)
 {
        QMutexLocker lock(&m_mutex);
        
@@ -408,14 +397,14 @@ int CueSheetModel::getTrackNo(int fileIndex, int trackIndex)
                CueSheetFile *currentFile = m_files.at(fileIndex);
                if(trackIndex >= 0 && trackIndex < currentFile->trackCount())
                {
-                       return currentFile->track(trackIndex)->trackNo();
+                       return &currentFile->track(trackIndex)->metaInfo();
                }
        }
 
-       return -1;
+       return NULL;
 }
 
-void CueSheetModel::getTrackIndex(int fileIndex, int trackIndex, double *startIndex, double *duration)
+bool CueSheetModel::getTrackIndex(int fileIndex, int trackIndex, double *startIndex, double *duration)
 {
        QMutexLocker lock(&m_mutex);
        
@@ -430,101 +419,19 @@ void CueSheetModel::getTrackIndex(int fileIndex, int trackIndex, double *startIn
                        CueSheetTrack *currentTrack = currentFile->track(trackIndex);
                        *startIndex = currentTrack->startIndex();
                        *duration = currentTrack->duration();
+                       return true;
                }
        }
-}
 
-QString CueSheetModel::getTrackPerformer(int fileIndex, int trackIndex)
-{      
-       QMutexLocker lock(&m_mutex);
-       
-       if(fileIndex >= 0 && fileIndex < m_files.count())
-       {
-               CueSheetFile *currentFile = m_files.at(fileIndex);
-               if(trackIndex >= 0 && trackIndex < currentFile->trackCount())
-               {
-                       CueSheetTrack *currentTrack = currentFile->track(trackIndex);
-                       return currentTrack->performer();
-               }
-       }
-       
-       return QString();
+       return false;
 }
 
-QString CueSheetModel::getTrackTitle(int fileIndex, int trackIndex)
+const AudioFileModel_MetaInfo *CueSheetModel::getAlbumInfo(void)
 {
        QMutexLocker lock(&m_mutex);
-       
-       if(fileIndex >= 0 && fileIndex < m_files.count())
-       {
-               CueSheetFile *currentFile = m_files.at(fileIndex);
-               if(trackIndex >= 0 && trackIndex < currentFile->trackCount())
-               {
-                       CueSheetTrack *currentTrack = currentFile->track(trackIndex);
-                       return currentTrack->title();
-               }
-       }
-       
-       return QString();
+       return &m_albumInfo;
 }
 
-QString CueSheetModel::getTrackGenre(int fileIndex, int trackIndex)
-{
-       QMutexLocker lock(&m_mutex);
-       
-       if(fileIndex >= 0 && fileIndex < m_files.count())
-       {
-               CueSheetFile *currentFile = m_files.at(fileIndex);
-               if(trackIndex >= 0 && trackIndex < currentFile->trackCount())
-               {
-                       CueSheetTrack *currentTrack = currentFile->track(trackIndex);
-                       return currentTrack->genre();
-               }
-       }
-       
-       return QString();
-}
-
-unsigned int CueSheetModel::getTrackYear(int fileIndex, int trackIndex)
-{
-       QMutexLocker lock(&m_mutex);
-       
-       if(fileIndex >= 0 && fileIndex < m_files.count())
-       {
-               CueSheetFile *currentFile = m_files.at(fileIndex);
-               if(trackIndex >= 0 && trackIndex < currentFile->trackCount())
-               {
-                       CueSheetTrack *currentTrack = currentFile->track(trackIndex);
-                       return currentTrack->year();
-               }
-       }
-       
-       return 0;
-}
-
-QString CueSheetModel::getAlbumPerformer(void)
-{
-       QMutexLocker lock(&m_mutex);
-       return m_albumPerformer;
-}
-
-QString CueSheetModel::getAlbumTitle(void)
-{
-       QMutexLocker lock(&m_mutex);
-       return m_albumTitle;
-}
-
-QString CueSheetModel::getAlbumGenre(void)
-{
-       QMutexLocker lock(&m_mutex);
-       return m_albumGenre;
-}
-
-unsigned int CueSheetModel::getAlbumYear(void)
-{
-       QMutexLocker lock(&m_mutex);
-       return m_albumYear;
-}
 ////////////////////////////////////////////////////////////
 // Cue Sheet Parser
 ////////////////////////////////////////////////////////////
@@ -594,10 +501,7 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
        CueSheetFile *currentFile = NULL;
        CueSheetTrack *currentTrack = NULL;
 
-       m_albumTitle.clear();
-       m_albumPerformer.clear();
-       m_albumGenre.clear();
-       m_albumYear = 0;
+       m_albumInfo.reset();
 
        //Loop over the Cue Sheet until all lines were processed
        for(int lines = 0; lines < INT_MAX; lines++)
@@ -720,12 +624,12 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
                {
                        if(bPreamble)
                        {
-                               m_albumTitle = UNQUOTE(rxTitle.cap(1)).simplified();
+                               m_albumInfo.setAlbum(UNQUOTE(rxTitle.cap(1)).simplified());
                        }
                        else if(currentFile && currentTrack)
                        {
                                qDebug("%03d     Title: <%s>", lines, rxTitle.cap(1).toUtf8().constData());
-                               currentTrack->setTitle(UNQUOTE(rxTitle.cap(1)).simplified());
+                               currentTrack->metaInfo().setTitle(UNQUOTE(rxTitle.cap(1)).simplified());
                        }
                        continue;
                }
@@ -735,12 +639,12 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
                {
                        if(bPreamble)
                        {
-                               m_albumPerformer = UNQUOTE(rxPerformer.cap(1)).simplified();
+                               m_albumInfo.setArtist(UNQUOTE(rxPerformer.cap(1)).simplified());
                        }
                        else if(currentFile && currentTrack)
                        {
                                qDebug("%03d     Title: <%s>", lines, rxPerformer.cap(1).toUtf8().constData());
-                               currentTrack->setPerformer(UNQUOTE(rxPerformer.cap(1)).simplified());
+                               currentTrack->metaInfo().setArtist(UNQUOTE(rxPerformer.cap(1)).simplified());
                        }
                        continue;
                }
@@ -755,7 +659,7 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
                                {
                                        if(temp.compare(g_lamexp_generes[i], Qt::CaseInsensitive) == 0)
                                        {
-                                               m_albumGenre = QString(g_lamexp_generes[i]);
+                                               m_albumInfo.setGenre(QString(g_lamexp_generes[i]));
                                                break;
                                        }
                                }
@@ -768,7 +672,7 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
                                {
                                        if(temp.compare(g_lamexp_generes[i], Qt::CaseInsensitive) == 0)
                                        {
-                                               currentTrack->setGenre(QString(g_lamexp_generes[i]));
+                                               currentTrack->metaInfo().setGenre(QString(g_lamexp_generes[i]));
                                                break;
                                        }
                                }
@@ -783,14 +687,14 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
                        {
                                bool ok = false;
                                unsigned int temp = rxYear.cap(1).toUInt(&ok);
-                               if(ok) m_albumYear =  temp;
+                               if(ok) m_albumInfo.setYear(temp);
                        }
                        else if(currentFile && currentTrack)
                        {
                                qDebug("%03d     Year: <%s>", lines, rxPerformer.cap(1).toUtf8().constData());
                                bool ok = false;
                                unsigned int temp = rxYear.cap(1).toUInt(&ok);
-                               if(ok) currentTrack->setYear(temp);
+                               if(ok) currentTrack->metaInfo().setYear(temp);
                        }
                        continue;
                }
@@ -870,7 +774,7 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
                        {
                                for(int j = 0; j < nTracks; j++)
                                {
-                                       int currentTrackNo = currentFile->track(j)->trackNo();
+                                       int currentTrackNo = currentFile->track(j)->metaInfo().position();
                                        if(currentTrackNo > 99)
                                        {
                                                qWarning("Track #%02d is invalid (maximum is 99), Cue Sheet is inconsistent!", currentTrackNo);
index 52626cf..b093d4c 100644 (file)
@@ -63,16 +63,9 @@ public:
        int CueSheetModel::getFileCount(void);
        QString getFileName(int fileIndex);
        int getTrackCount(int fileIndex);
-       int getTrackNo(int fileIndex, int trackIndex);
-       void getTrackIndex(int fileIndex, int trackIndex, double *startIndex, double *duration);
-       QString getTrackPerformer(int fileIndex, int trackIndex);
-       QString getTrackTitle(int fileIndex, int trackIndex);
-       QString getTrackGenre(int fileIndex, int trackIndex);
-       unsigned int getTrackYear(int fileIndex, int trackIndex);
-       QString getAlbumPerformer(void);
-       QString getAlbumTitle(void);
-       QString getAlbumGenre(void);
-       unsigned int getAlbumYear(void);
+       const AudioFileModel_MetaInfo *getTrackInfo(int fileIndex, int trackIndex);
+       const AudioFileModel_MetaInfo *getAlbumInfo(void);
+       bool getTrackIndex(int fileIndex, int trackIndex, double *startIndex, double *duration);
 
        //Cue Sheet functions
        int loadCueSheet(const QString &cueFile, QCoreApplication *application = NULL, QTextCodec *forceCodec= NULL);
@@ -85,10 +78,7 @@ private:
        static QMutex m_mutex;
 
        QList<CueSheetFile*> m_files;
-       QString m_albumTitle;
-       QString m_albumPerformer;
-       QString m_albumGenre;
-       unsigned int m_albumYear;
+       AudioFileModel_MetaInfo m_albumInfo;
 
        const QIcon m_fileIcon;
        const QIcon m_trackIcon;
index e1d6b23..b9b6250 100644 (file)
@@ -478,6 +478,6 @@ Qt::ItemFlags MetaInfoModel::flags(const QModelIndex &index) const
 void MetaInfoModel::assignInfoFrom(const AudioFileModel &file)
 {
        beginResetModel();
-       m_metaInfo->update(file.metaInfo());
+       m_metaInfo->update(file.metaInfo(), true);
        endResetModel();
 }
index 62c0e33..d98834f 100644 (file)
@@ -165,10 +165,7 @@ void CueSplitter::run()
        emit progressMaxChanged(nTracksTotal);
        emit progressValChanged(0);
 
-       QString albumPerformer = m_model->getAlbumPerformer();
-       QString albumTitle = m_model->getAlbumTitle();
-       QString albumGenre = m_model->getAlbumGenre();
-       unsigned int albumYear = m_model->getAlbumYear();
+       const AudioFileModel_MetaInfo *albumInfo = m_model->getAlbumInfo();
 
        //Now split all files
        for(int i = 0; i < nFiles; i++)
@@ -180,8 +177,8 @@ void CueSplitter::run()
                //Process all tracks
                for(int j = 0; j < nTracks; j++)
                {
-                       emit progressValChanged(++nTracksComplete);
-                       int trackNo = m_model->getTrackNo(i, j);
+                       const AudioFileModel_MetaInfo *trackInfo = m_model->getTrackInfo(i, j);
+                       const int trackNo = trackInfo->position();
                        double trackOffset = std::numeric_limits<double>::quiet_NaN();
                        double trackLength = std::numeric_limits<double>::quiet_NaN();
                        m_model->getTrackIndex(i, j, &trackOffset, &trackLength);
@@ -193,39 +190,14 @@ void CueSplitter::run()
                        }
                        
                        //Setup meta info
-                       AudioFileModel_MetaInfo trackMetaInfo; /*QString().sprintf("cue://File%02d/Track%02d", i, j)*/;
-                       trackMetaInfo.setTitle(m_model->getTrackTitle(i, j));
-                       trackMetaInfo.setArtist(m_model->getTrackPerformer(i, j));
-                       trackMetaInfo.setGenre(m_model->getTrackGenre(i, j));
-                       trackMetaInfo.setYear(m_model->getTrackYear(i, j));
-                       trackMetaInfo.setPosition(trackNo);
+                       AudioFileModel_MetaInfo trackMetaInfo(*trackInfo);
                        
                        //Apply album meta data on files
                        if(trackMetaInfo.title().trimmed().isEmpty())
                        {
                                trackMetaInfo.setTitle(QString().sprintf("Track %02d", trackNo));
                        }
-                       if(!albumTitle.isEmpty())
-                       {
-                               trackMetaInfo.setAlbum(albumTitle);
-                       }
-                       if(!albumPerformer.isEmpty() && trackMetaInfo.artist().isEmpty())
-                       {
-                               trackMetaInfo.setArtist(albumPerformer);
-                       }
-                       if(!albumGenre.isEmpty() && trackMetaInfo.genre().isEmpty())
-                       {
-                               trackMetaInfo.setGenre(albumGenre);
-                       }
-                       if((albumYear > 0) && (trackMetaInfo.year() == 0))
-                       {
-                               trackMetaInfo.setYear(albumYear);
-                       }
-                       if(_finite(trackLength))
-                       {
-                               //FIXME !!!
-                               //trackMetaInfo.setDuration(static_cast<unsigned int>(abs(trackLength)));
-                       }
+                       trackMetaInfo.update(*albumInfo, false);
 
                        //Generate output file name
                        QString trackTitle = trackMetaInfo.title().isEmpty() ? QString().sprintf("Track %02d", trackNo) : trackMetaInfo.title();
@@ -238,6 +210,7 @@ void CueSplitter::run()
                        //Call split function
                        emit fileSelected(shortName(QFileInfo(outputFile).fileName()));
                        splitFile(outputFile, trackNo, trackFile, trackOffset, trackLength, trackMetaInfo, maxProgress);
+                       emit progressValChanged(++nTracksComplete);
 
                        if(m_abortFlag)
                        {
@@ -248,6 +221,9 @@ void CueSplitter::run()
                }
        }
 
+       emit progressValChanged(nTracksTotal);
+       lamexp_sleep(333);
+
        qDebug("All files were split.\n");
        m_bSuccess = true;
 }
@@ -258,7 +234,7 @@ void CueSplitter::run()
 
 void CueSplitter::handleUpdate(int progress)
 {
-       emit fileSelected(QString("%1 [%2%]").arg(m_activeFile, QString::number(progress)));
+       //QString("%1 [%2]").arg(m_activeFile, QString::number(progress)))
 }
 
 ////////////////////////////////////////////////////////////
@@ -273,6 +249,7 @@ void CueSplitter::splitFile(const QString &output, const int trackNo, const QStr
        qDebug("Length: <%f> <%s>", length, indexToString(length).toLatin1().constData());
        qDebug("Artist: <%s>", metaInfo.artist().toUtf8().constData());
        qDebug("Title: <%s>", metaInfo.title().toUtf8().constData());
+       qDebug("Album: <%s>", metaInfo.album().toUtf8().constData());
        
        if(!m_decompressedFiles.contains(file))
        {
@@ -285,13 +262,15 @@ void CueSplitter::splitFile(const QString &output, const int trackNo, const QStr
        QString decompressedInput = m_decompressedFiles[file];
        qDebug("Input: <%s>", decompressedInput.toUtf8().constData());
        
-       emit fileSelected(QString("%1 [%2%]").arg(baseName, QString::number(maxProgress)));
+       //emit fileSelected(QString("%1 [%2%]").arg(baseName, QString::number(maxProgress)));
 
-       AudioFileModel outFileInfo;
+       AudioFileModel outFileInfo(output);
        outFileInfo.setMetaInfo(metaInfo);
-       outFileInfo.setFilePath(output);
-       outFileInfo.techInfo().setContainerType("Wave");
-       outFileInfo.techInfo().setAudioType("PCM");
+       
+       AudioFileModel_TechInfo &outFileTechInfo = outFileInfo.techInfo();
+       outFileTechInfo.setContainerType("Wave");
+       outFileTechInfo.setAudioType("PCM");
+       outFileTechInfo.setDuration(static_cast<unsigned int>(abs(length)));
 
        QStringList args;
        args << "-S" << "-V3";
@@ -359,7 +338,7 @@ void CueSplitter::splitFile(const QString &output, const int trackNo, const QStr
                                if(ok)
                                {
                                        maxProgress = qMax(maxProgress, progress);
-                                       emit fileSelected(QString("%1 [%2%]").arg(baseName, QString::number(maxProgress)));
+                                       //emit fileSelected(QString("%1 [%2%]").arg(baseName, QString::number(maxProgress)));
                                }
                        }
                        else if(rxChannels.lastIndexIn(text) >= 0)