33 lines
847 B
Python
33 lines
847 B
Python
from pymol.Qt import QtCore, QtWidgets
|
|
|
|
|
|
class ResizableMessageBox(QtWidgets.QMessageBox):
|
|
|
|
_EVENT_TYPES = (
|
|
QtCore.QEvent.UpdateRequest,
|
|
QtCore.QEvent.WinIdChange,
|
|
QtCore.QEvent.ShowToParent,
|
|
)
|
|
|
|
_UNWANTED_WINDOW_FLAGS = (
|
|
QtCore.Qt.MSWindowsFixedSizeDialogHint |
|
|
0)
|
|
|
|
def _make_resizable(self):
|
|
textEdit = self.findChild(QtWidgets.QTextEdit)
|
|
if textEdit is None:
|
|
return
|
|
|
|
self.setSizeGripEnabled(True)
|
|
|
|
ex = QtWidgets.QSizePolicy.Expanding
|
|
for w in [self, textEdit]:
|
|
w.setMaximumSize(0xffffff, 0xffffff)
|
|
w.setSizePolicy(ex, ex)
|
|
|
|
def event(self, e):
|
|
if e.type() in self._EVENT_TYPES:
|
|
self._make_resizable()
|
|
|
|
return super(ResizableMessageBox, self).event(e)
|