mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Make ondevice column appear and disappear when device is connected or disconnected
This commit is contained in:
parent
bb66cc1d8e
commit
5f2fe8fc54
@ -339,6 +339,7 @@ class BooksModel(QAbstractTableModel):
|
||||
self.bool_yes_icon = QIcon(I('ok.svg'))
|
||||
self.bool_no_icon = QIcon(I('list_remove.svg'))
|
||||
self.bool_blank_icon = QIcon(I('blank.svg'))
|
||||
self.device_connected = False
|
||||
|
||||
def is_custom_column(self, cc_label):
|
||||
return cc_label in self.custom_columns
|
||||
@ -353,7 +354,10 @@ class BooksModel(QAbstractTableModel):
|
||||
self.headers = {}
|
||||
self.column_map = []
|
||||
for col in cmap: # take out any columns no longer in the db
|
||||
if col in self.orig_headers or col in self.custom_columns:
|
||||
if col == 'ondevice':
|
||||
if self.device_connected:
|
||||
self.column_map.append(col)
|
||||
elif col in self.orig_headers or col in self.custom_columns:
|
||||
self.column_map.append(col)
|
||||
for col in self.column_map:
|
||||
if col in self.orig_headers:
|
||||
@ -364,6 +368,12 @@ class BooksModel(QAbstractTableModel):
|
||||
self.reset()
|
||||
self.emit(SIGNAL('columns_sorted()'))
|
||||
|
||||
def set_device_connected(self, is_connected):
|
||||
self.device_connected = is_connected
|
||||
self.read_config()
|
||||
self.refresh(reset=True)
|
||||
self.database_changed.emit(self.db)
|
||||
|
||||
def set_book_on_device_func(self, func):
|
||||
self.book_on_device = func
|
||||
|
||||
|
@ -947,6 +947,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
self.device_manager.device)
|
||||
self.location_view.model().device_connected(self.device_manager.device)
|
||||
self.eject_action.setEnabled(True)
|
||||
self.refresh_ondevice_info (device_connected = True)
|
||||
else:
|
||||
self.save_device_view_settings()
|
||||
self.device_connected = False
|
||||
@ -959,7 +960,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
self.status_bar.reset_info()
|
||||
self.location_view.setCurrentIndex(self.location_view.model().index(0))
|
||||
self.eject_action.setEnabled(False)
|
||||
self.refresh_ondevice_info (clear_info = True)
|
||||
self.refresh_ondevice_info (device_connected = False)
|
||||
|
||||
def info_read(self, job):
|
||||
'''
|
||||
@ -1015,13 +1016,13 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
view.verticalHeader().setDefaultSectionSize(height)
|
||||
self.sync_news()
|
||||
self.sync_catalogs()
|
||||
self.refresh_ondevice_info()
|
||||
self.refresh_ondevice_info(device_connected = True)
|
||||
|
||||
############################################################################
|
||||
### Force the library view to refresh, taking into consideration books information
|
||||
def refresh_ondevice_info(self, clear_flags = False):
|
||||
def refresh_ondevice_info(self, device_connected):
|
||||
self.book_on_device(None, reset=True)
|
||||
self.library_view.model().refresh()
|
||||
self.library_view.model().set_device_connected(device_connected)
|
||||
############################################################################
|
||||
|
||||
######################### Fetch annotations ################################
|
||||
|
Loading…
x
Reference in New Issue
Block a user