Skip to content

Instantly share code, notes, and snippets.

@liamzebedee
Created February 16, 2013 11:53
Show Gist options
  • Select an option

  • Save liamzebedee/b9670aa85d1b86108e90 to your computer and use it in GitHub Desktop.

Select an option

Save liamzebedee/b9670aa85d1b86108e90 to your computer and use it in GitHub Desktop.
diff -r 92fce13b87d4 calendar/base/content/dialogs/calendar-event-dialog.js
--- a/calendar/base/content/dialogs/calendar-event-dialog.js Fri Feb 15 21:37:24 2013 -0500
+++ b/calendar/base/content/dialogs/calendar-event-dialog.js Sat Feb 16 21:54:16 2013 +1000
@@ -6,6 +6,7 @@
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://calendar/modules/calRecurrenceUtils.jsm");
Components.utils.import("resource:///modules/mailServices.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
try {
Components.utils.import("resource:///modules/cloudFileAccounts.js");
@@ -1289,16 +1290,13 @@
}
/**
- * Open a new Thunderbird compose window.
+ * Open a new Thunderbird compose tab.
*/
function openNewMessage() {
- MailServices.compose.OpenComposeWindow(null,
- null,
- null,
- Components.interfaces.nsIMsgCompType.New,
- Components.interfaces.nsIMsgCompFormat.Default,
- null,
- null);
+ composeTabManager.OpenComposeTab(null, null, null,
+ Components.interfaces.nsIMsgCompType.New,
+ Components.interfaces.nsIMsgCompFormat.Default,
+ null, null);
}
/**
diff -r 92fce13b87d4 calendar/base/src/calUtils.js
--- a/calendar/base/src/calUtils.js Fri Feb 15 21:37:24 2013 -0500
+++ b/calendar/base/src/calUtils.js Sat Feb 16 21:54:16 2013 +1000
@@ -9,6 +9,7 @@
Components.utils.import("resource:///modules/mailServices.js");
Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
function _calIcalCreator(cid, iid) {
return function(icalString) {
@@ -1280,7 +1281,7 @@
msgParams.format = Components.interfaces.nsIMsgCompFormat.Default;
msgParams.composeFields = composeFields;
- MailServices.compose.OpenComposeWindowWithParams(null, msgParams);
+ composeTabManager.OpenComposeTabWithParams(msgParams);
}
/**
diff -r 92fce13b87d4 mail/base/content/mailCommands.js
--- a/mail/base/content/mailCommands.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/base/content/mailCommands.js Sat Feb 16 21:54:16 2013 +1000
@@ -4,6 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
Components.utils.import("resource:///modules/mailServices.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
/**
* Get the identity that most likely is the best one to use, given the hint.
@@ -142,31 +143,11 @@
// type is a nsIMsgCompType and format is a nsIMsgCompFormat
function ComposeMessage(type, format, folder, messageArray)
{
- // Check if the draft is already open in another window. If it is, just focus the window.
- if (type == Components.interfaces.nsIMsgCompType.Draft && messageArray.length == 1) {
- // We'll search this uri in the opened windows.
- let messageKey = GetMsgKeyFromURI(messageArray[0]);
- let wenum = Services.wm.getEnumerator("");
- while (wenum.hasMoreElements()) {
- let w = wenum.getNext();
- // Check if it is a compose window.
- if (w.document.defaultView.gMsgCompose && w.document.defaultView.gMsgCompose.compFields.draftId) {
- let wKey = GetMsgKeyFromURI(w.document.defaultView.gMsgCompose.compFields.draftId);
- if (wKey == messageKey) {
- // Found ! just focus it...
- w.focus();
- // ...and nothing to do anymore.
- return;
- }
- }
- }
- }
var msgComposeType = Components.interfaces.nsIMsgCompType;
var identity = null;
var newsgroup = null;
var hdr;
- // dump("ComposeMessage folder=" + folder + "\n");
try
{
if (folder)
@@ -185,7 +166,6 @@
identity = folder.customIdentity;
if (!identity)
identity = getIdentityForServer(server);
- // dump("identity = " + identity + "\n");
}
}
catch (ex)
@@ -193,13 +173,9 @@
dump("failed to get an identity to pre-select: " + ex + "\n");
}
- // dump("\nComposeMessage from XUL: " + identity + "\n");
-
switch (type)
{
- case msgComposeType.New: //new message
- // dump("OpenComposeWindow with " + identity + "\n");
-
+ case msgComposeType.New:
// If the addressbook sidebar panel is open and has focus, get
// the selected addresses from it.
if (document.commandDispatcher.focusedWindow &&
@@ -207,13 +183,10 @@
.document.documentElement.hasAttribute("selectedaddresses"))
NewMessageToSelectedAddresses(type, format, identity);
else
- MailServices.compose.OpenComposeWindow(null, null, null, type,
- format, identity, msgWindow);
+ composeTabManager.OpenComposeTab(null, null, null, type, format, identity, msgWindow);
return;
case msgComposeType.NewsPost:
- // dump("OpenComposeWindow with " + identity + " and " + newsgroup + "\n");
- MailServices.compose.OpenComposeWindow(null, null, newsgroup, type,
- format, identity, msgWindow);
+ composeTabManager.OpenComposeTab(null, null, newsgroup, type, format, identity, msgWindow);
return;
case msgComposeType.ForwardAsAttachment:
if (messageArray && messageArray.length)
@@ -222,19 +195,14 @@
// of the header to tell the compose service to work out the attachment
// subjects from the URIs.
hdr = messageArray.length > 1 ? null : messenger.msgHdrFromURI(messageArray[0]);
- MailServices.compose.OpenComposeWindow(null, hdr, messageArray.join(','),
- type, format, identity, msgWindow);
+ composeTabManager.OpenComposeTab(null, hdr, messageArray.join(','),
+ type, format, identity, msgWindow);
return;
}
default:
if (!messageArray)
return;
- // Limit the number of new compose windows to 8. Why 8 ?
- // I like that number :-)
- if (messageArray.length > 8)
- messageArray.length = 8;
-
for (var i = 0; i < messageArray.length; ++i)
{
var messageUri = messageArray[i];
@@ -244,8 +212,8 @@
openComposeWindowForRSSArticle(null, hdr, messageUri, type,
format, identity, msgWindow);
else
- MailServices.compose.OpenComposeWindow(null, hdr, messageUri, type,
- format, identity, msgWindow);
+ composeTabManager.OpenComposeTab(null, hdr, messageUri, type,
+ format, identity, msgWindow);
}
}
}
@@ -270,7 +238,7 @@
}
composeFields.to = addressList;
params.composeFields = composeFields;
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+ composeTabManager.OpenComposeTabWithParams(params);
}
}
}
diff -r 92fce13b87d4 mail/base/content/mailContextMenus.js
--- a/mail/base/content/mailContextMenus.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/base/content/mailContextMenus.js Sat Feb 16 21:54:16 2013 +1000
@@ -5,6 +5,8 @@
Components.utils.import("resource://gre/modules/PluralForm.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource:///modules/mailServices.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
+
const mailtolength = 7;
@@ -572,7 +574,7 @@
gFolderDisplay.displayedFolder.server);
}
params.composeFields = fields;
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+ composeTabManager.OpenComposeTabWithParams(params);
}
// Extracts email address from url string
diff -r 92fce13b87d4 mail/base/content/mailOverlay.xul
--- a/mail/base/content/mailOverlay.xul Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/base/content/mailOverlay.xul Sat Feb 16 21:54:16 2013 +1000
@@ -11,6 +11,7 @@
<script type="application/javascript">
<![CDATA[
Components.utils.import("resource:///modules/mailServices.js");
+ Components.utils.import("chrome://messenger/content/msgComposeTab.js");
function openNewCardDialog()
{
window.openDialog("chrome://messenger/content/addressbook/abNewCardDialog.xul",
@@ -28,7 +29,7 @@
return;
}
- MailServices.compose.OpenComposeWindow(null, null, null,
+ composeTabManager.OpenComposeTab(null, null, null,
Components.interfaces.nsIMsgCompType.New,
Components.interfaces.nsIMsgCompFormat.Default,
null, null);
diff -r 92fce13b87d4 mail/base/content/msgHdrViewOverlay.js
--- a/mail/base/content/msgHdrViewOverlay.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/base/content/msgHdrViewOverlay.js Sat Feb 16 21:54:16 2013 +1000
@@ -11,6 +11,7 @@
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource:///modules/mailServices.js");
Components.utils.import("resource:///modules/gloda/utils.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
let {Status: statusUtils} =
Components.utils.import("resource:///modules/imStatusUtils.jsm");
@@ -1603,7 +1604,7 @@
gFolderDisplay.displayedFolder.server);
}
params.composeFields = fields;
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+ composeTabManager.OpenComposeTabWithParams(params);
}
/**
diff -r 92fce13b87d4 mail/base/jar.mn
--- a/mail/base/jar.mn Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/base/jar.mn Sat Feb 16 21:54:16 2013 +1000
@@ -35,6 +35,7 @@
* content/messenger/msgMail3PaneWindow.js (content/msgMail3PaneWindow.js)
content/messenger/mail3PaneWindowCommands.js (content/mail3PaneWindowCommands.js)
content/messenger/mailCommands.js (content/mailCommands.js)
+ content/messenger/msgComposeTab.js (content/msgComposeTab.js)
* content/messenger/mailCore.js (content/mailCore.js)
content/messenger/customizeToolbarOverlay.xul (content/customizeToolbarOverlay.xul)
content/messenger/mailTabs.js (content/mailTabs.js)
diff -r 92fce13b87d4 mail/components/about-support/content/export.js
--- a/mail/components/about-support/content/export.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/components/about-support/content/export.js Sat Feb 16 21:54:16 2013 +1000
@@ -2,6 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
/**
* Create warning text to add to any private data.
@@ -86,7 +87,7 @@
params.composeFields = fields;
// Our params are set up. Now open a compose window.
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+ composeTabManager.OpenComposeTabWithParams(params);
}
function createCleanedUpContents(aHidePrivateData) {
diff -r 92fce13b87d4 mail/components/addrbook/content/abCommon.js
--- a/mail/components/addrbook/content/abCommon.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/components/addrbook/content/abCommon.js Sat Feb 16 21:54:16 2013 +1000
@@ -4,6 +4,7 @@
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource:///modules/mailServices.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
var gDirTree;
var abList = 0;
@@ -341,7 +342,8 @@
composeFields.to = GetSelectedAddresses();
params.composeFields = composeFields;
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+
+ composeTabManager.OpenComposeTabWithParams(params);
}
}
}
diff -r 92fce13b87d4 mail/components/compose/content/MsgComposeCommands.js
--- a/mail/components/compose/content/MsgComposeCommands.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/components/compose/content/MsgComposeCommands.js Sat Feb 16 21:54:16 2013 +1000
@@ -20,6 +20,7 @@
Components.utils.import("resource:///modules/mailServices.js");
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource:///modules/cloudFileAccounts.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
/**
* interfaces
@@ -784,7 +785,7 @@
function goOpenNewMessage()
{
let identity = getCurrentIdentity();
- MailServices.compose.OpenComposeWindow(null, null, null,
+ composeTabManager.OpenComposeWindow(null, null, null,
Components.interfaces.nsIMsgCompType.New,
Components.interfaces.nsIMsgCompFormat.Default, identity, null);
}
diff -r 92fce13b87d4 mail/components/newmailaccount/content/accountProvisioner.js
--- a/mail/components/newmailaccount/content/accountProvisioner.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mail/components/newmailaccount/content/accountProvisioner.js Sat Feb 16 21:54:16 2013 +1000
@@ -13,6 +13,7 @@
Cu.import("resource:///modules/StringBundle.js");
Cu.import("resource:///modules/mailServices.js");
Cu.import("resource:///modules/gloda/log4moz.js");
+Cu.import("chrome://messenger/content/msgComposeTab.js");
// Get a configured logger for this component.
// To debug, set mail.provider.logging.dump (or .console)="All"
@@ -169,10 +170,10 @@
}
$("#success-compose").click(function() {
- MailServices.compose.OpenComposeWindow(null, null, null,
- Ci.nsIMsgCompType.New,
- Ci.nsIMsgCompFormat.Default,
- account.defaultIdentity, null);
+ composeTabManager.OpenComposeTab(null, null, null,
+ Ci.nsIMsgCompType.New,
+ Ci.nsIMsgCompFormat.Default,
+ account.defaultIdentity, null);
});
$("#success-addons").click(function() {
diff -r 92fce13b87d4 mailnews/compose/public/nsIMsgComposeService.idl
--- a/mailnews/compose/public/nsIMsgComposeService.idl Fri Feb 15 21:37:24 2013 -0500
+++ b/mailnews/compose/public/nsIMsgComposeService.idl Sat Feb 16 21:54:16 2013 +1000
@@ -15,7 +15,7 @@
interface nsIMsgIncomingServer;
interface nsIMsgDBHdr;
-[scriptable, uuid(8de65170-a452-11e0-8264-0800200c9a66)]
+[scriptable, uuid(5d480fd3-9a62-470b-9172-9ce85e25954c)]
interface nsIMsgComposeService : nsISupports {
/* we need a msg window because when we forward inline we may need progress */
diff -r 92fce13b87d4 mailnews/extensions/newsblog/content/newsblogOverlay.js
--- a/mailnews/extensions/newsblog/content/newsblogOverlay.js Fri Feb 15 21:37:24 2013 -0500
+++ b/mailnews/extensions/newsblog/content/newsblogOverlay.js Sat Feb 16 21:54:16 2013 +1000
@@ -6,6 +6,7 @@
Components.utils.import("resource:///modules/gloda/mimemsg.js");
Components.utils.import("resource:///modules/mailServices.js");
Components.utils.import("resource://gre/modules/Services.jsm");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
function openSubscriptionsDialog(aFolder)
{
@@ -44,8 +45,8 @@
if (gShowFeedSummary)
{
// The user is viewing the summary.
- MailServices.compose.OpenComposeWindow(aMsgComposeWindow, aMsgHdr, aMessageUri,
- aType, aFormat, aIdentity, aMsgWindow);
+ composeTabManager.OpenComposeTab(aMsgComposeWindow, aMsgHdr, aMessageUri,
+ aType, aFormat, aIdentity, aMsgWindow);
}
else
@@ -96,20 +97,20 @@
{
params.composeFields.body = aMimeMsg.headers["content-base"];
params.bodyIsLink = true;
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+ composeTabManager.OpenComposeTabWithParams(params);
}
else
// No content-base url, use the summary.
- MailServices.compose.OpenComposeWindow(aMsgComposeWindow, aMsgHdr, aMessageUri,
- aType, aFormat, aIdentity, aMsgWindow);
+ composeTabManager.OpenComposeTab(aMsgComposeWindow, aMsgHdr, aMessageUri,
+ aType, aFormat, aIdentity, aMsgWindow);
}, false, {saneBodySize: true});
}
catch (ex)
{
// Error getting header, use the summary.
- MailServices.compose.OpenComposeWindow(aMsgComposeWindow, aMsgHdr, aMessageUri,
- aType, aFormat, aIdentity, aMsgWindow);
+ composeTabManager.OpenComposeTab(aMsgComposeWindow, aMsgHdr, aMessageUri,
+ aType, aFormat, aIdentity, aMsgWindow);
}
}
}
diff -r 92fce13b87d4 suite/mailnews/addrbook/abCommon.js
--- a/suite/mailnews/addrbook/abCommon.js Fri Feb 15 21:37:24 2013 -0500
+++ b/suite/mailnews/addrbook/abCommon.js Sat Feb 16 21:54:16 2013 +1000
@@ -4,6 +4,7 @@
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource:///modules/mailServices.js");
+Components.utils.import("chrome://messenger/content/msgComposeTab.js");
var gDirTree = 0;
var abList = null;
@@ -329,7 +330,7 @@
composeFields.to = GetSelectedAddresses();
}
params.composeFields = composeFields;
- MailServices.compose.OpenComposeWindowWithParams(null, params);
+ composeTabManager.OpenComposeTabWithParams(params);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment