@@ -29,14 +29,17 @@ public class He.AboutWindow : He.Window {
29
29
private Gtk . Box info_box = new Gtk .Box (Gtk . Orientation . VERTICAL , 12 );
30
30
private Gtk . Box title_box = new Gtk .Box (Gtk . Orientation . HORIZONTAL , 18 );
31
31
private Gtk . Box text_box = new Gtk .Box (Gtk . Orientation . VERTICAL , 6 );
32
+ private Gtk . Box developers_box = new Gtk .Box (Gtk . Orientation . VERTICAL , 6 );
33
+ private Gtk . Box translators_box = new Gtk .Box (Gtk . Orientation . VERTICAL , 6 );
32
34
33
35
private Gtk . Label title_label = new Gtk .Label (null );
34
- private Gtk . Label copyright_label = new Gtk .Label (null );
35
- private Gtk . Label translators_label = new Gtk .Label (null );
36
36
private Gtk . Label license_label = new Gtk .Label (null );
37
37
38
38
private Gtk . Image icon_image = new Gtk .Image ();
39
39
40
+ private Gtk . ScrolledWindow developers_box_scroller = new Gtk .ScrolledWindow ();
41
+ private Gtk . ScrolledWindow translators_box_scroller = new Gtk .ScrolledWindow ();
42
+
40
43
private He . Button translate_app_button = new He .Button (null , _(" Translate App" ));
41
44
private He . Button report_button = new He .Button (null , _(" Report a Problem" ));
42
45
private He . Button more_info_button = new He .Button (null , _(" More Info…" ));
@@ -167,28 +170,58 @@ public class He.AboutWindow : He.Window {
167
170
get { return translators; }
168
171
set {
169
172
translators = value ;
170
- if (translators. length > 0 ) {
171
- translators_label. set_text (_(" Translated By: %s " ). printf (string . joinv (" , " , translators)));
172
- translators_label. visible = true ;
173
+
174
+ var first_child = translators_box. get_first_child ();
175
+ while (first_child != null ) {
176
+ translators_box. remove (first_child);
177
+ first_child = translators_box. get_first_child ();
178
+ }
179
+
180
+ for (int i = 0 ; i < translators. length; i++ ) {
181
+ var translator_label = new Gtk .Label (" " );
182
+ translator_label. xalign = 0 ;
183
+ translator_label. set_text (i < translators. length - 1 ? " %s " . printf (translators[i]) : translators[i]);
184
+ translator_label. visible = true ;
185
+ translators_box. append (translator_label);
186
+ translators_box. visible = true ;
187
+ }
188
+
189
+ if (translators_box. visible == false ) {
190
+ translators_box_scroller. visible = false ;
173
191
} else {
174
- translators_label. set_text (" " );
175
- translators_label. visible = false ;
192
+ translators_box_scroller. visible = true ;
176
193
}
177
194
}
178
195
}
179
196
180
197
private void update_copyright (int year , string [] developers ) {
181
- var developers_text = developers. length > 0 ? string . joinv (" , " , developers) : " " ;
182
-
183
- if (year > 0 ) {
184
- copyright_label. set_text (_(" Copyright © %i %s " ). printf (year, developers_text));
185
- copyright_label. visible = true ;
186
- } else if (developers_text != " " ) {
187
- copyright_label. set_text (_(" Copyright © %s " ). printf (developers_text));
188
- copyright_label. visible = true ;
198
+ // Clear existing children in developers_box
199
+ var first_child = developers_box. get_first_child ();
200
+ while (first_child != null ) {
201
+ developers_box. remove (first_child);
202
+ first_child = developers_box. get_first_child ();
203
+ }
204
+
205
+ // Add labels for each developer
206
+ for (int i = 0 ; i < developers. length; i++ ) {
207
+ var developer_label = new Gtk .Label (" " );
208
+ developer_label. xalign = 0 ;
209
+ if (i == 0 ) {
210
+ developer_label. set_text (year > 0
211
+ ? _(" Copyright © %i %s " ). printf (year, developers[i])
212
+ : _(" Copyright © %s " ). printf (developers[i]));
213
+ } else {
214
+ developer_label. set_text (developers[i]);
215
+ }
216
+ developer_label. visible = true ;
217
+ developers_box. append (developer_label);
218
+ developers_box. visible = true ;
219
+ }
220
+
221
+ if (developers_box. visible == false ) {
222
+ developers_box_scroller. visible = false ;
189
223
} else {
190
- copyright_label. set_text (" " );
191
- copyright_label. visible = false ;
224
+ developers_box_scroller. visible = true ;
192
225
}
193
226
}
194
227
@@ -303,13 +336,19 @@ public class He.AboutWindow : He.Window {
303
336
title_box. append (title_label);
304
337
title_box. append (version_badge);
305
338
306
- copyright_label. xalign = 0 ;
307
- copyright_label. visible = false ;
308
- text_box. append (copyright_label);
309
-
310
- translators_label. xalign = 0 ;
311
- translators_label. visible = false ;
312
- text_box. append (translators_label);
339
+ developers_box. visible = false ;
340
+ developers_box. valign = Gtk . Align . START ;
341
+ developers_box. vexpand_set = true ;
342
+ developers_box_scroller. set_child (developers_box);
343
+ developers_box_scroller. hscrollbar_policy = Gtk . PolicyType . NEVER ;
344
+ text_box. append (developers_box_scroller);
345
+
346
+ translators_box. visible = false ;
347
+ translators_box. valign = Gtk . Align . START ;
348
+ translators_box. vexpand_set = true ;
349
+ translators_box_scroller. set_child (translators_box);
350
+ translators_box_scroller. hscrollbar_policy = Gtk . PolicyType . NEVER ;
351
+ text_box. append (translators_box_scroller);
313
352
314
353
license_label. xalign = 0 ;
315
354
license_label. visible = true ;
0 commit comments