Bug 92737 - Part 5: Set multiple homepage when multiple items are dropped on Home button

Issue #121
This commit is contained in:
janekptacijarabaci 2018-04-15 11:46:16 +02:00 • committed by Roy Tam
commit 8f66070f19
2 changed files with 16 additions and 7 deletions

View file

@ -2685,8 +2685,10 @@ var homeButtonObserver = {
onDrop: function (aEvent) onDrop: function (aEvent)
{ {
// disallow setting home pages that inherit the principal // disallow setting home pages that inherit the principal
let url = browserDragAndDrop.drop(aEvent, {}, true); let links = browserDragAndDrop.dropLinks(aEvent, true);
setTimeout(openHomeDialog, 0, url); if (links.length) {
setTimeout(openHomeDialog, 0, links.map(link => link.url).join("|"));
}
}, },
onDragOver: function (aEvent) onDragOver: function (aEvent)
@ -2702,18 +2704,24 @@ var homeButtonObserver = {
function openHomeDialog(aURL) function openHomeDialog(aURL)
{ {
var promptTitle = gNavigatorBundle.getString("droponhometitle"); var promptTitle = gNavigatorBundle.getString("droponhometitle");
var promptMsg = gNavigatorBundle.getString("droponhomemsg"); var promptMsg;
if (aURL.includes("|")) {
promptMsg = gNavigatorBundle.getString("droponhomemsgMultiple");
} else {
promptMsg = gNavigatorBundle.getString("droponhomemsg");
}
var pressedVal = Services.prompt.confirmEx(window, promptTitle, promptMsg, var pressedVal = Services.prompt.confirmEx(window, promptTitle, promptMsg,
Services.prompt.STD_YES_NO_BUTTONS, Services.prompt.STD_YES_NO_BUTTONS,
null, null, null, null, {value:0}); null, null, null, null, {value:0});
if (pressedVal == 0) { if (pressedVal == 0) {
try { try {
var str = Components.classes["@mozilla.org/supports-string;1"] var homepageStr = Components.classes["@mozilla.org/supports-string;1"]
.createInstance(Components.interfaces.nsISupportsString); .createInstance(Components.interfaces.nsISupportsString);
str.data = aURL; homepageStr.data = aURL;
gPrefService.setComplexValue("browser.startup.homepage", gPrefService.setComplexValue("browser.startup.homepage",
Components.interfaces.nsISupportsString, str); Components.interfaces.nsISupportsString, homepageStr);
} catch (ex) { } catch (ex) {
dump("Failed to set the home page.\n"+ex+"\n"); dump("Failed to set the home page.\n"+ex+"\n");
} }

View file

@ -7,6 +7,7 @@ openFile=Open File
droponhometitle=Set Home Page droponhometitle=Set Home Page
droponhomemsg=Do you want this document to be your new home page? droponhomemsg=Do you want this document to be your new home page?
droponhomemsgMultiple=Do you want these documents to be your new home pages?
# context menu strings # context menu strings