Moved charset folder UI into folder property dialog. bug 65018, r=sspitzer, sr=bienvenu.

This commit is contained in:
nhotta%netscape.com 2001-01-22 21:48:21 +00:00
parent b62b903001
commit 135ae1c799
8 changed files with 67 additions and 201 deletions

View File

@ -1,72 +0,0 @@
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code, released
* March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
* Rights Reserved.
*
*/
var dialog;
function onLoad()
{
var arguments = window.arguments[0];
dialog = {
OKButton: document.getElementById("ok"),
okCallback: arguments.okCallback
};
// set override checkbox
document.getElementById("folderCharsetOverride").checked = arguments.folderCharsetOverride;
// dump("folderCharsetOverride " + arguments.folderCharsetOverride + "\n");
// get charset title (i.e. localized name), needed in order to set value for the menu
var ccm = Components.classes['@mozilla.org/charset-converter-manager;1'];
ccm = ccm.getService();
ccm = ccm.QueryInterface(Components.interfaces.nsICharsetConverterManager2);
// get a localized string
var charsetTitle = ccm.GetCharsetTitle(ccm.GetCharsetAtom(arguments.folderCharset));
// select the menu item
var folderCharsetList = document.getElementById("folderCharsetList");
folderCharsetList.setAttribute("value", charsetTitle);
folderCharsetList.setAttribute("data", arguments.folderCharset);
// dump("folderCharset " + arguments.folderCharset + "\n");
// pre select the folderPicker, based on what they selected in the folder pane
dialog.preselectedFolderURI = arguments.preselectedURI;
doSetOKCancel(onOK, onCancel);
}
function onOK()
{
var folderCharsetList = document.getElementById("folderCharsetList");
var characterSet = folderCharsetList.getAttribute("data");
dialog.okCallback(document.getElementById("folderCharsetOverride").checked,
characterSet, dialog.preselectedFolderURI);
return true;
}
function onCancel()
{
// close the window
return true;
}

View File

@ -1,64 +0,0 @@
<?xml version="1.0"?> <!-- -*- Mode: xml; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- -->
<!--
- The contents of this file are subject to the Netscape Public
- License Version 1.1 (the "License"); you may not use this file
- except in compliance with the License. You may obtain a copy of
- the License at http://www.mozilla.org/NPL/
-
- Software distributed under the License is distributed on an "AS
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
-
- The Original Code is Mozilla Communicator client code, released
- March 31, 1998.
-
- The Initial Developer of the Original Code is Netscape
- Communications Corporation. Portions created by Netscape are
- Copyright (C) 1998-1999 Netscape Communications Corporation. All
- Rights Reserved.
-
-->
<?xml-stylesheet href="chrome://messenger/skin/messenger.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<?xul-overlay href="chrome://messenger/content/msgFolderPickerOverlay.xul"?>
<!DOCTYPE window SYSTEM "chrome://messenger/locale/folderCharsetDialog.dtd">
<window xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="&folderCharsetDialog.title;"
align="vertical"
class="dialog"
onload="onLoad();">
<script type="text/javascript" src="chrome://global/content/strres.js"/>
<script type="text/javascript" src="chrome://messenger/content/mailCommands.js"/>
<script type="text/javascript" src="chrome://messenger/content/folderCharsetDialog.js"/>
<keyset id="keyset"/>
<box align="vertical">
<spring flex="100%"/>
<text value="&folderCharset.label;" class="label" for="folderCharsetList"/>
<menulist id="folderCharsetList" ref="NC:DecodersRoot" datasources="rdf:charset-menu">
<template>
<menupopup>
<menuitem value="rdf:http://home.netscape.com/NC-rdf#Name" data="..." uri="..."/>
</menupopup>
</template>
</menulist>
<checkbox id="folderCharsetOverride" value="&folderCharsetOverride.label;" />
<spring flex="100%"/>
<box id="okCancelButtons"/>
</box>
</window>

View File

