mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-24 08:07:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
151
toolkit/content/finddialog.js
Normal file
151
toolkit/content/finddialog.js
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* 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("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://gre/modules/FormHistory.jsm");
|
||||
|
||||
var dialog; // Quick access to document/form elements.
|
||||
var gFindInst; // nsIWebBrowserFind that we're going to use
|
||||
var gFindInstData; // use this to update the find inst data
|
||||
|
||||
function initDialogObject()
|
||||
{
|
||||
// Create dialog object and initialize.
|
||||
dialog = {};
|
||||
dialog.findKey = document.getElementById("dialog.findKey");
|
||||
dialog.caseSensitive = document.getElementById("dialog.caseSensitive");
|
||||
dialog.wrap = document.getElementById("dialog.wrap");
|
||||
dialog.find = document.getElementById("btnFind");
|
||||
dialog.up = document.getElementById("radioUp");
|
||||
dialog.down = document.getElementById("radioDown");
|
||||
dialog.rg = dialog.up.radioGroup;
|
||||
dialog.bundle = null;
|
||||
|
||||
// Move dialog to center, if it not been shown before
|
||||
var windowElement = document.getElementById("findDialog");
|
||||
if (!windowElement.hasAttribute("screenX") || !windowElement.hasAttribute("screenY"))
|
||||
{
|
||||
sizeToContent();
|
||||
moveToAlertPosition();
|
||||
}
|
||||
}
|
||||
|
||||
function fillDialog()
|
||||
{
|
||||
// get the find service, which stores global find state
|
||||
var findService = Components.classes["@mozilla.org/find/find_service;1"]
|
||||
.getService(Components.interfaces.nsIFindService);
|
||||
|
||||
// Set initial dialog field contents. Use the gFindInst attributes first,
|
||||
// this is necessary for window.find()
|
||||
dialog.findKey.value = gFindInst.searchString ? gFindInst.searchString : findService.searchString;
|
||||
dialog.caseSensitive.checked = gFindInst.matchCase ? gFindInst.matchCase : findService.matchCase;
|
||||
dialog.wrap.checked = gFindInst.wrapFind ? gFindInst.wrapFind : findService.wrapFind;
|
||||
var findBackwards = gFindInst.findBackwards ? gFindInst.findBackwards : findService.findBackwards;
|
||||
if (findBackwards)
|
||||
dialog.rg.selectedItem = dialog.up;
|
||||
else
|
||||
dialog.rg.selectedItem = dialog.down;
|
||||
}
|
||||
|
||||
function saveFindData()
|
||||
{
|
||||
// get the find service, which stores global find state
|
||||
var findService = Components.classes["@mozilla.org/find/find_service;1"]
|
||||
.getService(Components.interfaces.nsIFindService);
|
||||
|
||||
// Set data attributes per user input.
|
||||
findService.searchString = dialog.findKey.value;
|
||||
findService.matchCase = dialog.caseSensitive.checked;
|
||||
findService.wrapFind = dialog.wrap.checked;
|
||||
findService.findBackwards = dialog.up.selected;
|
||||
}
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
initDialogObject();
|
||||
|
||||
// get the find instance
|
||||
var arg0 = window.arguments[0];
|
||||
// If the dialog was opened from window.find(),
|
||||
// arg0 will be an instance of nsIWebBrowserFind
|
||||
if (arg0 instanceof Components.interfaces.nsIWebBrowserFind) {
|
||||
gFindInst = arg0;
|
||||
} else {
|
||||
gFindInstData = arg0;
|
||||
gFindInst = gFindInstData.webBrowserFind;
|
||||
}
|
||||
|
||||
fillDialog();
|
||||
doEnabling();
|
||||
|
||||
if (dialog.findKey.value)
|
||||
dialog.findKey.select();
|
||||
dialog.findKey.focus();
|
||||
}
|
||||
|
||||
function onUnload()
|
||||
{
|
||||
window.opener.findDialog = 0;
|
||||
}
|
||||
|
||||
function onAccept()
|
||||
{
|
||||
if (gFindInstData && gFindInst != gFindInstData.webBrowserFind) {
|
||||
gFindInstData.init();
|
||||
gFindInst = gFindInstData.webBrowserFind;
|
||||
}
|
||||
|
||||
// Transfer dialog contents to the find service.
|
||||
saveFindData();
|
||||
updateFormHistory();
|
||||
|
||||
// set up the find instance
|
||||
gFindInst.searchString = dialog.findKey.value;
|
||||
gFindInst.matchCase = dialog.caseSensitive.checked;
|
||||
gFindInst.wrapFind = dialog.wrap.checked;
|
||||
gFindInst.findBackwards = dialog.up.selected;
|
||||
|
||||
// Search.
|
||||
var result = gFindInst.findNext();
|
||||
|
||||
if (!result)
|
||||
{
|
||||
if (!dialog.bundle)
|
||||
dialog.bundle = document.getElementById("findBundle");
|
||||
Services.prompt.alert(window, dialog.bundle.getString("notFoundTitle"),
|
||||
dialog.bundle.getString("notFoundWarning"));
|
||||
dialog.findKey.select();
|
||||
dialog.findKey.focus();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function doEnabling()
|
||||
{
|
||||
dialog.find.disabled = !dialog.findKey.value;
|
||||
}
|
||||
|
||||
function updateFormHistory()
|
||||
{
|
||||
if (window.opener.PrivateBrowsingUtils &&
|
||||
window.opener.PrivateBrowsingUtils.isWindowPrivate(window.opener) ||
|
||||
!dialog.findKey.value)
|
||||
return;
|
||||
|
||||
if (FormHistory.enabled) {
|
||||
FormHistory.update({
|
||||
op: "bump",
|
||||
fieldname: "find-dialog",
|
||||
value: dialog.findKey.value
|
||||
}, {
|
||||
handleError: function(aError) {
|
||||
Components.utils.reportError("Saving find to form history failed: " +
|
||||
aError.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue