mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
macOS: Fix regression in previous release that caused calibre:// URLs to no longer work
Fixes #2103949 [Calibre URL Scheme broken in Calibre 8](https://bugs.launchpad.net/calibre/+bug/2103949) Qt regression: https://bugreports.qt.io/browse/QTBUG-134316
This commit is contained in:
parent
fc64b8d322
commit
d4363da44f
@ -1213,6 +1213,8 @@ class Application(QApplication):
|
|||||||
QApplication.setDesktopFileName(override_program_name)
|
QApplication.setDesktopFileName(override_program_name)
|
||||||
QApplication.setAttribute(Qt.ApplicationAttribute.AA_ShareOpenGLContexts, True) # needed for webengine
|
QApplication.setAttribute(Qt.ApplicationAttribute.AA_ShareOpenGLContexts, True) # needed for webengine
|
||||||
QApplication.__init__(self, args)
|
QApplication.__init__(self, args)
|
||||||
|
# See https://bugreports.qt.io/browse/QTBUG-134316
|
||||||
|
QDesktopServices.setUrlHandler('calibre', self.handle_calibre_url)
|
||||||
set_image_allocation_limit()
|
set_image_allocation_limit()
|
||||||
self.palette_manager.initialize()
|
self.palette_manager.initialize()
|
||||||
icon_resource_manager.initialize()
|
icon_resource_manager.initialize()
|
||||||
@ -1413,10 +1415,8 @@ class Application(QApplication):
|
|||||||
added_event = True
|
added_event = True
|
||||||
elif qurl.isValid():
|
elif qurl.isValid():
|
||||||
if qurl.scheme() == 'calibre':
|
if qurl.scheme() == 'calibre':
|
||||||
url = qurl.toString(QUrl.ComponentFormattingOption.FullyEncoded)
|
added_event = True
|
||||||
with self._file_open_lock:
|
self.handle_calibre_url(qurl)
|
||||||
self._file_open_paths.append(url)
|
|
||||||
added_event = True
|
|
||||||
if added_event:
|
if added_event:
|
||||||
QTimer.singleShot(1000, self._send_file_open_events)
|
QTimer.singleShot(1000, self._send_file_open_events)
|
||||||
return True
|
return True
|
||||||
@ -1425,6 +1425,13 @@ class Application(QApplication):
|
|||||||
self.palette_manager.on_qt_palette_change()
|
self.palette_manager.on_qt_palette_change()
|
||||||
return QApplication.event(self, e)
|
return QApplication.event(self, e)
|
||||||
|
|
||||||
|
@pyqtSlot(QUrl)
|
||||||
|
def handle_calibre_url(self, qurl):
|
||||||
|
url = qurl.toString(QUrl.ComponentFormattingOption.FullyEncoded)
|
||||||
|
with self._file_open_lock:
|
||||||
|
self._file_open_paths.append(url)
|
||||||
|
QTimer.singleShot(100, self._send_file_open_events)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_custom_colors(self):
|
def current_custom_colors(self):
|
||||||
from qt.core import QColorDialog
|
from qt.core import QColorDialog
|
||||||
|
Loading…
x
Reference in New Issue
Block a user