mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Edit metadata dialog: Add an action to generate author sort from author
This commit is contained in:
parent
4f2deef829
commit
3b78209a8d
@ -222,7 +222,8 @@ class AuthorSortEdit(EnLineEdit):
|
|||||||
'red, then the authors and this text do not match.')
|
'red, then the authors and this text do not match.')
|
||||||
LABEL = _('Author s&ort:')
|
LABEL = _('Author s&ort:')
|
||||||
|
|
||||||
def __init__(self, parent, authors_edit, autogen_button, db):
|
def __init__(self, parent, authors_edit, autogen_button, db,
|
||||||
|
copy_as_to_a_action):
|
||||||
EnLineEdit.__init__(self, parent)
|
EnLineEdit.__init__(self, parent)
|
||||||
self.authors_edit = authors_edit
|
self.authors_edit = authors_edit
|
||||||
self.db = db
|
self.db = db
|
||||||
@ -241,6 +242,7 @@ class AuthorSortEdit(EnLineEdit):
|
|||||||
self.textChanged.connect(self.update_state)
|
self.textChanged.connect(self.update_state)
|
||||||
|
|
||||||
autogen_button.clicked.connect(self.auto_generate)
|
autogen_button.clicked.connect(self.auto_generate)
|
||||||
|
copy_as_to_a_action.triggered.connect(self.copy_to_authors)
|
||||||
self.update_state()
|
self.update_state()
|
||||||
|
|
||||||
@dynamic_property
|
@dynamic_property
|
||||||
@ -273,6 +275,14 @@ class AuthorSortEdit(EnLineEdit):
|
|||||||
self.setToolTip(tt)
|
self.setToolTip(tt)
|
||||||
self.setWhatsThis(tt)
|
self.setWhatsThis(tt)
|
||||||
|
|
||||||
|
def copy_to_authors(self):
|
||||||
|
aus = self.current_val
|
||||||
|
if aus:
|
||||||
|
ln, _, rest = aus.partition(',')
|
||||||
|
if rest:
|
||||||
|
au = rest.strip() + ' ' + ln.strip()
|
||||||
|
self.authors_edit.current_val = [au]
|
||||||
|
|
||||||
def auto_generate(self, *args):
|
def auto_generate(self, *args):
|
||||||
au = unicode(self.authors_edit.text())
|
au = unicode(self.authors_edit.text())
|
||||||
au = re.sub(r'\s+et al\.$', '', au)
|
au = re.sub(r'\s+et al\.$', '', au)
|
||||||
|
@ -13,7 +13,7 @@ from functools import partial
|
|||||||
from PyQt4.Qt import (Qt, QVBoxLayout, QHBoxLayout, QWidget, QPushButton,
|
from PyQt4.Qt import (Qt, QVBoxLayout, QHBoxLayout, QWidget, QPushButton,
|
||||||
QGridLayout, pyqtSignal, QDialogButtonBox, QScrollArea, QFont,
|
QGridLayout, pyqtSignal, QDialogButtonBox, QScrollArea, QFont,
|
||||||
QTabWidget, QIcon, QToolButton, QSplitter, QGroupBox, QSpacerItem,
|
QTabWidget, QIcon, QToolButton, QSplitter, QGroupBox, QSpacerItem,
|
||||||
QSizePolicy, QPalette, QFrame, QSize, QKeySequence)
|
QSizePolicy, QPalette, QFrame, QSize, QKeySequence, QMenu)
|
||||||
|
|
||||||
from calibre.ebooks.metadata import authors_to_string, string_to_authors
|
from calibre.ebooks.metadata import authors_to_string, string_to_authors
|
||||||
from calibre.gui2 import ResizableDialog, error_dialog, gprefs, pixmap_to_data
|
from calibre.gui2 import ResizableDialog, error_dialog, gprefs, pixmap_to_data
|
||||||
@ -102,15 +102,17 @@ class MetadataSingleDialogBase(ResizableDialog):
|
|||||||
self.deduce_title_sort_button)
|
self.deduce_title_sort_button)
|
||||||
self.basic_metadata_widgets.extend([self.title, self.title_sort])
|
self.basic_metadata_widgets.extend([self.title, self.title_sort])
|
||||||
|
|
||||||
self.authors = AuthorsEdit(self)
|
self.deduce_author_sort_button = b = QToolButton(self)
|
||||||
self.deduce_author_sort_button = QToolButton(self)
|
b.setToolTip(_(
|
||||||
self.deduce_author_sort_button.setToolTip(_(
|
|
||||||
'Automatically create the author sort entry based on the current'
|
'Automatically create the author sort entry based on the current'
|
||||||
' author entry.\n'
|
' author entry.\n'
|
||||||
'Using this button to create author sort will change author sort from'
|
'Using this button to create author sort will change author sort from'
|
||||||
' red to green.'))
|
' red to green.'))
|
||||||
self.author_sort = AuthorSortEdit(self, self.authors,
|
b.m = m = QMenu()
|
||||||
self.deduce_author_sort_button, self.db)
|
ac = m.addAction(QIcon(I('back.png')), _('Set author from author sort'))
|
||||||
|
b.setMenu(m)
|
||||||
|
self.authors = AuthorsEdit(self)
|
||||||
|
self.author_sort = AuthorSortEdit(self, self.authors, b, self.db, ac)
|
||||||
self.basic_metadata_widgets.extend([self.authors, self.author_sort])
|
self.basic_metadata_widgets.extend([self.authors, self.author_sort])
|
||||||
|
|
||||||
self.swap_title_author_button = QToolButton(self)
|
self.swap_title_author_button = QToolButton(self)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user