mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix for incompatibility with PyQt 5.6
For some odd reason PyQt 5.6 renames QUrl.None to QUrl.None_ None is not a keyword in python 2, so I assume this has to do with python 3 compatibility
This commit is contained in:
parent
94806c60db
commit
57450e54e6
@ -24,6 +24,11 @@ from calibre.utils.localization import get_lang
|
|||||||
from calibre.utils.filenames import expanduser
|
from calibre.utils.filenames import expanduser
|
||||||
from calibre.utils.file_type_icons import EXT_MAP
|
from calibre.utils.file_type_icons import EXT_MAP
|
||||||
|
|
||||||
|
try:
|
||||||
|
NO_URL_FORMATTING = QUrl.None_
|
||||||
|
except AttributeError:
|
||||||
|
NO_URL_FORMATTING = QUrl.None
|
||||||
|
|
||||||
# Setup gprefs {{{
|
# Setup gprefs {{{
|
||||||
gprefs = JSONConfig('gui')
|
gprefs = JSONConfig('gui')
|
||||||
defs = gprefs.defaults
|
defs = gprefs.defaults
|
||||||
|
@ -21,7 +21,7 @@ from calibre.gui2.dnd import (dnd_has_image, dnd_get_image, dnd_get_files,
|
|||||||
from calibre.ebooks import BOOK_EXTENSIONS
|
from calibre.ebooks import BOOK_EXTENSIONS
|
||||||
from calibre.ebooks.metadata.book.base import (field_metadata, Metadata)
|
from calibre.ebooks.metadata.book.base import (field_metadata, Metadata)
|
||||||
from calibre.ebooks.metadata.book.render import mi_to_html
|
from calibre.ebooks.metadata.book.render import mi_to_html
|
||||||
from calibre.gui2 import (config, open_url, pixmap_to_data, gprefs, rating_font)
|
from calibre.gui2 import (config, open_url, pixmap_to_data, gprefs, rating_font, NO_URL_FORMATTING)
|
||||||
from calibre.utils.config import tweaks
|
from calibre.utils.config import tweaks
|
||||||
from calibre.utils.localization import is_rtl
|
from calibre.utils.localization import is_rtl
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ def details_context_menu_event(view, ev, book_info): # {{{
|
|||||||
p = view.page()
|
p = view.page()
|
||||||
mf = p.mainFrame()
|
mf = p.mainFrame()
|
||||||
r = mf.hitTestContent(ev.pos())
|
r = mf.hitTestContent(ev.pos())
|
||||||
url = unicode(r.linkUrl().toString(QUrl.None)).strip()
|
url = unicode(r.linkUrl().toString(NO_URL_FORMATTING)).strip()
|
||||||
menu = p.createStandardContextMenu()
|
menu = p.createStandardContextMenu()
|
||||||
ca = view.pageAction(p.Copy)
|
ca = view.pageAction(p.Copy)
|
||||||
for action in list(menu.actions()):
|
for action in list(menu.actions()):
|
||||||
@ -478,7 +478,7 @@ class BookInfo(QWebView):
|
|||||||
self._link_clicked = True
|
self._link_clicked = True
|
||||||
if unicode(link.scheme()) in ('http', 'https'):
|
if unicode(link.scheme()) in ('http', 'https'):
|
||||||
return open_url(link)
|
return open_url(link)
|
||||||
link = unicode(link.toString(QUrl.None))
|
link = unicode(link.toString(NO_URL_FORMATTING))
|
||||||
self.link_clicked.emit(link)
|
self.link_clicked.emit(link)
|
||||||
|
|
||||||
def turnoff_scrollbar(self, *args):
|
def turnoff_scrollbar(self, *args):
|
||||||
|
@ -19,7 +19,7 @@ from PyQt5.QtWebKitWidgets import QWebView, QWebPage
|
|||||||
|
|
||||||
from calibre.ebooks.chardet import xml_to_unicode
|
from calibre.ebooks.chardet import xml_to_unicode
|
||||||
from calibre import xml_replace_entities, prepare_string_for_xml
|
from calibre import xml_replace_entities, prepare_string_for_xml
|
||||||
from calibre.gui2 import open_url, error_dialog, choose_files, gprefs
|
from calibre.gui2 import open_url, error_dialog, choose_files, gprefs, NO_URL_FORMATTING
|
||||||
from calibre.utils.soupparser import fromstring
|
from calibre.utils.soupparser import fromstring
|
||||||
from calibre.utils.config import tweaks
|
from calibre.utils.config import tweaks
|
||||||
from calibre.utils.imghdr import what
|
from calibre.utils.imghdr import what
|
||||||
@ -211,7 +211,7 @@ class EditorWidget(QWebView): # {{{
|
|||||||
return
|
return
|
||||||
url = self.parse_link(link)
|
url = self.parse_link(link)
|
||||||
if url.isValid():
|
if url.isValid():
|
||||||
url = unicode(url.toString(QUrl.None))
|
url = unicode(url.toString(NO_URL_FORMATTING))
|
||||||
self.setFocus(Qt.OtherFocusReason)
|
self.setFocus(Qt.OtherFocusReason)
|
||||||
if is_image:
|
if is_image:
|
||||||
self.exec_command('insertHTML',
|
self.exec_command('insertHTML',
|
||||||
|
@ -9,10 +9,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QCoreApplication, QModelIndex, QTimer, Qt, pyqtSignal, QWidget,
|
QCoreApplication, QModelIndex, QTimer, Qt, pyqtSignal, QWidget,
|
||||||
QGridLayout, QDialog, QPixmap, QSize, QPalette, QShortcut, QKeySequence,
|
QGridLayout, QDialog, QPixmap, QSize, QPalette, QShortcut, QKeySequence,
|
||||||
QSplitter, QVBoxLayout, QCheckBox, QPushButton, QIcon, QBrush, QUrl)
|
QSplitter, QVBoxLayout, QCheckBox, QPushButton, QIcon, QBrush)
|
||||||
from PyQt5.QtWebKitWidgets import QWebView
|
from PyQt5.QtWebKitWidgets import QWebView
|
||||||
|
|
||||||
from calibre.gui2 import gprefs
|
from calibre.gui2 import gprefs, NO_URL_FORMATTING
|
||||||
from calibre import fit_image
|
from calibre import fit_image
|
||||||
from calibre.gui2.book_details import render_html, details_context_menu_event
|
from calibre.gui2.book_details import render_html, details_context_menu_event
|
||||||
from calibre.gui2.widgets import CoverView
|
from calibre.gui2.widgets import CoverView
|
||||||
@ -114,7 +114,7 @@ class BookInfo(QDialog):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def link_clicked(self, qurl):
|
def link_clicked(self, qurl):
|
||||||
link = unicode(qurl.toString(QUrl.None))
|
link = unicode(qurl.toString(NO_URL_FORMATTING))
|
||||||
self.link_delegate(link)
|
self.link_delegate(link)
|
||||||
|
|
||||||
def done(self, r):
|
def done(self, r):
|
||||||
|
@ -20,7 +20,7 @@ from PyQt5.Qt import (
|
|||||||
QStyledItemDelegate, QTextDocument, QRectF, QIcon, Qt, QApplication,
|
QStyledItemDelegate, QTextDocument, QRectF, QIcon, Qt, QApplication,
|
||||||
QDialog, QVBoxLayout, QLabel, QDialogButtonBox, QStyle, QStackedWidget,
|
QDialog, QVBoxLayout, QLabel, QDialogButtonBox, QStyle, QStackedWidget,
|
||||||
QWidget, QTableView, QGridLayout, QFontInfo, QPalette, QTimer, pyqtSignal,
|
QWidget, QTableView, QGridLayout, QFontInfo, QPalette, QTimer, pyqtSignal,
|
||||||
QAbstractTableModel, QSize, QListView, QPixmap, QModelIndex, QUrl,
|
QAbstractTableModel, QSize, QListView, QPixmap, QModelIndex,
|
||||||
QAbstractListModel, QRect, QTextBrowser, QStringListModel, QMenu,
|
QAbstractListModel, QRect, QTextBrowser, QStringListModel, QMenu,
|
||||||
QCursor, QHBoxLayout, QPushButton, QSizePolicy)
|
QCursor, QHBoxLayout, QPushButton, QSizePolicy)
|
||||||
from PyQt5.QtWebKitWidgets import QWebView
|
from PyQt5.QtWebKitWidgets import QWebView
|
||||||
@ -31,7 +31,7 @@ from calibre.utils.logging import GUILog as Log
|
|||||||
from calibre.ebooks.metadata.sources.identify import urls_from_identifiers
|
from calibre.ebooks.metadata.sources.identify import urls_from_identifiers
|
||||||
from calibre.ebooks.metadata.book.base import Metadata
|
from calibre.ebooks.metadata.book.base import Metadata
|
||||||
from calibre.ebooks.metadata.opf2 import OPF
|
from calibre.ebooks.metadata.opf2 import OPF
|
||||||
from calibre.gui2 import error_dialog, rating_font, gprefs
|
from calibre.gui2 import error_dialog, rating_font, gprefs, NO_URL_FORMATTING
|
||||||
from calibre.gui2.progress_indicator import draw_snake_spinner
|
from calibre.gui2.progress_indicator import draw_snake_spinner
|
||||||
from calibre.utils.date import (utcnow, fromordinal, format_date,
|
from calibre.utils.date import (utcnow, fromordinal, format_date,
|
||||||
UNDEFINED_DATE, as_utc)
|
UNDEFINED_DATE, as_utc)
|
||||||
@ -324,7 +324,7 @@ class Comments(QWebView): # {{{
|
|||||||
|
|
||||||
def link_clicked(self, url):
|
def link_clicked(self, url):
|
||||||
from calibre.gui2 import open_url
|
from calibre.gui2 import open_url
|
||||||
if unicode(url.toString(QUrl.None)).startswith('http://'):
|
if unicode(url.toString(NO_URL_FORMATTING)).startswith('http://'):
|
||||||
open_url(url)
|
open_url(url)
|
||||||
|
|
||||||
def turnoff_scrollbar(self, *args):
|
def turnoff_scrollbar(self, *args):
|
||||||
|
@ -9,12 +9,12 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import os
|
import os
|
||||||
from urlparse import urlparse
|
from urlparse import urlparse
|
||||||
|
|
||||||
from PyQt5.Qt import QNetworkCookieJar, QNetworkProxy, QUrl
|
from PyQt5.Qt import QNetworkCookieJar, QNetworkProxy
|
||||||
from PyQt5.QtWebKitWidgets import QWebView, QWebPage
|
from PyQt5.QtWebKitWidgets import QWebView, QWebPage
|
||||||
|
|
||||||
from calibre import USER_AGENT, get_proxies
|
from calibre import USER_AGENT, get_proxies
|
||||||
from calibre.ebooks import BOOK_EXTENSIONS
|
from calibre.ebooks import BOOK_EXTENSIONS
|
||||||
from calibre.gui2 import choose_save_file
|
from calibre.gui2 import choose_save_file, NO_URL_FORMATTING
|
||||||
from calibre.gui2.ebook_download import show_download_info
|
from calibre.gui2.ebook_download import show_download_info
|
||||||
from calibre.ptempfile import PersistentTemporaryFile
|
from calibre.ptempfile import PersistentTemporaryFile
|
||||||
from calibre.utils.filenames import ascii_filename
|
from calibre.utils.filenames import ascii_filename
|
||||||
@ -69,7 +69,7 @@ class NPWebView(QWebView):
|
|||||||
if not self.gui:
|
if not self.gui:
|
||||||
return
|
return
|
||||||
|
|
||||||
url = unicode(request.url().toString(QUrl.None))
|
url = unicode(request.url().toString(NO_URL_FORMATTING))
|
||||||
cf = self.get_cookies()
|
cf = self.get_cookies()
|
||||||
|
|
||||||
filename = get_download_filename(url, cf)
|
filename = get_download_filename(url, cf)
|
||||||
|
@ -9,11 +9,12 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QIcon, Qt, QSplitter, QListWidget, QTextBrowser, QPalette, QUrl, QMenu,
|
QIcon, Qt, QSplitter, QListWidget, QTextBrowser, QPalette, QMenu,
|
||||||
QListWidgetItem, pyqtSignal, QApplication, QStyledItemDelegate)
|
QListWidgetItem, pyqtSignal, QApplication, QStyledItemDelegate)
|
||||||
|
|
||||||
from calibre.ebooks.oeb.polish.check.base import WARN, INFO, DEBUG, ERROR, CRITICAL
|
from calibre.ebooks.oeb.polish.check.base import WARN, INFO, DEBUG, ERROR, CRITICAL
|
||||||
from calibre.ebooks.oeb.polish.check.main import run_checks, fix_errors
|
from calibre.ebooks.oeb.polish.check.main import run_checks, fix_errors
|
||||||
|
from calibre.gui2 import NO_URL_FORMATTING
|
||||||
from calibre.gui2.tweak_book import tprefs
|
from calibre.gui2.tweak_book import tprefs
|
||||||
from calibre.gui2.tweak_book.widgets import BusyCursor
|
from calibre.gui2.tweak_book.widgets import BusyCursor
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ class Check(QSplitter):
|
|||||||
msg, _('Click to run a check on the book'), _('Run check')))
|
msg, _('Click to run a check on the book'), _('Run check')))
|
||||||
|
|
||||||
def link_clicked(self, url):
|
def link_clicked(self, url):
|
||||||
url = unicode(url.toString(QUrl.None))
|
url = unicode(url.toString(NO_URL_FORMATTING))
|
||||||
if url == 'activate:item':
|
if url == 'activate:item':
|
||||||
self.current_item_activated()
|
self.current_item_activated()
|
||||||
elif url == 'run:check':
|
elif url == 'run:check':
|
||||||
|
@ -26,7 +26,7 @@ from calibre.constants import iswindows
|
|||||||
from calibre.ebooks.oeb.polish.parsing import parse
|
from calibre.ebooks.oeb.polish.parsing import parse
|
||||||
from calibre.ebooks.oeb.base import serialize, OEB_DOCS
|
from calibre.ebooks.oeb.base import serialize, OEB_DOCS
|
||||||
from calibre.ptempfile import PersistentTemporaryDirectory
|
from calibre.ptempfile import PersistentTemporaryDirectory
|
||||||
from calibre.gui2 import error_dialog, open_url
|
from calibre.gui2 import error_dialog, open_url, NO_URL_FORMATTING
|
||||||
from calibre.gui2.tweak_book import current_container, editors, tprefs, actions, TOP
|
from calibre.gui2.tweak_book import current_container, editors, tprefs, actions, TOP
|
||||||
from calibre.gui2.viewer.documentview import apply_settings
|
from calibre.gui2.viewer.documentview import apply_settings
|
||||||
from calibre.gui2.viewer.config import config
|
from calibre.gui2.viewer.config import config
|
||||||
@ -221,7 +221,7 @@ class NetworkAccessManager(QNetworkAccessManager):
|
|||||||
self.cache.setMaximumCacheSize(0)
|
self.cache.setMaximumCacheSize(0)
|
||||||
|
|
||||||
def createRequest(self, operation, request, data):
|
def createRequest(self, operation, request, data):
|
||||||
url = unicode(request.url().toString(QUrl.None))
|
url = unicode(request.url().toString(NO_URL_FORMATTING))
|
||||||
if operation == self.GetOperation and url.startswith('file://'):
|
if operation == self.GetOperation and url.startswith('file://'):
|
||||||
path = url[7:]
|
path = url[7:]
|
||||||
if iswindows and path.startswith('/'):
|
if iswindows and path.startswith('/'):
|
||||||
@ -418,7 +418,7 @@ class WebView(QWebView):
|
|||||||
p = self.page()
|
p = self.page()
|
||||||
mf = p.mainFrame()
|
mf = p.mainFrame()
|
||||||
r = mf.hitTestContent(ev.pos())
|
r = mf.hitTestContent(ev.pos())
|
||||||
url = unicode(r.linkUrl().toString(QUrl.None)).strip()
|
url = unicode(r.linkUrl().toString(NO_URL_FORMATTING)).strip()
|
||||||
ca = self.pageAction(QWebPage.Copy)
|
ca = self.pageAction(QWebPage.Copy)
|
||||||
if ca.isEnabled():
|
if ca.isEnabled():
|
||||||
menu.addAction(ca)
|
menu.addAction(ca)
|
||||||
|
@ -11,7 +11,7 @@ from PyQt5.Qt import (QDialog, QPixmap, QUrl, QScrollArea, QLabel, QSizePolicy,
|
|||||||
QDialogButtonBox, QVBoxLayout, QPalette, QApplication, QSize, QIcon,
|
QDialogButtonBox, QVBoxLayout, QPalette, QApplication, QSize, QIcon,
|
||||||
Qt, QTransform)
|
Qt, QTransform)
|
||||||
|
|
||||||
from calibre.gui2 import choose_save_file, gprefs
|
from calibre.gui2 import choose_save_file, gprefs, NO_URL_FORMATTING
|
||||||
|
|
||||||
class ImageView(QDialog):
|
class ImageView(QDialog):
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ class ImageView(QDialog):
|
|||||||
if geom is not None:
|
if geom is not None:
|
||||||
self.restoreGeometry(geom)
|
self.restoreGeometry(geom)
|
||||||
try:
|
try:
|
||||||
self.current_image_name = unicode(self.current_url.toString(QUrl.None)).rpartition('/')[-1]
|
self.current_image_name = unicode(self.current_url.toString(NO_URL_FORMATTING)).rpartition('/')[-1]
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
self.current_image_name = self.current_url
|
self.current_image_name = self.current_url
|
||||||
title = _('View Image: %s')%self.current_image_name
|
title = _('View Image: %s')%self.current_image_name
|
||||||
|
Loading…
x
Reference in New Issue
Block a user