You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.9 KiB
Python

from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
from ArtNet.gui.dialogs.artist_modify_dialog.artist_modify_dialog import Ui_Artist_Mod_Dialog
class ArtistModDialog(QtWidgets.QDialog):
def __init__(self, parent=None, create_artist: bool = False):
super().__init__(parent)
self.parent = parent
self.ui = Ui_Artist_Mod_Dialog()
self.ui.setupUi(self)
self.data = {"id": None,
"description": None}
if not create_artist:
self.set_available_artists(self.parent.parent.parent.get_all_artists())
else:
self.ui.id_list = QtWidgets.QLineEdit(self)
self.ui.id_spinbox.setParent(None)
self.ui.id_spinbox.destroy()
self.ui.id_layout.addWidget(self.ui.id_list)
self.ui.description_line.textChanged.connect(self.on_description_changed)
def set_available_artists(self, artists: list):
if artists is None:
self.ui.id_spinbox.setParent(None)
self.ui.id_spinbox.destroy()
self.ui.id_label.setText("Artist ID (auto-generated)")
return
self.ui.id_spinbox.setMinimum(0)
self.ui.id_spinbox.setMaximum(len(artists))
self.ui.id_spinbox.valueChanged.connect(self.on_id_spinbox_changed)
def on_id_spinbox_changed(self):
id = self.ui.id_spinbox.value()
artist = self.parent.parent.parent.get_artist(id)
if len(artist) != 0:
self.ui.description_line.setText(artist[0][1])
else:
self.ui.description_line.setText("Warning! unknown Artist ID!")
self.data["id"] = id
def on_description_changed(self):
self.data["description"] = self.ui.description_line.text()
def exec_(self):
result = super(ArtistModDialog, self).exec_()
if result == QtWidgets.QDialog.Rejected:
return None
return self.data