From 2353d5926eeec90e9fb2adebfcd1c63b45127b7e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 1 Feb 2017 15:42:25 +0530 Subject: [PATCH] Centralize APP_UID definitions --- src/calibre/constants.py | 15 ++++++---- src/calibre/gui2/main.py | 9 +++--- src/calibre/gui2/tweak_book/main.py | 40 +++++++++++++++---------- src/calibre/gui2/viewer/main.py | 45 +++++++++++++++++------------ 4 files changed, 66 insertions(+), 43 deletions(-) diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 83795b019a..386faaea89 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -1,8 +1,10 @@ -from future_builtins import map +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +# License: GPLv3 Copyright: 2015, Kovid Goyal + +from future_builtins import map +import sys, locale, codecs, os, importlib, collections -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' -__docformat__ = 'restructuredtext en' __appname__ = u'calibre' numeric_version = (2, 78, 0) __version__ = u'.'.join(map(unicode, numeric_version)) @@ -12,7 +14,6 @@ __author__ = u"Kovid Goyal " Various run time constants. ''' -import sys, locale, codecs, os, importlib, collections _plat = sys.platform.lower() iswindows = 'win32' in _plat or 'win64' in _plat @@ -34,7 +35,9 @@ isworker = 'CALIBRE_WORKER' in os.environ or 'CALIBRE_SIMPLE_WORKER' in os.envir if isworker: os.environ.pop('CALIBRE_FORCE_ANSI', None) FAKE_PROTOCOL, FAKE_HOST = 'https', 'calibre-internal.invalid' - +VIEWER_APP_UID = 'com.calibre-ebook.viewer' +EDITOR_APP_UID = 'com.calibre-ebook.edit-book' +MAIN_APP_UID = 'com.calibre-ebook.main-gui' try: preferred_encoding = locale.getpreferredencoding() codecs.lookup(preferred_encoding) diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index b455e50d62..fe3910ef67 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -1,5 +1,6 @@ -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal ' +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +# License: GPLv3 Copyright: 2015, Kovid Goyal import os import re @@ -15,7 +16,7 @@ from PyQt5.Qt import QCoreApplication, QIcon, QObject, QTimer from calibre import force_unicode, plugins, prints from calibre.constants import ( DEBUG, __appname__, filesystem_encoding, get_portable_base, islinux, isosx, - iswindows + iswindows, MAIN_APP_UID ) from calibre.gui2 import ( Application, choose_dir, error_dialog, gprefs, initialize_file_icon_provider, @@ -532,7 +533,7 @@ def main(args=sys.argv): # launched from within calibre, as both use calibre-parallel.exe import ctypes try: - ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('com.calibre-ebook.main-gui') + ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(MAIN_APP_UID) except Exception: pass # Only available on windows 7 and newer diff --git a/src/calibre/gui2/tweak_book/main.py b/src/calibre/gui2/tweak_book/main.py index a715edb7cc..4c9934e1b2 100644 --- a/src/calibre/gui2/tweak_book/main.py +++ b/src/calibre/gui2/tweak_book/main.py @@ -1,28 +1,36 @@ #!/usr/bin/env python2 # vim:fileencoding=utf-8 -from __future__ import (unicode_literals, division, absolute_import, - print_function) +from __future__ import absolute_import, division, print_function, unicode_literals + +import importlib +import os +import sys +import time + +from PyQt5.Qt import QIcon + +from calibre.constants import EDITOR_APP_UID, islinux, iswindows +from calibre.gui2 import ( + Application, decouple, set_gui_prefs, setup_gui_option_parser +) +from calibre.ptempfile import reset_base_dir +from calibre.utils.config import OptionParser __license__ = 'GPL v3' __copyright__ = '2013, Kovid Goyal ' -import sys, os, importlib, time - -from PyQt5.Qt import QIcon - -from calibre.constants import islinux, iswindows -from calibre.gui2 import Application, setup_gui_option_parser, decouple, set_gui_prefs -from calibre.ptempfile import reset_base_dir -from calibre.utils.config import OptionParser - def option_parser(): - parser = OptionParser(_('''\ + parser = OptionParser( + _( + '''\ %prog [opts] [path_to_ebook] [name_of_file_inside_book ...] Launch the calibre edit book tool. You can optionally also specify the names of files inside the book which will be opened for editing automatically. -''')) +''' + ) + ) setup_gui_option_parser(parser) return parser @@ -51,7 +59,9 @@ def _run(args, notify=None): # launched from within calibre, as both use calibre-parallel.exe import ctypes try: - ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('com.calibre-ebook.edit-book') + ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID( + EDITOR_APP_UID + ) except Exception: pass # Only available on windows 7 and newer @@ -93,6 +103,6 @@ def _run(args, notify=None): def main(args=sys.argv): _run(args) + if __name__ == '__main__': main() - diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index a5a204431a..c4fc929eed 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -1,29 +1,38 @@ -__license__ = 'GPL v3' -__copyright__ = '2008, Kovid Goyal ' +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +# License: GPLv3 Copyright: 2015, Kovid Goyal -import traceback, os, sys, functools +import functools +import os +import sys +import traceback from functools import partial from threading import Thread from PyQt5.Qt import ( - QApplication, Qt, QIcon, QTimer, QByteArray, QSize, QTime, QObject, - QPropertyAnimation, QInputDialog, QAction, QModelIndex, pyqtSignal) + QAction, QApplication, QByteArray, QIcon, QInputDialog, QModelIndex, QObject, + QPropertyAnimation, QSize, Qt, QTime, QTimer, pyqtSignal +) -from calibre.gui2.viewer.ui import Main as MainWindow -from calibre.gui2.viewer.toc import TOC -from calibre.gui2.widgets import ProgressIndicator -from calibre.gui2 import ( - Application, choose_files, info_dialog, error_dialog, - open_url, setup_gui_option_parser) -from calibre.ebooks.oeb.iterator.book import EbookIterator -from calibre.constants import islinux, filesystem_encoding, DEBUG, iswindows -from calibre.utils.config import Config, StringConfig, JSONConfig -from calibre.customize.ui import available_input_formats from calibre import as_unicode, force_unicode, isbytestring, prints +from calibre.constants import ( + DEBUG, VIEWER_APP_UID, filesystem_encoding, islinux, iswindows +) +from calibre.customize.ui import available_input_formats +from calibre.ebooks.oeb.iterator.book import EbookIterator +from calibre.gui2 import ( + Application, choose_files, error_dialog, info_dialog, open_url, + setup_gui_option_parser +) +from calibre.gui2.viewer.toc import TOC +from calibre.gui2.viewer.ui import Main as MainWindow +from calibre.gui2.widgets import ProgressIndicator from calibre.ptempfile import reset_base_dir -from calibre.utils.ipc import viewer_socket_address, RC +from calibre.utils.config import Config, JSONConfig, StringConfig +from calibre.utils.ipc import RC, viewer_socket_address +from calibre.utils.localization import canonicalize_lang, get_lang, lang_as_iso639_1 from calibre.utils.zipfile import BadZipfile -from calibre.utils.localization import canonicalize_lang, lang_as_iso639_1, get_lang + try: from calibre.utils.monotonic import monotonic except RuntimeError: @@ -1240,7 +1249,7 @@ def main(args=sys.argv): # launched from within calibre, as both use calibre-parallel.exe import ctypes try: - ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('com.calibre-ebook.viewer') + ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(VIEWER_APP_UID) except Exception: pass # Only available on windows 7 and newer