From 1d48e61f167dbf589e190668410cfd4ff0520b47 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 22 Sep 2022 07:31:37 +0530 Subject: [PATCH] Dont ask Qt to restore edit metadata dialog window position Apparently in multi-monitor setups it gets it wrong on Windows. See https://www.mobileread.com/forums/showthread.php?t=349236 --- src/calibre/gui2/metadata/single.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/calibre/gui2/metadata/single.py b/src/calibre/gui2/metadata/single.py index 1a67a39be4..fa40311644 100644 --- a/src/calibre/gui2/metadata/single.py +++ b/src/calibre/gui2/metadata/single.py @@ -10,10 +10,10 @@ import os from datetime import datetime from functools import partial from qt.core import ( - QApplication, QDialog, QDialogButtonBox, QFrame, QGridLayout, QGroupBox, - QHBoxLayout, QIcon, QInputDialog, QKeySequence, QMenu, QPushButton, QScrollArea, - QShortcut, QSize, QSizePolicy, QSpacerItem, QSplitter, Qt, QTabWidget, - QToolButton, QVBoxLayout, QWidget, pyqtSignal + QDialog, QDialogButtonBox, QFrame, QGridLayout, QGroupBox, QHBoxLayout, QIcon, + QInputDialog, QKeySequence, QMenu, QPushButton, QScrollArea, QShortcut, QSize, + QSizePolicy, QSpacerItem, QSplitter, Qt, QTabWidget, QToolButton, QVBoxLayout, + QWidget, pyqtSignal ) from calibre.constants import ismacos @@ -120,9 +120,11 @@ class MetadataSingleDialogBase(QDialog): self.comments_edit_state_at_apply = {self.comments:None} self.do_layout() - geom = gprefs.get('metasingle_window_geometry3', None) - if geom is not None: - QApplication.instance().safe_restore_geometry(self, bytes(geom)) + try: + w, h = gprefs.get('metasingle_window_size') + self.resize(QSize(w, h)) + except Exception: + pass else: self.resize(self.sizeHint()) self.restore_widget_settings() @@ -650,7 +652,8 @@ class MetadataSingleDialogBase(QDialog): def save_state(self): try: - gprefs['metasingle_window_geometry3'] = bytearray(self.saveGeometry()) + sz = self.size() + gprefs['metasingle_window_size'] = sz.width(), sz.height() self.save_widget_settings() except: # Weird failure, see https://bugs.launchpad.net/bugs/995271