refactor: split TabInputScore

This commit is contained in:
283375 2023-09-21 00:32:06 +08:00
parent ddd418039b
commit c3c13bab40
Signed by: 283375
SSH Key Fingerprint: SHA256:UcX0qg6ZOSDOeieKPGokA5h7soykG61nz2uxuQgVLSk
8 changed files with 315 additions and 240 deletions

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ChartAndScoreInput</class>
<widget class="QWidget" name="ChartAndScoreInput">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>450</height>
</rect>
</property>
<property name="windowTitle">
<string notr="true">ChartAndScoreInput</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>selectChart</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="ChartSelector" name="chartSelector" native="true"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>editScore</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="ScoreEditor" name="scoreEditor" native="true"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ChartSelector</class>
<extends>QWidget</extends>
<header>ui.implements.components.chartSelector</header>
<container>1</container>
</customwidget>
<customwidget>
<class>ScoreEditor</class>
<extends>QWidget</extends>
<header>ui.implements.components.scoreEditor</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,69 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'chartAndScoreInput.ui'
##
## Created by: Qt User Interface Compiler version 6.5.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QGroupBox, QSizePolicy, QVBoxLayout,
QWidget)
from ui.implements.components.chartSelector import ChartSelector
from ui.implements.components.scoreEditor import ScoreEditor
class Ui_ChartAndScoreInput(object):
def setupUi(self, ChartAndScoreInput):
if not ChartAndScoreInput.objectName():
ChartAndScoreInput.setObjectName(u"ChartAndScoreInput")
ChartAndScoreInput.resize(400, 450)
ChartAndScoreInput.setWindowTitle(u"ChartAndScoreInput")
self.verticalLayout = QVBoxLayout(ChartAndScoreInput)
self.verticalLayout.setObjectName(u"verticalLayout")
self.groupBox = QGroupBox(ChartAndScoreInput)
self.groupBox.setObjectName(u"groupBox")
self.verticalLayout_2 = QVBoxLayout(self.groupBox)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.chartSelector = ChartSelector(self.groupBox)
self.chartSelector.setObjectName(u"chartSelector")
self.verticalLayout_2.addWidget(self.chartSelector)
self.verticalLayout.addWidget(self.groupBox)
self.groupBox_2 = QGroupBox(ChartAndScoreInput)
self.groupBox_2.setObjectName(u"groupBox_2")
self.verticalLayout_3 = QVBoxLayout(self.groupBox_2)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.scoreEditor = ScoreEditor(self.groupBox_2)
self.scoreEditor.setObjectName(u"scoreEditor")
self.verticalLayout_3.addWidget(self.scoreEditor)
self.verticalLayout.addWidget(self.groupBox_2)
self.retranslateUi(ChartAndScoreInput)
QMetaObject.connectSlotsByName(ChartAndScoreInput)
# setupUi
def retranslateUi(self, ChartAndScoreInput):
self.groupBox.setTitle(QCoreApplication.translate("ChartAndScoreInput", u"selectChart", None))
self.groupBox_2.setTitle(QCoreApplication.translate("ChartAndScoreInput", u"editScore", None))
pass
# retranslateUi

View File

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>514</width>
<width>500</width>
<height>400</height>
</rect>
</property>
@ -15,66 +15,15 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>tab.selectChart</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="ChartSelector" name="chartSelector" native="true"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>tab.scoreEdit</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="ScoreEditor" name="scoreEditor" native="true"/>
</item>
</layout>
</widget>
<widget class="ChartAndScoreInput" name="chartAndScoreInput" native="true"/>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ChartSelector</class>
<class>ChartAndScoreInput</class>
<extends>QWidget</extends>
<header>ui.implements.components.chartSelector</header>
<container>1</container>
</customwidget>
<customwidget>
<class>ScoreEditor</class>
<extends>QWidget</extends>
<header>ui.implements.components.scoreEditor</header>
<header>ui.implements.components.chartAndScoreInput</header>
<container>1</container>
</customwidget>
</customwidgets>

View File

