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
|
import sys, os, time
|
||||||
|
|
||||||
from PyQt4.Qt import QImage, QSizePolicy, QTimer, QDialog, Qt, QSize, \
|
from PyQt4.Qt import QImage, QSizePolicy, QTimer, QDialog, Qt, QSize, \
|
||||||
QStackedLayout, QLabel
|
QStackedLayout, QLabel, QByteArray, pyqtSignal
|
||||||
|
|
||||||
from calibre import plugins
|
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']
|
pictureflow, pictureflowerror = plugins['pictureflow']
|
||||||
|
|
||||||
@ -107,6 +107,28 @@ else:
|
|||||||
DatabaseImages = None
|
DatabaseImages = None
|
||||||
FileSystemImages = 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):
|
class CoverFlowMixin(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -173,18 +195,12 @@ class CoverFlowMixin(object):
|
|||||||
|
|
||||||
|
|
||||||
def show_cover_browser(self):
|
def show_cover_browser(self):
|
||||||
d = QDialog(self)
|
d = CBDialog(self, self.cover_flow)
|
||||||
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)
|
|
||||||
self.cover_flow.setVisible(True)
|
self.cover_flow.setVisible(True)
|
||||||
self.cover_flow.setFocus(Qt.OtherFocusReason)
|
self.cover_flow.setFocus(Qt.OtherFocusReason)
|
||||||
d.show()
|
d.show()
|
||||||
self.cb_splitter.button.set_state_to_hide()
|
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_dialog = d
|
||||||
self.cb_splitter.button.set_state_to_hide()
|
self.cb_splitter.button.set_state_to_hide()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user