diff options
Diffstat (limited to 'src/plugins/Input/mad/decodermadfactory.cpp')
| -rw-r--r-- | src/plugins/Input/mad/decodermadfactory.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp index 8bb04aca1..95d27c337 100644 --- a/src/plugins/Input/mad/decodermadfactory.cpp +++ b/src/plugins/Input/mad/decodermadfactory.cpp @@ -71,16 +71,6 @@ FileTag *DecoderMADFactory::createTag(const QString &source) QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); settings.beginGroup("MAD"); - QTextCodec *codec_v1 = - QTextCodec::codecForName(settings.value("ID3v1_encoding","UTF-8" ) - .toByteArray ()); - QTextCodec *codec_v2 = - QTextCodec::codecForName(settings.value("ID3v2_encoding","UTF-8" ) - .toByteArray ()); - if (!codec_v1) - codec_v1 = QTextCodec::codecForName ("UTF-8"); - if (!codec_v2) - codec_v2 = QTextCodec::codecForName ("UTF-8"); QTextCodec *codec = 0; @@ -96,13 +86,19 @@ FileTag *DecoderMADFactory::createTag(const QString &source) { case SettingsDialog::ID3v1: { - codec = codec_v1; + codec = QTextCodec::codecForName(settings.value("ID3v1_encoding","ISO-8859-1") + .toByteArray ()); tag = fileRef.ID3v1Tag(); break; } case SettingsDialog::ID3v2: { - codec = codec_v2; + QByteArray name; + name = settings.value("ID3v2_encoding","UTF-8").toByteArray (); + if(name.contains("UTF")) + codec = QTextCodec::codecForName ("UTF-8"); + else + codec = QTextCodec::codecForName(name); tag = fileRef.ID3v2Tag(); break; } @@ -122,6 +118,9 @@ FileTag *DecoderMADFactory::createTag(const QString &source) } settings.endGroup(); + if(!codec) + codec = QTextCodec::codecForName ("UTF-8"); + if (tag && codec) { bool utf = codec->name ().contains("UTF"); |
