diff --git a/ui/designer/tabs/tabTools/tabTools_StepCalculator.ui b/ui/designer/tabs/tabTools/tabTools_StepCalculator.ui new file mode 100644 index 0000000..828df10 --- /dev/null +++ b/ui/designer/tabs/tabTools/tabTools_StepCalculator.ui @@ -0,0 +1,341 @@ + + + TabTools_StepCalculator + + + + 0 + 0 + 615 + 549 + + + + TabTools_StepCalculator + + + + + + + + + partnerStepValueLabel + + + + + + + + 0 + 0 + + + + 1000.000000000000000 + + + 1.000000000000000 + + + QAbstractSpinBox::DefaultStepType + + + + + + + + + + + + + + + + QPushButton{background-color: transparent} + + + + + + true + + + true + + + + + + + QPushButton{background-color: transparent} + + + + + + true + + + true + + + + + + + QPushButton{background-color: transparent} + + + + + + true + + + true + + + + + + + false + + + QPushButton{background-color: transparent} + + + Beyond placeholder + + + false + + + true + + + + + + + + + + + 0 + 0 + + + + 1 + + + + + + + legacyPlay.noOptions + + + + + + + + + + + + 0 + 0 + + + + + + + x2 + + + + + + + x4 + + + + + + + x6 + + + + + + + + + + + 0 + 0 + + + + legacyPlayPlus.useFragments + + + true + + + false + + + + + + x1.1 +100 + + + + + + + x1.25 +125 + + + + + + + x1.5 +500 + + + + + + + + + + + + + + play.memoryBoost + + + + + + + + + + + + + + + 0 + 0 + + + + + + + calculation + + + + + + + + + playResultLabel + + + + + + + + 0 + 0 + + + + 3 + + + 100.000000000000000 + + + 0.100000000000000 + + + + + + + + + + calculatePlayResultFromScoreButton + + + + + + + + + + inverseCalculation + + + + + + + + + targetStep + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + diff --git a/ui/designer/tabs/tabTools/tabTools_StepCalculator_ui.py b/ui/designer/tabs/tabTools/tabTools_StepCalculator_ui.py new file mode 100644 index 0000000..2965be7 --- /dev/null +++ b/ui/designer/tabs/tabTools/tabTools_StepCalculator_ui.py @@ -0,0 +1,297 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'tabTools_StepCalculator.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 (QAbstractSpinBox, QApplication, QCheckBox, QDoubleSpinBox, + QGridLayout, QGroupBox, QHBoxLayout, QLabel, + QPushButton, QRadioButton, QSizePolicy, QStackedWidget, + QVBoxLayout, QWidget) + +class Ui_TabTools_StepCalculator(object): + def setupUi(self, TabTools_StepCalculator): + if not TabTools_StepCalculator.objectName(): + TabTools_StepCalculator.setObjectName(u"TabTools_StepCalculator") + TabTools_StepCalculator.resize(615, 549) + TabTools_StepCalculator.setWindowTitle(u"TabTools_StepCalculator") + self.verticalLayout_3 = QVBoxLayout(TabTools_StepCalculator) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.widget_3 = QWidget(TabTools_StepCalculator) + self.widget_3.setObjectName(u"widget_3") + self.gridLayout = QGridLayout(self.widget_3) + self.gridLayout.setObjectName(u"gridLayout") + self.label = QLabel(self.widget_3) + self.label.setObjectName(u"label") + + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + + self.partnerStepValueSpinBox = QDoubleSpinBox(self.widget_3) + self.partnerStepValueSpinBox.setObjectName(u"partnerStepValueSpinBox") + sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.partnerStepValueSpinBox.sizePolicy().hasHeightForWidth()) + self.partnerStepValueSpinBox.setSizePolicy(sizePolicy) + self.partnerStepValueSpinBox.setMaximum(1000.000000000000000) + self.partnerStepValueSpinBox.setSingleStep(1.000000000000000) + self.partnerStepValueSpinBox.setStepType(QAbstractSpinBox.DefaultStepType) + + self.gridLayout.addWidget(self.partnerStepValueSpinBox, 0, 1, 1, 1) + + + self.verticalLayout_3.addWidget(self.widget_3) + + self.mapTypeWidget = QWidget(TabTools_StepCalculator) + self.mapTypeWidget.setObjectName(u"mapTypeWidget") + self.horizontalLayout = QHBoxLayout(self.mapTypeWidget) + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.mapTypeSelectorWidget = QWidget(self.mapTypeWidget) + self.mapTypeSelectorWidget.setObjectName(u"mapTypeSelectorWidget") + self.gridLayout_2 = QGridLayout(self.mapTypeSelectorWidget) + self.gridLayout_2.setObjectName(u"gridLayout_2") + self.mapTypeLegacyPlayRadioButton = QPushButton(self.mapTypeSelectorWidget) + self.mapTypeLegacyPlayRadioButton.setObjectName(u"mapTypeLegacyPlayRadioButton") + self.mapTypeLegacyPlayRadioButton.setStyleSheet(u"QPushButton{background-color: transparent}") + self.mapTypeLegacyPlayRadioButton.setCheckable(True) + self.mapTypeLegacyPlayRadioButton.setAutoExclusive(True) + + self.gridLayout_2.addWidget(self.mapTypeLegacyPlayRadioButton, 0, 0, 1, 1) + + self.mapTypePlayRadioButton = QPushButton(self.mapTypeSelectorWidget) + self.mapTypePlayRadioButton.setObjectName(u"mapTypePlayRadioButton") + self.mapTypePlayRadioButton.setStyleSheet(u"QPushButton{background-color: transparent}") + self.mapTypePlayRadioButton.setCheckable(True) + self.mapTypePlayRadioButton.setAutoExclusive(True) + + self.gridLayout_2.addWidget(self.mapTypePlayRadioButton, 1, 0, 1, 1) + + self.mapTypeLegacyPlayPlusRadioButton = QPushButton(self.mapTypeSelectorWidget) + self.mapTypeLegacyPlayPlusRadioButton.setObjectName(u"mapTypeLegacyPlayPlusRadioButton") + self.mapTypeLegacyPlayPlusRadioButton.setStyleSheet(u"QPushButton{background-color: transparent}") + self.mapTypeLegacyPlayPlusRadioButton.setCheckable(True) + self.mapTypeLegacyPlayPlusRadioButton.setAutoExclusive(True) + + self.gridLayout_2.addWidget(self.mapTypeLegacyPlayPlusRadioButton, 0, 1, 1, 1) + + self.pushButton_4 = QPushButton(self.mapTypeSelectorWidget) + self.pushButton_4.setObjectName(u"pushButton_4") + self.pushButton_4.setEnabled(False) + self.pushButton_4.setStyleSheet(u"QPushButton{background-color: transparent}") + self.pushButton_4.setText(u"Beyond placeholder") + self.pushButton_4.setCheckable(False) + self.pushButton_4.setAutoExclusive(True) + + self.gridLayout_2.addWidget(self.pushButton_4, 1, 1, 1, 1) + + + self.horizontalLayout.addWidget(self.mapTypeSelectorWidget) + + self.stackedWidget = QStackedWidget(self.mapTypeWidget) + self.stackedWidget.setObjectName(u"stackedWidget") + sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) + sizePolicy1.setHorizontalStretch(0) + sizePolicy1.setVerticalStretch(0) + sizePolicy1.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth()) + self.stackedWidget.setSizePolicy(sizePolicy1) + self.legacyPlay = QWidget() + self.legacyPlay.setObjectName(u"legacyPlay") + self.verticalLayout = QVBoxLayout(self.legacyPlay) + self.verticalLayout.setObjectName(u"verticalLayout") + self.label_3 = QLabel(self.legacyPlay) + self.label_3.setObjectName(u"label_3") + + self.verticalLayout.addWidget(self.label_3) + + self.stackedWidget.addWidget(self.legacyPlay) + self.legacyPlayPlus = QWidget() + self.legacyPlayPlus.setObjectName(u"legacyPlayPlus") + self.verticalLayout_2 = QVBoxLayout(self.legacyPlayPlus) + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.widget = QWidget(self.legacyPlayPlus) + self.widget.setObjectName(u"widget") + sizePolicy2 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) + sizePolicy2.setHorizontalStretch(0) + sizePolicy2.setVerticalStretch(0) + sizePolicy2.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) + self.widget.setSizePolicy(sizePolicy2) + self.horizontalLayout_2 = QHBoxLayout(self.widget) + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.legacyPlayPlus_x2StaminaRadioButton = QRadioButton(self.widget) + self.legacyPlayPlus_x2StaminaRadioButton.setObjectName(u"legacyPlayPlus_x2StaminaRadioButton") + self.legacyPlayPlus_x2StaminaRadioButton.setText(u"x2") + + self.horizontalLayout_2.addWidget(self.legacyPlayPlus_x2StaminaRadioButton) + + self.legacyPlayPlus_x4StaminaRadioButton = QRadioButton(self.widget) + self.legacyPlayPlus_x4StaminaRadioButton.setObjectName(u"legacyPlayPlus_x4StaminaRadioButton") + self.legacyPlayPlus_x4StaminaRadioButton.setText(u"x4") + + self.horizontalLayout_2.addWidget(self.legacyPlayPlus_x4StaminaRadioButton) + + self.legacyPlayPlus_x6StaminaRadioButton = QRadioButton(self.widget) + self.legacyPlayPlus_x6StaminaRadioButton.setObjectName(u"legacyPlayPlus_x6StaminaRadioButton") + self.legacyPlayPlus_x6StaminaRadioButton.setText(u"x6") + + self.horizontalLayout_2.addWidget(self.legacyPlayPlus_x6StaminaRadioButton) + + + self.verticalLayout_2.addWidget(self.widget) + + self.legacyPlayPlus_useFragmentsGroupBox = QGroupBox(self.legacyPlayPlus) + self.legacyPlayPlus_useFragmentsGroupBox.setObjectName(u"legacyPlayPlus_useFragmentsGroupBox") + sizePolicy2.setHeightForWidth(self.legacyPlayPlus_useFragmentsGroupBox.sizePolicy().hasHeightForWidth()) + self.legacyPlayPlus_useFragmentsGroupBox.setSizePolicy(sizePolicy2) + self.legacyPlayPlus_useFragmentsGroupBox.setCheckable(True) + self.legacyPlayPlus_useFragmentsGroupBox.setChecked(False) + self.horizontalLayout_3 = QHBoxLayout(self.legacyPlayPlus_useFragmentsGroupBox) + self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") + self.legacyPlayPlus_x11fragRadioButton = QRadioButton(self.legacyPlayPlus_useFragmentsGroupBox) + self.legacyPlayPlus_x11fragRadioButton.setObjectName(u"legacyPlayPlus_x11fragRadioButton") + self.legacyPlayPlus_x11fragRadioButton.setText(u"x1.1\n" +"100") + + self.horizontalLayout_3.addWidget(self.legacyPlayPlus_x11fragRadioButton) + + self.legacyPlayPlus_x125fragRadioButton = QRadioButton(self.legacyPlayPlus_useFragmentsGroupBox) + self.legacyPlayPlus_x125fragRadioButton.setObjectName(u"legacyPlayPlus_x125fragRadioButton") + self.legacyPlayPlus_x125fragRadioButton.setText(u"x1.25\n" +"125") + + self.horizontalLayout_3.addWidget(self.legacyPlayPlus_x125fragRadioButton) + + self.legacyPlayPlus_x15fragRadioButton = QRadioButton(self.legacyPlayPlus_useFragmentsGroupBox) + self.legacyPlayPlus_x15fragRadioButton.setObjectName(u"legacyPlayPlus_x15fragRadioButton") + self.legacyPlayPlus_x15fragRadioButton.setText(u"x1.5\n" +"500") + + self.horizontalLayout_3.addWidget(self.legacyPlayPlus_x15fragRadioButton) + + + self.verticalLayout_2.addWidget(self.legacyPlayPlus_useFragmentsGroupBox) + + self.stackedWidget.addWidget(self.legacyPlayPlus) + self.play = QWidget() + self.play.setObjectName(u"play") + self.verticalLayout_4 = QVBoxLayout(self.play) + self.verticalLayout_4.setObjectName(u"verticalLayout_4") + self.play_memoryBoostCheckBox = QCheckBox(self.play) + self.play_memoryBoostCheckBox.setObjectName(u"play_memoryBoostCheckBox") + + self.verticalLayout_4.addWidget(self.play_memoryBoostCheckBox) + + self.stackedWidget.addWidget(self.play) + + self.horizontalLayout.addWidget(self.stackedWidget) + + + self.verticalLayout_3.addWidget(self.mapTypeWidget) + + self.widget_2 = QWidget(TabTools_StepCalculator) + self.widget_2.setObjectName(u"widget_2") + sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) + sizePolicy3.setHorizontalStretch(0) + sizePolicy3.setVerticalStretch(0) + sizePolicy3.setHeightForWidth(self.widget_2.sizePolicy().hasHeightForWidth()) + self.widget_2.setSizePolicy(sizePolicy3) + self.horizontalLayout_4 = QHBoxLayout(self.widget_2) + self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") + self.groupBox = QGroupBox(self.widget_2) + self.groupBox.setObjectName(u"groupBox") + self.verticalLayout_5 = QVBoxLayout(self.groupBox) + self.verticalLayout_5.setObjectName(u"verticalLayout_5") + self.horizontalWidget = QWidget(self.groupBox) + self.horizontalWidget.setObjectName(u"horizontalWidget") + self.horizontalLayout_5 = QHBoxLayout(self.horizontalWidget) + self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") + self.label_2 = QLabel(self.horizontalWidget) + self.label_2.setObjectName(u"label_2") + + self.horizontalLayout_5.addWidget(self.label_2) + + self.playResultSpinBox = QDoubleSpinBox(self.horizontalWidget) + self.playResultSpinBox.setObjectName(u"playResultSpinBox") + sizePolicy.setHeightForWidth(self.playResultSpinBox.sizePolicy().hasHeightForWidth()) + self.playResultSpinBox.setSizePolicy(sizePolicy) + self.playResultSpinBox.setDecimals(3) + self.playResultSpinBox.setMaximum(100.000000000000000) + self.playResultSpinBox.setSingleStep(0.100000000000000) + + self.horizontalLayout_5.addWidget(self.playResultSpinBox) + + + self.verticalLayout_5.addWidget(self.horizontalWidget) + + self.calculatePlayResultFromScoreButton = QPushButton(self.groupBox) + self.calculatePlayResultFromScoreButton.setObjectName(u"calculatePlayResultFromScoreButton") + + self.verticalLayout_5.addWidget(self.calculatePlayResultFromScoreButton) + + + self.horizontalLayout_4.addWidget(self.groupBox) + + self.groupBox_2 = QGroupBox(self.widget_2) + self.groupBox_2.setObjectName(u"groupBox_2") + self.verticalLayout_6 = QVBoxLayout(self.groupBox_2) + self.verticalLayout_6.setObjectName(u"verticalLayout_6") + self.horizontalWidget_2 = QWidget(self.groupBox_2) + self.horizontalWidget_2.setObjectName(u"horizontalWidget_2") + self.horizontalLayout_6 = QHBoxLayout(self.horizontalWidget_2) + self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") + self.label_4 = QLabel(self.horizontalWidget_2) + self.label_4.setObjectName(u"label_4") + + self.horizontalLayout_6.addWidget(self.label_4) + + self.doubleSpinBox = QDoubleSpinBox(self.horizontalWidget_2) + self.doubleSpinBox.setObjectName(u"doubleSpinBox") + sizePolicy.setHeightForWidth(self.doubleSpinBox.sizePolicy().hasHeightForWidth()) + self.doubleSpinBox.setSizePolicy(sizePolicy) + + self.horizontalLayout_6.addWidget(self.doubleSpinBox) + + + self.verticalLayout_6.addWidget(self.horizontalWidget_2) + + + self.horizontalLayout_4.addWidget(self.groupBox_2) + + + self.verticalLayout_3.addWidget(self.widget_2) + + + self.retranslateUi(TabTools_StepCalculator) + + self.stackedWidget.setCurrentIndex(1) + + + QMetaObject.connectSlotsByName(TabTools_StepCalculator) + # setupUi + + def retranslateUi(self, TabTools_StepCalculator): + self.label.setText(QCoreApplication.translate("TabTools_StepCalculator", u"partnerStepValueLabel", None)) + self.mapTypeLegacyPlayRadioButton.setText("") + self.mapTypePlayRadioButton.setText("") + self.mapTypeLegacyPlayPlusRadioButton.setText("") + self.label_3.setText(QCoreApplication.translate("TabTools_StepCalculator", u"legacyPlay.noOptions", None)) + self.legacyPlayPlus_useFragmentsGroupBox.setTitle(QCoreApplication.translate("TabTools_StepCalculator", u"legacyPlayPlus.useFragments", None)) + self.play_memoryBoostCheckBox.setText(QCoreApplication.translate("TabTools_StepCalculator", u"play.memoryBoost", None)) + self.groupBox.setTitle(QCoreApplication.translate("TabTools_StepCalculator", u"calculation", None)) + self.label_2.setText(QCoreApplication.translate("TabTools_StepCalculator", u"playResultLabel", None)) + self.calculatePlayResultFromScoreButton.setText(QCoreApplication.translate("TabTools_StepCalculator", u"calculatePlayResultFromScoreButton", None)) + self.groupBox_2.setTitle(QCoreApplication.translate("TabTools_StepCalculator", u"inverseCalculation", None)) + self.label_4.setText(QCoreApplication.translate("TabTools_StepCalculator", u"targetStep", None)) + pass + # retranslateUi + diff --git a/ui/designer/tabs/tabToolsEntry.ui b/ui/designer/tabs/tabToolsEntry.ui index 11c0bbf..1378563 100644 --- a/ui/designer/tabs/tabToolsEntry.ui +++ b/ui/designer/tabs/tabToolsEntry.ui @@ -24,6 +24,11 @@ tab.infoLookup + + + tab.stepCalculator + + @@ -35,6 +40,12 @@
ui.implements.tabs.tabTools.tabTools_InfoLookup
1 + + TabTools_StepCalculator + QWidget +
ui.implements.tabs.tabTools.tabTools_StepCalculator
+ 1 +
diff --git a/ui/designer/tabs/tabToolsEntry_ui.py b/ui/designer/tabs/tabToolsEntry_ui.py index 29b6bc5..b0a30e0 100644 --- a/ui/designer/tabs/tabToolsEntry_ui.py +++ b/ui/designer/tabs/tabToolsEntry_ui.py @@ -1,52 +1,57 @@ -# -*- coding: utf-8 -*- - -################################################################################ -## Form generated from reading UI file 'tabToolsEntry.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, QSizePolicy, QTabWidget, QVBoxLayout, - QWidget) - -from ui.implements.tabs.tabTools.tabTools_InfoLookup import TabTools_InfoLookup - -class Ui_TabToolsEntry(object): - def setupUi(self, TabToolsEntry): - if not TabToolsEntry.objectName(): - TabToolsEntry.setObjectName(u"TabToolsEntry") - TabToolsEntry.resize(500, 400) - TabToolsEntry.setWindowTitle(u"TabToolsEntry") - self.verticalLayout = QVBoxLayout(TabToolsEntry) - self.verticalLayout.setObjectName(u"verticalLayout") - self.tabWidget = QTabWidget(TabToolsEntry) - self.tabWidget.setObjectName(u"tabWidget") - self.tab = TabTools_InfoLookup() - self.tab.setObjectName(u"tab") - self.tabWidget.addTab(self.tab, "") - - self.verticalLayout.addWidget(self.tabWidget) - - - self.retranslateUi(TabToolsEntry) - - self.tabWidget.setCurrentIndex(0) - - - QMetaObject.connectSlotsByName(TabToolsEntry) - # setupUi - - def retranslateUi(self, TabToolsEntry): - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("TabToolsEntry", u"tab.infoLookup", None)) - pass - # retranslateUi - +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'tabToolsEntry.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, QSizePolicy, QTabWidget, QVBoxLayout, + QWidget) + +from ui.implements.tabs.tabTools.tabTools_InfoLookup import TabTools_InfoLookup +from ui.implements.tabs.tabTools.tabTools_StepCalculator import TabTools_StepCalculator + +class Ui_TabToolsEntry(object): + def setupUi(self, TabToolsEntry): + if not TabToolsEntry.objectName(): + TabToolsEntry.setObjectName(u"TabToolsEntry") + TabToolsEntry.resize(500, 400) + TabToolsEntry.setWindowTitle(u"TabToolsEntry") + self.verticalLayout = QVBoxLayout(TabToolsEntry) + self.verticalLayout.setObjectName(u"verticalLayout") + self.tabWidget = QTabWidget(TabToolsEntry) + self.tabWidget.setObjectName(u"tabWidget") + self.tab = TabTools_InfoLookup() + self.tab.setObjectName(u"tab") + self.tabWidget.addTab(self.tab, "") + self.tab_2 = TabTools_StepCalculator() + self.tab_2.setObjectName(u"tab_2") + self.tabWidget.addTab(self.tab_2, "") + + self.verticalLayout.addWidget(self.tabWidget) + + + self.retranslateUi(TabToolsEntry) + + self.tabWidget.setCurrentIndex(0) + + + QMetaObject.connectSlotsByName(TabToolsEntry) + # setupUi + + def retranslateUi(self, TabToolsEntry): + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("TabToolsEntry", u"tab.infoLookup", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("TabToolsEntry", u"tab.stepCalculator", None)) + pass + # retranslateUi + diff --git a/ui/implements/tabs/tabTools/tabTools_StepCalculator.py b/ui/implements/tabs/tabTools/tabTools_StepCalculator.py new file mode 100644 index 0000000..0af9e49 --- /dev/null +++ b/ui/implements/tabs/tabTools/tabTools_StepCalculator.py @@ -0,0 +1,113 @@ +from PySide6.QtCore import QEasingCurve, QObject, QSize, Qt, QTimeLine +from PySide6.QtGui import QIcon, QPainter, QPaintEvent, QPixmap +from PySide6.QtWidgets import ( + QAbstractButton, + QButtonGroup, + QGraphicsColorizeEffect, + QLabel, + QWidget, +) + +from ui.designer.tabs.tabTools.tabTools_StepCalculator_ui import ( + Ui_TabTools_StepCalculator, +) + + +class MapTypeListWidgetWidget(QLabel): + def paintEvent(self, e: QPaintEvent) -> None: + size = self.size() + painter = QPainter(self) + scaledPixmap = self.pixmap().scaled( + size, + Qt.AspectRatioMode.KeepAspectRatio, + Qt.TransformationMode.SmoothTransformation, + ) + x = (size.width() - scaledPixmap.width()) / 2 + y = (size.height() - scaledPixmap.height()) / 2 + painter.drawPixmap(x, y, scaledPixmap) + + +class ButtonGrayscaleEffectApplier(QObject): + def __init__(self, parent: QAbstractButton): + super().__init__(parent) + self.timeline = QTimeLine(500, self) + self.timeline.setEasingCurve(QEasingCurve.Type.OutCubic) + self.timeline.frameChanged.connect(self.applyGrayscaleEffect) + + parent.toggled.connect(self.triggerEffectAnimation) + self.triggerEffectAnimation(parent.isChecked()) + + def triggerEffectAnimation(self, buttonEnabled: bool): + if self.timeline.state() == QTimeLine.State.Running: + self.timeline.stop() + startFrame = self.timeline.currentFrame() + stopFrame = 0 if buttonEnabled else 100 + + self.timeline.setFrameRange(startFrame, stopFrame) + self.timeline.start() + + def applyGrayscaleEffect(self, frame: int): + target: QAbstractButton = self.parent() + value = frame / 100 + + effect = QGraphicsColorizeEffect(target) + effect.setColor("#000000") + effect.setStrength(value) + target.setGraphicsEffect(effect) + + +class TabTools_StepCalculator(Ui_TabTools_StepCalculator, QWidget): + def __init__(self, parent=None): + super().__init__(parent) + self.setupUi(self) + + staminaIcon = QIcon(":/images/stepCalculator/stamina.png") + for radioButton in [ + self.legacyPlayPlus_x2StaminaRadioButton, + self.legacyPlayPlus_x4StaminaRadioButton, + self.legacyPlayPlus_x6StaminaRadioButton, + ]: + radioButton.setIcon(staminaIcon) + radioButton.setIconSize(QSize(25, 15)) + + memoryBoostIcon = QIcon(":/images/stepCalculator/memory-boost.png") + self.play_memoryBoostCheckBox.setIcon(memoryBoostIcon) + self.play_memoryBoostCheckBox.setIconSize(QSize(75, 100)) + + mapTypeIconSize = QSize(150, 50) + + for button, pixmap in zip( + [ + self.mapTypeLegacyPlayRadioButton, + self.mapTypeLegacyPlayPlusRadioButton, + self.mapTypePlayRadioButton, + ], + [ + QPixmap(":/images/stepCalculator/legacy-play.png"), + QPixmap(":/images/stepCalculator/legacy-play-plus.png"), + QPixmap(":/images/stepCalculator/play.png"), + ], + ): + button.setIconSize(mapTypeIconSize) + button.setIcon(pixmap) + + self.buttonGrayscaleEffectAppliers = [] + for button in [ + self.mapTypeLegacyPlayRadioButton, + self.mapTypeLegacyPlayPlusRadioButton, + self.mapTypePlayRadioButton, + self.legacyPlayPlus_x2StaminaRadioButton, + self.legacyPlayPlus_x4StaminaRadioButton, + self.legacyPlayPlus_x6StaminaRadioButton, + self.play_memoryBoostCheckBox, + ]: + applier = ButtonGrayscaleEffectApplier(button) + self.buttonGrayscaleEffectAppliers.append(applier) + + self.mapTypeButtonGroup = QButtonGroup(self) + self.mapTypeButtonGroup.addButton(self.mapTypeLegacyPlayRadioButton, 0) + self.mapTypeButtonGroup.addButton(self.mapTypeLegacyPlayPlusRadioButton, 1) + self.mapTypeButtonGroup.addButton(self.mapTypePlayRadioButton, 2) + + self.mapTypeButtonGroup.idToggled.connect(self.stackedWidget.setCurrentIndex) + self.mapTypePlayRadioButton.setChecked(True) diff --git a/ui/resources/images/stepCalculator/legacy-play-plus.png b/ui/resources/images/stepCalculator/legacy-play-plus.png new file mode 100644 index 0000000..bf9e926 Binary files /dev/null and b/ui/resources/images/stepCalculator/legacy-play-plus.png differ diff --git a/ui/resources/images/stepCalculator/legacy-play.png b/ui/resources/images/stepCalculator/legacy-play.png new file mode 100644 index 0000000..c8217a0 Binary files /dev/null and b/ui/resources/images/stepCalculator/legacy-play.png differ diff --git a/ui/resources/images/stepCalculator/memory-boost.png b/ui/resources/images/stepCalculator/memory-boost.png new file mode 100644 index 0000000..bd3cb41 Binary files /dev/null and b/ui/resources/images/stepCalculator/memory-boost.png differ diff --git a/ui/resources/images/stepCalculator/play.png b/ui/resources/images/stepCalculator/play.png new file mode 100644 index 0000000..2c1a97e Binary files /dev/null and b/ui/resources/images/stepCalculator/play.png differ diff --git a/ui/resources/images/stepCalculator/stamina.png b/ui/resources/images/stepCalculator/stamina.png new file mode 100644 index 0000000..47e33ed Binary files /dev/null and b/ui/resources/images/stepCalculator/stamina.png differ diff --git a/ui/resources/resources.qrc b/ui/resources/resources.qrc index c593707..741263a 100644 --- a/ui/resources/resources.qrc +++ b/ui/resources/resources.qrc @@ -3,6 +3,11 @@ images/icon.png images/logo.png + images/stepCalculator/stamina.png + images/stepCalculator/play.png + images/stepCalculator/memory-boost.png + images/stepCalculator/legacy-play.png + images/stepCalculator/legacy-play-plus.png lang/zh_CN.qm lang/en_US.qm