Warning, /multimedia/kid3/src/qml/script/ShowTextEncodingV1.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * \file ShowTextEncodingV1.qml
0003  * Helps to find the encoding of ID3v1 tags by showing the tags of the
0004  * current file in all available character encodings.
0005  *
0006  * \b Project: Kid3
0007  * \author Urs Fleisch
0008  * \date 06 Mar 2015
0009  *
0010  * Copyright (C) 2015  Urs Fleisch
0011  *
0012  * This program is free software; you can redistribute it and/or modify
0013  * it under the terms of the GNU Lesser General Public License as published by
0014  * the Free Software Foundation; version 3.
0015  *
0016  * This program is distributed in the hope that it will be useful,
0017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0019  * GNU Lesser General Public License for more details.
0020  *
0021  * You should have received a copy of the GNU Lesser General Public License
0022  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0023  */
0024 
0025 import Kid3 1.0
0026 
0027 Kid3Script {
0028   onRun: {
0029     // Apply the encoding by changing the configuration, applying the changes,
0030     // and then force rereading the tags by deselecting and selecting the
0031     // current file.
0032     function applyEncoding(encNr) {
0033       tagCfg.textEncodingV1Index = encNr
0034       app.applyChangedConfiguration()
0035       app.selectCurrentFile(false)
0036       app.unloadAllTags()
0037       app.selectCurrentFile(true)
0038     }
0039 
0040     if (app.selectionInfo.tag(Frame.Tag_1).tagFormat) {
0041       var frameNames = ["title", "artist", "album", "comment"]
0042       var tagCfg = configs.tagConfig()
0043       var textEncodings = tagCfg.getTextCodecNames()
0044       var textEncodingV1Index = tagCfg.textEncodingV1Index
0045       var maxEncLen = Math.max.apply(null, textEncodings.map(
0046                                        function(s) { return s.length; }))
0047       var i
0048       for (var encNr = 0; encNr < textEncodings.length; ++encNr) {
0049         applyEncoding(encNr)
0050         var txt = textEncodings[encNr]
0051         var numSpaces = maxEncLen - txt.length
0052         txt += ":"
0053         for (i = 0; i < numSpaces; ++i) {
0054           txt += " "
0055         }
0056         for (i = 0; i < frameNames.length; ++i) {
0057           if (i > 0) {
0058             txt += " "
0059           }
0060           txt += app.getFrame(tagv1, frameNames[i])
0061         }
0062         console.log(txt)
0063       }
0064       applyEncoding(textEncodingV1Index)
0065       app.applyChangedConfiguration()
0066     }
0067     Qt.quit()
0068   }
0069 }