9#include "calendarsupport_debug.h"
10#include "identitymanager.h"
12#include <Akonadi/TagAttribute>
13#include <Akonadi/TagCache>
14#include <Akonadi/TagModifyJob>
16#include <KMime/HeaderParsing>
18#include <KEmailAddress>
19#include <KIdentityManagementCore/Identity>
21#include <KEMailSettings>
23using namespace CalendarSupport;
25Q_GLOBAL_STATIC(KCalPrefs, globalPrefs)
27class CalendarSupport::KCalPrefsPrivate
31 : mDefaultCategoryColor(QColor(151, 235, 121))
35 ~KCalPrefsPrivate() =
default;
39 const QColor mDefaultCategoryColor;
44 : d(new KCalPrefsPrivate())
49KCalPrefs::~KCalPrefs() =
default;
51KCalPrefs *KCalPrefs::instance()
53 static bool firstCall =
true;
63void KCalPrefs::usrSetDefaults()
68 KEMailSettings settings;
69 QString tmp = settings.
getSetting(KEMailSettings::RealName);
73 tmp = settings.
getSetting(KEMailSettings::EmailAddress);
84 return d->mDefaultCalendarId;
89 d->mDefaultCalendarId = id;
92void KCalPrefs::fillMailDefaults()
94 userEmailItem()->swapDefault();
95 QString defEmail = userEmailItem()->value();
96 userEmailItem()->swapDefault();
98 if (userEmail() == defEmail) {
100 KEMailSettings settings;
102 mEmailControlCenter =
true;
107void KCalPrefs::usrRead()
109 KConfigGroup generalConfig(config(), QStringLiteral(
"General"));
111 KConfigGroup defaultCalendarConfig(config(), QStringLiteral(
"Calendar"));
112 d->mDefaultCalendarId = defaultCalendarConfig.readEntry(
"Default Calendar", -1);
115 config()->setGroup(
"FreeBusy");
116 if (mRememberRetrievePw) {
126bool KCalPrefs::usrSave()
128 KConfigGroup generalConfig(config(), QStringLiteral(
"General"));
131 if (mRememberRetrievePw) {
132 config()->writeEntry(
"Retrieve Server Password",
135 config()->deleteEntry(
"Retrieve Server Password");
139 KConfigGroup defaultCalendarConfig(config(), QStringLiteral(
"Calendar"));
140 defaultCalendarConfig.writeEntry(
"Default Calendar", defaultCalendarId());
145QString KCalPrefs::fullName()
148 if (mEmailControlCenter) {
149 KEMailSettings settings;
150 tusername = settings.
getSetting(KEMailSettings::RealName);
152 tusername = userName();
166QString KCalPrefs::email()
168 if (mEmailControlCenter) {
169 KEMailSettings settings;
170 return settings.
getSetting(KEMailSettings::EmailAddress);
176QStringList KCalPrefs::allEmails()
179 QStringList lst = CalendarSupport::identityManager()->
allEmails();
181 lst += mAdditionalMails;
189QStringList KCalPrefs::fullEmails()
191 QStringList fullEmails;
194 KIdentityManagementCore::IdentityManager *idmanager = CalendarSupport::identityManager();
197 fullEmails.
reserve(1 + mAdditionalMails.count() + lst.
count());
199 fullEmails << QStringLiteral(
"%1 <%2>").arg(fullName(), email());
202 KIdentityManagementCore::IdentityManager::ConstIterator it1;
203 KIdentityManagementCore::IdentityManager::ConstIterator end1(idmanager->end());
204 for (it1 = idmanager->begin(); it1 != end1; ++it1) {
205 fullEmails << (*it1).fullEmailAddr();
208 lst = mAdditionalMails;
209 for (it = lst.
begin(); it != lst.
end(); ++it) {
210 fullEmails << QStringLiteral(
"%1 <%2>").arg(fullName(), *it);
217bool KCalPrefs::thatIsMe(
const QString &_email)
234 const QByteArray tmp = _email.
toUtf8();
237 KMime::Types::Mailbox mbox;
238 KMime::HeaderParsing::parseMailbox(cursor, end, mbox);
239 const QString email = mbox.addrSpec().asString();
241 if (this->email() == email) {
245 CalendarSupport::IdentityManager::ConstIterator it;
246 CalendarSupport::IdentityManager::ConstIterator endId(CalendarSupport::identityManager()->
end());
247 for (it = CalendarSupport::identityManager()->
begin(); it != endId; ++it) {
248 if ((*it).matchesEmailAddress(email)) {
253 if (mAdditionalMails.contains(email)) {
260void KCalPrefs::setDayBegins(
const QDateTime &dateTime)
262 d->mDayBegins = dateTime;
265QDateTime KCalPrefs::dayBegins()
const
267 return d->mDayBegins;
270#include "moc_kcalprefs.cpp"
static TagCache * instance()
virtual void usrSetDefaults()
QString getSetting(KEMailSettings::Setting s) const
QStringList allEmails() const
QStringList identities() const
const QList< QKeySequence > & begin()
const QList< QKeySequence > & end()
KCOREADDONS_EXPORT QString obscure(const QString &str)
const char * constData() const const
qsizetype length() const const
qsizetype count() const const
void reserve(qsizetype size)
bool isEmpty() const const
QByteArray toUtf8() const const