@ -13,6 +13,11 @@ function folderPropsOKButtonCallback()
gMsgFolder.setFlag(0x8000000);
else
gMsgFolder.clearFlag(0x8000000);
// set charset attributes
var folderCharsetList = document.getElementById("folderCharsetList");
gMsgFolder.charset = folderCharsetList.getAttribute("data");
gMsgFolder.charsetOverride = document.getElementById("folderCharsetOverride").checked;
}
window.close();
}
@ -65,7 +70,36 @@ function folderPropsOnLoad()
if (!gMsgFolder)
dump("no gMsgFolder preselectfolder uri = "+preselectedFolderURI+'\n');
if (gMsgFolder && (gMsgFolder.flags & 0x8000000))
document.getElementById("selectForDownload").checked = true;
if (gMsgFolder) {
if (gMsgFolder.flags & 0x8000000) {
document.getElementById("selectForDownload").checked = true;
}
// get charset title (i.e. localized name), needed in order to set value for the menu
var ccm = Components.classes['@mozilla.org/charset-converter-manager;1'];
ccm = ccm.getService();
ccm = ccm.QueryInterface(Components.interfaces.nsICharsetConverterManager2);
// get a localized string
var charsetTitle = ccm.GetCharsetTitle(ccm.GetCharsetAtom(gMsgFolder.charset));
// select the menu item
var folderCharsetList = document.getElementById("folderCharsetList");
folderCharsetList.setAttribute("value", charsetTitle);
folderCharsetList.setAttribute("data", gMsgFolder.charset);
// set override checkbox
document.getElementById("folderCharsetOverride").checked = gMsgFolder.charsetOverride;
}
// select the initial tab
if (window.arguments[0].tabID) {
// set index for starting panel on the <tabpanel> element
var folderPropTabPanel = document.getElementById("folderPropTabPanel");
folderPropTabPanel.setAttribute("index", window.arguments[0].tabIndex);
var tab = document.getElementById(window.arguments[0].tabID);
tab.setAttribute("selected", "true");
tab = document.getElementById("GeneralTab");
tab.setAttribute("selected", "false");
}
}

View File

@ -43,10 +43,11 @@
<tabcontrol orient="vertical">
<tabbox>
<tab value="&generalInfo.label;" accesskey="&generalInfo.accesskey;"/>
<tab id="GeneralTab" value="&generalInfo.label;" accesskey="&generalInfo.accesskey;"/>
<tab id="DownloadTab" value="&download.label;" accesskey="&download.accesskey;"/>
<tab id="folderCharsetTab" value="&folderCharsetTab.label;" accesskey="&folderCharsetTab.accesskey;"/>
</tabbox>
<tabpanel>
<tabpanel id="folderPropTabPanel">
<box orient="vertical">
<box id="nameBox" orient="vertical">
<text class="label" value="&folderProps.name.label;" />
@ -62,6 +63,18 @@
<checkbox id="selectForDownload" value="&download.check.label;" />
</titledbox>
</titledbox>
<box orient="vertical">
<menulist id="folderCharsetList" ref="NC:DecodersRoot" datasources="rdf:charset-menu">
<template>
<menupopup>
<menuitem value="rdf:http://home.netscape.com/NC-rdf#Name" data="..." uri="..."/>
</menupopup>
</template>
</menulist>
<checkbox id="folderCharsetOverride" value="&folderCharsetOverride.label;" />
</box>
</tabpanel>
</tabcontrol>

View File

