diff --git a/ui/extends/shared/delegates/chartDelegate.py b/ui/extends/shared/delegates/chartDelegate.py index ebdb674..02bc60f 100644 --- a/ui/extends/shared/delegates/chartDelegate.py +++ b/ui/extends/shared/delegates/chartDelegate.py @@ -152,15 +152,15 @@ class ChartDelegate(TextSegmentDelegate): def createEditor( self, parent: QWidget, option: QStyleOptionViewItem, index: QModelIndex ) -> ChartSelectorDelegateWrapper: + editor = ChartSelectorDelegateWrapper(parent) + editor.setWindowFlag(Qt.WindowType.Sheet, True) + editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True) if isinstance(self.getChart(index), Chart): - editor = ChartSelectorDelegateWrapper(parent) - editor.setWindowFlag(Qt.WindowType.Sheet, True) - editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True) editor.setText(self.getChart(index)) - editor.move(parent.mapToGlobal(parent.pos())) - editor.accepted.connect(self._commitEditor) - editor.rejected.connect(self._closeEditor) - return editor + editor.move(parent.mapToGlobal(parent.pos())) + editor.accepted.connect(self._commitEditor) + editor.rejected.connect(self._closeEditor) + return editor def updateEditorGeometry(self, editor: QWidget, option, index: QModelIndex) -> None: editor.move(editor.pos() + option.rect.topLeft()) diff --git a/ui/extends/shared/delegates/scoreDelegate.py b/ui/extends/shared/delegates/scoreDelegate.py index 57cca8f..3cef3da 100644 --- a/ui/extends/shared/delegates/scoreDelegate.py +++ b/ui/extends/shared/delegates/scoreDelegate.py @@ -198,23 +198,28 @@ class ScoreDelegate(TextSegmentDelegate): self.closeEditor.emit(editor) def createEditor(self, parent, option, index) -> ScoreEditorDelegateWrapper: - score = self.getScore(index) + editor = ScoreEditorDelegateWrapper(parent) + editor.setWindowFlag(Qt.WindowType.Sheet, True) + editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True) + chart = self.getChart(index) - if isinstance(score, Score) and isinstance(chart, Chart): - editor = ScoreEditorDelegateWrapper(parent) - editor.setWindowFlag(Qt.WindowType.Sheet, True) - editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True) + score = self.getScore(index) + if isinstance(chart, Chart): editor.setWindowTitle( f"{chart.title}({chart.song_id}) | {rating_class_to_text(chart.rating_class)} | {chart.set}" ) - editor.setText(self.getScore(index)) - editor.setValidateBeforeAccept(False) - editor.move(parent.mapToGlobal(parent.pos())) - editor.accepted.connect(self._commitEditor) - editor.rejected.connect(self._closeEditor) - editor.show() - return editor - return super().createEditor(parent, option, index) + else: + editor.setWindowTitle("-") + + if isinstance(score, Score): + editor.setText(score) + + editor.setValidateBeforeAccept(False) + editor.move(parent.mapToGlobal(parent.pos())) + editor.accepted.connect(self._commitEditor) + editor.rejected.connect(self._closeEditor) + editor.show() + return editor def updateEditorGeometry(self, editor, option, index): editor.setMaximumWidth(option.rect.width()) @@ -225,8 +230,9 @@ class ScoreDelegate(TextSegmentDelegate): def setEditorData(self, editor: ScoreEditorDelegateWrapper, index) -> None: score = self.getScore(index) chart = self.getChart(index) - if isinstance(score, Score) and isinstance(chart, Chart): + if isinstance(chart, Chart): editor.setChart(chart) + if isinstance(score, Score): editor.setValue(score) def confirmSetModelData(self, editor: ScoreEditorDelegateWrapper):