IMAP: Use useful default without destination.
* We now use the account name as destination directory. * Turns out that an empty string is written as destination which worked around the GetString() solution.
This commit is contained in:
@@ -256,7 +256,7 @@ FolderConfigWindow::FolderConfigWindow(BRect parent, const BMessage& settings)
|
||||
BWindow(BRect(0, 0, 350, 350), B_TRANSLATE("IMAP Folders"),
|
||||
B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL,
|
||||
B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS),
|
||||
fSettings(settings)
|
||||
fSettings("in", settings)
|
||||
{
|
||||
fQuotaView = new BStringView("quota view",
|
||||
B_TRANSLATE("Failed to fetch available storage."));
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
IMAPProtocol::IMAPProtocol(const BMailAccountSettings& settings)
|
||||
:
|
||||
BInboundMailProtocol(settings),
|
||||
fSettings(settings.InboundSettings()),
|
||||
fSettings(settings.Name(), settings.InboundSettings()),
|
||||
fWorkers(5, false)
|
||||
{
|
||||
BPath destination = fSettings.Destination();
|
||||
|
||||
status_t status = create_directory(destination.Path(), 0755);
|
||||
if (status != B_OK) {
|
||||
fprintf(stderr, "imap: Could not create destination directory %s: %s\n",
|
||||
fprintf(stderr, "IMAP: Could not create destination directory %s: %s\n",
|
||||
destination.Path(), strerror(status));
|
||||
}
|
||||
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
#include <crypt.h>
|
||||
|
||||
|
||||
Settings::Settings(const BMessage& archive)
|
||||
Settings::Settings(const char* accountName, const BMessage& archive)
|
||||
:
|
||||
fMessage(archive)
|
||||
fMessage(archive),
|
||||
fAccountName(accountName)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -78,7 +79,13 @@ Settings::Password() const
|
||||
BPath
|
||||
Settings::Destination() const
|
||||
{
|
||||
return BPath(fMessage.GetString("destination", "/boot/home/mail/in"));
|
||||
BPath path(fMessage.FindString("destination"));
|
||||
if (path.Path() == NULL) {
|
||||
// Use default directory
|
||||
path = "/boot/home/mail";
|
||||
path.Append(fAccountName.String());
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
|
||||
class Settings {
|
||||
public:
|
||||
Settings(const BMessage& archive);
|
||||
Settings(const char* accountName,
|
||||
const BMessage& archive);
|
||||
~Settings();
|
||||
|
||||
BNetworkAddress ServerAddress() const;
|
||||
@@ -32,6 +33,7 @@ public:
|
||||
|
||||
private:
|
||||
const BMessage fMessage;
|
||||
BString fAccountName;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user