@ -15,45 +15,22 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QGroupBox, QSizePolicy, QVBoxLayout,
QWidget)
from PySide6.QtWidgets import (QApplication, QSizePolicy, QVBoxLayout, QWidget)
from ui.implements.components.chartSelector import ChartSelector
from ui.implements.components.scoreEditor import ScoreEditor
from ui.implements.components.chartAndScoreInput import ChartAndScoreInput
class Ui_TabInputScore(object):
def setupUi(self, TabInputScore):
if not TabInputScore.objectName():
TabInputScore.setObjectName(u"TabInputScore")
TabInputScore.resize(514, 400)
TabInputScore.resize(500, 400)
TabInputScore.setWindowTitle(u"TabInputScore")
self.verticalLayout = QVBoxLayout(TabInputScore)
self.verticalLayout.setObjectName(u"verticalLayout")
self.groupBox = QGroupBox(TabInputScore)
self.groupBox.setObjectName(u"groupBox")
self.verticalLayout_2 = QVBoxLayout(self.groupBox)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.chartSelector = ChartSelector(self.groupBox)
self.chartSelector.setObjectName(u"chartSelector")
self.chartAndScoreInput = ChartAndScoreInput(TabInputScore)
self.chartAndScoreInput.setObjectName(u"chartAndScoreInput")
self.verticalLayout_2.addWidget(self.chartSelector)
self.verticalLayout.addWidget(self.groupBox)
self.groupBox_2 = QGroupBox(TabInputScore)
self.groupBox_2.setObjectName(u"groupBox_2")
self.verticalLayout_3 = QVBoxLayout(self.groupBox_2)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.scoreEditor = ScoreEditor(self.groupBox_2)
self.scoreEditor.setObjectName(u"scoreEditor")
self.verticalLayout_3.addWidget(self.scoreEditor)
self.verticalLayout.addWidget(self.groupBox_2)
self.verticalLayout.addWidget(self.chartAndScoreInput)
self.retranslateUi(TabInputScore)
@ -62,8 +39,6 @@ class Ui_TabInputScore(object):
# setupUi
def retranslateUi(self, TabInputScore):
self.groupBox.setTitle(QCoreApplication.translate("TabInputScore", u"tab.selectChart", None))
self.groupBox_2.setTitle(QCoreApplication.translate("TabInputScore", u"tab.scoreEdit", None))
pass
# retranslateUi

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()
)

View File

@ -1,6 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>ChartAndScoreInput</name>
<message>
<location filename="../../designer/components/chartAndScoreInput.ui" line="20"/>
<source>selectChart</source>
<translation>Select a Chart</translation>
</message>
<message>
<location filename="../../designer/components/chartAndScoreInput.ui" line="44"/>
<source>editScore</source>
<translation>Edit Score</translation>
</message>
</context>
<context>
<name>ChartSelector</name>
<message>
@ -160,19 +173,6 @@
<translation>Select...</translation>
</message>
</context>
<context>
<name>General</name>
<message>
<location filename="../../implements/tabs/tabInputScore.py" line="30"/>
<source>tracebackFormatExceptionOnly.title</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../implements/tabs/tabInputScore.py" line="31"/>
<source>tracebackFormatExceptionOnly.content</source>
<translation>Unexpected error&lt;br&gt;{0}</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
@ -654,19 +654,6 @@ validation</translation>
<translation>Import packlist and songlist from .apk file</translation>
</message>
</context>
<context>
<name>TabInputScore</name>
<message>
<location filename="../../designer/tabs/tabInputScore.ui" line="20"/>
<source>tab.selectChart</source>
<translation>Select a Chart</translation>
</message>
<message>
<location filename="../../designer/tabs/tabInputScore.ui" line="44"/>
<source>tab.scoreEdit</source>
<translation>Score Input</translation>
</message>
</context>
<context>
<name>TabOcrDisabled</name>
<message>
@ -942,107 +929,112 @@ validation</translation>
<context>
<name>TabTools_StepCalculator</name>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="90"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="97"/>
<source>legacyPlay.noOptions</source>
<translation>No options</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="140"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="147"/>
<source>legacyPlayPlus.useFragments</source>
<translation>Use Fragments</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="183"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="190"/>
<source>play.memoryBoost</source>
<translation>Memory boost</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="194"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="201"/>
<source>partner.title</source>
<translation>Partner</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="202"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="209"/>
<source>partner.stepValueLabel</source>
<translation>STEP value</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="236"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="243"/>
<source>partner.skill.title</source>
<translation>Partner Skill</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="253"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="260"/>
<source>partner.skill.stepBonus</source>
<translation>Step bonus</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="260"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="267"/>
<source>partner.skill.finalMultiplier</source>
<translation>Final multiplier</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="289"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="296"/>
<source>partner.skill.presets</source>
<translation>Preset Datas</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="295"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="302"/>
<source>partner.skill.presets.awakenedEto</source>
<translation>Eto (Awakened)</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="302"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="309"/>
<source>partner.skill.presets.awakenedIlith</source>
<translation>Ilith (Awakened)</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="309"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="316"/>
<source>partner.skill.presets.awakenedLuna</source>
<translation>Luna (Awakened)</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="316"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="323"/>
<source>partner.skill.presets.amaneBelowEx</source>
<translation>Amane (Below EX)</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="323"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="330"/>
<source>partner.skill.presets.maya</source>
<translation>Maya</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="351"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="358"/>
<source>calculate.toStep</source>
<translation>Calculate to Step</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="379"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="386"/>
<source>calculate.toStep.playResultLabel</source>
<translation>Play result</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="412"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="419"/>
<source>calculate.toStep.calculatePlayResultFromScoreButton</source>
<translation>Calculate from Score</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="392"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="399"/>
<source>calculate.toStep.resultLabel</source>
<translation>Result</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="422"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="20"/>
<source>detailedLogOutput</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="429"/>
<source>calculate.fromStep</source>
<translation>Calculate from Step</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="431"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="438"/>
<source>calculate.fromStep.targetStepLabel</source>
<translation>Target step value</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="454"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="461"/>
<source>calculate.fromStep.resultLabel</source>
<translation>Result (play rating)</translation>
</message>

