Bug 255834 - port Thunderbird RSS/Atom reader to SeaMonkey

r=neil sr=bienvenu

--HG--
rename : mail/extensions/newsblog/Makefile.in => mailnews/extensions/newsblog/Makefile.in
rename : mail/extensions/newsblog/content/Feed.js => mailnews/extensions/newsblog/content/Feed.js
rename : mail/extensions/newsblog/content/FeedItem.js => mailnews/extensions/newsblog/content/FeedItem.js
rename : mail/extensions/newsblog/content/am-newsblog.js => mailnews/extensions/newsblog/content/am-newsblog.js
rename : mail/extensions/newsblog/content/am-newsblog.xul => mailnews/extensions/newsblog/content/am-newsblog.xul
rename : mail/extensions/newsblog/content/debug-utils.js => mailnews/extensions/newsblog/content/debug-utils.js
rename : mail/extensions/newsblog/content/edittree.xml => mailnews/extensions/newsblog/content/edittree.xml
rename : mail/extensions/newsblog/content/feed-parser.js => mailnews/extensions/newsblog/content/feed-parser.js
rename : mail/extensions/newsblog/content/feed-properties.js => mailnews/extensions/newsblog/content/feed-properties.js
rename : mail/extensions/newsblog/content/feed-properties.xul => mailnews/extensions/newsblog/content/feed-properties.xul
rename : mail/extensions/newsblog/content/feed-subscriptions.js => mailnews/extensions/newsblog/content/feed-subscriptions.js
rename : mail/extensions/newsblog/content/feed-subscriptions.xul => mailnews/extensions/newsblog/content/feed-subscriptions.xul
rename : mail/extensions/newsblog/content/file-utils.js => mailnews/extensions/newsblog/content/file-utils.js
rename : mail/extensions/newsblog/content/toolbar-icon.xul => mailnews/extensions/newsblog/content/newsblogOverlay.js
rename : mail/extensions/newsblog/content/utils.js => mailnews/extensions/newsblog/content/utils.js
rename : mail/extensions/newsblog/jar.mn => mailnews/extensions/newsblog/jar.mn
rename : mail/extensions/newsblog/js/newsblog.js => mailnews/extensions/newsblog/js/newsblog.js
rename : mail/extensions/newsblog/rss.rdf => mailnews/extensions/newsblog/rss.rdf
rename : mail/locales/en-US/chrome/messenger-newsblog/am-newsblog.dtd => suite/locales/en-US/chrome/mailnews/newsblog/am-newsblog.dtd
rename : mail/locales/en-US/chrome/messenger-newsblog/am-newsblog.properties => suite/locales/en-US/chrome/mailnews/newsblog/am-newsblog.properties
rename : mail/locales/en-US/chrome/messenger-newsblog/feed-properties.dtd => suite/locales/en-US/chrome/mailnews/newsblog/feed-properties.dtd
rename : mail/locales/en-US/chrome/messenger-newsblog/feed-subscriptions.dtd => suite/locales/en-US/chrome/mailnews/newsblog/feed-subscriptions.dtd
rename : mail/locales/en-US/chrome/messenger-newsblog/newsblog.properties => suite/locales/en-US/chrome/mailnews/newsblog/newsblog.properties
rename : mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css => suite/themes/classic/messenger/newsblog/feed-subscriptions.css
rename : mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css => suite/themes/modern/messenger/newsblog/feed-subscriptions.css
This commit is contained in:
Ian Neal 2008-11-04 17:42:25 +00:00
Родитель a5924ed428
Коммит 2f2c08be7b
75 изменённых файлов: 622 добавлений и 309 удалений

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

@ -255,10 +255,8 @@ function ComposeMessage(type, format, folder, messageArray)
var hdr = messenger.msgHdrFromURI(messageUri);
identity = getIdentityForHeader(hdr, type);
var messageID = hdr.messageId;
var messageIDScheme = messageID ? messageID.split(":")[0] : "";
if (messageIDScheme && (messageIDScheme == 'http' || messageIDScheme == 'https') && "openComposeWindowForRSSArticle" in this)
openComposeWindowForRSSArticle(messageID, hdr, type);
if (/^https?:/.test(hdr.messageId))
openComposeWindowForRSSArticle(hdr, type);
else if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
type == msgComposeType.ReplyToList ||

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

