Fixes #1960688 [Enhancement Request: Alternate way to access 'edit permissible values' dialog](https://bugs.launchpad.net/calibre/+bug/1960688)
This commit is contained in:
Kovid Goyal 2022-02-16 07:54:09 +05:30
commit ff2bc6ecf7
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -15,6 +15,7 @@ from qt.core import (
QStyleOptionHeader, QItemSelectionModel, QSize, QFontMetrics, QApplication) QStyleOptionHeader, QItemSelectionModel, QSize, QFontMetrics, QApplication)
from calibre.constants import islinux from calibre.constants import islinux
from calibre.gui2.dialogs.enum_values_edit import EnumValuesEdit
from calibre.gui2.library.delegates import (RatingDelegate, PubDateDelegate, from calibre.gui2.library.delegates import (RatingDelegate, PubDateDelegate,
TextDelegate, DateDelegate, CompleteDelegate, CcTextDelegate, CcLongTextDelegate, TextDelegate, DateDelegate, CompleteDelegate, CcTextDelegate, CcLongTextDelegate,
CcBoolDelegate, CcCommentsDelegate, CcDateDelegate, CcTemplateDelegate, CcBoolDelegate, CcCommentsDelegate, CcDateDelegate, CcTemplateDelegate,
@ -431,6 +432,8 @@ class BooksView(QTableView): # {{{
elif action == 'reset_ondevice_width': elif action == 'reset_ondevice_width':
gprefs.set('ondevice_column_width', 0) gprefs.set('ondevice_column_width', 0)
self.resizeColumnToContents(idx) self.resizeColumnToContents(idx)
elif action == 'edit_enum':
EnumValuesEdit(self, self._model.db, column).exec()
self.save_state() self.save_state()
def create_context_menu(self, col, name, view): def create_context_menu(self, col, name, view):
@ -473,10 +476,14 @@ class BooksView(QTableView): # {{{
if self.is_library_view: if self.is_library_view:
if self._model.db.field_metadata[col]['is_category']: if self._model.db.field_metadata[col]['is_category']:
act = ans.addAction(QIcon.ic('quickview.png'), _('Quickview column %s') % name, partial(handler, action='quickview')) act = ans.addAction(QIcon.ic('quickview.png'), _('Quickview column %s') % name,
partial(handler, action='quickview'))
rows = self.selectionModel().selectedRows() rows = self.selectionModel().selectedRows()
if len(rows) > 1: if len(rows) > 1:
act.setEnabled(False) act.setEnabled(False)
if self._model.db.field_metadata[col]['datatype'] == 'enumeration':
ans.addAction(QIcon.ic('edit_input.png'), _('Edit permissible values for %s') % name,
partial(handler, action='edit_enum'))
hidden_cols = {self.column_map[i]: i for i in range(view.column_header.count()) hidden_cols = {self.column_map[i]: i for i in range(view.column_header.count())
if view.column_header.isSectionHidden(i) and self.column_map[i] not in ('ondevice', 'inlibrary')} if view.column_header.isSectionHidden(i) and self.column_map[i] not in ('ondevice', 'inlibrary')}