Ensure the book info dialog is deleted when closed

This commit is contained in:
Kovid Goyal 2013-08-09 15:49:56 +05:30
parent 840f316703
commit 9f7637778a
2 changed files with 19 additions and 8 deletions

View File

@ -43,4 +43,8 @@ class ShowBookDetailsAction(InterfaceAction):
self.memory.remove(d)
except ValueError:
pass
else:
import sip
sip.delete(d)
del d

View File

@ -63,6 +63,8 @@ class BookInfo(QDialog, Ui_BookInfo):
def done(self, r):
ret = QDialog.done(self, r)
self.view.selectionModel().currentChanged.disconnect(self.slave)
self.view = self.link_delegate = self.gui = None
self.closed.emit(self)
return ret
@ -96,14 +98,19 @@ class BookInfo(QDialog, Ui_BookInfo):
self.refresh(row)
def move(self, delta=1):
idx = self.view.currentIndex()
if idx.isValid():
m = self.view.model()
ni = m.index(idx.row() + delta, idx.column())
if ni.isValid():
self.view.setCurrentIndex(ni)
if self.view.isVisible():
self.view.scrollTo(ni)
self.view.selectionModel().currentChanged.disconnect(self.slave)
try:
idx = self.view.currentIndex()
if idx.isValid():
m = self.view.model()
ni = m.index(idx.row() + delta, idx.column())
if ni.isValid():
self.view.setCurrentIndex(ni)
self.refresh(ni.row())
if self.view.isVisible():
self.view.scrollTo(ni)
finally:
self.view.selectionModel().currentChanged.connect(self.slave)
def next(self):
self.move()