def install_keyboards_to_gnome(keyboards, packageDir, language=None): gnomeKeyboardsUtil = GnomeKeyboardsUtil() sources = gnomeKeyboardsUtil.read_input_sources() # install all kmx for first lang not just packageID for kb in keyboards: ibus_keyboard_id = get_ibus_keyboard_id(kb, packageDir, language) sources.append(('ibus', ibus_keyboard_id)) gnomeKeyboardsUtil.write_input_sources(sources)
def test_WriteInputSources(self, convertArrayToVariantMethod): # Setup convertArrayToVariantMethod.side_effect = lambda value: value sut = GnomeKeyboardsUtil() keyboards = [('xkb', 'en'), ('ibus', 'fooDir/foo1.kmx'), ('ibus', 'fooDir/foo2.kmx')] # Execute sut.write_input_sources(keyboards) # Verify self.MockSettingsClass.return_value.set_value.assert_called_once_with( "sources", keyboards)
def uninstall_keyboards_from_gnome(keyboards, packageDir): gnomeKeyboardsUtil = GnomeKeyboardsUtil() sources = gnomeKeyboardsUtil.read_input_sources() # uninstall all kmx for all languages for kb in keyboards: ibus_keyboard_id = get_ibus_keyboard_id(kb, packageDir) tuple = ('ibus', ibus_keyboard_id) if tuple in sources: sources.remove(tuple) toRemove = [] match_id = ":%s" % get_ibus_keyboard_id( kb, packageDir, ignore_language=True) for (type, id) in sources: if type == 'ibus' and id.endswith(match_id): toRemove.append((type, id)) for val in toRemove: sources.remove(val) gnomeKeyboardsUtil.write_input_sources(sources)