refactor: split TabInputScore

This commit is contained in:
2023-09-21 00:32:06 +08:00
parent ddd418039b
commit c3c13bab40
8 changed files with 315 additions and 240 deletions

View File

@ -0,0 +1,27 @@
from ui.designer.components.chartAndScoreInput_ui import Ui_ChartAndScoreInput
from PySide6.QtWidgets import QWidget
from PySide6.QtCore import Signal
from ui.implements.components.songIdSelector import SongIdSelectorMode
class ChartAndScoreInput(Ui_ChartAndScoreInput, QWidget):
scoreCommited = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.chartSelector.valueChanged.connect(self.updateScoreEditorChart)
self.scoreEditor.accepted.connect(self.commit)
def updateScoreEditorChart(self):
chart = self.chartSelector.value()
self.scoreEditor.setChart(chart)
def commit(self):
self.scoreCommited.emit()
def setSongIdSelectorMode(self, mode: SongIdSelectorMode):
self.chartSelector.setSongIdSelectorMode(mode)
def value(self):
return self.scoreEditor.value()

View File

@ -1,8 +1,5 @@
import traceback
from arcaea_offline.database import Database
from PySide6.QtCore import QCoreApplication, QModelIndex
from PySide6.QtWidgets import QMessageBox, QWidget
from PySide6.QtWidgets import QWidget
from ui.designer.tabs.tabInputScore_ui import Ui_TabInputScore
@ -11,23 +8,14 @@ class TabInputScore(Ui_TabInputScore, QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.chartSelector.valueChanged.connect(self.updateScoreEditorChart)
self.scoreEditor.accepted.connect(self.commit)
def updateScoreEditorChart(self):
chart = self.chartSelector.value()
self.scoreEditor.setChart(chart)
self.chartAndScoreInput.scoreCommited.connect(self.commit)
def commit(self):
try:
Database().insert_score(self.scoreEditor.value())
self.scoreEditor.reset()
except Exception as e:
QMessageBox.critical(
self,
# fmt: off
QCoreApplication.translate("General", "tracebackFormatExceptionOnly.title"),
QCoreApplication.translate("General", "tracebackFormatExceptionOnly.content").format(traceback.format_exception_only(e))
# fmt: on
)
score = self.chartAndScoreInput.value()
if not score:
return
Database().insert_score(score)
self.chartAndScoreInput.scoreEditor.reset()
self.chartAndScoreInput.scoreEditor.setChart(
self.chartAndScoreInput.chartSelector.value()
)