Implement #2791 (Fullscreen should keep narrow measure)

This commit is contained in:
Kovid Goyal 2009-07-12 19:16:54 -06:00
parent 37dc3b72be
commit b2b2847a47
4 changed files with 173 additions and 119 deletions

View File

@ -144,13 +144,36 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="3" column="0" colspan="2"> <item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="opt_remember_window_size"> <widget class="QCheckBox" name="opt_remember_window_size">
<property name="text"> <property name="text">
<string>Remember last used &amp;window size</string> <string>Remember last used &amp;window size</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QSpinBox" name="max_view_width">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Maximum &amp;view width:</string>
</property>
<property name="buddy">
<cstring>max_view_width</cstring>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
@ -159,7 +182,7 @@
<string>&amp;User stylesheet</string> <string>&amp;User stylesheet</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_5"> <layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0"> <item row="1" column="0">
<widget class="QPlainTextEdit" name="css"/> <widget class="QPlainTextEdit" name="css"/>
</item> </item>
</layout> </layout>
@ -180,6 +203,18 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<tabstops>
<tabstop>serif_family</tabstop>
<tabstop>sans_family</tabstop>
<tabstop>mono_family</tabstop>
<tabstop>default_font_size</tabstop>
<tabstop>mono_font_size</tabstop>
<tabstop>standard_font</tabstop>
<tabstop>max_view_width</tabstop>
<tabstop>opt_remember_window_size</tabstop>
<tabstop>css</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources> <resources>
<include location="../images.qrc"/> <include location="../images.qrc"/>
</resources> </resources>

View File

