Remove use of global connect_lambda()

This commit is contained in:
Kovid Goyal 2023-01-09 22:33:31 +05:30
parent 6014aec7ae
commit 36ff53ca30
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
52 changed files with 235 additions and 172 deletions

View File

@ -26,6 +26,7 @@ from calibre.gui2 import (
) )
from calibre.gui2.actions import InterfaceAction from calibre.gui2.actions import InterfaceAction
from calibre.library import current_library_name from calibre.library import current_library_name
from calibre.startup import connect_lambda
from calibre.utils.config import prefs, tweaks from calibre.utils.config import prefs, tweaks
from calibre.utils.icu import sort_key from calibre.utils.icu import sort_key
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext

View File

@ -26,6 +26,7 @@ from calibre.gui2.actions import InterfaceAction
from calibre.gui2.actions.choose_library import library_qicon from calibre.gui2.actions.choose_library import library_qicon
from calibre.gui2.dialogs.progress import ProgressDialog from calibre.gui2.dialogs.progress import ProgressDialog
from calibre.gui2.widgets2 import Dialog from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.config import prefs from calibre.utils.config import prefs
from calibre.utils.icu import numeric_sort_key, sort_key from calibre.utils.icu import numeric_sort_key, sort_key
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext

View File

@ -5,11 +5,12 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
from qt.core import QIcon, QMenu, QTimer, QToolButton, pyqtSignal, QUrl from qt.core import QIcon, QMenu, QTimer, QToolButton, QUrl, pyqtSignal
from calibre.gui2 import info_dialog, question_dialog, open_url from calibre.gui2 import info_dialog, open_url, question_dialog
from calibre.gui2.actions import InterfaceAction from calibre.gui2.actions import InterfaceAction
from calibre.gui2.dialogs.smartdevice import SmartdeviceDialog from calibre.gui2.dialogs.smartdevice import SmartdeviceDialog
from calibre.startup import connect_lambda
from calibre.utils.icu import primary_sort_key from calibre.utils.icu import primary_sort_key
from calibre.utils.smtp import config as email_config from calibre.utils.smtp import config as email_config

View File

@ -5,13 +5,15 @@ __license__ = 'GPL v3'
__copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
from functools import partial from functools import partial
from qt.core import (
from qt.core import (QTimer, QApplication, Qt, QEvent, QDialog, QMenu, QIcon, QApplication, QDialog, QDialogButtonBox, QEvent, QGridLayout, QIcon, QLabel, QMenu,
QDialogButtonBox, QPushButton, QLabel, QGridLayout) QPushButton, Qt, QTimer,
)
from calibre.gui2 import error_dialog from calibre.gui2 import error_dialog
from calibre.gui2.actions import InterfaceAction from calibre.gui2.actions import InterfaceAction
from calibre.gui2.widgets2 import HistoryComboBox from calibre.gui2.widgets2 import HistoryComboBox
from calibre.startup import connect_lambda
from calibre.utils.icu import sort_key from calibre.utils.icu import sort_key

View File

@ -22,6 +22,7 @@ from calibre.gui2.actions import InterfaceAction
from calibre.gui2.convert.metadata import create_opf_file from calibre.gui2.convert.metadata import create_opf_file
from calibre.gui2.dialogs.progress import ProgressDialog from calibre.gui2.dialogs.progress import ProgressDialog
from calibre.ptempfile import PersistentTemporaryDirectory from calibre.ptempfile import PersistentTemporaryDirectory
from calibre.startup import connect_lambda
from calibre.utils.config_base import tweaks from calibre.utils.config_base import tweaks
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext
from polyglot.builtins import iteritems, itervalues from polyglot.builtins import iteritems, itervalues

View File

@ -9,6 +9,7 @@ __docformat__ = 'restructuredtext en'
from qt.core import QToolButton from qt.core import QToolButton
from calibre.gui2.actions import InterfaceAction from calibre.gui2.actions import InterfaceAction
from calibre.startup import connect_lambda
from calibre.utils.icu import lower as icu_lower from calibre.utils.icu import lower as icu_lower
from polyglot.builtins import string_or_bytes from polyglot.builtins import string_or_bytes

View File

@ -6,14 +6,15 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import os import os
from itertools import count
from collections import OrderedDict from collections import OrderedDict
from itertools import count
from qt.core import ( from qt.core import (
QCheckBox, QDialog, QDialogButtonBox, QGridLayout, QIcon, QLabel, QTimer QCheckBox, QDialog, QDialogButtonBox, QGridLayout, QIcon, QLabel, QTimer,
) )
from calibre.gui2 import error_dialog, gprefs, question_dialog from calibre.gui2 import error_dialog, gprefs, question_dialog
from calibre.gui2.actions import InterfaceAction from calibre.gui2.actions import InterfaceAction
from calibre.startup import connect_lambda
from calibre.utils.monotonic import monotonic from calibre.utils.monotonic import monotonic
from polyglot.builtins import iteritems from polyglot.builtins import iteritems
@ -148,7 +149,10 @@ class ToCEditAction(InterfaceAction):
self.do_one(book_id, fmt) self.do_one(book_id, fmt)
def do_one(self, book_id, fmt): def do_one(self, book_id, fmt):
import struct, json, atexit import atexit
import json
import struct
from calibre.utils.shm import SharedMemory from calibre.utils.shm import SharedMemory
db = self.gui.current_db db = self.gui.current_db
path = db.format(book_id, fmt, index_is_id=True, as_path=True) path = db.format(book_id, fmt, index_is_id=True, as_path=True)

View File

@ -6,11 +6,13 @@ __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import time import time
from qt.core import (
from qt.core import QTimer, QDialog, QDialogButtonBox, QCheckBox, QVBoxLayout, QLabel, Qt QCheckBox, QDialog, QDialogButtonBox, QLabel, Qt, QTimer, QVBoxLayout,
)
from calibre.gui2 import error_dialog, question_dialog from calibre.gui2 import error_dialog, question_dialog
from calibre.gui2.actions import InterfaceAction from calibre.gui2.actions import InterfaceAction
from calibre.startup import connect_lambda
class Choose(QDialog): class Choose(QDialog):

View File

@ -30,6 +30,7 @@ from calibre.gui2.dnd import (
dnd_get_files, dnd_get_image, dnd_has_extension, dnd_has_image, image_extensions, dnd_get_files, dnd_get_image, dnd_has_extension, dnd_has_image, image_extensions,
) )
from calibre.gui2.widgets2 import HTMLDisplay from calibre.gui2.widgets2 import HTMLDisplay
from calibre.startup import connect_lambda
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
from calibre.utils.img import blend_image, image_from_x from calibre.utils.img import blend_image, image_from_x
from calibre.utils.localization import is_rtl, langnames_to_langcodes from calibre.utils.localization import is_rtl, langnames_to_langcodes

View File

@ -10,23 +10,24 @@ from contextlib import contextmanager
from html5_parser import parse from html5_parser import parse
from lxml import html from lxml import html
from qt.core import ( from qt.core import (
QAction, QApplication, QBrush, QByteArray, QCheckBox, QColor, QColorDialog, QAction, QApplication, QBrush, QByteArray, QCheckBox, QColor, QColorDialog, QDialog,
QDialog, QDialogButtonBox, QFont, QFontInfo, QFontMetrics, QFormLayout, QIcon, QDialogButtonBox, QFont, QFontInfo, QFontMetrics, QFormLayout, QIcon, QKeySequence,
QKeySequence, QLabel, QLineEdit, QMenu, QPalette, QPlainTextEdit, QPushButton, QLabel, QLineEdit, QMenu, QPalette, QPlainTextEdit, QPushButton, QSize,
QSize, QSyntaxHighlighter, Qt, QTabWidget, QTextBlockFormat, QTextCharFormat, QSyntaxHighlighter, Qt, QTabWidget, QTextBlockFormat, QTextCharFormat, QTextCursor,
QTextCursor, QTextEdit, QTextFormat, QTextListFormat, QTimer, QToolButton, QUrl, QTextEdit, QTextFormat, QTextListFormat, QTimer, QToolButton, QUrl, QVBoxLayout,
QVBoxLayout, QWidget, pyqtSignal, pyqtSlot QWidget, pyqtSignal, pyqtSlot,
) )
from calibre import xml_replace_entities from calibre import xml_replace_entities
from calibre.ebooks.chardet import xml_to_unicode from calibre.ebooks.chardet import xml_to_unicode
from calibre.gui2 import ( from calibre.gui2 import (
NO_URL_FORMATTING, choose_files, error_dialog, gprefs, is_dark_theme NO_URL_FORMATTING, choose_files, error_dialog, gprefs, is_dark_theme,
) )
from calibre.gui2.book_details import css from calibre.gui2.book_details import css
from calibre.gui2.flow_toolbar import create_flow_toolbar from calibre.gui2.flow_toolbar import create_flow_toolbar
from calibre.gui2.widgets import LineEditECM from calibre.gui2.widgets import LineEditECM
from calibre.gui2.widgets2 import to_plain_text from calibre.gui2.widgets2 import to_plain_text
from calibre.startup import connect_lambda
from calibre.utils.cleantext import clean_xml_chars from calibre.utils.cleantext import clean_xml_chars
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
from calibre.utils.imghdr import what from calibre.utils.imghdr import what

View File

@ -6,12 +6,12 @@ __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import json import json
from qt.core import QDialog, Qt
from qt.core import Qt, QDialog
from calibre.gui2.convert.look_and_feel_ui import Ui_Form
from calibre.gui2.convert import Widget
from calibre.ebooks.conversion.config import OPTIONS from calibre.ebooks.conversion.config import OPTIONS
from calibre.gui2.convert import Widget
from calibre.gui2.convert.look_and_feel_ui import Ui_Form
from calibre.startup import connect_lambda
from polyglot.builtins import iteritems from polyglot.builtins import iteritems

View File

@ -6,19 +6,19 @@ from collections import OrderedDict
from contextlib import suppress from contextlib import suppress
from copy import deepcopy from copy import deepcopy
from qt.core import ( from qt.core import (
QCheckBox, QColor, QColorDialog, QDialog, QDialogButtonBox, QCheckBox, QColor, QColorDialog, QDialog, QDialogButtonBox, QFormLayout, QFrame,
QFormLayout, QFrame, QGridLayout, QHBoxLayout, QIcon, QInputDialog, QLabel, QGridLayout, QHBoxLayout, QIcon, QInputDialog, QLabel, QLineEdit, QListWidget,
QLineEdit, QListWidget, QListWidgetItem, QMenu, QPixmap, QPushButton, QSize, QListWidgetItem, QMenu, QPixmap, QPushButton, QSize, QSizePolicy, QSpinBox, Qt,
QSizePolicy, QSpinBox, Qt, QTabWidget, QTimer, QToolButton, QVBoxLayout, QWidget, QTabWidget, QTimer, QToolButton, QVBoxLayout, QWidget, pyqtSignal,
pyqtSignal
) )
from calibre.constants import config_dir from calibre.constants import config_dir
from calibre.ebooks.covers import ( from calibre.ebooks.covers import (
all_styles, cprefs, default_color_themes, generate_cover, override_prefs all_styles, cprefs, default_color_themes, generate_cover, override_prefs,
) )
from calibre.gui2 import error_dialog, gprefs from calibre.gui2 import error_dialog, gprefs
from calibre.gui2.font_family_chooser import FontFamilyChooser from calibre.gui2.font_family_chooser import FontFamilyChooser
from calibre.startup import connect_lambda
from calibre.utils.date import now from calibre.utils.date import now
from calibre.utils.filenames import make_long_path_useable from calibre.utils.filenames import make_long_path_useable
from calibre.utils.icu import primary_sort_key, sort_key from calibre.utils.icu import primary_sort_key, sort_key

View File

@ -43,6 +43,7 @@ from calibre.library.save_to_disk import find_plugboard
from calibre.ptempfile import ( from calibre.ptempfile import (
PersistentTemporaryFile, force_unicode as filename_to_unicode, PersistentTemporaryFile, force_unicode as filename_to_unicode,
) )
from calibre.startup import connect_lambda
from calibre.utils.config import device_prefs, tweaks from calibre.utils.config import device_prefs, tweaks
from calibre.utils.filenames import ascii_filename from calibre.utils.filenames import ascii_filename
from calibre.utils.img import scale_image from calibre.utils.img import scale_image

View File

@ -4,21 +4,21 @@
import textwrap import textwrap
from qt.core import ( from qt.core import (
QAction, QApplication, QBrush, QCheckBox, QDialog, QGridLayout, QAction, QApplication, QBrush, QCheckBox, QDialog, QDialogButtonBox, QGridLayout,
QHBoxLayout, QIcon, QKeySequence, QLabel, QListView, QModelIndex, QPalette, QHBoxLayout, QIcon, QKeySequence, QLabel, QListView, QModelIndex, QPalette, QPixmap,
QPixmap, QPushButton, QShortcut, QSize, Qt, QTimer, QToolButton, QPushButton, QShortcut, QSize, QSplitter, Qt, QTimer, QToolButton, QVBoxLayout,
QVBoxLayout, QWidget, pyqtSignal, QDialogButtonBox, QSplitter QWidget, pyqtSignal,
) )
from calibre import fit_image from calibre import fit_image
from calibre.gui2 import NO_URL_FORMATTING, gprefs from calibre.gui2 import NO_URL_FORMATTING, gprefs
from calibre.gui2.book_details import ( from calibre.gui2.book_details import (
create_open_cover_with_menu, css, details_context_menu_event, render_html, create_open_cover_with_menu, css, details_context_menu_event, render_html, set_html,
set_html
) )
from calibre.gui2.ui import get_gui from calibre.gui2.ui import get_gui
from calibre.gui2.widgets import CoverView from calibre.gui2.widgets import CoverView
from calibre.gui2.widgets2 import Dialog, HTMLDisplay from calibre.gui2.widgets2 import Dialog, HTMLDisplay
from calibre.startup import connect_lambda
class Cover(CoverView): class Cover(CoverView):
@ -60,7 +60,7 @@ class Configure(Dialog):
def setup_ui(self): def setup_ui(self):
from calibre.gui2.preferences.look_feel import ( from calibre.gui2.preferences.look_feel import (
DisplayedFields, move_field_down, move_field_up DisplayedFields, move_field_down, move_field_up,
) )
self.l = QVBoxLayout(self) self.l = QVBoxLayout(self)
self.field_display_order = fdo = QListView(self) self.field_display_order = fdo = QListView(self)

View File

@ -2,12 +2,13 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QDialog, QListWidgetItem, QModelIndex, QIcon, QLabel, QVBoxLayout, QSize, QDialog, QDialogButtonBox, QHBoxLayout, QIcon, QLabel, QListWidget, QListWidgetItem,
QDialogButtonBox, QListWidget, QHBoxLayout, QPushButton, QMenu) QMenu, QModelIndex, QPushButton, QSize, QVBoxLayout,
)
from calibre.gui2 import file_icon_provider from calibre.gui2 import file_icon_provider
from calibre.startup import connect_lambda
class ChooseFormatDialog(QDialog): class ChooseFormatDialog(QDialog):
@ -51,7 +52,7 @@ class ChooseFormatDialog(QDialog):
self.update_open_with_button() self.update_open_with_button()
def populate_open_with(self): def populate_open_with(self):
from calibre.gui2.open_with import populate_menu, edit_programs from calibre.gui2.open_with import edit_programs, populate_menu
menu = self.own menu = self.own
menu.clear() menu.clear()
fmt = self._formats[self.formats.currentRow()] fmt = self._formats[self.formats.currentRow()]

View File

@ -6,7 +6,7 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
from qt.core import ( from qt.core import (
QDialog, Qt, QIcon, QVBoxLayout, QHBoxLayout, QLabel, QCheckBox, QDialogButtonBox QCheckBox, QDialog, QDialogButtonBox, QHBoxLayout, QIcon, QLabel, Qt, QVBoxLayout,
) )
from calibre import confirm_config_name from calibre import confirm_config_name

View File

