mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Fix #2205 (Ebook viewer doesn't start if no book selected)
This commit is contained in:
parent
062f0bc724
commit
c9c4c15f3f
@ -1067,27 +1067,30 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
return
|
return
|
||||||
self._view_file(job.result)
|
self._view_file(job.result)
|
||||||
|
|
||||||
def _view_file(self, name):
|
def _launch_viewer(self, name=None, viewer='ebook-viewer', internal=True):
|
||||||
self.setCursor(Qt.BusyCursor)
|
self.setCursor(Qt.BusyCursor)
|
||||||
try:
|
try:
|
||||||
ext = os.path.splitext(name)[1].upper().replace('.', '')
|
if internal:
|
||||||
if ext in config['internally_viewed_formats']:
|
args = [viewer]
|
||||||
if ext == 'LRF':
|
if isosx and 'ebook' in viewer:
|
||||||
args = ['lrfviewer', name]
|
|
||||||
self.job_manager.server.run_free_job('lrfviewer',
|
|
||||||
kwdargs=dict(args=args))
|
|
||||||
else:
|
|
||||||
args = ['ebook-viewer', name]
|
|
||||||
if isosx:
|
|
||||||
args.append('--raise-window')
|
args.append('--raise-window')
|
||||||
self.job_manager.server.run_free_job('ebook-viewer',
|
if name is not None:
|
||||||
|
args.append(name)
|
||||||
|
self.job_manager.server.run_free_job(viewer,
|
||||||
kwdargs=dict(args=args))
|
kwdargs=dict(args=args))
|
||||||
else:
|
else:
|
||||||
QDesktopServices.openUrl(QUrl('file:'+name))#launch(name)
|
QDesktopServices.openUrl(QUrl.fromLocalFile(name))#launch(name)
|
||||||
|
|
||||||
time.sleep(5) # User feedback
|
time.sleep(5) # User feedback
|
||||||
finally:
|
finally:
|
||||||
self.unsetCursor()
|
self.unsetCursor()
|
||||||
|
|
||||||
|
def _view_file(self, name):
|
||||||
|
ext = os.path.splitext(name)[1].upper().replace('.', '')
|
||||||
|
viewer = 'lrfviewer' if ext == 'LRF' else 'ebook-viewer'
|
||||||
|
internal = ext in config['internally_viewed_formats']
|
||||||
|
self._launch_viewer(name, viewer, internal)
|
||||||
|
|
||||||
def view_specific_format(self, triggered):
|
def view_specific_format(self, triggered):
|
||||||
rows = self.library_view.selectionModel().selectedRows()
|
rows = self.library_view.selectionModel().selectedRows()
|
||||||
if not rows or len(rows) == 0:
|
if not rows or len(rows) == 0:
|
||||||
@ -1122,8 +1125,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
rows = self.current_view().selectionModel().selectedRows()
|
rows = self.current_view().selectionModel().selectedRows()
|
||||||
if self.current_view() is self.library_view:
|
if self.current_view() is self.library_view:
|
||||||
if not rows or len(rows) == 0:
|
if not rows or len(rows) == 0:
|
||||||
d = error_dialog(self, _('Cannot view'), _('No book selected'))
|
self._launch_viewer()
|
||||||
d.exec_()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
row = rows[0].row()
|
row = rows[0].row()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user