kio Library: kemailsettings.cpp Source File (kio Library)

| # kio Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# kemailsettings.cpp

    00001 /*
    00002  * Copyright (c) 2000 Alex Zepeda <zipzippy@sonic.net>
    00003  * All rights reserved.
    00004  *
    00005  * Redistribution and use in source and binary forms, with or without
    00006  * modification, are permitted provided that the following conditions
    00007  * are met:
    00008  * 1. Redistributions of source code must retain the above copyright
    00009  *    notice, this list of conditions and the following disclaimer.
    00010  * 2. Redistributions in binary form must reproduce the above copyright
    00011  *    notice, this list of conditions and the following disclaimer in the
    00012  *    documentation and/or other materials provided with the distribution.
    00013  *
    00014  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    00015  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    00016  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    00017  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    00018  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    00019  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    00020  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    00021  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    00022  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    00023  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    00024  * SUCH DAMAGE.
    00025  *
    00026  *  $Id: kemailsettings.cpp 267028 2003-11-14 12:34:09Z waba $
    00027  */
    00028
    00029 #include "kemailsettings.h"
    00030
    00031 #include <kconfig.h>
    00032 #include <klocale.h>
    00033 #include <kdebug.h>
    00034
    00035 class KEMailSettingsPrivate {
    00036 public:
    00037     KEMailSettingsPrivate() : m_pConfig( 0 ) {}
    00038     ~KEMailSettingsPrivate() { delete m_pConfig; }
    00039     KConfig *m_pConfig;
    00040     QStringList profiles;
    00041     QString m_sDefaultProfile, m_sCurrentProfile;
    00042 };
    00043
    00044 QString KEMailSettings::defaultProfileName() const
    00045 {
    00046     return p->m_sDefaultProfile;
    00047 }
    00048
    00049 QString KEMailSettings::getSetting(KEMailSettings::Setting s)
    00050 {
    00051     p->m_pConfig->setGroup(QString("PROFILE_")+p->m_sCurrentProfile);
    00052     switch (s) {
    00053         case ClientProgram: {
    00054             return p->m_pConfig->readEntry("EmailClient");
    00055             break;
    00056         }
    00057         case ClientTerminal: {
    00058             return ((p->m_pConfig->readBoolEntry("TerminalClient")) ? QString("true") : QString("false") );
    00059             break;
    00060         }
    00061         case RealName: {
    00062             return p->m_pConfig->readEntry("FullName");
    00063             break;
    00064         }
    00065         case EmailAddress: {
    00066             return p->m_pConfig->readEntry("EmailAddress");
    00067             break;
    00068         }
    00069         case ReplyToAddress: {
    00070             return p->m_pConfig->readEntry("ReplyAddr");
    00071             break;
    00072         }
    00073         case Organization: {
    00074             return p->m_pConfig->readEntry("Organization");
    00075             break;
    00076         }
    00077         case OutServer: {
    00078             return p->m_pConfig->readEntry("OutgoingServer");
    00079             break;
    00080         }
    00081         case OutServerLogin: {
    00082             return p->m_pConfig->readEntry("OutgoingUserName");
    00083             break;
    00084         }
    00085         case OutServerPass: {
    00086             return p->m_pConfig->readEntry("OutgoingPassword");
    00087             break;
    00088         }
    00089         case OutServerType: {
    00090             return p->m_pConfig->readEntry("OutgoingServerType");
    00091             break;
    00092         }
    00093         case OutServerCommand: {
    00094             return p->m_pConfig->readEntry("OutgoingCommand");
    00095             break;
    00096         }
    00097         case OutServerTLS: {
    00098             return ((p->m_pConfig->readBoolEntry("OutgoingServerTLS")) ? QString("true") : QString("false") );
    00099             break;
    00100         }
    00101         case InServer: {
    00102             return p->m_pConfig->readEntry("IncomingServer");
    00103             break;
    00104         }
    00105         case InServerLogin: {
    00106             return p->m_pConfig->readEntry("IncomingUserName");
    00107             break;
    00108         }
    00109         case InServerPass: {
    00110             return p->m_pConfig->readEntry("IncomingPassword");
    00111             break;
    00112         }
    00113         case InServerType: {
    00114             return p->m_pConfig->readEntry("IncomingServerType");
    00115             break;
    00116         }
    00117         case InServerMBXType: {
    00118             return p->m_pConfig->readEntry("IncomingServerMBXType");
    00119             break;
    00120         }
    00121         case InServerTLS: {
    00122             return ((p->m_pConfig->readBoolEntry("IncomingServerTLS")) ? QString("true") : QString("false") );
    00123             break;
    00124         }
    00125     };
    00126     return QString::null;
    00127 }
    00128 void KEMailSettings::setSetting(KEMailSettings::Setting s, const QString  &v)
    00129 {
    00130     p->m_pConfig->setGroup(QString("PROFILE_")+p->m_sCurrentProfile);
    00131     switch (s) {
    00132         case ClientProgram: {
    00133             p->m_pConfig->writePathEntry("EmailClient", v);
    00134             break;
    00135         }
    00136         case ClientTerminal: {
    00137             p->m_pConfig->writeEntry("TerminalClient", (v == "true") ? true : false );
    00138             break;
    00139         }
    00140         case RealName: {
    00141             p->m_pConfig->writeEntry("FullName", v);
    00142             break;
    00143         }
    00144         case EmailAddress: {
    00145             p->m_pConfig->writeEntry("EmailAddress", v);
    00146             break;
    00147         }
    00148         case ReplyToAddress: {
    00149             p->m_pConfig->writeEntry("ReplyAddr", v);
    00150             break;
    00151         }
    00152         case Organization: {
    00153             p->m_pConfig->writeEntry("Organization", v);
    00154             break;
    00155         }
    00156         case OutServer: {
    00157             p->m_pConfig->writeEntry("OutgoingServer", v);
    00158             break;
    00159         }
    00160         case OutServerLogin: {
    00161             p->m_pConfig->writeEntry("OutgoingUserName", v);
    00162             break;
    00163         }
    00164         case OutServerPass: {
    00165             p->m_pConfig->writeEntry("OutgoingPassword", v);
    00166             break;
    00167         }
    00168         case OutServerType: {
    00169             p->m_pConfig->writeEntry("OutgoingServerType", v);
    00170             break;
    00171         }
    00172         case OutServerCommand: {
    00173             p->m_pConfig->writeEntry("OutgoingCommand", v);
    00174             break;
    00175         }
    00176         case OutServerTLS: {
    00177             p->m_pConfig->writeEntry("OutgoingServerTLS", (v == "true") ? true : false );
    00178             break;
    00179         }
    00180         case InServer: {
    00181             p->m_pConfig->writeEntry("IncomingServer", v);
    00182             break;
    00183         }
    00184         case InServerLogin: {
    00185             p->m_pConfig->writeEntry("IncomingUserName", v);
    00186             break;
    00187         }
    00188         case InServerPass: {
    00189             p->m_pConfig->writeEntry("IncomingPassword", v);
    00190             break;
    00191         }
    00192         case InServerType: {
    00193             p->m_pConfig->writeEntry("IncomingServerType", v);
    00194             break;
    00195         }
    00196         case InServerMBXType: {
    00197             p->m_pConfig->writeEntry("IncomingServerMBXType", v);
    00198             break;
    00199         }
    00200         case InServerTLS: {
    00201             p->m_pConfig->writeEntry("IncomingServerTLS", (v == "true") ? true : false );
    00202             break;
    00203         }
    00204     };
    00205     p->m_pConfig->sync();
    00206 }
    00207
    00208 void KEMailSettings::setDefault(const QString &s)
    00209 {
    00210     p->m_pConfig->setGroup("Defaults");
    00211     p->m_pConfig->writeEntry("Profile", s);
    00212     p->m_pConfig->sync();
    00213     p->m_sDefaultProfile=s;
    00214
    00215 }
    00216
    00217 void KEMailSettings::setProfile (const QString &s)
    00218 {
    00219     QString groupname="PROFILE_";
    00220     groupname.append(s);
    00221     p->m_sCurrentProfile=s;
    00222     if (!p->m_pConfig->hasGroup(groupname)) { // Create a group if it doesn't exist
    00223         p->m_pConfig->setGroup(groupname);
    00224         p->m_pConfig->writeEntry("ServerType", QString::null);
    00225         p->m_pConfig->sync();
    00226         p->profiles+=s;
    00227     }
    00228 }
    00229
    00230 QString KEMailSettings::currentProfileName() const
    00231 {
    00232     return p->m_sCurrentProfile;
    00233 }
    00234
    00235 QStringList KEMailSettings::profiles() const
    00236 {
    00237     return p->profiles;
    00238 }
    00239
    00240 KEMailSettings::KEMailSettings()
    00241 {
    00242     p = new KEMailSettingsPrivate();
    00243     p->m_sCurrentProfile=QString::null;
    00244
    00245     p->m_pConfig = new KConfig("emaildefaults");
    00246
    00247     QStringList groups = p->m_pConfig->groupList();
    00248     for (QStringList::Iterator it = groups.begin(); it != groups.end(); ++it) {
    00249         if ( (*it).left(8) == "PROFILE_" )
    00250             p->profiles+= (*it).mid(8, (*it).length());
    00251     }
    00252
    00253     p->m_pConfig->setGroup("Defaults");
    00254     p->m_sDefaultProfile=p->m_pConfig->readEntry("Profile", i18n("Default"));
    00255     if (!p->m_sDefaultProfile.isNull()) {
    00256         if (!p->m_pConfig->hasGroup(QString("PROFILE_")+p->m_sDefaultProfile))
    00257             setDefault(i18n("Default"));
    00258         else
    00259             setDefault(p->m_sDefaultProfile);
    00260     } else {
    00261             if (p->profiles.count()) {
    00262                 setDefault(p->profiles[0]);
    00263             } else
    00264                 setDefault(i18n("Default"));
    00265     }
    00266     setProfile(defaultProfileName());
    00267 }
    00268
    00269 KEMailSettings::~KEMailSettings()
    00270 {
    00271     delete p;
    00272 }

This file is part of the documentation for kio Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:23:57 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003