@ -6,8 +6,10 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' \
'2010, John Schember <john@nachtimwald.com>' '2010, John Schember <john@nachtimwald.com>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
from qt.core import QDialog, QIcon, Qt
from calibre.gui2.dialogs.confirm_delete_location_ui import Ui_Dialog from calibre.gui2.dialogs.confirm_delete_location_ui import Ui_Dialog
from qt.core import QDialog, Qt, QIcon from calibre.startup import connect_lambda
class Dialog(QDialog, Ui_Dialog): class Dialog(QDialog, Ui_Dialog):

View File

@ -5,14 +5,16 @@ __license__ = 'GPL v3'
__copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
from qt.core import ( from qt.core import (
QVBoxLayout, QSplitter, QWidget, QLabel, QCheckBox, QTextBrowser, Qt, QDialog, QDialogButtonBox QCheckBox, QDialog, QDialogButtonBox, QLabel, QSplitter, Qt, QTextBrowser,
QVBoxLayout, QWidget,
) )
from calibre.ebooks.metadata import authors_to_string from calibre.ebooks.metadata import authors_to_string
from calibre.ebooks.metadata.book.base import field_metadata from calibre.ebooks.metadata.book.base import field_metadata
from calibre.gui2 import dynamic, gprefs from calibre.gui2 import dynamic, gprefs
from calibre.gui2.widgets2 import Dialog
from calibre.gui2.dialogs.confirm_delete import confirm_config_name from calibre.gui2.dialogs.confirm_delete import confirm_config_name
from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
from calibre.utils.date import format_date from calibre.utils.date import format_date

View File

@ -2,22 +2,23 @@
# License: GPLv3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net> # License: GPLv3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
import os
import stat
from functools import partial from functools import partial
from threading import Thread, Event
import os, stat
from qt.core import ( from qt.core import (
QSize, QStackedLayout, QWidget, QVBoxLayout, QLabel, QPushButton, QAbstractItemView, QDialog, QDialogButtonBox, QFrame, QGridLayout, QIcon, QLabel,
QListWidget, QListWidgetItem, QIcon, Qt, pyqtSignal, QGridLayout, QLineEdit, QListWidget, QListWidgetItem, QProgressBar, QPushButton, QScrollArea,
QProgressBar, QDialog, QDialogButtonBox, QScrollArea, QLineEdit, QFrame, QAbstractItemView QSize, QStackedLayout, Qt, QVBoxLayout, QWidget, pyqtSignal,
) )
from threading import Event, Thread
from calibre import human_readable, as_unicode from calibre import as_unicode, human_readable
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre.db.legacy import LibraryDatabase from calibre.db.legacy import LibraryDatabase
from calibre.gui2 import choose_dir, error_dialog, question_dialog from calibre.gui2 import choose_dir, error_dialog, question_dialog
from calibre.gui2.widgets2 import Dialog from calibre.gui2.widgets2 import Dialog
from calibre.utils.exim import all_known_libraries, export, Importer, import_data from calibre.startup import connect_lambda
from calibre.utils.exim import Importer, all_known_libraries, export, import_data
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key

View File

