mirror of
git://github.com/kovidgoyal/calibre.git
synced 2025-12-21 10:46:05 +01:00
Possible fix for offscreen dialogs on windows
See https://bugreports.qt.io/browse/QTBUG-77385
This commit is contained in:
parent
55dc27c9fa
commit
02343fd965
39 changed files with 78 additions and 65 deletions
|
|
@ -147,7 +147,8 @@ def size_dialog():
|
|||
if geom is None:
|
||||
config_dialog.resize(config_dialog.sizeHint())
|
||||
else:
|
||||
config_dialog.restoreGeometry(geom)
|
||||
from PyQt5.Qt import QApplication
|
||||
QApplication.instance().safe_restore_geometry(config_dialog, geom)
|
||||
|
||||
button_box.accepted.connect(config_dialog.accept)
|
||||
button_box.rejected.connect(config_dialog.reject)
|
||||
|
|
|
|||
|
|
@ -973,6 +973,19 @@ def __init__(self, args, force_calibre_style=False, override_program_name=None,
|
|||
if cft >= 0:
|
||||
self.setCursorFlashTime(int(cft))
|
||||
|
||||
def safe_restore_geometry(self, widget, geom):
|
||||
# See https://bugreports.qt.io/browse/QTBUG-77385
|
||||
if not geom:
|
||||
return
|
||||
restored = widget.restoreGeometry(geom)
|
||||
screen_rect = self.desktop().availableGeometry(widget)
|
||||
if not widget.geometry().intersects(screen_rect):
|
||||
w = min(widget.width(), screen_rect.width() - 10)
|
||||
h = min(widget.height(), screen_rect.height() - 10)
|
||||
widget.resize(w, h)
|
||||
widget.move((screen_rect.width() - w) // 2, (screen_rect.height() - h) // 2)
|
||||
return restored
|
||||
|
||||
def setup_ui_font(self):
|
||||
f = QFont(QApplication.font())
|
||||
q = (f.family(), f.pointSize())
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
import shutil
|
||||
|
||||
from PyQt5.Qt import QModelIndex, QDialog
|
||||
from PyQt5.Qt import QModelIndex, QDialog, QApplication
|
||||
|
||||
from calibre.gui2.convert.single import Config, GroupModel, gprefs
|
||||
from calibre.gui2.convert.look_and_feel import LookAndFeelWidget
|
||||
|
|
@ -63,7 +63,7 @@ def __init__(self, parent, db, preferred_output_format=None,
|
|||
|
||||
geom = gprefs.get('convert_bulk_dialog_geom', None)
|
||||
if geom:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
else:
|
||||
self.resize(self.sizeHint())
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
import os
|
||||
|
||||
from PyQt5.Qt import (QDialog, QWidget, QDialogButtonBox,
|
||||
from PyQt5.Qt import (QDialog, QWidget, QDialogButtonBox, QApplication,
|
||||
QBrush, QTextCursor, QTextEdit, QByteArray, Qt, pyqtSignal)
|
||||
|
||||
from calibre.gui2.convert.regex_builder_ui import Ui_RegexBuilder
|
||||
|
|
@ -52,7 +52,7 @@ def __init__(self, db, book_id, regex, doc=None, parent=None):
|
|||
self.match_locs = []
|
||||
geom = gprefs.get('regex_builder_geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(QByteArray(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, QByteArray(geom))
|
||||
self.finished.connect(self.save_state)
|
||||
|
||||
def save_state(self, result):
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
QAbstractListModel, QCheckBox, QComboBox, QCoreApplication, QDialog,
|
||||
QDialogButtonBox, QFont, QFrame, QGridLayout, QHBoxLayout, QIcon, QLabel,
|
||||
QListView, QModelIndex, QScrollArea, QSize, QSizePolicy, QSpacerItem,
|
||||
Qt, QTextEdit, QWidget
|
||||
Qt, QTextEdit, QWidget, QApplication
|
||||
)
|
||||
|
||||
from calibre.customize.conversion import OptionRecommendation
|
||||
|
|
@ -94,7 +94,7 @@ def __init__(self, parent, db, book_id,
|
|||
self.groups.setMouseTracking(True)
|
||||
geom = gprefs.get('convert_single_dialog_geom', None)
|
||||
if geom:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
else:
|
||||
self.resize(self.sizeHint())
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
import sys, os, time
|
||||
|
||||
from PyQt5.Qt import (QImage, QSizePolicy, QTimer, QDialog, Qt, QSize, QAction,
|
||||
QStackedLayout, QLabel, pyqtSignal, QKeySequence, QFont)
|
||||
QStackedLayout, QLabel, pyqtSignal, QKeySequence, QFont, QApplication)
|
||||
|
||||
from calibre import plugins
|
||||
from calibre.ebooks.metadata import rating_to_stars
|
||||
|
|
@ -243,7 +243,7 @@ def __init__(self, parent, cover_flow):
|
|||
self.layout().addWidget(cover_flow)
|
||||
|
||||
geom = gprefs.get('cover_browser_dialog_geometry', None)
|
||||
if not geom or not self.restoreGeometry(geom):
|
||||
if not geom or not QApplication.instance().safe_restore_geometry(self, geom):
|
||||
h, w = available_height()-60, int(available_width()/1.5)
|
||||
self.resize(w, h)
|
||||
self.action_fs_toggle = a = QAction(self)
|
||||
|
|
@ -279,7 +279,7 @@ def closeEvent(self, *args):
|
|||
def show_normal(self):
|
||||
self.showNormal()
|
||||
if self.pre_fs_geom is not None:
|
||||
self.restoreGeometry(self.pre_fs_geom)
|
||||
QApplication.instance().safe_restore_geometry(self, self.pre_fs_geom)
|
||||
self.pre_fs_geom = None
|
||||
|
||||
def show_fullscreen(self):
|
||||
|
|
@ -454,7 +454,7 @@ def sync_listview_to_cf(self, row):
|
|||
|
||||
|
||||
def test():
|
||||
from PyQt5.Qt import QApplication, QMainWindow
|
||||
from PyQt5.Qt import QMainWindow
|
||||
app = QApplication([])
|
||||
w = QMainWindow()
|
||||
cf = CoverFlow()
|
||||
|
|
@ -475,7 +475,7 @@ def main(args=sys.argv):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from PyQt5.Qt import QApplication, QMainWindow
|
||||
from PyQt5.Qt import QMainWindow
|
||||
app = QApplication([])
|
||||
w = QMainWindow()
|
||||
cf = CoverFlow()
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
from PyQt5.Qt import (
|
||||
QWidget, QHBoxLayout, QTabWidget, QLabel, QSizePolicy, QSize, QFormLayout,
|
||||
QSpinBox, pyqtSignal, QPixmap, QDialog, QVBoxLayout, QDialogButtonBox,
|
||||
QListWidget, QListWidgetItem, Qt, QGridLayout, QPushButton, QIcon,
|
||||
QListWidget, QListWidgetItem, Qt, QGridLayout, QPushButton, QIcon, QApplication,
|
||||
QColorDialog, QToolButton, QLineEdit, QColor, QFrame, QTimer, QCheckBox)
|
||||
|
||||
from calibre.ebooks.covers import all_styles, cprefs, generate_cover, override_prefs, default_color_themes
|
||||
|
|
@ -530,7 +530,7 @@ def __init__(self, mi=None, prefs=None, parent=None):
|
|||
self.resize(self.sizeHint())
|
||||
geom = gprefs.get('cover_settings_dialog_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
self.prefs_for_rendering = None
|
||||
|
||||
def restore_defaults(self):
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ def __init__(self, all_authors, current_authors, parent=None):
|
|||
self.resize(self.sizeHint() + QSize(150, 100))
|
||||
geom = gprefs.get('authors-edit-geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
self.author.setFocus(Qt.OtherFocusReason)
|
||||
|
||||
def save_geometry(self):
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
QBrush, QCheckBox, QCoreApplication, QDialog, QGridLayout, QHBoxLayout, QIcon,
|
||||
QKeySequence, QLabel, QListView, QModelIndex, QPalette, QPixmap, QPushButton,
|
||||
QShortcut, QSize, QSplitter, Qt, QTimer, QToolButton, QVBoxLayout, QWidget,
|
||||
pyqtSignal
|
||||
pyqtSignal, QApplication
|
||||
)
|
||||
|
||||
from calibre import fit_image
|
||||
|
|
@ -192,7 +192,7 @@ def __init__(self, parent, view, row, link_delegate):
|
|||
saved_layout = gprefs.get('book_info_dialog_layout', None)
|
||||
if saved_layout is not None:
|
||||
try:
|
||||
self.restoreGeometry(saved_layout[0])
|
||||
QApplication.instance().safe_restore_geometry(self, saved_layout[0])
|
||||
self.splitter.restoreState(saved_layout[1])
|
||||
except Exception:
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import os, sys, importlib, weakref
|
||||
|
||||
from PyQt5.Qt import QDialog, QCoreApplication, QSize, QScrollArea
|
||||
from PyQt5.Qt import QDialog, QCoreApplication, QSize, QScrollArea, QApplication
|
||||
|
||||
from calibre.customize.ui import config
|
||||
from calibre.gui2.dialogs.catalog_ui import Ui_Dialog
|
||||
|
|
@ -130,7 +130,7 @@ def __init__(self, parent, dbspec, ids, db):
|
|||
|
||||
geom = dynamic.get('catalog_window_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(bytes(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
||||
else:
|
||||
self.resize(self.sizeHint())
|
||||
d = QCoreApplication.instance().desktop()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
__docformat__ = 'restructuredtext en'
|
||||
__license__ = 'GPL v3'
|
||||
|
||||
from PyQt5.Qt import Qt, QDialog, QDialogButtonBox, QVBoxLayout, QPlainTextEdit, QSize
|
||||
from PyQt5.Qt import Qt, QDialog, QDialogButtonBox, QVBoxLayout, QPlainTextEdit, QSize, QApplication
|
||||
|
||||
from calibre.gui2 import gprefs, Application
|
||||
from calibre.gui2.dialogs.comments_dialog_ui import Ui_CommentsDialog
|
||||
|
|
@ -35,7 +35,7 @@ def __init__(self, parent, text, column_name=None):
|
|||
|
||||
geom = gprefs.get('comments_dialog_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
def save_geometry(self):
|
||||
gprefs.set('comments_dialog_geom', bytearray(self.saveGeometry()))
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ def __init__(self, db, duplicates, parent=None):
|
|||
self.resize(self.sizeHint())
|
||||
geom = gprefs.get('duplicates-question-dialog-geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
self.exec_()
|
||||
|
||||
def copy_to_clipboard(self):
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ def __init__(self, parent, db, id_to_select, select_sort, select_link):
|
|||
gprefs.get('manage_authors_table_widths', None)
|
||||
geom = gprefs.get('manage_authors_dialog_geometry', None)
|
||||
if geom:
|
||||
self.restoreGeometry(QByteArray(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, QByteArray(geom))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ def __init__(self, gui, view, id_, row_index):
|
|||
gprefs.get('match_books_dialog_books_table_widths', None)
|
||||
geom = gprefs.get('match_books_dialog_geometry', None)
|
||||
if geom:
|
||||
self.restoreGeometry(QByteArray(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, QByteArray(geom))
|
||||
except:
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ def __init__(self, title, html, parent=None, unique_name=None):
|
|||
self.resize(QSize(700, 500))
|
||||
geom = gprefs.get(self.unique_name, None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
self.setModal(False)
|
||||
self.setWindowTitle(title)
|
||||
|
|
|
|||
|
|
@ -552,7 +552,7 @@ def __init__(self, window, rows, model, tab, refresh_books):
|
|||
self.central_widget.setCurrentIndex(tab)
|
||||
geom = gprefs.get('bulk_metadata_window_geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(bytes(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
||||
else:
|
||||
self.resize(self.sizeHint())
|
||||
ct = gprefs.get('bulk_metadata_window_tab', 0)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
from lxml import html
|
||||
from PyQt5.Qt import (Qt, QUrl, QFrame, QVBoxLayout, QLabel, QBrush, QTextEdit,
|
||||
QComboBox, QAbstractItemView, QHBoxLayout, QDialogButtonBox,
|
||||
QAbstractTableModel, QTableView, QModelIndex,
|
||||
QAbstractTableModel, QTableView, QModelIndex, QApplication,
|
||||
QSortFilterProxyModel, QAction, QIcon, QDialog,
|
||||
QFont, QPixmap, QSize, QLineEdit)
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ def resize_dialog(self):
|
|||
if self.geom is None:
|
||||
self.resize(self.sizeHint()+self.initial_extra_size)
|
||||
else:
|
||||
self.restoreGeometry(self.geom)
|
||||
QApplication.instance().safe_restore_geometry(self, self.geom)
|
||||
|
||||
def dialog_closing(self, result):
|
||||
geom = bytearray(self.saveGeometry())
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ def __init__(self, gui, row):
|
|||
if not self.is_pane:
|
||||
geom = gprefs.get('quickview_dialog_geometry', None)
|
||||
if geom:
|
||||
self.restoreGeometry(QByteArray(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, QByteArray(geom))
|
||||
except:
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
from collections import OrderedDict
|
||||
|
||||
from PyQt5.Qt import (
|
||||
QDialog, Qt, QTime, QObject, QMenu, QHBoxLayout, QAction, QIcon, QMutex,
|
||||
QDialog, Qt, QTime, QObject, QMenu, QHBoxLayout, QAction, QIcon, QMutex, QApplication,
|
||||
QTimer, pyqtSignal, QWidget, QGridLayout, QCheckBox, QTimeEdit, QLabel,
|
||||
QLineEdit, QDoubleSpinBox, QSize, QTreeView, QSizePolicy, QToolButton,
|
||||
QScrollArea, QFrame, QVBoxLayout, QTabWidget, QSpacerItem, QGroupBox,
|
||||
|
|
@ -373,7 +373,7 @@ def __init__(self, recipe_model, parent=None):
|
|||
|
||||
geom = gprefs.get('scheduler_dialog_geometry')
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
def sizeHint(self):
|
||||
return QSize(800, 600)
|
||||
|
|
@ -729,7 +729,6 @@ def check(self):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from PyQt5.Qt import QApplication
|
||||
app = QApplication([])
|
||||
d = SchedulerDialog(RecipeModel())
|
||||
d.exec_()
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
|
||||
from PyQt5.Qt import Qt, QDialog, QAbstractItemView
|
||||
from PyQt5.Qt import Qt, QDialog, QAbstractItemView, QApplication
|
||||
|
||||
from calibre.gui2.dialogs.tag_editor_ui import Ui_TagEditor
|
||||
from calibre.gui2 import question_dialog, error_dialog, gprefs
|
||||
|
|
@ -92,7 +92,7 @@ def __init__(self, window, db, id_=None, key=None, current_tags=None):
|
|||
|
||||
geom = gprefs.get('tag_editor_geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
def edit_box_changed(self, which):
|
||||
gprefs['tag_editor_last_filter'] = which
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||
|
||||
from PyQt5.Qt import (Qt, QDialog, QTableWidgetItem, QIcon, QByteArray, QSize,
|
||||
QDialogButtonBox, QTableWidget, QItemDelegate)
|
||||
QDialogButtonBox, QTableWidget, QItemDelegate, QApplication)
|
||||
|
||||
from calibre.gui2.dialogs.tag_list_editor_ui import Ui_TagListEditor
|
||||
from calibre.gui2.dialogs.confirm_delete import confirm
|
||||
|
|
@ -169,7 +169,7 @@ def __init__(self, window, cat_name, tag_to_match, get_book_ids, sorter):
|
|||
try:
|
||||
geom = gprefs.get('tag_list_editor_dialog_geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(QByteArray(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, QByteArray(geom))
|
||||
else:
|
||||
self.resize(self.sizeHint()+QSize(150, 100))
|
||||
except:
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ def __init__(self, img_data, parent=None):
|
|||
self.resize(QSize(900, 600))
|
||||
geom = gprefs.get('image-trim-dialog-geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
self.setWindowIcon(self.trim_action.icon())
|
||||
self.image_data = None
|
||||
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ def __call__(self, use_exec=False):
|
|||
self.resize(QSize(int(geom.width()/2.5), geom.height()-50))
|
||||
geom = gprefs.get(self.geom_name, None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
try:
|
||||
self.current_image_name = unicode_type(self.current_url.toString(NO_URL_FORMATTING)).rpartition('/')[-1]
|
||||
except AttributeError:
|
||||
|
|
|
|||
|
|
@ -645,7 +645,7 @@ def restore_state(self):
|
|||
try:
|
||||
geom = gprefs.get('jobs_dialog_geometry', None)
|
||||
if geom:
|
||||
self.restoreGeometry(QByteArray(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, QByteArray(geom))
|
||||
state = gprefs.get('jobs view column layout3', None)
|
||||
if state is not None:
|
||||
self.jobs_view.horizontalHeader().restoreState(QByteArray(state))
|
||||
|
|
|
|||
|
|
@ -608,7 +608,7 @@ def __init__(self, ids, get_metadata, field_metadata, parent=None,
|
|||
self.resize(QSize(width, height))
|
||||
geom = gprefs.get('diff_dialog_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
b.setFocus(Qt.OtherFocusReason)
|
||||
self.next_called = False
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
from datetime import datetime
|
||||
from functools import partial
|
||||
|
||||
from PyQt5.Qt import (Qt, QVBoxLayout, QHBoxLayout, QWidget, QPushButton,
|
||||
from PyQt5.Qt import (Qt, QVBoxLayout, QHBoxLayout, QWidget, QPushButton, QApplication,
|
||||
QGridLayout, pyqtSignal, QDialogButtonBox, QScrollArea, QFont, QCoreApplication,
|
||||
QTabWidget, QIcon, QToolButton, QSplitter, QGroupBox, QSpacerItem, QInputDialog,
|
||||
QSizePolicy, QFrame, QSize, QKeySequence, QMenu, QShortcut, QDialog)
|
||||
|
|
@ -120,7 +120,7 @@ def setupUi(self, *args): # {{{
|
|||
self.do_layout()
|
||||
geom = gprefs.get('metasingle_window_geometry3', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(bytes(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
||||
else:
|
||||
self.resize(self.sizeHint())
|
||||
self.restore_widget_settings()
|
||||
|
|
@ -1219,8 +1219,8 @@ def edit_metadata(db, row_list, current_row, parent=None, view_slot=None, edit_s
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from calibre.gui2 import Application as QApplication
|
||||
app = QApplication([])
|
||||
from calibre.gui2 import Application
|
||||
app = Application([])
|
||||
from calibre.library import db
|
||||
db = db()
|
||||
row_list = list(range(len(db.data)))
|
||||
|
|
|
|||
|
|
@ -1066,7 +1066,7 @@ def __init__(self, current_cover=None, parent=None):
|
|||
self.resize(850, 600)
|
||||
geom = gprefs.get('metadata_single_gui_geom', None)
|
||||
if geom is not None and geom:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
self.finished.connect(self.cleanup)
|
||||
|
||||
|
|
@ -1168,7 +1168,7 @@ def __init__(self, current_cover=None, parent=None):
|
|||
|
||||
geom = gprefs.get('single-cover-fetch-dialog-geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
def cleanup(self):
|
||||
self.covers_widget.cleanup()
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import textwrap
|
||||
|
||||
from PyQt5.Qt import (QWidget, pyqtSignal, QCheckBox, QAbstractSpinBox,
|
||||
from PyQt5.Qt import (QWidget, pyqtSignal, QCheckBox, QAbstractSpinBox, QApplication,
|
||||
QLineEdit, QComboBox, Qt, QIcon, QDialog, QVBoxLayout,
|
||||
QDialogButtonBox)
|
||||
|
||||
|
|
@ -382,7 +382,7 @@ def onchange():
|
|||
w.genesis(gui)
|
||||
w.initialize()
|
||||
if geom is not None:
|
||||
d.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(d, geom)
|
||||
d.exec_()
|
||||
geom = bytearray(d.saveGeometry())
|
||||
gprefs[conf_name] = geom
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ def __init__(self, gui, initial_plugin=None, close_after_initial=False):
|
|||
|
||||
geom = gprefs.get('preferences dialog geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
# Center
|
||||
if islinux:
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
from random import shuffle
|
||||
|
||||
from PyQt5.Qt import (Qt, QDialog, QDialogButtonBox, QTimer, QCheckBox, QLabel,
|
||||
QVBoxLayout, QIcon, QWidget, QTabWidget, QGridLayout)
|
||||
QVBoxLayout, QIcon, QWidget, QTabWidget, QGridLayout, QApplication)
|
||||
|
||||
from calibre.gui2 import JSONConfig, info_dialog, error_dialog
|
||||
from calibre.gui2.dialogs.choose_format import ChooseFormatDialog
|
||||
|
|
@ -264,7 +264,7 @@ def save_state(self):
|
|||
def restore_state(self):
|
||||
geometry = self.config.get('geometry', None)
|
||||
if geometry:
|
||||
self.restoreGeometry(geometry)
|
||||
QApplication.instance().safe_restore_geometry(self, geometry)
|
||||
|
||||
splitter_state = self.config.get('store_splitter_state', None)
|
||||
if splitter_state:
|
||||
|
|
@ -333,7 +333,7 @@ def do_config(self):
|
|||
# Restore dialog state.
|
||||
geometry = self.config.get('config_dialog_geometry', None)
|
||||
if geometry:
|
||||
d.restoreGeometry(geometry)
|
||||
QApplication.instance().safe_restore_geometry(d, geometry)
|
||||
else:
|
||||
d.resize(800, 600)
|
||||
tab_index = self.config.get('config_dialog_tab_index', 0)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
|
||||
from PyQt5.Qt import (Qt, QDialog, QIcon, QComboBox)
|
||||
from PyQt5.Qt import (Qt, QDialog, QIcon, QComboBox, QApplication)
|
||||
|
||||
from calibre.gui2.store.stores.mobileread.adv_search_builder import AdvSearchBuilderDialog
|
||||
from calibre.gui2.store.stores.mobileread.models import BooksModel
|
||||
|
|
@ -58,7 +58,7 @@ def build_adv_search(self):
|
|||
def restore_state(self):
|
||||
geometry = self.plugin.config.get('dialog_geometry', None)
|
||||
if geometry:
|
||||
self.restoreGeometry(geometry)
|
||||
QApplication.instance().safe_restore_geometry(self, geometry)
|
||||
|
||||
results_cwidth = self.plugin.config.get('dialog_results_view_column_width')
|
||||
if results_cwidth:
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
from PyQt5.Qt import (
|
||||
QHBoxLayout, QIcon, QLabel, QProgressBar, QPushButton, QSize, QUrl, QVBoxLayout,
|
||||
QWidget, pyqtSignal
|
||||
QWidget, pyqtSignal, QApplication
|
||||
)
|
||||
from PyQt5.QtWebEngineWidgets import QWebEngineProfile, QWebEngineView
|
||||
|
||||
|
|
@ -140,7 +140,7 @@ def __init__(self, data):
|
|||
self.setCentralWidget(c)
|
||||
geometry = gprefs.get('store_dialog_main_window_geometry')
|
||||
if geometry is not None:
|
||||
self.restoreGeometry(geometry)
|
||||
QApplication.instance().safe_restore_geometry(self, geometry)
|
||||
self.go_to(data['detail_url'] or None)
|
||||
|
||||
def sizeHint(self):
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
from threading import Thread
|
||||
|
||||
from PyQt5.Qt import (
|
||||
QCheckBox, QCursor, QDialog, QDialogButtonBox, QFrame, QGridLayout, QIcon,
|
||||
QCheckBox, QCursor, QDialog, QDialogButtonBox, QFrame, QGridLayout, QIcon, QApplication,
|
||||
QInputDialog, QItemSelectionModel, QKeySequence, QLabel, QMenu, QPushButton,
|
||||
QSize, QSizePolicy, QStackedWidget, Qt, QToolButton, QTreeWidget,
|
||||
QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
||||
|
|
@ -1031,7 +1031,7 @@ def __init__(self, pathtobook, title=None, parent=None, prefs=None):
|
|||
self.resize(950, 630)
|
||||
geom = self.prefs.get('toc_editor_window_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(bytes(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
||||
self.stacks.currentChanged.connect(self.update_history_buttons)
|
||||
self.update_history_buttons()
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
from PyQt5.Qt import (
|
||||
QDialog, QGridLayout, QStackedWidget, QDialogButtonBox, QListWidget,
|
||||
QListWidgetItem, QIcon, QWidget, QSize, QFormLayout, Qt, QSpinBox,
|
||||
QCheckBox, pyqtSignal, QDoubleSpinBox, QComboBox, QLabel, QFont,
|
||||
QCheckBox, pyqtSignal, QDoubleSpinBox, QComboBox, QLabel, QFont, QApplication,
|
||||
QFontComboBox, QPushButton, QSizePolicy, QHBoxLayout, QGroupBox,
|
||||
QToolButton, QVBoxLayout, QSpacerItem, QTimer)
|
||||
from PyQt5.QtWebEngineWidgets import QWebEngineSettings
|
||||
|
|
@ -710,7 +710,7 @@ def __init__(self, gui, initial_panel=None):
|
|||
self.resize(800, 600)
|
||||
geom = tprefs.get('preferences_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
|
||||
self.keyboard_panel = ShortcutConfig(self)
|
||||
self.keyboard_panel.initialize(gui.keyboard)
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ def __init__(self, title=None, parent=None):
|
|||
self.resize(950, 630)
|
||||
geom = tprefs.get('toc_editor_window_geom', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(bytes(geom))
|
||||
QApplication.instance().safe_restore_geometry(self, bytes(geom))
|
||||
|
||||
def add_new_item(self, item, where):
|
||||
self.item_edit(item, where)
|
||||
|
|
|
|||
|
|
@ -800,7 +800,7 @@ def save_state(self):
|
|||
def restore_state(self):
|
||||
geom = tprefs.get('main_window_geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
state = tprefs.get('main_window_state', None)
|
||||
if state is not None:
|
||||
self.restoreState(state, self.STATE_VERSION)
|
||||
|
|
|
|||
|
|
@ -911,7 +911,7 @@ def job_exception(self, job, dialog_title=_('Conversion error'), retry_func=None
|
|||
def read_settings(self):
|
||||
geometry = config['main_window_geometry']
|
||||
if geometry is not None:
|
||||
self.restoreGeometry(geometry)
|
||||
QApplication.instance().safe_restore_geometry(self, geometry)
|
||||
self.read_layout_settings()
|
||||
|
||||
def write_settings(self):
|
||||
|
|
|
|||
|
|
@ -509,7 +509,7 @@ def restore_state(self):
|
|||
state = vprefs['main_window_state']
|
||||
geom = vprefs['main_window_geometry']
|
||||
if geom and get_session_pref('remember_window_geometry', default=False):
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
if state:
|
||||
self.restoreState(state, self.MAIN_WINDOW_STATE_VERSION)
|
||||
self.inspector_dock.setVisible(False)
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ def __init__(self, title, name, parent=None, prefs=gprefs):
|
|||
self.resize(self.sizeHint())
|
||||
geom = self.prefs_for_persistence.get(name + '-geometry', None)
|
||||
if geom is not None:
|
||||
self.restoreGeometry(geom)
|
||||
QApplication.instance().safe_restore_geometry(self, geom)
|
||||
if hasattr(self, 'splitter'):
|
||||
state = self.prefs_for_persistence.get(name + '-splitter-state', None)
|
||||
if state is not None:
|
||||
|
|
|
|||
Loading…
Reference in a new issue