kemailsettings.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
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->writeEntry("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 kdDebug() << "setDefault called with " << s << endl;
00211 p->m_pConfig->setGroup("Defaults");
00212 p->m_pConfig->writeEntry("Profile", s);
00213 p->m_pConfig->sync();
00214 p->m_sDefaultProfile=s;
00215
00216 }
00217
00218 void KEMailSettings::setProfile (const QString &s)
00219 {
00220 QString groupname="PROFILE_";
00221 groupname.append(s);
00222 p->m_sCurrentProfile=s;
00223 if (!p->m_pConfig->hasGroup(groupname)) {
00224 p->m_pConfig->setGroup(groupname);
00225 p->m_pConfig->writeEntry("ServerType", QString::null);
00226 p->m_pConfig->sync();
00227 p->profiles+=s;
00228 }
00229 }
00230
00231 QString KEMailSettings::currentProfileName() const
00232 {
00233 return p->m_sCurrentProfile;
00234 }
00235
00236 QStringList KEMailSettings::profiles() const
00237 {
00238 return p->profiles;
00239 }
00240
00241 KEMailSettings::KEMailSettings()
00242 {
00243 p = new KEMailSettingsPrivate();
00244 p->m_sCurrentProfile=QString::null;
00245
00246 p->m_pConfig = new KConfig("emaildefaults");
00247
00248 QStringList groups = p->m_pConfig->groupList();
00249 for (QStringList::Iterator it = groups.begin(); it != groups.end(); ++it) {
00250 if ( (*it).left(8) == "PROFILE_" )
00251 p->profiles+= (*it).mid(8, (*it).length());
00252 }
00253
00254 p->m_pConfig->setGroup("Defaults");
00255 p->m_sDefaultProfile=p->m_pConfig->readEntry("Profile", i18n("Default"));
00256 if (p->m_sDefaultProfile != QString::null) {
00257 if (!p->m_pConfig->hasGroup(QString("PROFILE_")+p->m_sDefaultProfile))
00258 setDefault(i18n("Default"));
00259 else
00260 setDefault(p->m_sDefaultProfile);
00261 } else {
00262 if (p->profiles.count()) {
00263 kdDebug() << "WE ALREADY HAVE PROFILES DAMNIT" << endl;
00264 setDefault(p->profiles[0]);
00265 } else
00266 setDefault(i18n("Default"));
00267 }
00268 setProfile(defaultProfileName());
00269 }
00270
00271 KEMailSettings::~KEMailSettings()
00272 {
00273 delete p;
00274 }
This file is part of the documentation for kdelibs Version 3.1.4.