@ -28,6 +28,7 @@ from calibre.gui2.dialogs.metadata_bulk_ui import Ui_MetadataBulkDialog
from calibre.gui2.dialogs.tag_editor import TagEditor from calibre.gui2.dialogs.tag_editor import TagEditor
from calibre.gui2.dialogs.template_line_editor import TemplateLineEditor from calibre.gui2.dialogs.template_line_editor import TemplateLineEditor
from calibre.gui2.widgets import LineEditECM from calibre.gui2.widgets import LineEditECM
from calibre.startup import connect_lambda
from calibre.utils.config import JSONConfig, dynamic, prefs, tweaks from calibre.utils.config import JSONConfig, dynamic, prefs, tweaks
from calibre.utils.date import internal_iso_format_string, qt_to_dt from calibre.utils.date import internal_iso_format_string, qt_to_dt
from calibre.utils.icu import ( from calibre.utils.icu import (

View File

@ -1,22 +1,23 @@
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
import re, copy import copy
import re
from datetime import date from datetime import date
from qt.core import ( from qt.core import (
QDialog, QDialogButtonBox, QFrame, QLabel, QComboBox, QIcon, QVBoxLayout, Qt, QComboBox, QDialog, QDialogButtonBox, QFormLayout, QFrame, QGroupBox, QHBoxLayout,
QSize, QHBoxLayout, QTabWidget, QLineEdit, QWidget, QGroupBox, QFormLayout, QIcon, QLabel, QLineEdit, QPushButton, QRadioButton, QSize, QSpinBox, Qt,
QSpinBox, QRadioButton, QPushButton, QToolButton QTabWidget, QToolButton, QVBoxLayout, QWidget,
) )
from calibre import strftime from calibre import strftime
from calibre.library.caches import CONTAINS_MATCH, EQUALS_MATCH, REGEXP_MATCH
from calibre.gui2 import gprefs from calibre.gui2 import gprefs
from calibre.gui2.complete2 import EditWithComplete from calibre.gui2.complete2 import EditWithComplete
from calibre.utils.icu import sort_key from calibre.library.caches import CONTAINS_MATCH, EQUALS_MATCH, REGEXP_MATCH
from calibre.startup import connect_lambda
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
from calibre.utils.date import now from calibre.utils.date import now
from calibre.utils.icu import sort_key
from calibre.utils.localization import localize_user_manual_link from calibre.utils.localization import localize_user_manual_link
box_values = {} box_values = {}

View File

@ -9,6 +9,7 @@ from calibre.constants import islinux
from calibre.gui2 import error_dialog, gprefs, question_dialog from calibre.gui2 import error_dialog, gprefs, question_dialog
from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.confirm_delete import confirm
from calibre.gui2.dialogs.tag_editor_ui import Ui_TagEditor from calibre.gui2.dialogs.tag_editor_ui import Ui_TagEditor
from calibre.startup import connect_lambda
from calibre.utils.icu import sort_key from calibre.utils.icu import sort_key

View File

@ -6,9 +6,10 @@ import os
from functools import lru_cache from functools import lru_cache
from qt.core import ( from qt.core import (
QApplication, QEvent, QInputDevice, QMouseEvent, QObject, QPointF, QScroller, Qt, QApplication, QEvent, QInputDevice, QMouseEvent, QObject, QPointF, QScroller, Qt,
pyqtSignal pyqtSignal,
) )
from calibre.startup import connect_lambda
from calibre.utils.monotonic import monotonic from calibre.utils.monotonic import monotonic
from polyglot.builtins import itervalues from polyglot.builtins import itervalues

View File

@ -27,6 +27,7 @@ from calibre.gui2.dialogs.jobs_ui import Ui_JobsDialog
from calibre.gui2.progress_indicator import ProgressIndicator from calibre.gui2.progress_indicator import ProgressIndicator
from calibre.gui2.threaded_jobs import ThreadedJob, ThreadedJobServer from calibre.gui2.threaded_jobs import ThreadedJob, ThreadedJobServer
from calibre.gui2.widgets2 import Dialog from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.icu import lower from calibre.utils.icu import lower
from calibre.utils.ipc.job import ParallelJob from calibre.utils.ipc.job import ParallelJob
from calibre.utils.ipc.server import Server from calibre.utils.ipc.server import Server

View File

@ -29,6 +29,7 @@ from calibre.gui2.dialogs.confirm_delete import confirm
from calibre.gui2.viewer.widgets import ResultsDelegate, SearchBox from calibre.gui2.viewer.widgets import ResultsDelegate, SearchBox
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.gui2.widgets2 import Dialog, RightClickButton from calibre.gui2.widgets2 import Dialog, RightClickButton
from calibre.startup import connect_lambda
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext

View File

@ -14,6 +14,7 @@ from threading import Thread
from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.ebooks.metadata.opf2 import metadata_to_opf
from calibre.gui2.threaded_jobs import ThreadedJob from calibre.gui2.threaded_jobs import ThreadedJob
from calibre.ptempfile import PersistentTemporaryDirectory, PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryDirectory, PersistentTemporaryFile
from calibre.startup import connect_lambda
from calibre.utils.ipc.simple_worker import WorkerError, fork_job from calibre.utils.ipc.simple_worker import WorkerError, fork_job
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext
from polyglot.builtins import iteritems from polyglot.builtins import iteritems

View File

@ -25,6 +25,7 @@ from calibre.gui2.languages import LanguagesEdit as LE
from calibre.gui2.metadata.basic_widgets import PubdateEdit, RatingEdit from calibre.gui2.metadata.basic_widgets import PubdateEdit, RatingEdit
from calibre.gui2.widgets2 import RightClickButton from calibre.gui2.widgets2 import RightClickButton
from calibre.ptempfile import PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryFile
from calibre.startup import connect_lambda
from calibre.utils.date import UNDEFINED_DATE from calibre.utils.date import UNDEFINED_DATE
from calibre.utils.icu import lower as icu_lower from calibre.utils.icu import lower as icu_lower
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext

View File

@ -4,12 +4,12 @@
import re import re
import textwrap import textwrap
from qt.core import QAbstractItemView, QAbstractTableModel, QFont, Qt
from qt.core import QAbstractTableModel, QFont, Qt, QAbstractItemView
from calibre.gui2 import gprefs from calibre.gui2 import gprefs
from calibre.gui2.preferences import AbortCommit, ConfigWidgetBase, test_widget from calibre.gui2.preferences import AbortCommit, ConfigWidgetBase, test_widget
from calibre.gui2.preferences.email_ui import Ui_Form from calibre.gui2.preferences.email_ui import Ui_Form
from calibre.startup import connect_lambda
from calibre.utils.config import ConfigProxy from calibre.utils.config import ConfigProxy
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key
from calibre.utils.smtp import config as smtp_prefs from calibre.utils.smtp import config as smtp_prefs

View File

@ -37,6 +37,7 @@ from calibre.gui2.preferences.coloring import EditRules
from calibre.gui2.preferences.look_feel_ui import Ui_Form from calibre.gui2.preferences.look_feel_ui import Ui_Form
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.gui2.widgets2 import Dialog from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.config import prefs from calibre.utils.config import prefs
from calibre.utils.icu import sort_key from calibre.utils.icu import sort_key
from calibre.utils.localization import available_translations, get_lang, get_language from calibre.utils.localization import available_translations, get_lang, get_language

View File

@ -5,12 +5,13 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
from qt.core import QAbstractListModel, Qt, QIcon, QItemSelectionModel from qt.core import QAbstractListModel, QIcon, QItemSelectionModel, Qt
from calibre import force_unicode from calibre import force_unicode
from calibre.gui2 import error_dialog, gprefs, warning_dialog
from calibre.gui2.preferences import AbortCommit, ConfigWidgetBase, test_widget
from calibre.gui2.preferences.toolbar_ui import Ui_Form from calibre.gui2.preferences.toolbar_ui import Ui_Form
from calibre.gui2 import gprefs, warning_dialog, error_dialog from calibre.startup import connect_lambda
from calibre.gui2.preferences import ConfigWidgetBase, test_widget, AbortCommit
from calibre.utils.icu import primary_sort_key from calibre.utils.icu import primary_sort_key

View File

@ -7,22 +7,23 @@ import os
import shutil import shutil
from qt.core import ( from qt.core import (
QApplication, QHBoxLayout, QIcon, QLabel, QProgressBar, QPushButton, QSize, QUrl, QApplication, QHBoxLayout, QIcon, QLabel, QProgressBar, QPushButton, QSize, QUrl,
QVBoxLayout, QWidget, pyqtSignal QVBoxLayout, QWidget, pyqtSignal,
) )
from qt.webengine import ( from qt.webengine import (
QWebEngineDownloadRequest, QWebEnginePage, QWebEngineProfile, QWebEngineView QWebEngineDownloadRequest, QWebEnginePage, QWebEngineProfile, QWebEngineView,
) )
from calibre import random_user_agent, url_slash_cleaner from calibre import random_user_agent, url_slash_cleaner
from calibre.constants import STORE_DIALOG_APP_UID, islinux, iswindows from calibre.constants import STORE_DIALOG_APP_UID, islinux, iswindows
from calibre.ebooks import BOOK_EXTENSIONS from calibre.ebooks import BOOK_EXTENSIONS
from calibre.gui2 import ( from calibre.gui2 import (
Application, choose_save_file, error_dialog, gprefs, info_dialog, set_app_uid Application, choose_save_file, error_dialog, gprefs, info_dialog, set_app_uid,
) )
from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.confirm_delete import confirm
from calibre.gui2.listener import send_message_in_process from calibre.gui2.listener import send_message_in_process
from calibre.gui2.main_window import MainWindow from calibre.gui2.main_window import MainWindow
from calibre.ptempfile import PersistentTemporaryDirectory, reset_base_dir from calibre.ptempfile import PersistentTemporaryDirectory, reset_base_dir
from calibre.startup import connect_lambda
from calibre.utils.webengine import setup_profile from calibre.utils.webengine import setup_profile
from polyglot.binary import as_base64_bytes, from_base64_bytes from polyglot.binary import as_base64_bytes, from_base64_bytes
from polyglot.builtins import string_or_bytes from polyglot.builtins import string_or_bytes

View File

@ -22,6 +22,7 @@ from calibre.gui2.dialogs.tag_list_editor import TagListEditor
from calibre.gui2.tag_browser.view import TagsView from calibre.gui2.tag_browser.view import TagsView
from calibre.gui2.widgets import HistoryLineEdit from calibre.gui2.widgets import HistoryLineEdit
from calibre.library.field_metadata import category_icon_map from calibre.library.field_metadata import category_icon_map
from calibre.startup import connect_lambda
from calibre.utils.icu import sort_key from calibre.utils.icu import sort_key
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext
from polyglot.builtins import iteritems from polyglot.builtins import iteritems

View File

@ -16,6 +16,7 @@ from calibre.gui2 import Application, error_dialog, question_dialog
from calibre.gui2.complete2 import EditWithComplete from calibre.gui2.complete2 import EditWithComplete
from calibre.gui2.ui import get_gui from calibre.gui2.ui import get_gui
from calibre.gui2.widgets2 import Dialog from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.config import JSONConfig from calibre.utils.config import JSONConfig
from calibre.utils.localization import localize_user_manual_link from calibre.utils.localization import localize_user_manual_link
from polyglot.builtins import iteritems from polyglot.builtins import iteritems

View File

@ -26,6 +26,7 @@ from calibre.gui2.convert.xpath_wizard import XPathEdit
from calibre.gui2.progress_indicator import ProgressIndicator from calibre.gui2.progress_indicator import ProgressIndicator
from calibre.gui2.toc.location import ItemEdit from calibre.gui2.toc.location import ItemEdit
from calibre.ptempfile import reset_base_dir from calibre.ptempfile import reset_base_dir
from calibre.startup import connect_lambda
from calibre.utils.config import JSONConfig from calibre.utils.config import JSONConfig
from calibre.utils.filenames import atomic_rename from calibre.utils.filenames import atomic_rename
from calibre.utils.icu import lower as icu_lower, upper as icu_upper from calibre.utils.icu import lower as icu_lower, upper as icu_upper

View File

@ -61,6 +61,7 @@ from calibre.gui2.tweak_book.widgets import (
) )
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.ptempfile import PersistentTemporaryDirectory, TemporaryDirectory from calibre.ptempfile import PersistentTemporaryDirectory, TemporaryDirectory
from calibre.startup import connect_lambda
from calibre.utils.config import JSONConfig from calibre.utils.config import JSONConfig
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key
from calibre.utils.imghdr import identify from calibre.utils.imghdr import identify

View File

@ -9,16 +9,17 @@ import textwrap
from bisect import bisect from bisect import bisect
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QAbstractItemModel, QAbstractListModel, QApplication, QCheckBox, QGridLayout, QAbstractItemModel, QAbstractItemView, QAbstractListModel, QApplication, QCheckBox,
QHBoxLayout, QIcon, QInputMethodEvent, QLabel, QListView, QMenu, QMimeData, QDialogButtonBox, QGridLayout, QHBoxLayout, QIcon, QInputMethodEvent, QLabel,
QModelIndex, QPen, QPushButton, QSize, QSizePolicy, QSplitter, QListView, QMenu, QMimeData, QModelIndex, QPen, QPushButton, QSize, QSizePolicy,
QStyledItemDelegate, Qt, QToolButton, QTreeView, pyqtSignal, QAbstractItemView, QDialogButtonBox QSplitter, QStyledItemDelegate, Qt, QToolButton, QTreeView, pyqtSignal,
) )
from calibre.gui2.tweak_book import tprefs from calibre.gui2.tweak_book import tprefs
from calibre.gui2.tweak_book.widgets import Dialog from calibre.gui2.tweak_book.widgets import Dialog
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.gui2.widgets2 import HistoryLineEdit2 from calibre.gui2.widgets2 import HistoryLineEdit2
from calibre.startup import connect_lambda
from calibre.utils.icu import safe_chr as codepoint_to_chr from calibre.utils.icu import safe_chr as codepoint_to_chr
from calibre.utils.unicode_names import character_name_from_code, points_for_word from calibre.utils.unicode_names import character_name_from_code, points_for_word
from calibre_extensions.progress_indicator import set_no_activate_on_click from calibre_extensions.progress_indicator import set_no_activate_on_click

