summaryrefslogtreecommitdiffstats
path: root/kcontrol/locale
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/locale')
-rw-r--r--kcontrol/locale/Makefile.am2
-rw-r--r--kcontrol/locale/kcmlocale.cpp61
-rw-r--r--kcontrol/locale/kcmlocale.h9
3 files changed, 70 insertions, 2 deletions
diff --git a/kcontrol/locale/Makefile.am b/kcontrol/locale/Makefile.am
index 8ca082408..6872f1436 100644
--- a/kcontrol/locale/Makefile.am
+++ b/kcontrol/locale/Makefile.am
@@ -26,7 +26,7 @@ timezones:
messages:
$(XGETTEXT) -ktranslate $(kcm_locale_la_SOURCES) -o $(podir)/kcmlocale.pot
- $(XGETTEXT) TIMEZONES -o $(podir)/../kdelibs/timezones.pot
+ $(XGETTEXT) TIMEZONES -o $(podir)/timezones.pot
xdg_apps_DATA = language.desktop
diff --git a/kcontrol/locale/kcmlocale.cpp b/kcontrol/locale/kcmlocale.cpp
index 5d746212e..0a24b4a59 100644
--- a/kcontrol/locale/kcmlocale.cpp
+++ b/kcontrol/locale/kcmlocale.cpp
@@ -47,7 +47,7 @@ KLocaleConfig::KLocaleConfig(KLocale *locale,
: QWidget (parent, name),
m_locale(locale)
{
- QGridLayout *lay = new QGridLayout(this, 3, 3,
+ QGridLayout *lay = new QGridLayout(this, 4, 3,
KDialog::marginHint(),
KDialog::spacingHint());
@@ -99,6 +99,65 @@ KLocaleConfig::KLocaleConfig(KLocale *locale,
lay->setColStretch(1, 1);
lay->setColStretch(2, 1);
+
+ // Added jriddell 2007-01-08, for Kubuntu Language Selector spec
+ QHBoxLayout* languageSelectorLayout = new QHBoxLayout();
+ installLanguage = new QPushButton(i18n("Install New Language"), this);
+ languageSelectorLayout->addWidget(installLanguage);
+ uninstallLanguage = new QPushButton(i18n("Uninstall Language"), this);
+ languageSelectorLayout->addWidget(uninstallLanguage);
+ selectLanguage = new QPushButton(i18n("Select System Language"), this);
+ languageSelectorLayout->addWidget(selectLanguage);
+ languageSelectorLayout->addStretch();
+ lay->addMultiCellLayout(languageSelectorLayout, 3, 3, 0, 2);
+
+ connect( installLanguage, SIGNAL(clicked()), this, SLOT(slotInstallLanguage()) );
+ connect( uninstallLanguage, SIGNAL(clicked()), this, SLOT(slotUninstallLanguage()) );
+ connect( selectLanguage, SIGNAL(clicked()), this, SLOT(slotSelectLanguage()) );
+
+}
+
+void KLocaleConfig::slotInstallLanguage()
+{
+ KProcess *proc = new KProcess;
+
+ *proc << "kdesu";
+ *proc << "qt-language-selector --mode install";
+ QApplication::connect(proc, SIGNAL(processExited(KProcess *)),
+ this, SLOT(slotLanguageSelectorExited(KProcess *)));
+ setEnabled(false);
+ proc->start();
+}
+
+void KLocaleConfig::slotUninstallLanguage()
+{
+ KProcess *proc = new KProcess;
+
+ *proc << "kdesu";
+ *proc << "qt-language-selector --mode uninstall";
+ QApplication::connect(proc, SIGNAL(processExited(KProcess *)),
+ this, SLOT(slotLanguageSelectorExited(KProcess *)));
+ setEnabled(false);
+ proc->start();
+}
+
+void KLocaleConfig::slotSelectLanguage()
+{
+ KProcess *proc = new KProcess;
+
+ *proc << "kdesu";
+ *proc << "qt-language-selector --mode select";
+ QApplication::connect(proc, SIGNAL(processExited(KProcess *)),
+ this, SLOT(slotLanguageSelectorExited(KProcess *)));
+ setEnabled(false);
+ proc->start();
+}
+
+void KLocaleConfig::slotLanguageSelectorExited(KProcess *)
+{
+ //reload here
+ loadLanguageList();
+ setEnabled(true);
}
void KLocaleConfig::slotAddLanguage(const QString & code)
diff --git a/kcontrol/locale/kcmlocale.h b/kcontrol/locale/kcmlocale.h
index f71193418..46f954730 100644
--- a/kcontrol/locale/kcmlocale.h
+++ b/kcontrol/locale/kcmlocale.h
@@ -75,6 +75,11 @@ private slots:
void slotLanguageDown();
void slotCheckButtons();
+ void slotInstallLanguage();
+ void slotUninstallLanguage();
+ void slotSelectLanguage();
+ void slotLanguageSelectorExited(KProcess *);
+
private:
QStringList languageList() const;
@@ -90,6 +95,10 @@ private:
QPushButton * m_removeLanguage;
QPushButton * m_upButton;
QPushButton * m_downButton;
+
+ QPushButton* installLanguage;
+ QPushButton* uninstallLanguage;
+ QPushButton* selectLanguage;
};
#endif