Added dictionary selection to mirror dialog
[jben2_gui.git] / jben / jben / interface / gtk / dialog / dict_mirror_select.py
blob3acae0d09a6c8a1e7b9a092de8c5a275c3692823
1 # -*- coding: utf-8 -*-
3 from __future__ import absolute_import
5 import gtk, gobject
6 from ..widget.storedsize import StoredSizeDialog
7 from jben.dict_downloader import static_mirror_list
10 class MirrorSelect(StoredSizeDialog):
12 def __init__(self, parent):
13 StoredSizeDialog.__init__(
14 self, "gui.dialog.dict_mirror_select.size", -1, -1,
15 title=_("Select download site"),
16 parent=parent,
17 buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
18 gtk.STOCK_OK, gtk.RESPONSE_OK)
20 self._layout()
22 def _layout(self):
23 self.server_list = gtk.combo_box_new_text()
24 for row in static_mirror_list:
25 self.server_list.append_text(row)
26 self.server_list.set_active(0)
27 self.server_list.show()
28 wframe = gtk.Frame(_("Word dictionaries"))
29 cframe = gtk.Frame(_("Character dictionaries"))
30 edict_btn = gtk.RadioButton(group=None,
31 label=_("EDICT (Recommended)"))
32 kanjidic_btn = gtk.RadioButton(group=None,
33 label=_("KANJIDIC (Recommended)"))
34 kanjidic2_btn = gtk.RadioButton(group=kanjidic_btn,
35 label=_("KANJIDIC 2"))
36 edict_btn.set_active(True)
37 kanjidic_btn.set_active(True)
38 d = {wframe: [edict_btn],
39 cframe: [kanjidic_btn, kanjidic2_btn]}
40 for frame in d:
41 box = gtk.VBox(spacing=5)
42 for obj in d[frame]:
43 box.pack_start(obj, expand=False)
44 frame.add(box)
45 hbox = gtk.HBox(spacing=5)
46 for obj in (wframe, cframe):
47 hbox.pack_start(obj)
48 hbox.show_all()
49 layout = self.get_content_area()
50 for obj in (self.server_list, hbox):
51 layout.pack_start(obj, expand=False)
53 def get_mirror(self):
54 return self.server_list.get_active_text()
56 def run(self):
57 """Single-time run command; hides GTK boilerplate and gets result."""
58 result = None
59 resp = gtk.Dialog.run(self)
60 if resp == gtk.RESPONSE_OK:
61 result = self.get_mirror()
62 self.destroy()
63 return result