Module: deluge
Branch: master
Commit: 148fcdbe3767ed5848063d6c281a160657ffbe42

Author: Damien Churchill <[email protected]>
Date:   Thu Jul  1 13:45:22 2010 +0100

allow for shift selecting in tree grids

---

 .../ext-extensions/tree/MultiSelectionModelFix.js  |   63 ++++++++++++++++++++
 1 files changed, 63 insertions(+), 0 deletions(-)

diff --git a/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js 
b/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js
new file mode 100644
index 0000000..866e686
--- /dev/null
+++ b/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js
@@ -0,0 +1,63 @@
+/*!
+ * Ext.ux.tree.MultiSelectionModelFix.js
+ * 
+ * Copyright (c) Damien Churchill 2009-2010 <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, write to:
+ *     The Free Software Foundation, Inc.,
+ *     51 Franklin Street, Fifth Floor
+ *     Boston, MA  02110-1301, USA.
+ *
+ * In addition, as a special exception, the copyright holders give
+ * permission to link the code of portions of this program with the OpenSSL
+ * library.
+ * You must obey the GNU General Public License in all respects for all of
+ * the code used other than OpenSSL. If you modify file(s) with this
+ * exception, you may extend this exception to your version of the file(s),
+ * but you are not obligated to do so. If you do not wish to do so, delete
+ * this exception statement from your version. If you delete this exception
+ * statement from all source files in the program, then also delete it here.
+ */
+
+/**
+ * This enhances the MSM to allow for shift selecting in tree grids etc.
+ * @author Damien Churchill <[email protected]>
+ */
+Ext.override(Ext.tree.MultiSelectionModel, {
+       
+       onNodeClick: function (node, e) {
+               if (e.ctrlKey && this.isSelected(node)) {
+                       this.unselect(node);
+               } else if (e.shiftKey && !this.isSelected(node)) {
+                       var parentNode = node.parentNode;
+                       // We can only shift select files in the same node
+                       if (this.lastSelNode.parentNode.id != parentNode.id) 
return;
+
+                       // Get the node indexes
+                       var ni = parentNode.indexOf(node),
+                               li = parentNode.indexOf(this.lastSelNode);
+
+                       // Select all the nodes
+                       parentNode.eachChild(function(n) {
+                               var i = parentNode.indexOf(n);
+                               if (li < i && i <= ni) {
+                                       this.select(n, e, true);
+                               }
+                       }, this);
+               } else {
+                       this.select(node, e, e.ctrlKey);
+               }
+       }
+
+})

-- 
You received this message because you are subscribed to the Google Groups 
"deluge-commit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/deluge-commit?hl=en.

Reply via email to