diff options
Diffstat (limited to 'comm/mailnews/local/src/nsNoneService.cpp')
-rw-r--r-- | comm/mailnews/local/src/nsNoneService.cpp | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/comm/mailnews/local/src/nsNoneService.cpp b/comm/mailnews/local/src/nsNoneService.cpp new file mode 100644 index 0000000000..74b03dc93e --- /dev/null +++ b/comm/mailnews/local/src/nsNoneService.cpp @@ -0,0 +1,147 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "msgCore.h" // precompiled header... + +#include "nsNoneService.h" +#include "nsINoIncomingServer.h" +#include "nsINoneService.h" +#include "nsIMsgProtocolInfo.h" + +#include "nsIFile.h" +#include "nsCOMPtr.h" +#include "nsMsgUtils.h" + +#include "nsMailDirServiceDefs.h" + +#define PREF_MAIL_ROOT_NONE_REL "mail.root.none-rel" +// old - for backward compatibility only +#define PREF_MAIL_ROOT_NONE "mail.root.none" + +nsNoneService::nsNoneService() {} + +nsNoneService::~nsNoneService() {} + +NS_IMPL_ISUPPORTS(nsNoneService, nsINoneService, nsIMsgProtocolInfo) + +NS_IMETHODIMP +nsNoneService::SetDefaultLocalPath(nsIFile* aPath) { + NS_ENSURE_ARG(aPath); + return NS_SetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, + aPath); +} + +NS_IMETHODIMP +nsNoneService::GetDefaultLocalPath(nsIFile** aResult) { + NS_ENSURE_ARG_POINTER(aResult); + *aResult = nullptr; + + bool havePref; + nsCOMPtr<nsIFile> localFile; + nsresult rv = NS_GetPersistentFile(PREF_MAIL_ROOT_NONE_REL, + PREF_MAIL_ROOT_NONE, NS_APP_MAIL_50_DIR, + havePref, getter_AddRefs(localFile)); + if (NS_FAILED(rv)) return rv; + + bool exists; + rv = localFile->Exists(&exists); + if (NS_SUCCEEDED(rv) && !exists) + rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775); + if (NS_FAILED(rv)) return rv; + + if (!havePref || !exists) { + rv = NS_SetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, + localFile); + NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref."); + } + + localFile.forget(aResult); + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetServerIID(nsIID** aServerIID) { + *aServerIID = new nsIID(NS_GET_IID(nsINoIncomingServer)); + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetRequiresUsername(bool* aRequiresUsername) { + NS_ENSURE_ARG_POINTER(aRequiresUsername); + *aRequiresUsername = true; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetPreflightPrettyNameWithEmailAddress( + bool* aPreflightPrettyNameWithEmailAddress) { + NS_ENSURE_ARG_POINTER(aPreflightPrettyNameWithEmailAddress); + *aPreflightPrettyNameWithEmailAddress = true; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetCanLoginAtStartUp(bool* aCanLoginAtStartUp) { + NS_ENSURE_ARG_POINTER(aCanLoginAtStartUp); + *aCanLoginAtStartUp = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetCanDelete(bool* aCanDelete) { + NS_ENSURE_ARG_POINTER(aCanDelete); + *aCanDelete = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetCanDuplicate(bool* aCanDuplicate) { + NS_ENSURE_ARG_POINTER(aCanDuplicate); + *aCanDuplicate = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetCanGetMessages(bool* aCanGetMessages) { + NS_ENSURE_ARG_POINTER(aCanGetMessages); + *aCanGetMessages = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetCanGetIncomingMessages(bool* aCanGetIncomingMessages) { + NS_ENSURE_ARG_POINTER(aCanGetIncomingMessages); + *aCanGetIncomingMessages = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetDefaultDoBiff(bool* aDoBiff) { + NS_ENSURE_ARG_POINTER(aDoBiff); + // by default, don't do biff for "none" servers + *aDoBiff = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetDefaultServerPort(bool isSecure, int32_t* aDefaultPort) { + NS_ENSURE_ARG_POINTER(aDefaultPort); + *aDefaultPort = -1; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetShowComposeMsgLink(bool* showComposeMsgLink) { + NS_ENSURE_ARG_POINTER(showComposeMsgLink); + *showComposeMsgLink = false; + return NS_OK; +} + +NS_IMETHODIMP +nsNoneService::GetFoldersCreatedAsync(bool* aAsyncCreation) { + NS_ENSURE_ARG_POINTER(aAsyncCreation); + *aAsyncCreation = false; + return NS_OK; +} |