mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
91d499e5b7
commit
f6f8963653
@ -391,6 +391,17 @@ class RulesModel(QAbstractListModel):
|
|||||||
rules.append((col, r))
|
rules.append((col, r))
|
||||||
prefs['column_color_rules'] = rules
|
prefs['column_color_rules'] = rules
|
||||||
|
|
||||||
|
def move(self, idx, delta):
|
||||||
|
row = idx.row() + delta
|
||||||
|
if row >= 0 and row < len(self.rules):
|
||||||
|
t = self.rules[row]
|
||||||
|
self.rules[row] = self.rules[row-delta]
|
||||||
|
self.rules[row-delta] = t
|
||||||
|
self.dataChanged.emit(idx, idx)
|
||||||
|
idx = self.index(row)
|
||||||
|
self.dataChanged.emit(idx, idx)
|
||||||
|
return idx
|
||||||
|
|
||||||
def rule_to_html(self, col, rule):
|
def rule_to_html(self, col, rule):
|
||||||
if isinstance(rule, basestring):
|
if isinstance(rule, basestring):
|
||||||
return _('''
|
return _('''
|
||||||
@ -437,7 +448,7 @@ class EditRules(QWidget):
|
|||||||
|
|
||||||
self.g = g = QGridLayout()
|
self.g = g = QGridLayout()
|
||||||
self.rules_view = QListView(self)
|
self.rules_view = QListView(self)
|
||||||
self.rules_view.activated.connect(self.edit_rule)
|
self.rules_view.doubleClicked.connect(self.edit_rule)
|
||||||
self.rules_view.setSelectionMode(self.rules_view.SingleSelection)
|
self.rules_view.setSelectionMode(self.rules_view.SingleSelection)
|
||||||
self.rules_view.setAlternatingRowColors(True)
|
self.rules_view.setAlternatingRowColors(True)
|
||||||
self.rtfd = RichTextDelegate(parent=self.rules_view, max_width=400)
|
self.rtfd = RichTextDelegate(parent=self.rules_view, max_width=400)
|
||||||
@ -495,19 +506,37 @@ class EditRules(QWidget):
|
|||||||
def add_advanced(self):
|
def add_advanced(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def remove_rule(self):
|
def get_selected_row(self, txt):
|
||||||
sm = self.rules_view.selectionModel()
|
sm = self.rules_view.selectionModel()
|
||||||
rows = list(sm.selectedRows())
|
rows = list(sm.selectedRows())
|
||||||
if not rows:
|
if not rows:
|
||||||
return error_dialog(self, _('No rule selected'),
|
error_dialog(self, _('No rule selected'),
|
||||||
_('No rule selected for removal.'), show=True)
|
_('No rule selected for %s.')%txt, show=True)
|
||||||
self.model.remove_rule(rows[0])
|
return None
|
||||||
|
return rows[0]
|
||||||
|
|
||||||
|
def remove_rule(self):
|
||||||
|
row = self.get_selected_row(_('removal'))
|
||||||
|
if row is not None:
|
||||||
|
self.model.remove_rule(row)
|
||||||
|
|
||||||
def move_up(self):
|
def move_up(self):
|
||||||
pass
|
idx = self.rules_view.currentIndex()
|
||||||
|
if idx.isValid():
|
||||||
|
idx = self.model.move(idx, -1)
|
||||||
|
if idx is not None:
|
||||||
|
sm = self.rules_view.selectionModel()
|
||||||
|
sm.select(idx, sm.ClearAndSelect)
|
||||||
|
self.rules_view.setCurrentIndex(idx)
|
||||||
|
|
||||||
def move_down(self):
|
def move_down(self):
|
||||||
pass
|
idx = self.rules_view.currentIndex()
|
||||||
|
if idx.isValid():
|
||||||
|
idx = self.model.move(idx, 1)
|
||||||
|
if idx is not None:
|
||||||
|
sm = self.rules_view.selectionModel()
|
||||||
|
sm.select(idx, sm.ClearAndSelect)
|
||||||
|
self.rules_view.setCurrentIndex(idx)
|
||||||
|
|
||||||
def commit(self, prefs):
|
def commit(self, prefs):
|
||||||
self.model.commit(prefs)
|
self.model.commit(prefs)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user