feat: SongIdSelectorMode

This commit is contained in:
2023-09-17 00:40:26 +08:00
parent b5aefb5f28
commit 716e872f08
2 changed files with 40 additions and 12 deletions

View File

@ -9,6 +9,7 @@ from PySide6.QtWidgets import QWidget
from ui.designer.components.chartSelector_ui import Ui_ChartSelector
from ui.extends.shared.database import databaseUpdateSignals
from ui.extends.shared.language import LanguageChangeEventFilter
from ui.implements.components.songIdSelector import SongIdSelectorMode
logger = logging.getLogger(__name__)
@ -36,6 +37,9 @@ class ChartSelector(Ui_ChartSelector, QWidget):
)
databaseUpdateSignals.songDataUpdated.connect(self.updateDatabase)
def setSongIdSelectorMode(self, mode: SongIdSelectorMode):
self.songIdSelector.setMode(mode)
def value(self):
songId = self.songIdSelector.songId()
ratingClass = self.ratingClassSelector.value()
@ -79,8 +83,11 @@ class ChartSelector(Ui_ChartSelector, QWidget):
ratingClasses = []
songId = self.songIdSelector.songId()
if songId:
charts = self.db.get_charts_by_song_id(songId)
ratingClasses = [chart.rating_class for chart in charts]
if self.songIdSelector.mode == SongIdSelectorMode.Chart:
items = self.db.get_charts_by_song_id(songId)
else:
items = self.db.get_difficulties_by_song_id(songId)
ratingClasses = [item.rating_class for item in items]
self.ratingClassSelector.setButtonsEnabled(ratingClasses)
@Slot()