mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Sync to trunk
This commit is contained in:
commit
1698ebaa5b
@ -232,7 +232,7 @@ _check_symlinks_prescript()
|
|||||||
all_functions = main_functions['console'] + main_functions['gui']
|
all_functions = main_functions['console'] + main_functions['gui']
|
||||||
print
|
print
|
||||||
print 'Adding PoDoFo'
|
print 'Adding PoDoFo'
|
||||||
pdf = glob.glob(os.path.expanduser('/Volumes/sw/podofo/libpodofo.0.7.00.dylib'))[0]
|
pdf = glob.glob(os.path.expanduser('/Volumes/sw/podofo/libpodofo*.dylib'))[0]
|
||||||
shutil.copyfile(pdf, os.path.join(frameworks_dir, os.path.basename(pdf)))
|
shutil.copyfile(pdf, os.path.join(frameworks_dir, os.path.basename(pdf)))
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ class BEBOOK(USBMS):
|
|||||||
|
|
||||||
VENDOR_NAME = 'LINUX'
|
VENDOR_NAME = 'LINUX'
|
||||||
WINDOWS_MAIN_MEM = 'FILE-STOR_GADGET'
|
WINDOWS_MAIN_MEM = 'FILE-STOR_GADGET'
|
||||||
WINDOWS_CARD_MEM = 'FILE-STOR_GADGET'
|
WINDOWS_CARD_A_MEM = 'FILE-STOR_GADGET'
|
||||||
|
|
||||||
OSX_MAIN_MEM = 'BeBook Internal Memory'
|
OSX_MAIN_MEM = 'BeBook Internal Memory'
|
||||||
OSX_CARD_A_MEM = 'BeBook Storage Card'
|
OSX_CARD_A_MEM = 'BeBook Storage Card'
|
||||||
|
@ -216,13 +216,12 @@ class Device(DeviceConfig, DevicePlugin):
|
|||||||
wmi = __import__('wmi', globals(), locals(), [], -1)
|
wmi = __import__('wmi', globals(), locals(), [], -1)
|
||||||
c = wmi.WMI(find_classes=False)
|
c = wmi.WMI(find_classes=False)
|
||||||
for drive in c.Win32_DiskDrive():
|
for drive in c.Win32_DiskDrive():
|
||||||
if self.windows_match_device(str(drive.PNPDeviceID), self.WINDOWS_MAIN_MEM):
|
if self.windows_match_device(str(drive.PNPDeviceID), self.WINDOWS_CARD_A_MEM):
|
||||||
drives['main'] = self.windows_get_drive_prefix(drive)
|
|
||||||
elif self.windows_match_device(str(drive.PNPDeviceID), self.WINDOWS_CARD_A_MEM):
|
|
||||||
drives['carda'] = self.windows_get_drive_prefix(drive)
|
drives['carda'] = self.windows_get_drive_prefix(drive)
|
||||||
elif self.windows_match_device(str(drive.PNPDeviceID), self.WINDOWS_CARD_B_MEM):
|
elif self.windows_match_device(str(drive.PNPDeviceID), self.WINDOWS_CARD_B_MEM):
|
||||||
drives['cardb'] = self.windows_get_drive_prefix(drive)
|
drives['cardb'] = self.windows_get_drive_prefix(drive)
|
||||||
|
elif self.windows_match_device(str(drive.PNPDeviceID), self.WINDOWS_MAIN_MEM):
|
||||||
|
drives['main'] = self.windows_get_drive_prefix(drive)
|
||||||
if 'main' in drives.keys() and 'carda' in drives.keys() and 'cardb' in drives.keys():
|
if 'main' in drives.keys() and 'carda' in drives.keys() and 'cardb' in drives.keys():
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -92,6 +92,6 @@ class Jacket(object):
|
|||||||
def __call__(self, oeb, opts, metadata):
|
def __call__(self, oeb, opts, metadata):
|
||||||
self.oeb, self.opts, self.log = oeb, opts, oeb.log
|
self.oeb, self.opts, self.log = oeb, opts, oeb.log
|
||||||
if opts.remove_first_image:
|
if opts.remove_first_image:
|
||||||
self.remove_fisrt_image()
|
self.remove_first_image()
|
||||||
if opts.insert_metadata:
|
if opts.insert_metadata:
|
||||||
self.insert_metadata(metadata)
|
self.insert_metadata(metadata)
|
||||||
|
@ -249,6 +249,8 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
|
|||||||
self.remove_unused_series)
|
self.remove_unused_series)
|
||||||
QObject.connect(self.auto_author_sort, SIGNAL('clicked()'),
|
QObject.connect(self.auto_author_sort, SIGNAL('clicked()'),
|
||||||
self.deduce_author_sort)
|
self.deduce_author_sort)
|
||||||
|
self.connect(self.formats, SIGNAL('itemDoubleClicked(QListWidgetItem*)'),
|
||||||
|
self.show_format)
|
||||||
self.connect(self.button_set_cover, SIGNAL('clicked()'), self.set_cover)
|
self.connect(self.button_set_cover, SIGNAL('clicked()'), self.set_cover)
|
||||||
self.connect(self.reset_cover, SIGNAL('clicked()'), self.do_reset_cover)
|
self.connect(self.reset_cover, SIGNAL('clicked()'), self.do_reset_cover)
|
||||||
self.connect(self.swap_button, SIGNAL('clicked()'), self.swap_title_author)
|
self.connect(self.swap_button, SIGNAL('clicked()'), self.swap_title_author)
|
||||||
@ -303,6 +305,10 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
|
|||||||
if not pm.isNull():
|
if not pm.isNull():
|
||||||
self.cover.setPixmap(pm)
|
self.cover.setPixmap(pm)
|
||||||
|
|
||||||
|
def show_format(self, item, *args):
|
||||||
|
fmt = item.ext
|
||||||
|
self.emit(SIGNAL('view_format(PyQt_PyObject)'), fmt)
|
||||||
|
|
||||||
def deduce_author_sort(self):
|
def deduce_author_sort(self):
|
||||||
au = unicode(self.authors.text())
|
au = unicode(self.authors.text())
|
||||||
authors = string_to_authors(au)
|
authors = string_to_authors(au)
|
||||||
|
@ -953,9 +953,12 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.library_view.model().refresh_ids([id])
|
self.library_view.model().refresh_ids([id])
|
||||||
|
|
||||||
for row in rows:
|
for row in rows:
|
||||||
|
self._metadata_view_id = self.library_view.model().db.id(row.row())
|
||||||
d = MetadataSingleDialog(self, row.row(),
|
d = MetadataSingleDialog(self, row.row(),
|
||||||
self.library_view.model().db,
|
self.library_view.model().db,
|
||||||
accepted_callback=accepted)
|
accepted_callback=accepted)
|
||||||
|
self.connect(d, SIGNAL('view_format(PyQt_PyObject)'),
|
||||||
|
self.metadata_view_format)
|
||||||
d.exec_()
|
d.exec_()
|
||||||
if rows:
|
if rows:
|
||||||
current = self.library_view.currentIndex()
|
current = self.library_view.currentIndex()
|
||||||
@ -1269,6 +1272,14 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
if fmt_path:
|
if fmt_path:
|
||||||
self._view_file(fmt_path)
|
self._view_file(fmt_path)
|
||||||
|
|
||||||
|
def metadata_view_format(self, fmt):
|
||||||
|
fmt_path = self.library_view.model().db.\
|
||||||
|
format_abspath(self._metadata_view_id,
|
||||||
|
fmt, index_is_id=True)
|
||||||
|
if fmt_path:
|
||||||
|
self._view_file(fmt_path)
|
||||||
|
|
||||||
|
|
||||||
def book_downloaded_for_viewing(self, job):
|
def book_downloaded_for_viewing(self, job):
|
||||||
if job.failed:
|
if job.failed:
|
||||||
self.device_job_exception(job)
|
self.device_job_exception(job)
|
||||||
|
@ -28,11 +28,6 @@
|
|||||||
<layout class="QGridLayout" name="gridLayout" >
|
<layout class="QGridLayout" name="gridLayout" >
|
||||||
<item row="0" column="0" >
|
<item row="0" column="0" >
|
||||||
<widget class="QWebView" name="view" >
|
<widget class="QWebView" name="view" >
|
||||||
<property name="url" >
|
|
||||||
<url>
|
|
||||||
<string>about:blank</string>
|
|
||||||
</url>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1" >
|
<item row="0" column="1" >
|
||||||
|
@ -171,10 +171,10 @@ class LocationModel(QAbstractListModel):
|
|||||||
self.count = 0
|
self.count = 0
|
||||||
self.highlight_row = 0
|
self.highlight_row = 0
|
||||||
self.tooltips = [
|
self.tooltips = [
|
||||||
_('Click to see the list of books available on your computer'),
|
_('Click to see the books available on your computer'),
|
||||||
_('Click to see the list of books in the main memory of your reader'),
|
_('Click to see the books in the main memory of your reader'),
|
||||||
_('Click to see the list of books on storage card A in your reader'),
|
_('Click to see the books on storage card A in your reader'),
|
||||||
_('Click to see the list of books on storage card B in your reader')
|
_('Click to see the books on storage card B in your reader')
|
||||||
]
|
]
|
||||||
|
|
||||||
def rowCount(self, *args):
|
def rowCount(self, *args):
|
||||||
@ -209,15 +209,15 @@ class LocationModel(QAbstractListModel):
|
|||||||
def headerData(self, section, orientation, role):
|
def headerData(self, section, orientation, role):
|
||||||
return NONE
|
return NONE
|
||||||
|
|
||||||
def update_devices(self, cp=None, fs=[-1, -1, -1]):
|
def update_devices(self, cp=(None, None), fs=[-1, -1, -1]):
|
||||||
self.free[0] = fs[0]
|
self.free[0] = fs[0]
|
||||||
self.free[1] = fs[1]
|
self.free[1] = fs[1]
|
||||||
self.free[2] = fs[2]
|
self.free[2] = fs[2]
|
||||||
if cp != None:
|
cpa, cpb = cp
|
||||||
self.free[1] = fs[1] if fs[1] else -1
|
self.free[1] = fs[1] if fs[1] is not None and cpa is not None else -1
|
||||||
self.free[2] = fs[2] if fs[2] else -1
|
self.free[2] = fs[2] if fs[2] is not None and cpb is not None else -1
|
||||||
else:
|
if self.free[1] < 0 and self.free[2] >= 0:
|
||||||
self.free[1] = -1
|
self.free[1] = self.free[2]
|
||||||
self.free[2] = -1
|
self.free[2] = -1
|
||||||
self.reset()
|
self.reset()
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user