Merge lp:~rperier/language-selector/kcm into lp:language-selector

Proposed by Jonathan Riddell
Status: Merged
Merged at revision: 417
Proposed branch: lp:~rperier/language-selector/kcm
Merge into: lp:language-selector
Diff against target: 1280 lines (+440/-514)
14 files modified
LanguageSelector/qt/QtLanguageSelector.py (+133/-116)
LanguageSelector/qt/QtLanguageSelectorGUI.py (+92/-66)
LanguageSelector/qt/QtLanguageSelectorGUI.ui (+154/-148)
data/kde-language-selector.desktop.in (+12/-8)
data/qt-language-selector.1 (+0/-160)
dbus_backend/com.ubuntu.languageselector.policy.in (+1/-1)
debian/changelog (+19/-0)
debian/control (+2/-2)
debian/language-selector-kde.install (+3/-3)
debian/language-selector-qt.manpages (+0/-1)
kde-language-selector (+5/-0)
po/Makefile (+1/-1)
po/POTFILES.in (+2/-2)
setup.py (+16/-6)
To merge this branch: bzr merge lp:~rperier/language-selector/kcm
Reviewer Review Type Date Requested Status
Jonathan Riddell (community) Needs Fixing
Review via email: mp+49869@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jonathan Riddell (jr) wrote :

Awesomeness

After install the dialogue says "Translations and support have now been installed for Gaelic; Scottish Gaelic. Select them from the Add Language button." "Translations and support" should be changed depending on what has been installed. "Add Language button" should be changed to "Region & Language" (also add a comment to this translation that it refers to the name of the kcontrol module).

How about making the naming of the package consistent? language-selector-kde and language-selector-gnome

I think the "Select" tab should be "System Default"

I think qapt-batch is not called with --attach <winid>

There shouldn't be tickboxes in the uninstall tab, they're just confusing, clicking "Uninstall" should just uninstall everything.