@ -243,9 +243,10 @@ function MsgFolderProperties()
var dialog = window.openDialog(
"chrome://messenger/content/imapFolderProps.xul",
"",
"chrome,titlebar,modal",
{preselectedURI:preselectedURI, title:windowTitle,
okCallback:FolderProperties, name:name});
"chrome,centerscreen,titlebar,modal",
{preselectedURI:preselectedURI, title:windowTitle,
okCallback:FolderProperties,
tabID:"", tabIndex:0, name:name});
}
function FolderProperties(name, uri)
@ -313,36 +314,14 @@ function LastToClose()
function MsgSetFolderCharset()
{
var preselectedURI = GetSelectedFolderURI();
var selectedFolder = GetResourceFromUri(preselectedURI);
var msgFolder = selectedFolder.QueryInterface(Components.interfaces.nsIMsgFolder);
// dump("preselectedURI = " + preselectedURI + "\n");
var dialog = window.openDialog(
"chrome://messenger/content/folderCharsetDialog.xul",
"",
"chrome,centerscreen,titlebar,modal",
{preselectedURI: preselectedURI,
okCallback: SetFolderCharset,
folderCharset: msgFolder.charset,
folderCharsetOverride: msgFolder.charsetOverride});
}
function SetFolderCharset(override, charset, uri)
{
// dump("uri,charset,override = " + uri + "," + charset + "," + override + "\n");
var folderTree = GetFolderTree();
if (folderTree) {
if (uri && charset) {
var selectedFolder = GetResourceFromUri(uri);
var msgFolder = selectedFolder.QueryInterface(Components.interfaces.nsIMsgFolder);
if (msgFolder) {
msgFolder.charset = charset;
msgFolder.charsetOverride = override;
}
ClearThreadPane();
ClearMessagePane();
folderTree.clearItemSelection();
}
}
var name = GetFolderNameFromUri(preselectedURI, folderTree);
var windowTitle = Bundle.GetStringFromName("folderProperties");
var dialog = window.openDialog(
"chrome://messenger/content/imapFolderProps.xul",
"",
"chrome,centerscreen,titlebar,modal",
{preselectedURI:preselectedURI, title:windowTitle,
okCallback:FolderProperties,
tabID:"folderCharsetTab", tabIndex:2, name:name});
}

View File

@ -1,24 +0,0 @@
<!--
- The contents of this file are subject to the Netscape Public
- License Version 1.1 (the "License"); you may not use this file
- except in compliance with the License. You may obtain a copy of
- the License at http://www.mozilla.org/NPL/
-
- Software distributed under the License is distributed on an "AS
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
-
- The Original Code is Mozilla Communicator client code, released
- March 31, 1998.
-
- The Initial Developer of the Original Code is Netscape
- Communications Corporation. Portions created by Netscape are
- Copyright (C) 1998-1999 Netscape Communications Corporation. All
- Rights Reserved.
-
-->
<!ENTITY folderCharsetDialog.title "Folder Character Coding">
<!ENTITY folderCharset.label "Select a character coding for your folder:">
<!ENTITY folderCharsetOverride.label "Apply default to all messages (ignore charset specified by MIME header)">

View File

@ -26,6 +26,9 @@
<!ENTITY download.label "Download">
<!ENTITY download.accesskey "d">
<!ENTITY download.check.label "Select this folder for download">
<!ENTITY folderCharsetTab.label "Character coding">
<!ENTITY folderCharsetOverride.label "Apply default to all messages (ignore charset specified by MIME header)">
<!ENTITY folderCharsetTab.accesskey "c">
<!ENTITY folderProps.information.label "Information:">
<!ENTITY folderProps.name.label "Name:">

View File

@ -104,8 +104,6 @@ messenger.jar:
content/messenger/msgFolderPickerOverlay.xul (base/resources/content/msgFolderPickerOverlay.xul)
content/messenger/renameFolderDialog.xul (base/resources/content/renameFolderDialog.xul)
content/messenger/renameFolderDialog.js (base/resources/content/renameFolderDialog.js)
content/messenger/folderCharsetDialog.xul (base/resources/content/folderCharsetDialog.xul)
content/messenger/folderCharsetDialog.js (base/resources/content/folderCharsetDialog.js)
content/messenger/messengerdnd.js (base/resources/content/messengerdnd.js)
content/messenger/mailContextMenus.js (base/resources/content/mailContextMenus.js)
content/messenger/msgPrintEngine.js (base/resources/content/msgPrintEngine.js)
@ -178,7 +176,6 @@ en-US.jar:
locale/en-US/messenger/folderpane.dtd (base/resources/locale/en-US/folderpane.dtd)
locale/en-US/messenger/newFolderDialog.dtd (base/resources/locale/en-US/newFolderDialog.dtd)
locale/en-US/messenger/renameFolderDialog.dtd (base/resources/locale/en-US/renameFolderDialog.dtd)
locale/en-US/messenger/folderCharsetDialog.dtd (base/resources/locale/en-US/folderCharsetDialog.dtd)
locale/en-US/messenger/folderProps.dtd (base/resources/locale/en-US/folderProps.dtd)
locale/en-US/messenger/subscribe.dtd (base/resources/locale/en-US/subscribe.dtd)
locale/en-US/messenger/subscribe.properties (base/resources/locale/en-US/subscribe.properties)