@ -507,10 +507,15 @@ function fillFolderPaneContextMenu()
var isServer = folder.isServer;
var serverType = folder.server.type;
var specialFolder = getSpecialFolderString(folder);
var canSubscribeToFolder = (serverType == "nntp") || (serverType == "imap");
var canSubscribeToFolder = (serverType == "nntp") ||
(serverType == "imap") ||
(serverType == "rss");
var isNewsgroup = !isServer && serverType == 'nntp';
var isMailFolder = !isServer && serverType != 'nntp';
var canGetMessages = (isServer && serverType != "none") || isNewsgroup || (serverType == "rss");
var canGetMessages =
(isServer && (serverType != "nntp") && (serverType != "none")) ||
isNewsgroup ||
((serverType == "rss") && (specialFolder != 'Trash'));
if (!isServer)
{
@ -545,11 +550,7 @@ function fillFolderPaneContextMenu()
EnableMenuItem("folderPaneContext-sendUnsentMessages", IsSendUnsentMsgsEnabled(folder));
ShowMenuItem("folderPaneContext-subscribe", (numSelected <= 1) && canSubscribeToFolder && !isVirtualFolder);
EnableMenuItem("folderPaneContext-subscribe", !isVirtualFolder);
// XXX: Hack for RSS servers...
ShowMenuItem("folderPaneContext-rssSubscribe", (numSelected <= 1) && (serverType == "rss"));
EnableMenuItem("folderPaneContext-rssSubscribe", true);
EnableMenuItem("folderPaneContext-subscribe", true);
// News folder context menu =============================================
ShowMenuItem("folderPaneContext-newsUnsubscribe", (numSelected <= 1) && canSubscribeToFolder && isNewsgroup);

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

@ -1217,8 +1217,7 @@ function MsgSubscribe()
{
var preselectedFolder = GetFirstSelectedMsgFolder();
var server = (preselectedFolder) ? preselectedFolder.server : null;
if (server && server.type == "rss")
if (preselectedFolder && preselectedFolder.server.type == "rss")
openSubscriptionsDialog(preselectedFolder); // open feed subscription dialog
else
Subscribe(preselectedFolder); // open imap/nntp subscription dialog

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

@ -62,6 +62,7 @@
<script type="application/x-javascript" src="chrome://messenger/content/mailCommands.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/junkCommands.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mailWindowOverlay.js"/>
<script type="application/x-javascript" src="chrome://messenger-newsblog/content/newsblogOverlay.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mail-offline.js"/>
<script type="application/x-javascript" src="chrome://global/content/printUtils.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/msgViewPickerOverlay.js"/>

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

@ -42,7 +42,7 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = newsblog
DIRS = $(NULL)
ifdef MOZ_PSM
BUILD_SMIME=1

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

@ -1,92 +0,0 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://messenger-newsblog/skin/newsBlogOverlay.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://messenger-newsblog/locale/newsblog.dtd">
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript">
function openSubscriptionsDialog(aFolder) {
//check for an existing subscriptions window and focus it.
const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";
const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);
var lastSubscriptionWindow = kWindowMediator.getMostRecentWindow("Mail:News-BlogSubscriptions");
if (lastSubscriptionWindow)
{
lastSubscriptionWindow.gFeedSubscriptionsWindow.selectFolder(aFolder);
lastSubscriptionWindow.focus();
}
else
window.openDialog("chrome://messenger-newsblog/content/feed-subscriptions.xul", "",
"centerscreen,chrome,dialog=no,resizable",
{ server: aFolder.server, folder: aFolder});
}
function openSubscriptionsDialogFromFolderPane()
{
// get the incoming server for the seleted folder
var selectedFolders = GetSelectedMsgFolders();
openSubscriptionsDialog(selectedFolders[0]);
}
// Special case attempts to reply/forward/edit as new RSS arrticles
// Send the feed article URL instead of trying to load the feed inside of
// an iframe. Bug #258278.
function openComposeWindowForRSSArticle(messageID, msgHdr, type)
{
// convert our messageID into a url..
var contentBase = messageID.replace("@localhost.localdomain", "");
var params = Components.classes["@mozilla.org/messengercompose/composeparams;1"]
.createInstance(Components.interfaces.nsIMsgComposeParams);
if (params)
{
params.composeFields = Components.classes['@mozilla.org/messengercompose/composefields;1']
.createInstance(Components.interfaces.nsIMsgCompFields);
if (params.composeFields)
{
params.composeFields.body = contentBase;
var subject = msgHdr.mime2DecodedSubject;
var msgComposeType = Components.interfaces.nsIMsgCompType;
if (type == msgComposeType.Reply
|| type == msgComposeType.ReplyAll
|| type == msgComposeType.ReplyToSender
|| type == msgComposeType.ReplyToGroup
|| type == msgComposeType.ReplyToSenderAndGroup)
subject = 'Re: ' + subject;
else if (type == msgComposeType.ForwardInline || type == msgComposeType.ForwardAsAttachment)
subject = '[Fwd: ' + subject + ']';
params.composeFields.subject = subject;
params.composeFields.characterSet = msgHdr.Charset;
params.bodyIsLink = true;
if (msgComposeService) {
try {
params.identity = msgComposeService.defaultIdentity;
}
catch (ex) {
params.identity = null;
}
msgComposeService.OpenComposeWindowWithParams(null, params);
}
}
}
}
</script>
<!-- Overlay into the folder pane context menu. If you change the id for the menu item, please
update mailContextMenus.js
-->
<popup id="folderPaneContext">
<menuitem id="folderPaneContext-rssSubscribe"
insertafter="folderPaneContext-subscribe"
label="&folderContextRSSSubscribe.label;"
accesskey="&folderContextRSSSubscribe.accesskey;"
oncommand="openSubscriptionsDialogFromFolderPane();"/>
</popup>
</overlay>

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

@ -1,5 +0,0 @@
<!-- folder pane context menu item -->
<!ENTITY folderContextRSSSubscribe.label "Subscribe…">
<!ENTITY folderContextRSSSubscribe.accesskey "b">

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

@ -132,7 +132,6 @@
% locale messenger-mapi @AB_CD@ %locale/@AB_CD@/messenger-mapi/
locale/@AB_CD@/messenger-mapi/mapi.properties (%chrome/messenger-mapi/mapi.properties)
% locale messenger-newsblog @AB_CD@ %locale/@AB_CD@/messenger-newsblog/
locale/@AB_CD@/messenger-newsblog/newsblog.dtd (%chrome/messenger-newsblog/newsblog.dtd)
locale/@AB_CD@/messenger-newsblog/newsblog.properties (%chrome/messenger-newsblog/newsblog.properties)
locale/@AB_CD@/messenger-newsblog/feed-subscriptions.dtd (%chrome/messenger-newsblog/feed-subscriptions.dtd)
locale/@AB_CD@/messenger-newsblog/feed-properties.dtd (%chrome/messenger-newsblog/feed-properties.dtd)

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

@ -47,6 +47,16 @@
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
}
/* News folders */
.folderMenuItem[ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
/* Feed folders */
.folderMenuItem[ServerType="rss"] {
list-style-image: url("chrome://messenger/skin/icons/message-news.png");
}
/* ..... special folders ..... */
.folderMenuItem[SpecialFolder="Inbox"] {
@ -57,7 +67,6 @@
list-style-image: url("chrome://messenger/skin/icons/folder-sent.png");
}
.folderMenuItem[SpecialFolder="Drafts"] {
list-style-image: url("chrome://messenger/skin/icons/folder-draft.png");
}
@ -74,6 +83,8 @@
list-style-image: url("chrome://messenger/skin/icons/folder-trash.png");
}
/* ..... servers ..... */
.folderMenuItem[IsServer="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
@ -82,12 +93,12 @@
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
/* IMAP folders */
/* IMAP servers */
.folderMenuItem[IsServer="true"][ServerType="imap"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
/* POP3 folders */
/* POP3 servers */
.folderMenuItem[IsServer="true"][ServerType="pop3"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
@ -97,16 +108,16 @@
list-style-image: url("chrome://messenger/skin/icons/server-local.png");
}
/* News folders */
.folderMenuItem[ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
/* News servers */
.folderMenuItem[IsServer="true"][ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/server-news.png");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.png");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/server-news.png");
/* Feed servers */
.folderMenuItem[IsServer="true"][ServerType="rss"] {
list-style-image: url("chrome://messenger/skin/icons/server-newsblog.png");
}

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

@ -16,6 +16,18 @@ treechildren::-moz-tree-image(folderNameCol, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
}
/* ..... News Folders ..... */
.tabmail-tab[type="folder"][ServerType="nntp"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
/* ..... Feed Folders ..... */
.tabmail-tab[type="folder"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss) {
list-style-image: url("chrome://messenger/skin/icons/message-news.png");
}
/* ..... Inbox ..... */
.tabmail-tab[type="folder"][SpecialFolder="Inbox"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox) {
@ -62,24 +74,10 @@ treechildren::-moz-tree-image(folderNameCol, specialFolder-Trash) {
list-style-image: url("chrome://messenger/skin/icons/folder-trash.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
treechildren::-moz-tree-cell-text(folderNameCol, biffState-NewMail, isServer-true),
treechildren::-moz-tree-cell-text(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell-text(folderNameCol, specialFolder-Inbox, newMessages-true) {
font-weight: bold;
color: blue;
}
treechildren::-moz-tree-cell(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell(folderNameCol, specialFolder-Inbox, newMessages-true) {
/* ..... Saved Search Folder ..... */
.tabmail-tab[type="folder"][SpecialFolder="Virtual"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual) {
list-style-image: url("chrome://messenger/skin/icons/saved-search-folder.png");
}
/* Disable Shared Folder Rule for now
@ -90,6 +88,14 @@ treechildren::-moz-tree-image(folderNameCol, imapShared-true) {
/* ..... Server Folders ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-pop3, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
@ -103,11 +109,6 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-none) {
}
/* ..... News Folders ..... */
.tabmail-tab[type="folder"][ServerType="nntp"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/server-news.png");
}
@ -116,14 +117,25 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isS
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.png");
}
/* ..... Saved Search Folder ..... */
.tabmail-tab[type="folder"][SpecialFolder="Virtual"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual) {
list-style-image: url("chrome://messenger/skin/icons/saved-search-folder.png");
/* ..... Feed Folders ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-rss) {
list-style-image: url("chrome://messenger/skin/icons/server-newsblog.png");
}
/* ::::: All Servers ::::: */
treechildren::-moz-tree-cell-text(folderNameCol, biffState-NewMail, isServer-true),
treechildren::-moz-tree-cell-text(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell-text(folderNameCol, specialFolder-Inbox, newMessages-true) {
font-weight: bold;
color: blue;
}
treechildren::-moz-tree-cell(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell(folderNameCol, specialFolder-Inbox, newMessages-true) {
}
treechildren::-moz-tree-cell-text(subfoldersHaveUnreadMessages-true) {
font-weight: bold;
}

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

@ -83,7 +83,6 @@ classic.jar:
skin/classic/messenger/messengercompose/small-button-pressed.png (compose/small-button-pressed.png)
% skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/
skin/classic/messenger-newsblog/feed-subscriptions.css (newsblog/feed-subscriptions.css)
skin/classic/messenger-newsblog/newsBlogOverlay.css (newsblog/newsBlogOverlay.css)
skin/classic/messenger-newsblog/icons/folder-search-rss.png (newsblog/folder-search-rss.png)
skin/classic/messenger/preferences/preferences.css (preferences/preferences.css)
skin/classic/messenger/preferences/mail-options.png (preferences/mail-options.png)

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

@ -62,10 +62,6 @@
padding: 0px;
}
#rssFeedInfoBox textbox {
background-color: transparent;
}
#backgroundBox {
background-color: #FFFFFF;
opacity: 0.5;

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

@ -52,6 +52,23 @@
-moz-image-region: rect(0 32px 16px 16px);
}
/* Newsgroup */
.folderMenuItem[ServerType="nntp"] {
-moz-image-region: rect(0 160px 16px 144px);
}
/* Feed */
.folderMenuItem[ServerType="rss"] {
list-style-image: url("chrome://messenger-newsblog/skin/icons/rss-feed.png");
-moz-image-region: rect(0 16px 16px 0);
}
/* Resets list-style-image for Feed Trash and Virtual folders */
.folderMenuItem[ServerType="rss"][SpecialFolder="Trash"],
.folderMenuItem[ServerType="rss"][SpecialFolder="Virtual"] {
list-style-image: url("chrome://messenger/skin/icons/folder.png");
}
/* ..... special folders ..... */
.folderMenuItem[SpecialFolder="Inbox"] {
@ -86,6 +103,8 @@
-moz-image-region: rect(0 176px 16px 160px);
}
/* ..... servers ..... */
.folderMenuItem[IsServer="true"] {
list-style-image: url("chrome://messenger/skin/icons/server.png");
-moz-image-region: rect(0 16px 16px 0);
@ -110,7 +129,7 @@
-moz-image-region: rect(0 80px 16px 64px) !important;
}
/* Newsgroup */
.folderMenuItem[ServerType="nntp"] {
-moz-image-region: rect(0 160px 16px 144px);
/* Feed server */
.folderMenuItem[IsServer="true"][ServerType="rss"] {
list-style-image: url("chrome://messenger-newsblog/skin/icons/server-rss.png");
}

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

@ -27,7 +27,36 @@ treechildren::-moz-tree-image(folderNameCol, selected, open, newMessages-true) {
-moz-image-region: rect(16px 32px 32px 16px);
}
/* ..... Newsgroup ..... */
.tabmail-tab[type="folder"][ServerType="nntp"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-nntp) {
-moz-image-region: rect(0 160px 16px 144px);
}
/* ..... Feed ..... */
.tabmail-tab[type="folder"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss) {
list-style-image: url("chrome://messenger-newsblog/skin/icons/rss-feed.png");
-moz-image-region: rect(0 16px 16px 0);
}
treechildren::-moz-tree-image(folderNameCol, serverType-rss, newMessages-true) {
-moz-image-region: rect(16px 16px 32px 0);
}
/* Resets list-style-image for Feed Trash and Virtual folders */
.tabmail-tab[type="folder"][SpecialFolder="Trash"][ServerType="rss"] .tab-icon-image ,
.tabmail-tab[type="folder"][SpecialFolder="Virtual"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss, specialFolder-Trash),
treechildren::-moz-tree-image(folderNameCol, serverType-rss, specialFolder-Virtual) {
list-style-image: url("chrome://messenger/skin/icons/folder.png");
}
/* ..... Inbox ..... */
.tabmail-tab[type="folder"][SpecialFolder="Inbox"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox) {
-moz-image-region: rect(0 48px 16px 32px);
@ -38,36 +67,42 @@ treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox, newMessages-tr
}
/* ..... Sent ..... */
.tabmail-tab[type="folder"][SpecialFolder="Sent"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Sent) {
-moz-image-region: rect(0 64px 16px 48px);
}
/* ..... Unsent ..... */
.tabmail-tab[type="folder"][SpecialFolder="Unsent Messages"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Unsent Messages) {
-moz-image-region: rect(0 80px 16px 64px);
}
/* ..... Drafts ..... */
.tabmail-tab[type="folder"][SpecialFolder="Drafts"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Drafts) {
-moz-image-region: rect(0 96px 16px 80px);
}
/* ..... Templates ..... */
.tabmail-tab[type="folder"][SpecialFolder="Templates"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Templates) {
-moz-image-region: rect(0 112px 16px 96px);
}
/* ..... Junk ..... */
.tabmail-tab[type="folder"][SpecialFolder="Junk"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Junk) {
-moz-image-region: rect(0 128px 16px 112px);
}
/* ..... Trash ..... */
.tabmail-tab[type="folder"][SpecialFolder="Trash"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Trash) {
-moz-image-region: rect(0 144px 16px 128px);
@ -82,6 +117,7 @@ treechildren::-moz-tree-image(folderNameCol, imapShared-true) {
*/
/* ..... Saved Search Folder ..... */
.tabmail-tab[type="folder"][SpecialFolder="Virtual"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual) {
-moz-image-region: rect(0 176px 16px 160px);
@ -91,6 +127,11 @@ treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual, newMessages-
-moz-image-region: rect(16px 176px 32px 160px);
}
treechildren::-moz-tree-cell-text(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell-text(folderNameCol, specialFolder-Inbox, newMessages-true) {
font-weight: bold;
}
/* ..... Mail server ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true) {
@ -102,11 +143,6 @@ treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true) {
-moz-image-region: rect(16px 16px 32px 0);
}
treechildren::-moz-tree-cell-text(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell-text(folderNameCol, specialFolder-Inbox, newMessages-true) {
font-weight: bold;
}
/* ..... Secure mail server ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-pop3, isSecure-true),
@ -138,10 +174,11 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isS
-moz-image-region: rect(0 80px 16px 64px) !important;
}
/* ..... Newsgroup ..... */
.tabmail-tab[type="folder"][ServerType="nntp"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-nntp) {
-moz-image-region: rect(0 160px 16px 144px);
/* ..... Feed server ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-rss) {
list-style-image: url("chrome://messenger-newsblog/skin/icons/server-rss.png");
-moz-image-region: rect(0 16px 16px 0);
}
/* ::::: All Servers ::::: */

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

@ -53,7 +53,6 @@ classic.jar:
skin/classic/messenger/messengercompose/format-buttons.png (compose/format-buttons.png)
% skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/
skin/classic/messenger-newsblog/feed-subscriptions.css (newsblog/feed-subscriptions.css)
skin/classic/messenger-newsblog/newsBlogOverlay.css (newsblog/newsBlogOverlay.css)
skin/classic/messenger-newsblog/icons/rss-feed.png (newsblog/rss-feed.png)
skin/classic/messenger-newsblog/icons/server-rss.png (newsblog/server-rss.png)
* skin/classic/messenger/preferences/preferences.css (preferences/preferences.css)

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

@ -68,10 +68,6 @@
padding: 0px;
}
#rssFeedInfoBox textbox {
background-color: transparent;
}
#backgroundBox {
background-color: #FFFFFF;
opacity: 0.5;

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

@ -73,6 +73,9 @@ function defaultClientSetup()
document.getElementById("setDefaultNews").disabled =
shellService.isDefaultClient(false, nsIShellService.NEWS);
document.getElementById("setDefaultFeed").disabled =
shellService.isDefaultClient(false, nsIShellService.RSS);
document.getElementById("defaultMailPrefs").hidden = false;
}
}
@ -98,3 +101,14 @@ function onSetDefaultNews()
document.getElementById("setDefaultNews").disabled = true;
}
function onSetDefaultFeed()
{
var shellService = Components.classes["@mozilla.org/suite/shell-service;1"]
.getService(nsIShellService);
shellService.setDefaultClient(false, false, nsIShellService.RSS);
shellService.shouldBeDefaultClientFor |= nsIShellService.RSS;
document.getElementById("setDefaultFeed").disabled = true;
}

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

@ -81,6 +81,8 @@
name="system.windows.lock_ui.defaultMailClient" type="bool"/>
<preference id="system.windows.lock_ui.defaultNewsClient" readonly="true"
name="system.windows.lock_ui.defaultNewsClient" type="bool"/>
<preference id="system.windows.lock_ui.defaultFeedClient" readonly="true"
name="system.windows.lock_ui.defaultFeedClient" type="bool"/>
</preferences>
<groupbox>
@ -115,6 +117,11 @@
<button id="setDefaultNews" accesskey="&setDefaultNews.accesskey;"
label="&setDefaultNews.label;" oncommand="onSetDefaultNews();"
preference="system.windows.lock_ui.defaultNewsClient"/>
<button id="setDefaultFeed"
accesskey="&setDefaultFeed.accesskey;"
label="&setDefaultFeed.label;"
oncommand="onSetDefaultFeed();"
preference="system.windows.lock_ui.defaultFeedClient"/>
</hbox>
</vbox>
</groupbox>

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

@ -242,16 +242,18 @@ function ComposeMessage(type, format, folder, messageArray)
}
}
if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
type == msgComposeType.Redirect ||
type == msgComposeType.Draft)
if (/^https?:/.test(hdr.messageId))
openComposeWindowForRSSArticle(hdr, type);
else if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
type == msgComposeType.ReplyToList ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
type == msgComposeType.Redirect ||
type == msgComposeType.Draft)
{
msgComposeService.OpenComposeWindow(null, hdr, messageUri, type, format, identity, msgWindow);
// Limit the number of new compose windows to 8. Why 8 ? I like that number :-)

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

@ -290,11 +290,16 @@ function fillFolderPaneContextMenu()
var isServer = GetFolderAttribute(folderTree, folderResource, "IsServer") == 'true';
var serverType = GetFolderAttribute(folderTree, folderResource, "ServerType");
var specialFolder = GetFolderAttribute(folderTree, folderResource, "SpecialFolder");
var canSubscribeToFolder = (serverType == "nntp") || (serverType == "imap");
var canSubscribeToFolder = (serverType == "nntp") ||
(serverType == "imap") ||
(serverType == "rss");
var isNewsgroup = !isServer && serverType == 'nntp';
var isMailFolder = !isServer && serverType != 'nntp';
var isVirtualFolder = (specialFolder == "Virtual");
var canGetMessages = (isServer && (serverType != "nntp") && (serverType !="none")) || isNewsgroup;
var canGetMessages =
(isServer && (serverType != "nntp") && (serverType != "none")) ||
isNewsgroup ||
((serverType == "rss") && (specialFolder != 'Trash'));
if (!isServer)
{
@ -309,6 +314,14 @@ function fillFolderPaneContextMenu()
EnableMenuItem("folderPaneContext-settings", true);
}
if ((numSelected <= 1) && canGetMessages)
if (isServer)
SetMenuItemLabel("folderPaneContext-getMessages",
gMessengerBundle.getString("getMessagesFor"));
else
SetMenuItemLabel("folderPaneContext-getMessages",
gMessengerBundle.getString("getMessages"));
ShowMenuItem("folderPaneContext-getMessages", (numSelected <= 1) && canGetMessages);
EnableMenuItem("folderPaneContext-getMessages", true);

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

@ -868,9 +868,13 @@ function GetInboxFolder(server)
function GetMessagesForInboxOnServer(server)
{
dump ("GetMessagesForInboxOnServer uri = " + server.serverURI + "\n");
var inboxFolder = GetInboxFolder(server);
if (!inboxFolder) return;
// If the server doesn't support an inbox it could be an RSS server or
// some other server type, just use the root folder and the server
// implementation can figure out what to do.
if (!inboxFolder)
inboxFolder = server.rootFolder;
GetNewMessages([inboxFolder], server);
}
@ -1211,8 +1215,12 @@ function getDestinationFolder(preselectedFolder, server)
function MsgSubscribe()
{
var preselectedFolder = GetFirstSelectedMsgFolder();
Subscribe(preselectedFolder);
var preselectedFolder = GetFirstSelectedMsgFolder();
if (preselectedFolder && preselectedFolder.server.type == "rss")
openSubscriptionsDialog(preselectedFolder); // open feed subscription dialog
else
Subscribe(preselectedFolder); // open imap/nntp subscription dialog
}
function ConfirmUnsubscribe(folder)
@ -1887,6 +1895,12 @@ function MsgAddAllToAddressBook() {}
function SpaceHit(event)
{
var contentWindow = window.top.content;
var rssiframe = contentWindow.document.getElementById('_mailrssiframe');
// If we are displaying an RSS article, we really want to scroll
// the nested iframe.
if (rssiframe)
contentWindow = rssiframe.contentWindow;
if (event && event.shiftKey) {
// if at the start of the message, go to the previous one

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

@ -69,6 +69,7 @@
<script type="application/x-javascript" src="chrome://messenger/content/mailCommands.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mailWindowOverlay.js"/>
<script type="application/x-javascript" src="chrome://messenger-newsblog/content/newsblogOverlay.js"/>
<script type="application/x-javascript" src="chrome://messenger/content/mail-offline.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/findUtils.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/bookmarks/bookmarks.js"/>

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

@ -730,8 +730,21 @@ function OnLoadMessenger()
// argument[2] --> optional email address; // Will come from aim; needs to show msgs from buddy's email address.
if ("arguments" in window)
{
gStartFolderUri = (window.arguments.length > 0) ? window.arguments[0]
: null;
// filter our any feed urls that came in as arguments to the new window...
if (window.arguments.length && /^feed:/i.test(window.arguments[0]))
{
var feedHandler =
Components.classes["@mozilla.org/newsblog-feed-downloader;1"]
.getService(Components.interfaces.nsINewsBlogFeedDownloader);
if (feedHandler)
feedHandler.subscribeToFeed(window.arguments[0], null, msgWindow);
gStartFolderUri = null;
}
else
{
gStartFolderUri = (window.arguments.length > 0) ? window.arguments[0]
: null;
}
gStartMsgKey = (window.arguments.length > 1) ? window.arguments[1]
: nsMsgKey_None;
gSearchEmailAddress = (window.arguments.length > 2) ? window.arguments[2]

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

@ -63,6 +63,7 @@
<ul>
<li>&feat_multiacc.label;</li>
<li>&feat_junk.label;</li>
<li>&feat_rss.label;</li>
<li>&feat_filters.label;</li>
<li>&feat_htmlmsg.label;</li>
<li>&feat_abook.label;</li>

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

@ -43,7 +43,7 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
# these extensions are not optional
DIRS = mdn mailviews bayesian-spam-filter offline-startup
DIRS = mdn mailviews bayesian-spam-filter offline-startup newsblog
ifdef MOZ_PSM
BUILD_SMIME=1

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

@ -36,33 +36,7 @@
var gIncomingServer;
function onInit()
{
// set our custom quickMode attribute
document.getElementById('useQuickMode').checked = gIncomingServer.getBoolAttribute("quickMode");
}
function onPreInit(account, accountValues)
{
gIncomingServer = account.incomingServer;
}
function onSave()
{
gIncomingServer.setBoolAttribute("quickMode", document.getElementById('useQuickMode').checked);
}
function manageSubscriptions()
{
// XXX: This code should be shared with the JS in toolbar-icon.xul
const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";
const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);
var lastSubscriptionWindow = kWindowMediator.getMostRecentWindow("Mail:News-BlogSubscriptions");
if (lastSubscriptionWindow)
lastSubscriptionWindow.focus();
else
window.openDialog("chrome://messenger-newsblog/content/feed-subscriptions.xul", "",
"centerscreen,chrome,dialog=no,resizable", { server: gIncomingServer});
}

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

@ -51,7 +51,8 @@
<script type="application/x-javascript" src="chrome://messenger/content/AccountManager.js"/>
<script type="application/x-javascript" src="chrome://messenger-newsblog/content/am-newsblog.js"/>
<script type="application/x-javascript" src="chrome://messenger-newsblog/content/newsblogOverlay.js"/>
<dialogheader title="&newsblogTitle.label;"/>
<hbox align="center">
@ -83,9 +84,13 @@
prefstring="mail.server.%serverkey%.login_at_startup"/>
<checkbox wsm_persist="true"
id="useQuickMode"
genericattr="true"
id="server.quickMode"
label="&useQuickMode.label;"
accesskey="&useQuickMode.accesskey;"/>
accesskey="&useQuickMode.accesskey;"
preftype="bool"
prefattribute="value"
prefstring="mail.server.%serverkey%.quickMode"/>
<checkbox wsm_persist="true" id="server.emptyTrashOnExit"
label="&emptyTrashOnExit.label;"
@ -97,7 +102,8 @@
<hbox align="center">
<spacer flex="1"/>
<button label="&manageSubscriptions.label;" oncommand="manageSubscriptions();"
<button label="&manageSubscriptions.label;"
oncommand="openSubscriptionsDialog(null, gIncomingServer);"
accesskey="&manageSubscriptions.accesskey;"/>
</hbox>
</page>

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

@ -0,0 +1,112 @@
# -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 Thunderbird Newsblog Overlay
#
# The Initial Developer of the Original Code is
# The Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2005
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Scott MacGregor <mscott@mozilla.org>
# David Bienvenu <bienvenu@nventure.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK ******
function openSubscriptionsDialog(aFolder, aServer)
{
if (!aServer)
aServer = aFolder.server;
//check for an existing subscriptions window and focus it.
const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";
const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
const kWindowMediator = Components.classes[kWindowMediatorContractID]
.getService(kWindowMediatorIID);
var lastSubscriptionWindow =
kWindowMediator.getMostRecentWindow("Mail:News-BlogSubscriptions");
if (lastSubscriptionWindow)
{
if (aFolder)
lastSubscriptionWindow.gFeedSubscriptionsWindow.selectFolder(aFolder);
lastSubscriptionWindow.focus();
}
else
{
window.openDialog("chrome://messenger-newsblog/content/feed-subscriptions.xul", "",
"centerscreen,chrome,dialog=no,resizable",
{ server: aServer, folder: aFolder});
}
}
// Special case attempts to reply/forward/edit as new RSS arrticles
// Send the feed article URL instead of trying to load the feed inside of
// an iframe. Bug #258278.
function openComposeWindowForRSSArticle(msgHdr, type)
{
// convert our messageId into a url..
var contentBase = msgHdr.messageId.replace("@localhost.localdomain", "");
var params = Components.classes["@mozilla.org/messengercompose/composeparams;1"]
.createInstance(Components.interfaces.nsIMsgComposeParams);
if (params)
{
params.composeFields = Components.classes['@mozilla.org/messengercompose/composefields;1']
.createInstance(Components.interfaces.nsIMsgCompFields);
if (params.composeFields)
{
params.composeFields.body = contentBase;
var subject = msgHdr.mime2DecodedSubject;
var msgComposeType = Components.interfaces.nsIMsgCompType;
if (type == msgComposeType.Reply ||
type == msgComposeType.ReplyAll ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSenderAndGroup)
subject = 'Re: ' + subject;
else if (type == msgComposeType.ForwardInline ||
type == msgComposeType.ForwardAsAttachment)
subject = '[Fwd: ' + subject + ']';
params.composeFields.subject = subject;
params.composeFields.characterSet = msgHdr.Charset;
params.bodyIsLink = true;
if (msgComposeService)
{
try
{
params.identity = msgComposeService.defaultIdentity;
}
catch (ex)
{
params.identity = null;
}
msgComposeService.OpenComposeWindowWithParams(null, params);
}
}
}
}

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

@ -1,7 +1,6 @@
newsblog.jar:
% content messenger-newsblog %content/messenger-newsblog/ xpcnativewrappers=yes
% overlay chrome://messenger/content/mailWindowOverlay.xul chrome://messenger-newsblog/content/toolbar-icon.xul
* content/messenger-newsblog/toolbar-icon.xul (content/toolbar-icon.xul)
* content/messenger-newsblog/newsblogOverlay.js (content/newsblogOverlay.js)
* content/messenger-newsblog/edittree.xml (content/edittree.xml)
* content/messenger-newsblog/debug-utils.js (content/debug-utils.js)
* content/messenger-newsblog/Feed.js (content/Feed.js)

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

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

@ -116,6 +116,7 @@ mailnews/extensions/mailviews/src/Makefile
mailnews/extensions/mailviews/build/Makefile
mailnews/extensions/mailviews/resources/Makefile
mailnews/extensions/mailviews/resources/content/Makefile
mailnews/extensions/newsblog/Makefile
mailnews/extensions/offline-startup/Makefile
mailnews/mapi/Makefile
"

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

@ -59,10 +59,11 @@
<script type="application/x-javascript" src="chrome://communicator/content/defaultClientDialog.js"/>
<description>&defaultClient.intro;</description>
<listbox rows="3" id="defaultList">
<listbox rows="4" id="defaultList">
<listitem value="BROWSER" type="checkbox" label="&browser.label;"/>
<listitem value="MAIL" type="checkbox" label="&email.label;"/>
<listitem value="NEWS" type="checkbox" label="&newsgroups.label;"/>
<listitem value="RSS" type="checkbox" label="&rss.label;"/>
</listbox>
<separator class="thin"/>

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

@ -67,6 +67,7 @@ MOZ_NONLOCALIZED_PKG_LIST = \
xpcom \
browser \
mail \
newsblog \
reporter \
$(NULL)

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

@ -501,6 +501,9 @@ bin\components\msgMapi.dll
bin\components\mapihook.xpt
bin\components\mdn-service.js
bin\components\offlineStartup.js
bin\chrome\newsblog.jar
bin\chrome\newsblog.manifest
bin\components\newsblog.js
[chatzilla]
bin\extensions\{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}\components\chatzilla-service.js

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

@ -4,6 +4,7 @@
<!ENTITY browser.label "Browser">
<!ENTITY email.label "E-Mail">
<!ENTITY newsgroups.label "Newsgroups">
<!ENTITY rss.label "RSS Feeds">
<!ENTITY checkOnStartup.label "Always perform this check when starting &brandShortName;">
<!ENTITY checkOnStartup.accesskey "A">

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

@ -52,6 +52,8 @@ newSubfolderMenuItem=Subfolder…
newFolder=New Folder…
newSubfolder=New Subfolder…
folderProperties=Folder Properties
getMessages=Get Messages
getMessagesFor=Get Messages For Account
getNextNMessages=Get Next %S News Messages
advanceNextPrompt=Advance to next unread message in %S?
titleNewsPreHost=on

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

@ -0,0 +1,20 @@
<!ENTITY newsblogTitle.label "RSS Account Settings">
<!ENTITY biffStart.label "Check for new articles every ">
<!ENTITY biffStart.accesskey "k">
<!ENTITY biffEnd.label "minutes">
<!ENTITY loginAtStartup.label "Check for new articles at startup">
<!ENTITY loginAtStartup.accesskey "C">
<!ENTITY useQuickMode.label "By default, show the article summary instead of loading the web page">
<!ENTITY useQuickMode.accesskey "B">
<!ENTITY manageSubscriptions.label "Manage Subscriptions…">
<!ENTITY manageSubscriptions.accesskey "M">
<!-- entities from defaults/isp/rss.rdf -->
<!ENTITY rss.accountName "News &amp; Blogs">
<!ENTITY rss.wizardShortName "RSS">
<!ENTITY rss.wizardLongName "RSS News &amp; Blogs">
<!ENTITY rss.wizardLongName.accesskey "R">

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

@ -0,0 +1,2 @@
## Strings used in the Account Manager
prefPanel-newsblog=Feed Settings

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

@ -0,0 +1,19 @@
<!-- Feed Properties Dialog -->
<!ENTITY window.title "Feed Properties">
<!ENTITY feedFolder.label "Store Articles in: ">
<!ENTITY feedFolder.accesskey "S">
<!ENTITY feedLocation.label "Feed URL: ">
<!ENTITY feedLocation.accesskey "F">
<!ENTITY choosethisfolder.label "choose this folder">
<!ENTITY quickMode.label "Show the article summary instead of loading the web page">
<!ENTITY quickMode.accesskey "h">
<!ENTITY copyLinkCmd.label "Copy Link Location">
<!ENTITY copyLinkCmd.accesskey "C">
<!ENTITY pasteLinkCmd.label "Paste">
<!ENTITY pasteLinkCmd.accesskey "P">

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

@ -0,0 +1,18 @@
<!-- Subscription Dialog -->
<!ENTITY newsBlogSubscriptions.label "RSS Subscriptions">
<!ENTITY subscriptionDesc.label "Note: Removing or changing the folder for a feed will not affect previously downloaded articles.">
<!ENTITY feedTitle.label "Title:">
<!ENTITY location.label "Location:">
<!ENTITY button.addFeed.label "Add">
<!ENTITY button.addFeed.accesskey "A">
<!ENTITY button.editFeed.label "Edit">
<!ENTITY button.editFeed.accesskey "E">
<!ENTITY button.removeFeed.label "Remove">
<!ENTITY button.removeFeed.accesskey "R">
<!ENTITY button.importOPML.label "Import">
<!ENTITY button.importOPML.accesskey "I">
<!ENTITY button.exportOPML.label "Export">
<!ENTITY button.exportOPML.accesskey "X">
<!ENTITY cmd.close.commandKey "w">

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

@ -0,0 +1,33 @@
# Status strings used in the subscribe dialog
subscribe-validating=Verifying the RSS feed…
subscribe-cancelSubscription=Are you sure you wish to cancel subscribing to the current feed?
subscribe-cancelSubscriptionTitle=Subscribing to a Feed…
subscribe-noFeedSelected=<no RSS feed selected>
subscribe-feedAlreadySubscribed=You already have a subscription for this feed.
subscribe-errorOpeningFile=Could not open the file.
subscribe-OPMLImportTitle=Select OPML file to import
subscribe-OPMLExportTitle=Export feeds as an OPML file
subscribe-OPMLExportFileTitle=SeaMonkey OPML Export
subscribe-OPMLExportFileName=MySeaMonkeyFeeds.opml
#LOCALIZATION NOTE: %S is the name of the OPML file the user tried to import.
subscribe-errorInvalidOPMLFile=Either %S is not a valid OPML file or there was an error importing the file.
subscribe-OPMLExportOPMLFilesFilterText=OPML Files
#LOCALIZATION NOTE: %S is the name of the feed the user wants to unsubscribe from.
subsribe-confirmFeedDeletionTitle=Remove Feed
subsribe-confirmFeedDeletion=Are you sure you want to unsubscribe from the feed: \n %S?
# when downloading new feed items from the subscribe dialog.
# LOCALIZATION NOTE: Do not translate %d in the following line.
# The first %S will receive the number of messages received so far;
# the second %S will receive the total number of messages
subscribe-fetchingFeedItems=Downloading feed articles (%S of %S)
newsblog-noNewArticlesForFeed=There are no new articles for this feed.
newsblog-networkError=%S could not be found. Please check the name and try again.
newsblog-invalidFeed=%S is not a valid RSS feed.
newsblog-getNewMailCheck=Checking RSS feeds for new items

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

@ -51,6 +51,8 @@
<!ENTITY setDefaultMail.accesskey "M">
<!ENTITY setDefaultNews.label "News">
<!ENTITY setDefaultNews.accesskey "N">
<!ENTITY setDefaultFeed.label "Feeds">
<!ENTITY setDefaultFeed.accesskey "e">
<!ENTITY messengerStartPage.caption "Mail Start Page">
<!ENTITY enableStartPage.label "When Mail launches, show the Start Page in the message area">
@ -60,7 +62,7 @@
<!ENTITY useDefault.label "Restore Default">
<!ENTITY useDefault.accesskey "D">
<!ENTITY rememberLastMsg.label "Remember the last selected message">
<!ENTITY rememberLastMsg.accesskey "e">
<!ENTITY rememberLastMsg.accesskey "R">
<!ENTITY toolbarIntro.caption "Select the buttons you want to see in the toolbar">
<!ENTITY fileButton.label "File">
<!ENTITY fileButton.accesskey "F">

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

@ -45,6 +45,7 @@ client, supporting advanced junk mail detection and other useful features.">
<!ENTITY features.title "Features">
<!ENTITY feat_multiacc.label "Support for multiple accounts">
<!ENTITY feat_junk.label "Junk Mail detection">
<!ENTITY feat_rss.label "RSS Reader">
<!ENTITY feat_filters.label "Message Filters">
<!ENTITY feat_htmlmsg.label "HTML message support">
<!ENTITY feat_abook.label "Address Book">

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

@ -12,6 +12,7 @@
#ifdef MOZ_PSM
% locale messenger-smime @AB_CD@ %locale/@AB_CD@/messenger-smime/
#endif
% locale messenger-newsblog @AB_CD@ %locale/@AB_CD@/messenger-newsblog/
% locale mozldap @AB_CD@ %locale/@AB_CD@/mozldap/
% locale navigator @AB_CD@ %locale/@AB_CD@/navigator/
% locale navigator-platform @AB_CD@ %locale/@AB_CD@/navigator-platform/
@ -314,6 +315,11 @@
locale/@AB_CD@/messenger-smime/msgReadSMIMEOverlay.properties (%chrome/mailnews/smime/msgReadSMIMEOverlay.properties)
locale/@AB_CD@/messenger-smime/msgSecurityInfo.properties (%chrome/mailnews/smime/msgSecurityInfo.properties)
#endif
locale/@AB_CD@/messenger-newsblog/newsblog.properties (%chrome/mailnews/newsblog/newsblog.properties)
locale/@AB_CD@/messenger-newsblog/feed-subscriptions.dtd (%chrome/mailnews/newsblog/feed-subscriptions.dtd)
locale/@AB_CD@/messenger-newsblog/feed-properties.dtd (%chrome/mailnews/newsblog/feed-properties.dtd)
locale/@AB_CD@/messenger-newsblog/am-newsblog.properties (%chrome/mailnews/newsblog/am-newsblog.properties)
locale/@AB_CD@/messenger-newsblog/am-newsblog.dtd (%chrome/mailnews/newsblog/am-newsblog.dtd)
locale/@AB_CD@/mozldap/ldap.properties (%chrome/mozldap/ldap.properties)
locale/@AB_CD@/navigator/linkToolbar.dtd (%chrome/browser/linkToolbar.dtd)
locale/@AB_CD@/navigator/mailNavigatorOverlay.dtd (%chrome/browser/mailNavigatorOverlay.dtd)

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

@ -50,6 +50,7 @@ interface nsIShellService : nsISupports
const unsigned short BROWSER = 0x0001;
const unsigned short MAIL = 0x0002;
const unsigned short NEWS = 0x0004;
const unsigned short RSS = 0x0008;
/**
* Determines whether or not SeaMonkey is the "Default Client" for the
@ -61,7 +62,7 @@ interface nsIShellService : nsISupports
* @param aStartupCheck true if this is the check being performed
* by the first window at startup,
* false otherwise.
* @param aApps the application types being tested (Browser, Mail, News)
* @param aApps the application types being tested (Browser, Mail, News, RSS)
*/
boolean isDefaultClient(in boolean aStartupCheck, in unsigned short aApps);
@ -75,7 +76,7 @@ interface nsIShellService : nsISupports
* @param aClaimAllTypes Register SeaMonkey as the handler for
* additional protocols (ftp, chrome etc)
* and web documents (.html, .xhtml etc).
* @param aApps the application types being tested (Mail, News, Browser)
* @param aApps the application types being tested (Mail, News, Browser, RSS)
*/
void setDefaultClient(in boolean aForAllUsers, in boolean aClaimAllTypes, in unsigned short aApps);

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

@ -40,6 +40,8 @@
* This component handles the startup command line arguments of the form:
* -setDefaultBrowser
* -setDefaultMail
* -setDefaultNews
* -setDefaultFeed
*/
const nsIShellService = Components.interfaces.nsIShellService;
@ -66,11 +68,17 @@ nsSetDefault.prototype = {
.getService(nsIShellService);
shell.setDefaultClient(true, true, nsIShellService.NEWS);
}
else if (aCmdline.handleFlag("setDefaultFeed", false)) {
var shell = Components.classes["@mozilla.org/browser/shell-service;1"]
.getService(nsIShellService);
shell.setDefaultClient(true, true, nsIShellService.RSS);
}
},
helpInfo: " -setDefaultBrowser Set this app as the default browser client.\n" +
" -setDefaultMail Set this app as the default mail client.\n" +
" -setDefaultNews Set this app as the default newsreader.\n",
" -setDefaultNews Set this app as the default newsreader.\n" +
" -setDefaultFeed Set this app as the default feedreader.\n",
classDescription: "Set Default Suite Cmdline Handler",
contractID: "@mozilla.org/suite/default-browser-clh;1",

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

@ -301,6 +301,7 @@ typedef enum {
#define CLS_EML "SeaMonkeyEML"
#define CLS_MAILTOURL "SeaMonkeyCOMPOSE"
#define CLS_NEWSURL "SeaMonkeyNEWS"
#define CLS_FEEDURL "SeaMonkeyFEED"
#define SMI "SOFTWARE\\Clients\\StartMenuInternet\\"
#define MAILCLIENTS "SOFTWARE\\Clients\\Mail\\"
#define NEWSCLIENTS "SOFTWARE\\Clients\\News\\"
@ -494,6 +495,14 @@ static SETTING gBrowserSettings[] = {
APP_PATH_SUBSTITUTION | APP_NAME_SUBSTITUTION | HKLM_ONLY },
};
static SETTING gFeedSettings[] = {
// Protocol Handler Class - for Vista and above
{ MAKE_KEY_NAME1(CLS_FEEDURL, SOP), "", "\"%APPPATH%\" -osint -mail \"%1\"", APP_PATH_SUBSTITUTION },
// Protocol Handlers
{ MAKE_KEY_NAME1("feed", SOP), "", "\"%APPPATH%\" -osint -mail \"%1\"", APP_PATH_SUBSTITUTION },
};
/* helper routine. Iterate over the passed in settings object,
testing each key with the USE_FOR_DEFAULT_TEST to see if
we are handling it.
@ -701,6 +710,9 @@ nsWindowsShellService::IsDefaultClient(PRBool aStartupCheck, PRUint16 aApps, PRB
*aIsDefaultClient &= TestForDefault(gMailSettings, sizeof(gMailSettings)/sizeof(SETTING));
if (aApps & nsIShellService::NEWS)
*aIsDefaultClient &= TestForDefault(gNewsSettings, sizeof(gNewsSettings)/sizeof(SETTING));
// RSS / feed protocol shell integration is to be completed in bug 453797.
// if (aApps & nsIShellService::RSS)
// *aIsDefaultClient &= TestForDefault(gFeedSettings, sizeof(gFeedSettings)/sizeof(SETTING));
#endif
// If this is the first application window, maintain internal state that we've

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

@ -4,6 +4,7 @@ classic.jar:
% skin global classic/1.0 %skin/classic/global/
% skin messenger classic/1.0 %skin/classic/messenger/
% skin navigator classic/1.0 %skin/classic/navigator/
% skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/
skin/classic/communicator/tasksOverlay.css (communicator/tasksOverlay.css)
#ifdef XP_MACOSX
skin/classic/communicator/button.css (communicator/mac/button.css)
@ -291,6 +292,7 @@ classic.jar:
skin/classic/messenger/smime/icons/hdrSignNotOk.gif (messenger/smime/icons/hdrSignNotOk.gif)
skin/classic/messenger/smime/icons/hdrCryptoOk.gif (messenger/smime/icons/hdrCryptoOk.gif)
skin/classic/messenger/smime/icons/hdrCryptoNotOk.gif (messenger/smime/icons/hdrCryptoNotOk.gif)
skin/classic/messenger-newsblog/feed-subscriptions.css (messenger/newsblog/feed-subscriptions.css)
skin/classic/navigator/navigator.css (navigator/navigator.css)
skin/classic/navigator/linkToolbar.css (navigator/linkToolbar.css)
skin/classic/navigator/pageInfo.css (navigator/pageInfo.css)

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

@ -118,6 +118,10 @@ separator.thin {
list-style-image: url("chrome://messenger/skin/icons/acct-subscribe.png");
}
#SubscribeRSS {
list-style-image: url("chrome://messenger/skin/icons/acct-subscribe.png");
}
#SearchMessages {
list-style-image: url("chrome://messenger/skin/icons/acct-search.png");
}

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

@ -52,6 +52,11 @@
list-style-image: url("chrome://messenger/skin/icons/folder-open.png");
}
.folderMenuItem[ServerType="rss"],
.folderMenuItem[ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
/* ..... special folders ..... */
.folderMenuItem[SpecialFolder="Inbox"] {
@ -106,6 +111,8 @@ list-style-image: url("chrome://messenger/skin/icons/folder-open.png");
list-style-image: url("chrome://messenger/skin/icons/folder-search.png");
}
/* ..... servers ..... */
.folderMenuItem[IsServer="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
@ -114,31 +121,26 @@ list-style-image: url("chrome://messenger/skin/icons/folder-open.png");
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
/* IMAP folders */
.folderMenuItem[IsServer="true"][ServerType="imap"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
/* POP3 folders */
.folderMenuItem[IsServer="true"][ServerType="pop3"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
/* Local Servers */
.folderMenuItem[IsServer="true"][ServerType="none"] {
list-style-image: url("chrome://messenger/skin/icons/server-local.png");
}
/* News folders */
.folderMenuItem[ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.png");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/server-news.png");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.png");
}
.folderMenuItem[IsServer="true"][ServerType="rss"] {
list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}

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

@ -56,6 +56,18 @@ treechildren::-moz-tree-image(folderNameCol, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-new.png");
}
/* ..... News and Feeds ..... */
treechildren::-moz-tree-image(folderNameCol, serverType-nntp),
treechildren::-moz-tree-image(folderNameCol, serverType-rss) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
treechildren::-moz-tree-image(folderNameCol, serverType-nntp, newMessages-true),
treechildren::-moz-tree-image(folderNameCol, serverType-rss, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup-new.png");
}
/* ..... Inbox ..... */
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox) {
@ -108,14 +120,6 @@ treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual) {
list-style-image: url("chrome://messenger/skin/icons/folder-search.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail-new.png");
}
treechildren::-moz-tree-cell-text(folderNameCol, newMessages-true),
treechildren::-moz-tree-cell-text(folderNameCol, specialFolder-Inbox, newMessages-true) {
font-weight: bold;
@ -125,9 +129,16 @@ treechildren::-moz-tree-image(folderNameCol, imapShared-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-share.png");
}
/* ..... Server Folders ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.png");
}
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail-new.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-pop3, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
@ -144,12 +155,6 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-none) {
list-style-image: url("chrome://messenger/skin/icons/server-local.png");
}
/* ..... News Folders ..... */
treechildren::-moz-tree-image(folderNameCol, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/server-news.png");
}
@ -158,6 +163,10 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isS
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-rss) {
list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}
/* ::::: All Servers ::::: */
treechildren::-moz-tree-cell-text(closed, subfoldersHaveUnreadMessages-true) {

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

@ -164,3 +164,11 @@ span.moz-txt-formfeed {
cursor: -moz-zoom-in;
max-width: 100%;
}
/* Correct style for messages already converted from RSS to HTML email;
see bug 363154. */
#\_mailrssiframe {
width: 100%;
height: 100%;
}

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

@ -36,26 +36,32 @@
*
* ***** END LICENSE BLOCK ****** */
/* ::::: Folder Pane icons :::::: */
.tabmail-tab[type="folder"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss),
.folderMenuItem[ServerType="rss"] {
list-style-image: url("chrome://messenger/skin/icons/message-news.png");
/* ::::: Feed Subscription UI icons :::::: */
#contentPane {
padding: 14px;
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-rss),
.folderMenuItem[IsServer="true"][ServerType="rss"] {
list-style-image: url("chrome://messenger/skin/icons/server-newsblog.png");
#subscriptionChildren::-moz-tree-image(folderNameCol) {
margin-right: 2px;
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
.tabmail-tab[type="folder"][SpecialFolder="Trash"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Trash),
.folderMenuItem[SpecialFolder="Trash"] {
list-style-image: url("chrome://messenger/skin/icons/folder-trash.png");
#subscriptionChildren::-moz-tree-image(folderNameCol, container) {
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
}
/* ..... Saved Search Folder, Hack to force the saved search artwork to show up for virtual folders in RSS accounts ..... */
.tabmail-tab[type="folder"][SpecialFolder="Virtual"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss, specialFolder-Virtual) {
list-style-image: url("chrome://messenger-newsblog/skin/icons/folder-search-rss.png");
#subscriptionChildren::-moz-tree-image(folderNameCol, container, open) {
list-style-image: url("chrome://messenger/skin/icons/folder-open.png");
}
#rssFeedInfoBox {
border: 1px solid ThreeDShadow;
-moz-border-radius: 0px;
margin: 4px;
padding: 0px;
}
#backgroundBox {
background-color: ThreeDLightShadow;
}

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

@ -222,6 +222,7 @@ treechildren::-moz-tree-image(subjectCol, imapdeleted, offline) {
list-style-image: url("chrome://messenger/skin/icons/message-mail-delete-offl.png");
}
treechildren::-moz-tree-image(subjectCol, rss),
treechildren::-moz-tree-image(subjectCol, news) {
list-style-image: url("chrome://messenger/skin/icons/message-news.png");
}
@ -234,6 +235,7 @@ tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, attac
list-style-image: url("chrome://messenger/skin/icons/message-news-attach-offl.png");
}
treechildren::-moz-tree-image(subjectCol, rss, new),
treechildren::-moz-tree-image(subjectCol, news, new) {
list-style-image: url("chrome://messenger/skin/icons/message-news-new.png");
}

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

@ -104,6 +104,7 @@ textbox[readonly="true"] {
/* ::::: plain textbox ::::: */
textbox.plain {
background-color: transparent;
margin: 0px !important;
border: none !important;
padding: 0px !important;

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

@ -5,6 +5,7 @@ modern.jar:
% skin help modern/1.0 %skin/modern/help/
% skin messenger modern/1.0 %skin/modern/messenger/
% skin navigator modern/1.0 %skin/modern/navigator/
% skin messenger-newsblog modern/1.0 %skin/modern/messenger-newsblog/
skin/modern/communicator/brand.css (communicator/brand.css)
skin/modern/communicator/prefpanels.css (communicator/prefpanels.css)
skin/modern/communicator/preferences.css (communicator/preferences.css)
@ -442,6 +443,7 @@ modern.jar:
skin/modern/messenger/smime/icons/hdrSignNotOk.gif (messenger/smime/icons/hdrSignNotOk.gif)
skin/modern/messenger/smime/icons/hdrCryptoOk.gif (messenger/smime/icons/hdrCryptoOk.gif)
skin/modern/messenger/smime/icons/hdrCryptoNotOk.gif (messenger/smime/icons/hdrCryptoNotOk.gif)
skin/modern/messenger-newsblog/feed-subscriptions.css (messenger/newsblog/feed-subscriptions.css)
skin/modern/navigator/linkToolbar.css (navigator/linkToolbar.css)
skin/modern/navigator/navigator.css (navigator/navigator.css)
skin/modern/navigator/pageInfo.css (navigator/pageInfo.css)

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

@ -117,6 +117,10 @@ separator.thin {
list-style-image: url("chrome://messenger/skin/icons/acct-subscribe.gif");
}
#SubscribeRSS {
list-style-image: url("chrome://messenger/skin/icons/acct-subscribe.gif");
}
#SearchMessages {
list-style-image: url("chrome://messenger/skin/icons/acct-search.gif");
}

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

@ -51,6 +51,11 @@
list-style-image: url("chrome://messenger/skin/icons/folder-open.gif");
}
.folderMenuItem[ServerType="rss"],
.folderMenuItem[ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
}
/* ..... special folders ..... */
.folderMenuItem[SpecialFolder="Inbox"] {
@ -123,16 +128,14 @@
list-style-image: url("chrome://messenger/skin/icons/server-local.gif");
}
/* ..... newsgroups ..... */
.folderMenuItem[IsServer="true"][ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/server-news.gif");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.gif");
}
.folderMenuItem[IsServer="true"][ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/server-news.gif");
}
.folderMenuItem[ServerType="nntp"] {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
.folderMenuItem[IsServer="true"][ServerType="rss"] {
list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}

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

@ -54,6 +54,18 @@ treechildren::-moz-tree-image(folderNameCol, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-new.gif");
}
/* ..... News and Feeds ..... */
treechildren::-moz-tree-image(folderNameCol, serverType-nntp),
treechildren::-moz-tree-image(folderNameCol, serverType-rss) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
}
treechildren::-moz-tree-image(folderNameCol, serverType-nntp, newMessages-true),
treechildren::-moz-tree-image(folderNameCol, serverType-rss, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup-new.gif");
}
/* ..... Inbox ..... */
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox) {
@ -89,7 +101,6 @@ treechildren::-moz-tree-image(folderNameCol, specialFolder-Unsent Messages) {
}
/* ..... Junk ..... */
treechildren::-moz-tree-image(folderNameCol, specialFolder-Junk) {
list-style-image: url("chrome://messenger/skin/icons/folder-junk.gif");
}
@ -106,11 +117,12 @@ treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual) {
list-style-image: url("chrome://messenger/skin/icons/folder-search.gif");
}
/* ...... Shared ..... */
treechildren::-moz-tree-image(folderNameCol, imapShared-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-share.gif");
}
/* ..... Server Folders ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true) {
@ -137,14 +149,6 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-none) {
list-style-image: url("chrome://messenger/skin/icons/server-local.gif");
}
/* ..... News Folders ..... */
treechildren::-moz-tree-image(folderNameCol, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
}
/* ..... News Servers ..... */
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/server-news.gif");
}
@ -153,6 +157,10 @@ treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isS
list-style-image: url("chrome://messenger/skin/icons/server-news-lock.gif");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-rss) {
list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}
/* ::::: All Servers ::::: */
treechildren::-moz-tree-cell-text(closed, subfoldersHaveUnreadMessages-true)

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

@ -167,3 +167,11 @@ span.moz-txt-formfeed {
cursor: -moz-zoom-in;
max-width: 100%;
}
/* Correct style for messages already converted from RSS to HTML email;
see bug 363154. */
#\_mailrssiframe {
width: 100%;
height: 100%;
}

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