@ -59,6 +59,8 @@ def config(defaults=None):
help=_('Remember last used window size')) help=_('Remember last used window size'))
c.add_opt('user_css', default='', c.add_opt('user_css', default='',
help=_('Set the user CSS stylesheet. This can be used to customize the look of all books.')) help=_('Set the user CSS stylesheet. This can be used to customize the look of all books.'))
c.add_opt('max_view_width', default=6000,
help=_('Maximum width of the viewer window, in pixels.'))
fonts = c.add_group('FONTS', _('Font options')) fonts = c.add_group('FONTS', _('Font options'))
fonts('serif_family', default='Times New Roman' if iswindows else 'Liberation Serif', fonts('serif_family', default='Times New Roman' if iswindows else 'Liberation Serif',
@ -103,6 +105,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
self.standard_font.setCurrentIndex({'serif':0, 'sans':1, 'mono':2}[opts.standard_font]) self.standard_font.setCurrentIndex({'serif':0, 'sans':1, 'mono':2}[opts.standard_font])
self.css.setPlainText(opts.user_css) self.css.setPlainText(opts.user_css)
self.css.setToolTip(_('Set the user CSS stylesheet. This can be used to customize the look of all books.')) self.css.setToolTip(_('Set the user CSS stylesheet. This can be used to customize the look of all books.'))
self.max_view_width.setValue(opts.max_view_width)
def accept(self, *args): def accept(self, *args):
@ -115,6 +118,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
c.set('standard_font', {0:'serif', 1:'sans', 2:'mono'}[self.standard_font.currentIndex()]) c.set('standard_font', {0:'serif', 1:'sans', 2:'mono'}[self.standard_font.currentIndex()])
c.set('user_css', unicode(self.css.toPlainText())) c.set('user_css', unicode(self.css.toPlainText()))
c.set('remember_window_size', self.opt_remember_window_size.isChecked()) c.set('remember_window_size', self.opt_remember_window_size.isChecked())
c.set('max_view_width', int(self.max_view_width.value()))
return QDialog.accept(self, *args) return QDialog.accept(self, *args)
@ -349,6 +353,8 @@ class DocumentView(QWebView):
def config(self, parent=None): def config(self, parent=None):
self.document.do_config(parent) self.document.do_config(parent)
if self.manager is not None:
self.manager.set_max_width()
def bookmark(self): def bookmark(self):
return self.document.bookmark() return self.document.bookmark()

View File

@ -284,6 +284,13 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.tool_bar.widgetForAction(self.action_print).setPopupMode(QToolButton.MenuButtonPopup) self.tool_bar.widgetForAction(self.action_print).setPopupMode(QToolButton.MenuButtonPopup)
self.connect(self.action_print, SIGNAL("triggered(bool)"), partial(self.print_book, preview=False)) self.connect(self.action_print, SIGNAL("triggered(bool)"), partial(self.print_book, preview=False))
self.connect(self.print_menu.actions()[0], SIGNAL("triggered(bool)"), partial(self.print_book, preview=True)) self.connect(self.print_menu.actions()[0], SIGNAL("triggered(bool)"), partial(self.print_book, preview=True))
self.set_max_width()
def set_max_width(self):
from calibre.gui2.viewer.documentview import config
c = config().parse()
self.frame.setMaximumWidth(c.max_view_width)
def print_book(self, preview): def print_book(self, preview):
Printing(self.iterator.spine, preview) Printing(self.iterator.spine, preview)

View File

@ -1,7 +1,8 @@
<ui version="4.0" > <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EbookViewer</class> <class>EbookViewer</class>
<widget class="QMainWindow" name="EbookViewer" > <widget class="QMainWindow" name="EbookViewer">
<property name="geometry" > <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
@ -9,37 +10,42 @@
<height>672</height> <height>672</height>
</rect> </rect>
</property> </property>
<property name="windowTitle" > <property name="windowTitle">
<string>Ebook Viewer</string> <string>Ebook Viewer</string>
</property> </property>
<property name="windowIcon" > <property name="windowIcon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/viewer.svg</normaloff>:/images/viewer.svg</iconset> <normaloff>:/images/viewer.svg</normaloff>:/images/viewer.svg</iconset>
</property> </property>
<widget class="QWidget" name="centralwidget" > <widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout_2" > <layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" > <item row="0" column="0">
<widget class="QSplitter" name="splitter" > <widget class="QSplitter" name="splitter">
<property name="orientation" > <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<widget class="QTreeView" name="toc" /> <widget class="QTreeView" name="toc"/>
<widget class="QWidget" name="layoutWidget" > <widget class="QFrame" name="frame">
<layout class="QGridLayout" name="gridLayout" > <property name="frameShape">
<item row="0" column="0" > <enum>QFrame::StyledPanel</enum>
<widget class="QWebView" name="view" > </property>
</widget> <property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QWebView" name="view"/>
</item> </item>
<item row="0" column="1" > <item row="0" column="1">
<widget class="QScrollBar" name="vertical_scrollbar" > <widget class="QScrollBar" name="vertical_scrollbar">
<property name="orientation" > <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0" > <item row="1" column="0">
<widget class="QScrollBar" name="horizontal_scrollbar" > <widget class="QScrollBar" name="horizontal_scrollbar">
<property name="orientation" > <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
@ -50,193 +56,193 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QToolBar" name="tool_bar" > <widget class="QToolBar" name="tool_bar">
<property name="windowTitle" > <property name="windowTitle">
<string>toolBar</string> <string>toolBar</string>
</property> </property>
<property name="iconSize" > <property name="iconSize">
<size> <size>
<width>32</width> <width>32</width>
<height>32</height> <height>32</height>
</size> </size>
</property> </property>
<attribute name="toolBarArea" > <attribute name="toolBarArea">
<enum>LeftToolBarArea</enum> <enum>LeftToolBarArea</enum>
</attribute> </attribute>
<attribute name="toolBarBreak" > <attribute name="toolBarBreak">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<addaction name="action_back" /> <addaction name="action_back"/>
<addaction name="action_forward" /> <addaction name="action_forward"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_open_ebook" /> <addaction name="action_open_ebook"/>
<addaction name="action_copy" /> <addaction name="action_copy"/>
<addaction name="action_font_size_larger" /> <addaction name="action_font_size_larger"/>
<addaction name="action_font_size_smaller" /> <addaction name="action_font_size_smaller"/>
<addaction name="action_table_of_contents" /> <addaction name="action_table_of_contents"/>
<addaction name="action_metadata" /> <addaction name="action_metadata"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_previous_page" /> <addaction name="action_previous_page"/>
<addaction name="action_next_page" /> <addaction name="action_next_page"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_bookmark" /> <addaction name="action_bookmark"/>
<addaction name="action_reference_mode" /> <addaction name="action_reference_mode"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_preferences" /> <addaction name="action_preferences"/>
<addaction name="action_full_screen" /> <addaction name="action_full_screen"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_print" /> <addaction name="action_print"/>
</widget> </widget>
<widget class="QToolBar" name="tool_bar2" > <widget class="QToolBar" name="tool_bar2">
<attribute name="toolBarArea" > <attribute name="toolBarArea">
<enum>TopToolBarArea</enum> <enum>TopToolBarArea</enum>
</attribute> </attribute>
<attribute name="toolBarBreak" > <attribute name="toolBarBreak">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<addaction name="action_find_next" /> <addaction name="action_find_next"/>
</widget> </widget>
<action name="action_back" > <action name="action_back">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/back.svg</normaloff>:/images/back.svg</iconset> <normaloff>:/images/back.svg</normaloff>:/images/back.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Back</string> <string>Back</string>
</property> </property>
</action> </action>
<action name="action_forward" > <action name="action_forward">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/forward.svg</normaloff>:/images/forward.svg</iconset> <normaloff>:/images/forward.svg</normaloff>:/images/forward.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Forward</string> <string>Forward</string>
</property> </property>
</action> </action>
<action name="action_next_page" > <action name="action_next_page">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/next.svg</normaloff>:/images/next.svg</iconset> <normaloff>:/images/next.svg</normaloff>:/images/next.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Next page</string> <string>Next page</string>
</property> </property>
</action> </action>
<action name="action_previous_page" > <action name="action_previous_page">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/previous.svg</normaloff>:/images/previous.svg</iconset> <normaloff>:/images/previous.svg</normaloff>:/images/previous.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Previous page</string> <string>Previous page</string>
</property> </property>
</action> </action>
<action name="action_font_size_larger" > <action name="action_font_size_larger">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/font_size_larger.svg</normaloff>:/images/font_size_larger.svg</iconset> <normaloff>:/images/font_size_larger.svg</normaloff>:/images/font_size_larger.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Font size larger</string> <string>Font size larger</string>
</property> </property>
</action> </action>
<action name="action_font_size_smaller" > <action name="action_font_size_smaller">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/font_size_smaller.svg</normaloff>:/images/font_size_smaller.svg</iconset> <normaloff>:/images/font_size_smaller.svg</normaloff>:/images/font_size_smaller.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Font size smaller</string> <string>Font size smaller</string>
</property> </property>
</action> </action>
<action name="action_table_of_contents" > <action name="action_table_of_contents">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/chapters.svg</normaloff>:/images/chapters.svg</iconset> <normaloff>:/images/chapters.svg</normaloff>:/images/chapters.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Table of Contents</string> <string>Table of Contents</string>
</property> </property>
</action> </action>
<action name="action_metadata" > <action name="action_metadata">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/dialog_information.svg</normaloff>:/images/dialog_information.svg</iconset> <normaloff>:/images/dialog_information.svg</normaloff>:/images/dialog_information.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Metadata</string> <string>Metadata</string>
</property> </property>
</action> </action>
<action name="action_open_ebook" > <action name="action_open_ebook">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/document_open.svg</normaloff>:/images/document_open.svg</iconset> <normaloff>:/images/document_open.svg</normaloff>:/images/document_open.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Open ebook</string> <string>Open ebook</string>
</property> </property>
</action> </action>
<action name="action_find_next" > <action name="action_find_next">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/arrow-down.svg</normaloff>:/images/arrow-down.svg</iconset> <normaloff>:/images/arrow-down.svg</normaloff>:/images/arrow-down.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Find next</string> <string>Find next</string>
</property> </property>
</action> </action>
<action name="action_copy" > <action name="action_copy">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/convert.svg</normaloff>:/images/convert.svg</iconset> <normaloff>:/images/convert.svg</normaloff>:/images/convert.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Copy to clipboard</string> <string>Copy to clipboard</string>
</property> </property>
</action> </action>
<action name="action_preferences" > <action name="action_preferences">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/config.svg</normaloff>:/images/config.svg</iconset> <normaloff>:/images/config.svg</normaloff>:/images/config.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Preferences</string> <string>Preferences</string>
</property> </property>
</action> </action>
<action name="action_reference_mode" > <action name="action_reference_mode">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/lookfeel.svg</normaloff>:/images/lookfeel.svg</iconset> <normaloff>:/images/lookfeel.svg</normaloff>:/images/lookfeel.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Reference Mode</string> <string>Reference Mode</string>
</property> </property>
</action> </action>
<action name="action_bookmark" > <action name="action_bookmark">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/bookmarks.svg</normaloff>:/images/bookmarks.svg</iconset> <normaloff>:/images/bookmarks.svg</normaloff>:/images/bookmarks.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Bookmark</string> <string>Bookmark</string>
</property> </property>
</action> </action>
<action name="action_full_screen" > <action name="action_full_screen">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/page.svg</normaloff>:/images/page.svg</iconset> <normaloff>:/images/page.svg</normaloff>:/images/page.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Toggle full screen</string> <string>Toggle full screen</string>
</property> </property>
</action> </action>
<action name="action_print" > <action name="action_print">
<property name="icon" > <property name="icon">
<iconset resource="../images.qrc" > <iconset resource="../images.qrc">
<normaloff>:/images/print.svg</normaloff>:/images/print.svg</iconset> <normaloff>:/images/print.svg</normaloff>:/images/print.svg</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Print</string> <string>Print</string>
</property> </property>
</action> </action>
@ -249,7 +255,7 @@
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../images.qrc" /> <include location="../images.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>