View File

@ -1,6 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>ChartAndScoreInput</name>
<message>
<location filename="../../designer/components/chartAndScoreInput.ui" line="20"/>
<source>selectChart</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/chartAndScoreInput.ui" line="44"/>
<source>editScore</source>
<translation></translation>
</message>
</context>
<context>
<name>ChartSelector</name>
<message>
@ -160,19 +173,6 @@
<translation></translation>
</message>
</context>
<context>
<name>General</name>
<message>
<location filename="../../implements/tabs/tabInputScore.py" line="30"/>
<source>tracebackFormatExceptionOnly.title</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/tabs/tabInputScore.py" line="31"/>
<source>tracebackFormatExceptionOnly.content</source>
<translation>{0}</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
@ -653,19 +653,6 @@
<translation> .apk packlist songlist</translation>
</message>
</context>
<context>
<name>TabInputScore</name>
<message>
<location filename="../../designer/tabs/tabInputScore.ui" line="20"/>
<source>tab.selectChart</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabInputScore.ui" line="44"/>
<source>tab.scoreEdit</source>
<translation></translation>
</message>
</context>
<context>
<name>TabOcrDisabled</name>
<message>
@ -941,107 +928,112 @@
<context>
<name>TabTools_StepCalculator</name>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="90"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="97"/>
<source>legacyPlay.noOptions</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="140"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="147"/>
<source>legacyPlayPlus.useFragments</source>
<translation>使</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="183"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="190"/>
<source>play.memoryBoost</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="194"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="201"/>
<source>partner.title</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="202"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="209"/>
<source>partner.stepValueLabel</source>
<translation>STEP </translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="236"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="243"/>
<source>partner.skill.title</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="253"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="260"/>
<source>partner.skill.stepBonus</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="260"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="267"/>
<source>partner.skill.finalMultiplier</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="289"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="296"/>
<source>partner.skill.presets</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="295"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="302"/>
<source>partner.skill.presets.awakenedEto</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="302"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="309"/>
<source>partner.skill.presets.awakenedIlith</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="309"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="316"/>
<source>partner.skill.presets.awakenedLuna</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="316"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="323"/>
<source>partner.skill.presets.amaneBelowEx</source>
<translation>EX </translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="323"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="330"/>
<source>partner.skill.presets.maya</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="351"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="358"/>
<source>calculate.toStep</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="379"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="386"/>
<source>calculate.toStep.playResultLabel</source>
<translation> PTT</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="412"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="419"/>
<source>calculate.toStep.calculatePlayResultFromScoreButton</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="392"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="399"/>
<source>calculate.toStep.resultLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="422"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="20"/>
<source>detailedLogOutput</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="429"/>
<source>calculate.fromStep</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="431"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="438"/>
<source>calculate.fromStep.targetStepLabel</source>
<translation> STEP </translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="454"/>
<location filename="../../designer/tabs/tabTools/tabTools_StepCalculator.ui" line="461"/>
<source>calculate.fromStep.resultLabel</source>
<translation> PTT</translation>
</message>