diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index 2b55b991a2..2e42c97816 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -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 diff --git a/src/calibre/gui2/tweak_book/polish.py b/src/calibre/gui2/tweak_book/polish.py index 83bc0af07e..1320203e5a 100644 --- a/src/calibre/gui2/tweak_book/polish.py +++ b/src/calibre/gui2/tweak_book/polish.py @@ -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()}