[Pkg-mozext-commits] [tabmixplus] 77/123: Clean our overlay to Firefox preferences, fix some compatibility issues, when ghostery extensions and noia theme install main pane is blank
David Prévot
taffit at moszumanska.debian.org
Wed Sep 17 21:16:28 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository tabmixplus.
commit 0b91b24803f347bb82eee658ec855a26a335abd9
Author: onemen <tabmix.onemen at gmail.com>
Date: Thu Sep 4 22:00:30 2014 +0300
Clean our overlay to Firefox preferences, fix some compatibility issues, when ghostery extensions and noia theme install main pane is blank
---
chrome.manifest | 5 +-
chrome/content/preferences/links.js | 6 +-
.../preferences/overlay/incontentPreferences.xul | 18 ++-
chrome/content/preferences/overlay/main.xul | 37 +++++
chrome/content/preferences/overlay/preferences.css | 5 +
chrome/content/preferences/overlay/preferences.xml | 36 +++++
.../preferences/overlay/preferencesOverlay.js | 152 ++++-----------------
.../preferences/overlay/preferencesOverlay.xul | 22 ---
.../overlay/{tab_panel.xul => tabs.xul} | 11 ++
chrome/skin/preferencesOverlay.css | 26 +++-
10 files changed, 162 insertions(+), 156 deletions(-)
diff --git a/chrome.manifest b/chrome.manifest
index 30a1681..d14a739 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -43,7 +43,10 @@ overlay chrome://browser/content/browser.xul chrome://tab
overlay about:preferences chrome://tabmixplus/content/preferences/overlay/incontentPreferences.xul os=WINNT
overlay about:preferences chrome://tabmixplus/content/preferences/overlay/incontentPreferences.xul os=Darwin
overlay about:preferences#general chrome://tabmixplus/content/preferences/overlay/incontentPreferences.xul os=Linux
-overlay chrome://browser/content/preferences/preferences.xul chrome://tabmixplus/content/preferences/overlay/preferencesOverlay.xul
+overlay chrome://browser/content/preferences/main.xul chrome://tabmixplus/content/preferences/overlay/main.xul
+overlay chrome://browser/content/preferences/tabs.xul chrome://tabmixplus/content/preferences/overlay/tabs.xul
+style chrome://browser/content/preferences/preferences.xul chrome://tabmixplus/content/preferences/overlay/preferences.css
+
overlay chrome://mozapps/content/extensions/extensions.xul chrome://tabmixplus/content/links/links.xul
overlay about:newtab chrome://tabmixplus/content/links/newTab.xul
overlay chrome://mozapps/content/downloads/unknownContentType.xul chrome://tabmixplus/content/links/removeBlankTab.xul
diff --git a/chrome/content/preferences/links.js b/chrome/content/preferences/links.js
index 9cb290e..353e232 100644
--- a/chrome/content/preferences/links.js
+++ b/chrome/content/preferences/links.js
@@ -38,8 +38,10 @@ var gLinksPane = {
singleWindow: function(enableSingleWindow) {
function updateStatus(itemId, testVal, test, newVal) {
var item = $(itemId);
- if (test ? item.value == testVal : item.value != testVal)
- item.value = newVal;
+ if (test ? item.value == testVal : item.value != testVal) {
+ let preference = $(item.getAttribute("preference"));
+ preference.value = newVal;
+ }
}
if (enableSingleWindow) {
diff --git a/chrome/content/preferences/overlay/incontentPreferences.xul b/chrome/content/preferences/overlay/incontentPreferences.xul
index 13115f3..46db2dd 100644
--- a/chrome/content/preferences/overlay/incontentPreferences.xul
+++ b/chrome/content/preferences/overlay/incontentPreferences.xul
@@ -12,13 +12,11 @@
<overlay id="tmp_incontentPreferencesOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/javascript" src="chrome://tabmixplus/content/utils.js"/>
<script type="application/javascript" src="preferencesOverlay.js"/>
<script type="application/javascript">
- var tabmixButton_label = "&options.main.sessionbutton.label;…";
window.addEventListener("load", function TMP_onLoad_preverenceOverlay(aEvent) {
aEvent.currentTarget.removeEventListener("load", TMP_onLoad_preverenceOverlay, true);
- gTabMix_preferencesOverlay.incontentInit(aEvent);
+ gTabMix_preferencesOverlay.incontentInit();
}, true);
</script>
@@ -30,8 +28,22 @@
name="extensions.tabmix.tabs.warnOnClose" type="bool"/>
<preference id="extensions.tabmix.protectedtabs.warnOnClose"
name="extensions.tabmix.protectedtabs.warnOnClose" type="bool"/>
+ <preference id="extensions.tabmix.singleWindow"
+ name="extensions.tabmix.singleWindow" type="bool"
+ onchange="gTabMix_preferencesOverlay.setSingleWindowUI();"/>
+ <preference id="tabmix.sm"
+ name="extensions.tabmix.sessions.manager" type="bool"
+ onchange="gTabMix_preferencesOverlay.onStartupPrefchanged();"/>
+ <preference id="tabmix.cr"
+ name="extensions.tabmix.sessions.crashRecovery" type="bool"
+ onchange="gTabMix_preferencesOverlay.onStartupPrefchanged();"/>
</preferences>
+ <button id="tabmixSessionManager"
+ label="&options.main.sessionbutton.label;…"
+ oncommand="gTabMix_preferencesOverlay.showTabmixOptions('paneSession');"
+ class="tabmixplus-button"/>
+
<vbox id="tabmixplusBox" data-category="paneTabs" hidden="true" align="start">
<button id="btn_tabmixplus" class="tabmixplus-button indent" style="height: 27px;"
label="&page.header.title;…" oncommand="gTabMix_preferencesOverlay.showTabmixOptions();"/>
diff --git a/chrome/content/preferences/overlay/main.xul b/chrome/content/preferences/overlay/main.xul
new file mode 100644
index 0000000..0ee2cb8
--- /dev/null
+++ b/chrome/content/preferences/overlay/main.xul
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE overlay [
+<!ENTITY % tabmixplusDTD SYSTEM "chrome://tabmixplus/locale/tabmix.dtd">
+%tabmixplusDTD;
+]>
+
+<overlay id="TabmixMainPaneOverlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script type="application/javascript" src="preferencesOverlay.js"/>
+ <script type="application/javascript">
+ window.addEventListener("paneload", function mainPaneload(aEvent) {
+ aEvent.currentTarget.removeEventListener("paneload", mainPaneload, true);
+ gTabMix_preferencesOverlay.initMainPane();
+ }, true);
+ </script>
+
+ <prefpane id="paneMain">
+
+ <preferences id="mainPreferences">
+ <preference id="tabmix.sm"
+ name="extensions.tabmix.sessions.manager" type="bool"
+ onchange="gTabMix_preferencesOverlay.onStartupPrefchanged();"/>
+ <preference id="tabmix.cr"
+ name="extensions.tabmix.sessions.crashRecovery" type="bool"
+ onchange="gTabMix_preferencesOverlay.onStartupPrefchanged();"/>
+ </preferences>
+
+ <button id="tabmixSessionManager"
+ label="&options.main.sessionbutton.label;…"
+ oncommand="gTabMix_preferencesOverlay.showTabmixOptions('paneSession');"
+ class="tabmixplus-button"/>
+
+ </prefpane>
+
+</overlay>
diff --git a/chrome/content/preferences/overlay/preferences.css b/chrome/content/preferences/overlay/preferences.css
new file mode 100644
index 0000000..ad79ee3
--- /dev/null
+++ b/chrome/content/preferences/overlay/preferences.css
@@ -0,0 +1,5 @@
+
+prefwindow,
+prefwindow:root {
+ -moz-binding: url("chrome://tabmixplus/content/preferences/overlay/preferences.xml#tabmix-prefwindow") !important;
+}
diff --git a/chrome/content/preferences/overlay/preferences.xml b/chrome/content/preferences/overlay/preferences.xml
new file mode 100644
index 0000000..3a84c5a
--- /dev/null
+++ b/chrome/content/preferences/overlay/preferences.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+
+<bindings id="tabmix_preferences_bindings"
+ xmlns="http://www.mozilla.org/xbl"
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:xbl="http://www.mozilla.org/xbl">
+
+ <binding id="tabmix-prefwindow"
+ extends="chrome://global/content/bindings/preferences.xml#prefwindow">
+ <implementation>
+ <constructor>
+ <![CDATA[
+ // we call this from here to apply the changes to all dialog windows
+ // that are based on prefwindow
+ try {
+ Components.utils.import("resource://tabmixplus/Services.jsm");
+ window.Tabmix = { };
+ Tabmix._debugMode = false;
+ Services.scriptloader.loadSubScript("chrome://tabmixplus/content/changecode.js", Tabmix);
+ Tabmix.changeCode(window, "openLinkIn")._replace(
+ 'var w = getTopWin();',
+ '$&\n' +
+ ' if (w && where == "window" && w.Tabmix.getSingleWindowMode())\n' +
+ ' where = "tab";\n'
+ ).toCode();
+ } catch(ex) {
+ TabmixSvc.console.log(
+ "TabMix :\n" +
+ "can't change openLinkIn from preferences.xml binding\n" + ex);
+ }
+ ]]>
+ </constructor>
+ </implementation>
+ </binding>
+
+</bindings>
diff --git a/chrome/content/preferences/overlay/preferencesOverlay.js b/chrome/content/preferences/overlay/preferencesOverlay.js
index 3d48936..b0ae0ed 100644
--- a/chrome/content/preferences/overlay/preferencesOverlay.js
+++ b/chrome/content/preferences/overlay/preferencesOverlay.js
@@ -1,8 +1,11 @@
"use strict";
+Components.utils.import("resource://tabmixplus/Services.jsm");
+
var gTabMix_preferencesOverlay = {
id: function(id) {return document.getElementById(id);},
- incontentInit: function gTabMix_preferencesOverlay_incontentInit(aEvent) {
+
+ incontentInit: function gTabMix_preferencesOverlay_incontentInit() {
var box = this.id("linkTargeting");
box.collapsed = true;
box.parentNode.insertBefore(this.id("tabmixplusBox"), box);
@@ -19,7 +22,7 @@ var gTabMix_preferencesOverlay = {
if (showTabBar)
showTabBar.collapsed = true;
- if (Tabmix.isVersion(260)) {
+ if (TabmixSvc.version(260)) {
let boxes = ["tabmixplusBox", "btn_tabmixplus", "generalWindowOpenBox",
"warnOnCloseWindow", "warnOnCloseProtected", "hideTabbarBox"];
boxes.forEach(function(id) {
@@ -31,89 +34,30 @@ var gTabMix_preferencesOverlay = {
}, this)
}
- this.onPaneMainLoad();
+ this.initMainPane();
setTimeout(function(self) {
self.initPaneTabsOptions();
}, 0, this);
},
- lastSelected: "",
- currentPane: "",
- init: function gTabMix_preferencesOverlay_init(aEvent) {
- var prefWindow = aEvent.target.documentElement;
- this.currentPane = prefWindow.lastSelected;
- this.onPaneLoad(prefWindow.lastSelected);
-
- Tabmix.changeCode(prefWindow, "prefWindow.showPane")._replace(
- 'if (!aPaneElement.loaded) {', ''
- )._replace(
- 'OverlayLoadObserver.prototype',
- 'if (!aPaneElement.loaded) {\
- $&'
- )._replace(
- 'this._outer._selectPane(this._pane);',
- '$& \
- gTabMix_preferencesOverlay.onPaneLoad(this._pane.id);'
- ).toCode();
-
- Tabmix.changeCode(window, "openLinkIn")._replace(
- 'var w = getTopWin();',
- '$& \
- if (w && where == "window" && Tabmix.prefs.getBoolPref("singleWindow")) where = "tab";'
- ).toCode();
-
- },
-
- onPaneLoad: function gTabMix_preferencesOverlay_onPaneLoad(aPaneID) {
- this.lastSelected = this.currentPane;
- switch (aPaneID) {
- case "paneTabs":
- this.loadOverlay();
- break;
- case "paneMain":
- this.onPaneMainLoad();
- break;
- default:
- }
- },
-
/* ........ paneTabs .............. */
- loadOverlay: function () {
- function OverlayLoadObserver() { }
- OverlayLoadObserver.prototype = {
- _outer: this,
- observe: function (aSubject, aTopic, aData) {
- this._outer._afterOverlayLoaded();
- }
- };
- var obs = new OverlayLoadObserver();
- document.loadOverlay("chrome://tabmixplus/content/preferences/overlay/tab_panel.xul", obs);
- },
-
- _afterOverlayLoaded: function () {
- this.initPaneTabsOptions();
-
- // fix panel height
- var docElt = document.documentElement;
- if (docElt._shouldAnimate && this.lastSelected == "paneTabs")
- window.sizeToContent();
- else {
- let paneTabs = document.getElementById("paneTabs");
- paneTabs._content.style.height = "";
- docElt.lastSelected = this.lastSelected;
- docElt._selectPane(paneTabs);
- }
+ initPaneTabsOptions: function () {
+ this.id("_hideTabbar").value = this.id("extensions.tabmix.hideTabbar").value;
+ this.id("generalWindowOpen").value = this.id("browser.link.open_newwindow").value;
+ this.id("warnCloseMultiple").checked = this.id("extensions.tabmix.tabs.warnOnClose").value;
+ this.id("warnOnCloseWindow").checked = this.id("browser.tabs.warnOnClose").value;
+ this.id("warnOnCloseProtected").checked = this.id("extensions.tabmix.protectedtabs.warnOnClose").value;
+ this.setSingleWindowUI();
},
- initPaneTabsOptions: function () {
- document.getElementById("_hideTabbar").value = document.getElementById("extensions.tabmix.hideTabbar").value;
- document.getElementById("generalWindowOpen").value = document.getElementById("browser.link.open_newwindow").value;
- document.getElementById("warnCloseMultiple").checked = document.getElementById("extensions.tabmix.tabs.warnOnClose").value;
- document.getElementById("warnOnCloseWindow").checked = document.getElementById("browser.tabs.warnOnClose").value;
- document.getElementById("warnOnCloseProtected").checked = document.getElementById("extensions.tabmix.protectedtabs.warnOnClose").value;
- var singleWindowMode = Tabmix.prefs.getBoolPref("singleWindow");
- if (singleWindowMode)
- document.getElementById("linkTargetWindow").disabled = true;
+ setSingleWindowUI: function () {
+ var val = TabmixSvc.prefBranch.getBoolPref("singleWindow");
+ let item = this.id("linkTargetWindow");
+ item.disabled = val;
+ if (val)
+ item.setAttribute("style", "color: graytext !important; text-shadow: none !important;");
+ else
+ item.removeAttribute("style");
},
showTabmixOptions: function (panel) {
@@ -133,56 +77,20 @@ var gTabMix_preferencesOverlay = {
},
/* ........ paneMain .............. */
- onPaneMainLoad: function () {
- var button = document.getElementById("tabmixSessionManager");
- if (button)
- return;
-
- if (!Tabmix.isVersion(180))
- Tabmix.changeCode(gMainPane, "gMainPane.showAddonsMgr")._replace(
- 'openUILinkIn("about:addons", "window");',
- 'var w = Tabmix.getTopWin();\
- if (w) w.BrowserOpenAddonsMgr();\
- else $&', {silent: true}
- ).toCode();
-
- button = document.createElement("button");
- button.id = "tabmixSessionManager";
- button.setAttribute("label", tabmixButton_label);
- button.setAttribute("oncommand", "gTabMix_preferencesOverlay.showTabmixOptions('paneSession');");
- button.setAttribute("class", "tabmixplus-button");
- var menuList = document.getElementById("browserStartupPage");
+ initMainPane: function () {
+ var menuList = this.id("browserStartupPage");
var hBox = menuList.parentNode;
- var spacer = document.createElement("spacer");
- spacer.setAttribute("flex", "1");
- hBox.insertBefore(spacer, menuList);
- hBox.insertBefore(button, menuList);
- hBox.classList.add("whenBrowserStartBox")
-
- var preferences = document.getElementById("mainPreferences");
- var preference = document.createElement("preference");
- preference.setAttribute("id", "tabmix.sm");
- preference.setAttribute("name", "extensions.tabmix.sessions.manager");
- preference.setAttribute("type", "bool");
- preference.setAttribute("onchange", "gTabMix_preferencesOverlay.onStartupPrefchanged();");
- preferences.appendChild(preference);
-
- preference = document.createElement("preference");
- preference.setAttribute("id", "tabmix.cr");
- preference.setAttribute("name", "extensions.tabmix.sessions.crashRecovery");
- preference.setAttribute("type", "bool");
- preference.setAttribute("onchange", "gTabMix_preferencesOverlay.onStartupPrefchanged();");
- preferences.appendChild(preference);
+ menuList.parentNode.id = "whenBrowserStartBox";
+ hBox.insertBefore(this.id("tabmixSessionManager"), menuList);
this.onStartupPrefchanged();
},
onStartupPrefchanged: function () {
- var tabmixSession = document.getElementById('tabmix.sm').value || document.getElementById('tabmix.cr').value;
- document.getElementById("browserStartupPage").collapsed = tabmixSession;
- var button = document.getElementById("tabmixSessionManager");
- button.collapsed = !tabmixSession;
- button.previousSibling.collapsed = !tabmixSession;
- document.getElementById("startupGroup").setAttribute("tabmixbutton", tabmixSession);
+ var tabmixSession = this.id('tabmix.sm').value || this.id('tabmix.cr').value;
+ if (tabmixSession)
+ this.id("whenBrowserStartBox").setAttribute("tabmixSession", true);
+ else
+ this.id("whenBrowserStartBox").removeAttribute("tabmixSession");
}
}
diff --git a/chrome/content/preferences/overlay/preferencesOverlay.xul b/chrome/content/preferences/overlay/preferencesOverlay.xul
deleted file mode 100644
index 8b9c8e1..0000000
--- a/chrome/content/preferences/overlay/preferencesOverlay.xul
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE overlay [
-<!ENTITY % pref-tabmixDTD SYSTEM "chrome://tabmixplus/locale/pref-tabmix.dtd" >
-%pref-tabmixDTD;
-<!ENTITY % tabmixplusDTD SYSTEM "chrome://tabmixplus/locale/tabmix.dtd">
-%tabmixplusDTD;
-]>
-
-<overlay id="tmpPreferencesOverlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <script type="application/javascript" src="chrome://tabmixplus/content/utils.js"/>
- <script type="application/javascript" src="preferencesOverlay.js"/>
- <script type="application/javascript">
- var tabmixButton_label = "&options.main.sessionbutton.label;…";
- window.addEventListener("load", function TMP_onLoad_preverenceOverlay(aEvent) {
- aEvent.currentTarget.removeEventListener("load", TMP_onLoad_preverenceOverlay, true);
- gTabMix_preferencesOverlay.init(aEvent);
- }, true);
- </script>
-</overlay>
diff --git a/chrome/content/preferences/overlay/tab_panel.xul b/chrome/content/preferences/overlay/tabs.xul
similarity index 82%
rename from chrome/content/preferences/overlay/tab_panel.xul
rename to chrome/content/preferences/overlay/tabs.xul
index f247c20..1beaac1 100644
--- a/chrome/content/preferences/overlay/tab_panel.xul
+++ b/chrome/content/preferences/overlay/tabs.xul
@@ -10,6 +10,14 @@
<overlay id="TabsPaneOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <script type="application/javascript" src="preferencesOverlay.js"/>
+ <script type="application/javascript">
+ window.addEventListener("paneload", function tabsPaneload(aEvent) {
+ aEvent.currentTarget.removeEventListener("paneload", tabsPaneload, true);
+ gTabMix_preferencesOverlay.initPaneTabsOptions();
+ }, true);
+ </script>
+
<prefpane id="paneTabs">
<preferences id="tabsPreferences">
@@ -19,6 +27,9 @@
name="extensions.tabmix.tabs.warnOnClose" type="bool"/>
<preference id="extensions.tabmix.protectedtabs.warnOnClose"
name="extensions.tabmix.protectedtabs.warnOnClose" type="bool"/>
+ <preference id="extensions.tabmix.singleWindow"
+ name="extensions.tabmix.singleWindow" type="bool"
+ onchange="gTabMix_preferencesOverlay.setSingleWindowUI();"/>
</preferences>
<hbox insertafter="tabsPreferences" align="center">
diff --git a/chrome/skin/preferencesOverlay.css b/chrome/skin/preferencesOverlay.css
index 8587f91..bbbb71f 100644
--- a/chrome/skin/preferencesOverlay.css
+++ b/chrome/skin/preferencesOverlay.css
@@ -9,17 +9,31 @@
-moz-margin-end: 5px;
}
-.whenBrowserStartBox {
+#startupGroup > hbox > .tabmixplus-button {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+#whenBrowserStartBox {
height: 33px;
}
-#startupGroup > separator {
- height: 6px;
+#whenBrowserStartBox[tabmixSession] > #tabmixSessionManager,
+#whenBrowserStartBox:not([tabmixSession]) > #browserStartupPage {
+ display: -moz-box;
}
-#startupGroup > hbox > .tabmixplus-button {
- margin-top: 0px;
- margin-bottom: 0px;
+#whenBrowserStartBox:not([tabmixSession]) > #tabmixSessionManager,
+#whenBrowserStartBox[tabmixSession] > #browserStartupPage {
+ display: none;
+}
+
+#whenBrowserStartBox[tabmixSession] > label[control="browserStartupPage"] {
+ -moz-box-flex: 1;
+}
+
+#startupGroup > separator {
+ height: 6px;
}
.incontent_paneGeneral separator {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git
More information about the Pkg-mozext-commits
mailing list