mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge branch 'master' of https://github.com/cbhaley/calibre
Fixes #1909332 [Rules editor: Duplicated rules appear to overwrite next item in list](https://bugs.launchpad.net/calibre/+bug/1909332) Fixes #1909339 [Enhancement Request: Rules editors: Button to open icons folder](https://bugs.launchpad.net/calibre/+bug/1909339)
This commit is contained in:
commit
28455a23c4
@ -17,7 +17,8 @@ from PyQt5.Qt import (QWidget, QDialog, QLabel, QGridLayout, QComboBox, QSize,
|
|||||||
from calibre import prepare_string_for_xml, sanitize_file_name, as_unicode
|
from calibre import prepare_string_for_xml, sanitize_file_name, as_unicode
|
||||||
from calibre.constants import config_dir
|
from calibre.constants import config_dir
|
||||||
from calibre.utils.icu import sort_key
|
from calibre.utils.icu import sort_key
|
||||||
from calibre.gui2 import error_dialog, choose_files, pixmap_to_data, gprefs, choose_save_file
|
from calibre.gui2 import (error_dialog, choose_files, pixmap_to_data, gprefs,
|
||||||
|
choose_save_file, open_local_file)
|
||||||
from calibre.gui2.dialogs.template_dialog import TemplateDialog
|
from calibre.gui2.dialogs.template_dialog import TemplateDialog
|
||||||
from calibre.gui2.metadata.single_download import RichTextDelegate
|
from calibre.gui2.metadata.single_download import RichTextDelegate
|
||||||
from calibre.gui2.widgets2 import ColorButton
|
from calibre.gui2.widgets2 import ColorButton
|
||||||
@ -784,12 +785,11 @@ class RulesModel(QAbstractListModel): # {{{
|
|||||||
def move(self, idx, delta):
|
def move(self, idx, delta):
|
||||||
row = idx.row() + delta
|
row = idx.row() + delta
|
||||||
if row >= 0 and row < len(self.rules):
|
if row >= 0 and row < len(self.rules):
|
||||||
t = self.rules[row]
|
self.beginResetModel()
|
||||||
self.rules[row] = self.rules[row-delta]
|
t = self.rules.pop(row-delta)
|
||||||
self.rules[row-delta] = t
|
self.rules.insert(row, t) # does append if row >= len(rules)
|
||||||
self.dataChanged.emit(idx, idx)
|
self.endResetModel()
|
||||||
idx = self.index(row)
|
idx = self.index(row)
|
||||||
self.dataChanged.emit(idx, idx)
|
|
||||||
return idx
|
return idx
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
@ -961,6 +961,12 @@ class EditRules(QWidget): # {{{
|
|||||||
b.setEnabled(False)
|
b.setEnabled(False)
|
||||||
hb.addWidget(b)
|
hb.addWidget(b)
|
||||||
hb.addStretch(10)
|
hb.addStretch(10)
|
||||||
|
self.open_icon_folder_button = b = QPushButton(QIcon(I('icon_choose.png')),
|
||||||
|
_('Open icon directory'), self)
|
||||||
|
connect_lambda(b.clicked, self,
|
||||||
|
lambda _: open_local_file(os.path.join(config_dir, 'cc_icons')))
|
||||||
|
hb.addWidget(b)
|
||||||
|
hb.addStretch(10)
|
||||||
self.export_button = b = QPushButton(_('E&xport'), self)
|
self.export_button = b = QPushButton(_('E&xport'), self)
|
||||||
b.clicked.connect(self.export_rules)
|
b.clicked.connect(self.export_rules)
|
||||||
b.setToolTip(_('Export these rules to a file'))
|
b.setToolTip(_('Export these rules to a file'))
|
||||||
@ -1136,6 +1142,7 @@ class EditRules(QWidget): # {{{
|
|||||||
idx = self.model.move(idx, -1)
|
idx = self.model.move(idx, -1)
|
||||||
if idx is not None:
|
if idx is not None:
|
||||||
sm.select(idx, QItemSelectionModel.SelectionFlag.Toggle)
|
sm.select(idx, QItemSelectionModel.SelectionFlag.Toggle)
|
||||||
|
self.rules_view.setCurrentIndex(idx)
|
||||||
self.changed.emit()
|
self.changed.emit()
|
||||||
|
|
||||||
def move_down(self):
|
def move_down(self):
|
||||||
@ -1150,6 +1157,7 @@ class EditRules(QWidget): # {{{
|
|||||||
idx = self.model.move(idx, 1)
|
idx = self.model.move(idx, 1)
|
||||||
if idx is not None:
|
if idx is not None:
|
||||||
sm.select(idx, QItemSelectionModel.SelectionFlag.Toggle)
|
sm.select(idx, QItemSelectionModel.SelectionFlag.Toggle)
|
||||||
|
self.rules_view.setCurrentIndex(idx)
|
||||||
self.changed.emit()
|
self.changed.emit()
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user