View File

@ -4,22 +4,26 @@
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
import sys, os, re, textwrap import os
import re
import sys
import textwrap
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QGridLayout, QToolButton, QIcon, QRadioButton, QMenu, QApplication, Qt, QApplication, QCursor, QDialogButtonBox, QEventLoop, QGridLayout, QHBoxLayout,
QSize, QWidget, QLabel, QStackedLayout, QPainter, QRect, QVBoxLayout, QIcon, QKeySequence, QLabel, QMenu, QPainter, QRadioButton, QRect, QSize,
QCursor, QEventLoop, QKeySequence, pyqtSignal, QTimer, QHBoxLayout, QDialogButtonBox) QStackedLayout, Qt, QTimer, QToolButton, QVBoxLayout, QWidget, pyqtSignal,
)
from calibre.ebooks.oeb.polish.container import Container from calibre.ebooks.oeb.polish.container import Container
from calibre.ebooks.oeb.polish.utils import guess_type from calibre.ebooks.oeb.polish.utils import guess_type
from calibre.gui2 import info_dialog from calibre.gui2 import info_dialog
from calibre.gui2.progress_indicator import ProgressIndicator from calibre.gui2.progress_indicator import ProgressIndicator
from calibre.gui2.tweak_book.editor import syntax_from_mime
from calibre.gui2.tweak_book.diff.view import DiffView from calibre.gui2.tweak_book.diff.view import DiffView
from calibre.gui2.tweak_book.editor import syntax_from_mime
from calibre.gui2.tweak_book.widgets import Dialog from calibre.gui2.tweak_book.widgets import Dialog
from calibre.gui2.widgets2 import HistoryLineEdit2 from calibre.gui2.widgets2 import HistoryLineEdit2
from calibre.startup import connect_lambda
from calibre.utils.filenames import samefile from calibre.utils.filenames import samefile
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key
from polyglot.builtins import iteritems from polyglot.builtins import iteritems
@ -97,7 +101,7 @@ def changed_files(list_of_names1, list_of_names2, get_data1, get_data2):
def get_decoded_raw(name): def get_decoded_raw(name):
from calibre.ebooks.chardet import xml_to_unicode, force_encoding from calibre.ebooks.chardet import force_encoding, xml_to_unicode
with open(name, 'rb') as f: with open(name, 'rb') as f:
raw = f.read() raw = f.read()
syntax = syntax_from_mime(name, guess_type(name)) syntax = syntax_from_mime(name, guess_type(name))

View File

@ -10,10 +10,10 @@ from functools import partial
from itertools import chain from itertools import chain
from math import ceil from math import ceil
from qt.core import ( from qt.core import (
QApplication, QBrush, QColor, QEvent, QEventLoop, QFont, QHBoxLayout, QApplication, QBrush, QColor, QEvent, QEventLoop, QFont, QHBoxLayout, QIcon, QImage,
QIcon, QImage, QKeySequence, QMenu, QPainter, QPainterPath, QPalette, QPen, QKeySequence, QMenu, QPainter, QPainterPath, QPalette, QPen, QPixmap,
QPixmap, QPlainTextEdit, QRect, QScrollBar, QSplitter, QSplitterHandle, Qt, QPlainTextEdit, QRect, QScrollBar, QSplitter, QSplitterHandle, Qt, QTextCharFormat,
QTextCharFormat, QTextCursor, QTextLayout, QTimer, QWidget, pyqtSignal QTextCursor, QTextLayout, QTimer, QWidget, pyqtSignal,
) )
from calibre import fit_image, human_readable from calibre import fit_image, human_readable
@ -22,10 +22,11 @@ from calibre.gui2.tweak_book import tprefs
from calibre.gui2.tweak_book.diff import get_sequence_matcher from calibre.gui2.tweak_book.diff import get_sequence_matcher
from calibre.gui2.tweak_book.diff.highlight import get_highlighter from calibre.gui2.tweak_book.diff.highlight import get_highlighter
from calibre.gui2.tweak_book.editor.text import ( from calibre.gui2.tweak_book.editor.text import (
LineNumbers, PlainTextEdit, default_font_family LineNumbers, PlainTextEdit, default_font_family,
) )
from calibre.gui2.tweak_book.editor.themes import get_theme, theme_color from calibre.gui2.tweak_book.editor.themes import get_theme, theme_color
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.startup import connect_lambda
from calibre.utils.icu import utf16_length from calibre.utils.icu import utf16_length
from calibre.utils.xml_parse import safe_xml_fromstring from calibre.utils.xml_parse import safe_xml_fromstring
from polyglot.builtins import as_bytes, iteritems from polyglot.builtins import as_bytes, iteritems

View File

@ -15,6 +15,7 @@ from calibre.gui2 import error_dialog, info_dialog, warning_dialog
from calibre.gui2.progress_indicator import WaitStack from calibre.gui2.progress_indicator import WaitStack
from calibre.gui2.tweak_book import current_container from calibre.gui2.tweak_book import current_container
from calibre.gui2.tweak_book.widgets import Dialog from calibre.gui2.tweak_book.widgets import Dialog
from calibre.startup import connect_lambda
from calibre.utils.localization import ngettext from calibre.utils.localization import ngettext
from polyglot.builtins import iteritems from polyglot.builtins import iteritems

View File

@ -5,14 +5,16 @@ __license__ = 'GPL v3'
__copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
import sys import sys
from qt.core import ( from qt.core import (
QMainWindow, Qt, QApplication, pyqtSignal, QLabel, QIcon, QFormLayout, QSize, QApplication, QCheckBox, QDialog, QDialogButtonBox, QFormLayout, QIcon,
QDialog, QSpinBox, QCheckBox, QDialogButtonBox, QToolButton, QMenu, QInputDialog) QInputDialog, QLabel, QMainWindow, QMenu, QSize, QSpinBox, Qt, QToolButton,
pyqtSignal,
)
from calibre.gui2 import error_dialog from calibre.gui2 import error_dialog
from calibre.gui2.tweak_book import actions, tprefs, editors from calibre.gui2.tweak_book import actions, editors, tprefs
from calibre.gui2.tweak_book.editor.canvas import Canvas from calibre.gui2.tweak_book.editor.canvas import Canvas
from calibre.startup import connect_lambda
from polyglot.builtins import itervalues from polyglot.builtins import itervalues

View File

