/*************************************************************************** * Copyright (C) 2012 by Peter Penz * * * * 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. * * * * 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; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "confirmationssettingspage.h" #include #include #include #include #include #include namespace { const bool ConfirmTrash = false; const bool ConfirmDelete = true; } ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : SettingsPageBase(parent), m_confirmMoveToTrash(0), m_confirmDelete(0), m_confirmClosingMultipleTabs(0) { QVBoxLayout* topLayout = new QVBoxLayout(this); QLabel* confirmLabel = new QLabel(i18nc("@title:group", "Ask for confirmation when:"), this); m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Moving files or folders to trash"), this); m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Deleting files or folders"), this); m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Closing windows with multiple tabs"), this); topLayout->addSpacing(KDialog::spacingHint()); topLayout->addWidget(confirmLabel); topLayout->addSpacing(KDialog::spacingHint()); topLayout->addWidget(m_confirmMoveToTrash); topLayout->addWidget(m_confirmDelete); topLayout->addWidget(m_confirmClosingMultipleTabs); topLayout->addStretch(); loadSettings(); connect(m_confirmMoveToTrash, SIGNAL(toggled(bool)), this, SIGNAL(changed())); connect(m_confirmDelete, SIGNAL(toggled(bool)), this, SIGNAL(changed())); connect(m_confirmClosingMultipleTabs, SIGNAL(toggled(bool)), this, SIGNAL(changed())); } ConfirmationsSettingsPage::~ConfirmationsSettingsPage() { } void ConfirmationsSettingsPage::applySettings() { KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig("kiorc", KConfig::NoGlobals); KConfigGroup confirmationGroup(kioConfig, "Confirmations"); confirmationGroup.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked()); confirmationGroup.writeEntry("ConfirmDelete", m_confirmDelete->isChecked()); confirmationGroup.sync(); GeneralSettings* settings = GeneralSettings::self(); settings->setConfirmClosingMultipleTabs(m_confirmClosingMultipleTabs->isChecked()); settings->writeConfig(); } void ConfirmationsSettingsPage::restoreDefaults() { GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); settings->useDefaults(false); m_confirmMoveToTrash->setChecked(ConfirmTrash); m_confirmDelete->setChecked(ConfirmDelete); } void ConfirmationsSettingsPage::loadSettings() { KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig("kiorc", KConfig::IncludeGlobals); const KConfigGroup confirmationGroup(kioConfig, "Confirmations"); m_confirmMoveToTrash->setChecked(confirmationGroup.readEntry("ConfirmTrash", ConfirmTrash)); m_confirmDelete->setChecked(confirmationGroup.readEntry("ConfirmDelete", ConfirmDelete)); m_confirmClosingMultipleTabs->setChecked(GeneralSettings::confirmClosingMultipleTabs()); } #include "confirmationssettingspage.moc"