Bug #312940 --> instead of using an ifdef, hijack the preview text pref to allow devs

with release builds to try out the new alert prototype.
This commit is contained in:
scott%scott-macgregor.org 2005-11-17 23:14:17 +00:00
Родитель 7616b5cb7c
Коммит 5c54e898af
1 изменённых файлов: 45 добавлений и 23 удалений

Просмотреть файл

@ -459,38 +459,60 @@ nsresult nsMessengerWinIntegration::ShowAlertMessage(const PRUnichar * aAlertTit
return NS_OK;
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
PRBool showAlert = PR_TRUE;
PRBool showAlert = PR_TRUE;
if (prefBranch)
prefBranch->GetBoolPref(SHOW_ALERT_PREF, &showAlert);
if (showAlert)
{
#if 0
nsCOMPtr<nsISupportsArray> argsArray;
rv = NS_NewISupportsArray(getter_AddRefs(argsArray));
NS_ENSURE_SUCCESS(rv, rv);
#ifdef MOZ_THUNDERBIRD
// Since the new mail notification alert isn't ready for primetype yet,
// tie it to the showPreviewText pref so testers can try it out
// in their builds...
PRBool useNewAlert = PR_FALSE;
if (prefBranch)
prefBranch->GetBoolPref("mail.showPreviewText", &useNewAlert);
// pass in the array of folders with unread messages
nsCOMPtr<nsISupportsInterfacePointer> ifptr = do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
ifptr->SetData(mFoldersWithNewMail);
ifptr->SetDataIID(&NS_GET_IID(nsISupportsArray));
argsArray->AppendElement(ifptr);
if (useNewAlert)
{
nsCOMPtr<nsISupportsArray> argsArray;
rv = NS_NewISupportsArray(getter_AddRefs(argsArray));
NS_ENSURE_SUCCESS(rv, rv);
ifptr = do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr <nsISupports> supports = do_QueryInterface(NS_STATIC_CAST(nsIMessengerOSIntegration*, this));
ifptr->SetData(supports);
ifptr->SetDataIID(&NS_GET_IID(nsIObserver));
argsArray->AppendElement(ifptr);
// pass in the array of folders with unread messages
nsCOMPtr<nsISupportsInterfacePointer> ifptr = do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
ifptr->SetData(mFoldersWithNewMail);
ifptr->SetDataIID(&NS_GET_IID(nsISupportsArray));
argsArray->AppendElement(ifptr);
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
nsCOMPtr<nsIDOMWindow> newWindow;
rv = wwatch->OpenWindow(0, ALERT_CHROME_URL, "_blank",
"chrome,dialog=yes,titlebar=no,popup=yes", argsArray,
getter_AddRefs(newWindow));
mAlertInProgress = PR_TRUE;
ifptr = do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr <nsISupports> supports = do_QueryInterface(NS_STATIC_CAST(nsIMessengerOSIntegration*, this));
ifptr->SetData(supports);
ifptr->SetDataIID(&NS_GET_IID(nsIObserver));
argsArray->AppendElement(ifptr);
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
nsCOMPtr<nsIDOMWindow> newWindow;
rv = wwatch->OpenWindow(0, ALERT_CHROME_URL, "_blank",
"chrome,dialog=yes,titlebar=no,popup=yes", argsArray,
getter_AddRefs(newWindow));
mAlertInProgress = PR_TRUE;
}
else
{
// this code will go away when the new alert service is ready to be turned on...
nsCOMPtr<nsIAlertsService> alertsService (do_GetService(NS_ALERTSERVICE_CONTRACTID, &rv));
if (NS_SUCCEEDED(rv))
{
rv = alertsService->ShowAlertNotification(NS_LITERAL_STRING(NEW_MAIL_ALERT_ICON), nsDependentString(aAlertTitle),
nsDependentString(aAlertText), PR_TRUE,
NS_ConvertASCIItoUCS2(aFolderURI), this);
mAlertInProgress = PR_TRUE;
}
}
#else
nsCOMPtr<nsIAlertsService> alertsService (do_GetService(NS_ALERTSERVICE_CONTRACTID, &rv));
if (NS_SUCCEEDED(rv))