Sounds starting to work

This commit is contained in:
Christopher T. Johnson
2023-12-18 09:25:57 -05:00
parent 11c4801b7f
commit 11726900f7
2 changed files with 42 additions and 12 deletions

View File

@@ -95,6 +95,7 @@ class EditDialog(QDialog, Ui_Dialog):
# self.sessionBtn.clicked.connect(self.sessionAction)
self.sessionBtn.clicked.connect(self.session.timerAction)
self.paraEdit.verticalScrollBar().valueChanged.connect(self.scrollSlot)
self.defEdit.selectionChanged.connect(self.recursiveDef)
#
# Connect signals
#
@@ -106,9 +107,39 @@ class EditDialog(QDialog, Ui_Dialog):
self.soundEffect.mediaStatusChanged.connect(self.changedStatus)
return
#
# Events
#
#
# slots
#
@pyqtSlot()
def recursiveDef(self):
cursor = self.defEdit.textCursor()
selection = cursor.selectedText().strip()
if len(selection) <= 0:
return
query = QSqlQuery()
query.prepare("SELECT * FROM words " "WHERE word = :word")
query.bindValue(":word", selection)
if not query.exec():
query_error()
if not query.next():
response = requests.get(
f"https://api.dictionaryapi.dev/api/v2/entries/en/{selection}"
)
if response.status_code != 200:
return
definitions = json.loads(response.content.decode("utf-8"))
definition = definitions[0]
word_id = None
else:
definition = query.value("definition")
word_id = query.value("word_id")
self.setDefEdit(selection, word_id, definition)
return
@pyqtSlot(QMediaPlayer.MediaStatus)
def changedStatus(self, status):
if status == QMediaPlayer.MediaStatus.LoadedMedia:
@@ -117,9 +148,7 @@ class EditDialog(QDialog, Ui_Dialog):
if not audioOutput:
self.soundEffect.setAudioOutput(self.audioOutput)
audioOutput = self.audioOutput
print(f"{status} No audioOutput???")
audioDevice = audioOutput.device()
print(audioDevice.description(), audioDevice.id().data())
print(status)
return
@@ -127,10 +156,8 @@ class EditDialog(QDialog, Ui_Dialog):
def changedState(self, status):
audioOutput = self.soundEffect.audioOutput()
if not audioOutput:
print(f"{status} No AudioOutput")
return
audioDevice = audioOutput.device()
print(audioDevice.description(), audioDevice.id().data())
print(status)
return
@@ -155,7 +182,7 @@ class EditDialog(QDialog, Ui_Dialog):
cursor = self.paraEdit.textCursor()
fmt = cursor.charFormat()
if not fmt.fontUnderline():
self.addword()
self.addWord()
cursor = self.paraEdit.textCursor()
textBlock = self.paraEdit.document().findBlock(cursor.position())
blockNum = textBlock.blockNumber()
@@ -586,6 +613,10 @@ class EditDialog(QDialog, Ui_Dialog):
return
word = query.value("word")
definition = json.loads(query.value("definition"))
self.setDefEdit(word, query.value("word_id"), definition)
return
def setDefEdit(self, word, word_id, definition):
if "phonetics" in definition:
self.phonetics = definition["phonetics"]
else:
@@ -595,7 +626,8 @@ class EditDialog(QDialog, Ui_Dialog):
cursor.insertHtml(self.defToHtml(word, definition))
cursor.setPosition(0)
self.defEdit.setTextCursor(cursor)
self.displayedWord.emit(query.value("word_id"))
if word_id:
self.displayedWord.emit(word_id)
return
def showDefinition(self) -> None: