add reverse order option to editor

This commit is contained in:
Samson Melamed 2009-01-20 14:17:03 -05:00
parent 9810c36b45
commit 464795b6c7
3 changed files with 26 additions and 9 deletions

View file

@ -79,6 +79,7 @@ class Config(dict):
'randomizeOnCram': True, 'randomizeOnCram': True,
'created': time.time(), 'created': time.time(),
'id': genID(), 'id': genID(),
'editorReverseOrder': False,
} }
for (k,v) in fields.items(): for (k,v) in fields.items():
if not self.has_key(k): if not self.has_key(k):

View file

@ -145,6 +145,8 @@ class DeckModel(QAbstractTableModel):
" order by cards.ordinal, %s") % (fields, order) " order by cards.ordinal, %s") % (fields, order)
# run the query # run the query
self.cards = self.deck.s.all(query) self.cards = self.deck.s.all(query)
if self.parent.config['editorReverseOrder']:
self.cards.reverse()
self.reset() self.reset()
def updateCard(self, index): def updateCard(self, index):
@ -214,6 +216,8 @@ class EditDeck(QMainWindow):
self.dialog.tableView.setFont(QFont( self.dialog.tableView.setFont(QFont(
self.config['editFontFamily'], self.config['editFontFamily'],
self.config['editFontSize'])) self.config['editFontSize']))
if self.parent.config['editorReverseOrder']:
self.dialog.actionReverseOrder.setChecked(True)
self.setupMenus() self.setupMenus()
self.setupFilter() self.setupFilter()
self.setupSort() self.setupSort()
@ -416,6 +420,7 @@ class EditDeck(QMainWindow):
self.connect(self.dialog.actionReschedule, SIGNAL("triggered()"), self.reschedule) self.connect(self.dialog.actionReschedule, SIGNAL("triggered()"), self.reschedule)
self.connect(self.dialog.actionSelectFacts, SIGNAL("triggered()"), self.selectFacts) self.connect(self.dialog.actionSelectFacts, SIGNAL("triggered()"), self.selectFacts)
self.connect(self.dialog.actionInvertSelection, SIGNAL("triggered()"), self.invertSelection) 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.actionUndo, SIGNAL("triggered()"), self.onUndo)
self.connect(self.dialog.actionRedo, SIGNAL("triggered()"), self.onRedo) self.connect(self.dialog.actionRedo, SIGNAL("triggered()"), self.onRedo)
# jumps # jumps
@ -648,6 +653,16 @@ cards.id in %s and cards.factId = facts.id""" % ids2str(sc))
self.dialog.tableView.selectAll() self.dialog.tableView.selectAll()
sm.select(items, QItemSelectionModel.Deselect | QItemSelectionModel.Rows) 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 # Undo/Redo
###################################################################### ######################################################################

View file

@ -13,14 +13,6 @@
<string>Edit Items</string> <string>Edit Items</string>
</property> </property>
<widget class="QWidget" name="centralwidget" > <widget class="QWidget" name="centralwidget" >
<property name="geometry" >
<rect>
<x>0</x>
<y>23</y>
<width>599</width>
<height>439</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout" > <layout class="QVBoxLayout" name="verticalLayout" >
<property name="spacing" > <property name="spacing" >
<number>0</number> <number>0</number>
@ -170,7 +162,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>599</width> <width>599</width>
<height>23</height> <height>24</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuEdit" > <widget class="QMenu" name="menuEdit" >
@ -183,6 +175,7 @@
<addaction name="actionSelectAll" /> <addaction name="actionSelectAll" />
<addaction name="actionSelectFacts" /> <addaction name="actionSelectFacts" />
<addaction name="actionInvertSelection" /> <addaction name="actionInvertSelection" />
<addaction name="actionReverseOrder" />
</widget> </widget>
<widget class="QMenu" name="menuActions" > <widget class="QMenu" name="menuActions" >
<property name="title" > <property name="title" >
@ -371,6 +364,14 @@
<string>Change &amp;Template...</string> <string>Change &amp;Template...</string>
</property> </property>
</action> </action>
<action name="actionReverseOrder" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="text" >
<string>Reverse &amp;Order</string>
</property>
</action>
</widget> </widget>
<resources> <resources>
<include location="../icons.qrc" /> <include location="../icons.qrc" />