def __init__(self, default_profile):
Gtk.Dialog.__init__(self, _("GNU Solfege - Choose User Profile"))
# We save the initially selected profile, because we need to keep
# track of it if the user renames it and then presses cancel.
self.m_default_profile = default_profile
vbox = gu.hig_dlg_vbox()
self.vbox.pack_start(vbox, False, False, 0)
l = Gtk.Label(_("Solfege will save your statistics and test results in the user profile. By adding additional user profiles to Solfege, multiple users can share a user account on the operating system."))
l.set_alignment(0.0, 0.5)
l.set_line_wrap(True)
vbox.pack_start(l, True, True, 0)
hbox = Gtk.HBox()
hbox.set_spacing(gu.hig.SPACE_MEDIUM)
vbox.pack_start(hbox, True, True, 0)
button_box = Gtk.VBox()
self.g_create_profile = Gtk.Button.new_with_mnemonic(_(u"_Create profile\u2026"))
self.g_create_profile.connect('clicked', self.on_create_profile)
button_box.pack_start(self.g_create_profile, False, False, 0)
self.g_rename_profile = Gtk.Button.new_with_mnemonic(_(u"_Rename profile\u2026"))
self.g_rename_profile.connect('clicked', self.on_rename_profile)
button_box.pack_start(self.g_rename_profile, False, False, 0)
self.g_delete_profile = Gtk.Button.new_with_mnemonic(_(u"_Delete profile\u2026"))
self.g_delete_profile.connect('clicked', self.on_delete_profile)
button_box.pack_start(self.g_delete_profile, False, False, 0)
hbox.pack_start(button_box, False, False, 0)
self.g_liststore = liststore = Gtk.ListStore(GObject.TYPE_STRING)
liststore.append((_("Standard profile"),))
if os.path.exists(os.path.join(filesystem.app_data(), 'profiles')):
for subdir in os.listdir(os.path.join(filesystem.app_data(),
'profiles')):
liststore.append((subdir,))
#
self.g_tw = tw = Gtk.TreeView(liststore)
tw.connect('row-activated', lambda a, b, c: self.response(Gtk.ResponseType.ACCEPT))
tw.set_headers_visible(False)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(None, renderer, text=0)
tw.append_column(column)
hbox.pack_start(tw, False, False, 0)
tw.show()
tw.connect('cursor-changed', self.on_cursor_changed)
tw.set_cursor((0,))
for idx, s in enumerate(self.g_liststore):
if s[0].decode("utf-8") == default_profile:
tw.set_cursor((idx, ))
#
chk = gu.nCheckButton("app", "noprofilemanager", _("D_on't ask at startup"))
vbox.pack_start(chk, False, False, 0)
self.show_all()
评论列表
文章目录