func Init() lng.decl_priv_var(list, 'QStringList') end func doAdd(dt) println(list + '.append(', `Str`, ');') event(onChange) end func doText(dt) println(list, ' = QString(', dt,').split(' + TextSeparator + ');') event(onChange) end func doSave(dt) println('QFile ' + f + '(', FileName, ');') println(f + '.open(QIODevice::WriteOnly);') println(f + '.write(' + list + '.join(' + TextSeparator + ').toUtf8());') println(f + '.close();') end func doLoad(dt) println('QFile ' + f + '(', FileName, ');') println(f + '.open(QIODevice::ReadOnly);') println(list + ' = QString(', f + '.readAll()).split(' + TextSeparator + ');') println(f + '.close();') event(onChange) end func Text() return(list + '.join(' + TextSeparator + ')') end func Count() return(list + '.size()') end func Array(_data) // read write count add if(_data[0] = "@perm@") return(1 & 1 & 1 & 1) elseif(_data[0] = "@read@") return((list + '.at(' + _data[1] + ')')@str) elseif(_data[0] = "@write@") return(list + '.replace(' + _data[1] + ', ' + e_str(_data[2]) + ')') elseif(_data[0] = "@count@") return((list + '.size()')@int) elseif(_data[0] = "@add@") return(list + '.append(' + e_str(_data[1]) + ')') end end