def __init__(self, datadir, component_data=None, parent=None): LanguageSelectorBase.__init__(self, datadir) KCModule.__init__(self, component_data, parent) self.parentApp = KApplication.kApplication() self.ui = Ui_QtLanguageSelectorGUI() self.ui.setupUi(self) self.about = MakeAboutData() self.setAboutData(self.about) self.setWindowIcon(KIcon("preferences-desktop-locale")) self.imSwitch = ImSwitch() # remove dangling ImSwitch symlinks if present self.imSwitch.removeDanglingSymlinks() self.init() # connect the signals self.connect(self.ui.listViewLanguagesInst, SIGNAL("itemSelectionChanged()"), self.checkInstallableComponents) self.connect(self.ui.listViewLanguagesUninst, SIGNAL("itemSelectionChanged()"), self.onChanged) self.connect(self.ui.ktabwidget, SIGNAL("currentChanged(int)"), self.onTabChangeRevertApply) self.connect(self.ui.listBoxDefaultLanguage, SIGNAL("itemSelectionChanged()"), self.checkInputMethods) self.connect(self.ui.checkBoxTr, SIGNAL("stateChanged(int)"), self.onChanged) self.connect(self.ui.checkBoxIm, SIGNAL("stateChanged(int)"), self.onChanged) self.connect(self.ui.checkBoxSpell, SIGNAL("stateChanged(int)"), self.onChanged) self.connect(self.ui.checkBoxFonts, SIGNAL("stateChanged(int)"), self.onChanged)
def __init__(self, datadir, options): LanguageSelectorBase.__init__(self, datadir) self._datadir = datadir self.widgets = Gtk.Builder() self.widgets.set_translation_domain('language-selector') self.widgets.add_from_file(datadir + "/data/LanguageSelector.ui") self.widgets.connect_signals(self) try: in_grp_admin = grp.getgrnam("admin")[2] in os.getgroups() except KeyError: in_grp_admin = False try: in_grp_sudo = grp.getgrnam("sudo")[2] in os.getgroups() except KeyError: in_grp_sudo = False self.is_admin = (os.getuid() == 0 or in_grp_sudo or in_grp_admin) # see if we have any other human users on this system self.has_other_users = False num = 0 for l in pwd.getpwall(): if l.pw_uid >= 500 and l.pw_uid < 65534: num += 1 if num >= 2: self.has_other_users = True break #build the comboboxes (with model) combo = self.combobox_locale_chooser model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) cell = Gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', LANGTREEVIEW_LANGUAGE) combo.set_model(model) # self.combo_syslang_dirty = False # combo = self.combobox_user_language # model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) # cell = Gtk.CellRendererText() # combo.pack_start(cell, True) # combo.add_attribute(cell, 'text', COMBO_LANGUAGE) # combo.set_model(model) # self.combo_userlang_dirty = False self.options = options # get aptdaemon client self.ac = aptdaemon.client.AptClient() combo = self.combobox_input_method model = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) cell = Gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', IM_NAME) combo.set_model(model) self.imSwitch = ImSwitch() self._blockSignals = False # remove dangling ImSwitch symlinks if present self.imSwitch.removeDanglingSymlinks() # build the treeview self.setupLanguageTreeView() if self.is_admin: self.setupInstallerTreeView() self.updateLanguageView() # self.updateUserDefaultCombo() self.updateLocaleChooserCombo() self.check_input_methods() # self.updateSyncButton() # apply button self.button_apply.set_sensitive(False) # 'Apply System-Wide...' and 'Install/Remove Languages...' buttons if self.is_admin: self.button_apply_system_wide_languages.set_sensitive(True) self.button_install_remove_languages.set_sensitive(True) self.button_apply_system_wide_locale.set_sensitive(True) else: self.button_apply_system_wide_languages.set_sensitive(False) self.button_install_remove_languages.set_sensitive(False) self.button_apply_system_wide_locale.set_sensitive(False) # show it self.window_main.show() self.setSensitive(False) if self.is_admin: # check if the package list is up-to-date if not self._cache.havePackageLists: d = Gtk.MessageDialog(parent=self.window_main, flags=Gtk.DialogFlags.MODAL, type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.CANCEL) d.set_markup( "<big><b>%s</b></big>\n\n%s" % (_("No language information available"), _("The system does not have information about the " "available languages yet. Do you want to perform " "a network update to get them now? "))) d.set_title = ("") d.add_button(_("_Update"), Gtk.ResponseType.YES) res = d.run() d.destroy() if res == Gtk.ResponseType.YES: self.setSensitive(False) self.update() self.updateLanguageView() self.setSensitive(True) # see if something is missing if self.options.verify_installed: self.verifyInstalledLangPacks() if not self.imSwitch.available(): self.combobox_input_method.set_sensitive(False) self.setSensitive(True)