-
diff --git a/src/calibre/gui2/convert/look_and_feel.py b/src/calibre/gui2/convert/look_and_feel.py
index c5f579fc9e..b0403bf1dd 100644
--- a/src/calibre/gui2/convert/look_and_feel.py
+++ b/src/calibre/gui2/convert/look_and_feel.py
@@ -14,7 +14,7 @@ from calibre.gui2.convert import Widget
class LookAndFeelWidget(Widget, Ui_Form):
TITLE = _('Look & Feel')
- ICON = I('lookfeel.svg')
+ ICON = I('lookfeel.png')
HELP = _('Control the look and feel of the output')
COMMIT_NAME = 'look_and_feel'
diff --git a/src/calibre/gui2/convert/look_and_feel.ui b/src/calibre/gui2/convert/look_and_feel.ui
index ad8f0a42a9..de48e7caf9 100644
--- a/src/calibre/gui2/convert/look_and_feel.ui
+++ b/src/calibre/gui2/convert/look_and_feel.ui
@@ -85,7 +85,7 @@
- :/images/wizard.svg:/images/wizard.svg
+ :/images/wizard.png:/images/wizard.png
diff --git a/src/calibre/gui2/convert/lrf_output.py b/src/calibre/gui2/convert/lrf_output.py
index 1b4f1acad3..75764164dd 100644
--- a/src/calibre/gui2/convert/lrf_output.py
+++ b/src/calibre/gui2/convert/lrf_output.py
@@ -19,6 +19,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('LRF Output')
HELP = _('Options specific to')+' LRF '+_('output')
COMMIT_NAME = 'lrf_output'
+ ICON = I('mimetypes/lrf.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent,
diff --git a/src/calibre/gui2/convert/metadata.py b/src/calibre/gui2/convert/metadata.py
index daabd6226a..ea62b61f6a 100644
--- a/src/calibre/gui2/convert/metadata.py
+++ b/src/calibre/gui2/convert/metadata.py
@@ -39,7 +39,7 @@ def create_cover_file(db, book_id):
class MetadataWidget(Widget, Ui_Form):
TITLE = _('Metadata')
- ICON = I('dialog_information.svg')
+ ICON = I('dialog_information.png')
HELP = _('Set the metadata. The output file will contain as much of this '
'metadata as possible.')
COMMIT_NAME = 'metadata'
@@ -89,7 +89,7 @@ class MetadataWidget(Widget, Ui_Form):
self.cover.setPixmap(pm)
self.cover_data = cover
else:
- self.cover.setPixmap(QPixmap(I('default_cover.svg')))
+ self.cover.setPixmap(QPixmap(I('default_cover.png')))
def initialize_combos(self):
diff --git a/src/calibre/gui2/convert/metadata.ui b/src/calibre/gui2/convert/metadata.ui
index 7bc45e234e..a594f47b5d 100644
--- a/src/calibre/gui2/convert/metadata.ui
+++ b/src/calibre/gui2/convert/metadata.ui
@@ -87,7 +87,7 @@
- :/images/document_open.svg:/images/document_open.svg
+ :/images/document_open.png:/images/document_open.png
diff --git a/src/calibre/gui2/convert/mobi_output.py b/src/calibre/gui2/convert/mobi_output.py
index 7eff3b55a2..23c0b30253 100644
--- a/src/calibre/gui2/convert/mobi_output.py
+++ b/src/calibre/gui2/convert/mobi_output.py
@@ -20,6 +20,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('MOBI Output')
HELP = _('Options specific to')+' MOBI '+_('output')
COMMIT_NAME = 'mobi_output'
+ ICON = I('mimetypes/mobi.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent,
diff --git a/src/calibre/gui2/convert/page_setup.py b/src/calibre/gui2/convert/page_setup.py
index e824c18b57..a0ca16297c 100644
--- a/src/calibre/gui2/convert/page_setup.py
+++ b/src/calibre/gui2/convert/page_setup.py
@@ -36,6 +36,7 @@ class PageSetupWidget(Widget, Ui_Form):
COMMIT_NAME = 'page_setup'
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
+ self.__connections = []
Widget.__init__(self, parent,
['margin_top', 'margin_left', 'margin_right', 'margin_bottom',
'input_profile', 'output_profile']
@@ -46,6 +47,10 @@ class PageSetupWidget(Widget, Ui_Form):
self.output_model = ProfileModel(output_profiles())
self.opt_input_profile.setModel(self.input_model)
self.opt_output_profile.setModel(self.output_model)
+ for g, slot in self.__connections:
+ g.selectionModel().currentChanged.connect(slot)
+ del self.__connections
+
for x in (self.opt_input_profile, self.opt_output_profile):
x.setMouseTracking(True)
self.connect(x, SIGNAL('entered(QModelIndex)'), self.show_desc)
@@ -55,12 +60,15 @@ class PageSetupWidget(Widget, Ui_Form):
it = unicode(self.opt_output_profile.toolTip())
self.opt_output_profile.setToolTip(''+it.replace('t.','ce.\n
'))
-
-
def show_desc(self, index):
desc = index.model().data(index, Qt.StatusTipRole).toString()
self.profile_description.setText(desc)
+ def connect_gui_obj_handler(self, g, slot):
+ if g not in (self.opt_input_profile, self.opt_output_profile):
+ raise NotImplementedError()
+ self.__connections.append((g, slot))
+
def set_value_handler(self, g, val):
if g in (self.opt_input_profile, self.opt_output_profile):
g.clearSelection()
diff --git a/src/calibre/gui2/convert/pdb_input.py b/src/calibre/gui2/convert/pdb_input.py
index 6adc49c3ed..4510cf81ba 100644
--- a/src/calibre/gui2/convert/pdb_input.py
+++ b/src/calibre/gui2/convert/pdb_input.py
@@ -12,6 +12,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('PDB Input')
HELP = _('Options specific to')+' PDB '+_('input')
COMMIT_NAME = 'pdb_input'
+ ICON = I('mimetypes/unknown.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent,
diff --git a/src/calibre/gui2/convert/pdb_output.py b/src/calibre/gui2/convert/pdb_output.py
index 3f9d9ad3dc..9f88656f2f 100644
--- a/src/calibre/gui2/convert/pdb_output.py
+++ b/src/calibre/gui2/convert/pdb_output.py
@@ -16,6 +16,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('PDB Output')
HELP = _('Options specific to')+' PDB '+_('output')
COMMIT_NAME = 'pdb_output'
+ ICON = I('mimetypes/unknown.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent, ['format', 'inline_toc'])
diff --git a/src/calibre/gui2/convert/pdf_input.py b/src/calibre/gui2/convert/pdf_input.py
index 511091ae85..967a0fe234 100644
--- a/src/calibre/gui2/convert/pdf_input.py
+++ b/src/calibre/gui2/convert/pdf_input.py
@@ -12,6 +12,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('PDF Input')
HELP = _('Options specific to')+' PDF '+_('input')
COMMIT_NAME = 'pdf_input'
+ ICON = I('mimetypes/pdf.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent,
diff --git a/src/calibre/gui2/convert/pdf_output.py b/src/calibre/gui2/convert/pdf_output.py
index de0a34a508..5d6a595079 100644
--- a/src/calibre/gui2/convert/pdf_output.py
+++ b/src/calibre/gui2/convert/pdf_output.py
@@ -17,6 +17,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('PDF Output')
HELP = _('Options specific to')+' PDF '+_('output')
COMMIT_NAME = 'pdf_output'
+ ICON = I('mimetypes/pdf.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent, ['paper_size',
diff --git a/src/calibre/gui2/convert/rb_output.py b/src/calibre/gui2/convert/rb_output.py
index 5f8a961899..25d1d8b0e0 100644
--- a/src/calibre/gui2/convert/rb_output.py
+++ b/src/calibre/gui2/convert/rb_output.py
@@ -14,6 +14,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('RB Output')
HELP = _('Options specific to')+' RB '+_('output')
COMMIT_NAME = 'rb_output'
+ ICON = I('mimetypes/unknown.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent, ['inline_toc'])
diff --git a/src/calibre/gui2/convert/single.py b/src/calibre/gui2/convert/single.py
index b5cba20c2f..7fa8c29835 100644
--- a/src/calibre/gui2/convert/single.py
+++ b/src/calibre/gui2/convert/single.py
@@ -181,7 +181,7 @@ class Config(ResizableDialog, Ui_Dialog):
output_widget = __import__('calibre.gui2.convert.'+name,
fromlist=[1])
pw = output_widget.PluginWidget
- pw.ICON = I('back.svg')
+ pw.ICON = I('back.png')
pw.HELP = _('Options specific to the output format.')
output_widget = widget_factory(pw)
except ImportError:
@@ -192,7 +192,7 @@ class Config(ResizableDialog, Ui_Dialog):
input_widget = __import__('calibre.gui2.convert.'+name,
fromlist=[1])
pw = input_widget.PluginWidget
- pw.ICON = I('forward.svg')
+ pw.ICON = I('forward.png')
pw.HELP = _('Options specific to the input format.')
input_widget = widget_factory(pw)
except ImportError:
diff --git a/src/calibre/gui2/convert/single.ui b/src/calibre/gui2/convert/single.ui
index 5b976a5cfb..ede548d8d7 100644
--- a/src/calibre/gui2/convert/single.ui
+++ b/src/calibre/gui2/convert/single.ui
@@ -15,7 +15,7 @@
- :/images/convert.svg:/images/convert.svg
+ :/images/convert.png:/images/convert.png
-
diff --git a/src/calibre/gui2/convert/structure_detection.py b/src/calibre/gui2/convert/structure_detection.py
index cc1a16c617..f2ca49d1bd 100644
--- a/src/calibre/gui2/convert/structure_detection.py
+++ b/src/calibre/gui2/convert/structure_detection.py
@@ -15,7 +15,7 @@ from calibre.gui2 import error_dialog
class StructureDetectionWidget(Widget, Ui_Form):
TITLE = _('Structure\nDetection')
- ICON = I('chapters.svg')
+ ICON = I('chapters.png')
HELP = _('Fine tune the detection of chapter headings and '
'other document structure.')
COMMIT_NAME = 'structure_detection'
diff --git a/src/calibre/gui2/convert/toc.py b/src/calibre/gui2/convert/toc.py
index 0908aba576..8121f23192 100644
--- a/src/calibre/gui2/convert/toc.py
+++ b/src/calibre/gui2/convert/toc.py
@@ -14,7 +14,7 @@ from calibre.gui2 import error_dialog
class TOCWidget(Widget, Ui_Form):
TITLE = _('Table of\nContents')
- ICON = I('series.svg')
+ ICON = I('series.png')
HELP = _('Control the creation/conversion of the Table of Contents.')
COMMIT_NAME = 'toc'
diff --git a/src/calibre/gui2/convert/txt_input.py b/src/calibre/gui2/convert/txt_input.py
index 006c06dd00..31019251e2 100644
--- a/src/calibre/gui2/convert/txt_input.py
+++ b/src/calibre/gui2/convert/txt_input.py
@@ -12,6 +12,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('TXT Input')
HELP = _('Options specific to')+' TXT '+_('input')
COMMIT_NAME = 'txt_input'
+ ICON = I('mimetypes/txt.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent,
diff --git a/src/calibre/gui2/convert/txt_output.py b/src/calibre/gui2/convert/txt_output.py
index 1accd08485..8b2e131ec6 100644
--- a/src/calibre/gui2/convert/txt_output.py
+++ b/src/calibre/gui2/convert/txt_output.py
@@ -16,6 +16,7 @@ class PluginWidget(Widget, Ui_Form):
TITLE = _('TXT Output')
HELP = _('Options specific to')+' TXT '+_('output')
COMMIT_NAME = 'txt_output'
+ ICON = I('mimetypes/txt.png')
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
Widget.__init__(self, parent,
diff --git a/src/calibre/gui2/convert/xexp_edit.ui b/src/calibre/gui2/convert/xexp_edit.ui
index f3427bce23..7e89ec5d43 100644
--- a/src/calibre/gui2/convert/xexp_edit.ui
+++ b/src/calibre/gui2/convert/xexp_edit.ui
@@ -60,7 +60,7 @@
- :/images/wizard.svg:/images/wizard.svg
+ :/images/wizard.png:/images/wizard.png
diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py
index 0e89358c53..67ab94d29a 100644
--- a/src/calibre/gui2/custom_column_widgets.py
+++ b/src/calibre/gui2/custom_column_widgets.py
@@ -57,7 +57,7 @@ class Bool(Base):
QComboBox(parent)]
w = self.widgets[1]
items = [_('Yes'), _('No'), _('Undefined')]
- icons = [I('ok.svg'), I('list_remove.svg'), I('blank.svg')]
+ icons = [I('ok.png'), I('list_remove.png'), I('blank.png')]
if tweaks['bool_custom_columns_are_tristate'] == 'no':
items = items[:-1]
icons = icons[:-1]
diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py
index bc79a3c9de..5fb8b1028b 100644
--- a/src/calibre/gui2/device.py
+++ b/src/calibre/gui2/device.py
@@ -9,9 +9,8 @@ from itertools import repeat
from functools import partial
from binascii import unhexlify
-from PyQt4.Qt import QMenu, QAction, QActionGroup, QIcon, SIGNAL, QPixmap, \
- Qt, pyqtSignal, QColor, QPainter, QDialog, QMessageBox
-from PyQt4.QtSvg import QSvgRenderer
+from PyQt4.Qt import QMenu, QAction, QActionGroup, QIcon, SIGNAL, \
+ Qt, pyqtSignal, QDialog, QMessageBox
from calibre.customize.ui import available_input_formats, available_output_formats, \
device_plugins
@@ -21,7 +20,7 @@ from calibre.gui2.dialogs.choose_format import ChooseFormatDialog
from calibre.utils.ipc.job import BaseJob
from calibre.devices.scanner import DeviceScanner
from calibre.gui2 import config, error_dialog, Dispatcher, dynamic, \
- pixmap_to_data, warning_dialog, \
+ warning_dialog, \
question_dialog, info_dialog, choose_dir
from calibre.ebooks.metadata import authors_to_string
from calibre import preferred_encoding, prints
@@ -34,7 +33,7 @@ from calibre.devices.folder_device.driver import FOLDER_DEVICE
from calibre.ebooks.metadata.meta import set_metadata
from calibre.constants import DEBUG
from calibre.utils.config import prefs, tweaks
-
+from calibre.utils.magick.draw import thumbnail
# }}}
class DeviceJob(BaseJob): # {{{
@@ -417,33 +416,33 @@ class DeviceMenu(QMenu): # {{{
self._memory = []
self.set_default_menu = QMenu(_('Set default send to device action'))
- self.set_default_menu.setIcon(QIcon(I('config.svg')))
+ self.set_default_menu.setIcon(QIcon(I('config.png')))
basic_actions = [
- ('main:', False, False, I('reader.svg'),
+ ('main:', False, False, I('reader.png'),
_('Send to main memory')),
- ('carda:0', False, False, I('sd.svg'),
+ ('carda:0', False, False, I('sd.png'),
_('Send to storage card A')),
- ('cardb:0', False, False, I('sd.svg'),
+ ('cardb:0', False, False, I('sd.png'),
_('Send to storage card B')),
]
delete_actions = [
- ('main:', True, False, I('reader.svg'),
+ ('main:', True, False, I('reader.png'),
_('Main Memory')),
- ('carda:0', True, False, I('sd.svg'),
+ ('carda:0', True, False, I('sd.png'),
_('Storage Card A')),
- ('cardb:0', True, False, I('sd.svg'),
+ ('cardb:0', True, False, I('sd.png'),
_('Storage Card B')),
]
specific_actions = [
- ('main:', False, True, I('reader.svg'),
+ ('main:', False, True, I('reader.png'),
_('Main Memory')),
- ('carda:0', False, True, I('sd.svg'),
+ ('carda:0', False, True, I('sd.png'),
_('Storage Card A')),
- ('cardb:0', False, True, I('sd.svg'),
+ ('cardb:0', False, True, I('sd.png'),
_('Storage Card B')),
]
@@ -488,7 +487,7 @@ class DeviceMenu(QMenu): # {{{
self.group.triggered.connect(self.change_default_action)
self.addSeparator()
- mitem = self.addAction(QIcon(I('eject.svg')), _('Eject device'))
+ mitem = self.addAction(QIcon(I('eject.png')), _('Eject device'))
mitem.setEnabled(False)
mitem.triggered.connect(lambda x : self.disconnect_mounted_device.emit())
self.disconnect_mounted_device_action = mitem
@@ -617,14 +616,8 @@ class DeviceMixin(object): # {{{
self.connect_to_folder_named(tweaks['auto_connect_to_folder'])
def set_default_thumbnail(self, height):
- r = QSvgRenderer(I('book.svg'))
- pixmap = QPixmap(height, height)
- pixmap.fill(QColor(255,255,255))
- p = QPainter(pixmap)
- r.render(p)
- p.end()
- self.default_thumbnail = (pixmap.width(), pixmap.height(),
- pixmap_to_data(pixmap))
+ img = I('book.png', data=True)
+ self.default_thumbnail = thumbnail(img, height, height)
def connect_to_folder_named(self, folder):
if os.path.exists(folder) and os.path.isdir(folder):
@@ -959,13 +952,12 @@ class DeviceMixin(object): # {{{
self.library_view.model().delete_books_by_id(remove)
def cover_to_thumbnail(self, data):
- p = QPixmap()
- p.loadFromData(data)
- if not p.isNull():
- ht = self.device_manager.device.THUMBNAIL_HEIGHT \
- if self.device_manager else DevicePlugin.THUMBNAIL_HEIGHT
- p = p.scaledToHeight(ht, Qt.SmoothTransformation)
- return (p.width(), p.height(), pixmap_to_data(p))
+ ht = self.device_manager.device.THUMBNAIL_HEIGHT \
+ if self.device_manager else DevicePlugin.THUMBNAIL_HEIGHT
+ try:
+ return thumbnail(data, ht, ht)
+ except:
+ pass
def email_news(self, id):
opts = email_config().parse()
diff --git a/src/calibre/gui2/device_drivers/configwidget.ui b/src/calibre/gui2/device_drivers/configwidget.ui
index 497ba43259..1e8ee75852 100644
--- a/src/calibre/gui2/device_drivers/configwidget.ui
+++ b/src/calibre/gui2/device_drivers/configwidget.ui
@@ -41,7 +41,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -65,7 +65,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
diff --git a/src/calibre/gui2/dialogs/add_from_isbn.ui b/src/calibre/gui2/dialogs/add_from_isbn.ui
index e4882f7d18..ef4a4ebb8f 100644
--- a/src/calibre/gui2/dialogs/add_from_isbn.ui
+++ b/src/calibre/gui2/dialogs/add_from_isbn.ui
@@ -15,7 +15,7 @@
- :/images/add_book.svg:/images/add_book.svg
+ :/images/add_book.png:/images/add_book.png
-
diff --git a/src/calibre/gui2/dialogs/book_info.ui b/src/calibre/gui2/dialogs/book_info.ui
index 39f9abf3c5..18c4f8a7c8 100644
--- a/src/calibre/gui2/dialogs/book_info.ui
+++ b/src/calibre/gui2/dialogs/book_info.ui
@@ -70,7 +70,7 @@
- :/images/previous.svg:/images/previous.svg
+ :/images/previous.png:/images/previous.png
@@ -81,7 +81,7 @@
- :/images/next.svg:/images/next.svg
+ :/images/next.png:/images/next.png
diff --git a/src/calibre/gui2/dialogs/catalog.py b/src/calibre/gui2/dialogs/catalog.py
index e1adbac0b3..f8e0f83746 100644
--- a/src/calibre/gui2/dialogs/catalog.py
+++ b/src/calibre/gui2/dialogs/catalog.py
@@ -52,7 +52,7 @@ class Catalog(QDialog, Ui_Dialog):
fromlist=[1])
pw = catalog_widget.PluginWidget()
pw.initialize(name)
- pw.ICON = I('forward.svg')
+ pw.ICON = I('forward.png')
self.widgets.append(pw)
[self.fmts.append([file_type.upper(), pw.sync_enabled,pw]) for file_type in plugin.file_types]
except ImportError:
@@ -83,7 +83,7 @@ class Catalog(QDialog, Ui_Dialog):
catalog_widget = __import__(name, fromlist=[1])
pw = catalog_widget.PluginWidget()
pw.initialize(name)
- pw.ICON = I('forward.svg')
+ pw.ICON = I('forward.png')
self.widgets.append(pw)
[self.fmts.append([file_type.upper(), pw.sync_enabled,pw]) for file_type in plugin.file_types]
except ImportError:
diff --git a/src/calibre/gui2/dialogs/choose_format.ui b/src/calibre/gui2/dialogs/choose_format.ui
index 50dd4b4fc1..639d8db401 100644
--- a/src/calibre/gui2/dialogs/choose_format.ui
+++ b/src/calibre/gui2/dialogs/choose_format.ui
@@ -13,7 +13,7 @@
Choose Format
- :/images/mimetypes/unknown.svg
+ :/images/mimetypes/unknown.png
-
diff --git a/src/calibre/gui2/dialogs/choose_library.ui b/src/calibre/gui2/dialogs/choose_library.ui
index ca2cfd5d96..6cf1b4386c 100644
--- a/src/calibre/gui2/dialogs/choose_library.ui
+++ b/src/calibre/gui2/dialogs/choose_library.ui
@@ -118,7 +118,7 @@
- :/images/document_open.svg:/images/document_open.svg
+ :/images/document_open.png:/images/document_open.png
diff --git a/src/calibre/gui2/dialogs/comicconf.ui b/src/calibre/gui2/dialogs/comicconf.ui
index 03911b2171..b5eab32547 100644
--- a/src/calibre/gui2/dialogs/comicconf.ui
+++ b/src/calibre/gui2/dialogs/comicconf.ui
@@ -15,7 +15,7 @@
- :/images/convert.svg:/images/convert.svg
+ :/images/convert.png:/images/convert.png
-
diff --git a/src/calibre/gui2/dialogs/config/__init__.py b/src/calibre/gui2/dialogs/config/__init__.py
index 091b98dc86..067a49de2e 100644
--- a/src/calibre/gui2/dialogs/config/__init__.py
+++ b/src/calibre/gui2/dialogs/config/__init__.py
@@ -64,7 +64,7 @@ class ConfigTabs(QTabWidget):
for plugin in input_format_plugins():
pw = config_widget_for_input_plugin(plugin)
if pw is not None:
- pw.ICON = I('forward.svg')
+ pw.ICON = I('forward.png')
self.widgets.append(widget_factory(pw))
for plugin in output_format_plugins():
@@ -73,7 +73,7 @@ class ConfigTabs(QTabWidget):
output_widget = __import__('calibre.gui2.convert.'+name,
fromlist=[1])
pw = output_widget.PluginWidget
- pw.ICON = I('forward.svg')
+ pw.ICON = I('forward.png')
self.widgets.append(widget_factory(pw))
except ImportError:
continue
@@ -95,7 +95,7 @@ class PluginModel(QAbstractItemModel):
def __init__(self, *args):
QAbstractItemModel.__init__(self, *args)
- self.icon = QVariant(QIcon(I('plugins.svg')))
+ self.icon = QVariant(QIcon(I('plugins.png')))
p = QIcon(self.icon).pixmap(32, 32, QIcon.Disabled, QIcon.On)
self.disabled_icon = QVariant(QIcon(p))
self._p = p
@@ -195,14 +195,14 @@ class PluginModel(QAbstractItemModel):
class CategoryModel(QStringListModel):
CATEGORIES = [
- ('general', _('General'), 'dialog_information.svg'),
- ('interface', _('Interface'), 'lookfeel.svg'),
- ('conversion', _('Conversion'), 'convert.svg'),
- ('email', _('Email\nDelivery'), 'mail.svg'),
- ('add/save', _('Add/Save'), 'save.svg'),
- ('advanced', _('Advanced'), 'view.svg'),
- ('server', _('Content\nServer'), 'network-server.svg'),
- ('plugins', _('Plugins'), 'plugins.svg'),
+ ('general', _('General'), 'dialog_information.png'),
+ ('interface', _('Interface'), 'lookfeel.png'),
+ ('conversion', _('Conversion'), 'convert.png'),
+ ('email', _('Email\nDelivery'), 'mail.png'),
+ ('add/save', _('Add/Save'), 'save.png'),
+ ('advanced', _('Advanced'), 'view.png'),
+ ('server', _('Content\nServer'), 'network-server.png'),
+ ('plugins', _('Plugins'), 'plugins.png'),
]
def __init__(self, *args):
diff --git a/src/calibre/gui2/dialogs/config/config.ui b/src/calibre/gui2/dialogs/config/config.ui
index 5a2bf805da..3dc30cbf36 100644
--- a/src/calibre/gui2/dialogs/config/config.ui
+++ b/src/calibre/gui2/dialogs/config/config.ui
@@ -16,7 +16,7 @@
- :/images/config.svg:/images/config.svg
+ :/images/config.png:/images/config.png
-
@@ -273,7 +273,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -297,7 +297,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
@@ -465,7 +465,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -492,7 +492,7 @@
- :/images/minus.svg:/images/minus.svg
+ :/images/minus.png:/images/minus.png
@@ -519,7 +519,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
@@ -546,7 +546,7 @@
- :/images/edit_input.svg:/images/edit_input.svg
+ :/images/edit_input.png:/images/edit_input.png
@@ -570,7 +570,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
@@ -699,7 +699,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
@@ -726,7 +726,7 @@
- :/images/minus.svg:/images/minus.svg
+ :/images/minus.png:/images/minus.png
@@ -1289,7 +1289,7 @@
- :/images/document_open.svg:/images/document_open.svg
+ :/images/document_open.png:/images/document_open.png
diff --git a/src/calibre/gui2/dialogs/config/device_debug.py b/src/calibre/gui2/dialogs/config/device_debug.py
index ae4a8e4f45..90927fe9b9 100644
--- a/src/calibre/gui2/dialogs/config/device_debug.py
+++ b/src/calibre/gui2/dialogs/config/device_debug.py
@@ -22,7 +22,7 @@ class DebugDevice(QDialog):
self.copy = QPushButton(_('Copy to &clipboard'))
self.copy.setDefault(True)
self.setWindowTitle(_('Debug device detection'))
- self.setWindowIcon(QIcon(I('debug.svg')))
+ self.setWindowIcon(QIcon(I('debug.png')))
self.copy.clicked.connect(self.copy_to_clipboard)
self.ok = QPushButton('&OK')
self.ok.setAutoDefault(False)
diff --git a/src/calibre/gui2/dialogs/config/toolbar.py b/src/calibre/gui2/dialogs/config/toolbar.py
index 5d5b0e1bfc..62e249d073 100644
--- a/src/calibre/gui2/dialogs/config/toolbar.py
+++ b/src/calibre/gui2/dialogs/config/toolbar.py
@@ -27,7 +27,7 @@ class BaseModel(QAbstractListModel):
def name_to_action(self, name, gui):
if name == 'Donate':
- return FakeAction(name, 'donate.svg',
+ return FakeAction(name, 'donate.png',
dont_add_to=frozenset(['context-menu',
'context-menu-device']))
if name == 'Location Manager':
@@ -53,7 +53,7 @@ class BaseModel(QAbstractListModel):
if role == Qt.DecorationRole:
ic = action[1]
if ic is None:
- ic = 'blank.svg'
+ ic = 'blank.png'
return QVariant(QIcon(I(ic)))
if role == Qt.ToolTipRole and action[2] is not None:
return QVariant(action[2])
diff --git a/src/calibre/gui2/dialogs/config/toolbar.ui b/src/calibre/gui2/dialogs/config/toolbar.ui
index 091f21c4ae..7ae98371ff 100644
--- a/src/calibre/gui2/dialogs/config/toolbar.ui
+++ b/src/calibre/gui2/dialogs/config/toolbar.ui
@@ -96,7 +96,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -129,7 +129,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
@@ -159,7 +159,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
@@ -195,7 +195,7 @@
- :/images/back.svg:/images/back.svg
+ :/images/back.png:/images/back.png
diff --git a/src/calibre/gui2/dialogs/confirm_delete.py b/src/calibre/gui2/dialogs/confirm_delete.py
index 1aabcb7b9e..4e0a259824 100644
--- a/src/calibre/gui2/dialogs/confirm_delete.py
+++ b/src/calibre/gui2/dialogs/confirm_delete.py
@@ -25,7 +25,7 @@ class Dialog(QDialog, Ui_Dialog):
def toggle(self, *args):
dynamic[_config_name(self.name)] = self.again.isChecked()
-def confirm(msg, name, parent=None, pixmap='dialog_warning.svg'):
+def confirm(msg, name, parent=None, pixmap='dialog_warning.png'):
if not dynamic.get(_config_name(name), True):
return True
d = Dialog(msg, name, parent)
diff --git a/src/calibre/gui2/dialogs/confirm_delete.ui b/src/calibre/gui2/dialogs/confirm_delete.ui
index eee2c9fdfd..c45b180483 100644
--- a/src/calibre/gui2/dialogs/confirm_delete.ui
+++ b/src/calibre/gui2/dialogs/confirm_delete.ui
@@ -14,7 +14,7 @@
- :/images/dialog_warning.svg:/images/dialog_warning.svg
+ :/images/dialog_warning.png:/images/dialog_warning.png
-
@@ -22,7 +22,7 @@
-
- :/images/dialog_warning.svg
+ :/images/dialog_warning.png
diff --git a/src/calibre/gui2/dialogs/conversion_error.ui b/src/calibre/gui2/dialogs/conversion_error.ui
index 6521cb8c59..c51c868d1b 100644
--- a/src/calibre/gui2/dialogs/conversion_error.ui
+++ b/src/calibre/gui2/dialogs/conversion_error.ui
@@ -23,7 +23,7 @@
- :/images/dialog_error.svg
+ :/images/dialog_error.png
diff --git a/src/calibre/gui2/dialogs/fetch_metadata.ui b/src/calibre/gui2/dialogs/fetch_metadata.ui
index dab12a1917..03a362096c 100644
--- a/src/calibre/gui2/dialogs/fetch_metadata.ui
+++ b/src/calibre/gui2/dialogs/fetch_metadata.ui
@@ -18,7 +18,7 @@
- :/images/metadata.svg:/images/metadata.svg
+ :/images/metadata.png:/images/metadata.png
-
diff --git a/src/calibre/gui2/dialogs/job_view.ui b/src/calibre/gui2/dialogs/job_view.ui
index a66fdd482d..8b54c23573 100644
--- a/src/calibre/gui2/dialogs/job_view.ui
+++ b/src/calibre/gui2/dialogs/job_view.ui
@@ -14,7 +14,7 @@
- :/images/view.svg:/images/view.svg
+ :/images/view.png:/images/view.png
-
diff --git a/src/calibre/gui2/dialogs/jobs.ui b/src/calibre/gui2/dialogs/jobs.ui
index 0fc946f996..5b311bf056 100644
--- a/src/calibre/gui2/dialogs/jobs.ui
+++ b/src/calibre/gui2/dialogs/jobs.ui
@@ -15,7 +15,7 @@
- :/images/jobs.svg:/images/jobs.svg
+ :/images/jobs.png:/images/jobs.png
-
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index 4287ca5c79..0eeee61c7e 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -15,7 +15,7 @@
- :/images/edit_input.svg:/images/edit_input.svg
+ :/images/edit_input.png:/images/edit_input.png
-
@@ -177,7 +177,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py
index 3e07422967..860785c49e 100644
--- a/src/calibre/gui2/dialogs/metadata_single.py
+++ b/src/calibre/gui2/dialogs/metadata_single.py
@@ -102,7 +102,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
view_format = pyqtSignal(object)
def do_reset_cover(self, *args):
- pix = QPixmap(I('default_cover.svg'))
+ pix = QPixmap(I('default_cover.png'))
self.cover.setPixmap(pix)
self.cover_changed = True
self.cover_data = None
@@ -432,7 +432,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
if cover:
pm.loadFromData(cover)
if pm.isNull():
- pm = QPixmap(I('default_cover.svg'))
+ pm = QPixmap(I('default_cover.png'))
else:
self.cover_data = cover
self.cover.setPixmap(pm)
diff --git a/src/calibre/gui2/dialogs/metadata_single.ui b/src/calibre/gui2/dialogs/metadata_single.ui
index a943425a89..4ea68f539d 100644
--- a/src/calibre/gui2/dialogs/metadata_single.ui
+++ b/src/calibre/gui2/dialogs/metadata_single.ui
@@ -21,7 +21,7 @@
- :/images/edit_input.svg:/images/edit_input.svg
+ :/images/edit_input.png:/images/edit_input.png
true
@@ -110,7 +110,7 @@
- :/images/swap.svg:/images/swap.svg
+ :/images/swap.png:/images/swap.png
@@ -165,7 +165,7 @@
- :/images/auto_author_sort.svg:/images/auto_author_sort.svg
+ :/images/auto_author_sort.png:/images/auto_author_sort.png
@@ -248,7 +248,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
@@ -301,7 +301,7 @@
- :/images/trash.svg:/images/trash.svg
+ :/images/trash.png:/images/trash.png
@@ -478,7 +478,7 @@
- :/images/add_book.svg:/images/add_book.svg
+ :/images/add_book.png:/images/add_book.png
@@ -498,7 +498,7 @@
- :/images/trash.svg:/images/trash.svg
+ :/images/trash.png:/images/trash.png
@@ -518,7 +518,7 @@
- :/images/book.svg:/images/book.svg
+ :/images/book.png:/images/book.png
@@ -538,7 +538,7 @@
- :/images/edit_input.svg:/images/edit_input.svg
+ :/images/edit_input.png:/images/edit_input.png
@@ -619,7 +619,7 @@
- :/images/document_open.svg:/images/document_open.svg
+ :/images/document_open.png:/images/document_open.png
@@ -633,7 +633,7 @@
- :/images/trash.svg:/images/trash.svg
+ :/images/trash.png:/images/trash.png
diff --git a/src/calibre/gui2/dialogs/password.ui b/src/calibre/gui2/dialogs/password.ui
index 811e042153..f5ac6600e7 100644
--- a/src/calibre/gui2/dialogs/password.ui
+++ b/src/calibre/gui2/dialogs/password.ui
@@ -15,7 +15,7 @@
- :/images/mimetypes/unknown.svg:/images/mimetypes/unknown.svg
+ :/images/mimetypes/unknown.png:/images/mimetypes/unknown.png
-
diff --git a/src/calibre/gui2/dialogs/progress.ui b/src/calibre/gui2/dialogs/progress.ui
index 451b9dfb59..4fa859eaba 100644
--- a/src/calibre/gui2/dialogs/progress.ui
+++ b/src/calibre/gui2/dialogs/progress.ui
@@ -14,7 +14,7 @@
- :/images/jobs.svg:/images/jobs.svg
+ :/images/jobs.png:/images/jobs.png
-
diff --git a/src/calibre/gui2/dialogs/saved_search_editor.ui b/src/calibre/gui2/dialogs/saved_search_editor.ui
index 6d98d25667..3ba37bdf10 100644
--- a/src/calibre/gui2/dialogs/saved_search_editor.ui
+++ b/src/calibre/gui2/dialogs/saved_search_editor.ui
@@ -15,7 +15,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
-
@@ -90,7 +90,7 @@
- :/images/minus.svg:/images/minus.svg
+ :/images/minus.png:/images/minus.png
@@ -130,7 +130,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py
index 3dbf7ffffd..fd8184933f 100644
--- a/src/calibre/gui2/dialogs/scheduler.py
+++ b/src/calibre/gui2/dialogs/scheduler.py
@@ -216,11 +216,11 @@ class Scheduler(QObject):
self.download_queue = set([])
self.news_menu = QMenu()
- self.news_icon = QIcon(I('news.svg'))
- self.scheduler_action = QAction(QIcon(I('scheduler.svg')), _('Schedule news download'), self)
+ self.news_icon = QIcon(I('news.png'))
+ self.scheduler_action = QAction(QIcon(I('scheduler.png')), _('Schedule news download'), self)
self.news_menu.addAction(self.scheduler_action)
self.connect(self.scheduler_action, SIGNAL('triggered(bool)'), self.show_dialog)
- self.cac = QAction(QIcon(I('user_profile.svg')), _('Add a custom news source'), self)
+ self.cac = QAction(QIcon(I('user_profile.png')), _('Add a custom news source'), self)
self.connect(self.cac, SIGNAL('triggered(bool)'), self.customize_feeds)
self.news_menu.addAction(self.cac)
self.news_menu.addSeparator()
diff --git a/src/calibre/gui2/dialogs/scheduler.ui b/src/calibre/gui2/dialogs/scheduler.ui
index bcfa82e56a..8e6ab37162 100644
--- a/src/calibre/gui2/dialogs/scheduler.ui
+++ b/src/calibre/gui2/dialogs/scheduler.ui
@@ -15,7 +15,7 @@
- :/images/scheduler.svg:/images/scheduler.svg
+ :/images/scheduler.png:/images/scheduler.png
-
diff --git a/src/calibre/gui2/dialogs/search.ui b/src/calibre/gui2/dialogs/search.ui
index dc66aae6a9..9e8817b1f4 100644
--- a/src/calibre/gui2/dialogs/search.ui
+++ b/src/calibre/gui2/dialogs/search.ui
@@ -14,7 +14,7 @@
- :/images/search.svg:/images/search.svg
+ :/images/search.png:/images/search.png
-
diff --git a/src/calibre/gui2/dialogs/tag_categories.py b/src/calibre/gui2/dialogs/tag_categories.py
index e3f1c17f3c..679a5c9da9 100644
--- a/src/calibre/gui2/dialogs/tag_categories.py
+++ b/src/calibre/gui2/dialogs/tag_categories.py
@@ -36,11 +36,11 @@ class TagCategories(QDialog, Ui_TagCategories):
self.db = db
self.applied_items = []
- cc_icon = QIcon(I('column.svg'))
+ cc_icon = QIcon(I('column.png'))
self.category_labels = self.category_labels_orig[:]
- category_icons = [None, QIcon(I('user_profile.svg')), QIcon(I('series.svg')),
- QIcon(I('publisher.png')), QIcon(I('tags.svg'))]
+ category_icons = [None, QIcon(I('user_profile.png')), QIcon(I('series.png')),
+ QIcon(I('publisher.png')), QIcon(I('tags.png'))]
category_values = [None,
lambda: [n.replace('|', ',') for (id, n) in self.db.all_authors()],
lambda: [n for (id, n) in self.db.all_series()],
diff --git a/src/calibre/gui2/dialogs/tag_categories.ui b/src/calibre/gui2/dialogs/tag_categories.ui
index d280d5061a..a9319cc5f5 100644
--- a/src/calibre/gui2/dialogs/tag_categories.ui
+++ b/src/calibre/gui2/dialogs/tag_categories.ui
@@ -15,7 +15,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
-
@@ -91,7 +91,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
@@ -176,7 +176,7 @@
- :/images/list_remove.svg:/images/list_remove.svg
+ :/images/list_remove.png:/images/list_remove.png
@@ -267,7 +267,7 @@
- :/images/minus.svg:/images/minus.svg
+ :/images/minus.png:/images/minus.png
@@ -307,7 +307,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
diff --git a/src/calibre/gui2/dialogs/tag_editor.ui b/src/calibre/gui2/dialogs/tag_editor.ui
index 1db1abb1d3..c418b3ac87 100644
--- a/src/calibre/gui2/dialogs/tag_editor.ui
+++ b/src/calibre/gui2/dialogs/tag_editor.ui
@@ -15,7 +15,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
-
@@ -59,7 +59,7 @@
- :/images/trash.svg:/images/trash.svg
+ :/images/trash.png:/images/trash.png
@@ -105,7 +105,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
@@ -190,7 +190,7 @@
- :/images/list_remove.svg:/images/list_remove.svg
+ :/images/list_remove.png:/images/list_remove.png
@@ -251,7 +251,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
diff --git a/src/calibre/gui2/dialogs/tag_list_editor.ui b/src/calibre/gui2/dialogs/tag_list_editor.ui
index 39076aa1f6..9c8231dd91 100644
--- a/src/calibre/gui2/dialogs/tag_list_editor.ui
+++ b/src/calibre/gui2/dialogs/tag_list_editor.ui
@@ -15,7 +15,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
-
@@ -61,7 +61,7 @@
- :/images/trash.svg:/images/trash.svg
+ :/images/trash.png:/images/trash.png
@@ -81,7 +81,7 @@
- :/images/edit_input.svg:/images/edit_input.svg
+ :/images/edit_input.png:/images/edit_input.png
diff --git a/src/calibre/gui2/dialogs/test_email.ui b/src/calibre/gui2/dialogs/test_email.ui
index 241468793f..bdfc53681f 100644
--- a/src/calibre/gui2/dialogs/test_email.ui
+++ b/src/calibre/gui2/dialogs/test_email.ui
@@ -15,7 +15,7 @@
- :/images/config.svg:/images/config.svg
+ :/images/config.png:/images/config.png
-
diff --git a/src/calibre/gui2/dialogs/user_profiles.ui b/src/calibre/gui2/dialogs/user_profiles.ui
index 48f92a108c..4eca4045b1 100644
--- a/src/calibre/gui2/dialogs/user_profiles.ui
+++ b/src/calibre/gui2/dialogs/user_profiles.ui
@@ -15,7 +15,7 @@
- :/images/user_profile.svg:/images/user_profile.svg
+ :/images/user_profile.png:/images/user_profile.png
-
@@ -76,7 +76,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
@@ -87,7 +87,7 @@
- :/images/list_remove.svg:/images/list_remove.svg
+ :/images/list_remove.png:/images/list_remove.png
@@ -98,7 +98,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
@@ -109,7 +109,7 @@
- :/images/news.svg:/images/news.svg
+ :/images/news.png:/images/news.png
@@ -120,7 +120,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
@@ -285,7 +285,7 @@ p, li { white-space: pre-wrap; }
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -299,7 +299,7 @@ p, li { white-space: pre-wrap; }
- :/images/list_remove.svg:/images/list_remove.svg
+ :/images/list_remove.png:/images/list_remove.png
@@ -310,7 +310,7 @@ p, li { white-space: pre-wrap; }
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
@@ -361,7 +361,7 @@ p, li { white-space: pre-wrap; }
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py
index c983e111d4..51b17426b8 100644
--- a/src/calibre/gui2/init.py
+++ b/src/calibre/gui2/init.py
@@ -95,7 +95,7 @@ class LibraryWidget(Splitter): # {{{
idx = 0 if orientation == Qt.Vertical else 1
size = 300 if orientation == Qt.Vertical else 550
Splitter.__init__(self, 'cover_browser_splitter', _('Cover Browser'),
- I('cover_flow.svg'),
+ I('cover_flow.png'),
orientation=orientation, parent=parent,
connect_button=not config['separate_cover_flow'],
side_index=idx, initial_side_size=size, initial_show=False,
@@ -113,7 +113,7 @@ class Stack(QStackedWidget): # {{{
parent.cb_splitter = LibraryWidget(parent)
self.tb_widget = TagBrowserWidget(parent)
parent.tb_splitter = Splitter('tag_browser_splitter',
- _('Tag Browser'), I('tags.svg'),
+ _('Tag Browser'), I('tags.png'),
parent=parent, side_index=0, initial_side_size=200,
shortcut=_('Shift+Alt+T'))
parent.tb_splitter.addWidget(self.tb_widget)
@@ -207,7 +207,7 @@ class LayoutMixin(object): # {{{
self.book_details = BookDetails(False, self)
self.stack = Stack(self)
self.bd_splitter = Splitter('book_details_splitter',
- _('Book Details'), I('book.svg'),
+ _('Book Details'), I('book.png'),
orientation=Qt.Vertical, parent=self, side_index=1,
shortcut=_('Alt+D'))
self.bd_splitter.addWidget(self.stack)
@@ -217,7 +217,7 @@ class LayoutMixin(object): # {{{
# }}}
else: # wide {{{
self.bd_splitter = Splitter('book_details_splitter',
- _('Book Details'), I('book.svg'), initial_side_size=200,
+ _('Book Details'), I('book.png'), initial_side_size=200,
orientation=Qt.Horizontal, parent=self, side_index=1,
shortcut=_('Shift+Alt+D'))
self.stack = Stack(self)
diff --git a/src/calibre/gui2/jobs.py b/src/calibre/gui2/jobs.py
index fd23234c8a..8a63b6fac5 100644
--- a/src/calibre/gui2/jobs.py
+++ b/src/calibre/gui2/jobs.py
@@ -33,10 +33,10 @@ class JobManager(QAbstractTableModel):
def __init__(self):
QAbstractTableModel.__init__(self)
- self.wait_icon = QVariant(QIcon(I('jobs.svg')))
- self.running_icon = QVariant(QIcon(I('exec.svg')))
- self.error_icon = QVariant(QIcon(I('dialog_error.svg')))
- self.done_icon = QVariant(QIcon(I('ok.svg')))
+ self.wait_icon = QVariant(QIcon(I('jobs.png')))
+ self.running_icon = QVariant(QIcon(I('exec.png')))
+ self.error_icon = QVariant(QIcon(I('dialog_error.png')))
+ self.done_icon = QVariant(QIcon(I('ok.png')))
self.jobs = []
self.add_job = Dispatcher(self._add_job)
diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py
index 4eccf597c2..68f093da95 100644
--- a/src/calibre/gui2/layout.py
+++ b/src/calibre/gui2/layout.py
@@ -50,7 +50,7 @@ class LocationManager(QObject): # {{{
a = m.addAction(icon, tooltip)
a.triggered.connect(receiver)
self._mem.append(a)
- a = m.addAction(QIcon(I('eject.svg')), _('Eject this device'))
+ a = m.addAction(QIcon(I('eject.png')), _('Eject this device'))
a.triggered.connect(self._eject_requested)
ac.setMenu(m)
self._mem.append(a)
@@ -61,11 +61,11 @@ class LocationManager(QObject): # {{{
ac('library', _('Library'), 'lt.png',
_('Show books in calibre library'))
- ac('main', _('Reader'), 'reader.svg',
+ ac('main', _('Reader'), 'reader.png',
_('Show books in the main memory of the device'))
- ac('carda', _('Card A'), 'sd.svg',
+ ac('carda', _('Card A'), 'sd.png',
_('Show books in storage card A'))
- ac('cardb', _('Card B'), 'sd.svg',
+ ac('cardb', _('Card B'), 'sd.png',
_('Show books in storage card B'))
def _location_selected(self, location, *args):
@@ -80,7 +80,7 @@ class LocationManager(QObject): # {{{
def update_devices(self, cp=(None, None), fs=[-1, -1, -1], icon=None):
if icon is None:
- icon = I('reader.svg')
+ icon = I('reader.png')
self.location_main.setIcon(QIcon(icon))
had_device = self.has_device
if cp is None:
@@ -148,7 +148,7 @@ class SearchBar(QWidget): # {{{
x.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
parent.advanced_search_button = x = QToolButton(self)
- x.setIcon(QIcon(I('search.svg')))
+ x.setIcon(QIcon(I('search.png')))
l.addWidget(x)
x.setToolTip(_("Advanced search"))
@@ -163,7 +163,7 @@ class SearchBar(QWidget): # {{{
l.addWidget(x)
x = parent.clear_button = QToolButton(self)
- x.setIcon(QIcon(I('clear_left.svg')))
+ x.setIcon(QIcon(I('clear_left.png')))
x.setObjectName("clear_button")
l.addWidget(x)
x.setToolTip(_("Reset Quick Search"))
@@ -175,19 +175,19 @@ class SearchBar(QWidget): # {{{
l.addWidget(x)
x = parent.copy_search_button = QToolButton(self)
- x.setIcon(QIcon(I("search_copy_saved.svg")))
+ x.setIcon(QIcon(I("search_copy_saved.png")))
x.setObjectName("copy_search_button")
l.addWidget(x)
x.setToolTip(_("Copy current search text (instead of search name)"))
x = parent.save_search_button = QToolButton(self)
- x.setIcon(QIcon(I("search_add_saved.svg")))
+ x.setIcon(QIcon(I("search_add_saved.png")))
x.setObjectName("save_search_button")
l.addWidget(x)
x.setToolTip(_("Save current search under the name shown in the box"))
x = parent.delete_search_button = QToolButton(self)
- x.setIcon(QIcon(I("search_delete_saved.svg")))
+ x.setIcon(QIcon(I("search_delete_saved.png")))
x.setObjectName("delete_search_button")
l.addWidget(x)
x.setToolTip(_("Delete current saved search"))
diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py
index d98d9a240b..bf233b1175 100644
--- a/src/calibre/gui2/library/delegates.py
+++ b/src/calibre/gui2/library/delegates.py
@@ -282,7 +282,7 @@ class CcBoolDelegate(QStyledItemDelegate): # {{{
def createEditor(self, parent, option, index):
editor = QComboBox(parent)
items = [_('Y'), _('N'), ' ']
- icons = [I('ok.svg'), I('list_remove.svg'), I('blank.svg')]
+ icons = [I('ok.png'), I('list_remove.png'), I('blank.png')]
if tweaks['bool_custom_columns_are_tristate'] == 'no':
items = items[:-1]
icons = icons[:-1]
diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py
index e442007c9a..ae9487f801 100644
--- a/src/calibre/gui2/library/models.py
+++ b/src/calibre/gui2/library/models.py
@@ -49,7 +49,7 @@ _default_image = None
def default_image():
global _default_image
if _default_image is None:
- _default_image = QImage(I('default_cover.svg'))
+ _default_image = QImage(I('default_cover.png'))
return _default_image
class BooksModel(QAbstractTableModel): # {{{
@@ -89,9 +89,9 @@ class BooksModel(QAbstractTableModel): # {{{
self.alignment_map = {}
self.buffer_size = buffer
self.cover_cache = None
- self.bool_yes_icon = QIcon(I('ok.svg'))
- self.bool_no_icon = QIcon(I('list_remove.svg'))
- self.bool_blank_icon = QIcon(I('blank.svg'))
+ self.bool_yes_icon = QIcon(I('ok.png'))
+ self.bool_no_icon = QIcon(I('list_remove.png'))
+ self.bool_blank_icon = QIcon(I('blank.png'))
self.device_connected = False
self.read_config()
diff --git a/src/calibre/gui2/lrf_renderer/config.ui b/src/calibre/gui2/lrf_renderer/config.ui
index 448ee2f9a0..9145b4b29f 100644
--- a/src/calibre/gui2/lrf_renderer/config.ui
+++ b/src/calibre/gui2/lrf_renderer/config.ui
@@ -15,7 +15,7 @@
- :/images/config.svg:/images/config.svg
+ :/images/config.png:/images/config.png
-
diff --git a/src/calibre/gui2/lrf_renderer/main.py b/src/calibre/gui2/lrf_renderer/main.py
index 87ec55e114..8ddda175fa 100644
--- a/src/calibre/gui2/lrf_renderer/main.py
+++ b/src/calibre/gui2/lrf_renderer/main.py
@@ -310,7 +310,7 @@ def main(args=sys.argv, logger=None):
pid = os.fork() if (islinux or isfreebsd) else -1
if pid <= 0:
app = Application(args)
- app.setWindowIcon(QIcon(I('viewer.svg')))
+ app.setWindowIcon(QIcon(I('viewer.png')))
QCoreApplication.setOrganizationName(ORG_NAME)
QCoreApplication.setApplicationName(APP_UID)
opts = normalize_settings(parser, opts)
diff --git a/src/calibre/gui2/lrf_renderer/main.ui b/src/calibre/gui2/lrf_renderer/main.ui
index 2eeb400cc4..0e7b54edb8 100644
--- a/src/calibre/gui2/lrf_renderer/main.ui
+++ b/src/calibre/gui2/lrf_renderer/main.ui
@@ -20,7 +20,7 @@
- :/images/viewer.svg:/images/viewer.svg
+ :/images/viewer.png:/images/viewer.png
@@ -174,7 +174,7 @@
- :/images/next.svg:/images/next.svg
+ :/images/next.png:/images/next.png
Next Page
@@ -183,7 +183,7 @@
- :/images/previous.svg:/images/previous.svg
+ :/images/previous.png:/images/previous.png
Previous Page
@@ -192,7 +192,7 @@
- :/images/back.svg:/images/back.svg
+ :/images/back.png:/images/back.png
Back
@@ -201,7 +201,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
Forward
@@ -215,7 +215,7 @@
- :/images/document_open.svg:/images/document_open.svg
+ :/images/document_open.png:/images/document_open.png
Open ebook
@@ -224,7 +224,7 @@
- :/images/config.svg:/images/config.svg
+ :/images/config.png:/images/config.png
Configure
diff --git a/src/calibre/gui2/main_window.py b/src/calibre/gui2/main_window.py
index 2779a18733..a2221acd3a 100644
--- a/src/calibre/gui2/main_window.py
+++ b/src/calibre/gui2/main_window.py
@@ -58,8 +58,8 @@ class MainWindow(QMainWindow):
@classmethod
def get_menubar_actions(cls):
- preferences_action = QAction(QIcon(I('config.svg')), _('&Preferences'), None)
- quit_action = QAction(QIcon(I('window-close.svg')), _('&Quit'), None)
+ preferences_action = QAction(QIcon(I('config.png')), _('&Preferences'), None)
+ quit_action = QAction(QIcon(I('window-close.png')), _('&Quit'), None)
preferences_action.setMenuRole(QAction.PreferencesRole)
quit_action.setMenuRole(QAction.QuitRole)
return preferences_action, quit_action
diff --git a/src/calibre/gui2/preferences/__init__.py b/src/calibre/gui2/preferences/__init__.py
index 5d46ee2eb9..fd26344a2e 100644
--- a/src/calibre/gui2/preferences/__init__.py
+++ b/src/calibre/gui2/preferences/__init__.py
@@ -10,6 +10,9 @@ from PyQt4.Qt import QWidget, pyqtSignal, QCheckBox, QAbstractSpinBox, \
from calibre.customize.ui import preferences_plugins
+class AbortCommit(Exception):
+ pass
+
class ConfigWidgetInterface(object):
changed_signal = None
@@ -24,7 +27,13 @@ class ConfigWidgetInterface(object):
pass
def commit(self):
- pass
+ '''
+ Save any changed settings. Return True if the changes require a
+ restart, False otherwise. Raise an :class:`AbortCommit` exception
+ to indicate that an error occurred. You are responsible for giving the
+ suer feedback about what the error is and how to correct it.
+ '''
+ return False
class Setting(object):
@@ -184,8 +193,17 @@ def get_plugin(category, name):
def test_widget(category, name, gui=None): # {{{
from PyQt4.Qt import QDialog, QVBoxLayout, QDialogButtonBox
+ class Dialog(QDialog):
+ def set_widget(self, w): self.w = w
+ def accept(self):
+ try:
+ self.w.commit()
+ except AbortCommit:
+ return
+ QDialog.accept(self)
+
pl = get_plugin(category, name)
- d = QDialog()
+ d = Dialog()
d.resize(750, 550)
d.setWindowTitle(category + " - " + name)
bb = QDialogButtonBox(d)
@@ -193,6 +211,7 @@ def test_widget(category, name, gui=None): # {{{
bb.accepted.connect(d.accept)
bb.rejected.connect(d.reject)
w = pl.create_widget(d)
+ d.set_widget(w)
bb.button(bb.RestoreDefaults).clicked.connect(w.restore_defaults)
bb.button(bb.Apply).setEnabled(False)
bb.button(bb.Apply).clicked.connect(d.accept)
diff --git a/src/calibre/gui2/preferences/adding.py b/src/calibre/gui2/preferences/adding.py
new file mode 100644
index 0000000000..7a27ed8f2d
--- /dev/null
+++ b/src/calibre/gui2/preferences/adding.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
+
+__license__ = 'GPL v3'
+__copyright__ = '2010, Kovid Goyal '
+__docformat__ = 'restructuredtext en'
+
+
+
+from calibre.gui2.preferences import ConfigWidgetBase, test_widget
+from calibre.gui2.preferences.adding_ui import Ui_Form
+from calibre.utils.config import prefs
+from calibre.gui2.widgets import FilenamePattern
+
+class ConfigWidget(ConfigWidgetBase, Ui_Form):
+
+ def genesis(self, gui):
+ self.gui = gui
+
+ r = self.register
+
+ r('read_file_metadata', prefs)
+ r('swap_author_names', prefs)
+ r('add_formats_to_existing', prefs)
+
+ self.filename_pattern = FilenamePattern(self)
+ self.metadata_box.layout().insertWidget(0, self.filename_pattern)
+ self.filename_pattern.changed_signal.connect(self.changed_signal.emit)
+
+
+ def initialize(self):
+ ConfigWidgetBase.initialize(self)
+ self.filename_pattern.blockSignals(True)
+ self.filename_pattern.initialize()
+ self.filename_pattern.blockSignals(False)
+
+ def restore_defaults(self):
+ ConfigWidgetBase.restore_defaults(self)
+ self.filename_pattern.initialize(defaults=True)
+
+ def commit(self):
+ pattern = self.filename_pattern.commit()
+ prefs['filename_pattern'] = pattern
+ return ConfigWidgetBase.commit(self)
+
+if __name__ == '__main__':
+ from PyQt4.Qt import QApplication
+ app = QApplication([])
+ test_widget('Import/Export', 'Adding')
+
diff --git a/src/calibre/gui2/preferences/adding.ui b/src/calibre/gui2/preferences/adding.ui
new file mode 100644
index 0000000000..062c45e1ad
--- /dev/null
+++ b/src/calibre/gui2/preferences/adding.ui
@@ -0,0 +1,83 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 1010
+ 339
+
+
+
+ Form
+
+
+
-
+
+
+ Here you can control how calibre will read metadata from the files you add to it. calibre can either read metadata from the contents of the file, or from the filename.
+
+
+ true
+
+
+
+ -
+
+
+ Read metadata from &file contents rather than file name
+
+
+
+ -
+
+
+ If an existing book with a similar title and author is found that does not have the format being added, the format is added
+to the existing book, instead of creating a new entry. If the existing book already has the format, then it is silently ignored.
+
+Title match ignores leading indefinite articles ("the", "a", "an"), punctuation, case, etc. Author match is exact.
+
+
+ If books with similar titles and authors found, &merge the new files automatically
+
+
+
+ -
+
+
+ &Configure metadata from file name
+
+
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 363
+
+
+
+
+
+
+
+ -
+
+
+ Swap the firstname and lastname of the author. This affects only metadata read from file names.
+
+
+ &Swap author firstname and lastname
+
+
+
+
+
+
+
+
diff --git a/src/calibre/gui2/preferences/behavior.ui b/src/calibre/gui2/preferences/behavior.ui
index e751a9b4f6..8332212235 100644
--- a/src/calibre/gui2/preferences/behavior.ui
+++ b/src/calibre/gui2/preferences/behavior.ui
@@ -214,7 +214,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -238,7 +238,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
diff --git a/src/calibre/gui2/preferences/columns.ui b/src/calibre/gui2/preferences/columns.ui
index 58d54e48f5..b5dc9b8c90 100644
--- a/src/calibre/gui2/preferences/columns.ui
+++ b/src/calibre/gui2/preferences/columns.ui
@@ -43,7 +43,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -70,7 +70,7 @@
- :/images/minus.svg:/images/minus.svg
+ :/images/minus.png:/images/minus.png
@@ -97,7 +97,7 @@
- :/images/plus.svg:/images/plus.svg
+ :/images/plus.png:/images/plus.png
@@ -124,7 +124,7 @@
- :/images/edit_input.svg:/images/edit_input.svg
+ :/images/edit_input.png:/images/edit_input.png
@@ -148,7 +148,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
diff --git a/src/calibre/gui2/preferences/conversion.py b/src/calibre/gui2/preferences/conversion.py
new file mode 100644
index 0000000000..2950f58c02
--- /dev/null
+++ b/src/calibre/gui2/preferences/conversion.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
+
+__license__ = 'GPL v3'
+__copyright__ = '2010, Kovid Goyal '
+__docformat__ = 'restructuredtext en'
+
+from PyQt4.Qt import QIcon, Qt, QStringListModel, QVariant
+
+from calibre.gui2.preferences import ConfigWidgetBase, test_widget, AbortCommit
+from calibre.ebooks.conversion.plumber import Plumber
+from calibre.utils.logging import Log
+from calibre.gui2.preferences.conversion_ui import Ui_Form
+from calibre.gui2.convert.look_and_feel import LookAndFeelWidget
+from calibre.gui2.convert.page_setup import PageSetupWidget
+from calibre.gui2.convert.structure_detection import StructureDetectionWidget
+from calibre.gui2.convert.toc import TOCWidget
+from calibre.customize.ui import input_format_plugins, output_format_plugins
+from calibre.gui2.convert import config_widget_for_input_plugin
+
+class Model(QStringListModel):
+
+ def __init__(self, widgets):
+ QStringListModel.__init__(self)
+ self.widgets = widgets
+ self.setStringList([w.TITLE for w in widgets])
+
+ def data(self, index, role):
+ if role == Qt.DecorationRole:
+ w = self.widgets[index.row()]
+ if w.ICON:
+ return QVariant(QIcon(w.ICON))
+ return QStringListModel.data(self, index, role)
+
+class Base(ConfigWidgetBase, Ui_Form):
+
+ def genesis(self, gui):
+ log = Log()
+ log.outputs = []
+
+ self.plumber = Plumber('dummy.epub', 'dummy.epub', log, dummy=True,
+ merge_plugin_recs=False)
+
+ def widget_factory(cls):
+ return cls(self, self.plumber.get_option_by_name,
+ self.plumber.get_option_help, None, None)
+
+ self.load_conversion_widgets()
+ widgets = list(map(widget_factory, self.conversion_widgets))
+ self.model = Model(widgets)
+ self.list.setModel(self.model)
+
+ for w in widgets:
+ w.changed_signal.connect(self.changed_signal)
+ self.stack.addWidget(w)
+
+ self.list.currentChanged = self.category_current_changed
+ self.list.setCurrentIndex(self.model.index(0))
+
+ def initialize(self):
+ ConfigWidgetBase.initialize(self)
+
+ def restore_defaults(self):
+ ConfigWidgetBase.restore_defaults(self)
+ self.stack.currentWidget().restore_defaults(self.plumber.get_option_by_name)
+ self.changed_signal.emit()
+
+ def commit(self):
+ for widget in self.model.widgets:
+ if not widget.pre_commit_check():
+ raise AbortCommit('abort')
+ widget.commit(save_defaults=True)
+ return ConfigWidgetBase.commit(self)
+
+ def category_current_changed(self, n, p):
+ self.stack.setCurrentIndex(n.row())
+
+class CommonOptions(Base):
+
+ def load_conversion_widgets(self):
+ self.conversion_widgets = [LookAndFeelWidget, PageSetupWidget,
+ StructureDetectionWidget, TOCWidget]
+
+class InputOptions(Base):
+
+ def load_conversion_widgets(self):
+ self.conversion_widgets = []
+ for plugin in input_format_plugins():
+ pw = config_widget_for_input_plugin(plugin)
+ if pw is not None:
+ self.conversion_widgets.append(pw)
+
+class OutputOptions(Base):
+
+ def load_conversion_widgets(self):
+ self.conversion_widgets = []
+ for plugin in output_format_plugins():
+ name = plugin.name.lower().replace(' ', '_')
+ try:
+ output_widget = __import__('calibre.gui2.convert.'+name,
+ fromlist=[1])
+ pw = output_widget.PluginWidget
+ self.conversion_widgets.append(pw)
+ except ImportError:
+ continue
+
+if __name__ == '__main__':
+ from PyQt4.Qt import QApplication
+ app = QApplication([])
+ #test_widget('Conversion', 'Input Options')
+ #test_widget('Conversion', 'Common Options')
+ test_widget('Conversion', 'Output Options')
+
diff --git a/src/calibre/gui2/preferences/conversion.ui b/src/calibre/gui2/preferences/conversion.ui
new file mode 100644
index 0000000000..d9f335d443
--- /dev/null
+++ b/src/calibre/gui2/preferences/conversion.ui
@@ -0,0 +1,82 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 720
+ 603
+
+
+
+ Form
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 180
+ 0
+
+
+
+
+ 180
+ 16777215
+
+
+
+
+ 75
+ true
+
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ true
+
+
+ false
+
+
+
+ 48
+ 48
+
+
+
+ QAbstractItemView::ScrollPerItem
+
+
+ QAbstractItemView::ScrollPerPixel
+
+
+ QListView::TopToBottom
+
+
+ 10
+
+
+ QListView::ListMode
+
+
+
+ -
+
+
+
+
+
+
+
diff --git a/src/calibre/gui2/preferences/toolbar.py b/src/calibre/gui2/preferences/toolbar.py
index ba5b915aad..c13d956aea 100644
--- a/src/calibre/gui2/preferences/toolbar.py
+++ b/src/calibre/gui2/preferences/toolbar.py
@@ -28,7 +28,7 @@ class BaseModel(QAbstractListModel):
def name_to_action(self, name, gui):
if name == 'Donate':
- return FakeAction(name, 'donate.svg',
+ return FakeAction(name, 'donate.png',
dont_add_to=frozenset(['context-menu',
'context-menu-device']))
if name == 'Location Manager':
@@ -54,7 +54,7 @@ class BaseModel(QAbstractListModel):
if role == Qt.DecorationRole:
ic = action[1]
if ic is None:
- ic = 'blank.svg'
+ ic = 'blank.png'
return QVariant(QIcon(I(ic)))
if role == Qt.ToolTipRole and action[2] is not None:
return QVariant(action[2])
diff --git a/src/calibre/gui2/preferences/toolbar.ui b/src/calibre/gui2/preferences/toolbar.ui
index 926d5aaf96..0e601f74a2 100644
--- a/src/calibre/gui2/preferences/toolbar.ui
+++ b/src/calibre/gui2/preferences/toolbar.ui
@@ -96,7 +96,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
@@ -129,7 +129,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
@@ -159,7 +159,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
@@ -195,7 +195,7 @@
- :/images/back.svg:/images/back.svg
+ :/images/back.png:/images/back.png
diff --git a/src/calibre/gui2/shortcuts.ui b/src/calibre/gui2/shortcuts.ui
index 4afe564640..b26976c8e2 100644
--- a/src/calibre/gui2/shortcuts.ui
+++ b/src/calibre/gui2/shortcuts.ui
@@ -69,7 +69,7 @@
- :/images/clear_left.svg:/images/clear_left.svg
+ :/images/clear_left.png:/images/clear_left.png
@@ -110,7 +110,7 @@
- :/images/clear_left.svg:/images/clear_left.svg
+ :/images/clear_left.png:/images/clear_left.png
diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py
index 7d2333f58b..72f0efd9bf 100644
--- a/src/calibre/gui2/tag_view.py
+++ b/src/calibre/gui2/tag_view.py
@@ -372,19 +372,19 @@ class TagsModel(QAbstractItemModel): # {{{
# before a QPaintDevice'. The ':' in front avoids polluting either the
# user-defined categories (':' at end) or columns namespaces (no ':').
self.category_icon_map = TagsIcons({
- 'authors' : QIcon(I('user_profile.svg')),
- 'series' : QIcon(I('series.svg')),
- 'formats' : QIcon(I('book.svg')),
+ 'authors' : QIcon(I('user_profile.png')),
+ 'series' : QIcon(I('series.png')),
+ 'formats' : QIcon(I('book.png')),
'publisher' : QIcon(I('publisher.png')),
'rating' : QIcon(I('star.png')),
- 'news' : QIcon(I('news.svg')),
- 'tags' : QIcon(I('tags.svg')),
- ':custom' : QIcon(I('column.svg')),
- ':user' : QIcon(I('drawer.svg')),
- 'search' : QIcon(I('search.svg'))})
+ 'news' : QIcon(I('news.png')),
+ 'tags' : QIcon(I('tags.png')),
+ ':custom' : QIcon(I('column.png')),
+ ':user' : QIcon(I('drawer.png')),
+ 'search' : QIcon(I('search.png'))})
self.categories_with_ratings = ['authors', 'series', 'publisher', 'tags']
- self.icon_state_map = [None, QIcon(I('plus.svg')), QIcon(I('minus.svg'))]
+ self.icon_state_map = [None, QIcon(I('plus.png')), QIcon(I('minus.png'))]
self.db = db
self.tags_view = parent
self.hidden_categories = hidden_categories
diff --git a/src/calibre/gui2/throbber.py b/src/calibre/gui2/throbber.py
index e27438b60d..9d8c508f60 100644
--- a/src/calibre/gui2/throbber.py
+++ b/src/calibre/gui2/throbber.py
@@ -64,7 +64,7 @@ if __name__ == '__main__':
w = QWidget()
w.setLayout(QHBoxLayout())
b = ThrobbingButton()
- b.setIcon(QIcon(I('donate.svg')))
+ b.setIcon(QIcon(I('donate.png')))
w.layout().addWidget(b)
w.show()
b.set_normal_icon_size(64, 64)
diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py
index 142fa11c59..84f5a1a2c9 100644
--- a/src/calibre/gui2/ui.py
+++ b/src/calibre/gui2/ui.py
@@ -164,13 +164,13 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{
self.system_tray_icon.show()
self.system_tray_menu = QMenu(self)
self.restore_action = self.system_tray_menu.addAction(
- QIcon(I('page.svg')), _('&Restore'))
+ QIcon(I('page.png')), _('&Restore'))
self.donate_action = self.system_tray_menu.addAction(
- QIcon(I('donate.svg')), _('&Donate to support calibre'))
+ QIcon(I('donate.png')), _('&Donate to support calibre'))
self.donate_button.setDefaultAction(self.donate_action)
self.donate_button.setStatusTip(self.donate_button.toolTip())
self.eject_action = self.system_tray_menu.addAction(
- QIcon(I('eject.svg')), _('&Eject connected device'))
+ QIcon(I('eject.png')), _('&Eject connected device'))
self.eject_action.setEnabled(False)
self.addAction(self.quit_action)
self.system_tray_menu.addAction(self.quit_action)
@@ -514,7 +514,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{
d = QMessageBox(QMessageBox.Warning, _('WARNING: Active jobs'), msg,
QMessageBox.Yes|QMessageBox.No, self)
- d.setIconPixmap(QPixmap(I('dialog_warning.svg')))
+ d.setIconPixmap(QPixmap(I('dialog_warning.png')))
d.setDefaultButton(QMessageBox.No)
if d.exec_() != QMessageBox.Yes:
return False
diff --git a/src/calibre/gui2/viewer/config.ui b/src/calibre/gui2/viewer/config.ui
index d6e71c77d2..09c38fc908 100644
--- a/src/calibre/gui2/viewer/config.ui
+++ b/src/calibre/gui2/viewer/config.ui
@@ -15,7 +15,7 @@
- :/images/config.svg:/images/config.svg
+ :/images/config.png:/images/config.png
-
diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py
index 75f95b1a90..60ee362882 100644
--- a/src/calibre/gui2/viewer/documentview.py
+++ b/src/calibre/gui2/viewer/documentview.py
@@ -444,12 +444,12 @@ class DocumentView(QWebView):
self.connect(self.document, SIGNAL('animated_scroll_done()'),
self.animated_scroll_done, Qt.QueuedConnection)
copy_action = self.pageAction(self.document.Copy)
- copy_action.setIcon(QIcon(I('convert.svg')))
+ copy_action.setIcon(QIcon(I('convert.png')))
d = self.document
self.unimplemented_actions = list(map(self.pageAction,
[d.DownloadImageToDisk, d.OpenLinkInNewWindow, d.DownloadLinkToDisk,
d.OpenImageInNewWindow, d.OpenLink]))
- self.dictionary_action = QAction(QIcon(I('dictionary.svg')),
+ self.dictionary_action = QAction(QIcon(I('dictionary.png')),
_('&Lookup in dictionary'), self)
self.dictionary_action.setShortcut(Qt.CTRL+Qt.Key_L)
self.dictionary_action.triggered.connect(self.lookup)
diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py
index 32bfdd22ce..c8f1f62856 100644
--- a/src/calibre/gui2/viewer/main.py
+++ b/src/calibre/gui2/viewer/main.py
@@ -266,7 +266,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.action_full_screen.setCheckable(True)
self.print_menu = QMenu()
- self.print_menu.addAction(QIcon(I('print-preview.svg')), _('Print Preview'))
+ self.print_menu.addAction(QIcon(I('print-preview.png')), _('Print Preview'))
self.action_print.setMenu(self.print_menu)
self.tool_bar.widgetForAction(self.action_print).setPopupMode(QToolButton.MenuButtonPopup)
self.connect(self.action_print, SIGNAL("triggered(bool)"), partial(self.print_book, preview=False))
@@ -694,7 +694,7 @@ def main(args=sys.argv):
pid = os.fork() if False and (islinux or isfreebsd) else -1
if pid <= 0:
app = Application(args)
- app.setWindowIcon(QIcon(I('viewer.svg')))
+ app.setWindowIcon(QIcon(I('viewer.png')))
QApplication.setOrganizationName(ORG_NAME)
QApplication.setApplicationName(APP_UID)
main = EbookViewer(args[1] if len(args) > 1 else None,
diff --git a/src/calibre/gui2/viewer/main.ui b/src/calibre/gui2/viewer/main.ui
index 78d0d3b2da..e3b8fb8a61 100644
--- a/src/calibre/gui2/viewer/main.ui
+++ b/src/calibre/gui2/viewer/main.ui
@@ -15,7 +15,7 @@
- :/images/viewer.svg:/images/viewer.svg
+ :/images/viewer.png:/images/viewer.png
@@ -84,7 +84,7 @@
- :/images/window-close.svg:/images/window-close.svg
+ :/images/window-close.png:/images/window-close.png
@@ -147,7 +147,7 @@
- :/images/back.svg:/images/back.svg
+ :/images/back.png:/images/back.png
Back
@@ -156,7 +156,7 @@
- :/images/forward.svg:/images/forward.svg
+ :/images/forward.png:/images/forward.png
Forward
@@ -165,7 +165,7 @@
- :/images/next.svg:/images/next.svg
+ :/images/next.png:/images/next.png
Next page
@@ -174,7 +174,7 @@
- :/images/previous.svg:/images/previous.svg
+ :/images/previous.png:/images/previous.png
Previous page
@@ -183,7 +183,7 @@
- :/images/font_size_larger.svg:/images/font_size_larger.svg
+ :/images/font_size_larger.png:/images/font_size_larger.png
Font size larger
@@ -192,7 +192,7 @@
- :/images/font_size_smaller.svg:/images/font_size_smaller.svg
+ :/images/font_size_smaller.png:/images/font_size_smaller.png
Font size smaller
@@ -201,7 +201,7 @@
- :/images/chapters.svg:/images/chapters.svg
+ :/images/chapters.png:/images/chapters.png
Table of Contents
@@ -210,7 +210,7 @@
- :/images/dialog_information.svg:/images/dialog_information.svg
+ :/images/dialog_information.png:/images/dialog_information.png
Metadata
@@ -219,7 +219,7 @@
- :/images/document_open.svg:/images/document_open.svg
+ :/images/document_open.png:/images/document_open.png
Open ebook
@@ -228,7 +228,7 @@
- :/images/arrow-down.svg:/images/arrow-down.svg
+ :/images/arrow-down.png:/images/arrow-down.png
Find next
@@ -243,7 +243,7 @@
- :/images/edit_copy.svg:/images/edit_copy.svg
+ :/images/edit_copy.png:/images/edit_copy.png
Copy to clipboard
@@ -252,7 +252,7 @@
- :/images/config.svg:/images/config.svg
+ :/images/config.png:/images/config.png
Preferences
@@ -261,7 +261,7 @@
- :/images/lookfeel.svg:/images/lookfeel.svg
+ :/images/lookfeel.png:/images/lookfeel.png
Reference Mode
@@ -270,7 +270,7 @@
- :/images/bookmarks.svg:/images/bookmarks.svg
+ :/images/bookmarks.png:/images/bookmarks.png
Bookmark
@@ -279,7 +279,7 @@
- :/images/page.svg:/images/page.svg
+ :/images/page.png:/images/page.png
Toggle full screen
@@ -288,7 +288,7 @@
- :/images/print.svg:/images/print.svg
+ :/images/print.png:/images/print.png
Print
@@ -297,7 +297,7 @@
- :/images/arrow-up.svg:/images/arrow-up.svg
+ :/images/arrow-up.png:/images/arrow-up.png
Find previous
diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py
index ae7f8d259e..0237da0a09 100644
--- a/src/calibre/gui2/widgets.py
+++ b/src/calibre/gui2/widgets.py
@@ -61,13 +61,24 @@ class ProgressIndicator(QWidget):
class FilenamePattern(QWidget, Ui_Form):
+ changed_signal = pyqtSignal()
+
def __init__(self, parent):
QWidget.__init__(self, parent)
self.setupUi(self)
self.connect(self.test_button, SIGNAL('clicked()'), self.do_test)
self.connect(self.re, SIGNAL('returnPressed()'), self.do_test)
- self.re.setText(prefs['filename_pattern'])
+ self.initialize()
+ self.re.textChanged.connect(lambda x: self.changed_signal.emit())
+
+ def initialize(self, defaults=False):
+ if defaults:
+ val = prefs.defaults['filename_pattern']
+ else:
+ val = prefs['filename_pattern']
+ self.re.setText(val)
+
def do_test(self):
try:
diff --git a/src/calibre/gui2/wizard/__init__.py b/src/calibre/gui2/wizard/__init__.py
index 394b919016..f3234d48d5 100644
--- a/src/calibre/gui2/wizard/__init__.py
+++ b/src/calibre/gui2/wizard/__init__.py
@@ -668,8 +668,8 @@ class Wizard(QWizard):
self.setPixmap(self.LogoPixmap, p.scaledToHeight(80,
Qt.SmoothTransformation))
self.setPixmap(self.WatermarkPixmap,
- QPixmap(I('welcome_wizard.svg')))
- self.setPixmap(self.BackgroundPixmap, QPixmap(I('wizard.svg')))
+ QPixmap(I('welcome_wizard.png')))
+ self.setPixmap(self.BackgroundPixmap, QPixmap(I('wizard.png')))
self.device_page = DevicePage()
self.library_page = LibraryPage()
self.connect(self.library_page, SIGNAL('retranslate()'),
diff --git a/src/calibre/gui2/wizard/device.ui b/src/calibre/gui2/wizard/device.ui
index a422140bb1..229f83be9e 100644
--- a/src/calibre/gui2/wizard/device.ui
+++ b/src/calibre/gui2/wizard/device.ui
@@ -15,7 +15,7 @@
- :/images/wizard.svg:/images/wizard.svg
+ :/images/wizard.png:/images/wizard.png
Welcome to calibre
diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py
index b4fd537729..4637730116 100644
--- a/src/calibre/library/catalog.py
+++ b/src/calibre/library/catalog.py
@@ -2587,24 +2587,8 @@ class EPUB_MOBI(CatalogPlugin):
# Check to see if thumbnail exists
thumb_fp = "%s/thumbnail_default.jpg" % (image_dir)
cover = "%s/DefaultCover.png" % (self.catalogPath)
-
- # Init Qt for image conversion
- from calibre.gui2 import is_ok_to_use_qt
- if is_ok_to_use_qt():
- from PyQt4.Qt import QImage, QColor, QPainter, Qt
-
- # Convert .svg to .jpg
- cover_img = QImage(I('book.svg'))
- i = QImage(cover_img.size(),
- QImage.Format_ARGB32_Premultiplied)
- i.fill(QColor(Qt.white).rgb())
- p = QPainter(i)
- p.drawImage(0, 0, cover_img)
- p.end()
- i.save(cover)
- else:
- if not os.path.exists(cover):
- shutil.copyfile(I('library.png'), cover)
+ if not os.path.exists(cover):
+ shutil.copyfile(I('book.png'), cover)
if os.path.isfile(thumb_fp):
# Check to see if default cover is newer than thumbnail
diff --git a/src/calibre/linux.py b/src/calibre/linux.py
index 9323581c53..eceea6a262 100644
--- a/src/calibre/linux.py
+++ b/src/calibre/linux.py
@@ -334,7 +334,7 @@ class PostInstall:
with TemporaryDirectory() as tdir:
with CurrentDir(tdir):
- render_img('mimetypes/lrf.svg', 'calibre-lrf.png')
+ render_img('mimetypes/lrf.png', 'calibre-lrf.png')
check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True)
self.icon_resources.append(('mimetypes', 'application-lrf', '128'))
check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True)
@@ -343,7 +343,7 @@ class PostInstall:
render_img('lt.png', 'calibre-gui.png')
check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True)
self.icon_resources.append(('apps', 'calibre-gui', '128'))
- render_img('viewer.svg', 'calibre-viewer.png')
+ render_img('viewer.png', 'calibre-viewer.png')
check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True)
self.icon_resources.append(('apps', 'calibre-viewer', '128'))
diff --git a/src/calibre/utils/magick/draw.py b/src/calibre/utils/magick/draw.py
index b0f75b4ecd..17bf1c273a 100644
--- a/src/calibre/utils/magick/draw.py
+++ b/src/calibre/utils/magick/draw.py
@@ -8,6 +8,7 @@ __docformat__ = 'restructuredtext en'
from calibre.utils.magick import Image, DrawingWand, create_canvas
from calibre.constants import __appname__, __version__
+from calibre import fit_image
def save_cover_data_to(data, path, bgcolor='white', resize_to=None):
'''
@@ -23,6 +24,17 @@ def save_cover_data_to(data, path, bgcolor='white', resize_to=None):
canvas.compose(img)
canvas.save(path)
+def thumbnail(data, width=120, height=120, bgcolor='white', fmt='jpg'):
+ img = Image()
+ img.load(data)
+ owidth, oheight = img.size
+ scaled, nwidth, nheight = fit_image(owidth, oheight, width, height)
+ if scaled:
+ img.size = (nwidth, nheight)
+ canvas = create_canvas(img.size[0], img.size[1], bgcolor)
+ canvas.compose(img)
+ return (canvas.size[0], canvas.size[1], canvas.export(fmt))
+
def identify_data(data):
'''
Identify the image in data. Returns a 3-tuple
diff --git a/src/calibre/web/feeds/recipes/model.py b/src/calibre/web/feeds/recipes/model.py
index 66c0167bb7..469b7f17ad 100644
--- a/src/calibre/web/feeds/recipes/model.py
+++ b/src/calibre/web/feeds/recipes/model.py
@@ -125,8 +125,8 @@ class RecipeModel(QAbstractItemModel, SearchQueryParser):
QAbstractItemModel.__init__(self, *args)
SearchQueryParser.__init__(self, locations=['all'])
self.db = db
- self.default_icon = QVariant(QIcon(I('news.svg')))
- self.custom_icon = QVariant(QIcon(I('user_profile.svg')))
+ self.default_icon = QVariant(QIcon(I('news.png')))
+ self.custom_icon = QVariant(QIcon(I('user_profile.png')))
self.builtin_recipe_collection = get_builtin_recipe_collection()
self.scheduler_config = SchedulerConfig()
self.do_refresh()