mirror of
https://github.com/283375/arcaea-offline-pyside-ui.git
synced 2025-04-21 10:10:17 +00:00
impr: able to edit chart/score when original value is invalid
This commit is contained in:
parent
1955a7963a
commit
3f42be3212
@ -152,10 +152,10 @@ class ChartDelegate(TextSegmentDelegate):
|
|||||||
def createEditor(
|
def createEditor(
|
||||||
self, parent: QWidget, option: QStyleOptionViewItem, index: QModelIndex
|
self, parent: QWidget, option: QStyleOptionViewItem, index: QModelIndex
|
||||||
) -> ChartSelectorDelegateWrapper:
|
) -> ChartSelectorDelegateWrapper:
|
||||||
if isinstance(self.getChart(index), Chart):
|
|
||||||
editor = ChartSelectorDelegateWrapper(parent)
|
editor = ChartSelectorDelegateWrapper(parent)
|
||||||
editor.setWindowFlag(Qt.WindowType.Sheet, True)
|
editor.setWindowFlag(Qt.WindowType.Sheet, True)
|
||||||
editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True)
|
editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True)
|
||||||
|
if isinstance(self.getChart(index), Chart):
|
||||||
editor.setText(self.getChart(index))
|
editor.setText(self.getChart(index))
|
||||||
editor.move(parent.mapToGlobal(parent.pos()))
|
editor.move(parent.mapToGlobal(parent.pos()))
|
||||||
editor.accepted.connect(self._commitEditor)
|
editor.accepted.connect(self._commitEditor)
|
||||||
|
@ -198,23 +198,28 @@ class ScoreDelegate(TextSegmentDelegate):
|
|||||||
self.closeEditor.emit(editor)
|
self.closeEditor.emit(editor)
|
||||||
|
|
||||||
def createEditor(self, parent, option, index) -> ScoreEditorDelegateWrapper:
|
def createEditor(self, parent, option, index) -> ScoreEditorDelegateWrapper:
|
||||||
score = self.getScore(index)
|
|
||||||
chart = self.getChart(index)
|
|
||||||
if isinstance(score, Score) and isinstance(chart, Chart):
|
|
||||||
editor = ScoreEditorDelegateWrapper(parent)
|
editor = ScoreEditorDelegateWrapper(parent)
|
||||||
editor.setWindowFlag(Qt.WindowType.Sheet, True)
|
editor.setWindowFlag(Qt.WindowType.Sheet, True)
|
||||||
editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True)
|
editor.setWindowFlag(Qt.WindowType.FramelessWindowHint, True)
|
||||||
|
|
||||||
|
chart = self.getChart(index)
|
||||||
|
score = self.getScore(index)
|
||||||
|
if isinstance(chart, Chart):
|
||||||
editor.setWindowTitle(
|
editor.setWindowTitle(
|
||||||
f"{chart.title}({chart.song_id}) | {rating_class_to_text(chart.rating_class)} | {chart.set}"
|
f"{chart.title}({chart.song_id}) | {rating_class_to_text(chart.rating_class)} | {chart.set}"
|
||||||
)
|
)
|
||||||
editor.setText(self.getScore(index))
|
else:
|
||||||
|
editor.setWindowTitle("-")
|
||||||
|
|
||||||
|
if isinstance(score, Score):
|
||||||
|
editor.setText(score)
|
||||||
|
|
||||||
editor.setValidateBeforeAccept(False)
|
editor.setValidateBeforeAccept(False)
|
||||||
editor.move(parent.mapToGlobal(parent.pos()))
|
editor.move(parent.mapToGlobal(parent.pos()))
|
||||||
editor.accepted.connect(self._commitEditor)
|
editor.accepted.connect(self._commitEditor)
|
||||||
editor.rejected.connect(self._closeEditor)
|
editor.rejected.connect(self._closeEditor)
|
||||||
editor.show()
|
editor.show()
|
||||||
return editor
|
return editor
|
||||||
return super().createEditor(parent, option, index)
|
|
||||||
|
|
||||||
def updateEditorGeometry(self, editor, option, index):
|
def updateEditorGeometry(self, editor, option, index):
|
||||||
editor.setMaximumWidth(option.rect.width())
|
editor.setMaximumWidth(option.rect.width())
|
||||||
@ -225,8 +230,9 @@ class ScoreDelegate(TextSegmentDelegate):
|
|||||||
def setEditorData(self, editor: ScoreEditorDelegateWrapper, index) -> None:
|
def setEditorData(self, editor: ScoreEditorDelegateWrapper, index) -> None:
|
||||||
score = self.getScore(index)
|
score = self.getScore(index)
|
||||||
chart = self.getChart(index)
|
chart = self.getChart(index)
|
||||||
if isinstance(score, Score) and isinstance(chart, Chart):
|
if isinstance(chart, Chart):
|
||||||
editor.setChart(chart)
|
editor.setChart(chart)
|
||||||
|
if isinstance(score, Score):
|
||||||
editor.setValue(score)
|
editor.setValue(score)
|
||||||
|
|
||||||
def confirmSetModelData(self, editor: ScoreEditorDelegateWrapper):
|
def confirmSetModelData(self, editor: ScoreEditorDelegateWrapper):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user