1515 }
1616
1717 TextField {
18- placeholderText: " Enter username (default: anon)"
18+ placeholderText: qsTr ( " Enter username (default: anon)" )
1919 text: username .value
20- label: " Username"
20+ label: qsTr ( " Username" )
2121 width: page .width
2222 EnterKey .enabled : text .length > 0 && text .length <= 16
2323 EnterKey .iconSource : " image://theme/icon-m-enter-close"
@@ -29,20 +29,22 @@ Page {
2929
3030 ComboBox {
3131 id: selector
32- label: " Difficulty"
32+ label: qsTr ( " Difficulty" )
3333
3434 function select (diff ) {
3535 var xhr = new XMLHttpRequest ()
3636 xhr .open (" GET" ,
3737 " https://marvinborner.de/lead/binaryfun1/list?sort=time&order=asc&count=1000&filter=difficulty," + diff,
38- false )
39- xhr .send ()
40- if (xhr .status !== 0 ) {
41- list .model = JSON .parse (xhr .responseText );
42- internet .visible = false ;
43- } else {
44- internet .visible = true ;
38+ true )
39+ xhr .onreadystatechange = function () {
40+ if (xhr .readyState === 4 && xhr .status === 200 ) {
41+ list .model = JSON .parse (xhr .responseText );
42+ internet .visible = false ;
43+ } else {
44+ internet .visible = true ;
45+ }
4546 }
47+ xhr .send ()
4648 }
4749
4850 menu: ContextMenu {
7981
8082 Label {
8183 id: internet
82- text: qsTr (" No internet connection! " )
84+ text: qsTr (" Please try again later. " )
8385 visible: false
8486 }
8587
@@ -90,17 +92,36 @@ Page {
9092 height: page .height - y
9193 model: []
9294 delegate: ListItem {
93- contentHeight: Theme .itemSizeMedium
95+ id: score
96+ contentHeight: Theme .itemSizeLarge
9497
9598 Label {
9699 id: name
97100 text: index + 1 + " . " + modelData .name
98101 }
99102
100103 Label {
104+ id: level
101105 anchors .top : name .bottom
102- text: ((modelData .end_time [1 ] - modelData .start_time [1 ]) / 1000 ) + " s - Help: " + modelData .cheats
103- font .pixelSize : Theme .fontSizeSmall
106+ text: {
107+ var numbers = modelData .level .split (" ," ).slice (
108+ modelData .difficulty ).filter (function (_ , i ) {
109+ return i % (modelData .difficulty + 1 ) === 0.
110+ }).slice (1 );
111+ if (numbers .length !== modelData .difficulty && modelData .difficulty !== 10 ) {
112+ console .log (" Tempered: " + numbers .length + " " + modelData .difficulty );
113+ score .visible = false ;
114+ }
115+
116+ return qsTr (" Numbers: " ) + numbers .join (" , " );
117+ }
118+ font .pixelSize : Theme .fontSizeExtraSmall
119+ }
120+
121+ Label {
122+ anchors .top : level .bottom
123+ text: ((modelData .end_time [1 ] - modelData .start_time [1 ]) / 1000 ) + qsTr (" s - Help: " ) + modelData .cheats
124+ font .pixelSize : Theme .fontSizeExtraSmall
104125 }
105126 }
106127 }
0 commit comments