summaryrefslogtreecommitdiffstats
path: root/tdeio/tdeio/kemailsettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdeio/tdeio/kemailsettings.cpp')
-rw-r--r--tdeio/tdeio/kemailsettings.cpp272
1 files changed, 272 insertions, 0 deletions
diff --git a/tdeio/tdeio/kemailsettings.cpp b/tdeio/tdeio/kemailsettings.cpp
new file mode 100644
index 000000000..296455253
--- /dev/null
+++ b/tdeio/tdeio/kemailsettings.cpp
@@ -0,0 +1,272 @@
+/*
+ * Copyright (c) 2000 Alex Zepeda <zipzippy@sonic.net>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#include "kemailsettings.h"
+
+#include <tdeconfig.h>
+#include <klocale.h>
+#include <kdebug.h>
+
+class KEMailSettingsPrivate {
+public:
+ KEMailSettingsPrivate() : m_pConfig( 0 ) {}
+ ~KEMailSettingsPrivate() { delete m_pConfig; }
+ TDEConfig *m_pConfig;
+ TQStringList profiles;
+ TQString m_sDefaultProfile, m_sCurrentProfile;
+};
+
+TQString KEMailSettings::defaultProfileName() const
+{
+ return p->m_sDefaultProfile;
+}
+
+TQString KEMailSettings::getSetting(KEMailSettings::Setting s)
+{
+ p->m_pConfig->setGroup(TQString("PROFILE_")+p->m_sCurrentProfile);
+ switch (s) {
+ case ClientProgram: {
+ return p->m_pConfig->readEntry("EmailClient");
+ break;
+ }
+ case ClientTerminal: {
+ return ((p->m_pConfig->readBoolEntry("TerminalClient")) ? TQString("true") : TQString("false") );
+ break;
+ }
+ case RealName: {
+ return p->m_pConfig->readEntry("FullName");
+ break;
+ }
+ case EmailAddress: {
+ return p->m_pConfig->readEntry("EmailAddress");
+ break;
+ }
+ case ReplyToAddress: {
+ return p->m_pConfig->readEntry("ReplyAddr");
+ break;
+ }
+ case Organization: {
+ return p->m_pConfig->readEntry("Organization");
+ break;
+ }
+ case OutServer: {
+ return p->m_pConfig->readEntry("OutgoingServer");
+ break;
+ }
+ case OutServerLogin: {
+ return p->m_pConfig->readEntry("OutgoingUserName");
+ break;
+ }
+ case OutServerPass: {
+ return p->m_pConfig->readEntry("OutgoingPassword");
+ break;
+ }
+ case OutServerType: {
+ return p->m_pConfig->readEntry("OutgoingServerType");
+ break;
+ }
+ case OutServerCommand: {
+ return p->m_pConfig->readEntry("OutgoingCommand");
+ break;
+ }
+ case OutServerTLS: {
+ return ((p->m_pConfig->readBoolEntry("OutgoingServerTLS")) ? TQString("true") : TQString("false") );
+ break;
+ }
+ case InServer: {
+ return p->m_pConfig->readEntry("IncomingServer");
+ break;
+ }
+ case InServerLogin: {
+ return p->m_pConfig->readEntry("IncomingUserName");
+ break;
+ }
+ case InServerPass: {
+ return p->m_pConfig->readEntry("IncomingPassword");
+ break;
+ }
+ case InServerType: {
+ return p->m_pConfig->readEntry("IncomingServerType");
+ break;
+ }
+ case InServerMBXType: {
+ return p->m_pConfig->readEntry("IncomingServerMBXType");
+ break;
+ }
+ case InServerTLS: {
+ return ((p->m_pConfig->readBoolEntry("IncomingServerTLS")) ? TQString("true") : TQString("false") );
+ break;
+ }
+ };
+ return TQString::null;
+}
+void KEMailSettings::setSetting(KEMailSettings::Setting s, const TQString &v)
+{
+ p->m_pConfig->setGroup(TQString("PROFILE_")+p->m_sCurrentProfile);
+ switch (s) {
+ case ClientProgram: {
+ p->m_pConfig->writePathEntry("EmailClient", v);
+ break;
+ }
+ case ClientTerminal: {
+ p->m_pConfig->writeEntry("TerminalClient", (v == "true") ? true : false );
+ break;
+ }
+ case RealName: {
+ p->m_pConfig->writeEntry("FullName", v);
+ break;
+ }
+ case EmailAddress: {
+ p->m_pConfig->writeEntry("EmailAddress", v);
+ break;
+ }
+ case ReplyToAddress: {
+ p->m_pConfig->writeEntry("ReplyAddr", v);
+ break;
+ }
+ case Organization: {
+ p->m_pConfig->writeEntry("Organization", v);
+ break;
+ }
+ case OutServer: {
+ p->m_pConfig->writeEntry("OutgoingServer", v);
+ break;
+ }
+ case OutServerLogin: {
+ p->m_pConfig->writeEntry("OutgoingUserName", v);
+ break;
+ }
+ case OutServerPass: {
+ p->m_pConfig->writeEntry("OutgoingPassword", v);
+ break;
+ }
+ case OutServerType: {
+ p->m_pConfig->writeEntry("OutgoingServerType", v);
+ break;
+ }
+ case OutServerCommand: {
+ p->m_pConfig->writeEntry("OutgoingCommand", v);
+ break;
+ }
+ case OutServerTLS: {
+ p->m_pConfig->writeEntry("OutgoingServerTLS", (v == "true") ? true : false );
+ break;
+ }
+ case InServer: {
+ p->m_pConfig->writeEntry("IncomingServer", v);
+ break;
+ }
+ case InServerLogin: {
+ p->m_pConfig->writeEntry("IncomingUserName", v);
+ break;
+ }
+ case InServerPass: {
+ p->m_pConfig->writeEntry("IncomingPassword", v);
+ break;
+ }
+ case InServerType: {
+ p->m_pConfig->writeEntry("IncomingServerType", v);
+ break;
+ }
+ case InServerMBXType: {
+ p->m_pConfig->writeEntry("IncomingServerMBXType", v);
+ break;
+ }
+ case InServerTLS: {
+ p->m_pConfig->writeEntry("IncomingServerTLS", (v == "true") ? true : false );
+ break;
+ }
+ };
+ p->m_pConfig->sync();
+}
+
+void KEMailSettings::setDefault(const TQString &s)
+{
+ p->m_pConfig->setGroup("Defaults");
+ p->m_pConfig->writeEntry("Profile", s);
+ p->m_pConfig->sync();
+ p->m_sDefaultProfile=s;
+
+}
+
+void KEMailSettings::setProfile (const TQString &s)
+{
+ TQString groupname="PROFILE_";
+ groupname.append(s);
+ p->m_sCurrentProfile=s;
+ if (!p->m_pConfig->hasGroup(groupname)) { // Create a group if it doesn't exist
+ p->m_pConfig->setGroup(groupname);
+ p->m_pConfig->writeEntry("ServerType", TQString::null);
+ p->m_pConfig->sync();
+ p->profiles+=s;
+ }
+}
+
+TQString KEMailSettings::currentProfileName() const
+{
+ return p->m_sCurrentProfile;
+}
+
+TQStringList KEMailSettings::profiles() const
+{
+ return p->profiles;
+}
+
+KEMailSettings::KEMailSettings()
+{
+ p = new KEMailSettingsPrivate();
+ p->m_sCurrentProfile=TQString::null;
+
+ p->m_pConfig = new TDEConfig("emaildefaults");
+
+ TQStringList groups = p->m_pConfig->groupList();
+ for (TQStringList::Iterator it = groups.begin(); it != groups.end(); ++it) {
+ if ( (*it).left(8) == "PROFILE_" )
+ p->profiles+= (*it).mid(8, (*it).length());
+ }
+
+ p->m_pConfig->setGroup("Defaults");
+ p->m_sDefaultProfile=p->m_pConfig->readEntry("Profile", i18n("Default"));
+ if (!p->m_sDefaultProfile.isNull()) {
+ if (!p->m_pConfig->hasGroup(TQString("PROFILE_")+p->m_sDefaultProfile))
+ setDefault(i18n("Default"));
+ else
+ setDefault(p->m_sDefaultProfile);
+ } else {
+ if (p->profiles.count()) {
+ setDefault(p->profiles[0]);
+ } else
+ setDefault(i18n("Default"));
+ }
+ setProfile(defaultProfileName());
+}
+
+KEMailSettings::~KEMailSettings()
+{
+ delete p;
+}