fix: ChartSelector not selecting rating class

This commit is contained in:
283375 2023-10-14 17:58:35 +08:00
parent 8628399469
commit 9bb6f5b3d9
Signed by: 283375
SSH Key Fingerprint: SHA256:UcX0qg6ZOSDOeieKPGokA5h7soykG61nz2uxuQgVLSk
2 changed files with 10 additions and 14 deletions

View File

@ -27,6 +27,7 @@ class ChartSelector(Ui_ChartSelector, QWidget):
self.valueChanged.connect(self.updateResultLabel)
self.songIdSelector.valueChanged.connect(self.updateRatingClassEnabled)
self.songIdSelector.chartSelected.connect(self.selectChart)
self.songIdSelector.valueChanged.connect(self.valueChanged)
self.ratingClassSelector.valueChanged.connect(self.valueChanged)
@ -92,8 +93,7 @@ class ChartSelector(Ui_ChartSelector, QWidget):
def updateRatingClassEnabled(self):
ratingClasses = []
songId = self.songIdSelector.songId()
if songId:
if songId := self.songIdSelector.songId():
if self.songIdSelector.mode == SongIdSelectorMode.Chart:
items = self.db.get_charts_by_song_id(songId)
else:
@ -106,9 +106,5 @@ class ChartSelector(Ui_ChartSelector, QWidget):
self.songIdSelector.reset()
def selectChart(self, chart: Chart):
if not self.songIdSelector.selectPack(chart.set):
return False
if not self.songIdSelector.selectSongId(chart.song_id):
return False
self.ratingClassSelector.select(chart.rating_class)
return True
return self.ratingClassSelector.value() == chart.rating_class

View File

@ -23,6 +23,7 @@ class SongIdSelectorMode(IntEnum):
class SongIdSelector(Ui_SongIdSelector, QWidget):
valueChanged = Signal()
chartSelected = Signal(Chart)
def __init__(self, parent=None):
super().__init__(parent)
@ -126,8 +127,7 @@ class SongIdSelector(Ui_SongIdSelector, QWidget):
self.packComboBox.clear()
packs = self.db.get_packs()
for pack in packs:
isAppendPack = re.search(r"_append_.*$", pack.id)
if isAppendPack:
if isAppendPack := re.search(r"_append_.*$", pack.id):
basePackId = re.sub(r"_append_.*$", "", pack.id)
basePackName = self.db.get_pack(basePackId).name
packName = f"{basePackName} - {pack.name}"
@ -146,8 +146,7 @@ class SongIdSelector(Ui_SongIdSelector, QWidget):
def fillSongIdComboBox(self):
self.songIdComboBox.clear()
packId = self.packComboBox.currentData()
if packId:
if packId := self.packComboBox.currentData():
if self.mode == SongIdSelectorMode.SongId:
items = self.db.get_songs_by_pack_id(packId)
elif self.mode == SongIdSelectorMode.Chart:
@ -208,9 +207,10 @@ class SongIdSelector(Ui_SongIdSelector, QWidget):
return False
def selectChart(self, chart: Chart):
if not self.selectPack(chart.set):
return False
return self.selectSongId(chart.song_id)
packSelected = self.selectPack(chart.set)
songIdSelected = self.selectSongId(chart.song_id)
self.chartSelected.emit(chart)
return packSelected and songIdSelected
@Slot(QModelIndex)
def searchCompleterSetSelection(self, index: QModelIndex):