mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
When showing cover browser in a separate window, remember the last used window size
This commit is contained in:
parent
a1201c899c
commit
042f67b12e
@ -10,10 +10,10 @@ Module to implement the Cover Flow feature
|
||||
import sys, os, time
|
||||
|
||||
from PyQt4.Qt import QImage, QSizePolicy, QTimer, QDialog, Qt, QSize, \
|
||||
QStackedLayout, QLabel
|
||||
QStackedLayout, QLabel, QByteArray, pyqtSignal
|
||||
|
||||
from calibre import plugins
|
||||
from calibre.gui2 import config, available_height, available_width
|
||||
from calibre.gui2 import config, available_height, available_width, gprefs
|
||||
|
||||
pictureflow, pictureflowerror = plugins['pictureflow']
|
||||
|
||||
@ -107,6 +107,28 @@ else:
|
||||
DatabaseImages = None
|
||||
FileSystemImages = None
|
||||
|
||||
class CBDialog(QDialog):
|
||||
|
||||
closed = pyqtSignal()
|
||||
|
||||
def __init__(self, parent, cover_flow):
|
||||
QDialog.__init__(self, parent)
|
||||
self._layout = QStackedLayout()
|
||||
self.setLayout(self._layout)
|
||||
self.setWindowTitle(_('Browse by covers'))
|
||||
self.layout().addWidget(cover_flow)
|
||||
|
||||
geom = gprefs.get('cover_browser_dialog_geometry', bytearray(''))
|
||||
geom = QByteArray(geom)
|
||||
if not self.restoreGeometry(geom):
|
||||
h, w = available_height()-60, int(available_width()/1.5)
|
||||
self.resize(w, h)
|
||||
|
||||
def closeEvent(self, *args):
|
||||
geom = bytearray(self.saveGeometry())
|
||||
gprefs['cover_browser_dialog_geometry'] = geom
|
||||
self.closed.emit()
|
||||
|
||||
class CoverFlowMixin(object):
|
||||
|
||||
def __init__(self):
|
||||
@ -173,18 +195,12 @@ class CoverFlowMixin(object):
|
||||
|
||||
|
||||
def show_cover_browser(self):
|
||||
d = QDialog(self)
|
||||
ah, aw = available_height(), available_width()
|
||||
d.resize(int(aw/1.5), ah-60)
|
||||
d._layout = QStackedLayout()
|
||||
d.setLayout(d._layout)
|
||||
d.setWindowTitle(_('Browse by covers'))
|
||||
d.layout().addWidget(self.cover_flow)
|
||||
d = CBDialog(self, self.cover_flow)
|
||||
self.cover_flow.setVisible(True)
|
||||
self.cover_flow.setFocus(Qt.OtherFocusReason)
|
||||
d.show()
|
||||
self.cb_splitter.button.set_state_to_hide()
|
||||
d.finished.connect(self.cover_browser_closed)
|
||||
d.closed.connect(self.cover_browser_closed)
|
||||
self.cb_dialog = d
|
||||
self.cb_splitter.button.set_state_to_hide()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user