mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Skeleton code for Open feedback in Apple driver
This commit is contained in:
parent
517a8d82cd
commit
28a5223eed
@ -24,6 +24,29 @@ from calibre.utils.logging import Log
|
||||
from calibre.utils.zipfile import ZipFile
|
||||
|
||||
|
||||
|
||||
class AppleOpenFeedback(OpenFeedback):
|
||||
|
||||
def __init__(self):
|
||||
OpenFeedback.__init__(self, u'')
|
||||
|
||||
def custom_dialog(self, parent):
|
||||
from PyQt4.Qt import (QDialog, QVBoxLayout, QLabel, QDialogButtonBox)
|
||||
|
||||
class Dialog(QDialog):
|
||||
|
||||
def __init__(self, p):
|
||||
QDialog.__init__(self, p)
|
||||
self.l = l = QVBoxLayout()
|
||||
self.setLayout(l)
|
||||
l.addWidget(QLabel('test'))
|
||||
self.bb = QDialogButtonBox(QDialogButtonBox.OK)
|
||||
l.addWidget(self.bb)
|
||||
self.bb.accepted.connect(self.accept)
|
||||
self.bb.rejected.connect(self.reject)
|
||||
|
||||
return Dialog(parent)
|
||||
|
||||
from PIL import Image as PILImage
|
||||
from lxml import etree
|
||||
|
||||
@ -744,13 +767,7 @@ class ITUNES(DriverBase):
|
||||
|
||||
# Display a dialog recommending using 'Connect to iTunes'
|
||||
if False and not self.settings().extra_customization[self.SKIP_CONNECT_TO_ITUNES_DIALOG]:
|
||||
raise OpenFeedback('<p>' + ('Click the "Connect/Share" button and choose'
|
||||
' "Connect to iTunes" to send books from your calibre library'
|
||||
' to your Apple iDevice.<p>For more information, see '
|
||||
'<a href="http://www.mobileread.com/forums/showthread.php?t=118559">'
|
||||
'Calibre + Apple iDevices FAQ</a>.<p>'
|
||||
'After following the Quick Start steps outlined in the FAQ, '
|
||||
'restart calibre.'))
|
||||
raise AppleOpenFeedback()
|
||||
|
||||
if DEBUG:
|
||||
self.log.info(" advanced user mode, directly connecting to iDevice")
|
||||
|
@ -41,6 +41,13 @@ class OpenFeedback(DeviceError):
|
||||
self.feedback_msg = msg
|
||||
DeviceError.__init__(self, msg)
|
||||
|
||||
def custom_dialog(self, parent):
|
||||
'''
|
||||
If you need to show the user a custom dialog, instead if just
|
||||
displaying the feedback_msg, create and return it here.
|
||||
'''
|
||||
raise NotImplementedError
|
||||
|
||||
class DeviceBusy(ProtocolError):
|
||||
""" Raised when device is busy """
|
||||
def __init__(self, uerr=""):
|
||||
|
@ -164,7 +164,7 @@ class DeviceManager(Thread): # {{{
|
||||
dev.open(self.current_library_uuid)
|
||||
except OpenFeedback as e:
|
||||
if dev not in self.ejected_devices:
|
||||
self.open_feedback_msg(dev.get_gui_name(), e.feedback_msg)
|
||||
self.open_feedback_msg(dev.get_gui_name(), e)
|
||||
self.ejected_devices.add(dev)
|
||||
continue
|
||||
except:
|
||||
@ -618,8 +618,11 @@ class DeviceMixin(object): # {{{
|
||||
if tweaks['auto_connect_to_folder']:
|
||||
self.connect_to_folder_named(tweaks['auto_connect_to_folder'])
|
||||
|
||||
def show_open_feedback(self, devname, msg):
|
||||
self.__of_dev_mem__ = d = info_dialog(self, devname, msg)
|
||||
def show_open_feedback(self, devname, e):
|
||||
try:
|
||||
self.__of_dev_mem__ = d = e.custom_dialog(self)
|
||||
except NotImplementedError:
|
||||
self.__of_dev_mem__ = d = info_dialog(self, devname, e.feedback_msg)
|
||||
d.show()
|
||||
|
||||
def auto_convert_question(self, msg, autos):
|
||||
|
Loading…
x
Reference in New Issue
Block a user