func checkTime(tm) if(expof(tm) = QTime) return(1) else error("Incorrect type for point Source: QTime required.") return(0) end end func doConvert(_data) fvar(src, msk) src = Source msk = Mask switch(Direction) case 0: if(checkTime(src)) if(linked(Result)) lng.decl_loc_var(cvt, 'QString') println(cvt + ' = ', src, '.toString(', msk, ');') event(onConvert, cvt@str) else event(onConvert, (src && '.toString(' && msk && ')')@str) end end case 1: if(linked(Result)) lng.decl_loc_var(cvt, 'QTime') println(cvt + ' = QTime::fromString(', src, ',', msk, ');') event(onConvert, cvt@QTime) else event(onConvert, ('QTime::fromString(' && src && ',' && msk && ')')@QTime) end case 2: if(checkTime(src)) if(linked(Result)) lng.decl_loc_var(cvt, 'int') println(cvt + ' = ', src, '.msecsTo(QTime());') event(onConvert, cvt@int) else event(onConvert, (src && '.msecsTo(QTime())')@int) end end case 3: if(linked(Result)) lng.decl_loc_var(cvt, 'QTime') println(cvt + ' = ' + cvt + '.addMSecs(', src, ');') event(onConvert, cvt@QTime) else event(onConvert, ('QTime().addMSecs(' && src && ')')@QTime) end end end func Result() switch(Direction) case 0: if(linked(doConvert)) return(cvt@str) else fvar(s) s = Source if(checkTime(s)) return((s && '.toString(' && Mask && ')')@str) end end case 1: if(linked(doConvert)) return(cvt@QTime) else return(('QTime::fromString(' && src && ',' && msk && ')')@QTime) end case 2: if(linked(doConvert)) return(cvt@int) else fvar(s) s = Source if(checkTime(s)) return((s && '.msecsTo(QTime())')@int) end end case 3: if(linked(doConvert)) return(cvt@QTime) else return(('QTime().addMSecs(' && src && ')')@QTime) end end end