From 2cdc6c03b32e6b66e42e4c36207f1739ed5684de Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 16 Sep 2012 20:39:16 +0530 Subject: [PATCH] Disable the start wireless device connection menu item when a wired device is connected --- src/calibre/gui2/actions/device.py | 9 ++++++--- src/calibre/gui2/device.py | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/actions/device.py b/src/calibre/gui2/actions/device.py index 28b389c625..60fdf531e5 100644 --- a/src/calibre/gui2/actions/device.py +++ b/src/calibre/gui2/actions/device.py @@ -139,10 +139,13 @@ class ShareConnMenu(QMenu): # {{{ def setup_email(self, *args): self.config_email.emit() - def set_state(self, device_connected): + def set_state(self, device_connected, device): self.connect_to_folder_action.setEnabled(not device_connected) self.connect_to_itunes_action.setEnabled(not device_connected) self.connect_to_bambook_action.setEnabled(not device_connected) + enabled = not device_connected or (device_connected and + device.__class__.__name__ == 'SMART_DEVICE_APP') + self.control_smartdevice_action.setEnabled(enabled) # }}} @@ -187,8 +190,8 @@ class ConnectShareAction(InterfaceAction): enabled = loc == 'library' self.qaction.setEnabled(enabled) - def set_state(self, device_connected): - self.share_conn_menu.set_state(device_connected) + def set_state(self, device_connected, device): + self.share_conn_menu.set_state(device_connected, device) def build_email_entries(self): m = self.gui.iactions['Send To Device'].qaction.menu() diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 553532e95d..9299c285d9 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -929,7 +929,8 @@ class DeviceMixin(object): # {{{ self._sync_menu.fetch_annotations.connect( self.iactions['Fetch Annotations'].fetch_annotations) self._sync_menu.disconnect_mounted_device.connect(self.disconnect_mounted_device) - self.iactions['Connect Share'].set_state(self.device_connected) + self.iactions['Connect Share'].set_state(self.device_connected, + None) if self.device_connected: self._sync_menu.disconnect_mounted_device_action.setEnabled(True) else: @@ -968,7 +969,8 @@ class DeviceMixin(object): # {{{ # Device connected {{{ def set_device_menu_items_state(self, connected): - self.iactions['Connect Share'].set_state(connected) + self.iactions['Connect Share'].set_state(connected, + self.device_manager.device) if connected: self._sync_menu.disconnect_mounted_device_action.setEnabled(True) self._sync_menu.enable_device_actions(True,