mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Editor: Fix bulk renaming of non-Text files.
Do not allow bulk renaming of different categories of files. Set the default prefix according to the category of file.
This commit is contained in:
parent
d1a1706dff
commit
b1b9a0020c
@ -53,13 +53,20 @@ def name_is_ok(name, show_error):
|
|||||||
show_error('')
|
show_error('')
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def get_bulk_rename_settings(parent, number, msg=None, sanitize=sanitize_file_name_unicode, leading_zeros=True, prefix=None): # {{{
|
def get_bulk_rename_settings(parent, number, msg=None, sanitize=sanitize_file_name_unicode, leading_zeros=True, prefix=None, category='text'): # {{{
|
||||||
d = QDialog(parent)
|
d = QDialog(parent)
|
||||||
d.setWindowTitle(_('Bulk rename items'))
|
d.setWindowTitle(_('Bulk rename items'))
|
||||||
d.l = l = QFormLayout(d)
|
d.l = l = QFormLayout(d)
|
||||||
d.setLayout(l)
|
d.setLayout(l)
|
||||||
d.prefix = p = QLineEdit(d)
|
d.prefix = p = QLineEdit(d)
|
||||||
p.setText(prefix or _('Chapter-'))
|
default_prefixes = {
|
||||||
|
'images': _('Image-'),
|
||||||
|
'styles': _('Style-'),
|
||||||
|
'fonts': _('Font-'),
|
||||||
|
'text': _('Chapter-'),
|
||||||
|
'misc': _('Misc-')
|
||||||
|
}
|
||||||
|
p.setText(prefix or default_prefixes.get(category))
|
||||||
p.selectAll()
|
p.selectAll()
|
||||||
d.la = la = QLabel(msg or _(
|
d.la = la = QLabel(msg or _(
|
||||||
'All selected files will be renamed to the form prefix-number'))
|
'All selected files will be renamed to the form prefix-number'))
|
||||||
@ -517,12 +524,16 @@ class FileList(QTreeWidget):
|
|||||||
' internal structures of the original file.') % current_container().book_type.upper(), show=True)
|
' internal structures of the original file.') % current_container().book_type.upper(), show=True)
|
||||||
return
|
return
|
||||||
names = {unicode(item.data(0, NAME_ROLE) or '') for item in self.selectedItems()}
|
names = {unicode(item.data(0, NAME_ROLE) or '') for item in self.selectedItems()}
|
||||||
|
categories = {unicode(item.data(0, CATEGORY_ROLE) or '') for item in self.selectedItems()}
|
||||||
|
if len(categories) > 1:
|
||||||
|
return error_dialog(self, _('Cannot rename'),
|
||||||
|
_('The file(s) %s cannot be renamed because they are of different types.') % ('<b>%s</b>' % ', '.join(names)), show=True)
|
||||||
bad = names & current_container().names_that_must_not_be_changed
|
bad = names & current_container().names_that_must_not_be_changed
|
||||||
if bad:
|
if bad:
|
||||||
return error_dialog(self, _('Cannot rename'),
|
return error_dialog(self, _('Cannot rename'),
|
||||||
_('The file(s) %s cannot be renamed.') % ('<b>%s</b>' % ', '.join(bad)), show=True)
|
_('The file(s) %s cannot be renamed.') % ('<b>%s</b>' % ', '.join(bad)), show=True)
|
||||||
names = sorted(names, key=self.index_of_name)
|
names = sorted(names, key=self.index_of_name)
|
||||||
fmt, num = get_bulk_rename_settings(self, len(names))
|
fmt, num = get_bulk_rename_settings(self, len(names), category=categories.pop())
|
||||||
if fmt is not None:
|
if fmt is not None:
|
||||||
def change_name(name, num):
|
def change_name(name, num):
|
||||||
parts = name.split('/')
|
parts = name.split('/')
|
||||||
@ -853,4 +864,3 @@ class FileListWidget(QWidget):
|
|||||||
if name in self.forwarded_signals:
|
if name in self.forwarded_signals:
|
||||||
return getattr(self.file_list, name)
|
return getattr(self.file_list, name)
|
||||||
return QWidget.__getattr__(self, name)
|
return QWidget.__getattr__(self, name)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user