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) self.memory.remove(d)
except ValueError: except ValueError:
pass pass
else:
import sip
sip.delete(d)
del d

View File

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