/*************************************************************************** * Copyright (C) 2006-2012 by Thomas Schweitzer * * thomas-schweitzer(at)arcor.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License version 2.0 as * * published by the Free Software Foundation. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program in the file LICENSE.GPL; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #include "UiGuiSettingsDialog.h" #include "ui_UiGuiSettingsDialog.h" #include "UiGuiSettings.h" /* \class UiGuiSettingsDialog \ingroup grp_Settings \brief Displays a dialog window with settings for UniversalIndentGUI */ /* \brief The constructor calls the setup function for the ui created by uic. */ UiGuiSettingsDialog::UiGuiSettingsDialog(TQWidget *parent, TQSharedPointer settings) : TQDialog(parent) { // Remember pointer to the UiGuiSettings object. _settings = settings; // Init the user interface created by the UIC. _settingsDialogForm = new Ui::SettingsDialog(); _settingsDialogForm->setupUi(this); //TODO: This call has to be removed when the properties for the highlighters can be set // with the settings dialog. _settingsDialogForm->groupBoxSyntaxHighlighterProperties->setToolTip( "(Will be implemented soon)" + _settingsDialogForm->groupBoxSyntaxHighlighterProperties->toolTip()); // Connect the accepted signal to own function, to write values back to the UiGuiSettings object. connect(this, SIGNAL(accepted()), this, SLOT(writeWidgetValuesToSettings())); // Init the language selection combobox. initTranslationSelection(); } /* \brief By calling this function the combobox for selecting the application language will be initialized. Also the translation itself will be reinitialized. */ void UiGuiSettingsDialog::initTranslationSelection() { // First empty the combo box. _settingsDialogForm->languageSelectionComboBox->clear(); // Now add an entry into the box for every language short. foreach(TQString languageShort, _settings->getAvailableTranslations()) { // Identify the language mnemonic and set the full name. if (languageShort == "en") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("English")); } else if (languageShort == "fr") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("French")); } else if (languageShort == "de") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("German")); } else if (languageShort == "zh_TW") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("Chinese (Taiwan)")); } else if (languageShort == "ja") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("Japanese")); } else if (languageShort == "ru") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("Russian")); } else if (languageShort == "uk") { _settingsDialogForm->languageSelectionComboBox->addItem(TQIcon(TQString(":/language/language-" + languageShort + ".png")), tr("Ukrainian")); } else { _settingsDialogForm->languageSelectionComboBox->addItem(tr( "Unknown language mnemonic ") + languageShort); } } } /* \brief Displays the dialog by calling the dialogs exec function. Before it gets all the values needed from the UiGuiSettings object. */ int UiGuiSettingsDialog::showDialog() { // Init all settings dialog objects with values from settings. _settings->setObjectPropertyToSettingValueRecursive(this); // Execute the dialog. return exec(); } /* \brief This slot is called when the dialog box is closed by pressing the Ok button. Writes all settings to the UiGuiSettings object. */ void UiGuiSettingsDialog::writeWidgetValuesToSettings() { // Write settings dialog object values to settings. _settings->setSettingToObjectPropertyValueRecursive(this); } /* \brief Catches language change events and retranslates all needed widgets. */ void UiGuiSettingsDialog::changeEvent(TQEvent *event) { if (event->type() == TQEvent::LanguageChange) { _settingsDialogForm->retranslateUi(this); // If this is not explicit set here, TQt < 4.3.0 does not translate the buttons. _settingsDialogForm->buttonBox->setStandardButtons( TQDialogButtonBox::Cancel | TQDialogButtonBox::NoButton | TQDialogButtonBox::Ok); //TODO: This has to be removed when the properties for the highlighters can be set. _settingsDialogForm->groupBoxSyntaxHighlighterProperties->setToolTip( "(Will be implemented soon)" + _settingsDialogForm->groupBoxSyntaxHighlighterProperties->toolTip()); TQStringList languageShortList = _settings->getAvailableTranslations(); // Now retranslate every entry in the language selection box. for (int i = 0; i < languageShortList.size(); i++) { TQString languageShort = languageShortList.at(i); // Identify the language mnemonic and set the full name. if (languageShort == "en") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("English")); } else if (languageShort == "fr") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("French")); } else if (languageShort == "de") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("German")); } else if (languageShort == "zh_TW") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("Chinese (Taiwan)")); } else if (languageShort == "ja") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("Japanese")); } else if (languageShort == "ru") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("Russian")); } else if (languageShort == "uk") { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("Ukrainian")); } else { _settingsDialogForm->languageSelectionComboBox->setItemText(i, tr("Unknown language mnemonic ") + languageShort); } } } else { TQWidget::changeEvent(event); } }