mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
E-book viewer: Add an option to always start the viewer in full screen mode
This commit is contained in:
parent
694c8a654b
commit
3494e09604
@ -59,6 +59,8 @@ def config(defaults=None):
|
|||||||
help=_('Show reading position in fullscreen mode.'))
|
help=_('Show reading position in fullscreen mode.'))
|
||||||
c.add_opt('fullscreen_scrollbar', default=True, action='store_false',
|
c.add_opt('fullscreen_scrollbar', default=True, action='store_false',
|
||||||
help=_('Show the scrollbar in fullscreen mode.'))
|
help=_('Show the scrollbar in fullscreen mode.'))
|
||||||
|
c.add_opt('start_in_fullscreen', default=False, action='store_true',
|
||||||
|
help=_('Start viewer in full screen mode'))
|
||||||
c.add_opt('cols_per_screen', default=1)
|
c.add_opt('cols_per_screen', default=1)
|
||||||
c.add_opt('use_book_margins', default=False, action='store_true')
|
c.add_opt('use_book_margins', default=False, action='store_true')
|
||||||
c.add_opt('top_margin', default=20)
|
c.add_opt('top_margin', default=20)
|
||||||
@ -206,6 +208,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
|
|||||||
self.opt_fit_images.setChecked(opts.fit_images)
|
self.opt_fit_images.setChecked(opts.fit_images)
|
||||||
self.opt_fullscreen_clock.setChecked(opts.fullscreen_clock)
|
self.opt_fullscreen_clock.setChecked(opts.fullscreen_clock)
|
||||||
self.opt_fullscreen_scrollbar.setChecked(opts.fullscreen_scrollbar)
|
self.opt_fullscreen_scrollbar.setChecked(opts.fullscreen_scrollbar)
|
||||||
|
self.opt_start_in_fullscreen.setChecked(opts.start_in_fullscreen)
|
||||||
self.opt_fullscreen_pos.setChecked(opts.fullscreen_pos)
|
self.opt_fullscreen_pos.setChecked(opts.fullscreen_pos)
|
||||||
self.opt_cols_per_screen.setValue(opts.cols_per_screen)
|
self.opt_cols_per_screen.setValue(opts.cols_per_screen)
|
||||||
self.opt_override_book_margins.setChecked(not opts.use_book_margins)
|
self.opt_override_book_margins.setChecked(not opts.use_book_margins)
|
||||||
@ -279,6 +282,7 @@ class ConfigDialog(QDialog, Ui_Dialog):
|
|||||||
c.set('fullscreen_clock', self.opt_fullscreen_clock.isChecked())
|
c.set('fullscreen_clock', self.opt_fullscreen_clock.isChecked())
|
||||||
c.set('fullscreen_pos', self.opt_fullscreen_pos.isChecked())
|
c.set('fullscreen_pos', self.opt_fullscreen_pos.isChecked())
|
||||||
c.set('fullscreen_scrollbar', self.opt_fullscreen_scrollbar.isChecked())
|
c.set('fullscreen_scrollbar', self.opt_fullscreen_scrollbar.isChecked())
|
||||||
|
c.set('start_in_fullscreen', self.opt_start_in_fullscreen.isChecked())
|
||||||
c.set('cols_per_screen', int(self.opt_cols_per_screen.value()))
|
c.set('cols_per_screen', int(self.opt_cols_per_screen.value()))
|
||||||
c.set('use_book_margins', not
|
c.set('use_book_margins', not
|
||||||
self.opt_override_book_margins.isChecked())
|
self.opt_override_book_margins.isChecked())
|
||||||
|
@ -388,20 +388,27 @@ QToolBox::tab:hover {
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" colspan="2">
|
<item row="4" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="opt_fullscreen_pos">
|
<widget class="QCheckBox" name="opt_fullscreen_pos">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Show reading &position in full screen mode</string>
|
<string>Show reading &position in full screen mode</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0" colspan="2">
|
<item row="3" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="opt_fullscreen_scrollbar">
|
<widget class="QCheckBox" name="opt_fullscreen_scrollbar">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Show &scrollbar in full screen mode</string>
|
<string>Show &scrollbar in full screen mode</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="opt_start_in_fullscreen">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Start viewer in full screen mode</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="page_6">
|
<widget class="QWidget" name="page_6">
|
||||||
|
@ -145,6 +145,7 @@ class Document(QWebPage): # {{{
|
|||||||
self.fullscreen_clock = opts.fullscreen_clock
|
self.fullscreen_clock = opts.fullscreen_clock
|
||||||
self.fullscreen_scrollbar = opts.fullscreen_scrollbar
|
self.fullscreen_scrollbar = opts.fullscreen_scrollbar
|
||||||
self.fullscreen_pos = opts.fullscreen_pos
|
self.fullscreen_pos = opts.fullscreen_pos
|
||||||
|
self.start_in_fullscreen = opts.start_in_fullscreen
|
||||||
self.use_book_margins = opts.use_book_margins
|
self.use_book_margins = opts.use_book_margins
|
||||||
self.cols_per_screen = opts.cols_per_screen
|
self.cols_per_screen = opts.cols_per_screen
|
||||||
self.side_margin = opts.side_margin
|
self.side_margin = opts.side_margin
|
||||||
|
@ -21,7 +21,7 @@ from calibre.gui2 import (Application, ORG_NAME, APP_UID, choose_files,
|
|||||||
info_dialog, error_dialog, open_url, available_height)
|
info_dialog, error_dialog, open_url, available_height)
|
||||||
from calibre.ebooks.oeb.iterator.book import EbookIterator
|
from calibre.ebooks.oeb.iterator.book import EbookIterator
|
||||||
from calibre.ebooks import DRMError
|
from calibre.ebooks import DRMError
|
||||||
from calibre.constants import islinux, isbsd, filesystem_encoding
|
from calibre.constants import islinux, filesystem_encoding
|
||||||
from calibre.utils.config import Config, StringConfig, JSONConfig
|
from calibre.utils.config import Config, StringConfig, JSONConfig
|
||||||
from calibre.gui2.search_box import SearchBox2
|
from calibre.gui2.search_box import SearchBox2
|
||||||
from calibre.ebooks.metadata import MetaInformation
|
from calibre.ebooks.metadata import MetaInformation
|
||||||
@ -160,7 +160,8 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
|
|||||||
PAGED_MODE_TT = _('Switch to flow mode - where the text is not broken up '
|
PAGED_MODE_TT = _('Switch to flow mode - where the text is not broken up '
|
||||||
'into pages')
|
'into pages')
|
||||||
|
|
||||||
def __init__(self, pathtoebook=None, debug_javascript=False, open_at=None):
|
def __init__(self, pathtoebook=None, debug_javascript=False, open_at=None,
|
||||||
|
start_in_fullscreen=False):
|
||||||
MainWindow.__init__(self, None)
|
MainWindow.__init__(self, None)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.view.initialize_view(debug_javascript)
|
self.view.initialize_view(debug_javascript)
|
||||||
@ -360,6 +361,8 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
|
|||||||
|
|
||||||
self.restore_state()
|
self.restore_state()
|
||||||
self.action_toggle_paged_mode.toggled[bool].connect(self.toggle_paged_mode)
|
self.action_toggle_paged_mode.toggled[bool].connect(self.toggle_paged_mode)
|
||||||
|
if (start_in_fullscreen or self.view.document.start_in_fullscreen):
|
||||||
|
self.action_full_screen.trigger()
|
||||||
|
|
||||||
def toggle_paged_mode(self, checked, at_start=False):
|
def toggle_paged_mode(self, checked, at_start=False):
|
||||||
in_paged_mode = not self.action_toggle_paged_mode.isChecked()
|
in_paged_mode = not self.action_toggle_paged_mode.isChecked()
|
||||||
@ -399,7 +402,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
|
|||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
if self.isFullScreen():
|
if self.isFullScreen() and not self.view.document.start_in_fullscreen:
|
||||||
self.action_full_screen.trigger()
|
self.action_full_screen.trigger()
|
||||||
return False
|
return False
|
||||||
self.save_state()
|
self.save_state()
|
||||||
@ -1134,32 +1137,29 @@ def main(args=sys.argv):
|
|||||||
|
|
||||||
parser = option_parser()
|
parser = option_parser()
|
||||||
opts, args = parser.parse_args(args)
|
opts, args = parser.parse_args(args)
|
||||||
pid = os.fork() if False and (islinux or isbsd) else -1
|
|
||||||
try:
|
try:
|
||||||
open_at = float(opts.open_at)
|
open_at = float(opts.open_at)
|
||||||
except:
|
except:
|
||||||
open_at = None
|
open_at = None
|
||||||
if pid <= 0:
|
override = 'calibre-ebook-viewer' if islinux else None
|
||||||
override = 'calibre-ebook-viewer' if islinux else None
|
app = Application(args, override_program_name=override)
|
||||||
app = Application(args, override_program_name=override)
|
app.load_builtin_fonts()
|
||||||
app.load_builtin_fonts()
|
app.setWindowIcon(QIcon(I('viewer.png')))
|
||||||
app.setWindowIcon(QIcon(I('viewer.png')))
|
QApplication.setOrganizationName(ORG_NAME)
|
||||||
QApplication.setOrganizationName(ORG_NAME)
|
QApplication.setApplicationName(APP_UID)
|
||||||
QApplication.setApplicationName(APP_UID)
|
main = EbookViewer(args[1] if len(args) > 1 else None,
|
||||||
main = EbookViewer(args[1] if len(args) > 1 else None,
|
debug_javascript=opts.debug_javascript, open_at=open_at,
|
||||||
debug_javascript=opts.debug_javascript, open_at=open_at)
|
start_in_fullscreen=opts.full_screen)
|
||||||
# This is needed for paged mode. Without it, the first document that is
|
# This is needed for paged mode. Without it, the first document that is
|
||||||
# loaded will have extra blank space at the bottom, as
|
# loaded will have extra blank space at the bottom, as
|
||||||
# turn_off_internal_scrollbars does not take effect for the first
|
# turn_off_internal_scrollbars does not take effect for the first
|
||||||
# rendered document
|
# rendered document
|
||||||
main.view.load_path(P('viewer/blank.html', allow_user_override=False))
|
main.view.load_path(P('viewer/blank.html', allow_user_override=False))
|
||||||
|
|
||||||
sys.excepthook = main.unhandled_exception
|
sys.excepthook = main.unhandled_exception
|
||||||
main.show()
|
main.show()
|
||||||
if opts.raise_window:
|
if opts.raise_window:
|
||||||
main.raise_()
|
main.raise_()
|
||||||
if opts.full_screen:
|
|
||||||
main.action_full_screen.trigger()
|
|
||||||
with main:
|
with main:
|
||||||
return app.exec_()
|
return app.exec_()
|
||||||
return 0
|
return 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user