mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix restoring of column widths in main GUI
This commit is contained in:
commit
31cf9f4721
@ -303,17 +303,24 @@ class TableView(QTableView):
|
||||
self.read_settings()
|
||||
|
||||
def read_settings(self):
|
||||
self.cw = dynamic[self.__class__.__name__+'column widths']
|
||||
self.cw = dynamic[self.__class__.__name__+'column width map']
|
||||
|
||||
def write_settings(self):
|
||||
dynamic[self.__class__.__name__+'column widths'] = \
|
||||
tuple([int(self.columnWidth(i)) for i in range(self.model().columnCount(None))])
|
||||
m = dynamic[self.__class__.__name__+'column width map']
|
||||
if m is None:
|
||||
m = {}
|
||||
for i,c in enumerate(self.model().column_map):
|
||||
m[c] = self.columnWidth(i)
|
||||
dynamic[self.__class__.__name__+'column width map'] = m
|
||||
self.cw = m
|
||||
|
||||
def restore_column_widths(self):
|
||||
if self.cw and len(self.cw):
|
||||
for i in range(len(self.cw)):
|
||||
self.setColumnWidth(i, self.cw[i])
|
||||
for i,c in enumerate(self.model().column_map):
|
||||
if c in self.cw:
|
||||
self.setColumnWidth(i, self.cw[c])
|
||||
return True
|
||||
return False
|
||||
|
||||
class FileIconProvider(QFileIconProvider):
|
||||
|
||||
|
@ -1081,6 +1081,8 @@ class BooksView(TableView):
|
||||
self.setItemDelegateForColumn(cm.index(colhead), self.cc_bool_delegate)
|
||||
elif cc['datatype'] == 'rating':
|
||||
self.setItemDelegateForColumn(cm.index(colhead), self.rating_delegate)
|
||||
if not self.restore_column_widths():
|
||||
self.resizeColumnsToContents()
|
||||
|
||||
def set_context_menu(self, edit_metadata, send_to_device, convert, view,
|
||||
save, open_folder, book_details, delete, similar_menu=None):
|
||||
@ -1186,7 +1188,6 @@ class BooksView(TableView):
|
||||
def row_count(self):
|
||||
return self._model.count()
|
||||
|
||||
|
||||
class DeviceBooksView(BooksView):
|
||||
|
||||
def __init__(self, parent):
|
||||
|
@ -1018,6 +1018,8 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
############################################################################
|
||||
### Force the library view to refresh, taking into consideration books information
|
||||
def refresh_ondevice_info(self, device_connected):
|
||||
# Save current column widths because we might be turning on OnDevice
|
||||
self.library_view.write_settings()
|
||||
self.book_on_device(None, reset=True)
|
||||
self.library_view.model().set_device_connected(device_connected)
|
||||
############################################################################
|
||||
@ -2218,6 +2220,9 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
return
|
||||
d = ConfigDialog(self, self.library_view.model(),
|
||||
server=self.content_server)
|
||||
# Save current column widths in case columns are turned on or off
|
||||
self.library_view.write_settings()
|
||||
|
||||
d.exec_()
|
||||
self.content_server = d.server
|
||||
if d.result() == d.Accepted:
|
||||
|
Loading…
x
Reference in New Issue
Block a user