// 0 - StringToAsciiBA // 1 - StringToLatin1BA // 2 - StringToLocal8BitBA // 3 - StringToUtf8BA // 4 - ByteArrayToString // 5 - ByteArrayToHEX // 6 - HEXToByteArray // 7 - ByteArrayToBase64 // 8 - Base64ToByteArray func _create(_data) fvar(ba, tp) ba = Data tp = lng.get_type(ba) if((Mode == 1 and tp != 2)or(Mode != 1 and tp != QByteArray)) error("incorrect data type for point Data") return('') end switch(Mode) case 0: lng.decl_priv_var(tba, 'QByteArray') println(tba + ' = ', ba, ';') return(('QString::from' + code(StringMode) + '(' + tba + '.data(), ' + tba + '.length())')@str) case 1: return((ba && '.to' + code(StringMode) + '()')@QByteArray) case 2: return((ba && '.toHex()')@QByteArray) case 3: return(('QByteArray::fromHex(' && ba && ')')@QByteArray) case 4: return((ba && '.toBase64()')@QByteArray) case 5: return(('QByteArray::fromBase64(' && ba && ')')@QByteArray) end end func doConvert(_data) if(linked(Result)) lng.decl_loc_var(cres, (Mode = 4) ? 'QString' : 'QByteArray') println(cres + ' = ', _create(_data), ';') event(onConvert, cres) else event(onConvert, _create(_data)) end end func Result(_data) if(linked(doConvert)) return(cres) else return(_create(_data)) end end