When I set system language I get an error on the command line "ERROR:dbus.proxies:Introspect error on :1.1052:/: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules; type="method_call", sender=":1.1051" (uid=1000 pid=22332 comm="systemsettings) interface="org.freedesktop.DBus.Introspectable" member="Introspect" error name="(unset)" requested_reply=0 destination=":1.1052" (uid=0 pid=23133 comm="/usr/bin/python))"
I also get the polkit dialogue twice, which is strange.

I'm not sure "Language Support" is the best name for this kcontrol module, maybe "System Languages" would be better.

The patch in kdebase-workspace for launching qt-language-selector needs to go (or be changed to a pointer to the new kcm).

review: Needs Fixing
Revision history for this message
Jonathan Riddell (jr) wrote :

Oh and best to replace the debugging output with kdebug()

Revision history for this message
Romain Perier (rperier) wrote :

All changes have been applied, except:
- I've seriously no ideas for dbus error (it's apparently caused by "ls-dbus-backend")
- I did not found any informations about kdebug in PyKDE4 (nor Kwarning), does it exist in python ? (I'm wrong probably...)

In my humble opinion, we should bump language-selector to 0.14 since packages have been renamed and a lot of changes will be merge in LanguageSelector.qt .
And by the way, a new name for this kcmodule is open to suggestions, "language-selector" sounds good, but Harald disagrees.

Revision history for this message
Jonathan Riddell (jr) wrote :

Looking good

If I have a language half installed (e.g. have language-pack-en-kde installed but not -gnome) it pops up a dialogue on startup asking if I want to install the rest, if I click yes then it crashes. Maybe this dialogue should become a warning button on the install tab.

This isn't using the main kcontrol buttons. For the install/uninstall that probably isn't appropriate with further changes to the UI but for the select I think Apply can be used instead of a button within the tab?

A changelog can be added, use dch -i to do so

in debian/control language-selector-kde should replace/conflict language-selector-qt

lp:~rperier/language-selector/kcm updated
417. By Jonathan Riddell

* LanguageSelector/qt/QtLanguageSelector.py:
  - KCModule and kcontrol migration
  - Add same features than gtk frontend
  - New GUI
  - Migrate to polkit (no longer runs as root)
* dbus_backend/com.ubuntu.languageselector.policy.in:
  - Change policy to auth_admin_keep (avoids multiple polkit authentifications)
* debian:
  - Rename language-selector => language-selector-gnome
  - Rename language-selector-qt => language-selector-kde
  - Drop language-selector-qt.1 (not required anymore)
* data/qt-language-selector.desktop.in:
  - Rename to kde-language-selector
  - Make changes to be a kcmodule

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'LanguageSelector/qt/QtLanguageSelector.py'
2--- LanguageSelector/qt/QtLanguageSelector.py 2010-08-07 02:56:46 +0000
3+++ LanguageSelector/qt/QtLanguageSelector.py 2011-02-22 18:57:39 +0000
4@@ -13,7 +13,7 @@
5 from PyQt4.QtGui import *
6 from PyQt4.QtCore import *
7 from PyKDE4.kdecore import ki18n, KAboutData, KCmdLineArgs, KCmdLineOptions
8-from PyKDE4.kdeui import KApplication, KIcon, KMessageBox, KGuiItem
9+from PyKDE4.kdeui import KApplication, KIcon, KMessageBox, KGuiItem, KCModule, KWindowSystem
10
11 from LanguageSelector.LanguageSelector import *
12 from LanguageSelector.ImSwitch import ImSwitch
13@@ -28,51 +28,30 @@
14 def _(string):
15 return utf8(i18n(string))
16
17-class QtLanguageSelector(QWidget,LanguageSelectorBase):
18+class QtLanguageSelector(KCModule, LanguageSelectorBase):
19 """ actual implementation of the qt GUI """
20
21- def __init__(self, app, datadir, mode):
22+ def __init__(self, datadir, component_data=None, parent=None):
23 LanguageSelectorBase.__init__(self, datadir)
24- QWidget.__init__(self)
25- Ui_QtLanguageSelectorGUI.__init__(self)
26+ KCModule.__init__(self, component_data, parent)
27+
28+ self.parentApp = KApplication.kApplication()
29 self.ui = Ui_QtLanguageSelectorGUI()
30 self.ui.setupUi(self)
31-
32- self.parentApp = app
33-
34+ self.about = MakeAboutData()
35+ self.setAboutData(self.about)
36+
37 self.setWindowIcon(KIcon("preferences-desktop-locale"))
38- self.ui.pushButtonSetSystemLanguage.setIcon(KIcon("dialog-ok"))
39- self.ui.pushButtonOk.setIcon(KIcon("dialog-ok"))
40- self.ui.pushButtonCancel.setIcon(KIcon("dialog-cancel"))
41- self.ui.pushButtonCancel_2.setIcon(KIcon("dialog-cancel"))
42-
43+
44 self.imSwitch = ImSwitch()
45-
46 # remove dangling ImSwitch symlinks if present
47 self.imSwitch.removeDanglingSymlinks()
48-
49- self.mode = mode
50 self.init()
51- if mode == "uninstall":
52- self.ui.pushButtonOk.setText(_("Uninstall"))
53- self.ui.selectLanguageLabel.setText(_("Select language to uninstall:"))
54- self.ui.systemLanguageFrame.hide()
55- elif mode == "install":
56- self.ui.systemLanguageFrame.hide()
57- elif mode == "select":
58- self.ui.installLanguageFrame.hide()
59- self.resize(self.sizeHint())
60- self.setWindowTitle(_("Language Selector"))
61- self.checkInputMethods()
62- else:
63- print "ERROR: unknown mode"
64
65 # connect the signals
66- app.connect(self.ui.listBoxDefaultLanguage, SIGNAL("itemSelectionChanged()"), self.checkInputMethods)
67- app.connect(self.ui.pushButtonOk, SIGNAL("clicked()"), self.onPushButtonOk)
68- app.connect(self.ui.pushButtonSetSystemLanguage, SIGNAL("clicked()"), self.onSystemPushButtonOk)
69- app.connect(self.ui.pushButtonCancel, SIGNAL("clicked()"), self.close)
70- app.connect(self.ui.pushButtonCancel_2, SIGNAL("clicked()"), self.close)
71+ self.connect(self.ui.listViewLanguagesInst, SIGNAL("itemSelectionChanged()"), self.checkInstallableComponents)
72+ self.connect(self.ui.listViewLanguagesUninst, SIGNAL("itemSelectionChanged()"), self.onChanged)
73+ self.connect(self.ui.listBoxDefaultLanguage, SIGNAL("itemSelectionChanged()"), self.checkInputMethods)
74
75 def init(self):
76 self.translateUI()
77@@ -113,17 +92,28 @@
78 if True: #options.verify_installed:
79 self.verifyInstalledLangPacks()
80
81+ def save(self):
82+ idx = self.ui.ktabwidget.currentIndex()
83+
84+ if idx == 0:
85+ self.pkgChanges("install")
86+ elif idx == 1:
87+ self.pkgChanges("uninstall")
88+ else:
89+ self.onSystemLanguageApply()
90
91 def translateUI(self):
92 """ translate the strings in the UI, needed because Qt designer doesn't use gettext """
93 self.ui.defaultSystemLabel.setText(_("Default system language:"))
94- self.ui.pushButtonSetSystemLanguage.setText(_("Set System Language"))
95 self.ui.labelInputMethod.setText(_("Keyboard input method:"))
96- self.ui.pushButtonCancel_2.setText(_("Cancel"))
97 self.ui.selectLanguageLabel.setText(_("Select language to install:"))
98- self.ui.pushButtonOk.setText(_("Install"))
99- self.ui.pushButtonCancel.setText(_("Cancel"))
100-
101+ self.ui.selectLanguageLabel_2.setText(_("Select language to uninstall:"))
102+ self.ui.checkBoxTr.setText(_("Translations"))
103+ self.ui.checkBoxIm.setText(_("Input methods"))
104+ self.ui.checkBoxSpell.setText(_("Spellchecking and writing aids"))
105+ self.ui.checkBoxFonts.setText(_("Extra fonts"))
106+ self.ui.ComponentsLabel.setText(_("Components:"))
107+
108 def updateSystemDefaultListbox(self):
109 self.ui.listBoxDefaultLanguage.clear()
110 self._localeinfo.localeToCodeMap = {}
111@@ -139,7 +129,7 @@
112 self._localeinfo.localeToCodeMap[name] = locale
113 locales.sort()
114 for localeName in locales:
115- item = QListWidgetItem(localeName, self.ui.listBoxDefaultLanguage)
116+ item = QListWidgetItem(utf8(localeName), self.ui.listBoxDefaultLanguage)
117 if defaultLangName == localeName:
118 item.setSelected(True)
119 if (not os.path.exists("/etc/alternatives/xinput-all_ALL") or
120@@ -174,61 +164,70 @@
121 self.setEnabled(True)
122
123 def update(self):
124- lock = thread.allocate_lock()
125- lock.acquire()
126- t = thread.start_new_thread(self.run_pkg_manager_update,(lock,))
127- while lock.locked():
128- self.parentApp.processEvents()
129- time.sleep(0.05)
130+ self.run_pkg_manager_update()
131
132 def commit(self, inst, rm):
133 # unlock here to make sure that lock/unlock are always run
134 # pair-wise (and don't explode on errors)
135 if len(inst) == 0 and len(rm) == 0:
136 return
137- lock = thread.allocate_lock()
138- lock.acquire()
139- t = thread.start_new_thread(self.run_pkg_manager,(lock,inst,rm))
140- while lock.locked():
141- self.parentApp.processEvents()
142- time.sleep(0.05)
143+ self.run_pkg_manager(inst,rm)
144
145 def updateLanguagesList(self):
146- self.ui.listViewLanguages.clear()
147+ self.ui.listViewLanguagesInst.clear()
148+ self.ui.listViewLanguagesUninst.clear()
149 # get the language names and sort them alphabetically
150 languageList = self._cache.getLanguageInformation()
151 self._localeinfo.listviewStrToLangInfoMap = {}
152 for lang in languageList:
153- self._localeinfo.listviewStrToLangInfoMap[utf8(lang.language)] = lang
154+ self._localeinfo.listviewStrToLangInfoMap[utf8(self._localeinfo.translate(lang.languageCode))] = lang
155 languages = self._localeinfo.listviewStrToLangInfoMap.keys()
156 languages.sort()
157
158 for langName in languages:
159 lang = self._localeinfo.listviewStrToLangInfoMap[langName]
160- elm = QListWidgetItem(utf8(lang.language), self.ui.listViewLanguages)
161-
162+ elmIn = QListWidgetItem(utf8(self._localeinfo.translate(lang.languageCode)), self.ui.listViewLanguagesInst)
163+ elmUn = QListWidgetItem(utf8(self._localeinfo.translate(lang.languageCode)), self.ui.listViewLanguagesUninst)
164+
165 if lang.fullInstalled:
166- if self.mode == "install":
167- elm.setFlags(Qt.ItemIsDropEnabled) #not sure how to unset all flags, but this disables the item
168- elm.setToolTip(_("Already installed"))
169- else:
170- elm.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
171+ elmIn.setFlags(Qt.ItemIsDropEnabled) #not sure how to unset all flags, but this disables the item
172+ elmIn.setToolTip(_("Already installed"))
173+ elmUn.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
174 elif lang.inconsistent:
175- elm.setToolTip(_("Partially Installed"))
176+ elmIn.setToolTip(_("Partially Installed"))
177 else:
178- if self.mode == "uninstall":
179- elm.setFlags(Qt.ItemIsDropEnabled) #not sure how to unset all flags, but this disables the item
180- elm.setToolTip(_("Not installed"))
181- elm.setHidden(True)
182- else:
183- elm.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
184-
185+ elmUn.setFlags(Qt.ItemIsDropEnabled) #not sure how to unset all flags, but this disables the item
186+ elmUn.setToolTip(_("Not installed"))
187+ elmUn.setHidden(True)
188+ elmIn.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
189+
190+ def onChanged(self):
191+ self.changed()
192+
193+ def checkInstallableComponents(self):
194+ """ check available components for the selected language
195+ and set/unset the corresponding checkbutton accordingly
196+ """
197+ items = self.ui.listViewLanguagesInst.selectedItems()
198+
199+ if len(items) == 1:
200+ self.changed()
201+ li = self._localeinfo.listviewStrToLangInfoMap[unicode(items[0].text())]
202+ for (button, langPkg) in (
203+ ("checkBoxTr", li.languagePkgList["languagePack"]),
204+ ("checkBoxIm", li.languagePkgList["languageSupportInputMethods"]),
205+ ("checkBoxSpell", li.languagePkgList["languageSupportWritingAids"]),
206+ ("checkBoxFonts", li.languagePkgList["languageSupportFonts"]) ):
207+ getattr(self.ui, button).setChecked(langPkg.installed)
208+ getattr(self.ui, button).setEnabled(langPkg.available)
209+
210 def checkInputMethods(self):
211- """ check if the selected langauge has input method support
212+ """ check if the selected language has input method support
213 and set checkbutton_enable_input_methods accordingly
214 """
215- if not self.imSwitch.available():
216+ if (not self.imSwitch.available()) or (not self.getSystemLanguage()):
217 return
218+ self.changed()
219 (lang, code) = self.getSystemLanguage()
220
221 combo = self.ui.comboBoxInputMethod
222@@ -243,28 +242,26 @@
223 if IM == currentIM:
224 combo.setCurrentIndex(i)
225
226- def run_pkg_manager_update(self, lock):
227+ def run_pkg_manager_update(self):
228 self.returncode = 0
229- self.returncode = subprocess.call(["qapt-batch","--update"])
230- lock.release()
231+ self.returncode = subprocess.call(["qapt-batch", "--attach", str(self.winId()), "--update"])
232
233- def run_pkg_manager(self, lock, to_inst, to_rm):
234+ def run_pkg_manager(self, to_inst, to_rm):
235 self.returncode = 0
236 if len(to_inst) > 0:
237 print str(["qapt-batch","--install"]+to_inst)
238- self.returncode = subprocess.call(["qapt-batch","--install"]+to_inst)
239+ self.returncode = subprocess.call(["qapt-batch", "--attach", str(self.winId()), "--install"]+to_inst)
240 # then remove
241 if len(to_rm) > 0:
242- self.returncode = subprocess.call(["qapt-batch","--uninstall"]+to_rm)
243- lock.release()
244+ print str(["qapt-batch","--uninstall"]+to_rm)
245+ self.returncode = subprocess.call(["qapt-batch", "--attach", str(self.winId()), "--uninstall"]+to_rm)
246
247- def onSystemPushButtonOk(self):
248+ def onSystemLanguageApply(self):
249 (lang, code) = self.getSystemLanguage()
250 self.writeSysLanguageSetting(code)
251 self.writeSysLangSetting(code)
252 self.updateInputMethods(code)
253 KMessageBox.information(self, _("Default system Language now set to %s.") % lang, _("Language Set"))
254- self.close()
255
256 def updateInputMethods(self,code):
257 IM_choice = self.ui.comboBoxInputMethod.currentText()
258@@ -273,7 +270,7 @@
259 def getSystemLanguage(self):
260 """ returns tuple of (lang, code) strings """
261 items = self.ui.listBoxDefaultLanguage.selectedItems()
262- if len(items) == 1 and self.mode == "select":
263+ if len(items) == 1:
264 item = items[0]
265 lang = item.text()
266 new_locale = ("%s"%lang)
267@@ -282,30 +279,32 @@
268 return (lang, code)
269 except KeyError:
270 print "ERROR: can not find new_locale: '%s'"%new_locale
271+
272+ def pkgChanges(self, mode):
273
274- def onPushButtonOk(self):
275- items = self.ui.listViewLanguages.selectedItems()
276+ if mode == "install":
277+ items = self.ui.listViewLanguagesInst.selectedItems()
278+ else:
279+ items = self.ui.listViewLanguagesUninst.selectedItems()
280+
281 if len(items) == 1:
282 elm = items[0]
283 li = self._localeinfo.listviewStrToLangInfoMap[unicode(elm.text())]
284- if self.mode == "uninstall":
285-# self._cache.tryRemoveLanguage(li.languageCode)
286- for pkg in li.languagePkgList.values():
287- if pkg.available:
288- if pkg.installed:
289- pkg.doChange = True
290- else:
291- pkg.doChange = False
292- else:
293 # self._cache.tryInstallLanguage(li.languageCode)
294- for pkg in li.languagePkgList.values():
295- if pkg.available:
296- if not pkg.installed:
297- pkg.doChange = True
298- else:
299- pkg.doChange = False
300+ for (button, langPkg) in (
301+ ("checkBoxTr", li.languagePkgList["languagePack"]),
302+ ("checkBoxIm", li.languagePkgList["languageSupportInputMethods"]),
303+ ("checkBoxSpell", li.languagePkgList["languageSupportWritingAids"]),
304+ ("checkBoxFonts", li.languagePkgList["languageSupportFonts"]) ):
305+ if langPkg.available:
306+ if (mode == "install") and (not langPkg.installed):
307+ langPkg.doChange = getattr(self.ui, button).isChecked()
308+ elif (mode == "uninstall") and langPkg.installed:
309+ langPkg.doChange = True
310 try:
311 self._cache.tryChangeDetails(li)
312+ for langPkg in li.languagePkgList.values():
313+ langPkg.doChange = False
314 except ExceptionPkgCacheBroken:
315 s = _("Software database is broken")
316 t = _("It is impossible to install or remove any software. "
317@@ -317,33 +316,51 @@
318
319 (to_inst, to_rm) = self._cache.getChangesList()
320 if len(to_inst) == len(to_rm) == 0:
321- self.close()
322 return
323-
324 # first install
325 self.setCursor(Qt.WaitCursor)
326 self.setEnabled(False)
327- lock = thread.allocate_lock()
328- lock.acquire()
329- t = thread.start_new_thread(self.run_pkg_manager,(lock,to_inst,to_rm))
330- while lock.locked():
331- self.parentApp.processEvents()
332- time.sleep(0.05)
333+ self.run_pkg_manager(to_inst,to_rm)
334 self.setCursor(Qt.ArrowCursor)
335 self.setEnabled(True)
336-
337- kdmscript = "/etc/init.d/kdm"
338- if os.path.exists("/var/run/kdm.pid") and os.path.exists(kdmscript):
339- subprocess.call(["invoke-rc.d","kdm","reload"])
340+
341+# kdmscript = "/etc/init.d/kdm"
342+# if os.path.exists("/var/run/kdm.pid") and os.path.exists(kdmscript):
343+# subprocess.call(["invoke-rc.d","kdm","reload"])
344
345 #self.run_pkg_manager(to_inst, to_rm)
346- if self.returncode == 0 and self.mode == "install":
347- KMessageBox.information( self, _("Translations and support have now been installed for %s. Select them from the Add Language button.") % unicode(items[0].text()), _("Language Installed") )
348- elif self.returncode == 0 and self.mode == "uninstall":
349- KMessageBox.information( self, _("Translations and support have now been uninstalled for %s.") % unicode(items[0].text()), _("Language Uninstalled") )
350+
351+ if self.returncode == 0:
352+ if (mode == "install"):
353+ KMessageBox.information( self, _("All selected components have now been installed for %s. Select them from Country/Region & Language.") % unicode(items[0].text()), _("Language Installed") )
354+ elif (mode == "uninstall"):
355+ KMessageBox.information( self, _("Translations and support have now been uninstalled for %s.") % unicode(items[0].text()), _("Language Uninstalled") )
356+ # Resync the cache to match packageManager changes, then update views
357+ self._cache.open(None)
358+ self.updateLanguagesList()
359+ self.updateSystemDefaultListbox()
360 else:
361 KMessageBox.sorry(self, _("Failed to set system language."), _("Language Not Set"))
362- self.close()
363+ self._cache.clear() # undo all selections
364+
365+def MakeAboutData():
366+ appName = "language-selector"
367+ catalog = ""
368+ programName = ki18n ("Language Selector")
369+ version = "0.3.4"
370+ description = ki18n ("Language Selector")
371+ license = KAboutData.License_GPL
372+ copyright = ki18n ("(c) 2008 Canonical Ltd")
373+ text = ki18n ("none")
374+ homePage = "https://launchpad.net/language-selector"
375+ bugEmail = ""
376+
377+ aboutData = KAboutData (appName, catalog, programName, version, description, license, copyright, text, homePage, bugEmail)
378+ aboutData.addAuthor(ki18n("Michael Vogt"), ki18n("Developer"))
379+ aboutData.addAuthor(ki18n("Jonathan Riddell"), ki18n("Developer"))
380+ aboutData.addAuthor(ki18n("Harald Sitter"), ki18n("Developer"))
381+
382+ return aboutData
383
384 if __name__ == "__main__":
385
386@@ -394,7 +411,7 @@
387 KMessageBox.sorry(None, _("Please run this software with administrative rights."), _("Not Root User"))
388 sys.exit(1)
389
390- lc = QtLanguageSelector(app, "/usr/share/language-selector/", whattodo)
391+ lc = QtLanguageSelector("/usr/share/language-selector/")
392
393 lc.show()
394
395
396=== modified file 'LanguageSelector/qt/QtLanguageSelectorGUI.py'
397--- LanguageSelector/qt/QtLanguageSelectorGUI.py 2009-09-10 09:31:29 +0000
398+++ LanguageSelector/qt/QtLanguageSelectorGUI.py 2011-02-22 18:57:39 +0000
399@@ -2,88 +2,114 @@
400
401 # Form implementation generated from reading ui file 'QtLanguageSelectorGUI.ui'
402 #
403-# Created: Thu Sep 10 11:27:14 2009
404-# by: PyQt4 UI code generator 4.5.2
405+# Created: Tue Feb 22 18:52:25 2011
406+# by: PyQt4 UI code generator 4.8.3
407 #
408 # WARNING! All changes made in this file will be lost!
409
410 from PyQt4 import QtCore, QtGui
411
412+try:
413+ _fromUtf8 = QtCore.QString.fromUtf8
414+except AttributeError:
415+ _fromUtf8 = lambda s: s
416+
417 class Ui_QtLanguageSelectorGUI(object):
418 def setupUi(self, QtLanguageSelectorGUI):
419- QtLanguageSelectorGUI.setObjectName("QtLanguageSelectorGUI")
420- QtLanguageSelectorGUI.resize(432, 468)
421- self.gridlayout = QtGui.QGridLayout(QtLanguageSelectorGUI)
422- self.gridlayout.setMargin(9)
423- self.gridlayout.setSpacing(6)
424- self.gridlayout.setObjectName("gridlayout")
425- self.installLanguageFrame = QtGui.QFrame(QtLanguageSelectorGUI)
426- self.installLanguageFrame.setFrameShape(QtGui.QFrame.NoFrame)
427- self.installLanguageFrame.setFrameShadow(QtGui.QFrame.Raised)
428- self.installLanguageFrame.setObjectName("installLanguageFrame")
429- self.gridlayout1 = QtGui.QGridLayout(self.installLanguageFrame)
430- self.gridlayout1.setMargin(9)
431- self.gridlayout1.setSpacing(6)
432- self.gridlayout1.setObjectName("gridlayout1")
433- self.listViewLanguages = QtGui.QListWidget(self.installLanguageFrame)
434- self.listViewLanguages.setObjectName("listViewLanguages")
435- self.gridlayout1.addWidget(self.listViewLanguages, 1, 0, 1, 3)
436- self.pushButtonOk = QtGui.QPushButton(self.installLanguageFrame)
437- self.pushButtonOk.setObjectName("pushButtonOk")
438- self.gridlayout1.addWidget(self.pushButtonOk, 2, 1, 1, 1)
439- self.pushButtonCancel = QtGui.QPushButton(self.installLanguageFrame)
440- self.pushButtonCancel.setObjectName("pushButtonCancel")
441- self.gridlayout1.addWidget(self.pushButtonCancel, 2, 2, 1, 1)
442- spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
443- self.gridlayout1.addItem(spacerItem, 2, 0, 1, 1)
444- self.selectLanguageLabel = QtGui.QLabel(self.installLanguageFrame)
445+ QtLanguageSelectorGUI.setObjectName(_fromUtf8("QtLanguageSelectorGUI"))
446+ QtLanguageSelectorGUI.resize(557, 407)
447+ self.verticalLayout = QtGui.QVBoxLayout(QtLanguageSelectorGUI)
448+ self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
449+ self.ktabwidget = KTabWidget(QtLanguageSelectorGUI)
450+ self.ktabwidget.setObjectName(_fromUtf8("ktabwidget"))
451+ self.InstallTab = QtGui.QWidget()
452+ self.InstallTab.setObjectName(_fromUtf8("InstallTab"))
453+ self.verticalLayout_2 = QtGui.QVBoxLayout(self.InstallTab)
454+ self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
455+ self.selectLanguageLabel = QtGui.QLabel(self.InstallTab)
456 self.selectLanguageLabel.setWordWrap(False)
457- self.selectLanguageLabel.setObjectName("selectLanguageLabel")
458- self.gridlayout1.addWidget(self.selectLanguageLabel, 0, 0, 1, 2)
459- self.gridlayout.addWidget(self.installLanguageFrame, 1, 0, 1, 1)
460- self.systemLanguageFrame = QtGui.QFrame(QtLanguageSelectorGUI)
461- self.systemLanguageFrame.setFrameShape(QtGui.QFrame.NoFrame)
462- self.systemLanguageFrame.setFrameShadow(QtGui.QFrame.Raised)
463- self.systemLanguageFrame.setObjectName("systemLanguageFrame")
464- self.gridlayout2 = QtGui.QGridLayout(self.systemLanguageFrame)
465- self.gridlayout2.setMargin(9)
466- self.gridlayout2.setSpacing(6)
467- self.gridlayout2.setObjectName("gridlayout2")
468- self.pushButtonCancel_2 = QtGui.QPushButton(self.systemLanguageFrame)
469- self.pushButtonCancel_2.setObjectName("pushButtonCancel_2")
470- self.gridlayout2.addWidget(self.pushButtonCancel_2, 3, 2, 1, 1)
471- self.listBoxDefaultLanguage = QtGui.QListWidget(self.systemLanguageFrame)
472- self.listBoxDefaultLanguage.setObjectName("listBoxDefaultLanguage")
473- self.gridlayout2.addWidget(self.listBoxDefaultLanguage, 1, 0, 1, 3)
474- self.pushButtonSetSystemLanguage = QtGui.QPushButton(self.systemLanguageFrame)
475- self.pushButtonSetSystemLanguage.setObjectName("pushButtonSetSystemLanguage")
476- self.gridlayout2.addWidget(self.pushButtonSetSystemLanguage, 3, 1, 1, 1)
477- self.defaultSystemLabel = QtGui.QLabel(self.systemLanguageFrame)
478+ self.selectLanguageLabel.setObjectName(_fromUtf8("selectLanguageLabel"))
479+ self.verticalLayout_2.addWidget(self.selectLanguageLabel)
480+ self.listViewLanguagesInst = QtGui.QListWidget(self.InstallTab)
481+ self.listViewLanguagesInst.setObjectName(_fromUtf8("listViewLanguagesInst"))
482+ self.verticalLayout_2.addWidget(self.listViewLanguagesInst)
483+ self.gridLayout = QtGui.QGridLayout()
484+ self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
485+ self.checkBoxTr = QtGui.QCheckBox(self.InstallTab)
486+ self.checkBoxTr.setEnabled(False)
487+ self.checkBoxTr.setObjectName(_fromUtf8("checkBoxTr"))
488+ self.gridLayout.addWidget(self.checkBoxTr, 1, 0, 1, 1)
489+ self.checkBoxIm = QtGui.QCheckBox(self.InstallTab)
490+ self.checkBoxIm.setEnabled(False)
491+ self.checkBoxIm.setObjectName(_fromUtf8("checkBoxIm"))
492+ self.gridLayout.addWidget(self.checkBoxIm, 2, 0, 1, 1)
493+ self.checkBoxSpell = QtGui.QCheckBox(self.InstallTab)
494+ self.checkBoxSpell.setEnabled(False)
495+ self.checkBoxSpell.setObjectName(_fromUtf8("checkBoxSpell"))
496+ self.gridLayout.addWidget(self.checkBoxSpell, 1, 1, 1, 1)
497+ self.checkBoxFonts = QtGui.QCheckBox(self.InstallTab)
498+ self.checkBoxFonts.setEnabled(False)
499+ self.checkBoxFonts.setObjectName(_fromUtf8("checkBoxFonts"))
500+ self.gridLayout.addWidget(self.checkBoxFonts, 2, 1, 1, 1)
501+ self.ComponentsLabel = QtGui.QLabel(self.InstallTab)
502+ self.ComponentsLabel.setObjectName(_fromUtf8("ComponentsLabel"))
503+ self.gridLayout.addWidget(self.ComponentsLabel, 0, 0, 1, 1)
504+ self.verticalLayout_2.addLayout(self.gridLayout)
505+ self.ktabwidget.addTab(self.InstallTab, _fromUtf8(""))
506+ self.UninstallTab = QtGui.QWidget()
507+ self.UninstallTab.setObjectName(_fromUtf8("UninstallTab"))
508+ self.verticalLayout_3 = QtGui.QVBoxLayout(self.UninstallTab)
509+ self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
510+ self.selectLanguageLabel_2 = QtGui.QLabel(self.UninstallTab)
511+ self.selectLanguageLabel_2.setWordWrap(False)
512+ self.selectLanguageLabel_2.setObjectName(_fromUtf8("selectLanguageLabel_2"))
513+ self.verticalLayout_3.addWidget(self.selectLanguageLabel_2)
514+ self.listViewLanguagesUninst = QtGui.QListWidget(self.UninstallTab)
515+ self.listViewLanguagesUninst.setObjectName(_fromUtf8("listViewLanguagesUninst"))
516+ self.verticalLayout_3.addWidget(self.listViewLanguagesUninst)
517+ self.ktabwidget.addTab(self.UninstallTab, _fromUtf8(""))
518+ self.SystemDefaultTab = QtGui.QWidget()
519+ self.SystemDefaultTab.setObjectName(_fromUtf8("SystemDefaultTab"))
520+ self.verticalLayout_4 = QtGui.QVBoxLayout(self.SystemDefaultTab)
521+ self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
522+ self.defaultSystemLabel = QtGui.QLabel(self.SystemDefaultTab)
523 self.defaultSystemLabel.setWordWrap(False)
524- self.defaultSystemLabel.setObjectName("defaultSystemLabel")
525- self.gridlayout2.addWidget(self.defaultSystemLabel, 0, 0, 1, 2)
526- spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
527- self.gridlayout2.addItem(spacerItem1, 3, 0, 1, 1)
528- spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
529- self.gridlayout2.addItem(spacerItem2, 2, 0, 1, 1)
530- self.comboBoxInputMethod = QtGui.QComboBox(self.systemLanguageFrame)
531- self.comboBoxInputMethod.setObjectName("comboBoxInputMethod")
532- self.gridlayout2.addWidget(self.comboBoxInputMethod, 2, 2, 1, 1)
533- self.labelInputMethod = QtGui.QLabel(self.systemLanguageFrame)
534- self.labelInputMethod.setObjectName("labelInputMethod")
535- self.gridlayout2.addWidget(self.labelInputMethod, 2, 1, 1, 1)
536- self.gridlayout.addWidget(self.systemLanguageFrame, 0, 0, 1, 1)
537+ self.defaultSystemLabel.setObjectName(_fromUtf8("defaultSystemLabel"))
538+ self.verticalLayout_4.addWidget(self.defaultSystemLabel)
539+ self.listBoxDefaultLanguage = QtGui.QListWidget(self.SystemDefaultTab)
540+ self.listBoxDefaultLanguage.setObjectName(_fromUtf8("listBoxDefaultLanguage"))
541+ self.verticalLayout_4.addWidget(self.listBoxDefaultLanguage)
542+ self.horizontalLayout_4 = QtGui.QHBoxLayout()
543+ self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
544+ spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
545+ self.horizontalLayout_4.addItem(spacerItem)
546+ self.labelInputMethod = QtGui.QLabel(self.SystemDefaultTab)
547+ self.labelInputMethod.setObjectName(_fromUtf8("labelInputMethod"))
548+ self.horizontalLayout_4.addWidget(self.labelInputMethod)
549+ self.comboBoxInputMethod = QtGui.QComboBox(self.SystemDefaultTab)
550+ self.comboBoxInputMethod.setObjectName(_fromUtf8("comboBoxInputMethod"))
551+ self.horizontalLayout_4.addWidget(self.comboBoxInputMethod)
552+ self.verticalLayout_4.addLayout(self.horizontalLayout_4)
553+ self.ktabwidget.addTab(self.SystemDefaultTab, _fromUtf8(""))
554+ self.verticalLayout.addWidget(self.ktabwidget)
555
556 self.retranslateUi(QtLanguageSelectorGUI)
557+ self.ktabwidget.setCurrentIndex(0)
558 QtCore.QMetaObject.connectSlotsByName(QtLanguageSelectorGUI)
559
560 def retranslateUi(self, QtLanguageSelectorGUI):
561 QtLanguageSelectorGUI.setWindowTitle(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Language Installer", None, QtGui.QApplication.UnicodeUTF8))
562- self.pushButtonOk.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Install", None, QtGui.QApplication.UnicodeUTF8))
563- self.pushButtonCancel.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Cancel", None, QtGui.QApplication.UnicodeUTF8))
564 self.selectLanguageLabel.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Select language to install:", None, QtGui.QApplication.UnicodeUTF8))
565- self.pushButtonCancel_2.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Cancel", None, QtGui.QApplication.UnicodeUTF8))
566- self.pushButtonSetSystemLanguage.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Set System Language", None, QtGui.QApplication.UnicodeUTF8))
567+ self.checkBoxTr.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Translations", None, QtGui.QApplication.UnicodeUTF8))
568+ self.checkBoxIm.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Input methods", None, QtGui.QApplication.UnicodeUTF8))
569+ self.checkBoxSpell.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Spellchecking and writing aids", None, QtGui.QApplication.UnicodeUTF8))
570+ self.checkBoxFonts.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Extra fonts", None, QtGui.QApplication.UnicodeUTF8))
571+ self.ComponentsLabel.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Components:", None, QtGui.QApplication.UnicodeUTF8))
572+ self.ktabwidget.setTabText(self.ktabwidget.indexOf(self.InstallTab), QtGui.QApplication.translate("QtLanguageSelectorGUI", "Install", None, QtGui.QApplication.UnicodeUTF8))
573+ self.selectLanguageLabel_2.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Select language to uninstall:", None, QtGui.QApplication.UnicodeUTF8))
574+ self.ktabwidget.setTabText(self.ktabwidget.indexOf(self.UninstallTab), QtGui.QApplication.translate("QtLanguageSelectorGUI", "Uninstall", None, QtGui.QApplication.UnicodeUTF8))
575 self.defaultSystemLabel.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Default system language:", None, QtGui.QApplication.UnicodeUTF8))
576 self.labelInputMethod.setText(QtGui.QApplication.translate("QtLanguageSelectorGUI", "Keyboard input method:", None, QtGui.QApplication.UnicodeUTF8))
577+ self.ktabwidget.setTabText(self.ktabwidget.indexOf(self.SystemDefaultTab), QtGui.QApplication.translate("QtLanguageSelectorGUI", "System Default", None, QtGui.QApplication.UnicodeUTF8))
578
579+from PyKDE4.kdeui import KTabWidget
580
581=== modified file 'LanguageSelector/qt/QtLanguageSelectorGUI.ui'
582--- LanguageSelector/qt/QtLanguageSelectorGUI.ui 2009-09-10 02:47:55 +0000
583+++ LanguageSelector/qt/QtLanguageSelectorGUI.ui 2011-02-22 18:57:39 +0000
584@@ -6,163 +6,169 @@
585 <rect>
586 <x>0</x>
587 <y>0</y>
588- <width>432</width>
589- <height>468</height>
590+ <width>557</width>
591+ <height>407</height>
592 </rect>
593 </property>
594 <property name="windowTitle">
595 <string>Language Installer</string>
596 </property>
597- <layout class="QGridLayout">
598- <property name="margin">
599- <number>9</number>
600- </property>
601- <property name="spacing">
602- <number>6</number>
603- </property>
604- <item row="1" column="0">
605- <widget class="QFrame" name="installLanguageFrame">
606- <property name="frameShape">
607- <enum>QFrame::NoFrame</enum>
608- </property>
609- <property name="frameShadow">
610- <enum>QFrame::Raised</enum>
611- </property>
612- <layout class="QGridLayout">
613- <property name="margin">
614- <number>9</number>
615- </property>
616- <property name="spacing">
617- <number>6</number>
618- </property>
619- <item row="1" column="0" colspan="3">
620- <widget class="QListWidget" name="listViewLanguages"/>
621- </item>
622- <item row="2" column="1">
623- <widget class="QPushButton" name="pushButtonOk">
624- <property name="text">
625- <string>Install</string>
626- </property>
627- </widget>
628- </item>
629- <item row="2" column="2">
630- <widget class="QPushButton" name="pushButtonCancel">
631- <property name="text">
632- <string>Cancel</string>
633- </property>
634- </widget>
635- </item>
636- <item row="2" column="0">
637- <spacer>
638- <property name="orientation">
639- <enum>Qt::Horizontal</enum>
640- </property>
641- <property name="sizeHint" stdset="0">
642- <size>
643- <width>40</width>
644- <height>20</height>
645- </size>
646- </property>
647- </spacer>
648- </item>
649- <item row="0" column="0" colspan="2">
650- <widget class="QLabel" name="selectLanguageLabel">
651- <property name="text">
652- <string>Select language to install:</string>
653- </property>
654- <property name="wordWrap">
655- <bool>false</bool>
656- </property>
657- </widget>
658- </item>
659- </layout>
660- </widget>
661- </item>
662- <item row="0" column="0">
663- <widget class="QFrame" name="systemLanguageFrame">
664- <property name="frameShape">
665- <enum>QFrame::NoFrame</enum>
666- </property>
667- <property name="frameShadow">
668- <enum>QFrame::Raised</enum>
669- </property>
670- <layout class="QGridLayout">
671- <property name="margin">
672- <number>9</number>
673- </property>
674- <property name="spacing">
675- <number>6</number>
676- </property>
677- <item row="3" column="2">
678- <widget class="QPushButton" name="pushButtonCancel_2">
679- <property name="text">
680- <string>Cancel</string>
681- </property>
682- </widget>
683- </item>
684- <item row="1" column="0" colspan="3">
685- <widget class="QListWidget" name="listBoxDefaultLanguage"/>
686- </item>
687- <item row="3" column="1">
688- <widget class="QPushButton" name="pushButtonSetSystemLanguage">
689- <property name="text">
690- <string>Set System Language</string>
691- </property>
692- </widget>
693- </item>
694- <item row="0" column="0" colspan="2">
695- <widget class="QLabel" name="defaultSystemLabel">
696- <property name="text">
697- <string>Default system language:</string>
698- </property>
699- <property name="wordWrap">
700- <bool>false</bool>
701- </property>
702- </widget>
703- </item>
704- <item row="3" column="0">
705- <spacer>
706- <property name="orientation">
707- <enum>Qt::Horizontal</enum>
708- </property>
709- <property name="sizeHint" stdset="0">
710- <size>
711- <width>40</width>
712- <height>20</height>
713- </size>
714- </property>
715- </spacer>
716- </item>
717- <item row="2" column="0">
718- <spacer name="horizontalSpacer">
719- <property name="orientation">
720- <enum>Qt::Horizontal</enum>
721- </property>
722- <property name="sizeHint" stdset="0">
723- <size>
724- <width>40</width>
725- <height>20</height>
726- </size>
727- </property>
728- </spacer>
729- </item>
730- <item row="2" column="2">
731- <widget class="QComboBox" name="comboBoxInputMethod"/>
732- </item>
733- <item row="2" column="1">
734- <widget class="QLabel" name="labelInputMethod">
735- <property name="text">
736- <string>Keyboard input method:</string>
737- </property>
738- </widget>
739- </item>
740- </layout>
741+ <layout class="QVBoxLayout" name="verticalLayout">
742+ <item>
743+ <widget class="KTabWidget" name="ktabwidget">
744+ <property name="currentIndex">
745+ <number>0</number>
746+ </property>
747+ <widget class="QWidget" name="InstallTab">
748+ <attribute name="title">
749+ <string>Install</string>
750+ </attribute>
751+ <layout class="QVBoxLayout" name="verticalLayout_2">
752+ <item>
753+ <widget class="QLabel" name="selectLanguageLabel">
754+ <property name="text">
755+ <string>Select language to install:</string>
756+ </property>
757+ <property name="wordWrap">
758+ <bool>false</bool>
759+ </property>
760+ </widget>
761+ </item>
762+ <item>
763+ <widget class="QListWidget" name="listViewLanguagesInst"/>
764+ </item>
765+ <item>
766+ <layout class="QGridLayout" name="gridLayout">
767+ <item row="1" column="0">
768+ <widget class="QCheckBox" name="checkBoxTr">
769+ <property name="enabled">
770+ <bool>false</bool>
771+ </property>
772+ <property name="text">
773+ <string>Translations</string>
774+ </property>
775+ </widget>
776+ </item>
777+ <item row="2" column="0">
778+ <widget class="QCheckBox" name="checkBoxIm">
779+ <property name="enabled">
780+ <bool>false</bool>
781+ </property>
782+ <property name="text">
783+ <string>Input methods</string>
784+ </property>
785+ </widget>
786+ </item>
787+ <item row="1" column="1">
788+ <widget class="QCheckBox" name="checkBoxSpell">
789+ <property name="enabled">
790+ <bool>false</bool>
791+ </property>
792+ <property name="text">
793+ <string>Spellchecking and writing aids</string>
794+ </property>
795+ </widget>
796+ </item>
797+ <item row="2" column="1">
798+ <widget class="QCheckBox" name="checkBoxFonts">
799+ <property name="enabled">
800+ <bool>false</bool>
801+ </property>
802+ <property name="text">
803+ <string>Extra fonts</string>
804+ </property>
805+ </widget>
806+ </item>
807+ <item row="0" column="0">
808+ <widget class="QLabel" name="ComponentsLabel">
809+ <property name="text">
810+ <string>Components:</string>
811+ </property>
812+ </widget>
813+ </item>
814+ </layout>
815+ </item>
816+ </layout>
817+ </widget>
818+ <widget class="QWidget" name="UninstallTab">
819+ <attribute name="title">
820+ <string>Uninstall</string>
821+ </attribute>
822+ <layout class="QVBoxLayout" name="verticalLayout_3">
823+ <item>
824+ <widget class="QLabel" name="selectLanguageLabel_2">
825+ <property name="text">
826+ <string>Select language to uninstall:</string>
827+ </property>
828+ <property name="wordWrap">
829+ <bool>false</bool>
830+ </property>
831+ </widget>
832+ </item>
833+ <item>
834+ <widget class="QListWidget" name="listViewLanguagesUninst"/>
835+ </item>
836+ </layout>
837+ </widget>
838+ <widget class="QWidget" name="SystemDefaultTab">
839+ <attribute name="title">
840+ <string>System Default</string>
841+ </attribute>
842+ <layout class="QVBoxLayout" name="verticalLayout_4">
843+ <item>
844+ <widget class="QLabel" name="defaultSystemLabel">
845+ <property name="text">
846+ <string>Default system language:</string>
847+ </property>
848+ <property name="wordWrap">
849+ <bool>false</bool>
850+ </property>
851+ </widget>
852+ </item>
853+ <item>
854+ <widget class="QListWidget" name="listBoxDefaultLanguage"/>
855+ </item>
856+ <item>
857+ <layout class="QHBoxLayout" name="horizontalLayout_4">
858+ <item>
859+ <spacer name="horizontalSpacer">
860+ <property name="orientation">
861+ <enum>Qt::Horizontal</enum>
862+ </property>
863+ <property name="sizeHint" stdset="0">
864+ <size>
865+ <width>40</width>
866+ <height>20</height>
867+ </size>
868+ </property>
869+ </spacer>
870+ </item>
871+ <item>
872+ <widget class="QLabel" name="labelInputMethod">
873+ <property name="text">
874+ <string>Keyboard input method:</string>
875+ </property>
876+ </widget>
877+ </item>
878+ <item>
879+ <widget class="QComboBox" name="comboBoxInputMethod"/>
880+ </item>
881+ </layout>
882+ </item>
883+ </layout>
884+ </widget>
885 </widget>
886 </item>
887 </layout>
888 </widget>
889- <layoutdefault spacing="6" margin="11"/>
890- <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
891+ <customwidgets>
892+ <customwidget>
893+ <class>KTabWidget</class>
894+ <extends>QTabWidget</extends>
895+ <header>ktabwidget.h</header>
896+ <container>1</container>
897+ </customwidget>
898+ </customwidgets>
899 <resources/>
900 <connections/>
901 </ui>
902
903=== renamed file 'data/incomplete-language-support-qt.note.in' => 'data/incomplete-language-support-kde.note.in'
904=== renamed file 'data/qt-language-selector.desktop.in' => 'data/kde-language-selector.desktop.in'
905--- data/qt-language-selector.desktop.in 2009-09-08 15:33:56 +0000
906+++ data/kde-language-selector.desktop.in 2011-02-22 18:57:39 +0000
907@@ -1,13 +1,17 @@
908 [Desktop Entry]
909-_Name=Language Support
910+_Name=System Languages
911 _Comment=Configure multiple and native language support on your system
912-Exec=/usr/bin/qt-language-selector
913+
914+Exec=kcmshell4 language-selector
915 Icon=preferences-desktop-locale
916-Terminal=false
917-Type=Application
918+Type=Service
919 Encoding=UTF-8
920-Categories=Application;System;
921-X-KDE-SubstituteUID=true
922+
923+X-KDE-ServiceTypes=KCModule
924+X-KDE-Library=kpythonpluginfactory
925+X-KDE-ParentApp=kcontrol
926+X-KDE-PluginKeyword=language-selector/language-selector.py
927+X-KDE-System-Settings-Parent-Category=locale
928+X-KDE-Weight=90
929+X-DocPath=kcontrol/language/index.html
930 X-Ubuntu-Gettext-Domain=language-selector
931-NoDisplay=true
932-OnlyShowIn=KDE
933
934=== removed file 'data/qt-language-selector.1'
935--- data/qt-language-selector.1 2009-09-10 21:21:13 +0000
936+++ data/qt-language-selector.1 1970-01-01 00:00:00 +0000
937@@ -1,160 +0,0 @@
938-.\" This file was generated by kdemangen.pl
939-.TH QT\-LANGUAGE\-SELECTOR 1 "Sep 2009" "K Desktop Environment" "Language Selector"
940-.SH NAME
941-qt\-language\-selector
942-\- Language Selector
943-.SH SYNOPSIS
944-qt\-language\-selector [Qt\-options] [KDE\-options] [options] [install] [uninstall] [select]
945-.SH DESCRIPTION
946-Language Selector
947-.SH OPTIONS
948-.SS
949-.SS Arguments:
950-.TP
951-.B install
952-install a language
953-.TP
954-.B uninstall
955-uninstall a language
956-.TP
957-.B select
958-select a language
959-.SS Options:
960-.TP
961-.B \-\-mode
962-REQUIRED: install, uninstall or select must follow [select]
963-.SS
964-.SS Generic options:
965-.TP
966-.B \-\-help
967-Show help about options
968-.TP
969-.B \-\-help\-qt
970-Show Qt specific options
971-.TP
972-.B \-\-help\-kde
973-Show KDE specific options
974-.TP
975-.B \-\-help\-all
976-Show all options
977-.TP
978-.B \-\-author
979-Show author information
980-.TP
981-.B \-v, \-\-version
982-Show version information
983-.TP
984-.B \-\-license
985-Show license information
986-.TP
987-.B \-\-
988-End of options
989-.SS
990-.SS KDE options:
991-.TP
992-.B \-\-caption <caption>
993-Use 'caption' as name in the titlebar
994-.TP
995-.B \-\-icon <icon>
996-Use 'icon' as the application icon
997-.TP
998-.B \-\-config <filename>
999-Use alternative configuration file
1000-.TP
1001-.B \-\-nocrashhandler
1002-Disable crash handler, to get core dumps
1003-.TP
1004-.B \-\-waitforwm
1005-Waits for a WM_NET compatible windowmanager
1006-.TP
1007-.B \-\-style <style>
1008-sets the application GUI style
1009-.TP
1010-.B \-\-geometry <geometry>
1011-sets the client geometry of the main widget - see man X for the argument format
1012-.SS
1013-.SS Qt options:
1014-.TP
1015-.B \-\-display <displayname>
1016-Use the X-server display 'displayname'
1017-.TP
1018-.B \-\-session <sessionId>
1019-Restore the application for the given 'sessionId'
1020-.TP
1021-.B \-\-cmap
1022-Causes the application to install a private color
1023-map on an 8-bit display
1024-.TP
1025-.B \-\-ncols <count>
1026-Limits the number of colors allocated in the color
1027-cube on an 8-bit display, if the application is
1028-using the QApplication::ManyColor color
1029-specification
1030-.TP
1031-.B \-\-nograb
1032-tells Qt to never grab the mouse or the keyboard
1033-.TP
1034-.B \-\-dograb
1035-running under a debugger can cause an implicit
1036--nograb, use -dograb to override
1037-.TP
1038-.B \-\-sync
1039-switches to synchronous mode for debugging
1040-.TP
1041-.B \-\-fn, \-\-font <fontname>
1042-defines the application font
1043-.TP
1044-.B \-\-bg, \-\-background <color>
1045-sets the default background color and an
1046-application palette (light and dark shades are
1047-calculated)
1048-.TP
1049-.B \-\-fg, \-\-foreground <color>
1050-sets the default foreground color
1051-.TP
1052-.B \-\-btn, \-\-button <color>
1053-sets the default button color
1054-.TP
1055-.B \-\-name <name>
1056-sets the application name
1057-.TP
1058-.B \-\-title <title>
1059-sets the application title (caption)
1060-.TP
1061-.B \-\-visual TrueColor
1062-forces the application to use a TrueColor visual on
1063-an 8-bit display
1064-.TP
1065-.B \-\-inputstyle <inputstyle>
1066-sets XIM (X Input Method) input style. Possible
1067-values are onthespot, overthespot, offthespot and
1068-root
1069-.TP
1070-.B \-\-im <XIM server>
1071-set XIM server
1072-.TP
1073-.B \-\-noxim
1074-disable XIM
1075-.TP
1076-.B \-\-reverse
1077-mirrors the whole layout of widgets
1078-.TP
1079-.B \-\-stylesheet
1080-<file.qss> applies the Qt stylesheet to the application widgets
1081-.TP
1082-.B \-\-graphicssystem <system>
1083-use a different graphics system instead of the default one, options are raster and opengl (experimental)
1084-.SS
1085-
1086-.SH SEE ALSO
1087-Full user documentation is available through the KDE Help Center. You can also enter the URL
1088-.BR help:/qt\-language\-selector/
1089-directly into konqueror or you can run
1090-.BR "`khelpcenter help:/qt\-language\-selector/'"
1091-from the command-line.
1092-.br
1093-.SH AUTHORS
1094-.nf
1095-Rob Bean
1096-.br
1097-
1098
1099=== modified file 'dbus_backend/com.ubuntu.languageselector.policy.in'
1100--- dbus_backend/com.ubuntu.languageselector.policy.in 2010-05-19 09:08:57 +0000
1101+++ dbus_backend/com.ubuntu.languageselector.policy.in 2011-02-22 18:57:39 +0000
1102@@ -20,7 +20,7 @@
1103 <defaults>
1104 <allow_any>auth_admin</allow_any>
1105 <allow_inactive>no</allow_inactive>
1106- <allow_active>auth_admin</allow_active>
1107+ <allow_active>auth_admin_keep</allow_active>
1108 </defaults>
1109 </action>
1110
1111
1112=== modified file 'debian/changelog'
1113--- debian/changelog 2011-02-14 16:17:48 +0000
1114+++ debian/changelog 2011-02-22 18:57:39 +0000
1115@@ -1,3 +1,22 @@
1116+language-selector (0.14) natty; urgency=low
1117+
1118+ * LanguageSelector/qt/QtLanguageSelector.py:
1119+ - KCModule and kcontrol migration
1120+ - Add same features than gtk frontend
1121+ - New GUI
1122+ - Migrate to polkit (no longer runs as root)
1123+ * dbus_backend/com.ubuntu.languageselector.policy.in:
1124+ - Change policy to auth_admin_keep (avoids multiple polkit authentifications)
1125+ * debian:
1126+ - Rename language-selector => language-selector-gnome
1127+ - Rename language-selector-qt => language-selector-kde
1128+ - Drop language-selector-qt.1 (not required anymore)
1129+ * data/qt-language-selector.desktop.in:
1130+ - Rename to kde-language-selector
1131+ - Make changes to be a kcmodule
1132+
1133+ -- Romain Perier <romain.perier@gmail.com> Tue, 22 Feb 2011 18:58:21 +0100
1134+
1135 language-selector (0.13) natty; urgency=low
1136
1137 [ Gunnar Hjalmarsson ]
1138
1139=== modified file 'debian/control'
1140--- debian/control 2011-01-11 04:57:31 +0000
1141+++ debian/control 2011-02-22 18:57:39 +0000
1142@@ -10,7 +10,7 @@
1143 Standards-Version: 3.9.1
1144 Vcs-Bzr: http://bazaar.launchpad.net/%7Eubuntu-core-dev/language-selector/ubuntu/
1145
1146-Package: language-selector
1147+Package: language-selector-gnome
1148 Architecture: all
1149 Depends: language-selector-common (= ${binary:Version}),
1150 ${misc:Depends},
1151@@ -28,7 +28,7 @@
1152 .
1153 This package contains the GTK+ frontend.
1154
1155-Package: language-selector-qt
1156+Package: language-selector-kde
1157 Architecture: all
1158 Depends: language-selector-common (= ${binary:Version}),
1159 ${misc:Depends},
1160
1161=== renamed file 'debian/language-selector.install' => 'debian/language-selector-gnome.install'
1162=== renamed file 'debian/language-selector.manpages' => 'debian/language-selector-gnome.manpages'
1163=== renamed file 'debian/language-selector-qt.install' => 'debian/language-selector-kde.install'
1164--- debian/language-selector-qt.install 2009-03-02 16:34:21 +0000
1165+++ debian/language-selector-kde.install 2011-02-22 18:57:39 +0000
1166@@ -1,4 +1,4 @@
1167-usr/bin/qt-language-selector
1168+usr/share/kde4/apps/language-selector/language-selector.py
1169 usr/lib/python*/*-packages/LanguageSelector/qt
1170-usr/share/applications/qt-language-selector.desktop
1171-../../data/incomplete-language-support-qt.note usr/share/language-support
1172+usr/share/kde4/services/language-selector.desktop
1173+../../data/incomplete-language-support-kde.note usr/share/language-support
1174
1175=== removed file 'debian/language-selector-qt.manpages'
1176--- debian/language-selector-qt.manpages 2009-09-10 21:21:13 +0000
1177+++ debian/language-selector-qt.manpages 1970-01-01 00:00:00 +0000
1178@@ -1,1 +0,0 @@
1179-data/qt-language-selector.1
1180
1181=== renamed file 'qt-language-selector' => 'kde-language-selector'
1182--- qt-language-selector 2008-08-26 11:33:42 +0000
1183+++ kde-language-selector 2011-02-22 18:57:39 +0000
1184@@ -15,6 +15,11 @@
1185 def _(string):
1186 return unicode(i18n(string), "utf-8")
1187
1188+def CreatePlugin(widget_parent, parent, component_data):
1189+ gettext.bindtextdomain("language-selector", "/usr/share/locale")
1190+ gettext.textdomain("language-selector")
1191+ return QtLanguageSelector("/usr/share/language-selector/", component_data, widget_parent)
1192+
1193 if __name__ == "__main__":
1194
1195 appName = "language-selector"
1196
1197=== modified file 'po/Makefile'
1198--- po/Makefile 2010-11-29 14:44:34 +0000
1199+++ po/Makefile 2011-02-22 18:57:39 +0000
1200@@ -14,7 +14,7 @@
1201
1202 language-selector.pot:
1203 intltool-extract --type=gettext/rfc822deb ../data/incomplete-language-support-gnome.note.in
1204- intltool-extract --type=gettext/rfc822deb ../data/incomplete-language-support-qt.note.in
1205+ intltool-extract --type=gettext/rfc822deb ../data/incomplete-language-support-kde.note.in
1206 intltool-extract --type=gettext/rfc822deb ../data/restart_session_required.note.in
1207 intltool-update -p -g language-selector
1208
1209
1210=== modified file 'po/POTFILES.in'
1211--- po/POTFILES.in 2010-11-29 14:27:43 +0000
1212+++ po/POTFILES.in 2011-02-22 18:57:39 +0000
1213@@ -8,9 +8,9 @@
1214 LanguageSelector/qt/QtLanguageSelectorGUI.py
1215 [type: gettext/glade]data/LanguageSelector.ui
1216 data/language-selector.desktop.in
1217-data/qt-language-selector.desktop.in
1218+data/kde-language-selector.desktop.in
1219 [type: gettext/rfc822deb]/data/incomplete-language-support-gnome.note.in
1220-[type: gettext/rfc822deb]/data/incomplete-language-support-qt.note.in
1221+[type: gettext/rfc822deb]/data/incomplete-language-support-kde.note.in
1222 [type: gettext/rfc822deb]data/restart_session_required.note.in
1223 gnome-language-selector
1224 fontconfig-voodoo
1225
1226=== modified file 'setup.py'
1227--- setup.py 2011-01-13 15:48:50 +0000
1228+++ setup.py 2011-02-22 18:57:39 +0000
1229@@ -5,6 +5,7 @@
1230 import os
1231 import sys
1232
1233+PREFIX=sys.prefix
1234 GETTEXT_NAME="language-selector"
1235 I18NFILES = []
1236 for filepath in glob.glob("po/mo/*/LC_MESSAGES/*.mo"):
1237@@ -18,14 +19,17 @@
1238 assert(os.system("cd LanguageSelector/qt; make") == 0)
1239 assert(os.system("make -C po") == 0)
1240 assert(os.system("cd dbus_backend; make") == 0)
1241-
1242+elif sys.argv[1] == "install":
1243+ for arg in sys.argv[2:]:
1244+ if "--prefix" in arg:
1245+ PREFIX=arg.split("=")[1]
1246+
1247 setup(name='language-selector',
1248 version='0.1',
1249 packages=['LanguageSelector',
1250 'LanguageSelector.gtk',
1251 'LanguageSelector.qt'],
1252- scripts=['qt-language-selector',
1253- 'gnome-language-selector',
1254+ scripts=['gnome-language-selector',
1255 'check-language-support',
1256 'fontconfig-voodoo'],
1257 data_files=[('share/language-selector/data',
1258@@ -40,7 +44,12 @@
1259 "data/im-switch.blacklist",
1260 "data/LanguageSelector.ui"]),
1261 ('share/applications',
1262- glob.glob("data/*.desktop")),
1263+ ['data/language-selector.desktop']),
1264+ # kcm stuff
1265+ ('share/kde4/services',
1266+ ['data/kde-language-selector.desktop']),
1267+ ('share/kde4/apps/language-selector',
1268+ ['kde-language-selector']),
1269 # dbus stuff
1270 ('share/dbus-1/system-services',
1271 ['dbus_backend/com.ubuntu.LanguageSelector.service']),
1272@@ -55,5 +64,6 @@
1273 ["data/language-selector.png"]),
1274 ]+I18NFILES,
1275 )
1276-
1277-
1278+if sys.argv[1] == "install":
1279+ os.rename(PREFIX+"/share/kde4/services/kde-language-selector.desktop", PREFIX+"/share/kde4/services/language-selector.desktop")
1280+ os.rename(PREFIX+"/share/kde4/apps/language-selector/kde-language-selector", PREFIX+"/share/kde4/apps/language-selector/language-selector.py")

Subscribers

People subscribed via source and target branches