diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch) | |
tree | d3bb9f5d25a2dc09ca81adecf39621d871534297 /kvoctrain/kvoctrain/common-dialogs/kvoctrainprefs.cpp | |
download | tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.tar.gz tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kvoctrain/kvoctrain/common-dialogs/kvoctrainprefs.cpp')
-rw-r--r-- | kvoctrain/kvoctrain/common-dialogs/kvoctrainprefs.cpp | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/kvoctrain/kvoctrain/common-dialogs/kvoctrainprefs.cpp b/kvoctrain/kvoctrain/common-dialogs/kvoctrainprefs.cpp new file mode 100644 index 00000000..2af07f63 --- /dev/null +++ b/kvoctrain/kvoctrain/common-dialogs/kvoctrainprefs.cpp @@ -0,0 +1,158 @@ +/*************************************************************************** + kvoctrainprefs.cpp - KVocTrain configuration dialog + + ------------------- + begin : Fri Mar 25 2005 + + copyright : (C) 2005 Peter Hedlund <peter.hedlund@kdemail.net> + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include <qwidgetstack.h> +#include <qlayout.h> +#include <qradiobutton.h> +#include <qcheckbox.h> +#include <qlistview.h> +#include <qlabel.h> + +#include <klocale.h> +#include <kstandarddirs.h> +#include <kiconloader.h> +#include <krestrictedline.h> +#include <kmessagebox.h> +#include <kpushbutton.h> +#include <kdebug.h> +#include <kconfigskeleton.h> +#include <kcolorbutton.h> +#include <kfontrequester.h> +#include <kcombobox.h> + +#include "kvoctrainprefs.h" +#include "kvoctraindoc.h" +#include "generaloptions.h" +#include "languageoptions.h" +#include "viewoptions.h" +#include "pasteoptions.h" +#include "groupoptions.h" +#include "queryoptions.h" +#include "thresholdoptions.h" +#include "blockoptions.h" +#include "langset.h" +#include "QueryManager.h" +#include "profilesdialog.h" + +static const char unapplied[] = I18N_NOOP( + "You have made changes that are not yet applied.\n" + "If you save a profile, those changes will not be included.\n" + "Do you wish to continue?"); + +KVocTrainPrefs::KVocTrainPrefs(LangSet & ls, kvoctrainDoc * doc, KComboBox * lessons, QueryManager * m, QWidget *parent, + const char *name, KConfigSkeleton *config, DialogType dialogType, int /*dialogButtons*/, ButtonCode /*defaultButton*/, + bool /*modal*/) + : KConfigDialog(parent, name, config, dialogType, Default|Ok|Apply|Cancel|Help|User1, Ok, true), m_langSet(ls) +{ + m_config = config; + m_queryManager = m; + + m_generalOptions = new GeneralOptions(0, "General Settings"); + addPage(m_generalOptions, i18n("General"), "kvoctrain", i18n("General Settings"), true); + + m_languageOptions = new LanguageOptions(m_langSet, 0, "Language Settings"); + addPage(m_languageOptions, i18n("Languages"), "set_language", i18n("Language Settings"), true); + connect(m_languageOptions, SIGNAL(widgetModified()), this, SLOT(updateButtons())); + + m_viewOptions = new ViewOptions(0, "View Settings"); + addPage(m_viewOptions, i18n("View"), "view_choose", i18n("View Settings"), true); + + m_pasteOptions = new PasteOptions(m_langSet, doc, 0, "Copy & Paste Settings"); + addPage(m_pasteOptions, i18n("Copy & Paste"), "editpaste", i18n("Copy & Paste Settings"), true); + connect(m_pasteOptions, SIGNAL(widgetModified()), this, SLOT(updateButtons())); + + m_queryOptions = new QueryOptions(0, "Query Settings"); + addPage(m_queryOptions, i18n("Query"), "run_query", i18n("Query Settings"), true); + + m_thresholdOptions = new ThresholdOptions(lessons, m_queryManager, 0, "Threshold Settings"); + addPage(m_thresholdOptions, i18n("Thresholds"), "configure", i18n("Threshold Settings"), true); + connect(m_thresholdOptions, SIGNAL(widgetModified()), this, SLOT(updateButtons())); + + m_blockOptions = new BlockOptions(0, "Blocking Settings"); + addPage(m_blockOptions, i18n("Blocking"), "configure", i18n("Blocking Settings"), true); + connect(m_blockOptions, SIGNAL(widgetModified()), this, SLOT(updateButtons())); + connect(m_blockOptions, SIGNAL(blockExpireChanged(bool, bool)), m_thresholdOptions, SLOT(slotBlockExpire(bool, bool))); + + setButtonGuiItem(KDialogBase::User1, KGuiItem(i18n("&Profiles..."))); + setButtonTip(KDialogBase::User1, i18n("Save or load specific Query settings which consist in a profile")); + setButtonWhatsThis(KDialogBase::User1, i18n("A Profile is a set of settings (settings related to queries) which you can save/load in order to use again later. This button allows you to see existing profiles, to load a new profile and to save your current settings in a new profile.")); +} + +void KVocTrainPrefs::selectPage(int index) +{ + showPage(index); +} + +bool KVocTrainPrefs::hasChanged() +{ + return m_pasteOptions->hasChanged() | + m_languageOptions->hasChanged() | + m_thresholdOptions->hasChanged() | + m_blockOptions->hasChanged(); +} + +bool KVocTrainPrefs::isDefault() +{ + return m_pasteOptions->isDefault() && + m_languageOptions->isDefault() && + m_thresholdOptions->isDefault() && + m_blockOptions->isDefault(); +} + +void KVocTrainPrefs::updateSettings() +{ + m_pasteOptions->updateSettings(); + m_languageOptions->updateSettings(); + m_thresholdOptions->updateSettings(); + m_blockOptions->updateSettings(); + emit settingsChanged(); +} + +void KVocTrainPrefs::updateWidgetsDefault() +{ + bool bUseDefaults = m_config->useDefaults(true); + m_pasteOptions->updateWidgets(); + m_languageOptions->updateWidgets(); + m_thresholdOptions->updateWidgets(); + m_blockOptions->updateWidgets(); + m_config->useDefaults(bUseDefaults); +} + +void KVocTrainPrefs::slotUser1() +{ + bool showDlg = true; + if (hasChanged()) + if (KMessageBox::Yes != KMessageBox::questionYesNo(this, i18n(unapplied), i18n("Unapplied Changes"))) + showDlg = false; + + if (showDlg) + { + ProfilesDialog * dlg = new ProfilesDialog(m_queryManager, this, 0, true); + connect(dlg, SIGNAL(profileActivated()), this, SLOT(updateWidgets())); + dlg->show(); + } +} + +void KVocTrainPrefs::updateWidgets() +{ + m_queryOptions->updateWidgets(); + m_thresholdOptions->updateWidgets(); + m_blockOptions->updateWidgets(); +} + +#include "kvoctrainprefs.moc" |