From 1399a79c74c5fd91c3808166ef91653d767173e9 Mon Sep 17 00:00:00 2001 From: Aaron Harsh Date: Sun, 5 Feb 2012 11:29:04 -0800 Subject: [PATCH 1/5] Drag a deck to top level at either bottom or top of deck list --- aqt/deckbrowser.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index c8871a8f6..ddfbe46e3 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -99,8 +99,7 @@ body { margin: 1em; -webkit-user-select: none; } def _renderPage(self): css = self.mw.sharedCSS + self._css - tree = self._renderDeckTree(self.mw.col.sched.deckDueTree()) \ - + self._bogusBottomRowForDraggingDeckToTopLevel() + tree = self._renderDeckTree(self.mw.col.sched.deckDueTree()) self.web.stdHtml(self._body%dict( title=_("Decks"), tree=tree), css=css) @@ -114,10 +113,13 @@ body { margin: 1em; -webkit-user-select: none; } %s%s %s""" % ( _("Deck"), _("Due"), _("New")) + buf += self._bogusBottomRowForDraggingDeckToTopLevel() else: buf = "" for node in nodes: buf += self._deckRow(node, depth) + if depth == 0: + buf += self._bogusBottomRowForDraggingDeckToTopLevel() return buf def _deckRow(self, node, depth): From 009d0c18e4f2a226000eb67a0b9779dbef332ecf Mon Sep 17 00:00:00 2001 From: Aaron Harsh Date: Sun, 5 Feb 2012 13:29:08 -0800 Subject: [PATCH 2/5] Rename BottomRowForDragging (since it's not just on the bottom anymore) --- aqt/deckbrowser.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index ddfbe46e3..4b6271439 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -82,7 +82,7 @@ body { margin: 1em; -webkit-user-select: none; } drop: handleDropEvent, hoverClass: 'drag-hover', }); - $("tr.bottom-row").droppable({ + $("tr.top-level-drag-row").droppable({ drop: handleDropEvent, hoverClass: 'drag-hover', }); @@ -113,13 +113,13 @@ body { margin: 1em; -webkit-user-select: none; } %s%s %s""" % ( _("Deck"), _("Due"), _("New")) - buf += self._bogusBottomRowForDraggingDeckToTopLevel() + buf += self._topLevelDragRow() else: buf = "" for node in nodes: buf += self._deckRow(node, depth) if depth == 0: - buf += self._bogusBottomRowForDraggingDeckToTopLevel() + buf += self._topLevelDragRow() return buf def _deckRow(self, node, depth): @@ -145,8 +145,8 @@ body { margin: 1em; -webkit-user-select: none; } buf += self._renderDeckTree(children, depth+1) return buf - def _bogusBottomRowForDraggingDeckToTopLevel(self): - return " " + def _topLevelDragRow(self): + return " " def _dueImg(self, due, new): if due: From b2608f5ea4ff4e4e81b2324e15e397667cc3ee43 Mon Sep 17 00:00:00 2001 From: Aaron Harsh Date: Sun, 5 Feb 2012 13:31:34 -0800 Subject: [PATCH 3/5] All draggable rows now have transparent border bottom, to prevent deck names from fidgeting during drag/drop --- aqt/deckbrowser.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index 4b6271439..5d2fcd81a 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -48,16 +48,19 @@ class DeckBrowser(object): # HTML generation ########################################################################## + _dragIndicatorBorderWidth = "1px" + _css = """ tr { font-size: 12px; } a.deck { color: #000; text-decoration: none; } a.deck:hover { text-decoration: underline; } -tr.deck td { border-bottom: thick solid transparent; } +tr.deck td { border-bottom: %(width)s solid transparent; } +tr.top-level-drag-row td { border-bottom: %(width)s solid transparent; } td.opts { white-space: nowrap; } -tr.drag-hover td { border-bottom: 1px solid #aaa; } -.extra { font-size: 90%; } +tr.drag-hover td { border-bottom: %(width)s solid #aaa; } +.extra { font-size: 90%%; } body { margin: 1em; -webkit-user-select: none; } -""" +""" % dict(width=_dragIndicatorBorderWidth) _body = """
From 6b4b7220a8628d0a5e36042f95c9d2aff7c15b73 Mon Sep 17 00:00:00 2001 From: Aaron Harsh Date: Sun, 5 Feb 2012 13:35:54 -0800 Subject: [PATCH 4/5] Get rid of unused 'title' mapping key in deckbrowser body --- aqt/deckbrowser.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index 5d2fcd81a..50b43b047 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -103,9 +103,7 @@ body { margin: 1em; -webkit-user-select: none; } def _renderPage(self): css = self.mw.sharedCSS + self._css tree = self._renderDeckTree(self.mw.col.sched.deckDueTree()) - self.web.stdHtml(self._body%dict( - title=_("Decks"), - tree=tree), css=css) + self.web.stdHtml(self._body%dict(tree=tree), css=css) self._drawButtons() def _renderDeckTree(self, nodes, depth=0): From 7e50a806830b9cd18db17ca3c64c57d802c96ce8 Mon Sep 17 00:00:00 2001 From: Aaron Harsh Date: Sun, 5 Feb 2012 14:00:21 -0800 Subject: [PATCH 5/5] Wait 200ms before starting drag, to make it easier for twitchy mouses to click on a deck name --- aqt/deckbrowser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index 50b43b047..45482f848 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -79,6 +79,7 @@ body { margin: 1em; -webkit-user-select: none; } helper: function (event) { return $(this).clone(false); }, + delay: 200, opacity: 0.7 }); $("tr.deck").droppable({