mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Merge from trunk
This commit is contained in:
commit
efcf731c62
@ -292,13 +292,17 @@ maximum_resort_levels = 5
|
|||||||
generate_cover_title_font = None
|
generate_cover_title_font = None
|
||||||
generate_cover_foot_font = None
|
generate_cover_foot_font = None
|
||||||
|
|
||||||
#: Control behavior of double clicks on the book list
|
#: Control behavior of the book list
|
||||||
# Behavior of doubleclick on the books list. Choices: open_viewer, do_nothing,
|
# You can control the behavior of doubleclicks on the books list.
|
||||||
|
# Choices: open_viewer, do_nothing,
|
||||||
# edit_cell, edit_metadata. Selecting edit_metadata has the side effect of
|
# edit_cell, edit_metadata. Selecting edit_metadata has the side effect of
|
||||||
# disabling editing a field using a single click.
|
# disabling editing a field using a single click.
|
||||||
# Default: open_viewer.
|
# Default: open_viewer.
|
||||||
# Example: doubleclick_on_library_view = 'do_nothing'
|
# Example: doubleclick_on_library_view = 'do_nothing'
|
||||||
|
# You can also control whether the book list scrolls horizontal per column or
|
||||||
|
# per pixel. Default is per column.
|
||||||
doubleclick_on_library_view = 'open_viewer'
|
doubleclick_on_library_view = 'open_viewer'
|
||||||
|
horizontal_scrolling_per_column = True
|
||||||
|
|
||||||
#: Language to use when sorting.
|
#: Language to use when sorting.
|
||||||
# Setting this tweak will force sorting to use the
|
# Setting this tweak will force sorting to use the
|
||||||
|
@ -51,7 +51,8 @@ class BooksView(QTableView): # {{{
|
|||||||
def __init__(self, parent, modelcls=BooksModel, use_edit_metadata_dialog=True):
|
def __init__(self, parent, modelcls=BooksModel, use_edit_metadata_dialog=True):
|
||||||
QTableView.__init__(self, parent)
|
QTableView.__init__(self, parent)
|
||||||
|
|
||||||
self.setHorizontalScrollMode(self.ScrollPerPixel)
|
if not tweaks['horizontal_scrolling_per_column']:
|
||||||
|
self.setHorizontalScrollMode(self.ScrollPerPixel)
|
||||||
|
|
||||||
self.setEditTriggers(self.EditKeyPressed)
|
self.setEditTriggers(self.EditKeyPressed)
|
||||||
if tweaks['doubleclick_on_library_view'] == 'edit_cell':
|
if tweaks['doubleclick_on_library_view'] == 'edit_cell':
|
||||||
@ -112,6 +113,7 @@ class BooksView(QTableView): # {{{
|
|||||||
self.column_header.sectionMoved.connect(self.save_state)
|
self.column_header.sectionMoved.connect(self.save_state)
|
||||||
self.column_header.setContextMenuPolicy(Qt.CustomContextMenu)
|
self.column_header.setContextMenuPolicy(Qt.CustomContextMenu)
|
||||||
self.column_header.customContextMenuRequested.connect(self.show_column_header_context_menu)
|
self.column_header.customContextMenuRequested.connect(self.show_column_header_context_menu)
|
||||||
|
self.column_header.sectionResized.connect(self.column_resized, Qt.QueuedConnection)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
self._model.database_changed.connect(self.database_changed)
|
self._model.database_changed.connect(self.database_changed)
|
||||||
@ -216,6 +218,9 @@ class BooksView(QTableView): # {{{
|
|||||||
|
|
||||||
|
|
||||||
self.column_header_context_menu.addSeparator()
|
self.column_header_context_menu.addSeparator()
|
||||||
|
self.column_header_context_menu.addAction(
|
||||||
|
_('Shrink column if it is too wide to fit'),
|
||||||
|
partial(self.resize_column_to_fit, column=self.column_map[idx]))
|
||||||
self.column_header_context_menu.addAction(
|
self.column_header_context_menu.addAction(
|
||||||
_('Restore default layout'),
|
_('Restore default layout'),
|
||||||
partial(self.column_header_context_handler,
|
partial(self.column_header_context_handler,
|
||||||
@ -464,6 +469,19 @@ class BooksView(QTableView): # {{{
|
|||||||
|
|
||||||
self.was_restored = True
|
self.was_restored = True
|
||||||
|
|
||||||
|
def resize_column_to_fit(self, column):
|
||||||
|
col = self.column_map.index(column)
|
||||||
|
self.column_resized(col, self.columnWidth(col), self.columnWidth(col))
|
||||||
|
|
||||||
|
def column_resized(self, col, old_size, new_size):
|
||||||
|
# arbitrary: scroll bar + header + some
|
||||||
|
max_width = self.width() - (self.verticalScrollBar().width() +
|
||||||
|
self.verticalHeader().width() + 10)
|
||||||
|
if new_size > max_width:
|
||||||
|
self.column_header.blockSignals(True)
|
||||||
|
self.setColumnWidth(col, max_width)
|
||||||
|
self.column_header.blockSignals(False)
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Initialization/Delegate Setup {{{
|
# Initialization/Delegate Setup {{{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user