[Pkg-mozext-commits] [automatic-save-folder] 10/133: New : Drag/drop the filters to move them up or down.
David Prévot
taffit at moszumanska.debian.org
Mon Apr 27 20:33:47 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch wip
in repository automatic-save-folder.
commit 1308d6b3e15cbc2ec501e27328245947bb347905
Author: Cyan <Cyan at d0063192-6b2e-11de-89a9-0b20f3e2dceb>
Date: Thu Aug 20 21:47:44 2009 +0000
New :
Drag/drop the filters to move them up or down.
git-svn-id: http://automatic-save-folder.googlecode.com/svn/trunk@10 d0063192-6b2e-11de-89a9-0b20f3e2dceb
---
content/asf.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++--
content/options.xul | 6 ++++-
2 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/content/asf.js b/content/asf.js
index 0fd5d7e..0728bd5 100644
--- a/content/asf.js
+++ b/content/asf.js
@@ -215,6 +215,7 @@ var automatic_save_folder = {
},
+
asf_selecttab: function(tabID) {
// Use this system for tab, because css for tab is not the same color as config window color, and I don't want to force any color by default so user can use new firefox theme's colors.
@@ -318,7 +319,65 @@ var automatic_save_folder = {
}
return false;
},
-
+
+
+ dragstart: function(event) {
+ var treename = "asf-filterList";
+ var tree = document.getElementById(treename);
+ var listBox = document.getElementById("asf-filterList");
+ var idx = listBox.currentIndex; //number of the selected line in tree
+ var currentitem = tree.treeBoxObject.view.getItemAtIndex(idx);
+
+ //event.dataTransfer.setData('application/x-moz-node', currentitem); // send node data
+ event.dataTransfer.setData('user/define', idx); // send index data as text (but to prevent drop on text field, let's use custom set)
+ },
+
+
+ dragover: function (event) {
+ //var isNode = event.dataTransfer.types.contains("application/x-moz-node");
+ var isDefine = event.dataTransfer.types.contains("user/define");
+ if (isDefine)
+ {
+ event.preventDefault();
+ event.dataTransfer.effectAllowed = "move";
+ event.dataTransfer.dropEffect = "move";
+ }
+ },
+
+
+ dragdrop: function (event) {
+ //var currentitem = event.dataTransfer.getData("application/x-moz-node");
+ //var currentitem_idx = event.dataTransfer.getData("text/plain");
+ var currentitem_idx = event.dataTransfer.getData("user/define");
+ if (currentitem_idx!="")
+ {
+ var treename = "asf-filterList";
+ var tree = document.getElementById(treename);
+ var currentitem = tree.treeBoxObject.view.getItemAtIndex(currentitem_idx);
+
+ try
+ {
+ var targetitem_idx = tree.treeBoxObject.getRowAt(event.pageX, event.pageY);
+ var targetitem = tree.treeBoxObject.view.getItemAtIndex(targetitem_idx);
+ var parent = targetitem.parentNode;
+
+ if (currentitem_idx > targetitem_idx) parent.insertBefore(currentitem, targetitem);
+ if (currentitem_idx < targetitem_idx) parent.insertBefore(currentitem, targetitem.nextSibling);
+ tree.view.selection.select(targetitem_idx); // reselect the moved filter
+
+ // Now check is the user has InstantApply option to save the filter's order.
+ var instantApply = this.prefManager.getBoolPref("browser.preferences.instantApply");
+ if (instantApply)
+ {
+ //save the filters
+ this.asf_savefilters();
+ }
+ }
+ catch(e){} // if the user point outside of the filter tree (because using dragexit instead of dragdrop (dragdrop is not working)).
+ }
+ event.preventDefault();
+ },
+
asf_duplicate: function () {
var treename = "asf-filterList";
@@ -365,7 +424,7 @@ var automatic_save_folder = {
//detect remaining filters, unhighlight, and change right buttons states
this.asf_treeSelected();
},
-
+
// next 2 functions : Code inspired from DTA (browsedir & createValidDestination)
browsedir: function () {
diff --git a/content/options.xul b/content/options.xul
index 875808f..19a1e1c 100644
--- a/content/options.xul
+++ b/content/options.xul
@@ -68,7 +68,11 @@
<splitter class="tree-splitter"/>
<treecol id="asf-column-Enabled" label="&asf.tree.column.enabled;" flex="0" persist="width ordinal hidden" type="checkbox" editable="true" hidden="true" />
</treecols>
- <treechildren id="asf-filterChilds" context="contextpopup" ondblclick="event.preventDefault();window.openDialog('chrome://asf/content/edit.xul','asf_addedit','chrome, centerscreen, resizable=no, dialog=no, modal=yes');"/>
+ <treechildren
+ ondragstart="automatic_save_folder.dragstart(event)"
+ ondragover="automatic_save_folder.dragover(event)"
+ ondragexit="automatic_save_folder.dragdrop(event)"
+ id="asf-filterChilds" context="contextpopup" ondblclick="event.preventDefault();window.openDialog('chrome://asf/content/edit.xul','asf_addedit','chrome, centerscreen, resizable=no, dialog=no, modal=yes');"/>
</tree>
<vbox>
<button id="asf-move-up" label="&asf.options.move.up;" oncommand="automatic_save_folder.move('up')"/>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/automatic-save-folder.git
More information about the Pkg-mozext-commits
mailing list