manabu-desktop 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/layouts/login.glade +24 -24
- data/layouts/main_menu.glade +32 -19
- data/layouts/roster.glade +203 -6
- data/layouts/student_registration.glade +307 -168
- data/layouts/toolbox.glade +2 -2
- data/lib/screens/base.rb +17 -5
- data/lib/screens/login.rb +15 -12
- data/lib/screens/main_menu.rb +29 -6
- data/lib/screens/roster.rb +73 -33
- data/lib/screens/student/registration.rb +73 -12
- data/lib/screens/toolbox.rb +12 -9
- data/lib/sessions.rb +20 -0
- data/lib/tools.rb +31 -8
- data/lib/windows.rb +26 -0
- data/manabu-desktop.gemspec +1 -1
- metadata +3 -2
@@ -2,211 +2,334 @@
|
|
2
2
|
<!-- Generated with glade 3.20.0 -->
|
3
3
|
<interface>
|
4
4
|
<requires lib="gtk+" version="3.20"/>
|
5
|
-
<object class="
|
5
|
+
<object class="GtkImage" id="birth_date_picker.Image">
|
6
|
+
<property name="visible">True</property>
|
6
7
|
<property name="can_focus">False</property>
|
8
|
+
<property name="stock">gtk-index</property>
|
9
|
+
</object>
|
10
|
+
<object class="GtkWindow" id="student_registration.Window">
|
11
|
+
<property name="can_focus">False</property>
|
12
|
+
<property name="default_width">720</property>
|
13
|
+
<property name="default_height">300</property>
|
7
14
|
<child>
|
8
15
|
<object class="GtkBox">
|
9
16
|
<property name="visible">True</property>
|
10
17
|
<property name="can_focus">False</property>
|
11
18
|
<property name="orientation">vertical</property>
|
12
19
|
<child>
|
13
|
-
<object class="
|
20
|
+
<object class="GtkBox">
|
14
21
|
<property name="visible">True</property>
|
15
22
|
<property name="can_focus">False</property>
|
16
23
|
<child>
|
17
|
-
<object class="
|
18
|
-
<property name="visible">True</property>
|
19
|
-
<property name="can_focus">False</property>
|
20
|
-
<property name="label" translatable="yes">surname</property>
|
21
|
-
</object>
|
22
|
-
<packing>
|
23
|
-
<property name="left_attach">0</property>
|
24
|
-
<property name="top_attach">0</property>
|
25
|
-
</packing>
|
26
|
-
</child>
|
27
|
-
<child>
|
28
|
-
<object class="GtkLabel" id="name.label">
|
29
|
-
<property name="visible">True</property>
|
30
|
-
<property name="can_focus">False</property>
|
31
|
-
<property name="label" translatable="yes">name</property>
|
32
|
-
</object>
|
33
|
-
<packing>
|
34
|
-
<property name="left_attach">1</property>
|
35
|
-
<property name="top_attach">0</property>
|
36
|
-
</packing>
|
37
|
-
</child>
|
38
|
-
<child>
|
39
|
-
<object class="GtkLabel" id="middle_name.label">
|
40
|
-
<property name="visible">True</property>
|
41
|
-
<property name="can_focus">False</property>
|
42
|
-
<property name="label" translatable="yes">middle_name</property>
|
43
|
-
</object>
|
44
|
-
<packing>
|
45
|
-
<property name="left_attach">2</property>
|
46
|
-
<property name="top_attach">0</property>
|
47
|
-
</packing>
|
48
|
-
</child>
|
49
|
-
<child>
|
50
|
-
<object class="GtkEntry" id="surname.entry">
|
51
|
-
<property name="visible">True</property>
|
52
|
-
<property name="can_focus">True</property>
|
53
|
-
</object>
|
54
|
-
<packing>
|
55
|
-
<property name="left_attach">0</property>
|
56
|
-
<property name="top_attach">1</property>
|
57
|
-
</packing>
|
58
|
-
</child>
|
59
|
-
<child>
|
60
|
-
<object class="GtkEntry" id="name.entry">
|
61
|
-
<property name="visible">True</property>
|
62
|
-
<property name="can_focus">True</property>
|
63
|
-
</object>
|
64
|
-
<packing>
|
65
|
-
<property name="left_attach">1</property>
|
66
|
-
<property name="top_attach">1</property>
|
67
|
-
</packing>
|
68
|
-
</child>
|
69
|
-
<child>
|
70
|
-
<object class="GtkEntry" id="middle_name.entry">
|
71
|
-
<property name="visible">True</property>
|
72
|
-
<property name="can_focus">True</property>
|
73
|
-
</object>
|
74
|
-
<packing>
|
75
|
-
<property name="left_attach">2</property>
|
76
|
-
<property name="top_attach">1</property>
|
77
|
-
</packing>
|
78
|
-
</child>
|
79
|
-
<child>
|
80
|
-
<object class="GtkLabel" id="surname_reading.label">
|
24
|
+
<object class="GtkBox">
|
81
25
|
<property name="visible">True</property>
|
82
26
|
<property name="can_focus">False</property>
|
83
|
-
<property name="
|
27
|
+
<property name="orientation">vertical</property>
|
28
|
+
<child>
|
29
|
+
<object class="GtkGrid" id="name.Grid">
|
30
|
+
<property name="visible">True</property>
|
31
|
+
<property name="can_focus">False</property>
|
32
|
+
<child>
|
33
|
+
<object class="GtkLabel" id="name.Label">
|
34
|
+
<property name="visible">True</property>
|
35
|
+
<property name="can_focus">False</property>
|
36
|
+
<property name="label" translatable="yes">name</property>
|
37
|
+
</object>
|
38
|
+
<packing>
|
39
|
+
<property name="left_attach">1</property>
|
40
|
+
<property name="top_attach">0</property>
|
41
|
+
</packing>
|
42
|
+
</child>
|
43
|
+
<child>
|
44
|
+
<object class="GtkLabel" id="middle_name.Label">
|
45
|
+
<property name="visible">True</property>
|
46
|
+
<property name="can_focus">False</property>
|
47
|
+
<property name="label" translatable="yes">middle_name</property>
|
48
|
+
</object>
|
49
|
+
<packing>
|
50
|
+
<property name="left_attach">2</property>
|
51
|
+
<property name="top_attach">0</property>
|
52
|
+
</packing>
|
53
|
+
</child>
|
54
|
+
<child>
|
55
|
+
<object class="GtkEntry" id="surname.Entry">
|
56
|
+
<property name="visible">True</property>
|
57
|
+
<property name="can_focus">True</property>
|
58
|
+
</object>
|
59
|
+
<packing>
|
60
|
+
<property name="left_attach">0</property>
|
61
|
+
<property name="top_attach">1</property>
|
62
|
+
</packing>
|
63
|
+
</child>
|
64
|
+
<child>
|
65
|
+
<object class="GtkEntry" id="name.Entry">
|
66
|
+
<property name="visible">True</property>
|
67
|
+
<property name="can_focus">True</property>
|
68
|
+
</object>
|
69
|
+
<packing>
|
70
|
+
<property name="left_attach">1</property>
|
71
|
+
<property name="top_attach">1</property>
|
72
|
+
</packing>
|
73
|
+
</child>
|
74
|
+
<child>
|
75
|
+
<object class="GtkEntry" id="middle_name.Entry">
|
76
|
+
<property name="visible">True</property>
|
77
|
+
<property name="can_focus">True</property>
|
78
|
+
</object>
|
79
|
+
<packing>
|
80
|
+
<property name="left_attach">2</property>
|
81
|
+
<property name="top_attach">1</property>
|
82
|
+
</packing>
|
83
|
+
</child>
|
84
|
+
<child>
|
85
|
+
<object class="GtkLabel" id="name_reading.Label">
|
86
|
+
<property name="visible">True</property>
|
87
|
+
<property name="can_focus">False</property>
|
88
|
+
<property name="label" translatable="yes">name_reading</property>
|
89
|
+
</object>
|
90
|
+
<packing>
|
91
|
+
<property name="left_attach">1</property>
|
92
|
+
<property name="top_attach">2</property>
|
93
|
+
</packing>
|
94
|
+
</child>
|
95
|
+
<child>
|
96
|
+
<object class="GtkLabel" id="middle_name_reading.Label">
|
97
|
+
<property name="visible">True</property>
|
98
|
+
<property name="can_focus">False</property>
|
99
|
+
<property name="label" translatable="yes">middle_name_reading</property>
|
100
|
+
</object>
|
101
|
+
<packing>
|
102
|
+
<property name="left_attach">2</property>
|
103
|
+
<property name="top_attach">2</property>
|
104
|
+
</packing>
|
105
|
+
</child>
|
106
|
+
<child>
|
107
|
+
<object class="GtkEntry" id="name_reading.Entry">
|
108
|
+
<property name="visible">True</property>
|
109
|
+
<property name="can_focus">True</property>
|
110
|
+
</object>
|
111
|
+
<packing>
|
112
|
+
<property name="left_attach">1</property>
|
113
|
+
<property name="top_attach">3</property>
|
114
|
+
</packing>
|
115
|
+
</child>
|
116
|
+
<child>
|
117
|
+
<object class="GtkEntry" id="middle_name_reading.Entry">
|
118
|
+
<property name="visible">True</property>
|
119
|
+
<property name="can_focus">True</property>
|
120
|
+
</object>
|
121
|
+
<packing>
|
122
|
+
<property name="left_attach">2</property>
|
123
|
+
<property name="top_attach">3</property>
|
124
|
+
</packing>
|
125
|
+
</child>
|
126
|
+
<child>
|
127
|
+
<object class="GtkLabel" id="surname.Label">
|
128
|
+
<property name="visible">True</property>
|
129
|
+
<property name="can_focus">False</property>
|
130
|
+
<property name="label" translatable="yes">surname</property>
|
131
|
+
</object>
|
132
|
+
<packing>
|
133
|
+
<property name="left_attach">0</property>
|
134
|
+
<property name="top_attach">0</property>
|
135
|
+
</packing>
|
136
|
+
</child>
|
137
|
+
<child>
|
138
|
+
<object class="GtkEntry" id="surname_reading.Entry">
|
139
|
+
<property name="visible">True</property>
|
140
|
+
<property name="can_focus">True</property>
|
141
|
+
</object>
|
142
|
+
<packing>
|
143
|
+
<property name="left_attach">0</property>
|
144
|
+
<property name="top_attach">3</property>
|
145
|
+
</packing>
|
146
|
+
</child>
|
147
|
+
<child>
|
148
|
+
<object class="GtkLabel" id="surname_reading.Label">
|
149
|
+
<property name="visible">True</property>
|
150
|
+
<property name="can_focus">False</property>
|
151
|
+
<property name="label" translatable="yes">surname_reading</property>
|
152
|
+
</object>
|
153
|
+
<packing>
|
154
|
+
<property name="left_attach">0</property>
|
155
|
+
<property name="top_attach">2</property>
|
156
|
+
</packing>
|
157
|
+
</child>
|
158
|
+
</object>
|
159
|
+
<packing>
|
160
|
+
<property name="expand">False</property>
|
161
|
+
<property name="fill">True</property>
|
162
|
+
<property name="position">0</property>
|
163
|
+
</packing>
|
164
|
+
</child>
|
165
|
+
<child>
|
166
|
+
<object class="GtkGrid" id="student_details.Grid">
|
167
|
+
<property name="visible">True</property>
|
168
|
+
<property name="can_focus">False</property>
|
169
|
+
<child>
|
170
|
+
<object class="GtkLabel" id="gender.Label">
|
171
|
+
<property name="visible">True</property>
|
172
|
+
<property name="can_focus">False</property>
|
173
|
+
<property name="label" translatable="yes">gender</property>
|
174
|
+
</object>
|
175
|
+
<packing>
|
176
|
+
<property name="left_attach">0</property>
|
177
|
+
<property name="top_attach">0</property>
|
178
|
+
</packing>
|
179
|
+
</child>
|
180
|
+
<child>
|
181
|
+
<object class="GtkLabel" id="birth_date.Label">
|
182
|
+
<property name="visible">True</property>
|
183
|
+
<property name="can_focus">False</property>
|
184
|
+
<property name="label" translatable="yes">birth_date</property>
|
185
|
+
</object>
|
186
|
+
<packing>
|
187
|
+
<property name="left_attach">1</property>
|
188
|
+
<property name="top_attach">0</property>
|
189
|
+
</packing>
|
190
|
+
</child>
|
191
|
+
<child>
|
192
|
+
<object class="GtkComboBoxText" id="gender.ComboBoxText">
|
193
|
+
<property name="visible">True</property>
|
194
|
+
<property name="can_focus">False</property>
|
195
|
+
</object>
|
196
|
+
<packing>
|
197
|
+
<property name="left_attach">0</property>
|
198
|
+
<property name="top_attach">1</property>
|
199
|
+
</packing>
|
200
|
+
</child>
|
201
|
+
<child>
|
202
|
+
<object class="GtkBox">
|
203
|
+
<property name="visible">True</property>
|
204
|
+
<property name="can_focus">False</property>
|
205
|
+
<child>
|
206
|
+
<object class="GtkEntry" id="birth_date.Entry">
|
207
|
+
<property name="visible">True</property>
|
208
|
+
<property name="can_focus">True</property>
|
209
|
+
</object>
|
210
|
+
<packing>
|
211
|
+
<property name="expand">False</property>
|
212
|
+
<property name="fill">True</property>
|
213
|
+
<property name="position">0</property>
|
214
|
+
</packing>
|
215
|
+
</child>
|
216
|
+
<child>
|
217
|
+
<object class="GtkToggleButton" id="birth_date_picker.ToggleButton">
|
218
|
+
<property name="visible">True</property>
|
219
|
+
<property name="can_focus">True</property>
|
220
|
+
<property name="receives_default">True</property>
|
221
|
+
<property name="image">birth_date_picker.Image</property>
|
222
|
+
<property name="image_position">right</property>
|
223
|
+
<property name="always_show_image">True</property>
|
224
|
+
</object>
|
225
|
+
<packing>
|
226
|
+
<property name="expand">False</property>
|
227
|
+
<property name="fill">True</property>
|
228
|
+
<property name="position">1</property>
|
229
|
+
</packing>
|
230
|
+
</child>
|
231
|
+
</object>
|
232
|
+
<packing>
|
233
|
+
<property name="left_attach">1</property>
|
234
|
+
<property name="top_attach">1</property>
|
235
|
+
</packing>
|
236
|
+
</child>
|
237
|
+
<child>
|
238
|
+
<object class="GtkLabel" id="enrollment_status.Label">
|
239
|
+
<property name="visible">True</property>
|
240
|
+
<property name="can_focus">False</property>
|
241
|
+
<property name="label" translatable="yes">enrollment_status</property>
|
242
|
+
</object>
|
243
|
+
<packing>
|
244
|
+
<property name="left_attach">2</property>
|
245
|
+
<property name="top_attach">0</property>
|
246
|
+
</packing>
|
247
|
+
</child>
|
248
|
+
<child>
|
249
|
+
<object class="GtkComboBoxText">
|
250
|
+
<property name="visible">True</property>
|
251
|
+
<property name="can_focus">False</property>
|
252
|
+
</object>
|
253
|
+
<packing>
|
254
|
+
<property name="left_attach">2</property>
|
255
|
+
<property name="top_attach">1</property>
|
256
|
+
</packing>
|
257
|
+
</child>
|
258
|
+
</object>
|
259
|
+
<packing>
|
260
|
+
<property name="expand">False</property>
|
261
|
+
<property name="fill">True</property>
|
262
|
+
<property name="position">1</property>
|
263
|
+
</packing>
|
264
|
+
</child>
|
265
|
+
<child>
|
266
|
+
<placeholder/>
|
267
|
+
</child>
|
84
268
|
</object>
|
85
269
|
<packing>
|
86
|
-
<property name="
|
87
|
-
<property name="
|
270
|
+
<property name="expand">False</property>
|
271
|
+
<property name="fill">True</property>
|
272
|
+
<property name="position">0</property>
|
88
273
|
</packing>
|
89
274
|
</child>
|
90
275
|
<child>
|
91
|
-
<object class="
|
276
|
+
<object class="GtkBox">
|
92
277
|
<property name="visible">True</property>
|
93
278
|
<property name="can_focus">False</property>
|
94
|
-
<property name="
|
279
|
+
<property name="orientation">vertical</property>
|
280
|
+
<property name="baseline_position">bottom</property>
|
281
|
+
<child>
|
282
|
+
<object class="GtkImage" id="photo.Image">
|
283
|
+
<property name="visible">True</property>
|
284
|
+
<property name="can_focus">False</property>
|
285
|
+
<property name="stock">gtk-missing-image</property>
|
286
|
+
</object>
|
287
|
+
<packing>
|
288
|
+
<property name="expand">True</property>
|
289
|
+
<property name="fill">True</property>
|
290
|
+
<property name="position">0</property>
|
291
|
+
</packing>
|
292
|
+
</child>
|
293
|
+
<child>
|
294
|
+
<object class="GtkFileChooserButton" id="photo.FileChooserButton">
|
295
|
+
<property name="visible">True</property>
|
296
|
+
<property name="can_focus">False</property>
|
297
|
+
<property name="title" translatable="yes"/>
|
298
|
+
</object>
|
299
|
+
<packing>
|
300
|
+
<property name="expand">False</property>
|
301
|
+
<property name="fill">True</property>
|
302
|
+
<property name="position">1</property>
|
303
|
+
</packing>
|
304
|
+
</child>
|
95
305
|
</object>
|
96
306
|
<packing>
|
97
|
-
<property name="
|
98
|
-
<property name="
|
307
|
+
<property name="expand">True</property>
|
308
|
+
<property name="fill">True</property>
|
309
|
+
<property name="pack_type">end</property>
|
310
|
+
<property name="position">1</property>
|
99
311
|
</packing>
|
100
312
|
</child>
|
101
313
|
<child>
|
102
|
-
<object class="
|
314
|
+
<object class="GtkSeparator">
|
103
315
|
<property name="visible">True</property>
|
104
316
|
<property name="can_focus">False</property>
|
105
|
-
<property name="label" translatable="yes">middle_name_reading</property>
|
106
|
-
</object>
|
107
|
-
<packing>
|
108
|
-
<property name="left_attach">2</property>
|
109
|
-
<property name="top_attach">2</property>
|
110
|
-
</packing>
|
111
|
-
</child>
|
112
|
-
<child>
|
113
|
-
<object class="GtkEntry" id="surname_reading.entry">
|
114
|
-
<property name="visible">True</property>
|
115
|
-
<property name="can_focus">True</property>
|
116
|
-
</object>
|
117
|
-
<packing>
|
118
|
-
<property name="left_attach">0</property>
|
119
|
-
<property name="top_attach">3</property>
|
120
|
-
</packing>
|
121
|
-
</child>
|
122
|
-
<child>
|
123
|
-
<object class="GtkEntry" id="name_reading.entry">
|
124
|
-
<property name="visible">True</property>
|
125
|
-
<property name="can_focus">True</property>
|
126
|
-
</object>
|
127
|
-
<packing>
|
128
|
-
<property name="left_attach">1</property>
|
129
|
-
<property name="top_attach">3</property>
|
130
|
-
</packing>
|
131
|
-
</child>
|
132
|
-
<child>
|
133
|
-
<object class="GtkEntry" id="middle_name_reading.entry">
|
134
|
-
<property name="visible">True</property>
|
135
|
-
<property name="can_focus">True</property>
|
136
317
|
</object>
|
137
318
|
<packing>
|
138
|
-
<property name="
|
139
|
-
<property name="
|
319
|
+
<property name="expand">False</property>
|
320
|
+
<property name="fill">True</property>
|
321
|
+
<property name="position">2</property>
|
140
322
|
</packing>
|
141
323
|
</child>
|
142
324
|
</object>
|
143
325
|
<packing>
|
144
|
-
<property name="expand">
|
326
|
+
<property name="expand">True</property>
|
145
327
|
<property name="fill">True</property>
|
146
328
|
<property name="position">0</property>
|
147
329
|
</packing>
|
148
330
|
</child>
|
149
331
|
<child>
|
150
|
-
<object class="
|
151
|
-
<property name="visible">True</property>
|
152
|
-
<property name="can_focus">False</property>
|
153
|
-
<child>
|
154
|
-
<object class="GtkLabel" id="sex.label">
|
155
|
-
<property name="visible">True</property>
|
156
|
-
<property name="can_focus">False</property>
|
157
|
-
<property name="label" translatable="yes">sex</property>
|
158
|
-
</object>
|
159
|
-
<packing>
|
160
|
-
<property name="left_attach">0</property>
|
161
|
-
<property name="top_attach">0</property>
|
162
|
-
</packing>
|
163
|
-
</child>
|
164
|
-
<child>
|
165
|
-
<object class="GtkLabel" id="birth_date.label">
|
166
|
-
<property name="visible">True</property>
|
167
|
-
<property name="can_focus">False</property>
|
168
|
-
<property name="label" translatable="yes">birth_date</property>
|
169
|
-
</object>
|
170
|
-
<packing>
|
171
|
-
<property name="left_attach">1</property>
|
172
|
-
<property name="top_attach">0</property>
|
173
|
-
</packing>
|
174
|
-
</child>
|
175
|
-
<child>
|
176
|
-
<object class="GtkEntry" id="birth_date.entry">
|
177
|
-
<property name="visible">True</property>
|
178
|
-
<property name="can_focus">True</property>
|
179
|
-
</object>
|
180
|
-
<packing>
|
181
|
-
<property name="left_attach">1</property>
|
182
|
-
<property name="top_attach">1</property>
|
183
|
-
</packing>
|
184
|
-
</child>
|
185
|
-
<child>
|
186
|
-
<object class="GtkComboBoxText" id="sex.comboboxtext">
|
187
|
-
<property name="visible">True</property>
|
188
|
-
<property name="can_focus">False</property>
|
189
|
-
</object>
|
190
|
-
<packing>
|
191
|
-
<property name="left_attach">0</property>
|
192
|
-
<property name="top_attach">1</property>
|
193
|
-
</packing>
|
194
|
-
</child>
|
195
|
-
<child>
|
196
|
-
<placeholder/>
|
197
|
-
</child>
|
198
|
-
<child>
|
199
|
-
<placeholder/>
|
200
|
-
</child>
|
201
|
-
</object>
|
202
|
-
<packing>
|
203
|
-
<property name="expand">False</property>
|
204
|
-
<property name="fill">True</property>
|
205
|
-
<property name="position">1</property>
|
206
|
-
</packing>
|
207
|
-
</child>
|
208
|
-
<child>
|
209
|
-
<object class="GtkButton" id="register.button">
|
332
|
+
<object class="GtkButton" id="register.Button">
|
210
333
|
<property name="label" translatable="yes">register</property>
|
211
334
|
<property name="visible">True</property>
|
212
335
|
<property name="can_focus">True</property>
|
@@ -221,4 +344,20 @@
|
|
221
344
|
</object>
|
222
345
|
</child>
|
223
346
|
</object>
|
347
|
+
<object class="GtkPopover" id="birth_date_picker.Popover">
|
348
|
+
<property name="can_focus">False</property>
|
349
|
+
<property name="relative_to">birth_date_picker.ToggleButton</property>
|
350
|
+
<property name="position">bottom</property>
|
351
|
+
<child>
|
352
|
+
<object class="GtkCalendar" id="birth_date_picker.Calendar">
|
353
|
+
<property name="visible">True</property>
|
354
|
+
<property name="can_focus">True</property>
|
355
|
+
<property name="year">1999</property>
|
356
|
+
</object>
|
357
|
+
</child>
|
358
|
+
</object>
|
359
|
+
<object class="GtkMenu" id="menu1">
|
360
|
+
<property name="visible">True</property>
|
361
|
+
<property name="can_focus">False</property>
|
362
|
+
</object>
|
224
363
|
</interface>
|
data/layouts/toolbox.glade
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
<!-- Generated with glade 3.20.0 -->
|
3
3
|
<interface>
|
4
4
|
<requires lib="gtk+" version="3.20"/>
|
5
|
-
<object class="GtkWindow" id="toolbox.
|
5
|
+
<object class="GtkWindow" id="toolbox.Window">
|
6
6
|
<property name="can_focus">False</property>
|
7
7
|
<child>
|
8
|
-
<object class="GtkIconView" id="tools.
|
8
|
+
<object class="GtkIconView" id="tools.IconView">
|
9
9
|
<property name="visible">True</property>
|
10
10
|
<property name="can_focus">True</property>
|
11
11
|
<property name="margin">6</property>
|
data/lib/screens/base.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative '../tools'
|
2
|
+
require_relative '../windows'
|
2
3
|
require 'gtk3'
|
3
4
|
|
4
5
|
module ManabuDesktop
|
@@ -6,6 +7,9 @@ module ManabuDesktop
|
|
6
7
|
class Base
|
7
8
|
attr_accessor :window, :builder
|
8
9
|
|
10
|
+
@@gtk_initialized = false
|
11
|
+
@@gtk_main_quit_set = false
|
12
|
+
|
9
13
|
def initialize(layout, locale = :c)
|
10
14
|
@builder = Gtk::Builder.new()
|
11
15
|
@builder.add_from_file("#{__dir__}/../../layouts/#{layout}.glade")
|
@@ -19,16 +23,24 @@ module ManabuDesktop
|
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
22
|
-
@window = builder.get_object("#{layout}.
|
23
|
-
@window.
|
24
|
-
|
25
|
-
|
26
|
+
@window = builder.get_object("#{layout}.Window")
|
27
|
+
@window.set_title(I18n.t("#{layout}.title"))
|
28
|
+
unless @@gtk_main_quit_set
|
29
|
+
@window.signal_connect('delete-event') do |_widget|
|
30
|
+
#@window.destroy()
|
31
|
+
ManabuDesktop::Windows.destroy_all()
|
32
|
+
Gtk.main_quit()
|
33
|
+
end
|
34
|
+
@@gtk_main_quit_set = true
|
26
35
|
end
|
27
36
|
end
|
28
37
|
|
29
38
|
def _show()
|
30
39
|
@window.show()
|
31
|
-
|
40
|
+
unless @@gtk_initialized
|
41
|
+
Gtk.main()
|
42
|
+
@@gtk_initialized = true
|
43
|
+
end
|
32
44
|
end
|
33
45
|
end
|
34
46
|
end
|
data/lib/screens/login.rb
CHANGED
@@ -18,28 +18,28 @@ module ManabuDesktop
|
|
18
18
|
|
19
19
|
@window.resizable = false
|
20
20
|
|
21
|
-
@builder.get_object('server.
|
22
|
-
@builder.get_object('secure.
|
23
|
-
@
|
24
|
-
@server_secure_switch = @builder.get_object('secure.
|
25
|
-
@cache_info[:servers].each{ |server| @
|
21
|
+
@builder.get_object('server.Label').set_label(I18n.t('login.server'))
|
22
|
+
@builder.get_object('secure.Label').set_label(I18n.t('login.secure'))
|
23
|
+
@server_comboBoxText = @builder.get_object('server.ComboBoxText')
|
24
|
+
@server_secure_switch = @builder.get_object('secure.Switch')
|
25
|
+
@cache_info[:servers].each{ |server| @server_comboBoxText.append_text(server[:addr])}
|
26
26
|
if (@cache_info[:servers].length > 0)
|
27
|
-
@
|
27
|
+
@server_comboBoxText.set_active(0)
|
28
28
|
@server_secure_switch.active = @cache_info[:servers][0][:secure]
|
29
29
|
end
|
30
30
|
# TODO: set server details when selection is changed
|
31
31
|
# TODO: allow deletion of a server entry
|
32
32
|
# TODO: save new servers
|
33
33
|
|
34
|
-
@builder.get_object('user.
|
35
|
-
@user_entry = @builder.get_object('user.
|
36
|
-
@builder.get_object('password.
|
37
|
-
@password_entry = @builder.get_object('password.
|
34
|
+
@builder.get_object('user.Label').set_label(I18n.t('login.user'))
|
35
|
+
@user_entry = @builder.get_object('user.Entry')
|
36
|
+
@builder.get_object('password.Label').set_label(I18n.t('login.password'))
|
37
|
+
@password_entry = @builder.get_object('password.Entry')
|
38
38
|
|
39
|
-
engage_button = @builder.get_object('engage.
|
39
|
+
engage_button = @builder.get_object('engage.Button')
|
40
40
|
engage_button.set_label(I18n.t('login.engage'))
|
41
41
|
engage_button.signal_connect('clicked') {
|
42
|
-
_engage(@
|
42
|
+
_engage(@server_comboBoxText.active_text, @server_secure_switch.active?,
|
43
43
|
@user_entry.text, @password_entry.text)
|
44
44
|
}
|
45
45
|
|
@@ -65,9 +65,12 @@ module ManabuDesktop
|
|
65
65
|
port = /[^:]\d[^\D]*/.match(server).to_s.to_i # port part
|
66
66
|
port = 80 if (port == 0)
|
67
67
|
route = /\/.*$/.match(server) #route part
|
68
|
+
|
69
|
+
# TODO: first check if a session is already open to this server/port/user
|
68
70
|
@client = Manabu::Client.new(user, password, "#{addr}#{route}", port,
|
69
71
|
force_secure_connection: secure)
|
70
72
|
if @client.status == :connected
|
73
|
+
ManabuDesktop::Sessions.add_session(@client)
|
71
74
|
_open_toolbox(@client)
|
72
75
|
end
|
73
76
|
end
|