[Pkg-mozext-commits] [adblock-plus-element-hiding-helper] 24/483: Adding preview feature

David Prévot taffit at moszumanska.debian.org
Thu Jan 22 21:41:23 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository adblock-plus-element-hiding-helper.

commit 63dc9a5f32e71d8adfc1f849c09eecb54d32bc5e
Author: Wladimir Palant <trev at gtchat.de>
Date:   Wed Jan 10 15:18:58 2007 +0000

    Adding preview feature
    
    --HG--
    extra : convert_revision : svn%3Ad8bf93c1-8190-44a8-bb31-1ea94378a4df/trunk%40621
---
 chrome/content/composer.js       | 35 +++++++++++++++++++++++++++++++++--
 chrome/content/composer.xul      |  6 +++++-
 chrome/locale/en-US/composer.dtd |  1 +
 3 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/chrome/content/composer.js b/chrome/content/composer.js
index 39824ec..2534a8f 100644
--- a/chrome/content/composer.js
+++ b/chrome/content/composer.js
@@ -26,6 +26,9 @@ var domainData;
 var nodeData;
 var selectedNode = null;
 var advancedMode = false;
+var stylesheetURL;
+var previewStyle = null;
+var doc;
 
 /*******************
  * NodeData object *
@@ -134,7 +137,8 @@ function TreeView_getCellProperties(row, col, properties) {
 
 function init() {
   var element = window.arguments[0];
-  var wnd = element.ownerDocument.defaultView;
+  doc = element.ownerDocument;
+  var wnd = doc.defaultView;
 
   nodeData = new NodeData(element);
   nodeData.tagName.checked = true;
@@ -172,6 +176,8 @@ function init() {
   setTimeout(function() {
     fillDomains(domainData);
     document.getElementById("domainGroup").selectedItem.focus();
+    if (document.getElementById("preview").checked)
+      togglePreview(true);
   }, 0);
 }
 
@@ -236,8 +242,10 @@ function updateExpression() {
   }
 
   var expression;
-  if (simpleMode)
+  if (simpleMode) {
     expression = domainData.selected + "#" + nodeData.expressionSimple;
+    stylesheetURL = "data:text/css," + encodeURIComponent(nodeData.expressionRaw + "{display: none !important;}");
+  }
   else {
     expression = nodeData.expressionRaw;
 
@@ -292,6 +300,7 @@ function updateExpression() {
         curData = null;
     }
 
+    stylesheetURL = "data:text/css," + encodeURIComponent(expression + "{display: none !important;}");
     expression = domainData.selected + "##" + expression;
   }
 
@@ -299,6 +308,9 @@ function updateExpression() {
 
   var tree = document.getElementById("nodes-tree");
   tree.boxObject.invalidateRow(tree.view.selection.currentIndex);
+
+  if (previewStyle)
+    previewStyle.setAttribute("href", stylesheetURL);
 }
 
 function fillDomains(domainData) {
@@ -426,6 +438,23 @@ function fillAttributes(nodeData) {
   customCSSField.value = nodeData.customCSS.selected;
 }
 
+function togglePreview(preview) {
+  if (preview) {
+    if (!previewStyle || !previewStyle.parentNode) {
+      previewStyle = doc.createElement("link");
+      previewStyle.setAttribute("rel", "stylesheet");
+      previewStyle.setAttribute("type", "text/css");
+      doc.documentElement.appendChild(previewStyle);
+    }
+    previewStyle.setAttribute("href", stylesheetURL);
+  }
+  else {
+    if (previewStyle && previewStyle.parentNode)
+      previewStyle.parentNode.removeChild(previewStyle);
+    previewStyle = null;
+  }
+}
+
 function changeDomain(node) {
   domainData.selected = node.getAttribute("value");
   updateExpression();
@@ -510,4 +539,6 @@ function addExpression() {
   var abp = Components.classes["@mozilla.org/adblockplus;1"]
                       .createInstance(Components.interfaces.nsIAdblockPlus);
   abp.addPatterns([document.getElementById("expression").value], 1);
+
+  togglePreview(true);
 }
diff --git a/chrome/content/composer.xul b/chrome/content/composer.xul
index 50ac563..febcbac 100644
--- a/chrome/content/composer.xul
+++ b/chrome/content/composer.xul
@@ -34,6 +34,7 @@
     title="&dialog.title;"
     onload="init()"
     ondialogaccept="addExpression()"
+    ondialogcancel="togglePreview(false)"
     ondialogdisclosure="setAdvancedMode(!advancedMode)"
     buttons="accept,cancel,disclosure"
     width="600px"
@@ -49,7 +50,10 @@
   
   <vbox id="expressionBox">
     <label control="expression" value="&expression.label;"/>
-    <textbox id="expression" readonly="true"/>
+    <hbox>
+      <textbox id="expression" flex="1" readonly="true"/>
+      <checkbox id="preview" label="&preview.label;" oncommand="togglePreview(this.checked)" persist="checked"/>
+    </hbox>
   </vbox>
 
   <hbox id="choices" flex="1">
diff --git a/chrome/locale/en-US/composer.dtd b/chrome/locale/en-US/composer.dtd
index 613aa42..ffaf377 100644
--- a/chrome/locale/en-US/composer.dtd
+++ b/chrome/locale/en-US/composer.dtd
@@ -27,6 +27,7 @@
 <!ENTITY advanced.label           "Advanced view">
 <!ENTITY basic.label              "Basic view">
 <!ENTITY expression.label         "Filter rule">
+<!ENTITY preview.label            "Preview">
 <!ENTITY domain.label             "Bind to domain">
 <!ENTITY domain.none.label        "Any domain (not recommended)">
 <!ENTITY nodes-tree.node.label    "Node">

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus-element-hiding-helper.git



More information about the Pkg-mozext-commits mailing list