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

KIO

  • sources
  • kde-4.14
  • kdelibs
  • 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 
34 class KEMailSettingsPrivate {
35 public:
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 
43 QString KEMailSettings::defaultProfileName() const
44 {
45  return p->m_sDefaultProfile;
46 }
47 
48 QString 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 }
127 void 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 
207 void 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 
215 void 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 
227 QString KEMailSettings::currentProfileName() const
228 {
229  return p->m_sCurrentProfile;
230 }
231 
232 QStringList KEMailSettings::profiles() const
233 {
234  return p->profiles;
235 }
236 
237 KEMailSettings::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 
266 KEMailSettings::~KEMailSettings()
267 {
268  delete p;
269 }
i18n
QString i18n(const char *text)
KEMailSettings::~KEMailSettings
~KEMailSettings()
Default destructor, nothing to see here.
Definition: kemailsettings.cpp:266
KEMailSettings::RealName
Definition: kemailsettings.h:60
QString::append
QString & append(QChar ch)
KEMailSettings::InServerMBXType
Definition: kemailsettings.h:74
KEMailSettings::InServer
Definition: kemailsettings.h:70
KConfigGroup::writePathEntry
void writePathEntry(const QString &pKey, const QString &path, WriteConfigFlags pFlags=Normal)
kdebug.h
KEMailSettings::OutServerType
Definition: kemailsettings.h:67
KEMailSettings::OutServerLogin
Definition: kemailsettings.h:65
KEMailSettings::profiles
QStringList profiles() const
List of profiles available.
Definition: kemailsettings.cpp:232
kconfig.h
KEMailSettings::Organization
Definition: kemailsettings.h:63
KConfigGroup::writeEntry
void writeEntry(const QString &key, const QVariant &value, WriteConfigFlags pFlags=Normal)
KEMailSettings::OutServerCommand
Definition: kemailsettings.h:68
KEMailSettings::setSetting
void setSetting(KEMailSettings::Setting s, const QString &v)
Set one of the predefined "basic" settings.
Definition: kemailsettings.cpp:127
KEMailSettings::Setting
Setting
The list of settings that I thought of when I wrote this class.
Definition: kemailsettings.h:57
klocale.h
KEMailSettings::OutServerTLS
Definition: kemailsettings.h:69
KEMailSettings::InServerTLS
Definition: kemailsettings.h:75
KEMailSettings::ClientTerminal
Definition: kemailsettings.h:59
KEMailSettings::defaultProfileName
QString defaultProfileName() const
Returns the name of the default profile.
Definition: kemailsettings.cpp:43
KEMailSettings::EmailAddress
Definition: kemailsettings.h:61
KEMailSettings::setProfile
void setProfile(const QString &s)
Change the current profile.
Definition: kemailsettings.cpp:215
QString
QStringList
KEMailSettings::InServerLogin
Definition: kemailsettings.h:71
QList::end
iterator end()
KEMailSettings::OutServer
Definition: kemailsettings.h:64
KEMailSettings::OutServerPass
Definition: kemailsettings.h:66
kemailsettings.h
KConfigGroup
KConfig
KEMailSettings::InServerPass
Definition: kemailsettings.h:72
KEMailSettings::setDefault
void setDefault(const QString &def)
Sets a new default.
Definition: kemailsettings.cpp:207
QLatin1String
KEMailSettings::KEMailSettings
KEMailSettings()
Default constructor, just sets things up.
Definition: kemailsettings.cpp:237
KEMailSettings::ClientProgram
Definition: kemailsettings.h:58
QList::ConstIterator
typedef ConstIterator
KEMailSettings::ReplyToAddress
Definition: kemailsettings.h:62
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
KConfigGroup::sync
void sync()
KConfigGroup::readEntry
T readEntry(const QString &key, const T &aDefault) const
QList::begin
iterator begin()
kconfiggroup.h
KEMailSettings::InServerType
Definition: kemailsettings.h:73
QVariant
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:53 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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

Search



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