This commit is contained in:
Kovid Goyal 2007-11-14 21:29:02 +00:00
parent 79fc36113d
commit 64b149f024
3 changed files with 49 additions and 5 deletions

View File

@ -0,0 +1,35 @@
## Copyright (C) 2007 Kovid Goyal kovid@kovidgoyal.net
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from PyQt4.QtGui import QGraphicsView
from PyQt4.QtCore import QSize
class BookView(QGraphicsView):
MINIMUM_SIZE = QSize(400, 500)
def __init__(self, *args):
QGraphicsView.__init__(self, *args)
self.preferred_size = self.MINIMUM_SIZE
def minimumSizeHint(self):
return self.MINIMUM_SIZE
def sizeHint(self):
return self.preferred_size
def resize_for(self, width, height):
self.preferred_size = QSize(width, height)

View File

@ -110,7 +110,6 @@ class Main(MainWindow, Ui_MainWindow):
self.closed = False
def configure(self, triggered):
opts = cPickle.loads(str(QSettings().value('ebook viewer options', QVariant(cPickle.dumps(self.opts))).toString()))
d = Config(self, opts)
@ -165,8 +164,13 @@ class Main(MainWindow, Ui_MainWindow):
def parsed(self):
if not self.renderer.aborted and self.renderer.lrf is not None:
self.graphics_view.setMinimumSize(self.renderer.lrf.device_info.width+5,
self.renderer.lrf.device_info.height)
width, height = self.renderer.lrf.device_info.width, \
self.renderer.lrf.device_info.height
self.graphics_view.resize_for(width, height)
desktop = QCoreApplication.instance().desktop()
screen_height = desktop.availableGeometry().height()
height = min(screen_height, height+50)
self.resize(self.size().width(), height)
self.setWindowTitle(self.renderer.lrf.metadata.title + ' - ' + __appname__)
self.document_title = self.renderer.lrf.metadata.title
if self.opts.profile:

View File

@ -6,7 +6,7 @@
<x>0</x>
<y>0</y>
<width>614</width>
<height>832</height>
<height>702</height>
</rect>
</property>
<property name="sizePolicy" >
@ -55,7 +55,7 @@
<number>0</number>
</property>
<item row="0" column="0" >
<widget class="QGraphicsView" name="graphics_view" >
<widget class="BookView" name="graphics_view" >
<property name="mouseTracking" >
<bool>true</bool>
</property>
@ -292,6 +292,11 @@
<extends>QLineEdit</extends>
<header>library.h</header>
</customwidget>
<customwidget>
<class>BookView</class>
<extends>QGraphicsView</extends>
<header>bookview.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="../images.qrc" />