--- a/mail/base/content/mailCommands.js
+++ b/mail/base/content/mailCommands.js
@@ -250,20 +250,18 @@ function ComposeMessage(type, format, fo
{
uri = "";
for (var i = 0; i < messageArray.length; ++i)
{
var messageUri = messageArray[i];
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 ||
type == msgComposeType.ForwardInline ||
type == msgComposeType.ReplyToGroup ||
type == msgComposeType.ReplyToSender ||
type == msgComposeType.ReplyToSenderAndGroup ||
type == msgComposeType.Template ||
--- a/mail/base/content/mailContextMenus.js
+++ b/mail/base/content/mailContextMenus.js
@@ -502,20 +502,25 @@ function fillFolderPaneContextMenu()
var numSelected = folders.length;
var folder = folders[0];
var isVirtualFolder = folder ? folder.flags & MSG_FOLDER_FLAG_VIRTUAL : false;
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)
{
ShowMenuItem("folderPaneContext-settings", false);
ShowMenuItem("folderPaneContext-properties", true);
EnableMenuItem("folderPaneContext-properties", true);
}
else
@@ -540,21 +545,17 @@ function fillFolderPaneContextMenu()
EnableMenuItem("folderPaneContext-emptyJunk", true);
var showSendUnsentMessages = (numSelected <= 1) && (specialFolder == 'Unsent Messages');
ShowMenuItem("folderPaneContext-sendUnsentMessages", showSendUnsentMessages);
if (showSendUnsentMessages)
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);
EnableMenuItem("folderPaneContext-newsUnsubscribe", true);
ShowMenuItem("folderPaneContext-markNewsgroupAllRead", (numSelected <= 1) && isNewsgroup);
EnableMenuItem("folderPaneContext-markNewsgroupAllRead", true);
// End of News folder context menu =======================================
--- a/mail/base/content/mailWindowOverlay.js
+++ b/mail/base/content/mailWindowOverlay.js
@@ -1212,18 +1212,17 @@ function getDestinationFolder(preselecte
return destinationFolder;
}
/** Open subscribe window. */
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
}
function ConfirmUnsubscribe(folder)
{
if (!gMessengerBundle)
--- a/mail/base/content/mailWindowOverlay.xul
+++ b/mail/base/content/mailWindowOverlay.xul
@@ -57,16 +57,17 @@
%brandDTD;
]>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<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"/>
<script type="application/x-javascript" src="chrome://global/content/viewZoomOverlay.js"/>
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
<stringbundle id="bundle_offlinePrompts" src="chrome://messenger/locale/offline.properties"/>
--- a/mail/extensions/Makefile.in
+++ b/mail/extensions/Makefile.in
@@ -37,17 +37,17 @@
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
-DIRS = newsblog
+DIRS = $(NULL)
ifdef MOZ_PSM
BUILD_SMIME=1
endif
ifdef BUILD_SMIME
DIRS += smime
endif
deleted file mode 100755
--- a/mail/locales/en-US/chrome/messenger-newsblog/newsblog.dtd
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- folder pane context menu item -->
-<!ENTITY folderContextRSSSubscribe.label "Subscribe…">
-<!ENTITY folderContextRSSSubscribe.accesskey "b">
-
-
--- a/mail/locales/jar.mn
+++ b/mail/locales/jar.mn
@@ -127,17 +127,16 @@
locale/@AB_CD@/messenger/preferences/notifications.dtd (%chrome/messenger/preferences/notifications.dtd)
locale/@AB_CD@/messenger/preferences/preferences.properties (%chrome/messenger/preferences/preferences.properties)
locale/@AB_CD@/messenger/migration/migration.dtd (%chrome/messenger/migration/migration.dtd)
locale/@AB_CD@/messenger/migration/migration.properties (%chrome/messenger/migration/migration.properties)
locale/@AB_CD@/messenger/search/searchIntegrationDialogWin.dtd (%chrome/messenger/search/searchIntegrationDialogWin.dtd)
% 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)
locale/@AB_CD@/messenger-newsblog/am-newsblog.properties (%chrome/messenger-newsblog/am-newsblog.properties)
locale/@AB_CD@/messenger-newsblog/am-newsblog.dtd (%chrome/messenger-newsblog/am-newsblog.dtd)
% locale messenger-smime @AB_CD@ %locale/@AB_CD@/messenger-smime/
locale/@AB_CD@/messenger-smime/msgCompSMIMEOverlay.dtd (%chrome/messenger-smime/msgCompSMIMEOverlay.dtd)
locale/@AB_CD@/messenger-smime/msgCompSMIMEOverlay.properties (%chrome/messenger-smime/msgCompSMIMEOverlay.properties)
--- a/mail/themes/pinstripe/mail/folderMenus.css
+++ b/mail/themes/pinstripe/mail/folderMenus.css
@@ -42,71 +42,82 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* ::::: folder icons for menus ::::: */
.folderMenuItem {
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"] {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.png");
}
.folderMenuItem[SpecialFolder="Sent"] {
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");
}
.folderMenuItem[SpecialFolder="Templates"] {
list-style-image: url("chrome://messenger/skin/icons/folder-template.png");
}
.folderMenuItem[SpecialFolder="Junk"] {
list-style-image: url("chrome://messenger/skin/icons/folder-junk.png");
}
.folderMenuItem[SpecialFolder="Trash"] {
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");
}
.folderMenuItem[IsServer="true"][open="true"] {
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");
}
/* 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");
+/* 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");
}
-
--- a/mail/themes/pinstripe/mail/folderPane.css
+++ b/mail/themes/pinstripe/mail/folderPane.css
@@ -11,16 +11,28 @@ treechildren::-moz-tree-image(folderName
margin-right: 2px;
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
}
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) {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.png");
}
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.png");
@@ -57,78 +69,78 @@ treechildren::-moz-tree-image(folderName
}
/* ..... Trash ..... */
.tabmail-tab[type="folder"][SpecialFolder="Trash"] .tab-icon-image ,
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
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.png");
+}
+
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-pop3, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-imap, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-none) {
list-style-image: url("chrome://messenger/skin/icons/server-local.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");
-}
-
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp) {
list-style-image: url("chrome://messenger/skin/icons/server-news.png");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isSecure-true) {
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;
}
treechildren::-moz-tree-cell-text(hasUnreadMessages-true) {
font-weight: bold;
}
--- a/mail/themes/pinstripe/mail/jar.mn
+++ b/mail/themes/pinstripe/mail/jar.mn
@@ -78,17 +78,16 @@ classic.jar:
skin/classic/messenger/messengercompose/right-button-base.png (compose/right-button-base.png)
skin/classic/messenger/messengercompose/right-button-disabled.png (compose/right-button-disabled.png)
skin/classic/messenger/messengercompose/right-button-pressed.png (compose/right-button-pressed.png)
skin/classic/messenger/messengercompose/small-button-base.png (compose/small-button-base.png)
skin/classic/messenger/messengercompose/small-button-disabled.png (compose/small-button-disabled.png)
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)
skin/classic/messenger/preferences/radio-selected-bg.png (preferences/radio-selected-bg.png)
skin/classic/messenger/smime/msgCompSMIMEOverlay.css (smime/msgCompSMIMEOverlay.css)
skin/classic/messenger/smime/msgHdrViewSMIMEOverlay.css (smime/msgHdrViewSMIMEOverlay.css)
skin/classic/messenger/smime/msgReadSMIMEOverlay.css (smime/msgReadSMIMEOverlay.css)
skin/classic/messenger/smime/msgReadSecurityInfo.css (smime/msgReadSecurityInfo.css)
--- a/mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css
+++ b/mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css
@@ -57,16 +57,12 @@
#rssFeedInfoBox {
border: 1px solid ThreeDShadow;
-moz-border-radius: 0px;
margin: 4px;
padding: 0px;
}
-#rssFeedInfoBox textbox {
- background-color: transparent;
-}
-
#backgroundBox {
background-color: #FFFFFF;
opacity: 0.5;
}
deleted file mode 100644
--- a/mail/themes/pinstripe/mail/newsblog/newsBlogOverlay.css
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- 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 RSS Subscription CSS
- *
- * 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>
- *
- * 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 ****** */
-
-/* ::::: 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");
-}
-
-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");
-}
-
-.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");
-}
-
-/* ..... 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");
-}
--- a/mail/themes/qute/mail/folderMenus.css
+++ b/mail/themes/qute/mail/folderMenus.css
@@ -47,16 +47,33 @@
list-style-image: url("chrome://messenger/skin/icons/folder.png");
-moz-image-region: rect(0 16px 16px 0);
}
.folderMenuItem[open="true"] {
-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"] {
-moz-image-region: rect(0 48px 16px 32px);
}
.folderMenuItem[SpecialFolder="Sent"] {
-moz-image-region: rect(0 64px 16px 48px);
@@ -81,16 +98,18 @@
.folderMenuItem[SpecialFolder="Trash"] {
-moz-image-region: rect(0 144px 16px 128px);
}
.folderMenuItem[SpecialFolder="Virtual"] {
-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);
}
.folderMenuItem[IsServer="true"][ServerType="imap"][IsSecure="true"],
.folderMenuItem[IsServer="true"][ServerType="pop3"][IsSecure="true"] {
-moz-image-region: rect(0 32px 16px 16px);
@@ -105,12 +124,12 @@
.folderMenuItem[IsServer="true"][ServerType="nntp"] {
-moz-image-region: rect(0 64px 16px 48px);
}
.folderMenuItem[IsServer="true"][ServerType="nntp"][IsSecure="true"] {
-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");
}
--- a/mail/themes/qute/mail/folderPane.css
+++ b/mail/themes/qute/mail/folderPane.css
@@ -22,96 +22,132 @@ treechildren::-moz-tree-image(folderName
treechildren::-moz-tree-image(folderNameCol, selected, open) {
-moz-image-region: rect(0 32px 16px 16px);
}
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);
}
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox, newMessages-true) {
-moz-image-region: rect(16px 48px 32px 32px);
}
/* ..... 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);
}
/* ..... Shared folders .....
treechildren::-moz-tree-image(folderNameCol, imapShared-true) {
-moz-image-region: rect(0 192px 16px 176px);
}
*/
/* ..... 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);
}
treechildren::-moz-tree-image(folderNameCol, specialFolder-Virtual, newMessages-true) {
-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) {
list-style-image: url("chrome://messenger/skin/icons/server.png");
-moz-image-region: rect(0 16px 16px 0);
}
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),
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-imap, isSecure-true) {
-moz-image-region: rect(0 32px 16px 16px);
}
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true, isSecure-true) {
@@ -133,20 +169,21 @@ treechildren::-moz-tree-image(folderName
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp) {
-moz-image-region: rect(0 64px 16px 48px) !important;
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isSecure-true) {
-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 ::::: */
treechildren::-moz-tree-cell-text(closed, subfoldersHaveUnreadMessages-true) {
font-weight: bold;
}
--- a/mail/themes/qute/mail/jar.mn
+++ b/mail/themes/qute/mail/jar.mn
@@ -48,17 +48,16 @@ classic.jar:
skin/classic/messenger/addressbook/icons/secure-remote-addrbook.png (addrbook/secure-remote-addrbook.png)
* skin/classic/messenger/messengercompose/messengercompose.css (compose/messengercompose.css)
* skin/classic/messenger/messengercompose/editorOverlay.css (compose/editorOverlay.css)
skin/classic/messenger/messengercompose/compose-toolbar.png (compose/compose-toolbar.png)
skin/classic/messenger/messengercompose/compose-toolbar-small.png (compose/compose-toolbar-small.png)
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)
skin/classic/messenger/preferences/general.png (preferences/general.png)
skin/classic/messenger/preferences/display.png (preferences/display.png)
skin/classic/messenger/preferences/composition.png (preferences/composition.png)
skin/classic/messenger/preferences/privacy.png (preferences/privacy.png)
skin/classic/messenger/preferences/attachments.png (preferences/attachments.png)
--- a/mail/themes/qute/mail/newsblog/feed-subscriptions.css
+++ b/mail/themes/qute/mail/newsblog/feed-subscriptions.css
@@ -63,16 +63,12 @@
#rssFeedInfoBox {
border: 1px solid ThreeDShadow;
-moz-border-radius: 0px;
margin: 4px;
padding: 0px;
}
-#rssFeedInfoBox textbox {
- background-color: transparent;
-}
-
#backgroundBox {
background-color: #FFFFFF;
opacity: 0.5;
}
deleted file mode 100644
--- a/mail/themes/qute/mail/newsblog/newsBlogOverlay.css
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- 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 RSS Subscription CSS
- *
- * 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>
- *
- * 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 ****** */
-
-/* ::::: 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);
-}
-
-treechildren::-moz-tree-image(folderNameCol, serverType-rss, newMessages-true) {
- -moz-image-region: rect(16px 16px 32px 0);
-}
-
-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");
-}
-
-.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);
-}
-
-/* ..... 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);
-}
-
-treechildren::-moz-tree-image(folderNameCol, serverType-rss, specialFolder-Virtual, newMessages-true) {
- -moz-image-region: rect(16px 176px 32px 160px);
-}
--- a/mailnews/base/prefs/resources/content/pref-mailnews.js
+++ b/mailnews/base/prefs/resources/content/pref-mailnews.js
@@ -68,16 +68,19 @@ function defaultClientSetup()
.getService(nsIShellService);
document.getElementById("setDefaultMail").disabled =
shellService.isDefaultClient(false, nsIShellService.MAIL);
document.getElementById("setDefaultNews").disabled =
shellService.isDefaultClient(false, nsIShellService.NEWS);
+ document.getElementById("setDefaultFeed").disabled =
+ shellService.isDefaultClient(false, nsIShellService.RSS);
+
document.getElementById("defaultMailPrefs").hidden = false;
}
}
function onSetDefaultMail()
{
var shellService = Components.classes["@mozilla.org/suite/shell-service;1"]
.getService(nsIShellService);
@@ -93,8 +96,19 @@ function onSetDefaultNews()
var shellService = Components.classes["@mozilla.org/suite/shell-service;1"]
.getService(nsIShellService);
shellService.setDefaultClient(false, false, nsIShellService.NEWS);
shellService.shouldBeDefaultClientFor |= nsIShellService.NEWS;
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;
+}
--- a/mailnews/base/prefs/resources/content/pref-mailnews.xul
+++ b/mailnews/base/prefs/resources/content/pref-mailnews.xul
@@ -76,16 +76,18 @@
<preference id="mail.toolbars.showbutton.stop"
name="mail.toolbars.showbutton.stop" type="bool"/>
<preference id="mail.toolbars.showbutton.junk"
name="mail.toolbars.showbutton.junk" type="bool"/>
<preference id="system.windows.lock_ui.defaultMailClient" readonly="true"
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>
<caption label="&generalSettings.caption;"/>
<hbox align="center">
<checkbox id="mailnewsConfirmMoveFoldersToTrash" label="&confirmMove.label;"
preference="mailnews.confirm.moveFoldersToTrash"
@@ -110,16 +112,21 @@
<description>&defaultMailSettings.description;</description>
<hbox class="indent" align="center">
<button id="setDefaultMail" accesskey="&setDefaultMail.accesskey;"
label="&setDefaultMail.label;" oncommand="onSetDefaultMail();"
preference="system.windows.lock_ui.defaultMailClient"/>
<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>
<groupbox>
<caption label="&messengerStartPage.caption;"/>
<hbox align="center">
<checkbox id="mailnewsStartPageEnabled" label="&enableStartPage.label;"
--- a/mailnews/base/resources/content/mailCommands.js
+++ b/mailnews/base/resources/content/mailCommands.js
@@ -237,26 +237,28 @@ function ComposeMessage(type, format, fo
if (server)
{
var tmpIdentity = getIdentityForServer(server, hintForIdentity);
if (tmpIdentity && hintForIdentity.search(tmpIdentity.email) >= 0)
identity = tmpIdentity;
}
}
- 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 :-)
if (i == 7)
break;
}
else
{
--- a/mailnews/base/resources/content/mailContextMenus.js
+++ b/mailnews/base/resources/content/mailContextMenus.js
@@ -285,35 +285,48 @@ function fillFolderPaneContextMenu()
if (startIndex.value < 0)
return false;
var numSelected = endIndex.value - startIndex.value + 1;
var folderResource = GetFolderResource(folderTree, startIndex.value);
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)
{
ShowMenuItem("folderPaneContext-settings", false);
ShowMenuItem("folderPaneContext-properties", true);
EnableMenuItem("folderPaneContext-properties", true);
}
else
{
ShowMenuItem("folderPaneContext-properties", false);
ShowMenuItem("folderPaneContext-settings", true);
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);
ShowMenuItem("folderPaneContext-openNewWindow", (numSelected <= 1) && !isServer);
EnableMenuItem("folderPaneContext-openNewWindow", true);
SetupRenameMenuItem(folderResource, numSelected, isServer, serverType, specialFolder);
SetupRemoveMenuItem(folderResource, numSelected, isServer, serverType, specialFolder);
--- a/mailnews/base/resources/content/mailWindowOverlay.js
+++ b/mailnews/base/resources/content/mailWindowOverlay.js
@@ -863,19 +863,23 @@ function GetInboxFolder(server)
catch (ex) {
dump(ex + "\n");
}
return null;
}
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);
}
function MsgGetMessage()
{
// if offline, prompt for getting messages
if(CheckOnline())
@@ -1206,18 +1210,22 @@ function getDestinationFolder(preselecte
else
destinationFolder = preselectedFolder;
return destinationFolder;
}
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)
{
if (!gMessengerBundle)
gMessengerBundle = document.getElementById("bundle_messenger");
var titleMsg = gMessengerBundle.getString("confirmUnsubscribeTitle");
@@ -1882,16 +1890,22 @@ function MsgViewPageInfo() {}
function MsgFirstUnreadMessage() {}
function MsgFirstFlaggedMessage() {}
function MsgAddSenderToAddressBook() {}
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
if (contentWindow.scrollY > 0) {
contentWindow.scrollByPages(-1);
}
else {
goDoCommand("cmd_previousUnreadMsg");
--- a/mailnews/base/resources/content/mailWindowOverlay.xul
+++ b/mailnews/base/resources/content/mailWindowOverlay.xul
@@ -64,16 +64,17 @@
]>
<overlay
xmlns:nc="http://home.netscape.com/NC-rdf#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<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"/>
<script type="application/x-javascript" src="chrome://global/content/printUtils.js"/>
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
<stringbundle id="bundle_offlinePrompts" src="chrome://messenger/locale/offline.properties"/>
--- a/mailnews/base/resources/content/msgMail3PaneWindow.js
+++ b/mailnews/base/resources/content/msgMail3PaneWindow.js
@@ -725,18 +725,31 @@ function OnLoadMessenger()
//need to add to session before trying to load start folder otherwise listeners aren't
//set up correctly.
// argument[0] --> folder uri
// argument[1] --> optional message key
// 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]
: null;
}
setTimeout("loadStartFolder(gStartFolderUri);", 0);
--- a/mailnews/base/resources/content/start.xhtml
+++ b/mailnews/base/resources/content/start.xhtml
@@ -58,16 +58,17 @@
<h1>&headline.label;</h1>
<div id="main">
<p>&description.label;</p>
<h2>&features.title;</h2>
<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>
<li>&feat_labels.label;</li>
<li>&feat_integration.label;</li>
</ul>
<h2>&dict.title;</h2>
<p>&dict_intro.label;</p>
--- a/mailnews/extensions/Makefile.in
+++ b/mailnews/extensions/Makefile.in
@@ -38,17 +38,17 @@
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
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
endif
ifdef BUILD_SMIME
DIRS += smime
endif
rename from mail/extensions/newsblog/Makefile.in
rename to mailnews/extensions/newsblog/Makefile.in
rename from mail/extensions/newsblog/content/Feed.js
rename to mailnews/extensions/newsblog/content/Feed.js
rename from mail/extensions/newsblog/content/FeedItem.js
rename to mailnews/extensions/newsblog/content/FeedItem.js
rename from mail/extensions/newsblog/content/am-newsblog.js
rename to mailnews/extensions/newsblog/content/am-newsblog.js
--- a/mail/extensions/newsblog/content/am-newsblog.js
+++ b/mailnews/extensions/newsblog/content/am-newsblog.js
@@ -31,38 +31,12 @@
# 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 *****
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});
-}
rename from mail/extensions/newsblog/content/am-newsblog.xul
rename to mailnews/extensions/newsblog/content/am-newsblog.xul
--- a/mail/extensions/newsblog/content/am-newsblog.xul
+++ b/mailnews/extensions/newsblog/content/am-newsblog.xul
@@ -46,17 +46,18 @@
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
class="color-dialog"
title="&newsblogTitle.label;"
onload="parent.onPanelLoaded('am-newsblog.xul');"
orient="vertical">
<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">
<label value="&accountName.label;" control="server.prettyName"
accesskey="&accountName.accesskey;"/>
<textbox wsm_persist="true" size="30" id="server.prettyName"
prefstring="mail.server.%serverkey%.name"/>
</hbox>
@@ -78,26 +79,31 @@
<checkbox wsm_persist="true"
id="server.loginAtStartUp"
label="&loginAtStartup.label;"
accesskey="&loginAtStartup.accesskey;"
prefattribute="value"
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;"
accesskey="&emptyTrashOnExit.accesskey;"
prefattribute="value"
prefstring="mail.server.%serverkey%.empty_trash_on_exit"/>
<separator class="thin"/>
<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>
rename from mail/extensions/newsblog/content/debug-utils.js
rename to mailnews/extensions/newsblog/content/debug-utils.js
rename from mail/extensions/newsblog/content/edittree.xml
rename to mailnews/extensions/newsblog/content/edittree.xml
rename from mail/extensions/newsblog/content/feed-parser.js
rename to mailnews/extensions/newsblog/content/feed-parser.js
rename from mail/extensions/newsblog/content/feed-properties.js
rename to mailnews/extensions/newsblog/content/feed-properties.js
rename from mail/extensions/newsblog/content/feed-properties.xul
rename to mailnews/extensions/newsblog/content/feed-properties.xul
rename from mail/extensions/newsblog/content/feed-subscriptions.js
rename to mailnews/extensions/newsblog/content/feed-subscriptions.js
rename from mail/extensions/newsblog/content/feed-subscriptions.xul
rename to mailnews/extensions/newsblog/content/feed-subscriptions.xul
rename from mail/extensions/newsblog/content/file-utils.js
rename to mailnews/extensions/newsblog/content/file-utils.js
rename from mail/extensions/newsblog/content/toolbar-icon.xul
rename to mailnews/extensions/newsblog/content/newsblogOverlay.js
--- a/mail/extensions/newsblog/content/toolbar-icon.xul
+++ b/mailnews/extensions/newsblog/content/newsblogOverlay.js
@@ -1,92 +1,112 @@
-<?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">
+# -*- 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 ******
-<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");
+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 (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: aFolder.server, folder: aFolder});
+ lastSubscriptionWindow.focus();
}
-
- function openSubscriptionsDialogFromFolderPane()
+ else
{
- // get the incoming server for the seleted folder
- var selectedFolders = GetSelectedMsgFolders();
- openSubscriptionsDialog(selectedFolders[0]);
+ 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(messageID, msgHdr, type)
+// 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)
{
- // 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 = 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;
+ 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);
+ 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>
-
+}
rename from mail/extensions/newsblog/content/utils.js
rename to mailnews/extensions/newsblog/content/utils.js
rename from mail/extensions/newsblog/jar.mn
rename to mailnews/extensions/newsblog/jar.mn
--- a/mail/extensions/newsblog/jar.mn
+++ b/mailnews/extensions/newsblog/jar.mn
@@ -1,12 +1,11 @@
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)
* content/messenger-newsblog/FeedItem.js (content/FeedItem.js)
* content/messenger-newsblog/feed-parser.js (content/feed-parser.js)
* content/messenger-newsblog/file-utils.js (content/file-utils.js)
* content/messenger-newsblog/utils.js (content/utils.js)
* content/messenger-newsblog/feed-properties.xul (content/feed-properties.xul)
rename from mail/extensions/newsblog/js/newsblog.js
rename to mailnews/extensions/newsblog/js/newsblog.js
rename from mail/extensions/newsblog/rss.rdf
rename to mailnews/extensions/newsblog/rss.rdf
--- a/mailnews/makefiles.sh
+++ b/mailnews/makefiles.sh
@@ -111,11 +111,12 @@ mailnews/extensions/bayesian-spam-filter
mailnews/extensions/bayesian-spam-filter/src/Makefile
mailnews/extensions/bayesian-spam-filter/build/Makefile
mailnews/extensions/mailviews/Makefile
mailnews/extensions/mailviews/public/Makefile
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
"
--- a/suite/common/defaultClientDialog.xul
+++ b/suite/common/defaultClientDialog.xul
@@ -54,18 +54,19 @@
buttons="accept,cancel"
onload="onLoad();"
ondialogaccept="return onAccept();"
title="&defaultClient.title;">
<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"/>
<checkbox id="checkOnStartup" checked="true" label="&checkOnStartup.label;" accesskey="&checkOnStartup.accesskey;"/>
</dialog>
--- a/suite/installer/Makefile.in
+++ b/suite/installer/Makefile.in
@@ -62,16 +62,17 @@ ifneq (,$(filter-out OS2 Darwin,$(OS_ARC
MOZ_PKG_MANIFEST_P = $(srcdir)/unix/packages
endif
endif
MOZ_NONLOCALIZED_PKG_LIST = \
xpcom \
browser \
mail \
+ newsblog \
reporter \
$(NULL)
MOZ_LOCALIZED_PKG_LIST = \
$(AB_CD) \
$(NULL)
MOZ_OPTIONAL_PKG_LIST = \
--- a/suite/installer/windows/packages
+++ b/suite/installer/windows/packages
@@ -496,16 +496,19 @@ bin\components\msgsmime.dll
bin\components\msgsmime.xpt
bin\components\smime-service.js
bin\MapiProxy.dll
bin\mozMapi32.dll
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
bin\extensions\{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}\chrome\chatzilla.jar
bin\extensions\{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}\chrome\icons\default\chatzilla-window.ico
bin\extensions\{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}\chrome.manifest
bin\extensions\{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}\install.rdf
bin\extensions\langpack-@AB_CD@@chatzilla.mozilla.org\chrome\chatzilla.jar
--- a/suite/locales/en-US/chrome/common/defaultClientDialog.dtd
+++ b/suite/locales/en-US/chrome/common/defaultClientDialog.dtd
@@ -1,9 +1,10 @@
<!ENTITY defaultClient.title "Default Client">
<!ENTITY defaultClient.intro "Use &brandShortName; as the default client for:">
<!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">
--- a/suite/locales/en-US/chrome/mailnews/messenger.properties
+++ b/suite/locales/en-US/chrome/mailnews/messenger.properties
@@ -47,16 +47,18 @@ compactFolder=Compact This Folder
removeAccount=Delete Account…
removeNewsAccount=Delete News Account…
removeFolder=Delete Folder
newFolderMenuItem=Folder…
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
titleMailPreHost=for
replyToSender=Reply to Sender
reply=Reply
EMLFiles=Mail Files
OpenEMLFiles=Open Message
copy from mail/locales/en-US/chrome/messenger-newsblog/am-newsblog.dtd
copy to suite/locales/en-US/chrome/mailnews/newsblog/am-newsblog.dtd
copy from mail/locales/en-US/chrome/messenger-newsblog/am-newsblog.properties
copy to suite/locales/en-US/chrome/mailnews/newsblog/am-newsblog.properties
copy from mail/locales/en-US/chrome/messenger-newsblog/feed-properties.dtd
copy to suite/locales/en-US/chrome/mailnews/newsblog/feed-properties.dtd
copy from mail/locales/en-US/chrome/messenger-newsblog/feed-subscriptions.dtd
copy to suite/locales/en-US/chrome/mailnews/newsblog/feed-subscriptions.dtd
copy from mail/locales/en-US/chrome/messenger-newsblog/newsblog.properties
copy to suite/locales/en-US/chrome/mailnews/newsblog/newsblog.properties
--- a/mail/locales/en-US/chrome/messenger-newsblog/newsblog.properties
+++ b/suite/locales/en-US/chrome/mailnews/newsblog/newsblog.properties
@@ -4,18 +4,18 @@ 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=Thunderbird OPML Export
-subscribe-OPMLExportFileName=MyThunderbirdFeeds.opml
+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?
--- a/suite/locales/en-US/chrome/mailnews/pref/pref-mailnews.dtd
+++ b/suite/locales/en-US/chrome/mailnews/pref/pref-mailnews.dtd
@@ -46,26 +46,28 @@
<!ENTITY preserveThreading.label "Preserve threading when sorting messages">
<!ENTITY preserveThreading.accesskey "v">
<!ENTITY defaultMailSettings.description "Make &brandShortName; the default application for:">
<!ENTITY setDefaultMail.label "Mail">
<!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">
<!ENTITY enableStartPage.accesskey "W">
<!ENTITY location.label "Location:">
<!ENTITY location.accesskey "L">
<!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">
<!ENTITY nextButton.label "Next">
<!ENTITY nextButton.accesskey "x">
<!ENTITY junkMailButton.label "Junk">
<!ENTITY junkMailButton.accesskey "J">
<!ENTITY printButton.label "Print">
--- a/suite/locales/en-US/chrome/mailnews/start.dtd
+++ b/suite/locales/en-US/chrome/mailnews/start.dtd
@@ -40,16 +40,17 @@
<!ENTITY headline.label
'Welcome to <a id="vendorURL" href="">&brandShortName;</a> Mail & Newsgroups!'>
<!ENTITY description.label
"&brandShortName; Mail & Newsgroups is a powerful open-source mail and news
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">
<!ENTITY feat_labels.label "Customizable Labels and Mail Views">
<!ENTITY feat_integration.label
"Tight integration with the &brandShortName; application suite">
<!ENTITY dict.title "Dictionaries">
<!ENTITY dict_intro.label "Dictionaries are used to check the spelling of your messages.">
--- a/suite/locales/jar.mn
+++ b/suite/locales/jar.mn
@@ -7,16 +7,17 @@
% locale communicator-platform @AB_CD@ %locale/@AB_CD@/communicator-platform/
% locale communicator-region @AB_CD@ %locale/@AB_CD@/communicator-region/
% locale messenger @AB_CD@ %locale/@AB_CD@/messenger/
% locale messenger-mapi @AB_CD@ %locale/@AB_CD@/messenger-mapi/
% locale messenger-region @AB_CD@ %locale/@AB_CD@/messenger-region/
#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/
% locale navigator-region @AB_CD@ %locale/@AB_CD@/navigator-region/
locale/@AB_CD@/branding/brand.dtd (%chrome/branding/brand.dtd)
locale/@AB_CD@/branding/brand.properties (%chrome/branding/brand.properties)
locale/@AB_CD@/communicator/askViewZoom.dtd (%chrome/common/askViewZoom.dtd)
locale/@AB_CD@/communicator/consoleOverlay.dtd (%chrome/common/consoleOverlay.dtd)
@@ -309,16 +310,21 @@
locale/@AB_CD@/messenger-smime/msgCompSecurityInfo.properties (%chrome/mailnews/smime/msgCompSecurityInfo.properties)
locale/@AB_CD@/messenger-smime/msgCompSMIMEOverlay.dtd (%chrome/mailnews/smime/msgCompSMIMEOverlay.dtd)
locale/@AB_CD@/messenger-smime/msgCompSMIMEOverlay.properties (%chrome/mailnews/smime/msgCompSMIMEOverlay.properties)
locale/@AB_CD@/messenger-smime/msgReadSecurityInfo.dtd (%chrome/mailnews/smime/msgReadSecurityInfo.dtd)
locale/@AB_CD@/messenger-smime/msgReadSMIMEOverlay.dtd (%chrome/mailnews/smime/msgReadSMIMEOverlay.dtd)
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)
locale/@AB_CD@/navigator/metadata.dtd (%chrome/browser/metadata.dtd)
locale/@AB_CD@/navigator/metadata.properties (%chrome/browser/metadata.properties)
locale/@AB_CD@/navigator/navigator.dtd (%chrome/browser/navigator.dtd)
locale/@AB_CD@/navigator/navigator.properties (%chrome/browser/navigator.properties)
locale/@AB_CD@/navigator/pageInfo.dtd (%chrome/browser/pageInfo.dtd)
--- a/suite/shell/public/nsIShellService.idl
+++ b/suite/shell/public/nsIShellService.idl
@@ -45,42 +45,43 @@ interface nsIDOMElement;
interface nsIShellService : nsISupports
{
/**
* app types we can be registered to handle
*/
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
* passed in app type.
*
* This is simply whether or not SeaMonkey is registered to handle
* the url schemes associated with the app.
*
* @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);
/**
* Registers SeaMonkey as the "Default Client" for the
* passed in app types.
*
* @param aForAllUsers Whether or not SeaMonkey should attempt
* to become the default client for all
* users on a multi-user system.
* @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);
/**
* Used to determine whether or not to show a "Set Default Client"
* query dialog. This attribute is true if the application is starting
* up and "shell.checkDefaultClient" is true, otherwise it
* is false.
--- a/suite/shell/src/nsSetDefault.js
+++ b/suite/shell/src/nsSetDefault.js
@@ -35,16 +35,18 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/*
* This component handles the startup command line arguments of the form:
* -setDefaultBrowser
* -setDefaultMail
+ * -setDefaultNews
+ * -setDefaultFeed
*/
const nsIShellService = Components.interfaces.nsIShellService;
const nsICommandLineHandler = Components.interfaces.nsICommandLineHandler;
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
function nsSetDefault() {
}
@@ -61,21 +63,27 @@ nsSetDefault.prototype = {
.getService(nsIShellService);
shell.setDefaultClient(true, true, nsIShellService.MAIL);
}
else if (aCmdline.handleFlag("setDefaultNews", false)) {
var shell = Components.classes["@mozilla.org/browser/shell-service;1"]
.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",
classID: Components.ID("{A3D5B950-690A-491F-A881-2C2CDCD241CB}"),
QueryInterface: XPCOMUtils.generateQI([nsICommandLineHandler]),
_xpcom_categories: [{
category: "command-line-handler",
entry: "m-setdefault"
--- a/suite/shell/src/nsWindowsShellService.cpp
+++ b/suite/shell/src/nsWindowsShellService.cpp
@@ -296,16 +296,17 @@ typedef enum {
#define APP_REG_NAME_MAIL L"SeaMonkey (Mail)"
#define APP_REG_NAME_NEWS L"SeaMonkey (News)"
#define CLS "SOFTWARE\\Classes\\"
#define CLS_HTML "SeaMonkeyHTML"
#define CLS_URL "SeaMonkeyURL"
#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\\"
#define MOZ_CLIENT_MAIL_KEY "Software\\Clients\\Mail"
#define MOZ_CLIENT_NEWS_KEY "Software\\Clients\\News"
#define DI "\\DefaultIcon"
#define II "\\InstallInfo"
#define SOP "\\shell\\open\\command"
@@ -489,16 +490,24 @@ static SETTING gBrowserSettings[] = {
"%APPPATH%,0",
APP_PATH_SUBSTITUTION | APP_NAME_SUBSTITUTION | HKLM_ONLY },
{ MAKE_KEY_NAME2(NEWSCLIENTS, "%APPNAME%", SOP),
"",
"\"%APPPATH%\" -mail",
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.
*/
PRBool
nsWindowsShellService::TestForDefault(SETTING aSettings[], PRInt32 aSize)
{
nsCOMPtr<nsILocalFile> lf;
@@ -696,16 +705,19 @@ nsWindowsShellService::IsDefaultClient(P
// browser check needs to be at the top
if (aApps & nsIShellService::BROWSER)
*aIsDefaultClient &= TestForDefault(gBrowserSettings, sizeof(gBrowserSettings)/sizeof(SETTING));
#ifdef MOZ_MAIL_NEWS
if (aApps & nsIShellService::MAIL)
*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
// checked this session (so that subsequent window opens don't show the
// default client dialog).
if (aStartupCheck)
mCheckedThisSessionClient = PR_TRUE;
--- a/suite/themes/classic/jar.mn
+++ b/suite/themes/classic/jar.mn
@@ -1,14 +1,15 @@
classic.jar:
% skin communicator classic/1.0 %skin/classic/communicator/
% skin editor classic/1.0 %skin/classic/editor/
% 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)
#else
skin/classic/communicator/button.css (communicator/win/button.css)
#endif
skin/classic/communicator/brand.css (communicator/brand.css)
skin/classic/communicator/dialogs.css (communicator/dialogs.css)
@@ -286,16 +287,17 @@ classic.jar:
skin/classic/messenger/smime/icons/sbSignNotOk.gif (messenger/smime/icons/sbSignNotOk.gif)
skin/classic/messenger/smime/icons/sbCryptoOk.gif (messenger/smime/icons/sbCryptoOk.gif)
skin/classic/messenger/smime/icons/sbCryptoNotOk.gif (messenger/smime/icons/sbCryptoNotOk.gif)
skin/classic/messenger/smime/icons/hdrSignOk.gif (messenger/smime/icons/hdrSignOk.gif)
skin/classic/messenger/smime/icons/hdrSignUnknown.gif (messenger/smime/icons/hdrSignUnknown.gif)
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)
#ifdef XP_MACOSX
skin/classic/navigator/tabbrowser.css (navigator/mac/tabbrowser.css)
#else
skin/classic/navigator/tabbrowser.css (navigator/win/tabbrowser.css)
#endif
--- a/suite/themes/classic/messenger/accountCentral.css
+++ b/suite/themes/classic/messenger/accountCentral.css
@@ -113,16 +113,20 @@ separator.thin {
#SubscribeNewsgroups {
list-style-image: url("chrome://messenger/skin/icons/acct-subscribe.png");
}
#SubscribeImapFolders {
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");
}
#AccountSettings {
list-style-image: url("chrome://messenger/skin/icons/acct-prefs.png");
}
--- a/suite/themes/classic/messenger/folderMenus.css
+++ b/suite/themes/classic/messenger/folderMenus.css
@@ -47,16 +47,21 @@
.folderMenuItem {
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
}
.folderMenuItem[open="true"] {
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"] {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.png");
}
.folderMenuItem[SpecialFolder="Inbox"][open="true"] {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox-open.png");
@@ -101,44 +106,41 @@ list-style-image: url("chrome://messenge
.folderMenuItem[SpecialFolder="Trash"][open="true"] {
list-style-image: url("chrome://messenger/skin/icons/folder-trash-open.png");
}
.folderMenuItem[SpecialFolder="Virtual"] {
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");
}
.folderMenuItem[IsServer="true"][open="true"] {
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"] {
+ 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");
+.folderMenuItem[IsServer="true"][ServerType="rss"] {
+ list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}
-
--- a/suite/themes/classic/messenger/folderPane.css
+++ b/suite/themes/classic/messenger/folderPane.css
@@ -51,16 +51,28 @@ treechildren::-moz-tree-image(folderName
margin-right: 2px;
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
}
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) {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.png");
}
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox-new.png");
@@ -103,35 +115,34 @@ treechildren::-moz-tree-image(folderName
}
/* ..... Saved Searches ..... */
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;
}
treechildren::-moz-tree-image(folderNameCol, imapShared-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-share.png");
}
+/* ..... Server Folders ..... */
-/* ..... 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");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-imap, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.png");
}
@@ -139,30 +150,28 @@ treechildren::-moz-tree-image(folderName
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock-new.png");
}
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");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isSecure-true) {
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) {
font-weight: bold;
}
treechildren::-moz-tree-cell-text(folderNameCol, isServer-true),
treechildren::-moz-tree-cell-text(hasUnreadMessages-true) {
--- a/suite/themes/classic/messenger/messageBody.css
+++ b/suite/themes/classic/messenger/messageBody.css
@@ -159,8 +159,16 @@ span.moz-txt-formfeed {
.moz-attached-image[overflowing="true"] {
cursor: -moz-zoom-out;
}
.moz-attached-image[isshrunk="true"] {
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%;
+}
copy from mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css
copy to suite/themes/classic/messenger/newsblog/feed-subscriptions.css
--- a/mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css
+++ b/suite/themes/classic/messenger/newsblog/feed-subscriptions.css
@@ -33,17 +33,17 @@
* 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 ****** */
/* ::::: Feed Subscription UI icons :::::: */
-#subscriptionsDialog {
+#contentPane {
padding: 14px;
}
#subscriptionChildren::-moz-tree-image(folderNameCol) {
margin-right: 2px;
list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
}
@@ -57,16 +57,11 @@
#rssFeedInfoBox {
border: 1px solid ThreeDShadow;
-moz-border-radius: 0px;
margin: 4px;
padding: 0px;
}
-#rssFeedInfoBox textbox {
- background-color: transparent;
+#backgroundBox {
+ background-color: ThreeDLightShadow;
}
-
-#backgroundBox {
- background-color: #FFFFFF;
- opacity: 0.5;
-}
--- a/suite/themes/classic/messenger/threadPane.css
+++ b/suite/themes/classic/messenger/threadPane.css
@@ -217,28 +217,30 @@ treechildren::-moz-tree-image(subjectCol
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, offline) {
list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-offl.png");
}
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");
}
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, attach) {
list-style-image: url("chrome://messenger/skin/icons/message-news-attach.png");
}
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, attach, offline) {
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");
}
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, new, attach) {
list-style-image: url("chrome://messenger/skin/icons/message-news-new-attach.png");
}
--- a/suite/themes/modern/global/textbox.css
+++ b/suite/themes/modern/global/textbox.css
@@ -99,16 +99,17 @@ textbox[disabled="true"] {
textbox[readonly="true"] {
background-color: #C7D0D9;
}
/* ::::: plain textbox ::::: */
textbox.plain {
+ background-color: transparent;
margin: 0px !important;
border: none !important;
padding: 0px !important;
}
/* ::::: search textbox ::::: */
.textbox-search-icon {
--- a/suite/themes/modern/jar.mn
+++ b/suite/themes/modern/jar.mn
@@ -1,15 +1,16 @@
modern.jar:
% skin communicator modern/1.0 %skin/modern/communicator/
% skin editor modern/1.0 %skin/modern/editor/
% skin global modern/1.0 %skin/modern/global/
% 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)
skin/modern/communicator/tasksOverlay.css (communicator/tasksOverlay.css)
skin/modern/communicator/button.css (communicator/button.css)
skin/modern/communicator/toolbar.css (communicator/toolbar.css)
skin/modern/communicator/dialogs.css (communicator/dialogs.css)
skin/modern/communicator/helpOverlay.css (communicator/helpOverlay.css)
@@ -437,16 +438,17 @@ modern.jar:
skin/modern/messenger/smime/icons/sbSignNotOk.gif (messenger/smime/icons/sbSignNotOk.gif)
skin/modern/messenger/smime/icons/sbCryptoOk.gif (messenger/smime/icons/sbCryptoOk.gif)
skin/modern/messenger/smime/icons/sbCryptoNotOk.gif (messenger/smime/icons/sbCryptoNotOk.gif)
skin/modern/messenger/smime/icons/hdrSignOk.gif (messenger/smime/icons/hdrSignOk.gif)
skin/modern/messenger/smime/icons/hdrSignUnknown.gif (messenger/smime/icons/hdrSignUnknown.gif)
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)
skin/modern/navigator/tabbrowser.css (navigator/tabbrowser.css)
skin/modern/navigator/btn1/feeds.png (navigator/btn1/feeds.png)
skin/modern/navigator/btn1/first-dis.gif (navigator/btn1/first-dis.gif)
skin/modern/navigator/btn1/first-hov.gif (navigator/btn1/first-hov.gif)
skin/modern/navigator/btn1/first.gif (navigator/btn1/first.gif)
--- a/suite/themes/modern/messenger/accountCentral.css
+++ b/suite/themes/modern/messenger/accountCentral.css
@@ -112,16 +112,20 @@ separator.thin {
#SubscribeNewsgroups {
list-style-image: url("chrome://messenger/skin/icons/acct-subscribe.gif");
}
#SubscribeImapFolders {
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");
}
#AccountSettings {
list-style-image: url("chrome://messenger/skin/icons/acct-prefs.gif");
}
--- a/suite/themes/modern/messenger/folderMenus.css
+++ b/suite/themes/modern/messenger/folderMenus.css
@@ -46,16 +46,21 @@
.folderMenuItem {
list-style-image: url("chrome://messenger/skin/icons/folder-closed.gif");
}
.folderMenuItem[open="true"] {
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"] {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.gif");
}
.folderMenuItem[SpecialFolder="Inbox"][open="true"] {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox-open.gif");
@@ -118,21 +123,19 @@
.folderMenuItem[IsServer="true"][ServerType="pop3"][IsSecure="true"] {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock.gif");
}
.folderMenuItem[IsServer="true"][ServerType="none"] {
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[IsServer="true"][ServerType="rss"] {
+ list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}
-
-.folderMenuItem[ServerType="nntp"] {
- list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
-}
--- a/suite/themes/modern/messenger/folderPane.css
+++ b/suite/themes/modern/messenger/folderPane.css
@@ -49,16 +49,28 @@ treechildren::-moz-tree-image(folderName
margin-right: 2px;
list-style-image: url("chrome://messenger/skin/icons/folder-closed.gif");
}
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) {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox.gif");
}
treechildren::-moz-tree-image(folderNameCol, specialFolder-Inbox, newMessages-true) {
list-style-image: url("chrome://messenger/skin/icons/folder-inbox-new.gif");
@@ -84,38 +96,38 @@ treechildren::-moz-tree-image(folderName
/* ..... Unsent Messages ..... */
treechildren::-moz-tree-image(folderNameCol, specialFolder-Unsent Messages) {
list-style-image: url("chrome://messenger/skin/icons/folder-outbox.gif");
}
/* ..... Junk ..... */
-
treechildren::-moz-tree-image(folderNameCol, specialFolder-Junk) {
list-style-image: url("chrome://messenger/skin/icons/folder-junk.gif");
}
/* ..... Trash ..... */
treechildren::-moz-tree-image(folderNameCol, specialFolder-Trash) {
list-style-image: url("chrome://messenger/skin/icons/folder-trash.gif");
}
/* ..... Saved Searches ..... */
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) {
list-style-image: url("chrome://messenger/skin/icons/server-mail.gif");
}
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true) {
list-style-image: url("chrome://messenger/skin/icons/server-mail-new.gif");
@@ -132,32 +144,28 @@ treechildren::-moz-tree-image(folderName
treechildren::-moz-tree-image(folderNameCol, biffState-NewMail, isServer-true, isSecure-true) {
list-style-image: url("chrome://messenger/skin/icons/server-remote-lock-new.gif");
}
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");
}
treechildren::-moz-tree-image(folderNameCol, isServer-true, serverType-nntp, isSecure-true) {
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)
{
font-weight: bold;
}
treechildren::-moz-tree-cell-text(folderNameCol, isServer-true),
--- a/suite/themes/modern/messenger/messageBody.css
+++ b/suite/themes/modern/messenger/messageBody.css
@@ -162,8 +162,16 @@ span.moz-txt-formfeed {
.moz-attached-image[overflowing="true"] {
cursor: -moz-zoom-out;
}
.moz-attached-image[isshrunk="true"] {
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%;
+}
copy from mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css
copy to suite/themes/modern/messenger/newsblog/feed-subscriptions.css
--- a/mail/themes/pinstripe/mail/newsblog/feed-subscriptions.css
+++ b/suite/themes/modern/messenger/newsblog/feed-subscriptions.css
@@ -33,40 +33,35 @@
* 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 ****** */
/* ::::: Feed Subscription UI icons :::::: */
-#subscriptionsDialog {
+#contentPane {
padding: 14px;
}
#subscriptionChildren::-moz-tree-image(folderNameCol) {
margin-right: 2px;
- list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.png");
+ list-style-image: url("chrome://messenger/skin/icons/folder-newsgroup.gif");
}
#subscriptionChildren::-moz-tree-image(folderNameCol, container) {
- list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
+ list-style-image: url("chrome://messenger/skin/icons/folder-closed.gif");
}
#subscriptionChildren::-moz-tree-image(folderNameCol, container, open) {
- list-style-image: url("chrome://messenger/skin/icons/folder-open.png");
+ list-style-image: url("chrome://messenger/skin/icons/folder-open.gif");
}
#rssFeedInfoBox {
- border: 1px solid ThreeDShadow;
+ border: 1px solid #2D3B49;
-moz-border-radius: 0px;
margin: 4px;
padding: 0px;
}
-#rssFeedInfoBox textbox {
- background-color: transparent;
+#backgroundBox {
+ background-color: #BBC6D1;
}
-
-#backgroundBox {
- background-color: #FFFFFF;
- opacity: 0.5;
-}
--- a/suite/themes/modern/messenger/threadPane.css
+++ b/suite/themes/modern/messenger/threadPane.css
@@ -252,28 +252,30 @@ treechildren::-moz-tree-image(subjectCol
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, attach, offline) {
list-style-image: url("chrome://messenger/skin/icons/message-mail-attach-offl.gif");
}
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");
}
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, attach) {
list-style-image: url("chrome://messenger/skin/icons/message-news-attach.gif");
}
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, attach, offline) {
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");
}
tree[noattachcol="true"] > treechildren::-moz-tree-image(subjectCol, news, new, attach) {
list-style-image: url("chrome://messenger/skin/icons/message-news-new-attach.gif");
}