void nsXPLookAndFeel::ColorPrefChanged (unsigned int index, const char *prefName) { nsCOMPtr<nsIPrefBranch> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID)); if (prefService) { nsXPIDLCString colorStr; nsresult rv = prefService->GetCharPref(prefName, getter_Copies(colorStr)); if (NS_SUCCEEDED(rv) && !colorStr.IsEmpty()) { nscolor thecolor; if (colorStr[0] == '#') { if (NS_SUCCEEDED(NS_HexToRGB(NS_ConvertASCIItoUTF16(Substring(colorStr, 1, colorStr.Length() - 1)), &thecolor))) { PRInt32 id = NS_PTR_TO_INT32(index); CACHE_COLOR(id, thecolor); } } else if (NS_SUCCEEDED(NS_ColorNameToRGB(NS_ConvertASCIItoUTF16(colorStr), &thecolor))) { PRInt32 id = NS_PTR_TO_INT32(index); CACHE_COLOR(id, thecolor); #ifdef DEBUG_akkana printf("====== Changed color pref %s to 0x%lx\n", prefName, thecolor); #endif } } } }
nsMsgTagService::nsMsgTagService() { m_tagPrefBranch = nullptr; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID)); if (prefService) prefService->GetBranch("mailnews.tags.", getter_AddRefs(m_tagPrefBranch)); // need to figure out how to migrate the tags only once. MigrateLabelsToTags(); RefreshKeyCache(); }
nsresult nsAbDirProperty::InitDirectoryPrefs() { if (m_DirPrefId.IsEmpty()) return NS_ERROR_NOT_INITIALIZED; nsresult rv; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS(rv, rv); nsCString realPrefId(m_DirPrefId); realPrefId.Append('.'); return prefService->GetBranch(realPrefId.get(), getter_AddRefs(m_DirectoryPrefs)); }
static gboolean gecko_prefs_set_int(const gchar *key, gint value) { nsresult rv; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS (rv, FALSE); nsCOMPtr<nsIPrefBranch> pref; rv = prefService->GetBranch("", getter_AddRefs(pref)); NS_ENSURE_SUCCESS (rv, FALSE); rv = pref->SetIntPref(key, value); return NS_SUCCEEDED (rv) != PR_FALSE; }
static nsresult gecko_utils_init_prefs(void) { nsresult rv; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS (rv, rv); nsCOMPtr<nsILocalFile> file; rv = NS_NewNativeLocalFile(nsEmbedCString(get_resource_path("default-prefs.js")), PR_TRUE, getter_AddRefs(file)); NS_ENSURE_SUCCESS (rv, rv); rv = prefService->ReadUserPrefs(file); rv |= prefService->ReadUserPrefs(nsnull); NS_ENSURE_SUCCESS (rv, rv); return rv; }
void nsXPLookAndFeel::FloatPrefChanged (nsLookAndFeelFloatPref *data) { if (data) { nsCOMPtr<nsIPrefBranch> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID)); if (prefService) { PRInt32 intpref; nsresult rv = prefService->GetIntPref(data->name, &intpref); if (NS_SUCCEEDED(rv)) { data->floatVar = (float)intpref / 100.; data->isSet = PR_TRUE; #ifdef DEBUG_akkana printf("====== Changed float pref %s to %f\n", data->name, data->floatVar); #endif } } } }
NS_IMETHODIMP nsAbMDBDirectory::Init(const char *aUri) { // We need to ensure that the m_DirPrefId is initialized properly nsDependentCString uri(aUri); if (uri.Find("MailList") != -1) m_IsMailList = true; // Mailing lists don't have their own prefs. if (m_DirPrefId.IsEmpty() && !m_IsMailList) { // Find the first ? (of the search params) if there is one. // We know we can start at the end of the moz-abmdbdirectory:// because // that's the URI we should have been passed. int32_t searchCharLocation = uri.FindChar('?', kMDBDirectoryRootLen); nsAutoCString filename; // extract the filename from the uri. if (searchCharLocation == -1) filename = Substring(uri, kMDBDirectoryRootLen); else filename = Substring(uri, kMDBDirectoryRootLen, searchCharLocation - kMDBDirectoryRootLen); // Get the pref servers and the address book directory branch nsresult rv; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIPrefBranch> prefBranch; rv = prefService->GetBranch(NS_LITERAL_CSTRING(PREF_LDAP_SERVER_TREE_NAME ".").get(), getter_AddRefs(prefBranch)); NS_ENSURE_SUCCESS(rv, rv); char** childArray; uint32_t childCount, i; int32_t dotOffset; nsCString childValue; nsDependentCString child; rv = prefBranch->GetChildList("", &childCount, &childArray); NS_ENSURE_SUCCESS(rv, rv); for (i = 0; i < childCount; ++i) { child.Assign(childArray[i]); if (StringEndsWith(child, NS_LITERAL_CSTRING(".filename"))) { if (NS_SUCCEEDED(prefBranch->GetCharPref(child.get(), getter_Copies(childValue)))) { if (childValue == filename) { dotOffset = child.RFindChar('.'); if (dotOffset != -1) { nsAutoCString prefName(StringHead(child, dotOffset)); m_DirPrefId.AssignLiteral(PREF_LDAP_SERVER_TREE_NAME "."); m_DirPrefId.Append(prefName); } } } } } NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(childCount, childArray); NS_ASSERTION(!m_DirPrefId.IsEmpty(), "Error, Could not set m_DirPrefId in nsAbMDBDirectory::Init"); } return nsAbDirProperty::Init(aUri); }
nsresult nsSmtpService::loadSmtpServers() { if (mSmtpServersLoaded) return NS_OK; nsresult rv; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); if (NS_FAILED(rv)) return rv; nsCOMPtr<nsIPrefBranch> prefRootBranch; prefService->GetBranch(nsnull, getter_AddRefs(prefRootBranch)); if (NS_FAILED(rv)) return rv; nsCString tempServerList; nsCString serverList; rv = prefRootBranch->GetCharPref(PREF_MAIL_SMTPSERVERS, getter_Copies(tempServerList)); //Get the pref in a tempServerList and then parse it to see if it has dupes. //if so remove the dupes and then create the serverList. if (!tempServerList.IsEmpty()) { // Tokenize the data and add each smtp server if it is not already there // in the user's current smtp server list nsCStringArray servers; servers.ParseString(tempServerList.get(), SERVER_DELIMITER); nsCAutoString tempSmtpServer; for (PRInt32 i = 0; i < servers.Count(); i++) { if (servers.IndexOf(* (servers[i])) == i) { tempSmtpServer.Assign(* (servers[i])); tempSmtpServer.StripWhitespace(); if (!serverList.IsEmpty()) serverList += SERVER_DELIMITER; serverList += tempSmtpServer; } } } else { serverList = tempServerList; } // We need to check if we have any pre-configured smtp servers so that // those servers can be appended to the list. nsCString appendServerList; rv = prefRootBranch->GetCharPref(PREF_MAIL_SMTPSERVERS_APPEND_SERVERS, getter_Copies(appendServerList)); // Get the list of smtp servers (either from regular pref i.e, mail.smtpservers or // from preconfigured pref mail.smtpservers.appendsmtpservers) and create a keyed // server list. if (!serverList.IsEmpty() || !appendServerList.IsEmpty()) { /** * Check to see if we need to add pre-configured smtp servers. * Following prefs are important to note in understanding the procedure here. * * 1. pref("mailnews.append_preconfig_smtpservers.version", version number); * This pref registers the current version in the user prefs file. A default value * is stored in mailnews.js file. If a given vendor needs to add more preconfigured * smtp servers, the default version number can be increased. Comparing version * number from user's prefs file and the default one from mailnews.js, we * can add new smtp servers and any other version level changes that need to be done. * * 2. pref("mail.smtpservers.appendsmtpservers", <comma separated servers list>); * This pref contains the list of pre-configured smp servers that ISP/Vendor wants to * to add to the existing servers list. */ nsCOMPtr<nsIPrefBranch> defaultsPrefBranch; rv = prefService->GetDefaultBranch(MAIL_ROOT_PREF, getter_AddRefs(defaultsPrefBranch)); NS_ENSURE_SUCCESS(rv,rv); nsCOMPtr<nsIPrefBranch> prefBranch; rv = prefService->GetBranch(MAIL_ROOT_PREF, getter_AddRefs(prefBranch)); NS_ENSURE_SUCCESS(rv,rv); PRInt32 appendSmtpServersCurrentVersion = 0; PRInt32 appendSmtpServersDefaultVersion = 0; rv = prefBranch->GetIntPref(APPEND_SERVERS_VERSION_PREF_NAME, &appendSmtpServersCurrentVersion); NS_ENSURE_SUCCESS(rv,rv); rv = defaultsPrefBranch->GetIntPref(APPEND_SERVERS_VERSION_PREF_NAME, &appendSmtpServersDefaultVersion); NS_ENSURE_SUCCESS(rv,rv); // Update the smtp server list if needed if ((appendSmtpServersCurrentVersion <= appendSmtpServersDefaultVersion)) { // If there are pre-configured servers, add them to the existing server list if (!appendServerList.IsEmpty()) { if (!serverList.IsEmpty()) { nsCStringArray existingSmtpServersArray; existingSmtpServersArray.ParseString(serverList.get(), SERVER_DELIMITER); // Tokenize the data and add each smtp server if it is not already there // in the user's current smtp server list char *newSmtpServerStr = appendServerList.BeginWriting(); char *token = NS_strtok(SERVER_DELIMITER, &newSmtpServerStr); nsCAutoString newSmtpServer; while (token) { if (token && *token) { newSmtpServer.Assign(token); newSmtpServer.StripWhitespace(); if (existingSmtpServersArray.IndexOf(newSmtpServer) == -1) { serverList += ","; serverList += newSmtpServer; } } token = NS_strtok(SERVER_DELIMITER, &newSmtpServerStr); } } else { serverList = appendServerList; } // Increase the version number so that updates will happen as and when needed rv = prefBranch->SetIntPref(APPEND_SERVERS_VERSION_PREF_NAME, appendSmtpServersCurrentVersion + 1); } } char *newStr = serverList.BeginWriting(); char *pref = NS_strtok(", ", &newStr); while (pref) { // fix for bug #96207 // code above makes sure that no duplicate entries in mail.smtpservers find // their way to the mSmtpServers list. But it doesn't check, if a server to be // added already is in mSmtpServers. That can happen in mail has been sent before // opening the settings (loading the list). // use GetServerByKey to check if the key (pref) is already in // in the list. If not it calls createKeyedServer directly. nsCOMPtr<nsISmtpServer> server; rv = GetServerByKey(pref, getter_AddRefs(server)); NS_ASSERTION(NS_SUCCEEDED(rv), "GetServerByKey failed"); pref = NS_strtok(", ", &newStr); } } saveKeyList(); mSmtpServersLoaded = PR_TRUE; return NS_OK; }
nsresult nsSmtpService::loadSmtpServers() { if (mSmtpServersLoaded) return NS_OK; nsresult rv; nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); if (NS_FAILED(rv)) return rv; nsCOMPtr<nsIPrefBranch> prefRootBranch; prefService->GetBranch(nullptr, getter_AddRefs(prefRootBranch)); if (NS_FAILED(rv)) return rv; nsCString serverList; rv = prefRootBranch->GetCharPref(PREF_MAIL_SMTPSERVERS, getter_Copies(serverList)); serverList.StripWhitespace(); nsTArray<nsCString> servers; ParseString(serverList, SERVER_DELIMITER, servers); /** * Check to see if we need to add pre-configured smtp servers. * Following prefs are important to note in understanding the procedure here. * * 1. pref("mailnews.append_preconfig_smtpservers.version", version number); * This pref registers the current version in the user prefs file. A default value * is stored in mailnews.js file. If a given vendor needs to add more preconfigured * smtp servers, the default version number can be increased. Comparing version * number from user's prefs file and the default one from mailnews.js, we * can add new smtp servers and any other version level changes that need to be done. * * 2. pref("mail.smtpservers.appendsmtpservers", <comma separated servers list>); * This pref contains the list of pre-configured smp servers that ISP/Vendor wants to * to add to the existing servers list. */ nsCOMPtr<nsIPrefBranch> defaultsPrefBranch; rv = prefService->GetDefaultBranch(MAIL_ROOT_PREF, getter_AddRefs(defaultsPrefBranch)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIPrefBranch> prefBranch; rv = prefService->GetBranch(MAIL_ROOT_PREF, getter_AddRefs(prefBranch)); NS_ENSURE_SUCCESS(rv,rv); int32_t appendSmtpServersCurrentVersion = 0; int32_t appendSmtpServersDefaultVersion = 0; rv = prefBranch->GetIntPref(APPEND_SERVERS_VERSION_PREF_NAME, &appendSmtpServersCurrentVersion); NS_ENSURE_SUCCESS(rv,rv); rv = defaultsPrefBranch->GetIntPref(APPEND_SERVERS_VERSION_PREF_NAME, &appendSmtpServersDefaultVersion); NS_ENSURE_SUCCESS(rv,rv); // Update the smtp server list if needed if (appendSmtpServersCurrentVersion <= appendSmtpServersDefaultVersion) { // If there are pre-configured servers, add them to the existing server list nsCString appendServerList; rv = prefRootBranch->GetCharPref(PREF_MAIL_SMTPSERVERS_APPEND_SERVERS, getter_Copies(appendServerList)); appendServerList.StripWhitespace(); ParseString(appendServerList, SERVER_DELIMITER, servers); // Increase the version number so that updates will happen as and when needed prefBranch->SetIntPref(APPEND_SERVERS_VERSION_PREF_NAME, appendSmtpServersCurrentVersion + 1); } // use GetServerByKey to check if the key (pref) is already in // in the list. If not it calls createKeyedServer directly. for (uint32_t i = 0; i < servers.Length(); i++) { nsCOMPtr<nsISmtpServer> server; GetServerByKey(servers[i].get(), getter_AddRefs(server)); } saveKeyList(); mSmtpServersLoaded = true; return NS_OK; }
extern "C" gboolean gecko_init (void) { d("gecko_init()\n"); nsresult rv; #ifdef HAVE_GECKO_1_9 NS_LogInit (); #endif #ifdef XPCOM_GLUE static const GREVersionRange greVersion = { "1.9a", PR_TRUE, "2.0", PR_TRUE, }; char xpcomLocation[4096]; d("init XPCOM_GLUE\n"); rv = GRE_GetGREPathWithProperties( &greVersion, 1, nsnull, 0, xpcomLocation, 4096); if (NS_FAILED (rv)) { g_warning ("Could not determine locale!\n"); return FALSE; } // Startup the XPCOM Glue that links us up with XPCOM. rv = XPCOMGlueStartup(xpcomLocation); if (NS_FAILED (rv)) { g_warning ("Could not determine locale!\n"); return FALSE; } rv = GTKEmbedGlueStartup(); if (NS_FAILED (rv)) { g_warning ("Could not startup glue!\n"); return FALSE; } rv = GTKEmbedGlueStartupInternal(); if (NS_FAILED (rv)) { g_warning ("Could not startup internal glue!\n"); return FALSE; } char *lastSlash = strrchr(xpcomLocation, '/'); if (lastSlash) *lastSlash = '\0'; gtk_moz_embed_set_path(xpcomLocation); #else d(g_print("doing old gecko init\n")); #ifdef HAVE_GECKO_1_9 gtk_moz_embed_set_path (GECKO_HOME); #else gtk_moz_embed_set_comp_path (GECKO_HOME); #endif d("end gecko init()\n"); #endif /* XPCOM_GLUE */ d("load gecko prefs\n"); gchar *profile_dir = g_build_filename ( g_get_home_dir (), ".evolution", "mail", "rss", NULL); gtk_moz_embed_set_profile_path (profile_dir, "mozembed-rss"); g_free (profile_dir); d("embed push startup()\n"); gtk_moz_embed_push_startup (); nsCOMPtr<nsIPrefService> prefService ( do_GetService (NS_PREFSERVICE_CONTRACTID, &rv)); NS_ENSURE_SUCCESS (rv, FALSE); rv = CallQueryInterface (prefService, &gPrefBranch); NS_ENSURE_SUCCESS (rv, FALSE); d("finished all gecko init\n"); return TRUE; }