mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Show disabled device plugins in Preferences->Ignored Devices
This commit is contained in:
parent
f368250f1d
commit
e1d40f3603
@ -9,6 +9,7 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
from PyQt4.Qt import (QLabel, QVBoxLayout, QListWidget, QListWidgetItem, Qt)
|
||||
|
||||
from calibre.customize.ui import enable_plugin
|
||||
from calibre.gui2.preferences import ConfigWidgetBase, test_widget
|
||||
|
||||
class ConfigWidget(ConfigWidgetBase):
|
||||
@ -31,6 +32,18 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
f.itemChanged.connect(self.changed_signal)
|
||||
f.itemDoubleClicked.connect(self.toggle_item)
|
||||
|
||||
self.la2 = la = QLabel(_(
|
||||
'The list of device plugins you have disabled. Uncheck an entry '
|
||||
'to enable the plugin. calibre cannot detect devices that are '
|
||||
'managed by disabled plugins.'))
|
||||
la.setWordWrap(True)
|
||||
l.addWidget(la)
|
||||
|
||||
self.device_plugins = f = QListWidget(f)
|
||||
l.addWidget(f)
|
||||
f.itemChanged.connect(self.changed_signal)
|
||||
f.itemDoubleClicked.connect(self.toggle_item)
|
||||
|
||||
def toggle_item(self, item):
|
||||
item.setCheckState(Qt.Checked if item.checkState() == Qt.Unchecked else
|
||||
Qt.Unchecked)
|
||||
@ -46,6 +59,16 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
item.setCheckState(Qt.Checked)
|
||||
self.devices.blockSignals(False)
|
||||
|
||||
self.device_plugins.blockSignals(True)
|
||||
for dev in self.gui.device_manager.disabled_device_plugins:
|
||||
n = dev.get_gui_name()
|
||||
item = QListWidgetItem(n, self.device_plugins)
|
||||
item.setData(Qt.UserRole, dev)
|
||||
item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsUserCheckable|Qt.ItemIsSelectable)
|
||||
item.setCheckState(Qt.Checked)
|
||||
self.device_plugins.sortItems()
|
||||
self.device_plugins.blockSignals(False)
|
||||
|
||||
def restore_defaults(self):
|
||||
if self.devices.count() > 0:
|
||||
self.devices.clear()
|
||||
@ -63,6 +86,12 @@ class ConfigWidget(ConfigWidgetBase):
|
||||
for dev, bl in devs.iteritems():
|
||||
dev.set_user_blacklisted_devices(bl)
|
||||
|
||||
for i in xrange(self.device_plugins.count()):
|
||||
e = self.device_plugins.item(i)
|
||||
dev = e.data(Qt.UserRole).toPyObject()
|
||||
if e.checkState() == Qt.Unchecked:
|
||||
enable_plugin(dev)
|
||||
|
||||
return True # Restart required
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Loading…
x
Reference in New Issue
Block a user