42090 most of the work for this patch done by joshua.xia@sun.com r=naving sr=bienvenu a=asa Make cancel in

filterListDialog not remember changes.
This commit is contained in:
naving%netscape.com 2002-07-26 19:27:30 +00:00
Родитель 04913ffed8
Коммит d02931c130
7 изменённых файлов: 53 добавлений и 1 удалений

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

@ -150,6 +150,7 @@ const nsMsgBiffState nsMsgBiffState_Unknown = 2; // We dunno whether there is ne
/* function to get the filter list on folder's server */
nsIMsgFilterList getFilterList( in nsIMsgWindow msgWindow);
void setFilterList( in nsIMsgFilterList filterList);
void ForceDBClosed ();
void Delete ();

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

@ -79,6 +79,35 @@ function onOk()
window.close();
}
function onCancel()
{
var firstItem = getSelectedServerForFilters();
if (!firstItem)
firstItem = getServerThatCanHaveFilters();
if (firstItem) {
var resource = rdf.GetResource(firstItem);
var msgFolder = resource.QueryInterface(Components.interfaces.nsIMsgFolder);
if (msgFolder)
{
msgFolder.ReleaseDelegate("filter");
msgFolder.setFilterList(null);
try
{
//now find Inbox
var outNumFolders = new Object();
var inboxFolder = msgFolder.getFoldersWithFlag(0x1000, 1, outNumFolders);
inboxFolder.setFilterList(null);
}
catch(ex)
{
dump ("ex " +ex + "\n");
}
}
}
window.close();
}
function onServerClick(event)
{
var item = event.target;

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

@ -33,6 +33,7 @@ Contributor(s): Hkan Waara <hwaara@chello.se>
buttons="accept,cancel,help"
onload="onLoad();"
ondialogaccept="return onOk();"
ondialogcancel="return onCancel();"
ondialoghelp="return doHelpButton();"
width="440"
height="320"

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

@ -2536,6 +2536,18 @@ nsMsgFolder::GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **aResult)
return server->GetFilterList(aMsgWindow, aResult);
}
NS_IMETHODIMP
nsMsgFolder::SetFilterList(nsIMsgFilterList *aFilterList)
{
nsresult rv;
nsCOMPtr<nsIMsgIncomingServer> server;
rv = GetServer(getter_AddRefs(server));
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(server, NS_ERROR_FAILURE);
return server->SetFilterList(aFilterList);
}
/* void enableNotifications (in long notificationType, in boolean enable); */
NS_IMETHODIMP nsMsgFolder::EnableNotifications(PRInt32 notificationType, PRBool enable, PRBool dbBatching)
{

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

@ -106,6 +106,7 @@ public:
NS_IMETHOD GetCanFileMessages(PRBool *aCanFileMessages);
NS_IMETHOD GetCanDeleteMessages(PRBool *aCanDeleteMessages);
NS_IMETHOD GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **aFilterList);
NS_IMETHOD SetFilterList(nsIMsgFilterList *aFilterList);
NS_IMETHOD GetCanCreateSubfolders(PRBool *aCanCreateSubfolders);
NS_IMETHOD GetCanRename(PRBool *aCanRename);
NS_IMETHOD GetCanCompact(PRBool *aCanCompact);

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

@ -7017,3 +7017,10 @@ nsImapMailFolder::SetPerformingBiff(PRBool aPerformingBiff)
return NS_OK;
}
NS_IMETHODIMP
nsImapMailFolder::SetFilterList(nsIMsgFilterList *aMsgFilterList)
{
m_filterList = aMsgFilterList;
return nsMsgFolder::SetFilterList(aMsgFilterList);
}

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

@ -341,6 +341,7 @@ public:
// nsIMsgFilterHitNotification method(s)
NS_IMETHOD ApplyFilterHit(nsIMsgFilter *filter, nsIMsgWindow *msgWindow, PRBool *applyMore);
NS_IMETHOD IsCommandEnabled(const char *command, PRBool *result);
NS_IMETHOD SetFilterList(nsIMsgFilterList *aMsgFilterList);
nsresult MoveIncorporatedMessage(nsIMsgDBHdr *mailHdr,
nsIMsgDatabase *sourceDB,