mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Fix rows in the device books view sometimes being too high
This commit is contained in:
parent
f0d32cb528
commit
41f93db6f6
@ -1057,6 +1057,7 @@ class DeviceBooksModel(BooksModel): # {{{
|
|||||||
|
|
||||||
booklist_dirtied = pyqtSignal()
|
booklist_dirtied = pyqtSignal()
|
||||||
upload_collections = pyqtSignal(object)
|
upload_collections = pyqtSignal(object)
|
||||||
|
resize_rows = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
BooksModel.__init__(self, parent)
|
BooksModel.__init__(self, parent)
|
||||||
@ -1163,6 +1164,11 @@ class DeviceBooksModel(BooksModel): # {{{
|
|||||||
return flags
|
return flags
|
||||||
|
|
||||||
def search(self, text, reset=True):
|
def search(self, text, reset=True):
|
||||||
|
# This should not be here, but since the DeviceBooksModel does not
|
||||||
|
# implement count_changed and I am too lazy to fix that, this kludge
|
||||||
|
# will have to do
|
||||||
|
self.resize_rows.emit()
|
||||||
|
|
||||||
if not text or not text.strip():
|
if not text or not text.strip():
|
||||||
self.map = list(range(len(self.db)))
|
self.map = list(range(len(self.db)))
|
||||||
else:
|
else:
|
||||||
|
@ -90,6 +90,7 @@ 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.row_sizing_done = False
|
||||||
|
|
||||||
if not tweaks['horizontal_scrolling_per_column']:
|
if not tweaks['horizontal_scrolling_per_column']:
|
||||||
self.setHorizontalScrollMode(self.ScrollPerPixel)
|
self.setHorizontalScrollMode(self.ScrollPerPixel)
|
||||||
@ -141,6 +142,8 @@ class BooksView(QTableView): # {{{
|
|||||||
self.display_parent = parent
|
self.display_parent = parent
|
||||||
self._model = modelcls(self)
|
self._model = modelcls(self)
|
||||||
self.setModel(self._model)
|
self.setModel(self._model)
|
||||||
|
self._model.count_changed_signal.connect(self.do_row_sizing,
|
||||||
|
type=Qt.QueuedConnection)
|
||||||
self.setSelectionBehavior(QAbstractItemView.SelectRows)
|
self.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||||
self.setSortingEnabled(True)
|
self.setSortingEnabled(True)
|
||||||
self.selectionModel().currentRowChanged.connect(self._model.current_changed)
|
self.selectionModel().currentRowChanged.connect(self._model.current_changed)
|
||||||
@ -521,13 +524,17 @@ class BooksView(QTableView): # {{{
|
|||||||
self.apply_state(old_state, max_sort_levels=max_levels)
|
self.apply_state(old_state, max_sort_levels=max_levels)
|
||||||
self.column_header.blockSignals(False)
|
self.column_header.blockSignals(False)
|
||||||
|
|
||||||
# Resize all rows to have the correct height
|
self.do_row_sizing()
|
||||||
if self.model().rowCount(QModelIndex()) > 0:
|
|
||||||
self.resizeRowToContents(0)
|
|
||||||
self.verticalHeader().setDefaultSectionSize(self.rowHeight(0))
|
|
||||||
|
|
||||||
self.was_restored = True
|
self.was_restored = True
|
||||||
|
|
||||||
|
def do_row_sizing(self):
|
||||||
|
# Resize all rows to have the correct height
|
||||||
|
if not self.row_sizing_done and self.model().rowCount(QModelIndex()) > 0:
|
||||||
|
self.resizeRowToContents(0)
|
||||||
|
self.verticalHeader().setDefaultSectionSize(self.rowHeight(0))
|
||||||
|
self.row_sizing_done = True
|
||||||
|
|
||||||
def resize_column_to_fit(self, column):
|
def resize_column_to_fit(self, column):
|
||||||
col = self.column_map.index(column)
|
col = self.column_map.index(column)
|
||||||
self.column_resized(col, self.columnWidth(col), self.columnWidth(col))
|
self.column_resized(col, self.columnWidth(col), self.columnWidth(col))
|
||||||
@ -943,6 +950,8 @@ class DeviceBooksView(BooksView): # {{{
|
|||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
BooksView.__init__(self, parent, DeviceBooksModel,
|
BooksView.__init__(self, parent, DeviceBooksModel,
|
||||||
use_edit_metadata_dialog=False)
|
use_edit_metadata_dialog=False)
|
||||||
|
self._model.resize_rows.connect(self.do_row_sizing,
|
||||||
|
type=Qt.QueuedConnection)
|
||||||
self.can_add_columns = False
|
self.can_add_columns = False
|
||||||
self.columns_resized = False
|
self.columns_resized = False
|
||||||
self.resize_on_select = False
|
self.resize_on_select = False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user