Duplicates dialog, remember window size. Fixes #1254332 [[Enhancement] enlarge the window reporting duplicates after importing new books.](https://bugs.launchpad.net/calibre/+bug/1254332)

This commit is contained in:
Kovid Goyal 2013-11-24 08:36:05 +05:30
parent 88ffba470a
commit 89a2900f1b

View File

@ -12,6 +12,7 @@ import os.path
from PyQt4.Qt import (QDialog, QGridLayout, QIcon, QLabel, QTreeWidget, from PyQt4.Qt import (QDialog, QGridLayout, QIcon, QLabel, QTreeWidget,
QTreeWidgetItem, Qt, QFont, QDialogButtonBox) QTreeWidgetItem, Qt, QFont, QDialogButtonBox)
from calibre.gui2 import gprefs
from calibre.ebooks.metadata import authors_to_string from calibre.ebooks.metadata import authors_to_string
class DuplicatesQuestion(QDialog): class DuplicatesQuestion(QDialog):
@ -47,12 +48,16 @@ class DuplicatesQuestion(QDialog):
bb.accepted.connect(self.accept) bb.accepted.connect(self.accept)
bb.rejected.connect(self.reject) bb.rejected.connect(self.reject)
l.addWidget(bb, 2, 0, 1, 2) l.addWidget(bb, 2, 0, 1, 2)
l.setColumnStretch(1, 10)
self.ab = ab = bb.addButton(_('Select &all'), bb.ActionRole) self.ab = ab = bb.addButton(_('Select &all'), bb.ActionRole)
ab.clicked.connect(self.select_all) ab.clicked.connect(self.select_all)
self.nb = ab = bb.addButton(_('Select &none'), bb.ActionRole) self.nb = ab = bb.addButton(_('Select &none'), bb.ActionRole)
ab.clicked.connect(self.select_none) ab.clicked.connect(self.select_none)
self.resize(self.sizeHint()) self.resize(self.sizeHint())
geom = gprefs.get('duplicates-question-dialog-geometry', None)
if geom is not None:
self.restoreGeometry(geom)
self.exec_() self.exec_()
def select_all(self): def select_all(self):
@ -66,9 +71,17 @@ class DuplicatesQuestion(QDialog):
x.setCheckState(0, Qt.Unchecked) x.setCheckState(0, Qt.Unchecked)
def reject(self): def reject(self):
self.save_geometry()
self.select_none() self.select_none()
QDialog.reject(self) QDialog.reject(self)
def accept(self):
self.save_geometry()
QDialog.accept(self)
def save_geometry(self):
gprefs.set('duplicates-question-dialog-geometry', bytearray(self.saveGeometry()))
def process_duplicates(self, db, duplicates): def process_duplicates(self, db, duplicates):
ta = _('%(title)s by %(author)s [%(formats)s]') ta = _('%(title)s by %(author)s [%(formats)s]')
bf = QFont(self.dup_list.font()) bf = QFont(self.dup_list.font())