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 | |
28 | #ifndef _KEMAILSETTINGS_H |
29 | #define _KEMAILSETTINGS_H |
30 | |
31 | #include <QtCore/QString> |
32 | #include <QtCore/QStringList> |
33 | |
34 | #include <kio/kio_export.h> |
35 | |
36 | class KEMailSettingsPrivate; |
37 | |
38 | |
39 | /** |
40 | * This is just a small class to facilitate accessing e-mail settings in |
41 | * a sane way, and allowing any program to manage multiple e-mail |
42 | * profiles effortlessly |
43 | * |
44 | * @author Alex Zepeda zipzippy@sonic.net |
45 | **/ |
46 | class KIO_EXPORT KEMailSettings { |
47 | public: |
48 | /** |
49 | * The list of settings that I thought of when I wrote this |
50 | * class. Any extra settings thought of later can be accessed |
51 | * easily with getExtendedSetting and setExtendedSetting. |
52 | * @see getSetting() |
53 | * @see setSetting() |
54 | * @see getExtendedSetting() |
55 | * @see setExtendedSetting() |
56 | **/ |
57 | enum Setting { |
58 | ClientProgram, |
59 | ClientTerminal, |
60 | RealName, |
61 | EmailAddress, |
62 | ReplyToAddress, |
63 | Organization, |
64 | OutServer, |
65 | OutServerLogin, |
66 | OutServerPass, |
67 | OutServerType, |
68 | OutServerCommand, |
69 | OutServerTLS, |
70 | InServer, |
71 | InServerLogin, |
72 | InServerPass, |
73 | InServerType, |
74 | InServerMBXType, |
75 | InServerTLS |
76 | }; |
77 | |
78 | /** |
79 | * The various extensions allowed. |
80 | **/ |
81 | enum Extension { |
82 | POP3, |
83 | SMTP, |
84 | OTHER |
85 | }; |
86 | |
87 | /** |
88 | * Default constructor, just sets things up. |
89 | **/ |
90 | KEMailSettings(); |
91 | |
92 | /** |
93 | * Default destructor, nothing to see here. |
94 | **/ |
95 | ~KEMailSettings(); |
96 | |
97 | /** |
98 | * List of profiles available. |
99 | * @return the list of profiles |
100 | **/ |
101 | QStringList profiles() const; |
102 | |
103 | /** |
104 | * Returns the name of the current profile. |
105 | * @returns what profile we're currently using |
106 | **/ |
107 | QString currentProfileName() const; |
108 | |
109 | /** |
110 | * Change the current profile. |
111 | * @param s the name of the new profile |
112 | **/ |
113 | void setProfile (const QString &s); |
114 | |
115 | /** |
116 | * Returns the name of the default profile. |
117 | * @returns the name of the one that's currently default QString() if none |
118 | **/ |
119 | QString defaultProfileName() const; |
120 | |
121 | /** |
122 | * Sets a new default. |
123 | * @param def the new default |
124 | **/ |
125 | void setDefault(const QString &def); |
126 | |
127 | /** |
128 | * Get one of the predefined "basic" settings. |
129 | * @param s the setting to get |
130 | * @return the value of the setting, or QString() if not |
131 | * set |
132 | **/ |
133 | QString getSetting(KEMailSettings::Setting s) const; |
134 | |
135 | /** |
136 | * Set one of the predefined "basic" settings. |
137 | * @param s the setting to set |
138 | * @param v the new value of the setting, or QString() to |
139 | * unset |
140 | **/ |
141 | void setSetting(KEMailSettings::Setting s, const QString &v); |
142 | |
143 | private: |
144 | KEMailSettingsPrivate* const p; |
145 | }; |
146 | |
147 | #endif |
148 | |