summaryrefslogtreecommitdiffstats
path: root/src/UiGuiSettingsDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/UiGuiSettingsDialog.cpp')
-rw-r--r--src/UiGuiSettingsDialog.cpp218
1 files changed, 218 insertions, 0 deletions
diff --git a/src/UiGuiSettingsDialog.cpp b/src/UiGuiSettingsDialog.cpp
new file mode 100644
index 0000000..8eb5783
--- /dev/null
+++ b/src/UiGuiSettingsDialog.cpp
@@ -0,0 +1,218 @@
+/***************************************************************************
+* 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 "config.h"
+
+#include "UiGuiSettingsDialog.h"
+#include "UiGuiSettings.h"
+
+#include <tqcheckbox.h>
+#include <tqcombobox.h>
+#include <tqpixmap.h>
+#include <tqspinbox.h>
+#include <tqtabwidget.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, UiGuiSettings *settings) :
+ UiGuiSettingsDialogBase(parent)
+{
+ // Remember pointer to the UiGuiSettings object.
+ m_settings = settings;
+
+ // For icon setup
+ const TQString ICONS_PATH(APP_ICONS_PATH);
+ // Application icon
+ setIcon(TQPixmap(ICONS_PATH + "preferences-system.png"));
+
+ tabWidget->setTabIconSet(tabCommon, TQPixmap(ICONS_PATH + "applications-system.png"));
+ tabWidget->setTabIconSet(tabEditor, TQPixmap(ICONS_PATH + "accessories-text-editor.png"));
+ tabWidget->setTabIconSet(tabSyntaxHighlight, TQPixmap(ICONS_PATH + "syntax-highlight.png"));
+
+ // 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()
+{
+ // For icon setup
+ const TQString ICONS_PATH(APP_ICONS_PATH);
+
+ // First empty the combo box.
+ cmbBoxLanguageSelection->clear();
+
+ // Now add an entry into the box for every language short.
+ for (const TQString &languageShort : m_settings->getAvailableTranslations())
+ {
+ // Identify the language mnemonic and set the full name.
+ if (languageShort == "en")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-en.png"), tr("English"));
+ }
+ else if (languageShort == "fr")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-fr.png"), tr("French"));
+ }
+ else if (languageShort == "de")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-de.png"), tr("German"));
+ }
+ else if (languageShort == "zh_TW")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-zh_TW.png"),
+ tr("Chinese (Taiwan)"));
+ }
+ else if (languageShort == "ja")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-ja.png"), tr("Japanese"));
+ }
+ else if (languageShort == "ru")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-ru.png"), tr("Russian"));
+ }
+ else if (languageShort == "uk")
+ {
+ cmbBoxLanguageSelection->insertItem(TQPixmap(ICONS_PATH + "language-uk.png"), tr("Ukrainian"));
+ }
+ }
+}
+
+/*
+ \brief Displays the dialog by calling the dialogs exec function.
+
+ Before it gets all the values needed from the UiGuiSettings object.
+ */
+void UiGuiSettingsDialog::showDialog()
+{
+ // Init all settings dialog objects with values from settings.
+ cbLoadLastOpenedFileOnStartup->setChecked(
+ m_settings->getValueByName("LoadLastOpenedFileOnStartup").toBool());
+ cbEnableIndenterParameterTooltips->setChecked(
+ m_settings->getValueByName("IndenterParameterTooltipsEnabled").toBool());
+ cbWhiteSpaceIsVisible->setChecked(
+ m_settings->getValueByName("WhiteSpaceIsVisible").toBool());
+ cbEnableSyntaxHL->setChecked(
+ m_settings->getValueByName("SyntaxHighlightingEnabled").toBool());
+ sbRecentlyOpenedListSize->setValue(m_settings->getValueByName("RecentlyOpenedListSize").toInt());
+ sbTabWidth->setValue(m_settings->getValueByName("TabWidth").toInt());
+
+ // Execute the dialog.
+ if (exec() == TQDialog::Accepted)
+ {
+ updateSettings();
+ }
+}
+
+/*
+ \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::updateSettings()
+{
+ m_settings->setValueByName("LoadLastOpenedFileOnStartup",
+ cbLoadLastOpenedFileOnStartup->isChecked());
+ m_settings->setValueByName("IndenterParameterTooltipsEnabled",
+ cbEnableIndenterParameterTooltips->isChecked());
+ m_settings->setValueByName("RecentlyOpenedListSize", sbRecentlyOpenedListSize->value());
+ m_settings->setValueByName("WhiteSpaceIsVisible", cbWhiteSpaceIsVisible->isChecked());
+ m_settings->setValueByName("TabWidth", sbTabWidth->value());
+ m_settings->setValueByName("SyntaxHighlightingEnabled", cbEnableSyntaxHL->isChecked());
+}
+
+//--- /*
+//--- \brief Catches language change events and retranslates all needed widgets.
+//--- */
+//--- void UiGuiSettingsDialog::changeEvent(TQEvent *event)
+//--- {
+//--- if (event->type() == TQEvent::LanguageChange)
+//--- {
+//--- retranslateUi(this);
+//--- // If this is not explicit set here, TQt < 4.3.0 does not translate the buttons.
+//--- buttonBox->setStandardButtons(
+//--- TQDialogButtonBox::Cancel | TQDialogButtonBox::NoButton | TQDialogButtonBox::Ok);
+//---
+//--- //TODO: This has to be removed when the properties for the highlighters can be set.
+//--- groupBoxSyntaxHighlighterProperties->setToolTip(
+//--- "(Will be implemented soon)" +
+//--- 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")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("English"));
+//--- }
+//--- else if (languageShort == "fr")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("French"));
+//--- }
+//--- else if (languageShort == "de")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("German"));
+//--- }
+//--- else if (languageShort == "zh_TW")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("Chinese (Taiwan)"));
+//--- }
+//--- else if (languageShort == "ja")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("Japanese"));
+//--- }
+//--- else if (languageShort == "ru")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("Russian"));
+//--- }
+//--- else if (languageShort == "uk")
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i, tr("Ukrainian"));
+//--- }
+//--- else
+//--- {
+//--- cmbBoxLanguageSelection->setItemText(i,
+//--- tr("Unknown language mnemonic ") + languageShort);
+//--- }
+//--- }
+//--- }
+//--- else
+//--- {
+//--- TQWidget::changeEvent(event);
+//--- }
+//--- }
+
+#include "UiGuiSettingsDialog.moc"