Edit book: Compress images losslessly: Remember the last used compression quality for jpeg compression. Fixes #1796950 [[enhancement] editor, compress images losslessly, remember compression quality](https://bugs.launchpad.net/calibre/+bug/1796950)

This commit is contained in:
Kovid Goyal 2018-10-11 20:34:49 +05:30
parent c477444367
commit baf0cbad6a
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 11 additions and 1 deletions

View File

@ -523,6 +523,9 @@ class FileList(QTreeWidget):
m.addAction(QIcon(I('modified.png')), _('Change the file extension for the selected files'), self.request_change_ext)
m.addAction(QIcon(I('trash.png')), ngettext(
'&Delete the selected file', '&Delete the {} selected files', num).format(num), self.request_delete)
m.addAction(QIcon(I('edit-copy.png')), ngettext(
'&Copy the selected file to another editor instance',
'&Copy the {} selected files to another editor instance', num).format(num), self.copy_selected_files)
m.addSeparator()
selected_map = defaultdict(list)
@ -644,6 +647,9 @@ class FileList(QTreeWidget):
ans.discard('')
return ans
def copy_selected_files(self):
pass
def request_delete(self):
names = self.selected_names
bad = names & current_container().names_that_must_not_be_removed

View File

@ -185,9 +185,10 @@ class CompressImages(Dialog):
self.h2 = h = QHBoxLayout()
l.addLayout(h)
self.jq = jq = QSpinBox(self)
jq.setMinimum(0), jq.setMaximum(100), jq.setValue(80), jq.setEnabled(False)
jq.setMinimum(0), jq.setMaximum(100), jq.setValue(tprefs.get('jpeg_compression_quality_for_lossless_compression', 80)), jq.setEnabled(False)
jq.setToolTip(_('The compression quality, 1 is high compression, 100 is low compression.\nImage'
' quality is inversely correlated with compression quality.'))
jq.valueChanged.connect(self.save_compression_quality)
el.toggled.connect(jq.setEnabled)
self.jql = la = QLabel(_('Compression &quality:'))
la.setBuddy(jq)
@ -195,6 +196,9 @@ class CompressImages(Dialog):
l.addStretch(10)
l.addWidget(self.bb)
def save_compression_quality(self):
tprefs.set('jpeg_compression_quality_for_lossless_compression', self.jq.value())
@property
def names(self):
return {item.text() for item in self.images.selectedItems()}