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()
|
self.read_settings()
|
||||||
|
|
||||||
def read_settings(self):
|
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):
|
def write_settings(self):
|
||||||
dynamic[self.__class__.__name__+'column widths'] = \
|
m = dynamic[self.__class__.__name__+'column width map']
|
||||||
tuple([int(self.columnWidth(i)) for i in range(self.model().columnCount(None))])
|
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):
|
def restore_column_widths(self):
|
||||||
if self.cw and len(self.cw):
|
if self.cw and len(self.cw):
|
||||||
for i in range(len(self.cw)):
|
for i,c in enumerate(self.model().column_map):
|
||||||
self.setColumnWidth(i, self.cw[i])
|
if c in self.cw:
|
||||||
|
self.setColumnWidth(i, self.cw[c])
|
||||||
return True
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
class FileIconProvider(QFileIconProvider):
|
class FileIconProvider(QFileIconProvider):
|
||||||
|
|
||||||
|
@ -1081,6 +1081,8 @@ class BooksView(TableView):
|
|||||||
self.setItemDelegateForColumn(cm.index(colhead), self.cc_bool_delegate)
|
self.setItemDelegateForColumn(cm.index(colhead), self.cc_bool_delegate)
|
||||||
elif cc['datatype'] == 'rating':
|
elif cc['datatype'] == 'rating':
|
||||||
self.setItemDelegateForColumn(cm.index(colhead), self.rating_delegate)
|
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,
|
def set_context_menu(self, edit_metadata, send_to_device, convert, view,
|
||||||
save, open_folder, book_details, delete, similar_menu=None):
|
save, open_folder, book_details, delete, similar_menu=None):
|
||||||
@ -1186,7 +1188,6 @@ class BooksView(TableView):
|
|||||||
def row_count(self):
|
def row_count(self):
|
||||||
return self._model.count()
|
return self._model.count()
|
||||||
|
|
||||||
|
|
||||||
class DeviceBooksView(BooksView):
|
class DeviceBooksView(BooksView):
|
||||||
|
|
||||||
def __init__(self, parent):
|
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
|
### Force the library view to refresh, taking into consideration books information
|
||||||
def refresh_ondevice_info(self, device_connected):
|
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.book_on_device(None, reset=True)
|
||||||
self.library_view.model().set_device_connected(device_connected)
|
self.library_view.model().set_device_connected(device_connected)
|
||||||
############################################################################
|
############################################################################
|
||||||
@ -2218,6 +2220,9 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
return
|
return
|
||||||
d = ConfigDialog(self, self.library_view.model(),
|
d = ConfigDialog(self, self.library_view.model(),
|
||||||
server=self.content_server)
|
server=self.content_server)
|
||||||
|
# Save current column widths in case columns are turned on or off
|
||||||
|
self.library_view.write_settings()
|
||||||
|
|
||||||
d.exec_()
|
d.exec_()
|
||||||
self.content_server = d.server
|
self.content_server = d.server
|
||||||
if d.result() == d.Accepted:
|
if d.result() == d.Accepted:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user