From fd80b279cd436f9dd205b91239ef9577530d3ef2 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Wed, 5 Sep 2012 13:06:41 +0200 Subject: [PATCH] Display the forced IP address in the Connect/Share menu and the Wireless device dialog. --- src/calibre/devices/smart_device_app/driver.py | 2 ++ src/calibre/gui2/actions/device.py | 17 +++++++++++------ src/calibre/gui2/dialogs/smartdevice.py | 6 +++++- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/calibre/devices/smart_device_app/driver.py b/src/calibre/devices/smart_device_app/driver.py index a6f78facc0..b1cd1e635b 100644 --- a/src/calibre/devices/smart_device_app/driver.py +++ b/src/calibre/devices/smart_device_app/driver.py @@ -505,6 +505,8 @@ class SMART_DEVICE_APP(DeviceConfig, DevicePlugin): return self.OPT_USE_PORT elif opt_string == 'port_number': return self.OPT_PORT_NUMBER + elif opt_string == 'force_ip_address': + return self.OPT_FORCE_IP_ADDRESS else: return None diff --git a/src/calibre/gui2/actions/device.py b/src/calibre/gui2/actions/device.py index a8475c3a3e..6e215661c8 100644 --- a/src/calibre/gui2/actions/device.py +++ b/src/calibre/gui2/actions/device.py @@ -240,13 +240,18 @@ class ConnectShareAction(InterfaceAction): from calibre.gui2.dialogs.smartdevice import get_all_ip_addresses dm = self.gui.device_manager - all_ips = get_all_ip_addresses() - if len(all_ips) > 3: - formatted_addresses = _('Many IP addresses. See Start/Stop dialog.') - show_port = False - else: - formatted_addresses = ' or '.join(get_all_ip_addresses()) + forced_ip = dm.get_option('smartdevice', 'force_ip_address') + if forced_ip: + formatted_addresses = forced_ip show_port = True + else: + all_ips = get_all_ip_addresses() + if len(all_ips) > 3: + formatted_addresses = _('Many IP addresses. See Start/Stop dialog.') + show_port = False + else: + formatted_addresses = ' or '.join(get_all_ip_addresses()) + show_port = True running = dm.is_running('smartdevice') if not running: diff --git a/src/calibre/gui2/dialogs/smartdevice.py b/src/calibre/gui2/dialogs/smartdevice.py index ba58b71048..745125d409 100644 --- a/src/calibre/gui2/dialogs/smartdevice.py +++ b/src/calibre/gui2/dialogs/smartdevice.py @@ -115,7 +115,11 @@ class SmartdeviceDialog(QDialog, Ui_Dialog): self.auto_mgmt_button.setText(_('Automatic metadata management is enabled')) self.auto_mgmt_button.setEnabled(False) - self.ip_addresses.setText(', '.join(get_all_ip_addresses())) + forced_ip = self.device_manager.get_option('smartdevice', 'force_ip_address') + if forced_ip: + self.ip_addresses.setText(forced_ip) + else: + self.ip_addresses.setText(', '.join(get_all_ip_addresses())) self.resize(self.sizeHint())