anki/qt/aqt/forms/build_ui_qt6.py

40 lines
1.1 KiB
Python
Raw Normal View History

import re
import sys
import io
2021-10-05 05:18:43 +02:00
from PyQt6.uic import compileUi
ui_file = sys.argv[1]
py_file = sys.argv[2]
buf = io.StringIO()
2021-10-05 05:18:43 +02:00
compileUi(open(ui_file), buf)
outdata = buf.getvalue()
2020-11-17 10:55:18 +01:00
outdata = outdata.replace(
2021-10-05 05:18:43 +02:00
"from PyQt6 import QtCore, QtGui, QtWidgets",
"from PyQt6 import QtCore, QtGui, QtWidgets\nfrom aqt.utils import tr\n"
2020-11-17 10:55:18 +01:00
)
outdata = re.sub(
r'(?:QtGui\.QApplication\.)?_?translate\(".*?", "(.*?)"', "tr.\\1(", outdata
2020-11-17 10:55:18 +01:00
)
outlines = []
2021-04-14 10:22:02 +02:00
qt_bad_types = [
".connect(",
]
for line in outdata.splitlines():
for substr in qt_bad_types:
if substr in line:
line = line + " # type: ignore"
break
if line == "from . import icons_rc":
continue
line = line.replace(":/icons/", "icons:")
2021-10-05 05:18:43 +02:00
line = line.replace("QAction.PreferencesRole", "QAction.MenuRole.PreferencesRole")
line = line.replace("QAction.AboutRole", "QAction.MenuRole.AboutRole")
line = line.replace("QComboBox.AdjustToMinimumContentsLength", "QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLength")
outlines.append(line)
with open(py_file, "w") as file:
file.write("\n".join(outlines))