diff options
Diffstat (limited to 'src/__TODO/UiGuiSettingsDialog.cpp')
-rw-r--r-- | src/__TODO/UiGuiSettingsDialog.cpp | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/src/__TODO/UiGuiSettingsDialog.cpp b/src/__TODO/UiGuiSettingsDialog.cpp new file mode 100644 index 0000000..8bfe0e5 --- /dev/null +++ b/src/__TODO/UiGuiSettingsDialog.cpp @@ -0,0 +1,205 @@ +/*************************************************************************** +* 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<UiGuiSettings> 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); + } +} |