@ -36,37 +36,32 @@
*
* ***** END LICENSE BLOCK ****** */
/* ::::: Folder Pane icons :::::: */
.tabmail-tab[type="folder"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss),
.folderMenuItem[ServerType="rss"] {
list-style-image: url("chrome://messenger-newsblog/skin/icons/rss-feed.png");
-moz-image-region: rect(0 16px 16px 0);
/* ::::: Feed Subscription UI icons :::::: */
#contentPane {
padding: 14px;
}
treechildren::-moz-tree-image(folderNameCol, serverType-rss, newMessages-true) {
-moz-image-region: rect(16px 16px 32px 0);
#subscriptionChildren::-moz-tree-image(folderNameCol) {
margin-right: 2px;
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-rss),
.folderMenuItem[IsServer="true"][ServerType="rss"] {
list-style-image: url("chrome://messenger-newsblog/skin/icons/server-rss.png");
#subscriptionChildren::-moz-tree-image(folderNameCol, container) {
list-style-image: url("chrome://messenger/skin/icons/folder-closed.gif");
}
.tabmail-tab[type="folder"][SpecialFolder="Trash"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, specialFolder-Trash),
.folderMenuItem[SpecialFolder="Trash"] {
list-style-image: url("chrome://messenger/skin/icons/folder.png");
-moz-image-region: rect(0 144px 16px 128px);
#subscriptionChildren::-moz-tree-image(folderNameCol, container, open) {
list-style-image: url("chrome://messenger/skin/icons/folder-open.gif");
}
/* ..... Saved Search Folder, Hack to force the saved search artwork to show up for virtual folders in RSS accounts ..... */
.tabmail-tab[type="folder"][SpecialFolder="Virtual"][ServerType="rss"] .tab-icon-image ,
treechildren::-moz-tree-image(folderNameCol, serverType-rss, specialFolder-Virtual) {
list-style-image: url("chrome://messenger/skin/icons/folder.png");
-moz-image-region: rect(0 176px 16px 160px);
#rssFeedInfoBox {
border: 1px solid #2D3B49;
-moz-border-radius: 0px;
margin: 4px;
padding: 0px;
}
treechildren::-moz-tree-image(folderNameCol, serverType-rss, specialFolder-Virtual, newMessages-true) {
-moz-image-region: rect(16px 176px 32px 160px);
#backgroundBox {
background-color: #BBC6D1;
}

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

@ -257,6 +257,7 @@ treechildren::-moz-tree-image(subjectCol, imapdeleted, offline) {
list-style-image: url("chrome://messenger/skin/icons/message-mail-delete-offl.gif");
}
treechildren::-moz-tree-image(subjectCol, rss),
treechildren::-moz-tree-image(subjectCol, news) {
list-style-image: url("chrome://messenger/skin/icons/message-news.gif");
}
@ -269,6 +270,7 @@ tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, attac
list-style-image: url("chrome://messenger/skin/icons/message-news-attach-offl.gif");
}
treechildren::-moz-tree-image(subjectCol, rss, new),
treechildren::-moz-tree-image(subjectCol, news, new) {
list-style-image: url("chrome://messenger/skin/icons/message-news-new.gif");
}