Initialize the dbus library when launching a GUI app and use the central GUI app launch points when using calibre-debug as well

This commit is contained in:
Kovid Goyal 2014-10-29 20:25:31 +05:30
parent 23dce4673d
commit a1d3533d3f
2 changed files with 23 additions and 14 deletions

View File

@ -182,8 +182,8 @@ def run_debug_gui(logpath):
from calibre.constants import __appname__ from calibre.constants import __appname__
prints(__appname__, _('Debug log')) prints(__appname__, _('Debug log'))
print_basic_debug_info() print_basic_debug_info()
from calibre.gui2.main import main from calibre.gui_launch import calibre
main(['__CALIBRE_GUI_DEBUG__', logpath]) calibre(['__CALIBRE_GUI_DEBUG__', logpath])
def run_script(path, args): def run_script(path, args):
# Load all user defined plugins so the script can import from the # Load all user defined plugins so the script can import from the
@ -212,14 +212,14 @@ def main(args=sys.argv):
opts, args = option_parser().parse_args(args) opts, args = option_parser().parse_args(args)
if opts.gui: if opts.gui:
from calibre.gui2.main import main from calibre.gui_launch import calibre
print_basic_debug_info() print_basic_debug_info()
main(['calibre']) calibre(['calibre'])
elif opts.gui_debug is not None: elif opts.gui_debug is not None:
run_debug_gui(opts.gui_debug) run_debug_gui(opts.gui_debug)
elif opts.viewer: elif opts.viewer:
from calibre.gui2.viewer.main import main from calibre.gui_launch import ebook_viewer
main(['ebook-viewer', '--debug-javascript'] + args[1:]) ebook_viewer(['ebook-viewer', '--debug-javascript'] + args[1:])
elif opts.py_console: elif opts.py_console:
from calibre.utils.pyconsole.main import main from calibre.utils.pyconsole.main import main
main() main()
@ -240,8 +240,8 @@ def main(args=sys.argv):
for path in args[1:]: for path in args[1:]:
inspect_mobi(path) inspect_mobi(path)
elif opts.edit_book: elif opts.edit_book:
from calibre.gui2.tweak_book.main import main from calibre.gui_launch import ebook_edit
main(['ebook-edit'] + args[1:]) ebook_edit(['ebook-edit'] + args[1:])
elif opts.explode_book: elif opts.explode_book:
from calibre.ebooks.tweak import tweak from calibre.ebooks.tweak import tweak
tweak(opts.explode_book) tweak(opts.explode_book)

View File

@ -33,21 +33,30 @@ def detach_gui():
if (islinux or isbsd) and not DEBUG and '--detach' in sys.argv: if (islinux or isbsd) and not DEBUG and '--detach' in sys.argv:
do_detach() do_detach()
def init_dbus():
from calibre.constants import islinux, isbsd
if islinux or isbsd:
from dbus.mainloop.glib import DBusGMainLoop, threads_init
threads_init()
DBusGMainLoop(set_as_default=True)
def calibre(): def calibre(args=sys.argv):
detach_gui() detach_gui()
init_dbus()
from calibre.gui2.main import main from calibre.gui2.main import main
main() main(args)
def ebook_viewer(): def ebook_viewer(args=sys.argv):
detach_gui() detach_gui()
init_dbus()
from calibre.gui2.viewer.main import main from calibre.gui2.viewer.main import main
main() main(args)
def ebook_edit(): def ebook_edit(args=sys.argv):
detach_gui() detach_gui()
init_dbus()
from calibre.gui2.tweak_book.main import main from calibre.gui2.tweak_book.main import main
main() main(args)
def option_parser(basename): def option_parser(basename):
if basename == 'calibre': if basename == 'calibre':