summaryrefslogtreecommitdiffstats
path: root/konversation/src/warnings_preferences.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-19 18:29:46 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-19 18:29:46 +0000
commitee0d2e6e1967294f4a62da1840b0ffdaa3124a2d (patch)
tree5c150db3c91a190b4911f19aeec9b1b2163c0c53 /konversation/src/warnings_preferences.cpp
downloadkonversation-ee0d2e6e1967294f4a62da1840b0ffdaa3124a2d.tar.gz
konversation-ee0d2e6e1967294f4a62da1840b0ffdaa3124a2d.zip
Added old abandoned KDE3 version of Konversation
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/konversation@1092922 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'konversation/src/warnings_preferences.cpp')
-rw-r--r--konversation/src/warnings_preferences.cpp185
1 files changed, 185 insertions, 0 deletions
diff --git a/konversation/src/warnings_preferences.cpp b/konversation/src/warnings_preferences.cpp
new file mode 100644
index 0000000..c775ba7
--- /dev/null
+++ b/konversation/src/warnings_preferences.cpp
@@ -0,0 +1,185 @@
+/*
+ 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.
+*/
+
+/*
+ Copyright (C) 2006 Dario Abatianni <eisfuchs@tigress.com>
+ Copyright (C) 2006 John Tapsell <johnflux@gmail.com>
+ Copyright (C) 2006-2008 Eike Hein <hein@kde.org>
+*/
+
+
+#include "warnings_preferences.h"
+#include "konviconfigdialog.h"
+
+#include <qlistview.h>
+
+#include <kdebug.h>
+#include <kapplication.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <klistview.h>
+
+
+Warnings_Config::Warnings_Config( QWidget* parent, const char* name, WFlags fl )
+ : Warnings_ConfigUI( parent, name, fl )
+{
+ dialogListView->setSorting(1);
+ loadSettings();
+ connect(dialogListView, SIGNAL(clicked(QListViewItem *)), this, SIGNAL(modified()));
+}
+
+Warnings_Config::~Warnings_Config()
+{
+}
+
+void Warnings_Config::restorePageToDefaults()
+{
+
+ QCheckListItem* item=static_cast<QCheckListItem*>(dialogListView->itemAtIndex(0));
+ bool changed=false;
+ while(item)
+ {
+ if(!item->isOn()) {
+ item->setOn(true);
+ changed=true;
+ }
+ item=static_cast<QCheckListItem*>(item->itemBelow());
+ }
+ if(changed) {
+ emit modified();
+ }
+}
+
+void Warnings_Config::saveSettings()
+{
+ KConfig* config = kapp->config();
+ config->setGroup("Notification Messages");
+
+ // prepare list
+ QString warningsChecked;
+
+ QCheckListItem* item=static_cast<QCheckListItem*>(dialogListView->itemAtIndex(0));
+ int i = 0;
+ while(item)
+ {
+ // save state of this item in hasChanged() list
+ warningsChecked+=item->isOn();
+
+ if (item->text(2) == "LargePaste" || item->text(2) == "Invitation")
+ {
+ if (item->isOn())
+ {
+ config->writeEntry(item->text(2), 1);
+ }
+ else
+ {
+ QString state = config->readEntry(item->text(2));
+
+ if (!state.isEmpty() && (state == "yes" || state == "no"))
+ config->writeEntry(item->text(2), state);
+ else
+ config->writeEntry(item->text(2), "yes");
+ }
+ }
+ else
+ {
+ config->writeEntry(item->text(2),item->isOn() ? "1" : "0");
+ }
+
+ item=static_cast<QCheckListItem*>(item->itemBelow());
+ ++i;
+ }
+
+ // remember checkbox state for hasChanged()
+ m_oldWarningsChecked=warningsChecked;
+}
+
+void Warnings_Config::loadSettings()
+{
+ QStringList dialogDefinitions;
+ QString flagNames = "Invitation,SaveLogfileNote,ClearLogfileQuestion,CloseQueryAfterIgnore,ReconnectWithDifferentServer,ReuseExistingConnection,QuitServerTab,QuitChannelTab,QuitQueryTab,ChannelListNoServerSelected,HideMenuBarWarning,ChannelListWarning,LargePaste,systemtrayquitKonversation,IgnoreNick,UnignoreNick,QuitWithActiveDccTransfers";
+ dialogDefinitions.append(i18n("Automatically join channel on invite"));
+ dialogDefinitions.append(i18n("Notice that saving logfiles will save whole file"));
+ dialogDefinitions.append(i18n("Ask before deleting logfile contents"));
+ dialogDefinitions.append(i18n("Ask about closing queries after ignoring the nickname"));
+ dialogDefinitions.append(i18n("Ask before switching a connection to a network to a different server"));
+ dialogDefinitions.append(i18n("Ask before creating another connection to the same network or server"));
+ dialogDefinitions.append(i18n("Close server tab"));
+ dialogDefinitions.append(i18n("Close channel tab"));
+ dialogDefinitions.append(i18n("Close query tab"));
+ dialogDefinitions.append(i18n("The channel list can only be opened from server-aware tabs"));
+ dialogDefinitions.append(i18n("Warning on hiding the main window menu"));
+ dialogDefinitions.append(i18n("Warning on high traffic with channel list"));
+ dialogDefinitions.append(i18n("Warning on pasting large portions of text"));
+ dialogDefinitions.append(i18n("Warning on quitting Konversation"));
+ dialogDefinitions.append(i18n("Ignore"));
+ dialogDefinitions.append(i18n("Unignore"));
+ dialogDefinitions.append(i18n("Warn before quitting with active DCC file transfers"));
+ QCheckListItem *item;
+ dialogListView->clear();
+
+ KConfig* config = kapp->config();
+ config->setGroup("Notification Messages");
+ QString flagName;
+ for(unsigned int i=0; i<dialogDefinitions.count() ;i++)
+ {
+ item=new QCheckListItem(dialogListView,dialogDefinitions[i],QCheckListItem::CheckBox);
+ item->setText(1,dialogDefinitions[i]);
+ flagName = flagNames.section(",",i,i);
+ item->setText(2,flagName);
+
+ if (flagName == "LargePaste" || flagName == "Invitation")
+ {
+ QString state = config->readEntry(flagName);
+
+ if (state == "yes" || state == "no")
+ item->setOn(false);
+ else
+ item->setOn(true);
+ }
+ else
+ {
+ item->setOn(config->readBoolEntry(flagName,true));
+ }
+ }
+ // remember checkbox state for hasChanged()
+ m_oldWarningsChecked=currentWarningsChecked();
+}
+
+// get a list of checked/unchecked items for hasChanged()
+QString Warnings_Config::currentWarningsChecked()
+{
+ // prepare list
+ QString newList;
+
+ // get first checklist item
+ QListViewItem* item=dialogListView->firstChild();
+ while(item)
+ {
+ // save state of this item in hasChanged() list
+ newList+=(static_cast<QCheckListItem*>(item)->isOn()) ? "1" : "0";
+ item=item->itemBelow();
+ }
+ // return list
+ return newList;
+}
+
+bool Warnings_Config::hasChanged()
+{
+ return(m_oldWarningsChecked!=currentWarningsChecked());
+}
+
+/*
+ * Sets the strings of the subwidgets using the current
+ * language.
+ */
+void Warnings_Config::languageChange()
+{
+ loadSettings();
+}
+
+#include "warnings_preferences.moc"