mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Finish the QVariant porting
This commit is contained in:
parent
e25696f16c
commit
53991dc588
@ -304,7 +304,7 @@ class DuplicatesQuestion(QDialog): # {{{
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def ids(self):
|
def ids(self):
|
||||||
return {i.data(Qt.UserRole).toInt()[0] for i in self.items if i.checkState() == Qt.Checked}
|
return {int(i.data(Qt.UserRole)) for i in self.items if i.checkState() == Qt.Checked}
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
from PyQt5.Qt import QVariant, Qt
|
from PyQt5.Qt import Qt
|
||||||
|
|
||||||
from calibre.gui2.convert.look_and_feel_ui import Ui_Form
|
from calibre.gui2.convert.look_and_feel_ui import Ui_Form
|
||||||
from calibre.gui2.convert import Widget
|
from calibre.gui2.convert import Widget
|
||||||
@ -47,7 +47,7 @@ class LookAndFeelWidget(Widget, Ui_Form):
|
|||||||
('left', _('Left align')),
|
('left', _('Left align')),
|
||||||
('justify', _('Justify text'))
|
('justify', _('Justify text'))
|
||||||
]:
|
]:
|
||||||
self.opt_change_justification.addItem(text, QVariant(val))
|
self.opt_change_justification.addItem(text, (val))
|
||||||
self.db, self.book_id = db, book_id
|
self.db, self.book_id = db, book_id
|
||||||
self.initialize_options(get_option, get_help, db, book_id)
|
self.initialize_options(get_option, get_help, db, book_id)
|
||||||
self.opt_disable_font_rescaling.toggle()
|
self.opt_disable_font_rescaling.toggle()
|
||||||
@ -64,7 +64,7 @@ class LookAndFeelWidget(Widget, Ui_Form):
|
|||||||
|
|
||||||
def get_value_handler(self, g):
|
def get_value_handler(self, g):
|
||||||
if g is self.opt_change_justification:
|
if g is self.opt_change_justification:
|
||||||
ans = unicode(g.itemData(g.currentIndex()).toString())
|
ans = unicode(g.itemData(g.currentIndex()) or '')
|
||||||
return ans
|
return ans
|
||||||
if g is self.opt_filter_css:
|
if g is self.opt_filter_css:
|
||||||
ans = set()
|
ans = set()
|
||||||
@ -84,7 +84,7 @@ class LookAndFeelWidget(Widget, Ui_Form):
|
|||||||
def set_value_handler(self, g, val):
|
def set_value_handler(self, g, val):
|
||||||
if g is self.opt_change_justification:
|
if g is self.opt_change_justification:
|
||||||
for i in range(g.count()):
|
for i in range(g.count()):
|
||||||
c = unicode(g.itemData(i).toString())
|
c = unicode(g.itemData(i) or '')
|
||||||
if val == c:
|
if val == c:
|
||||||
g.setCurrentIndex(i)
|
g.setCurrentIndex(i)
|
||||||
break
|
break
|
||||||
|
@ -66,7 +66,7 @@ class PageSetupWidget(Widget, Ui_Form):
|
|||||||
self.opt_output_profile.setToolTip('<p>'+it.replace('t.','ce.\n<br>'))
|
self.opt_output_profile.setToolTip('<p>'+it.replace('t.','ce.\n<br>'))
|
||||||
|
|
||||||
def show_desc(self, index):
|
def show_desc(self, index):
|
||||||
desc = index.model().data(index, Qt.StatusTipRole).toString()
|
desc = unicode(index.model().data(index, Qt.StatusTipRole) or '')
|
||||||
self.profile_description.setText(desc)
|
self.profile_description.setText(desc)
|
||||||
|
|
||||||
def connect_gui_obj_handler(self, g, slot):
|
def connect_gui_obj_handler(self, g, slot):
|
||||||
|
@ -52,7 +52,7 @@ class PluginWidget(Widget, Ui_Form):
|
|||||||
def get_value_handler(self, g):
|
def get_value_handler(self, g):
|
||||||
if g is not self.opt_markdown_extensions:
|
if g is not self.opt_markdown_extensions:
|
||||||
return Widget.get_value_handler(self, g)
|
return Widget.get_value_handler(self, g)
|
||||||
return ', '.join(unicode(i.data(Qt.UserRole).toString()) for i in self.md_map.itervalues() if i.checkState())
|
return ', '.join(unicode(i.data(Qt.UserRole) or '') for i in self.md_map.itervalues() if i.checkState())
|
||||||
|
|
||||||
def connect_gui_obj_handler(self, g, f):
|
def connect_gui_obj_handler(self, g, f):
|
||||||
if g is not self.opt_markdown_extensions:
|
if g is not self.opt_markdown_extensions:
|
||||||
|
@ -6,7 +6,7 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import textwrap
|
import textwrap
|
||||||
|
|
||||||
from PyQt5.Qt import (QWidget, QListWidgetItem, Qt, QVariant, QLabel,
|
from PyQt5.Qt import (QWidget, QListWidgetItem, Qt, QLabel,
|
||||||
QLineEdit, QCheckBox, QComboBox)
|
QLineEdit, QCheckBox, QComboBox)
|
||||||
|
|
||||||
from calibre.gui2 import error_dialog, question_dialog
|
from calibre.gui2 import error_dialog, question_dialog
|
||||||
@ -39,7 +39,7 @@ class ConfigWidget(QWidget, Ui_ConfigWidget):
|
|||||||
disabled_formats = list(set(all_formats).difference(format_map))
|
disabled_formats = list(set(all_formats).difference(format_map))
|
||||||
for format in format_map + list(sorted(disabled_formats)):
|
for format in format_map + list(sorted(disabled_formats)):
|
||||||
item = QListWidgetItem(format, self.columns)
|
item = QListWidgetItem(format, self.columns)
|
||||||
item.setData(Qt.UserRole, QVariant(format))
|
item.setData(Qt.UserRole, (format))
|
||||||
item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsUserCheckable|Qt.ItemIsSelectable)
|
item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsUserCheckable|Qt.ItemIsSelectable)
|
||||||
item.setCheckState(Qt.Checked if format in format_map else Qt.Unchecked)
|
item.setCheckState(Qt.Checked if format in format_map else Qt.Unchecked)
|
||||||
|
|
||||||
@ -133,8 +133,7 @@ class ConfigWidget(QWidget, Ui_ConfigWidget):
|
|||||||
self.columns.setCurrentRow(idx+1)
|
self.columns.setCurrentRow(idx+1)
|
||||||
|
|
||||||
def format_map(self):
|
def format_map(self):
|
||||||
formats = [unicode(self.columns.item(i).data(Qt.UserRole).toString())
|
formats = [unicode(self.columns.item(i).data(Qt.UserRole) or '') for i in range(self.columns.count()) if self.columns.item(i).checkState()==Qt.Checked]
|
||||||
for i in range(self.columns.count()) if self.columns.item(i).checkState()==Qt.Checked]
|
|
||||||
return formats
|
return formats
|
||||||
|
|
||||||
def use_subdirs(self):
|
def use_subdirs(self):
|
||||||
|
@ -49,7 +49,7 @@ class FormatsConfig(QWidget): # {{{
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def format_map(self):
|
def format_map(self):
|
||||||
return [unicode(self.f.item(i).data(Qt.UserRole).toString()) for i in
|
return [unicode(self.f.item(i).data(Qt.UserRole) or '') for i in
|
||||||
xrange(self.f.count()) if self.f.item(i).checkState()==Qt.Checked]
|
xrange(self.f.count()) if self.f.item(i).checkState()==Qt.Checked]
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
@ -183,13 +183,13 @@ class IgnoredDevices(QWidget): # {{{
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def blacklist(self):
|
def blacklist(self):
|
||||||
return [unicode(self.f.item(i).data(Qt.UserRole).toString()) for i in
|
return [unicode(self.f.item(i).data(Qt.UserRole) or '') for i in
|
||||||
xrange(self.f.count()) if self.f.item(i).checkState()==Qt.Checked]
|
xrange(self.f.count()) if self.f.item(i).checkState()==Qt.Checked]
|
||||||
|
|
||||||
def ignore_device(self, snum):
|
def ignore_device(self, snum):
|
||||||
for i in xrange(self.f.count()):
|
for i in xrange(self.f.count()):
|
||||||
i = self.f.item(i)
|
i = self.f.item(i)
|
||||||
c = unicode(i.data(Qt.UserRole).toString())
|
c = unicode(i.data(Qt.UserRole) or '')
|
||||||
if c == snum:
|
if c == snum:
|
||||||
i.setCheckState(Qt.Checked)
|
i.setCheckState(Qt.Checked)
|
||||||
break
|
break
|
||||||
@ -262,7 +262,7 @@ class Rule(QWidget):
|
|||||||
folder = unicode(self.folder.text()).strip()
|
folder = unicode(self.folder.text()).strip()
|
||||||
if folder:
|
if folder:
|
||||||
return (
|
return (
|
||||||
unicode(self.fmt.itemData(self.fmt.currentIndex()).toString()),
|
unicode(self.fmt.itemData(self.fmt.currentIndex()) or ''),
|
||||||
folder
|
folder
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
@ -53,7 +53,7 @@ class Storage(QTreeWidget):
|
|||||||
def current_item(self):
|
def current_item(self):
|
||||||
item = self.currentItem()
|
item = self.currentItem()
|
||||||
if item is not None:
|
if item is not None:
|
||||||
return (self.object_id, item.data(0, Qt.UserRole).toPyObject())
|
return (self.object_id, item.data(0, Qt.UserRole))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
class Folders(QTabWidget):
|
class Folders(QTabWidget):
|
||||||
@ -195,7 +195,7 @@ class IgnoredFolders(QDialog):
|
|||||||
for node in self.iterchildren(w.invisibleRootItem()):
|
for node in self.iterchildren(w.invisibleRootItem()):
|
||||||
if node.checkState(0) == Qt.Checked:
|
if node.checkState(0) == Qt.Checked:
|
||||||
continue
|
continue
|
||||||
path = unicode(node.data(0, Qt.UserRole).toString())
|
path = unicode(node.data(0, Qt.UserRole) or '')
|
||||||
parent = path.rpartition('/')[0]
|
parent = path.rpartition('/')[0]
|
||||||
if '/' not in path or icu_lower(parent) not in folders:
|
if '/' not in path or icu_lower(parent) not in folders:
|
||||||
folders.add(icu_lower(path))
|
folders.add(icu_lower(path))
|
||||||
|
@ -6,9 +6,8 @@ __license__ = 'GPL 3'
|
|||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
from PyQt5.Qt import (Qt, QAbstractItemModel, QIcon, QVariant, QModelIndex, QSize)
|
from PyQt5.Qt import (Qt, QAbstractItemModel, QIcon, QModelIndex, QSize)
|
||||||
|
|
||||||
from calibre.gui2 import NONE
|
|
||||||
from calibre.customize.ui import is_disabled, disable_plugin, enable_plugin
|
from calibre.customize.ui import is_disabled, disable_plugin, enable_plugin
|
||||||
from calibre.db.search import _match, CONTAINS_MATCH, EQUALS_MATCH, REGEXP_MATCH
|
from calibre.db.search import _match, CONTAINS_MATCH, EQUALS_MATCH, REGEXP_MATCH
|
||||||
from calibre.utils.config_base import prefs
|
from calibre.utils.config_base import prefs
|
||||||
@ -58,13 +57,13 @@ class Matches(QAbstractItemModel):
|
|||||||
def enable_all(self):
|
def enable_all(self):
|
||||||
for i in xrange(len(self.matches)):
|
for i in xrange(len(self.matches)):
|
||||||
index = self.createIndex(i, 0)
|
index = self.createIndex(i, 0)
|
||||||
data = QVariant(True)
|
data = (True)
|
||||||
self.setData(index, data, Qt.CheckStateRole)
|
self.setData(index, data, Qt.CheckStateRole)
|
||||||
|
|
||||||
def enable_none(self):
|
def enable_none(self):
|
||||||
for i in xrange(len(self.matches)):
|
for i in xrange(len(self.matches)):
|
||||||
index = self.createIndex(i, 0)
|
index = self.createIndex(i, 0)
|
||||||
data = QVariant(False)
|
data = (False)
|
||||||
self.setData(index, data, Qt.CheckStateRole)
|
self.setData(index, data, Qt.CheckStateRole)
|
||||||
|
|
||||||
def enable_invert(self):
|
def enable_invert(self):
|
||||||
@ -73,7 +72,7 @@ class Matches(QAbstractItemModel):
|
|||||||
|
|
||||||
def toggle_plugin(self, index):
|
def toggle_plugin(self, index):
|
||||||
new_index = self.createIndex(index.row(), 0)
|
new_index = self.createIndex(index.row(), 0)
|
||||||
data = QVariant(is_disabled(self.get_plugin(index)))
|
data = (is_disabled(self.get_plugin(index)))
|
||||||
self.setData(new_index, data, Qt.CheckStateRole)
|
self.setData(new_index, data, Qt.CheckStateRole)
|
||||||
|
|
||||||
def index(self, row, column, parent=QModelIndex()):
|
def index(self, row, column, parent=QModelIndex()):
|
||||||
@ -92,32 +91,32 @@ class Matches(QAbstractItemModel):
|
|||||||
|
|
||||||
def headerData(self, section, orientation, role):
|
def headerData(self, section, orientation, role):
|
||||||
if role != Qt.DisplayRole:
|
if role != Qt.DisplayRole:
|
||||||
return NONE
|
return None
|
||||||
text = ''
|
text = ''
|
||||||
if orientation == Qt.Horizontal:
|
if orientation == Qt.Horizontal:
|
||||||
if section < len(self.HEADERS):
|
if section < len(self.HEADERS):
|
||||||
text = self.HEADERS[section]
|
text = self.HEADERS[section]
|
||||||
return QVariant(text)
|
return (text)
|
||||||
else:
|
else:
|
||||||
return QVariant(section+1)
|
return (section+1)
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
row, col = index.row(), index.column()
|
row, col = index.row(), index.column()
|
||||||
result = self.matches[row]
|
result = self.matches[row]
|
||||||
if role in (Qt.DisplayRole, Qt.EditRole):
|
if role in (Qt.DisplayRole, Qt.EditRole):
|
||||||
if col == 1:
|
if col == 1:
|
||||||
return QVariant('<b>%s</b><br><i>%s</i>' % (result.name, result.description))
|
return ('<b>%s</b><br><i>%s</i>' % (result.name, result.description))
|
||||||
elif col == 3:
|
elif col == 3:
|
||||||
return QVariant(result.headquarters)
|
return (result.headquarters)
|
||||||
elif col == 5:
|
elif col == 5:
|
||||||
return QVariant(', '.join(result.formats).upper())
|
return (', '.join(result.formats).upper())
|
||||||
elif role == Qt.DecorationRole:
|
elif role == Qt.DecorationRole:
|
||||||
if col == 2:
|
if col == 2:
|
||||||
if result.drm_free_only:
|
if result.drm_free_only:
|
||||||
return QVariant(self.NO_DRM_ICON)
|
return (self.NO_DRM_ICON)
|
||||||
if col == 4:
|
if col == 4:
|
||||||
if result.affiliate:
|
if result.affiliate:
|
||||||
return QVariant(self.DONATE_ICON)
|
return (self.DONATE_ICON)
|
||||||
elif role == Qt.CheckStateRole:
|
elif role == Qt.CheckStateRole:
|
||||||
if col == 0:
|
if col == 0:
|
||||||
if is_disabled(result):
|
if is_disabled(result):
|
||||||
@ -126,31 +125,31 @@ class Matches(QAbstractItemModel):
|
|||||||
elif role == Qt.ToolTipRole:
|
elif role == Qt.ToolTipRole:
|
||||||
if col == 0:
|
if col == 0:
|
||||||
if is_disabled(result):
|
if is_disabled(result):
|
||||||
return QVariant('<p>' + _('This store is currently disabled and cannot be used in other parts of calibre.') + '</p>')
|
return ('<p>' + _('This store is currently disabled and cannot be used in other parts of calibre.') + '</p>')
|
||||||
else:
|
else:
|
||||||
return QVariant('<p>' + _('This store is currently enabled and can be used in other parts of calibre.') + '</p>')
|
return ('<p>' + _('This store is currently enabled and can be used in other parts of calibre.') + '</p>')
|
||||||
elif col == 1:
|
elif col == 1:
|
||||||
return QVariant('<p>%s</p>' % result.description)
|
return ('<p>%s</p>' % result.description)
|
||||||
elif col == 2:
|
elif col == 2:
|
||||||
if result.drm_free_only:
|
if result.drm_free_only:
|
||||||
return QVariant('<p>' + _('This store only distributes ebooks without DRM.') + '</p>')
|
return ('<p>' + _('This store only distributes ebooks without DRM.') + '</p>')
|
||||||
else:
|
else:
|
||||||
return QVariant('<p>' + _('This store distributes ebooks with DRM. It may have some titles without DRM, but you will need to check on a per title basis.') + '</p>')
|
return ('<p>' + _('This store distributes ebooks with DRM. It may have some titles without DRM, but you will need to check on a per title basis.') + '</p>')
|
||||||
elif col == 3:
|
elif col == 3:
|
||||||
return QVariant('<p>' + _('This store is headquartered in %s. This is a good indication of what market the store caters to. However, this does not necessarily mean that the store is limited to that market only.') % result.headquarters + '</p>')
|
return ('<p>' + _('This store is headquartered in %s. This is a good indication of what market the store caters to. However, this does not necessarily mean that the store is limited to that market only.') % result.headquarters + '</p>')
|
||||||
elif col == 4:
|
elif col == 4:
|
||||||
if result.affiliate:
|
if result.affiliate:
|
||||||
return QVariant('<p>' + _('Buying from this store supports the calibre developer: %s.') % result.author + '</p>')
|
return ('<p>' + _('Buying from this store supports the calibre developer: %s.') % result.author + '</p>')
|
||||||
elif col == 5:
|
elif col == 5:
|
||||||
return QVariant('<p>' + _('This store distributes ebooks in the following formats: %s') % ', '.join(result.formats) + '</p>')
|
return ('<p>' + _('This store distributes ebooks in the following formats: %s') % ', '.join(result.formats) + '</p>')
|
||||||
return NONE
|
return None
|
||||||
|
|
||||||
def setData(self, index, data, role):
|
def setData(self, index, data, role):
|
||||||
if not index.isValid():
|
if not index.isValid():
|
||||||
return False
|
return False
|
||||||
col = index.column()
|
col = index.column()
|
||||||
if col == 0:
|
if col == 0:
|
||||||
if data.toBool():
|
if bool(data):
|
||||||
enable_plugin(self.get_plugin(index))
|
enable_plugin(self.get_plugin(index))
|
||||||
else:
|
else:
|
||||||
disable_plugin(self.get_plugin(index))
|
disable_plugin(self.get_plugin(index))
|
||||||
|
@ -9,10 +9,10 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import re, string
|
import re, string
|
||||||
from operator import attrgetter
|
from operator import attrgetter
|
||||||
|
|
||||||
from PyQt5.Qt import (Qt, QAbstractItemModel, QVariant, QPixmap, QModelIndex, QSize,
|
from PyQt5.Qt import (Qt, QAbstractItemModel, QPixmap, QModelIndex, QSize,
|
||||||
pyqtSignal)
|
pyqtSignal)
|
||||||
|
|
||||||
from calibre.gui2 import NONE, FunctionDispatcher
|
from calibre.gui2 import FunctionDispatcher
|
||||||
from calibre.gui2.store.search_result import SearchResult
|
from calibre.gui2.store.search_result import SearchResult
|
||||||
from calibre.gui2.store.search.download_thread import DetailsThreadPool, \
|
from calibre.gui2.store.search.download_thread import DetailsThreadPool, \
|
||||||
CoverThreadPool
|
CoverThreadPool
|
||||||
@ -183,71 +183,71 @@ class Matches(QAbstractItemModel):
|
|||||||
|
|
||||||
def headerData(self, section, orientation, role):
|
def headerData(self, section, orientation, role):
|
||||||
if role != Qt.DisplayRole:
|
if role != Qt.DisplayRole:
|
||||||
return NONE
|
return None
|
||||||
text = ''
|
text = ''
|
||||||
if orientation == Qt.Horizontal:
|
if orientation == Qt.Horizontal:
|
||||||
if section < len(self.HEADERS):
|
if section < len(self.HEADERS):
|
||||||
text = self.HEADERS[section]
|
text = self.HEADERS[section]
|
||||||
return QVariant(text)
|
return (text)
|
||||||
else:
|
else:
|
||||||
return QVariant(section+1)
|
return (section+1)
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
row, col = index.row(), index.column()
|
row, col = index.row(), index.column()
|
||||||
if row >= len(self.matches):
|
if row >= len(self.matches):
|
||||||
return NONE
|
return None
|
||||||
result = self.matches[row]
|
result = self.matches[row]
|
||||||
if role == Qt.DisplayRole:
|
if role == Qt.DisplayRole:
|
||||||
if col == 1:
|
if col == 1:
|
||||||
t = result.title if result.title else _('Unknown')
|
t = result.title if result.title else _('Unknown')
|
||||||
a = result.author if result.author else ''
|
a = result.author if result.author else ''
|
||||||
return QVariant('<b>%s</b><br><i>%s</i>' % (t, a))
|
return ('<b>%s</b><br><i>%s</i>' % (t, a))
|
||||||
elif col == 2:
|
elif col == 2:
|
||||||
return QVariant(result.price)
|
return (result.price)
|
||||||
elif col == 4:
|
elif col == 4:
|
||||||
return QVariant('%s<br>%s' % (result.store_name, result.formats))
|
return ('%s<br>%s' % (result.store_name, result.formats))
|
||||||
return NONE
|
return None
|
||||||
elif role == Qt.DecorationRole:
|
elif role == Qt.DecorationRole:
|
||||||
if col == 0 and result.cover_data:
|
if col == 0 and result.cover_data:
|
||||||
p = QPixmap()
|
p = QPixmap()
|
||||||
p.loadFromData(result.cover_data)
|
p.loadFromData(result.cover_data)
|
||||||
return QVariant(p)
|
return (p)
|
||||||
if col == 3:
|
if col == 3:
|
||||||
if result.drm == SearchResult.DRM_LOCKED:
|
if result.drm == SearchResult.DRM_LOCKED:
|
||||||
return QVariant(self.DRM_LOCKED_ICON)
|
return (self.DRM_LOCKED_ICON)
|
||||||
elif result.drm == SearchResult.DRM_UNLOCKED:
|
elif result.drm == SearchResult.DRM_UNLOCKED:
|
||||||
return QVariant(self.DRM_UNLOCKED_ICON)
|
return (self.DRM_UNLOCKED_ICON)
|
||||||
elif result.drm == SearchResult.DRM_UNKNOWN:
|
elif result.drm == SearchResult.DRM_UNKNOWN:
|
||||||
return QVariant(self.DRM_UNKNOWN_ICON)
|
return (self.DRM_UNKNOWN_ICON)
|
||||||
if col == 5:
|
if col == 5:
|
||||||
if result.downloads:
|
if result.downloads:
|
||||||
return QVariant(self.DOWNLOAD_ICON)
|
return (self.DOWNLOAD_ICON)
|
||||||
if col == 6:
|
if col == 6:
|
||||||
if result.affiliate:
|
if result.affiliate:
|
||||||
return QVariant(self.DONATE_ICON)
|
return (self.DONATE_ICON)
|
||||||
elif role == Qt.ToolTipRole:
|
elif role == Qt.ToolTipRole:
|
||||||
if col == 1:
|
if col == 1:
|
||||||
return QVariant('<p>%s</p>' % result.title)
|
return ('<p>%s</p>' % result.title)
|
||||||
elif col == 2:
|
elif col == 2:
|
||||||
return QVariant('<p>' + _('Detected price as: %s. Check with the store before making a purchase to verify this price is correct. This price often does not include promotions the store may be running.') % result.price + '</p>') # noqa
|
return ('<p>' + _('Detected price as: %s. Check with the store before making a purchase to verify this price is correct. This price often does not include promotions the store may be running.') % result.price + '</p>') # noqa
|
||||||
elif col == 3:
|
elif col == 3:
|
||||||
if result.drm == SearchResult.DRM_LOCKED:
|
if result.drm == SearchResult.DRM_LOCKED:
|
||||||
return QVariant('<p>' + _('This book as been detected as having DRM restrictions. This book may not work with your reader and you will have limitations placed upon you as to what you can do with this book. Check with the store before making any purchases to ensure you can actually read this book.') + '</p>') # noqa
|
return ('<p>' + _('This book as been detected as having DRM restrictions. This book may not work with your reader and you will have limitations placed upon you as to what you can do with this book. Check with the store before making any purchases to ensure you can actually read this book.') + '</p>') # noqa
|
||||||
elif result.drm == SearchResult.DRM_UNLOCKED:
|
elif result.drm == SearchResult.DRM_UNLOCKED:
|
||||||
return QVariant('<p>' + _('This book has been detected as being DRM Free. You should be able to use this book on any device provided it is in a format calibre supports for conversion. However, before making a purchase double check the DRM status with the store. The store may not be disclosing the use of DRM.') + '</p>') # noqa
|
return ('<p>' + _('This book has been detected as being DRM Free. You should be able to use this book on any device provided it is in a format calibre supports for conversion. However, before making a purchase double check the DRM status with the store. The store may not be disclosing the use of DRM.') + '</p>') # noqa
|
||||||
else:
|
else:
|
||||||
return QVariant('<p>' + _('The DRM status of this book could not be determined. There is a very high likelihood that this book is actually DRM restricted.') + '</p>') # noqa
|
return ('<p>' + _('The DRM status of this book could not be determined. There is a very high likelihood that this book is actually DRM restricted.') + '</p>') # noqa
|
||||||
elif col == 4:
|
elif col == 4:
|
||||||
return QVariant('<p>%s</p>' % result.formats)
|
return ('<p>%s</p>' % result.formats)
|
||||||
elif col == 5:
|
elif col == 5:
|
||||||
if result.downloads:
|
if result.downloads:
|
||||||
return QVariant('<p>' + _('The following formats can be downloaded directly: %s.') % ', '.join(result.downloads.keys()) + '</p>')
|
return ('<p>' + _('The following formats can be downloaded directly: %s.') % ', '.join(result.downloads.keys()) + '</p>')
|
||||||
elif col == 6:
|
elif col == 6:
|
||||||
if result.affiliate:
|
if result.affiliate:
|
||||||
return QVariant('<p>' + _('Buying from this store supports the calibre developer: %s.') % result.plugin_author + '</p>')
|
return ('<p>' + _('Buying from this store supports the calibre developer: %s.') % result.plugin_author + '</p>')
|
||||||
elif role == Qt.SizeHintRole:
|
elif role == Qt.SizeHintRole:
|
||||||
return QSize(64, 64)
|
return QSize(64, 64)
|
||||||
return NONE
|
return None
|
||||||
|
|
||||||
def data_as_text(self, result, col):
|
def data_as_text(self, result, col):
|
||||||
text = ''
|
text = ''
|
||||||
|
@ -9,7 +9,7 @@ __docformat__ = 'restructuredtext en'
|
|||||||
import os
|
import os
|
||||||
from urlparse import urlparse
|
from urlparse import urlparse
|
||||||
|
|
||||||
from PyQt5.Qt import QNetworkCookieJar, QNetworkProxy
|
from PyQt5.Qt import QNetworkCookieJar, QNetworkProxy, QUrl
|
||||||
from PyQt5.QtWebKitWidgets import QWebView, QWebPage
|
from PyQt5.QtWebKitWidgets import QWebView, QWebPage
|
||||||
|
|
||||||
from calibre import USER_AGENT, get_proxies, get_download_filename
|
from calibre import USER_AGENT, get_proxies, get_download_filename
|
||||||
@ -66,7 +66,7 @@ class NPWebView(QWebView):
|
|||||||
if not self.gui:
|
if not self.gui:
|
||||||
return
|
return
|
||||||
|
|
||||||
url = unicode(request.url().toString())
|
url = unicode(request.url().toString(QUrl.None))
|
||||||
cf = self.get_cookies()
|
cf = self.get_cookies()
|
||||||
|
|
||||||
filename = get_download_filename(url, cf)
|
filename = get_download_filename(url, cf)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user