impr: realtime language switch

This commit is contained in:
283375 2023-09-22 23:01:05 +08:00
parent 2be39d6bb3
commit 8c90c27ba3
Signed by: 283375
SSH Key Fingerprint: SHA256:UcX0qg6ZOSDOeieKPGokA5h7soykG61nz2uxuQgVLSk
16 changed files with 67 additions and 2 deletions

View File

@ -2,6 +2,7 @@ from PySide6.QtCore import Signal
from PySide6.QtWidgets import QWidget
from ui.designer.components.chartAndScoreInput_ui import Ui_ChartAndScoreInput
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.implements.components.songIdSelector import SongIdSelectorMode
@ -12,6 +13,9 @@ class ChartAndScoreInput(Ui_ChartAndScoreInput, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.chartSelector.valueChanged.connect(self.updateScoreEditorChart)
self.scoreEditor.accepted.connect(self.commit)

View File

@ -1,7 +1,8 @@
from PySide6.QtCore import QCoreApplication, Qt
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QLabel, QPushButton, QWidget
from ui.designer.settings.settingsBaseWidget_ui import Ui_SettingsBaseWidget
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.extends.shared.settings import Settings
@ -10,6 +11,9 @@ class SettingsBaseWidget(Ui_SettingsBaseWidget, QWidget):
super().__init__(parent)
self.settings = Settings()
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
def setTitle(self, title: str):
self.titleLabel.setText(title)

View File

@ -3,6 +3,7 @@ from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import QMessageBox, QWidget
from ui.designer.tabs.tabAbout_ui import Ui_TabAbout
from ui.extends.shared.language import LanguageChangeEventFilter
class TabAbout(Ui_TabAbout, QWidget):
@ -10,6 +11,9 @@ class TabAbout(Ui_TabAbout, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
logoPixmap = QPixmap(":/images/logo.png").scaled(
300,
300,

View File

@ -4,6 +4,7 @@ from PySide6.QtWidgets import QMessageBox
from ui.extends.shared.delegates.chartDelegate import ChartDelegate
from ui.extends.shared.delegates.scoreDelegate import ScoreDelegate
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.extends.shared.models.tables.b30 import (
DbB30TableModel,
DbB30TableSortFilterProxyModel,
@ -34,6 +35,10 @@ class TableScoreDelegate(ScoreDelegate):
class DbB30TableViewer(DbTableViewer):
def __init__(self, parent=None):
super().__init__(parent)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.tableView.verticalHeader().setVisible(True)
self.tableModel = DbB30TableModel(self)

View File

@ -18,6 +18,7 @@ from PySide6.QtWidgets import QFileDialog, QMessageBox, QWidget
from ui.designer.tabs.tabDb.tabDb_Manage_ui import Ui_TabDb_Manage
from ui.extends.shared.database import databaseUpdateSignals
from ui.extends.shared.language import LanguageChangeEventFilter
logger = logging.getLogger(__name__)
@ -27,6 +28,9 @@ class TabDb_Manage(Ui_TabDb_Manage, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
@Slot()
def on_syncArcSongDbButton_clicked(self):
dbFile, filter = QFileDialog.getOpenFileName(

View File

@ -5,6 +5,7 @@ from PySide6.QtWidgets import QMessageBox
from ui.extends.shared.delegates.chartDelegate import ChartDelegate
from ui.extends.shared.delegates.scoreDelegate import ScoreDelegate
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.extends.shared.models.tables.score import (
DbScoreTableModel,
DbScoreTableSortFilterProxyModel,
@ -33,6 +34,9 @@ class DbScoreTableViewer(DbTableViewer):
def __init__(self, parent=None):
super().__init__(parent)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.tableModel = DbScoreTableModel(self)
self.tableProxyModel = DbScoreTableSortFilterProxyModel(self)
self.tableProxyModel.setSourceModel(self.tableModel)

View File

@ -2,6 +2,7 @@ from PySide6.QtCore import QCoreApplication
from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabDbEntry_ui import Ui_TabDbEntry
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.implements.tabs.tabDb.tabDb_B30TableViewer import DbB30TableViewer
from ui.implements.tabs.tabDb.tabDb_ScoreTableViewer import DbScoreTableViewer
@ -11,6 +12,9 @@ class TabDbEntry(Ui_TabDbEntry, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.tabWidget.addTab(
DbScoreTableViewer(self),
QCoreApplication.translate("TabDbEntry", "tab.scoreTableViewer"),

View File

@ -2,12 +2,17 @@ from arcaea_offline.database import Database
from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabInputScore_ui import Ui_TabInputScore
from ui.extends.shared.language import LanguageChangeEventFilter
class TabInputScore(Ui_TabInputScore, QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.chartAndScoreInput.scoreCommited.connect(self.commit)
def commit(self):

View File

@ -1,5 +1,4 @@
import logging
from pathlib import Path
import cv2
from arcaea_offline_ocr.b30.chieri.v4.ocr import ChieriBotV4Ocr
@ -11,6 +10,7 @@ from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabOcr.tabOcr_B30_ui import Ui_TabOcr_B30
from ui.extends.components.ocrQueue import OcrQueueModel
from ui.extends.shared.cv2_utils import cv2BgrMatToQImage, qImageToCvMatBgr
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.extends.shared.settings import KNN_MODEL_FILE, SIFT_DATABASE_FILE, Settings
from ui.extends.tabs.tabOcr.tabOcr_B30 import ChieriV4OcrRunnable, b30ResultToScore
@ -24,6 +24,9 @@ class TabOcr_B30(Ui_TabOcr_B30, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.b30TypeComboBox.addItem("ChieriV4", "chieri_v4")
self.b30TypeComboBox.setCurrentIndex(0)
self.b30TypeComboBox.setEnabled(False)

View File

@ -11,6 +11,7 @@ from PySide6.QtWidgets import QApplication, QFileDialog, QWidget
from ui.designer.tabs.tabOcr.tabOcr_Device_ui import Ui_TabOcr_Device
from ui.extends.components.ocrQueue import OcrQueueModel
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.extends.shared.settings import (
DEVICES_JSON_FILE,
KNN_MODEL_FILE,
@ -32,6 +33,9 @@ class TabOcr_Device(Ui_TabOcr_Device, QWidget):
self.setupUi(self)
self.openWizardButton.setEnabled(False)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.deviceFileSelector.filesSelected.connect(self.deviceFileSelected)
self.knnModelSelector.filesSelected.connect(self.knnModelFileSelected)
self.siftDatabaseSelector.filesSelected.connect(self.siftDatabaseFileSelected)

View File

@ -1,9 +1,13 @@
from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabOcrEntry_ui import Ui_TabOcrEntry
from ui.extends.shared.language import LanguageChangeEventFilter
class TabOcrEntry(Ui_TabOcrEntry, QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)

View File

@ -3,6 +3,7 @@ from PySide6.QtGui import QShowEvent
from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabOverview_ui import Ui_TabOverview
from ui.extends.shared.language import LanguageChangeEventFilter
class TabOverview(Ui_TabOverview, QWidget):
@ -10,6 +11,9 @@ class TabOverview(Ui_TabOverview, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.db = Database()
# self.db.register_update_hook(self.updateOverview)
# self.updateOverview()

View File

@ -21,6 +21,7 @@ from PySide6.QtWidgets import (
)
from ui.designer.tabs.tabTools.tabTools_Andreal_ui import Ui_TabTools_Andreal
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.extends.shared.settings import ANDREAL_EXECUTABLE, ANDREAL_FOLDER
from ui.extends.tabs.tabTools.tabTools_Andreal import AndrealHelper
from ui.implements.components.chartSelector import ChartSelector
@ -95,6 +96,9 @@ class TabTools_Andreal(Ui_TabTools_Andreal, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.db = Database()
self.andrealHelper = AndrealHelper(self)

View File

@ -5,6 +5,7 @@ from PySide6.QtCore import QDateTime
from PySide6.QtWidgets import QVBoxLayout, QWidget
from ui.designer.tabs.tabTools.tabTools_InfoLookup_ui import Ui_TabTools_InfoLookup
from ui.extends.shared.language import LanguageChangeEventFilter
class TabTools_InfoLookup(Ui_TabTools_InfoLookup, QWidget):
@ -12,6 +13,9 @@ class TabTools_InfoLookup(Ui_TabTools_InfoLookup, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.ratingClassSelector.setLayout(QVBoxLayout)
self.db = Database()

View File

@ -29,6 +29,7 @@ from PySide6.QtWidgets import (
from ui.designer.tabs.tabTools.tabTools_StepCalculator_ui import (
Ui_TabTools_StepCalculator,
)
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.implements.components.chartAndScoreInput import ChartAndScoreInput
from ui.implements.components.songIdSelector import SongIdSelectorMode
@ -90,6 +91,9 @@ class TabTools_StepCalculator(Ui_TabTools_StepCalculator, QWidget):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)
self.calculate_toStep_calculatePlayResultFromScoreButton.clicked.connect(
self.openChartAndScoreInputDialog
)

View File

@ -1,9 +1,13 @@
from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabToolsEntry_ui import Ui_TabToolsEntry
from ui.extends.shared.language import LanguageChangeEventFilter
class TabToolsEntry(Ui_TabToolsEntry, QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.languageChangeEventFilter = LanguageChangeEventFilter(self)
self.installEventFilter(self.languageChangeEventFilter)