@ -8,10 +8,11 @@ import os
import sys import sys
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QAbstractListModel, QApplication, QCheckBox, QFormLayout, QGridLayout, QClipboard, QAbstractListModel, QApplication, QCheckBox, QClipboard, QDialog, QDialogButtonBox,
QHBoxLayout, QIcon, QInputDialog, QLabel, QLineEdit, QListView, QMenu, QPainter, QFormLayout, QGridLayout, QHBoxLayout, QIcon, QInputDialog, QLabel, QLineEdit,
QPixmap, QRect, QSize, QSizePolicy, QSortFilterProxyModel, QStyledItemDelegate, QListView, QMenu, QPainter, QPixmap, QRect, QSize, QSizePolicy,
Qt, QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, pyqtSignal, QDialog, QDialogButtonBox QSortFilterProxyModel, QStyledItemDelegate, Qt, QToolButton, QTreeWidget,
QTreeWidgetItem, QVBoxLayout, pyqtSignal,
) )
from calibre import fit_image from calibre import fit_image
@ -23,6 +24,7 @@ from calibre.gui2.tweak_book import current_container, tprefs
from calibre.gui2.tweak_book.file_list import name_is_ok from calibre.gui2.tweak_book.file_list import name_is_ok
from calibre.gui2.tweak_book.widgets import Dialog from calibre.gui2.tweak_book.widgets import Dialog
from calibre.ptempfile import PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryFile
from calibre.startup import connect_lambda
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key
from calibre.utils.localization import canonicalize_lang, get_lang from calibre.utils.localization import canonicalize_lang, get_lang
from calibre_extensions.progress_indicator import set_no_activate_on_click from calibre_extensions.progress_indicator import set_no_activate_on_click

View File

@ -35,6 +35,7 @@ from calibre.gui2.tweak_book import (
) )
from calibre.gui2.tweak_book.editor import syntax_from_mime from calibre.gui2.tweak_book.editor import syntax_from_mime
from calibre.gui2.tweak_book.templates import template_for from calibre.gui2.tweak_book.templates import template_for
from calibre.startup import connect_lambda
from calibre.utils.fonts.utils import get_font_names from calibre.utils.fonts.utils import get_font_names
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key
from calibre.utils.localization import ngettext, pgettext from calibre.utils.localization import ngettext, pgettext

View File

