mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04: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
@ -147,7 +147,8 @@ class Plugin(object): # {{{
|
||||
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 @@ class Application(QApplication):
|
||||
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 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
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 @@ class BulkConfig(Config):
|
||||
|
||||
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 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
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 @@ class RegexBuilder(QDialog, Ui_RegexBuilder):
|
||||
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 @@ from PyQt5.Qt import (
|
||||
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 @@ class Config(QDialog):
|
||||
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 @@ Module to implement the Cover Flow feature
|
||||
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 @@ class CBDialog(QDialog):
|
||||
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 @@ class CBDialog(QDialog):
|
||||
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 @@ class CoverFlowMixin(object):
|
||||
|
||||
|
||||
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 collections import OrderedDict
|
||||
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 @@ class CoverSettingsDialog(QDialog):
|
||||
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 @@ class AuthorsEdit(QDialog):
|
||||
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 @@ from PyQt5.Qt import (
|
||||
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 @@ class BookInfo(QDialog):
|
||||
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 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
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 @@ class Catalog(QDialog, Ui_Dialog):
|
||||
|
||||
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 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
|
||||
__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 @@ class CommentsDialog(QDialog, Ui_CommentsDialog):
|
||||
|
||||
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 @@ class DuplicatesQuestion(QDialog):
|
||||
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 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog):
|
||||
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 @@ class MatchBooks(QDialog, Ui_MatchBooks):
|
||||
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 @@ class ViewLog(QDialog): # {{{
|
||||
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 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog):
|
||||
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 @@ import re, datetime, traceback
|
||||
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 @@ class SizePersistedDialog(QDialog):
|
||||
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 @@ class Quickview(QDialog, Ui_Quickview):
|
||||
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 @@ import calendar, textwrap
|
||||
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 @@ class SchedulerDialog(QDialog):
|
||||
|
||||
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 @@ class Scheduler(QObject):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from PyQt5.Qt import QApplication
|
||||
app = QApplication([])
|
||||
d = SchedulerDialog(RecipeModel())
|
||||
d.exec_()
|
||||
|
@ -3,7 +3,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera
|
||||
__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 @@ class TagEditor(QDialog, Ui_TagEditor):
|
||||
|
||||
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 @@ class TagListEditor(QDialog, Ui_TagListEditor):
|
||||
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 @@ class TrimImage(QDialog):
|
||||
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 @@ class ImageView(QDialog):
|
||||
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 @@ class JobsDialog(QDialog, Ui_JobsDialog):
|
||||
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 @@ class CompareMany(QDialog):
|
||||
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 @@ import os, errno
|
||||
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 @@ class MetadataSingleDialogBase(QDialog):
|
||||
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 @@ class FullFetch(QDialog): # {{{
|
||||
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 @@ class CoverFetch(QDialog): # {{{
|
||||
|
||||
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 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
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 show_config_widget(category, name, gui=None, show_restart_msg=False,
|
||||
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 @@ class Preferences(QDialog):
|
||||
|
||||
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 @@ import re
|
||||
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 @@ class SearchDialog(QDialog, Ui_Dialog):
|
||||
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 @@ class SearchDialog(QDialog, Ui_Dialog):
|
||||
# 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 @@ __copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||
__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 @@ class MobileReadStoreDialog(QDialog, Ui_Dialog):
|
||||
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 @@ import shutil
|
||||
|
||||
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 @@ class Main(MainWindow):
|
||||
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 functools import partial
|
||||
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 @@ class TOCEditor(QDialog): # {{{
|
||||
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 copy import copy, deepcopy
|
||||
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 @@ class Preferences(QDialog):
|
||||
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 @@ class TOCEditor(QDialog):
|
||||
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 @@ class Main(MainWindow):
|
||||
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 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
|
||||
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 @@ class EbookViewer(MainWindow):
|
||||
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 @@ class Dialog(QDialog):
|
||||
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…
x
Reference in New Issue
Block a user