diff --git a/ankiqt/config.py b/ankiqt/config.py index 90f667a32..9652fee92 100644 --- a/ankiqt/config.py +++ b/ankiqt/config.py @@ -88,6 +88,7 @@ class Config(dict): 'typeAnswerFontSize': 20, 'showProgress': True, 'recentColours': ["#000000", "#0000ff"], + 'preventEditUntilAnswer': False, } for (k,v) in fields.items(): if not self.has_key(k): diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py index e9bbbcbee..80fd81356 100644 --- a/ankiqt/ui/main.py +++ b/ankiqt/ui/main.py @@ -1956,10 +1956,13 @@ Couldn't contact Anki Online. Please check your internet connection.""")) (hasSound(self.currentCard.answer) and self.state != "getQuestion")) self.mainWin.actionRepeatAudio.setEnabled(snd) - self.mainWin.actionEditCurrent.setEnabled(True) self.mainWin.actionMarkCard.setEnabled(True) self.mainWin.actionSuspendCard.setEnabled(True) self.mainWin.actionDelete.setEnabled(True) + enableEdits = (not self.config['preventEditUntilAnswer'] or + self.state != "getQuestion") + self.mainWin.actionEditCurrent.setEnabled(enableEdits) + self.mainWin.actionEditdeck.setEnabled(enableEdits) def maybeShowKanjiStats(self): if not self.deck: diff --git a/ankiqt/ui/preferences.py b/ankiqt/ui/preferences.py index 8a6a6ac3a..9a94abae3 100644 --- a/ankiqt/ui/preferences.py +++ b/ankiqt/ui/preferences.py @@ -115,7 +115,7 @@ class Preferences(QDialog): self.dialog.splitQA.setChecked(self.config['splitQA']) self.dialog.addZeroSpace.setChecked(self.config['addZeroSpace']) self.dialog.alternativeTheme.setChecked(self.config['alternativeTheme']) - self.dialog.showProgress.setChecked(self.config['showProgress']) + self.dialog.preventEdits.setChecked(self.config['preventEditUntilAnswer']) def updateAdvanced(self): self.config['showTrayIcon'] = self.dialog.showTray.isChecked() @@ -127,6 +127,7 @@ class Preferences(QDialog): self.config['addZeroSpace'] = self.dialog.addZeroSpace.isChecked() self.config['alternativeTheme'] = self.dialog.alternativeTheme.isChecked() self.config['showProgress'] = self.dialog.showProgress.isChecked() + self.config['preventEditUntilAnswer'] = self.dialog.preventEdits.isChecked() def codeToIndex(self, code): n = 0 diff --git a/designer/preferences.ui b/designer/preferences.ui index c81697ac0..f9caae078 100644 --- a/designer/preferences.ui +++ b/designer/preferences.ui @@ -96,6 +96,13 @@ + + + + Prevent edits until answer shown + + + @@ -415,6 +422,7 @@ splitQA showEstimates showProgress + preventEdits saveWhenClosing saveAfterEvery saveAfterEveryNum