@ -5,20 +5,20 @@ __license__ = 'GPL v3'
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
import re import re
from qt.core import (
QAbstractItemView, QApplication, QCheckBox, QDialog, QDialogButtonBox, QHBoxLayout,
QIcon, QLabel, QListWidget, QListWidgetItem, QPalette, QPen, QPixmap, QProgressBar,
QSize, QSpinBox, QStyle, QStyledItemDelegate, Qt, QTextBrowser, QVBoxLayout,
pyqtSignal,
)
from threading import Thread from threading import Thread
from qt.core import ( from calibre import fit_image, force_unicode, human_readable
QTextBrowser, QVBoxLayout, QDialog, QDialogButtonBox, QIcon, QLabel,
QCheckBox, Qt, QListWidgetItem, QHBoxLayout, QListWidget, QPixmap,
QSpinBox, QStyledItemDelegate, QSize, QStyle, QPen, QPalette,
QProgressBar, pyqtSignal, QApplication, QAbstractItemView
)
from calibre import human_readable, fit_image, force_unicode
from calibre.ebooks.oeb.polish.main import CUSTOMIZATION from calibre.ebooks.oeb.polish.main import CUSTOMIZATION
from calibre.gui2 import empty_index, question_dialog from calibre.gui2 import empty_index, question_dialog
from calibre.gui2.tweak_book import tprefs, current_container, set_current_container from calibre.gui2.tweak_book import current_container, set_current_container, tprefs
from calibre.gui2.tweak_book.widgets import Dialog from calibre.gui2.tweak_book.widgets import Dialog
from calibre.startup import connect_lambda
from calibre.utils.icu import numeric_sort_key from calibre.utils.icu import numeric_sort_key
@ -254,8 +254,8 @@ class CompressImagesProgress(Dialog):
t.start() t.start()
def run_compress(self): def run_compress(self):
from calibre.gui2.tweak_book import current_container
from calibre.ebooks.oeb.polish.images import compress_images from calibre.ebooks.oeb.polish.images import compress_images
from calibre.gui2.tweak_book import current_container
report = [] report = []
try: try:
self.result = (compress_images( self.result = (compress_images(
@ -304,7 +304,9 @@ class CompressImagesProgress(Dialog):
if __name__ == '__main__': if __name__ == '__main__':
from calibre.gui2 import Application from calibre.gui2 import Application
app = Application([]) app = Application([])
import sys, sip import sip
import sys
from calibre.ebooks.oeb.polish.container import get_container from calibre.ebooks.oeb.polish.container import get_container
c = get_container(sys.argv[-1], tweak_mode=True) c = get_container(sys.argv[-1], tweak_mode=True)
set_current_container(c) set_current_container(c)

View File

@ -31,6 +31,7 @@ from calibre.gui2.tweak_book.editor.themes import (
from calibre.gui2.tweak_book.spell import ManageDictionaries from calibre.gui2.tweak_book.spell import ManageDictionaries
from calibre.gui2.tweak_book.widgets import Dialog from calibre.gui2.tweak_book.widgets import Dialog
from calibre.gui2.widgets2 import ColorButton from calibre.gui2.widgets2 import ColorButton
from calibre.startup import connect_lambda
from calibre.utils.localization import get_lang, ngettext from calibre.utils.localization import get_lang, ngettext
from polyglot.builtins import iteritems, itervalues from polyglot.builtins import iteritems, itervalues

View File

@ -1,7 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# License: GPLv3 Copyright: 2013, Kovid Goyal <kovid at kovidgoyal.net> # License: GPLv3 Copyright: 2013, Kovid Goyal <kovid at kovidgoyal.net>
import copy import copy
import json import json
import regex import regex
@ -9,32 +8,33 @@ import time
from collections import Counter, OrderedDict from collections import Counter, OrderedDict
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QAbstractListModel, QAction, QApplication, QCheckBox, QComboBox, QFont, QFrame, QAbstractItemView, QAbstractListModel, QAction, QApplication, QCheckBox, QComboBox,
QGridLayout, QHBoxLayout, QIcon, QItemSelection, QKeySequence, QLabel, QLineEdit, QDialog, QDialogButtonBox, QEvent, QFont, QFrame, QGridLayout, QHBoxLayout, QIcon,
QListView, QMenu, QMimeData, QModelIndex, QPushButton, QScrollArea, QSize, QItemSelectionModel, QItemSelection, QItemSelectionModel, QKeySequence, QLabel, QLineEdit, QListView,
QSizePolicy, QStackedLayout, QStyledItemDelegate, Qt, QTimer, QToolBar, QDialog, QMenu, QMimeData, QModelIndex, QPushButton, QScrollArea, QSize, QSizePolicy,
QToolButton, QVBoxLayout, QWidget, pyqtSignal, QAbstractItemView, QEvent, QDialogButtonBox QStackedLayout, QStyledItemDelegate, Qt, QTimer, QToolBar, QToolButton, QVBoxLayout,
QWidget, pyqtSignal,
) )
from calibre import prepare_string_for_xml from calibre import prepare_string_for_xml
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre.ebooks.conversion.search_replace import ( from calibre.ebooks.conversion.search_replace import (
REGEX_FLAGS, compile_regular_expression REGEX_FLAGS, compile_regular_expression,
) )
from calibre.gui2 import choose_files, choose_save_file, error_dialog, info_dialog from calibre.gui2 import choose_files, choose_save_file, error_dialog, info_dialog
from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.confirm_delete import confirm
from calibre.gui2.dialogs.message_box import MessageBox from calibre.gui2.dialogs.message_box import MessageBox
from calibre.gui2.tweak_book import current_container, editors, tprefs from calibre.gui2.tweak_book import current_container, editors, tprefs
from calibre.gui2.tweak_book.editor.snippets import ( from calibre.gui2.tweak_book.editor.snippets import (
KEY, MODIFIER, SnippetTextEdit, find_matching_snip, parse_template, KEY, MODIFIER, SnippetTextEdit, find_matching_snip, parse_template, string_length,
string_length
) )
from calibre.gui2.tweak_book.function_replace import ( from calibre.gui2.tweak_book.function_replace import (
Function, FunctionBox, FunctionEditor, functions as replace_functions, Function, FunctionBox, FunctionEditor, functions as replace_functions,
remove_function remove_function,
) )
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.gui2.widgets2 import FlowLayout, HistoryComboBox from calibre.gui2.widgets2 import FlowLayout, HistoryComboBox
from calibre.startup import connect_lambda
from calibre.utils.icu import primary_contains from calibre.utils.icu import primary_contains
from polyglot.builtins import error_message, iteritems from polyglot.builtins import error_message, iteritems

View File

@ -41,6 +41,7 @@ from calibre.spell.dictionary import (
get_dictionary, remove_dictionary, rename_dictionary, get_dictionary, remove_dictionary, rename_dictionary,
) )
from calibre.spell.import_from import import_from_oxt from calibre.spell.import_from import import_from_oxt
from calibre.startup import connect_lambda
from calibre.utils.icu import contains, primary_contains, primary_sort_key, sort_key from calibre.utils.icu import contains, primary_contains, primary_sort_key, sort_key
from calibre.utils.localization import ( from calibre.utils.localization import (
calibre_langcode_to_name, canonicalize_lang, get_lang, get_language, calibre_langcode_to_name, canonicalize_lang, get_lang, get_language,

View File

@ -2,19 +2,22 @@
# License: GPLv3 Copyright: 2016, Kovid Goyal <kovid at kovidgoyal.net> # License: GPLv3 Copyright: 2016, Kovid Goyal <kovid at kovidgoyal.net>
from qt.core import (
QWidget, QHBoxLayout, QVBoxLayout, QLabel, QComboBox, QPushButton, QIcon,
pyqtSignal, QFont, QCheckBox, QSizePolicy
)
from lxml.etree import tostring from lxml.etree import tostring
from qt.core import (
QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel, QPushButton, QSizePolicy,
QVBoxLayout, QWidget, pyqtSignal,
)
from calibre import prepare_string_for_xml from calibre import prepare_string_for_xml
from calibre.gui2 import error_dialog from calibre.gui2 import error_dialog
from calibre.gui2.tweak_book import tprefs, editors, current_container from calibre.gui2.tweak_book import current_container, editors, tprefs
from calibre.gui2.tweak_book.search import get_search_regex, InvalidRegex, initialize_search_request from calibre.gui2.tweak_book.search import (
InvalidRegex, get_search_regex, initialize_search_request,
)
from calibre.gui2.widgets import BusyCursor from calibre.gui2.widgets import BusyCursor
from calibre.gui2.widgets2 import HistoryComboBox from calibre.gui2.widgets2 import HistoryComboBox
from polyglot.builtins import iteritems, error_message from calibre.startup import connect_lambda
from polyglot.builtins import error_message, iteritems
# UI {{{ # UI {{{

View File

@ -10,35 +10,36 @@ import unicodedata
from collections import OrderedDict from collections import OrderedDict
from math import ceil from math import ceil
from qt.core import ( from qt.core import (
QAbstractListModel, QApplication, QCheckBox, QComboBox, QDialog, QAbstractListModel, QApplication, QCheckBox, QComboBox, QDialog, QDialogButtonBox,
QDialogButtonBox, QEvent, QFormLayout, QFrame, QGridLayout, QGroupBox, QEvent, QFormLayout, QFrame, QGridLayout, QGroupBox, QHBoxLayout, QIcon,
QHBoxLayout, QIcon, QItemSelectionModel, QLabel, QLineEdit, QListView, QMimeData, QItemSelectionModel, QLabel, QLineEdit, QListView, QMimeData, QModelIndex, QPainter,
QModelIndex, QPainter, QPalette, QPixmap, QPlainTextEdit, QPoint, QRect, QSize, QPalette, QPixmap, QPlainTextEdit, QPoint, QRect, QSize, QSizePolicy, QSplitter,
QSizePolicy, QSplitter, QStaticText, QStyle, QStyledItemDelegate, Qt, QTextCursor, QStaticText, QStyle, QStyledItemDelegate, Qt, QTextCursor, QTextDocument,
QTextDocument, QTextOption, QToolButton, QVBoxLayout, QWidget, pyqtSignal QTextOption, QToolButton, QVBoxLayout, QWidget, pyqtSignal,
) )
from calibre import human_readable, prepare_string_for_xml from calibre import human_readable, prepare_string_for_xml
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre.ebooks.oeb.polish.cover import get_raster_cover_name from calibre.ebooks.oeb.polish.cover import get_raster_cover_name
from calibre.ebooks.oeb.polish.toc import ( from calibre.ebooks.oeb.polish.toc import (
ensure_container_has_nav, get_guide_landmarks, get_nav_landmarks, set_landmarks ensure_container_has_nav, get_guide_landmarks, get_nav_landmarks, set_landmarks,
) )
from calibre.ebooks.oeb.polish.upgrade import guide_epubtype_map from calibre.ebooks.oeb.polish.upgrade import guide_epubtype_map
from calibre.ebooks.oeb.polish.utils import guess_type, lead_text from calibre.ebooks.oeb.polish.utils import guess_type, lead_text
from calibre.gui2 import ( from calibre.gui2 import (
choose_files, choose_images, choose_save_file, error_dialog, info_dialog choose_files, choose_images, choose_save_file, error_dialog, info_dialog,
) )
from calibre.gui2.complete2 import EditWithComplete from calibre.gui2.complete2 import EditWithComplete
from calibre.gui2.tweak_book import current_container, tprefs from calibre.gui2.tweak_book import current_container, tprefs
from calibre.gui2.widgets2 import ( from calibre.gui2.widgets2 import (
PARAGRAPH_SEPARATOR, Dialog as BaseDialog, HistoryComboBox, to_plain_text PARAGRAPH_SEPARATOR, Dialog as BaseDialog, HistoryComboBox, to_plain_text,
) )
from calibre.startup import connect_lambda
from calibre.utils.icu import ( from calibre.utils.icu import (
numeric_sort_key, primary_contains, primary_sort_key, sort_key numeric_sort_key, primary_contains, primary_sort_key, sort_key,
) )
from calibre.utils.matcher import ( from calibre.utils.matcher import (
DEFAULT_LEVEL1, DEFAULT_LEVEL2, DEFAULT_LEVEL3, Matcher, get_char DEFAULT_LEVEL1, DEFAULT_LEVEL2, DEFAULT_LEVEL3, Matcher, get_char,
) )
from polyglot.builtins import iteritems from polyglot.builtins import iteritems

View File

@ -4,11 +4,10 @@
import os import os
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QAction, QGroupBox, QHBoxLayout, QIcon, QKeySequence, QLabel, QListWidget, QAbstractItemView, QAction, QDialog, QDialogButtonBox, QGroupBox, QHBoxLayout,
QListWidgetItem, QMenu, Qt, QToolBar, QToolButton, QVBoxLayout, pyqtSignal, QDialog, QIcon, QKeySequence, QLabel, QListWidget, QListWidgetItem, QMenu, Qt, QToolBar,
QAbstractItemView, QDialogButtonBox QToolButton, QVBoxLayout, pyqtSignal,
) )
from qt.webengine import QWebEnginePage from qt.webengine import QWebEnginePage
@ -18,6 +17,7 @@ from calibre.gui2.viewer.config import get_session_pref
from calibre.gui2.viewer.shortcuts import index_to_key_sequence from calibre.gui2.viewer.shortcuts import index_to_key_sequence
from calibre.gui2.viewer.web_view import set_book_path, vprefs from calibre.gui2.viewer.web_view import set_book_path, vprefs
from calibre.gui2.widgets2 import Dialog from calibre.gui2.widgets2 import Dialog
from calibre.startup import connect_lambda
from calibre.utils.icu import primary_sort_key from calibre.utils.icu import primary_sort_key
@ -236,7 +236,7 @@ class ActionsToolBar(ToolBar):
a.setToolTip(_('Switch to paged mode -- where the text is broken into pages')) a.setToolTip(_('Switch to paged mode -- where the text is broken into pages'))
def change_sleep_permission(self, disallow_sleep=True): def change_sleep_permission(self, disallow_sleep=True):
from .control_sleep import prevent_sleep, allow_sleep from .control_sleep import allow_sleep, prevent_sleep
if disallow_sleep: if disallow_sleep:
if self.prevent_sleep_cookie is None: if self.prevent_sleep_cookie is None:
try: try:

View File

@ -10,8 +10,8 @@ from collections import defaultdict, namedtuple
from hashlib import sha256 from hashlib import sha256
from qt.core import ( from qt.core import (
QApplication, QCursor, QDockWidget, QEvent, QMainWindow, QMenu, QMimeData, QApplication, QCursor, QDockWidget, QEvent, QMainWindow, QMenu, QMimeData,
QModelIndex, QPixmap, Qt, QTimer, QToolBar, QUrl, QVBoxLayout, QWidget, QModelIndex, QPixmap, Qt, QTimer, QToolBar, QUrl, QVBoxLayout, QWidget, pyqtSignal,
pyqtSignal, sip sip,
) )
from threading import Thread from threading import Thread
@ -20,23 +20,23 @@ from calibre.constants import ismacos, iswindows
from calibre.customize.ui import available_input_formats from calibre.customize.ui import available_input_formats
from calibre.db.annotations import merge_annotations from calibre.db.annotations import merge_annotations
from calibre.gui2 import ( from calibre.gui2 import (
add_to_recent_docs, choose_files, error_dialog, sanitize_env_vars add_to_recent_docs, choose_files, error_dialog, sanitize_env_vars,
) )
from calibre.gui2.dialogs.drm_error import DRMErrorMessage from calibre.gui2.dialogs.drm_error import DRMErrorMessage
from calibre.gui2.image_popup import ImagePopup from calibre.gui2.image_popup import ImagePopup
from calibre.gui2.main_window import MainWindow from calibre.gui2.main_window import MainWindow
from calibre.gui2.viewer import get_current_book_data, performance_monitor from calibre.gui2.viewer import get_current_book_data, performance_monitor
from calibre.gui2.viewer.annotations import ( from calibre.gui2.viewer.annotations import (
AnnotationsSaveWorker, annotations_dir, parse_annotations AnnotationsSaveWorker, annotations_dir, parse_annotations,
) )
from calibre.gui2.viewer.bookmarks import BookmarkManager from calibre.gui2.viewer.bookmarks import BookmarkManager
from calibre.gui2.viewer.config import ( from calibre.gui2.viewer.config import (
get_session_pref, load_reading_rates, save_reading_rates, vprefs get_session_pref, load_reading_rates, save_reading_rates, vprefs,
) )
from calibre.gui2.viewer.convert_book import clean_running_workers, prepare_book from calibre.gui2.viewer.convert_book import clean_running_workers, prepare_book
from calibre.gui2.viewer.highlights import HighlightsPanel from calibre.gui2.viewer.highlights import HighlightsPanel
from calibre.gui2.viewer.integration import ( from calibre.gui2.viewer.integration import (
get_book_library_details, load_annotations_map_from_library get_book_library_details, load_annotations_map_from_library,
) )
from calibre.gui2.viewer.lookup import Lookup from calibre.gui2.viewer.lookup import Lookup
from calibre.gui2.viewer.overlay import LoadingOverlay from calibre.gui2.viewer.overlay import LoadingOverlay
@ -44,6 +44,7 @@ from calibre.gui2.viewer.search import SearchPanel
from calibre.gui2.viewer.toc import TOC, TOCSearch, TOCView from calibre.gui2.viewer.toc import TOC, TOCSearch, TOCView
from calibre.gui2.viewer.toolbars import ActionsToolBar from calibre.gui2.viewer.toolbars import ActionsToolBar
from calibre.gui2.viewer.web_view import WebView, get_path_for_name, set_book_path from calibre.gui2.viewer.web_view import WebView, get_path_for_name, set_book_path
from calibre.startup import connect_lambda
from calibre.utils.date import utcnow from calibre.utils.date import utcnow
from calibre.utils.img import image_from_path from calibre.utils.img import image_from_path
from calibre.utils.ipc.simple_worker import WorkerError from calibre.utils.ipc.simple_worker import WorkerError

View File

@ -3,25 +3,28 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
''' '''
Miscellaneous widgets used in the GUI Miscellaneous widgets used in the GUI
''' '''
import re, os import os
import re
from qt.core import (
QAction, QApplication, QClipboard, QColor, QComboBox, QCompleter, QCursor, QEvent,
QFont, QGraphicsScene, QGraphicsView, QIcon, QKeySequence, QLabel, QLineEdit,
QListWidget, QListWidgetItem, QMenu, QPageSize, QPainter, QPalette, QPen, QPixmap,
QPrinter, QRect, QSize, QSplitter, QSplitterHandle, QStringListModel,
QSyntaxHighlighter, Qt, QTextCharFormat, QTimer, QToolButton, QWidget, pyqtSignal,
)
from qt.core import (QIcon, QFont, QLabel, QListWidget, QAction, QEvent, from calibre import fit_image, force_unicode, strftime
QListWidgetItem, QTextCharFormat, QApplication, QSyntaxHighlighter, from calibre.constants import ismacos, iswindows
QCursor, QColor, QWidget, QPixmap, QSplitterHandle, QToolButton,
Qt, pyqtSignal, QSize, QSplitter, QPainter, QPageSize, QPrinter,
QLineEdit, QComboBox, QPen, QGraphicsScene, QMenu, QStringListModel, QKeySequence,
QCompleter, QTimer, QRect, QGraphicsView, QPalette, QClipboard)
from calibre.constants import iswindows, ismacos
from calibre.gui2 import (error_dialog, pixmap_to_data, gprefs,
warning_dialog)
from calibre.gui2.filename_pattern_ui import Ui_Form
from calibre import fit_image, strftime, force_unicode
from calibre.ebooks import BOOK_EXTENSIONS from calibre.ebooks import BOOK_EXTENSIONS
from calibre.utils.config import prefs, XMLConfig from calibre.gui2 import error_dialog, gprefs, pixmap_to_data, warning_dialog
from calibre.gui2.dnd import (
DownloadDialog, dnd_get_files, dnd_get_image, dnd_get_local_image_and_pixmap,
dnd_has_extension, dnd_has_image, image_extensions,
)
from calibre.gui2.filename_pattern_ui import Ui_Form
from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
from calibre.gui2.dnd import (dnd_has_image, dnd_get_image, dnd_get_files, from calibre.startup import connect_lambda
image_extensions, dnd_has_extension, dnd_get_local_image_and_pixmap, DownloadDialog) from calibre.utils.config import XMLConfig, prefs
from calibre.utils.localization import localize_user_manual_link from calibre.utils.localization import localize_user_manual_link
from polyglot.builtins import native_string_type from polyglot.builtins import native_string_type

View File

@ -42,6 +42,24 @@ def get_debug_executable():
return [exe_name] return [exe_name]
def connect_lambda(bound_signal, self, func, **kw):
import weakref
r = weakref.ref(self)
del self
num_args = func.__code__.co_argcount - 1
if num_args < 0:
raise TypeError('lambda must take at least one argument')
def slot(*args):
ctx = r()
if ctx is not None:
if len(args) != num_args:
args = args[:num_args]
func(ctx, *args)
bound_signal.connect(slot, **kw)
def initialize_calibre(): def initialize_calibre():
if hasattr(initialize_calibre, 'initialized'): if hasattr(initialize_calibre, 'initialized'):
return return
@ -126,22 +144,6 @@ def initialize_calibre():
builtins.__dict__['icu_upper'] = icu_upper builtins.__dict__['icu_upper'] = icu_upper
builtins.__dict__['icu_title'] = title_case builtins.__dict__['icu_title'] = title_case
def connect_lambda(bound_signal, self, func, **kw):
import weakref
r = weakref.ref(self)
del self
num_args = func.__code__.co_argcount - 1
if num_args < 0:
raise TypeError('lambda must take at least one argument')
def slot(*args):
ctx = r()
if ctx is not None:
if len(args) != num_args:
args = args[:num_args]
func(ctx, *args)
bound_signal.connect(slot, **kw)
builtins.__dict__['connect_lambda'] = connect_lambda builtins.__dict__['connect_lambda'] = connect_lambda
if islinux or ismacos or isfreebsd: if islinux or ismacos or isfreebsd: