diff --git a/ankiqt/config.py b/ankiqt/config.py index fea582f5a..8c779408a 100644 --- a/ankiqt/config.py +++ b/ankiqt/config.py @@ -79,6 +79,7 @@ class Config(dict): 'randomizeOnCram': True, 'created': time.time(), 'id': genID(), + 'editorReverseOrder': False, } for (k,v) in fields.items(): if not self.has_key(k): diff --git a/ankiqt/ui/cardlist.py b/ankiqt/ui/cardlist.py index 2c5acdd42..629afb4fe 100644 --- a/ankiqt/ui/cardlist.py +++ b/ankiqt/ui/cardlist.py @@ -145,6 +145,8 @@ class DeckModel(QAbstractTableModel): " order by cards.ordinal, %s") % (fields, order) # run the query self.cards = self.deck.s.all(query) + if self.parent.config['editorReverseOrder']: + self.cards.reverse() self.reset() def updateCard(self, index): @@ -214,6 +216,8 @@ class EditDeck(QMainWindow): self.dialog.tableView.setFont(QFont( self.config['editFontFamily'], self.config['editFontSize'])) + if self.parent.config['editorReverseOrder']: + self.dialog.actionReverseOrder.setChecked(True) self.setupMenus() self.setupFilter() self.setupSort() @@ -416,6 +420,7 @@ class EditDeck(QMainWindow): self.connect(self.dialog.actionReschedule, SIGNAL("triggered()"), self.reschedule) self.connect(self.dialog.actionSelectFacts, SIGNAL("triggered()"), self.selectFacts) self.connect(self.dialog.actionInvertSelection, SIGNAL("triggered()"), self.invertSelection) + self.connect(self.dialog.actionReverseOrder, SIGNAL("triggered()"), self.reverseOrder) self.connect(self.dialog.actionUndo, SIGNAL("triggered()"), self.onUndo) self.connect(self.dialog.actionRedo, SIGNAL("triggered()"), self.onRedo) # jumps @@ -648,6 +653,16 @@ cards.id in %s and cards.factId = facts.id""" % ids2str(sc)) self.dialog.tableView.selectAll() sm.select(items, QItemSelectionModel.Deselect | QItemSelectionModel.Rows) + def reverseOrder(self): + if self.parent.config['editorReverseOrder']: + self.parent.config['editorReverseOrder'] = False; + else: + self.parent.config['editorReverseOrder'] = True; + + self.model.cards.reverse() + self.model.reset() + self.focusCurrentCard() + # Undo/Redo ###################################################################### diff --git a/designer/cardlist.ui b/designer/cardlist.ui index 35db9785c..f3b1ffc37 100644 --- a/designer/cardlist.ui +++ b/designer/cardlist.ui @@ -13,14 +13,6 @@ Edit Items - - - 0 - 23 - 599 - 439 - - 0 @@ -170,7 +162,7 @@ 0 0 599 - 23 + 24 @@ -183,6 +175,7 @@ + @@ -371,6 +364,14 @@ Change &Template... + + + true + + + Reverse &Order + +