summaryrefslogtreecommitdiffstats
path: root/kcontrol/privacy
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/privacy')
-rw-r--r--kcontrol/privacy/CMakeLists.txt33
-rw-r--r--kcontrol/privacy/Makefile.am16
-rw-r--r--kcontrol/privacy/kcmprivacydialog.ui201
-rw-r--r--kcontrol/privacy/kprivacymanager.cpp181
-rw-r--r--kcontrol/privacy/kprivacymanager.h56
-rw-r--r--kcontrol/privacy/kprivacysettings.ui308
-rw-r--r--kcontrol/privacy/privacy.cpp328
-rw-r--r--kcontrol/privacy/privacy.desktop206
-rw-r--r--kcontrol/privacy/privacy.h75
9 files changed, 1404 insertions, 0 deletions
diff --git a/kcontrol/privacy/CMakeLists.txt b/kcontrol/privacy/CMakeLists.txt
new file mode 100644
index 000000000..fe13ab4a7
--- /dev/null
+++ b/kcontrol/privacy/CMakeLists.txt
@@ -0,0 +1,33 @@
+#################################################
+#
+# (C) 2010-2011 Serghei Amelian
+# serghei (DOT) amelian (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+##### other data ################################
+
+install( FILES privacy.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+
+
+##### kcm_privacy (module) ######################
+
+tde_add_kpart( kcm_privacy AUTOMOC
+ SOURCES privacy.cpp kprivacysettings.ui kcmprivacydialog.ui kprivacymanager.cpp
+ LINK tdeio-shared
+ DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/kcontrol/privacy/Makefile.am b/kcontrol/privacy/Makefile.am
new file mode 100644
index 000000000..34e55f55f
--- /dev/null
+++ b/kcontrol/privacy/Makefile.am
@@ -0,0 +1,16 @@
+AM_CPPFLAGS = $(all_includes)
+kde_module_LTLIBRARIES = kcm_privacy.la
+
+kcm_privacy_la_SOURCES = privacy.cpp kprivacysettings.ui kcmprivacydialog.ui kprivacymanager.cpp
+
+kcm_privacy_la_LDFLAGS = -module -avoid-version $(all_libraries) -no-undefined
+kcm_privacy_la_LIBADD = $(LIB_TDEUI) -ltdeio
+
+METASOURCES = AUTO
+
+noinst_HEADERS = privacy.h
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/privacy.pot
+
+xdg_apps_DATA = privacy.desktop
diff --git a/kcontrol/privacy/kcmprivacydialog.ui b/kcontrol/privacy/kcmprivacydialog.ui
new file mode 100644
index 000000000..05d23882a
--- /dev/null
+++ b/kcontrol/privacy/kcmprivacydialog.ui
@@ -0,0 +1,201 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>KCMPrivacyDialog</class>
+<author>Ralf Hoelzer</author>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>KCMPrivacyDialog</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>452</width>
+ <height>226</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="sizeIncrement">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>400</width>
+ <height>550</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>Privacy</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="TQSplitter">
+ <property name="name">
+ <cstring>splitter1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <widget class="TDEListView">
+ <property name="name">
+ <cstring>privacyListView</cstring>
+ </property>
+ <property name="showSortIndicator">
+ <bool>false</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ <property name="itemsMovable">
+ <bool>false</bool>
+ </property>
+ <property name="autoOpen">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="KTextEdit">
+ <property name="name">
+ <cstring>statusTextEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>50</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>200</height>
+ </size>
+ </property>
+ <property name="resizePolicy">
+ <enum>Manual</enum>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>selectAllButton</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>80</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Select All</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>selectNoneButton</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>80</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Select None</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>80</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>cleanupButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Clean Up</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<includes>
+ <include location="global" impldecl="in implementation">tdelistview.h</include>
+ <include location="global" impldecl="in implementation">ktextedit.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/kcontrol/privacy/kprivacymanager.cpp b/kcontrol/privacy/kprivacymanager.cpp
new file mode 100644
index 000000000..c1ff81338
--- /dev/null
+++ b/kcontrol/privacy/kprivacymanager.cpp
@@ -0,0 +1,181 @@
+/**
+ * kprivacymanager.cpp
+ *
+ * Copyright (c) 2003 Ralf Hoelzer <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 "kprivacymanager.h"
+#include <tdeapplication.h>
+#include <dcopclient.h>
+#include <tdeconfig.h>
+#include <ksimpleconfig.h>
+#include <kprocess.h>
+#include <tdeglobal.h>
+#include <tdeapplication.h>
+#include <kdebug.h>
+#include <tderecentdocument.h>
+#include <kstandarddirs.h>
+
+#include <tqstringlist.h>
+#include <tqfile.h>
+#include <tqdir.h>
+
+KPrivacyManager::KPrivacyManager()
+{
+ if (!kapp->dcopClient()->isAttached())
+ kapp->dcopClient()->attach();
+
+ m_error = false;
+}
+
+
+KPrivacyManager::~KPrivacyManager()
+{
+}
+
+bool KPrivacyManager::clearThumbnails()
+{
+ // http://freedesktop.org/Standards/Home
+ // http://triq.net/~jens/thumbnail-spec/index.html
+
+ TQDir thumbnailDir( TQDir::homeDirPath() + "/.thumbnails/normal");
+ thumbnailDir.setFilter( TQDir::Files );
+ TQStringList entries = thumbnailDir.entryList();
+ for( TQStringList::Iterator it = entries.begin() ; it != entries.end() ; ++it)
+ if(!thumbnailDir.remove(*it)) m_error = true;
+ if(m_error) return m_error;
+
+ thumbnailDir.setPath(TQDir::homeDirPath() + "/.thumbnails/large");
+ entries = thumbnailDir.entryList();
+ for( TQStringList::Iterator it = entries.begin() ; it != entries.end() ; ++it)
+ if(!thumbnailDir.remove(*it)) m_error = true;
+ if(m_error) return m_error;
+
+ thumbnailDir.setPath(TQDir::homeDirPath() + "/.thumbnails/fail");
+ entries = thumbnailDir.entryList();
+ for( TQStringList::Iterator it = entries.begin() ; it != entries.end() ; ++it)
+ if(!thumbnailDir.remove(*it)) m_error = true;
+
+ return m_error;
+}
+
+bool KPrivacyManager::clearRunCommandHistory() const
+{
+ return kapp->dcopClient()->send( "kdesktop", "KDesktopIface", "clearCommandHistory()", TQString("") );
+}
+
+bool KPrivacyManager::clearAllCookies() const
+{
+ return kapp->dcopClient()->send( "kded", "kcookiejar", "deleteAllCookies()", TQString("") );
+}
+
+bool KPrivacyManager::clearSavedClipboardContents()
+{
+ if(!isApplicationRegistered("klipper"))
+ {
+ TDEConfig *c = new TDEConfig("klipperrc", false, false);
+
+ {
+ TDEConfigGroupSaver saver(c, "General");
+ c->deleteEntry("ClipboardData");
+ c->sync();
+ }
+ delete c;
+ return true;
+ }
+
+ return kapp->dcopClient()->send( "klipper", "klipper", "clearClipboardHistory()", TQString("") );
+}
+
+bool KPrivacyManager::clearFormCompletion() const
+{
+ TQFile completionFile(locateLocal("data", "tdehtml/formcompletions"));
+
+ return completionFile.remove();
+}
+
+bool KPrivacyManager::clearWebCache() const
+{
+ TDEProcess process;
+ process << "tdeio_http_cache_cleaner" << "--clear-all";
+ return process.start(TDEProcess::DontCare);
+}
+
+bool KPrivacyManager::clearRecentDocuments() const
+{
+ TDERecentDocument::clear();
+ return TDERecentDocument::recentDocuments().isEmpty();
+}
+
+bool KPrivacyManager::clearQuickStartMenu() const
+{
+ return kapp->dcopClient()->send( "kicker", "kicker", "clearQuickStartMenu()", TQString("") );
+}
+
+bool KPrivacyManager::clearWebHistory()
+{
+ TQStringList args("--preload");
+
+ // preload Konqueror if it is not running
+ if(!isApplicationRegistered("konqueror"))
+ {
+ kdDebug() << "couldn't find Konqueror instance, preloading." << endl;
+ kapp->tdeinitExec("konqueror", args, 0,0);
+ }
+
+ return kapp->dcopClient()->send( "konqueror*", "KonqHistoryManager",
+ "notifyClear(TQCString)", TQString("") );
+}
+
+bool KPrivacyManager::clearFavIcons()
+{
+ TQDir favIconDir(TDEGlobal::dirs()->saveLocation( "cache", "favicons/" ));
+ favIconDir.setFilter( TQDir::Files );
+
+ TQStringList entries = favIconDir.entryList();
+
+ // erase all files in favicon directory
+ for( TQStringList::Iterator it = entries.begin() ; it != entries.end() ; ++it)
+ if(!favIconDir.remove(*it)) m_error = true;
+ return m_error;
+}
+
+bool KPrivacyManager::clearKPDFDocData()
+{
+ TQDir kPDFDir(TDEGlobal::dirs()->saveLocation( "data", "kpdf/" ));
+ kPDFDir.setFilter( TQDir::Files );
+
+ TQStringList entries = kPDFDir.entryList();
+
+ // erase all files in kpdf directory
+ for( TQStringList::Iterator it = entries.begin() ; it != entries.end() ; ++it)
+ if(!kPDFDir.remove(*it)) m_error = true;
+ return m_error;
+}
+
+bool KPrivacyManager::isApplicationRegistered(const TQString &appName)
+{
+
+ QCStringList regApps = kapp->dcopClient()->registeredApplications();
+
+ for ( QCStringList::Iterator it = regApps.begin(); it != regApps.end(); ++it )
+ if((*it).find(appName.latin1()) != -1) return true;
+
+ return false;
+}
+
+#include "kprivacymanager.moc"
diff --git a/kcontrol/privacy/kprivacymanager.h b/kcontrol/privacy/kprivacymanager.h
new file mode 100644
index 000000000..70d7b77cf
--- /dev/null
+++ b/kcontrol/privacy/kprivacymanager.h
@@ -0,0 +1,56 @@
+/**
+ * kprivacymanager.h
+ *
+ * Copyright (c) 2003 Ralf Hoelzer <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ */
+
+#ifndef KPRIVACYMANAGER_H
+#define KPRIVACYMANAGER_H
+
+#include <tqobject.h>
+
+/**
+@author Ralf Hoelzer
+*/
+
+class KPrivacyManager : public TQObject
+{
+Q_OBJECT
+public:
+ KPrivacyManager();
+
+ ~KPrivacyManager();
+
+ bool clearAllCookies() const;
+ bool clearSavedClipboardContents();
+ bool clearThumbnails();
+ bool clearRunCommandHistory() const;
+ bool clearFormCompletion() const;
+ bool clearWebHistory();
+ bool clearWebCache() const;
+ bool clearQuickStartMenu() const;
+ bool clearRecentDocuments() const;
+ bool clearFavIcons();
+ bool clearKPDFDocData();
+
+private:
+ bool isApplicationRegistered(const TQString &appName);
+ bool m_error;
+
+};
+
+#endif
diff --git a/kcontrol/privacy/kprivacysettings.ui b/kcontrol/privacy/kprivacysettings.ui
new file mode 100644
index 000000000..623f47b80
--- /dev/null
+++ b/kcontrol/privacy/kprivacysettings.ui
@@ -0,0 +1,308 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>KPrivacySettings</class>
+<comment>TDE Privacy Settings Widget
+Licensed under the terms of the LGPL.
+Derived from AT&amp;T's Privacy Bird settings panel screenshot originally.
+</comment>
+<author>George Staikos &lt;[email protected]&gt;</author>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>KPrivacySettings</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>905</width>
+ <height>724</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Privacy Settings</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="Line" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>line1</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>HLine</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Network privacy level:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>_privacyLevel</cstring>
+ </property>
+ </widget>
+ <widget class="TQComboBox" row="0" column="1">
+ <item>
+ <property name="text">
+ <string>Low</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Medium</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>High</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Custom</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>_privacyLevel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="TQButtonGroup" row="6" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>buttonGroup1_2</cstring>
+ </property>
+ <property name="title">
+ <string>Financial Information</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that uses my financial or purchase information:</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnFinancialMarketeer</cstring>
+ </property>
+ <property name="text">
+ <string>For marketing or advertising purposes</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnFinancialSpammer</cstring>
+ </property>
+ <property name="text">
+ <string>To share with other companies</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQButtonGroup" row="5" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>buttonGroup1</cstring>
+ </property>
+ <property name="title">
+ <string>Health Information</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that uses my health or medical information: </string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnHealthMarketeer</cstring>
+ </property>
+ <property name="text">
+ <string>For marketing or advertising purposes</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnHealthSpammer</cstring>
+ </property>
+ <property name="text">
+ <string>To share with other companies</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQButtonGroup" row="7" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>buttonGroup1_2_2</cstring>
+ </property>
+ <property name="title">
+ <string>Demographics</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel2_3</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that uses my non-personally identifiable information:</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnDemographicsBigBrother</cstring>
+ </property>
+ <property name="text">
+ <string>To determine my interests, habits or general behavior</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnDemographicsSpammer</cstring>
+ </property>
+ <property name="text">
+ <string>To share with other companies</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQCheckBox" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>_warnSpammers</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that shares my personal information with other companies</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>_warnShady</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that does not let me know what information they have about me</string>
+ </property>
+ </widget>
+ <widget class="TQButtonGroup" row="4" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>buttonGroup4</cstring>
+ </property>
+ <property name="title">
+ <string>Personal Information</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>textLabel2_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that may contact me about other products or services:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>textLabel2_2_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Warn me when I visit a site that may use my personal information to:</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>_warnPersonalHabits</cstring>
+ </property>
+ <property name="text">
+ <string>Determine my habits, interests or general behavior</string>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="1" column="0">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnPersonalTelephone</cstring>
+ </property>
+ <property name="text">
+ <string>Via telephone</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnPersonalMail</cstring>
+ </property>
+ <property name="text">
+ <string>Via mail</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="TQLayoutWidget" row="1" column="1">
+ <property name="name">
+ <cstring>layout3</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnPersonalEmail</cstring>
+ </property>
+ <property name="text">
+ <string>Via email</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>_warnPersonalBigBrother</cstring>
+ </property>
+ <property name="text">
+ <string>And do not allow me to remove my contact information</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<includes>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
+</includes>
+<layoutdefaults spacing="3" margin="6"/>
+<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
+</UI>
diff --git a/kcontrol/privacy/privacy.cpp b/kcontrol/privacy/privacy.cpp
new file mode 100644
index 000000000..71fc3313b
--- /dev/null
+++ b/kcontrol/privacy/privacy.cpp
@@ -0,0 +1,328 @@
+/**
+ * privacy.cpp
+ *
+ * Copyright (c) 2003 Ralf Hoelzer <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 <tqcheckbox.h>
+#include <tqlayout.h>
+#include <tqptrlist.h>
+#include <tqpushbutton.h>
+#include <tqtabwidget.h>
+#include <tqtooltip.h>
+#include <tqwhatsthis.h>
+
+#include <tdeaboutdata.h>
+#include <tdeconfig.h>
+#include <kdialog.h>
+#include <tdeglobal.h>
+#include <tdelistview.h>
+#include <tdelocale.h>
+#include <tdemessagebox.h>
+#include <ktextedit.h>
+
+#include "privacy.h"
+
+Privacy::Privacy(TQWidget *parent, const char *name)
+ : TDECModule(parent, name)
+{
+ setQuickHelp( i18n("The privacy module allows a user to erase traces which TDE leaves on "
+ "the system, such as command histories or browser caches."));
+
+ setButtons( TDECModule::Default|TDECModule::Apply|TDECModule::Help );
+
+ TDEAboutData *about =
+ new TDEAboutData(I18N_NOOP("kcm_privacy"), I18N_NOOP("TDE Privacy Control Module"),
+ 0, 0, TDEAboutData::License_GPL,
+ I18N_NOOP("(c) 2003 Ralf Hoelzer"));
+
+ about->addAuthor("Ralf Hoelzer", 0, "[email protected]");
+ about->addAuthor("Benjamin Meyer", I18N_NOOP("Thumbnail Cache"), "[email protected]");
+ setAboutData( about );
+
+ m_privacymanager = new KPrivacyManager();
+
+ TQBoxLayout *top = new TQVBoxLayout(this, 0, KDialog::spacingHint());
+
+ // add this once the P3P stuff is finished
+ //TQTabWidget *privacyTabs = new TQTabWidget(this, "privacytabs");
+
+ cleaningDialog = new KCMPrivacyDialog(this);
+ //p3pSettings = new KPrivacySettings(this);
+
+ top->addWidget(cleaningDialog);
+
+ //top->addWidget(privacyTabs);
+ //privacyTabs->addTab(cleaningDialog, i18n("Cleanup"));
+ //privacyTabs->addTab(p3pSettings, i18n("Privacy Settings"));
+
+
+ TDEListView *sw = cleaningDialog->privacyListView;
+
+ sw->addColumn(i18n("Privacy Settings"));
+ sw->addColumn(i18n("Description"));
+
+ sw->setRootIsDecorated(true);
+ sw->setTooltipColumn(1);
+ sw->setColumnWidthMode(0, TQListView::Maximum);
+
+
+
+ generalCLI = new TDEListViewItem(sw, i18n("General") );
+ webbrowsingCLI = new TDEListViewItem(sw, i18n("Web Browsing") );
+
+ generalCLI->setOpen(true);
+ webbrowsingCLI->setOpen(true);
+
+ clearThumbnails = new TQCheckListItem(generalCLI,
+ i18n("Thumbnail Cache"),TQCheckListItem::CheckBox);
+ clearRunCommandHistory = new TQCheckListItem(generalCLI,
+ i18n("Run Command History"),TQCheckListItem::CheckBox);
+ clearAllCookies = new TQCheckListItem(webbrowsingCLI,
+ i18n("Cookies"),TQCheckListItem::CheckBox);
+ clearSavedClipboardContents = new TQCheckListItem(generalCLI,
+ i18n("Saved Clipboard Contents"),TQCheckListItem::CheckBox);
+ clearWebHistory = new TQCheckListItem(webbrowsingCLI,
+ i18n("Web and File Manager History"),TQCheckListItem::CheckBox);
+ clearWebCache = new TQCheckListItem(webbrowsingCLI,
+ i18n("Web Cache"),TQCheckListItem::CheckBox);
+ clearFormCompletion = new TQCheckListItem(webbrowsingCLI,
+ i18n("Form Completion Entries"),TQCheckListItem::CheckBox);
+ clearRecentDocuments = new TQCheckListItem(generalCLI,
+ i18n("Recent Documents"),TQCheckListItem::CheckBox);
+ clearQuickStartMenu = new TQCheckListItem(generalCLI,
+ i18n("Quick Start Menu"),TQCheckListItem::CheckBox);
+ clearFavIcons = new TQCheckListItem(webbrowsingCLI,
+ i18n("Favorite Icons"),TQCheckListItem::CheckBox);
+ clearKPDFDocData = new TQCheckListItem(generalCLI,
+ i18n("KPDF Document Data"),TQCheckListItem::CheckBox);
+
+ TQWhatsThis::add(sw, i18n("Check all cleanup actions you would like to perform. These will be executed by pressing the button below"));
+ TQWhatsThis::add(cleaningDialog->cleanupButton, i18n("Immediately performs the cleanup actions selected above"));
+
+ clearThumbnails->setText(1, i18n("Clears all cached thumbnails"));
+ clearRunCommandHistory->setText(1, i18n("Clears the history of commands run through the Run Command tool on the desktop"));
+ clearAllCookies->setText(1, i18n("Clears all stored cookies set by websites"));
+ clearWebHistory->setText(1, i18n("Clears the history of visited websites and file manager URLs"));
+ clearSavedClipboardContents->setText(1, i18n("Clears the clipboard contents stored by Klipper"));
+ clearWebCache->setText(1, i18n("Clears the temporary cache of websites visited"));
+ clearFormCompletion->setText(1, i18n("Clears values which were entered into forms on websites"));
+ clearRecentDocuments->setText(1, i18n("Clears the list of recently used documents from the TDE applications menu"));
+ clearQuickStartMenu->setText(1, i18n("Clears the entries from the list of recently started applications"));
+ clearFavIcons->setText(1, i18n("Clears the FavIcons cached from visited websites"));
+ clearKPDFDocData->setText(1, i18n("Clears all KPDF document data files"));
+
+ connect(sw, TQT_SIGNAL(selectionChanged()), TQT_SLOT(changed()));
+
+ // store all entries in a list for easy access later on
+ checklist.append(clearThumbnails);
+ checklist.append(clearRunCommandHistory);
+ checklist.append(clearAllCookies);
+ checklist.append(clearSavedClipboardContents);
+ checklist.append(clearWebHistory);
+ checklist.append(clearWebCache);
+ checklist.append(clearFormCompletion);
+ checklist.append(clearRecentDocuments);
+ checklist.append(clearQuickStartMenu);
+ checklist.append(clearFavIcons);
+ checklist.append(clearKPDFDocData);
+
+ connect(cleaningDialog->cleanupButton, TQT_SIGNAL(clicked()), TQT_SLOT(cleanup()));
+ connect(cleaningDialog->selectAllButton, TQT_SIGNAL(clicked()), TQT_SLOT(selectAll()));
+ connect(cleaningDialog->selectNoneButton, TQT_SIGNAL(clicked()), TQT_SLOT(selectNone()));
+
+ load();
+}
+
+
+Privacy::~Privacy()
+{
+ delete m_privacymanager;
+}
+
+void Privacy::load()
+{
+ load( false );
+}
+
+void Privacy::load(bool useDefaults)
+{
+ TDEConfig *c = new TDEConfig("kprivacyrc", false, false);
+
+ c->setReadDefaults( useDefaults );
+
+ // get general privacy settings
+ {
+ TDEConfigGroupSaver saver(c, "Cleaning");
+
+ clearThumbnails->setOn(c->readBoolEntry("ClearThumbnails", true));
+ clearRunCommandHistory->setOn(c->readBoolEntry("ClearRunCommandHistory", true));
+ clearAllCookies->setOn(c->readBoolEntry("ClearAllCookies", true));
+ clearSavedClipboardContents->setOn(c->readBoolEntry("ClearSavedClipboardContents", true));
+ clearWebHistory->setOn(c->readBoolEntry("ClearWebHistory", true));
+ clearWebCache->setOn(c->readBoolEntry("ClearWebCache", true));
+ clearFormCompletion->setOn(c->readBoolEntry("ClearFormCompletion", true));
+ clearRecentDocuments->setOn(c->readBoolEntry("ClearRecentDocuments", true));
+ clearQuickStartMenu->setOn(c->readBoolEntry("ClearQuickStartMenu", true));
+ clearFavIcons->setOn(c->readBoolEntry("ClearFavIcons", true));
+ clearKPDFDocData->setOn(c->readBoolEntry("ClearKPDFDocData", true));
+ }
+
+ {
+ TDEConfigGroupSaver saver(c, "P3P");
+
+ // TODO: add P3P settings here
+ }
+
+ delete c;
+ emit changed( useDefaults );
+}
+
+
+void Privacy::defaults()
+{
+ load( true );
+}
+
+
+void Privacy::save()
+{
+ TDEConfig *c = new TDEConfig("kprivacyrc", false, false);
+ {
+ TDEConfigGroupSaver saver(c, "Cleaning");
+
+ c->writeEntry("ClearThumbnails", clearThumbnails->isOn());
+ c->writeEntry("ClearRunCommandHistory", clearRunCommandHistory->isOn());
+ c->writeEntry("ClearAllCookies", clearAllCookies->isOn());
+ c->writeEntry("ClearSavedClipboardContents", clearSavedClipboardContents->isOn());
+ c->writeEntry("ClearWebCache", clearWebCache->isOn());
+ c->writeEntry("ClearWebHistory", clearWebHistory->isOn());
+ c->writeEntry("ClearFormCompletion", clearFormCompletion->isOn());
+ c->writeEntry("ClearRecentDocuments", clearRecentDocuments->isOn());
+ c->writeEntry("ClearQuickStartMenu", clearQuickStartMenu->isOn());
+ c->writeEntry("ClearFavIcons", clearFavIcons->isOn());
+ c->writeEntry("ClearKPDFDocData", clearKPDFDocData->isOn());
+ }
+
+ {
+ TDEConfigGroupSaver saver(c, "P3P");
+
+ // TODO: add settings for P3P
+ }
+
+ c->sync();
+
+ delete c;
+ emit changed(false);
+
+}
+
+void Privacy::selectAll()
+{
+ TQCheckListItem *item;
+
+ for ( item = checklist.first(); item; item = checklist.next() )
+ item->setOn(true);
+
+ emit changed(true);
+}
+
+void Privacy::selectNone()
+{
+ TQCheckListItem *item;
+
+ for ( item = checklist.first(); item; item = checklist.next() )
+ item->setOn(false);
+
+ emit changed(true);
+}
+
+
+void Privacy::cleanup()
+{
+ if (KMessageBox::warningContinueCancel(this, i18n("You are deleting data that is potentially valuable to you. Are you sure?")) != KMessageBox::Continue) return;
+
+ cleaningDialog->statusTextEdit->clear();
+ cleaningDialog->statusTextEdit->setText(i18n("Starting cleanup..."));
+
+ TQCheckListItem *item;
+ bool error = false;
+
+ for ( item = checklist.first(); item; item = checklist.next() )
+ {
+ if(item->isOn())
+ {
+ TQString statusText = i18n("Clearing %1...").arg(item->text());
+ cleaningDialog->statusTextEdit->append(statusText);
+
+ if(item == clearThumbnails)
+ error = m_privacymanager->clearThumbnails();
+
+ if(item == clearRunCommandHistory)
+ error = !m_privacymanager->clearRunCommandHistory();
+
+ if(item == clearSavedClipboardContents)
+ error = !m_privacymanager->clearSavedClipboardContents();
+
+ if(item == clearAllCookies)
+ error = !m_privacymanager->clearAllCookies();
+
+ if(item == clearFormCompletion)
+ error = !m_privacymanager->clearFormCompletion();
+
+ if(item == clearWebCache)
+ error = !m_privacymanager->clearWebCache();
+
+ if(item == clearWebHistory)
+ error = !m_privacymanager->clearWebHistory();
+
+ if(item == clearRecentDocuments)
+ error = !m_privacymanager->clearRecentDocuments();
+
+ if(item == clearQuickStartMenu)
+ error = !m_privacymanager->clearQuickStartMenu();
+
+ if(item == clearFavIcons)
+ error = m_privacymanager->clearFavIcons();
+
+ if(item == clearKPDFDocData)
+ error = m_privacymanager->clearKPDFDocData();
+
+ if(error)
+ {
+ TQString errorText = i18n("Clearing of %1 failed").arg(item->text());
+ cleaningDialog->statusTextEdit->append(errorText);
+ }
+ }
+ }
+
+
+ cleaningDialog->statusTextEdit->append(i18n("Clean up finished."));
+
+}
+
+extern "C"
+{
+
+ KDE_EXPORT TDECModule *create_privacy(TQWidget *parent, const char * /*name*/)
+ {
+ TDEGlobal::locale()->insertCatalogue("privacy");
+ return new Privacy(parent, "Privacy");
+ }
+}
+
+#include "privacy.moc"
diff --git a/kcontrol/privacy/privacy.desktop b/kcontrol/privacy/privacy.desktop
new file mode 100644
index 000000000..e00d5bd21
--- /dev/null
+++ b/kcontrol/privacy/privacy.desktop
@@ -0,0 +1,206 @@
+[Desktop Entry]
+Exec=tdecmshell privacy
+Terminal=false
+Type=Application
+X-TDE-FactoryName=privacy
+X-TDE-Library=privacy
+Categories=Qt;TDE;X-TDE-settings-security;
+Icon=trashcan_empty
+X-DocPath=kcontrol/privacy/index.html
+
+Name=Privacy
+Name[af]=Privaatheid
+Name[ar]=الخصوصية
+Name[az]=Gizlilik
+Name[be]=Прыватнасць
+Name[bg]=Анонимност
+Name[bn]=প্রাইভেসি
+Name[br]=Buhez prevez
+Name[bs]=Privatnost
+Name[ca]=Privacitat
+Name[cs]=Soukromí
+Name[csb]=Priwatnosc
+Name[cy]=Preifatrwydd
+Name[de]=Privatsphäre
+Name[el]=Προσωπικό απόρρητο
+Name[eo]=Privataj aferoj
+Name[es]=Privacidad
+Name[et]=Privaatsus
+Name[eu]=Pribatutasuna
+Name[fa]=محرمانگی
+Name[fi]=Yksityisyys
+Name[fr]=Confidentialité
+Name[ga]=Príobháideachas
+Name[gl]=Intimidade
+Name[he]=פרטיות
+Name[hi]=गोपनीयता
+Name[hr]=Privatnost
+Name[hu]=Magánjellegű adatok törlése
+Name[is]=Einkamál
+Name[ja]=プライバシー
+Name[ka]=კონფიდენციალურობა
+Name[kk]=Қарақшылыққа қарсылық
+Name[km]=ភាព​ឯកជន
+Name[lt]=Privatumas
+Name[lv]=Privātums
+Name[mk]=Приватност
+Name[ms]=Privasi
+Name[mt]=Privatezza
+Name[nb]=Personvern
+Name[nds]=Privaatrebeet
+Name[ne]=गोप्यता
+Name[nn]=Personvern
+Name[pa]=ਰਹੱਸ
+Name[pl]=Prywatność
+Name[pt]=Privacidade
+Name[pt_BR]=Privacidade
+Name[ro]=Intimitate
+Name[ru]=Конфиденциальность
+Name[rw]=Umwihariko
+Name[se]=Iežassuodjaleapmi
+Name[sk]=Súkromie
+Name[sl]=Zasebnost
+Name[sr]=Приватност
+Name[sr@Latn]=Privatnost
+Name[sv]=Integritet
+Name[ta]=தனிமை
+Name[te]=ప్రైవసి
+Name[th]=ความเป็นส่วนตัว
+Name[tr]=Gizlilik
+Name[tt]=Xosusílıq
+Name[uk]=Конфіденційність
+Name[uz]=Shaxsiy maʼlumot
+Name[uz@cyrillic]=Шахсий маълумот
+Name[vi]=Riêng tư
+Name[wa]=Vikereye da vosse
+Name[zh_CN]=隐私
+Name[zh_TW]=隱私權
+Comment=Privacy - a kcontrol module to clean unwanted traces the user leaves on the system
+Comment[af]=Privaatheid - 'n Beheer module wat voetspore wat deur gebruikers op die stelsel gelaat word skoon maak
+Comment[ar]=الخصوصية - وحدة kcontrol لتنظيف الآثار غير المرغوب بها التي يتركها المستخدم على النظام
+Comment[be]=Модуль захавання прыватнасці. Выдаляе файлы, што застаюцца пасля працы карыстальніка на кампутары
+Comment[bg]=Настройване заличаването на личната информация
+Comment[bn]=প্রাইভেসি - একটি কে-কন্ট্রোল মডিউল যার কাজব্যবহারের পর অবশিষ্ট চিহ্নগুলি পরিশোধন করা
+Comment[bs]=Privatnost - KControl modul koji čisti neželjene tragove koje korisnik ostavlja na sistemu
+Comment[ca]=Privacitat - un mòdul de kcontrol per a netejar les traces no desitjades que va deixant un usuari pel sistema
+Comment[cs]=Soukromí - modul pro čištění citlivých údajů
+Comment[csb]=Priwatny nastôw - mòduł, chtëren zezwôlô remac niepòrządané szlachë jaczé òstałë pò brëkòwnikù w systemie
+Comment[cy]=Preifatrwydd - modiwl krheoli i glanhau olion nas dymunir y mae'r defnyddiwr yn eu gadael ar y cysawd
+Comment[da]=Privacy - et kcontrol-modul der kan rense systemet for uønskede spor som brugeren efterlader.
+Comment[de]=Privatsphäre: Ein Kontrollmodul, das unerwünschte Spuren von Benutzern auf dem System beseitigt
+Comment[el]=Προσωπικό απόρρητο - ένα άρθρωμα του kcontrol για τον καθαρισμό των ιχνών που ο χρήστης αφήνει στο σύστημα
+Comment[eo]=Privataj aferoj - modulo de la TDEa administrilo, kiu forigas uzantajn spurojn
+Comment[es]=Privacy - un módulo de kcontrol para limpiar pistas que el usuario deja en el sistema sin querer
+Comment[et]=Privaatsus on juhtimismoodul, mis aitab kõrvaldada süsteemist kasutaja jäetud jäljed
+Comment[eu]=Pribatutasuna - Erabiltzaileek sisteman zehar nahi izan gabe uzten dituzten aztarnak garbitzen dituen kcontrol modulua
+Comment[fa]=محرمانگی - یک پیمانه kcontrol برای پاک کردن ردیابیهای ناخواسته، که کاربر در سیستم به جا می‌گذارد.
+Comment[fi]=Yksityisyys - Ohjauskeskuksen moduuli ei-toivottujen jälkien siivoamiseen järjestelmästä
+Comment[fr]=Confidentialité - Un module externe du Centre de configuration pour effacer les traces indésirables qu'un utilisateur laisse sur le système
+Comment[fy]=Privacy - in Konfiguraasjemodule wêrmei jo ûnwenste efterbluiwende sporen fan brûkers wiskje kinne
+Comment[gl]=Intimidade - un módulo de kcontrol para limpar os rastos non desexados que o usuario deixa no sistema
+Comment[he]=פרטיות - מודול ב־kcontrol המשתמש למחיקת עקבות לא רצויים שמשתמש משאיר אחריו במערכת
+Comment[hi]=गोपनीयता- उपयोक्ता द्वारा तंत्र में छोड़े गए अवांछित पदचिह्नों को साफ करने का एक के-कंट्रोल मॉड्यूल
+Comment[hr]=Privatnost - Modul kcontrol za brisanje neželjenih tragova koje su korisnici ostavili na sustavu
+Comment[hu]=A rendszerben létrejött, privát adatok biztonságos törlése
+Comment[is]=Einkamál - stjórneining fyrir kcontrol til að hreinsa burt upplýsingar og gögn sem ekki er æskilegt að verði eftir á vélinni
+Comment[it]=Privacy - un modulo di controllo per cancellare le tracce indesiderate che l'utente lascia nel sistema
+Comment[ja]=システムの利用を終えた後の不要な利用形跡を削除
+Comment[ka]=კონფიდენციალურობა - მოდული kcontrol, წმენდს მომხმარებლის არასასურველ ნაკვალევს სისტემაში
+Comment[kk]=Зиянды пайдаланушының қалдырған іздерді өшіретін kcontrol модулі
+Comment[km]=Privacy - ម៉ូឌុល kcontrol មួយ​ដែល​ប្រើ​ដើម្បី​សម្អាត​ដាន ដែល​អ្នក​ប្រើ​បន្សល់​ទុក​លើ​ប្រព័ន្ធ
+Comment[lt]=Privatumas - kcontrol modulis, padedantis išvalyti nepageidaujamus naudotojo veiklos sistemoje pėdsakus
+Comment[lv]=Privātums - kontrolcentra modulis, kas ļauj iztīrīt nevēlamas pēdas, ko atstāj lietotājs sistēmā
+Comment[mk]=Приватност - kcontrol модул кој ги чисти несаканите траги кои ги остава корисникот на системот
+Comment[mn]=Privacy - систем дэх хэрэглэгчийн хэрэглэхгүй охрисон хог цэвэрлэгчийн хяналтын модул
+Comment[mt]=Privatezza - modulu ta' kcontrol biex tnaddaf traċċi li l-user jista' jħalli fuq is-sistema
+Comment[nb]=Personvern – en kcontrol-modul som fjerner uønskede spor som brukeren etterlater i systemet
+Comment[nds]=Privaatrebeet - Mit dit Moduul kannst Du de Bruuksporen vun't Systeem wegmaken
+Comment[ne]=गोप्यता - प्रयोगकर्ताले प्रणालीमा छोडेका नचाहेका पदचिन्ह हटाउन के नियन्त्रण मोड्युल
+Comment[nl]=Privacy - een configuratiemodule waarmee u ongewenste sporen die gebruikers achterlaten kunt wissen.
+Comment[nn]=Personvern – ein kontrollmodul som fjernar uønskte spor som brukeren etterlèt seg i systemet
+Comment[pa]=ਰਹੱਸ - ਇੱਕ ਕੰਟਰੋਲ ਮੈਡੀਊਲ ਹੈ, ਜੋ ਕਿ ਸਿਸਟਮ 'ਤੇ ਉਪਭੋਗੀ ਦੀ ਨਾ-ਲੋੜੀਦੀ ਪਛਾਣ ਨੂੰ ਸਮਾਪਤ ਕਰਦਾ ਹੈ।
+Comment[pl]=Ustawienia prywatności - moduł, który pozwala usunąć niepożądane ślady pozostawiane przez użytkownika w systemie
+Comment[pt]=Privacidade - um módulo do kcontrol para limpar os registos indesejáveis que o utilizador deixa no sistema
+Comment[pt_BR]=Privacidade - um módulo de controle do TDE para limpar traços não-desejados do usuário no sistema
+Comment[ro]=Șterge urmele nedorite pe care le lasă un utilizator în sistem
+Comment[ru]=Модуль kcontrol, очищающий нежелательные следы, оставленные пользователем в операционной системе
+Comment[rw]=Umwihariko - igice k-igenzura ryo gusiba ibirango bidakenewe ukoresha yasize kuri sisitemu
+Comment[se]=Iežassuodjaleapmi – kcontrolmoduvla mii váldá eret luottaid maid geavaheaddji guođđa vuogádahkii
+Comment[sk]=Modul na vyčistenie nežiadúcich infomácií, ktoré používateľ necháva v systéme
+Comment[sl]=Zasebnost - nadzorni modul, ki počisti nezaželene sledi, ki jih uporabnik pusti na sistemu
+Comment[sr]=Приватност — kcontrol модул који уклања трагове активности корисника на систему
+Comment[sr@Latn]=Privatnost — kcontrol modul koji uklanja tragove aktivnosti korisnika na sistemu
+Comment[sv]=Integritet - en modul i Inställningscentralen för att ta bort oönskade spår användaren lämnat i systemet
+Comment[ta]=தனிப்பட்ட- பயனீட்டாளர் விட்டுவைத்த தேவை இல்லாத சுவடுகளை kcontrol பகுதி நீக்கும்.
+Comment[tg]=Барномаи kcontrol барои тоза кардани дирагуниҳои номатлуб, ки бо корбарон дар система монда шудаанд
+Comment[th]=ความเป็นส่วนตัว - โมดูลของศูนย์ควบคุม TDE ที่จะทำความสะอาดร่องรอยไม่พึงประสงค์ที่ผู้ใช้ปล่อยเอาไว้บนระบบ
+Comment[tr]=Gizlilik - kullanıcının sistemde bıraktığı iztenilmeyen izlemeleri temizleyen kcontrol modülü
+Comment[tt]=Xosusílıq – qullanuçıdan soñ sistem eçendä qalğan ezlär beterüçe kcontrol modulı
+Comment[uk]=Конфіденційність - модуль керування для очищення небажаної інформації залишеної користувачем у системі
+Comment[vi]=Riêng tư - trình điều khiển giúp xoá các dấu vết mà người sử dụng để lại trên hệ thống
+Comment[wa]=Vikereye da vosse - on module di kcontrol po rnetyî les passêyes nén volowes ki l' uzeu leye sol sistinme
+Comment[zh_CN]=隐私 - 清除用户留在系统中痕迹的 kcontrol 模块
+Comment[zh_TW]=隱私權 - 一個控制模組用來清除使用者不希望留在系統中的痕跡
+Keywords=Privacy;privacy;
+Keywords[ar]=خصوصية، الخصوصية;
+Keywords[az]=Gizlilik;gizlilik;
+Keywords[be]=Бяспека;Прыватнасць;Privacy;privacy;
+Keywords[bg]=анонимност; лична; информация; тайна; Privacy; privacy;
+Keywords[br]=Buhez prevez;buhez prevez;
+Keywords[bs]=Privacy;privacy;privatnost;
+Keywords[ca]=Privacitat;privacitat;
+Keywords[cs]=soukromí;
+Keywords[csb]=Priwatnosc;prowatno;swòjno; swòjnosc;priwatny nastôw;
+Keywords[cy]=Preifatrwydd; preifatrwydd;
+Keywords[de]=privatsphäre;
+Keywords[el]=Προσωπικό απόρρητο;προσωπικό απόρρητο;
+Keywords[eo]=privataj aferoj;privataj aferoj;
+Keywords[es]=Privacidad;privacidad;
+Keywords[et]=Privaatsus;privaatsus;
+Keywords[eu]=Pribatutasuna;pribatutasuna;
+Keywords[fa]=محرمانگی، محرمانگی;
+Keywords[fi]=Yksityisyys; yksityisyys;
+Keywords[fr]=Confidentialité;confidentialité;
+Keywords[fy]=privacy;
+Keywords[ga]=Príobháideachas;príobháideachas;
+Keywords[gl]=Intimidade;intimidade;
+Keywords[he]=פרטיות;פרטיות; Privacy;privacy;
+Keywords[hi]=गोपनीय;गोपनीयता;
+Keywords[hr]=Privacy;privacy;Privatnost;privatnost;privatno;
+Keywords[hu]=adatvédelem;adatbiztonság;
+Keywords[is]=Privacy;privacy;einkamál;
+Keywords[it]=privacy;riservatezza;
+Keywords[ja]=プライバシー;
+Keywords[km]=ភាព​ឯកជន;
+Keywords[lt]=Privacy;privacy;privatumas;Privatumas;
+Keywords[lv]=Privāts;privātums;
+Keywords[mk]=Privacy;privacy;Приватност;приватност;
+Keywords[mt]=Privacy;privacy;privatezza;
+Keywords[nb]=personvern;privat;
+Keywords[nds]=Privaatrebeet;
+Keywords[ne]=गोप्यता; गोप्यता;
+Keywords[nl]=privacy;
+Keywords[nn]=personvern;privat;
+Keywords[pa]=Privacy;ਰਹੱਸ; ਨਿੱਜੀ;
+Keywords[pl]=Prywatność;prywatność;ustawienia prywatności;
+Keywords[pt]=privacidade;
+Keywords[pt_BR]=Privacidade;privacidade;
+Keywords[ro]=intimitate;
+Keywords[rw]=Umwihariko;umwihariko;
+Keywords[se]=Iežassuodjaleapmi;iežassuodjaleapmi;
+Keywords[sk]=Privacy;privacy;súkromie;
+Keywords[sl]=Zasebnost;zasebnost;
+Keywords[sr]=Privacy;privacy;Приватност;приватност;приватно;
+Keywords[sr@Latn]=Privacy;privacy;Privatnost;privatnost;privatno;
+Keywords[sv]=Integritet;privatliv;
+Keywords[ta]=தனிப்பட்ட;தனிப்பட்ட;
+Keywords[te]=ప్రైవసి;
+Keywords[th]=ความเป็นส่วนตัว;
+Keywords[tr]=gizlilik;
+Keywords[uk]=Конфіденційність;
+Keywords[uz]=Shaxsiy maʼlumot;shaxsiy maʼlumot;
+Keywords[uz@cyrillic]=Шахсий маълумот;шахсий маълумот;
+Keywords[vi]=Riêng tư;riêng tư;
+Keywords[wa]=privé;privêye vikereye;vikerêye da vosse;
+Keywords[zh_CN]=Privacy;privacy;隐私;
+Keywords[zh_TW]=Privacy;privacy;隱私權;
diff --git a/kcontrol/privacy/privacy.h b/kcontrol/privacy/privacy.h
new file mode 100644
index 000000000..74d199dcf
--- /dev/null
+++ b/kcontrol/privacy/privacy.h
@@ -0,0 +1,75 @@
+/**
+ * privacy.h
+ *
+ * Copyright (c) 2003 Ralf Hoelzer <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ */
+
+#ifndef _PRIVACY_H_
+#define _PRIVACY_H_
+
+#include <tdecmodule.h>
+#include <tdelistview.h>
+
+#include "kcmprivacydialog.h"
+#include "kprivacymanager.h"
+#include "kprivacysettings.h"
+
+class Privacy: public TDECModule
+{
+ Q_OBJECT
+
+public:
+ Privacy( TQWidget *parent=0, const char *name=0 );
+ ~Privacy();
+
+ virtual void load();
+ virtual void load(bool useDefaults);
+ virtual void save();
+ virtual void defaults();
+
+public slots:
+ void cleanup();
+ void selectAll();
+ void selectNone();
+
+private:
+ KCMPrivacyDialog *cleaningDialog;
+ KPrivacySettings *p3pSettings;
+ KPrivacyManager *m_privacymanager;
+
+ TQPtrList<TQCheckListItem> checklist;
+
+ TDEListViewItem *generalCLI;
+ TDEListViewItem *webbrowsingCLI;
+
+ TQCheckListItem *clearThumbnails;
+ TQCheckListItem *clearRunCommandHistory;
+ TQCheckListItem *clearAllCookies;
+ TQCheckListItem *clearSavedClipboardContents;
+ TQCheckListItem *clearWebHistory;
+ TQCheckListItem *clearWebCache;
+ TQCheckListItem *clearFormCompletion;
+ TQCheckListItem *clearRecentDocuments;
+ TQCheckListItem *clearQuickStartMenu;
+ TQCheckListItem *clearFavIcons;
+ TQCheckListItem *clearKPDFDocData;
+ //TQCheckListItem *clearFileDialogHistory;
+
+
+};
+
+#endif