Commit 4ab1f206 authored by Igor Poboiko's avatar Igor Poboiko

[resources/maildir] Reload configuraton on configuration change

Summary:
When user adds new maildir, a new resource gets created, with the default
directory `~/.local/share/local-mail`. Since it's a new resource, with no
proper configuration, an `attemptConfigRestoring()` is called, which changes
it to `~/.local/share/akonadi_maildir_resource#`. It's stored inside
`mSettings->path()`.

Then a dialog appears, where user can choose prefered directory. It gets
written to the config file; then `configurationChanged` gets called.
We call `mSettings->save()`, which overwrites the path provided by user with
the default one (`~/.local/share/akonadi_maildir_resource#`), making it
impossible to create a new maildir anywhere else.

Just use `load()` instead, it makes more sense when configuration was changed.

BUG: 416287
CCBUG: 415245
CCBUG: 415922

Test Plan:
1) Create a new maildir resource pointing to `/tmp/dummy`.
2) The resource gets created, with the name `dummy`. `/tmp/dummy` gets created.
2) Drop some mails into it via KMail. Mails appear inside `/tmp/dummy`

Reviewers: dvratil, mlaurent

Reviewed By: dvratil

Subscribers: wbauer, kde-pim

Tags: #kde_pim

Differential Revision: https://phabricator.kde.org/D27905
parent c5f80733
......@@ -188,6 +188,7 @@ void MaildirResource::attemptConfigRestoring(KJob *job)
mSettings->setTopLevelIsContainer(root.isValid());
}
qCDebug(MAILDIRRESOURCE_LOG) << "synchronize";
mSettings->save();
configurationChanged();
}
}
......@@ -242,7 +243,7 @@ QString MaildirResource::itemMimeType() const
void MaildirResource::configurationChanged()
{
mSettings->save();
mSettings->load();
bool configValid = ensureSaneConfiguration();
configValid = configValid && ensureDirExists();
if (configValid) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment