• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KIO

  • kio
  • kio
kemailsettings.cpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2000 Alex Zepeda <zipzippy@sonic.net>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include "kemailsettings.h"
28
29#include <kconfig.h>
30#include <kconfiggroup.h>
31#include <klocale.h>
32#include <kdebug.h>
33
34class KEMailSettingsPrivate {
35public:
36 KEMailSettingsPrivate() : m_pConfig( 0 ) {}
37 ~KEMailSettingsPrivate() { delete m_pConfig; }
38 KConfig *m_pConfig;
39 QStringList profiles;
40 QString m_sDefaultProfile, m_sCurrentProfile;
41};
42
43QString KEMailSettings::defaultProfileName() const
44{
45 return p->m_sDefaultProfile;
46}
47
48QString KEMailSettings::getSetting(KEMailSettings::Setting s) const
49{
50 KConfigGroup cg( p->m_pConfig, QString("PROFILE_")+p->m_sCurrentProfile);
51 switch (s) {
52 case ClientProgram: {
53 return cg.readEntry("EmailClient");
54 break;
55 }
56 case ClientTerminal: {
57 return cg.readEntry("TerminalClient", QVariant(false)).toString();
58 break;
59 }
60 case RealName: {
61 return cg.readEntry("FullName");
62 break;
63 }
64 case EmailAddress: {
65 return cg.readEntry("EmailAddress");
66 break;
67 }
68 case ReplyToAddress: {
69 return cg.readEntry("ReplyAddr");
70 break;
71 }
72 case Organization: {
73 return cg.readEntry("Organization");
74 break;
75 }
76 case OutServer: {
77 return cg.readEntry("OutgoingServer");
78 break;
79 }
80 case OutServerLogin: {
81 return cg.readEntry("OutgoingUserName");
82 break;
83 }
84 case OutServerPass: {
85 return cg.readEntry("OutgoingPassword");
86 break;
87 }
88 case OutServerType: {
89 return cg.readEntry("OutgoingServerType");
90 break;
91 }
92 case OutServerCommand: {
93 return cg.readEntry("OutgoingCommand");
94 break;
95 }
96 case OutServerTLS: {
97 return cg.readEntry("OutgoingServerTLS", QVariant(false)).toString();
98 break;
99 }
100 case InServer: {
101 return cg.readEntry("IncomingServer");
102 break;
103 }
104 case InServerLogin: {
105 return cg.readEntry("IncomingUserName");
106 break;
107 }
108 case InServerPass: {
109 return cg.readEntry("IncomingPassword");
110 break;
111 }
112 case InServerType: {
113 return cg.readEntry("IncomingServerType");
114 break;
115 }
116 case InServerMBXType: {
117 return cg.readEntry("IncomingServerMBXType");
118 break;
119 }
120 case InServerTLS: {
121 return cg.readEntry("IncomingServerTLS", QVariant(false)).toString();
122 break;
123 }
124 };
125 return QString();
126}
127void KEMailSettings::setSetting(KEMailSettings::Setting s, const QString &v)
128{
129 KConfigGroup cg( p->m_pConfig, QString("PROFILE_")+p->m_sCurrentProfile);
130 switch (s) {
131 case ClientProgram: {
132 cg.writePathEntry("EmailClient", v);
133 break;
134 }
135 case ClientTerminal: {
136 cg.writeEntry("TerminalClient", (v == "true") );
137 break;
138 }
139 case RealName: {
140 cg.writeEntry("FullName", v);
141 break;
142 }
143 case EmailAddress: {
144 cg.writeEntry("EmailAddress", v);
145 break;
146 }
147 case ReplyToAddress: {
148 cg.writeEntry("ReplyAddr", v);
149 break;
150 }
151 case Organization: {
152 cg.writeEntry("Organization", v);
153 break;
154 }
155 case OutServer: {
156 cg.writeEntry("OutgoingServer", v);
157 break;
158 }
159 case OutServerLogin: {
160 cg.writeEntry("OutgoingUserName", v);
161 break;
162 }
163 case OutServerPass: {
164 cg.writeEntry("OutgoingPassword", v);
165 break;
166 }
167 case OutServerType: {
168 cg.writeEntry("OutgoingServerType", v);
169 break;
170 }
171 case OutServerCommand: {
172 cg.writeEntry("OutgoingCommand", v);
173 break;
174 }
175 case OutServerTLS: {
176 cg.writeEntry("OutgoingServerTLS", (v == "true") );
177 break;
178 }
179 case InServer: {
180 cg.writeEntry("IncomingServer", v);
181 break;
182 }
183 case InServerLogin: {
184 cg.writeEntry("IncomingUserName", v);
185 break;
186 }
187 case InServerPass: {
188 cg.writeEntry("IncomingPassword", v);
189 break;
190 }
191 case InServerType: {
192 cg.writeEntry("IncomingServerType", v);
193 break;
194 }
195 case InServerMBXType: {
196 cg.writeEntry("IncomingServerMBXType", v);
197 break;
198 }
199 case InServerTLS: {
200 cg.writeEntry("IncomingServerTLS", (v == "true") );
201 break;
202 }
203 };
204 cg.sync();
205}
206
207void KEMailSettings::setDefault(const QString &s)
208{
209 p->m_pConfig->group("Defaults").writeEntry("Profile", s);
210 p->m_pConfig->sync();
211 p->m_sDefaultProfile=s;
212
213}
214
215void KEMailSettings::setProfile (const QString &s)
216{
217 QString groupname="PROFILE_";
218 groupname.append(s);
219 p->m_sCurrentProfile=s;
220 if (!p->m_pConfig->hasGroup(groupname)) { // Create a group if it doesn't exist
221 KConfigGroup cg(p->m_pConfig, groupname);
222 cg.writeEntry("ServerType", QString());
223 p->profiles+=s;
224 }
225}
226
227QString KEMailSettings::currentProfileName() const
228{
229 return p->m_sCurrentProfile;
230}
231
232QStringList KEMailSettings::profiles() const
233{
234 return p->profiles;
235}
236
237KEMailSettings::KEMailSettings()
238 :p(new KEMailSettingsPrivate())
239{
240 p->m_sCurrentProfile.clear();
241
242 p->m_pConfig = new KConfig("emaildefaults");
243
244 const QStringList groups = p->m_pConfig->groupList();
245 for (QStringList::ConstIterator it = groups.begin(); it != groups.end(); ++it) {
246 if ( (*it).startsWith( QLatin1String( "PROFILE_" ) ) )
247 p->profiles+= (*it).mid(8, (*it).length());
248 }
249
250 KConfigGroup cg( p->m_pConfig, "Defaults");
251 p->m_sDefaultProfile = cg.readEntry("Profile", i18n("Default"));
252 if (!p->m_sDefaultProfile.isNull()) {
253 if (!p->m_pConfig->hasGroup(QString("PROFILE_")+p->m_sDefaultProfile))
254 setDefault(i18n("Default"));
255 else
256 setDefault(p->m_sDefaultProfile);
257 } else {
258 if (p->profiles.count()) {
259 setDefault(p->profiles[0]);
260 } else
261 setDefault(i18n("Default"));
262 }
263 setProfile(defaultProfileName());
264}
265
266KEMailSettings::~KEMailSettings()
267{
268 delete p;
269}
KConfigGroup
KConfigGroup::writeEntry
void writeEntry(const char *key, const char *value, WriteConfigFlags pFlags=Normal)
KConfigGroup::readEntry
QString readEntry(const char *key, const char *aDefault=0) const
KConfigGroup::sync
void sync()
KConfigGroup::writePathEntry
void writePathEntry(const char *pKey, const QString &path, WriteConfigFlags pFlags=Normal)
KConfig
KEMailSettings::currentProfileName
QString currentProfileName() const
Returns the name of the current profile.
Definition: kemailsettings.cpp:227
KEMailSettings::getSetting
QString getSetting(KEMailSettings::Setting s) const
Get one of the predefined "basic" settings.
Definition: kemailsettings.cpp:48
KEMailSettings::setProfile
void setProfile(const QString &s)
Change the current profile.
Definition: kemailsettings.cpp:215
KEMailSettings::setSetting
void setSetting(KEMailSettings::Setting s, const QString &v)
Set one of the predefined "basic" settings.
Definition: kemailsettings.cpp:127
KEMailSettings::defaultProfileName
QString defaultProfileName() const
Returns the name of the default profile.
Definition: kemailsettings.cpp:43
KEMailSettings::KEMailSettings
KEMailSettings()
Default constructor, just sets things up.
Definition: kemailsettings.cpp:237
KEMailSettings::profiles
QStringList profiles() const
List of profiles available.
Definition: kemailsettings.cpp:232
KEMailSettings::~KEMailSettings
~KEMailSettings()
Default destructor, nothing to see here.
Definition: kemailsettings.cpp:266
KEMailSettings::Setting
Setting
The list of settings that I thought of when I wrote this class.
Definition: kemailsettings.h:57
KEMailSettings::InServerTLS
@ InServerTLS
Definition: kemailsettings.h:75
KEMailSettings::OutServerLogin
@ OutServerLogin
Definition: kemailsettings.h:65
KEMailSettings::InServerType
@ InServerType
Definition: kemailsettings.h:73
KEMailSettings::InServer
@ InServer
Definition: kemailsettings.h:70
KEMailSettings::ReplyToAddress
@ ReplyToAddress
Definition: kemailsettings.h:62
KEMailSettings::OutServerCommand
@ OutServerCommand
Definition: kemailsettings.h:68
KEMailSettings::InServerMBXType
@ InServerMBXType
Definition: kemailsettings.h:74
KEMailSettings::RealName
@ RealName
Definition: kemailsettings.h:60
KEMailSettings::EmailAddress
@ EmailAddress
Definition: kemailsettings.h:61
KEMailSettings::Organization
@ Organization
Definition: kemailsettings.h:63
KEMailSettings::ClientTerminal
@ ClientTerminal
Definition: kemailsettings.h:59
KEMailSettings::InServerPass
@ InServerPass
Definition: kemailsettings.h:72
KEMailSettings::OutServer
@ OutServer
Definition: kemailsettings.h:64
KEMailSettings::OutServerType
@ OutServerType
Definition: kemailsettings.h:67
KEMailSettings::OutServerPass
@ OutServerPass
Definition: kemailsettings.h:66
KEMailSettings::ClientProgram
@ ClientProgram
Definition: kemailsettings.h:58
KEMailSettings::InServerLogin
@ InServerLogin
Definition: kemailsettings.h:71
KEMailSettings::OutServerTLS
@ OutServerTLS
Definition: kemailsettings.h:69
KEMailSettings::setDefault
void setDefault(const QString &def)
Sets a new default.
Definition: kemailsettings.cpp:207
kconfig.h
kconfiggroup.h
kdebug.h
kemailsettings.h
klocale.h
i18n
QString i18n(const char *text)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal