[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