From d7b3778a6915e56d680413c2ea2fd70b251f84ea Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 31 Oct 2009 13:09:48 -0600 Subject: [PATCH] Save column widths in device views on device disconnect. --- src/calibre/gui2/__init__.py | 1 + src/calibre/gui2/main.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 2e965fb295..fa03c3a775 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -274,6 +274,7 @@ class GetMetadata(QObject): self.emit(SIGNAL('metadata(PyQt_PyObject, PyQt_PyObject)'), id, mi) class TableView(QTableView): + def __init__(self, parent): QTableView.__init__(self, parent) self.read_settings() diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 66b880f0b2..43ccfe2073 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -742,6 +742,16 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): ########################## Connect to device ############################## + def save_device_view_settings(self): + model = self.location_view.model() + self.memory_view.write_settings() + for x in range(model.rowCount()): + if x > 1: + if model.location_for_row(x) == 'carda': + self.card_a_view.write_settings() + elif model.location_for_row(x) == 'cardb': + self.carb_b_view.write_settings() + def device_detected(self, connected): ''' Called when a device is connected to the computer. @@ -757,6 +767,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.device_connected = True self._sync_menu.enable_device_actions(True, self.device_manager.device.card_prefix()) else: + self.save_device_view_settings() self.device_connected = False self._sync_menu.enable_device_actions(False) self.location_view.model().update_devices() @@ -765,7 +776,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.device_info = ' ' if self.current_view() != self.library_view: self.status_bar.reset_info() - self.location_selected('library') + self.location_view.setCurrentIndex(self.location_view.model().index(0)) def info_read(self, job): ''' @@ -807,6 +818,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.card_b_view.set_editable(self.device_manager.device_class.CAN_SET_METADATA) for view in (self.memory_view, self.card_a_view, self.card_b_view): view.sortByColumn(3, Qt.DescendingOrder) + view.read_settings() if not view.restore_column_widths(): view.resizeColumnsToContents() view.resizeRowsToContents() @@ -1662,7 +1674,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): dynamic.set('sort_column', self.library_view.model().sorted_on) self.library_view.write_settings() if self.device_connected: - self.memory_view.write_settings() + self.save_device_view_settings() def restart(self): self.quit(restart=True)