mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
fix untitled hack and saveas bug by requiring name on new
This commit is contained in:
parent
666331bc6c
commit
4c7b67ae88
1 changed files with 27 additions and 11 deletions
|
@ -21,6 +21,7 @@ from anki.stdmodels import BasicModel
|
||||||
from anki.hooks import runHook, addHook, removeHook, _hooks
|
from anki.hooks import runHook, addHook, removeHook, _hooks
|
||||||
import anki.latex
|
import anki.latex
|
||||||
import anki.lang
|
import anki.lang
|
||||||
|
import anki.deck
|
||||||
import ankiqt
|
import ankiqt
|
||||||
ui = ankiqt.ui
|
ui = ankiqt.ui
|
||||||
config = ankiqt.config
|
config = ankiqt.config
|
||||||
|
@ -511,7 +512,7 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
r = self.loadDeck(path, interactive=False)
|
r = self.loadDeck(path, interactive=False)
|
||||||
if r:
|
if r:
|
||||||
return r
|
return r
|
||||||
self.onNew()
|
self.onNew(True)
|
||||||
|
|
||||||
def getDefaultDir(self, save=False):
|
def getDefaultDir(self, save=False):
|
||||||
"Try and get default dir from most recently opened file."
|
"Try and get default dir from most recently opened file."
|
||||||
|
@ -641,17 +642,23 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
self.deck.rollback()
|
self.deck.rollback()
|
||||||
self.deck.close()
|
self.deck.close()
|
||||||
self.deck = None
|
self.deck = None
|
||||||
if name.startswith("untitled") and not count:
|
|
||||||
os.unlink(path)
|
|
||||||
if not hideWelcome:
|
if not hideWelcome:
|
||||||
self.moveToState("noDeck")
|
self.moveToState("noDeck")
|
||||||
else:
|
else:
|
||||||
ui.dialogs.closeAll()
|
ui.dialogs.closeAll()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def onNew(self):
|
def onNew(self, auto=False):
|
||||||
if not self.saveAndClose(hideWelcome=True): return
|
if not self.saveAndClose(hideWelcome=True): return
|
||||||
self.deck = DeckStorage.Deck()
|
if auto:
|
||||||
|
self.deck = DeckStorage.Deck()
|
||||||
|
else:
|
||||||
|
file = self.onSaveAsOrNew(new=True)
|
||||||
|
if not file:
|
||||||
|
return
|
||||||
|
if os.path.exists(file):
|
||||||
|
os.unlink(file)
|
||||||
|
self.deck = DeckStorage.Deck(file)
|
||||||
self.deck.initUndo()
|
self.deck.initUndo()
|
||||||
self.deck.addModel(BasicModel())
|
self.deck.addModel(BasicModel())
|
||||||
self.saveDeck()
|
self.saveDeck()
|
||||||
|
@ -690,7 +697,9 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
def onOpenOnline(self):
|
def onOpenOnline(self):
|
||||||
self.ensureSyncParams()
|
self.ensureSyncParams()
|
||||||
if not self.saveAndClose(hideWelcome=True): return
|
if not self.saveAndClose(hideWelcome=True): return
|
||||||
self.deck = DeckStorage.Deck()
|
self.onNew()
|
||||||
|
if self.deck is None:
|
||||||
|
return
|
||||||
# ensure all changes come to us
|
# ensure all changes come to us
|
||||||
self.deck.modified = 0
|
self.deck.modified = 0
|
||||||
self.deck.s.commit()
|
self.deck.s.commit()
|
||||||
|
@ -737,10 +746,14 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
|
|
||||||
self.updateTitleBar()
|
self.updateTitleBar()
|
||||||
|
|
||||||
def onSaveAs(self):
|
def onSaveAsOrNew(self, new=False):
|
||||||
"Prompt for a file name, then save."
|
"Prompt for a file name, then save."
|
||||||
title = _("Save deck")
|
if new:
|
||||||
dir = os.path.dirname(self.deck.path)
|
title = "Name Deck"
|
||||||
|
dir = anki.deck.ankiDir
|
||||||
|
else:
|
||||||
|
title = _("Save Deck As")
|
||||||
|
dir = os.path.dirname(self.deck.path)
|
||||||
file = QFileDialog.getSaveFileName(self, title,
|
file = QFileDialog.getSaveFileName(self, title,
|
||||||
dir,
|
dir,
|
||||||
_("Deck files (*.anki)"),
|
_("Deck files (*.anki)"),
|
||||||
|
@ -756,6 +769,8 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
if not ui.utils.askUser(
|
if not ui.utils.askUser(
|
||||||
"This file exists. Are you sure you want to overwrite it?"):
|
"This file exists. Are you sure you want to overwrite it?"):
|
||||||
return
|
return
|
||||||
|
if new:
|
||||||
|
return file
|
||||||
self.deck = self.deck.saveAs(file)
|
self.deck = self.deck.saveAs(file)
|
||||||
self.deck.initUndo()
|
self.deck.initUndo()
|
||||||
self.updateTitleBar()
|
self.updateTitleBar()
|
||||||
|
@ -812,7 +827,8 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
if str == "addfacts":
|
if str == "addfacts":
|
||||||
if not self.deck:
|
if not self.deck:
|
||||||
self.onNew()
|
self.onNew()
|
||||||
self.onAddCard()
|
if self.deck:
|
||||||
|
self.onAddCard()
|
||||||
|
|
||||||
def setupAnchors(self):
|
def setupAnchors(self):
|
||||||
# welcome
|
# welcome
|
||||||
|
@ -1325,7 +1341,7 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
||||||
self.connect(m.actionOpen, s, self.onOpen)
|
self.connect(m.actionOpen, s, self.onOpen)
|
||||||
self.connect(m.actionOpenSamples, s, self.onOpenSamples)
|
self.connect(m.actionOpenSamples, s, self.onOpenSamples)
|
||||||
self.connect(m.actionSave, s, self.onSave)
|
self.connect(m.actionSave, s, self.onSave)
|
||||||
self.connect(m.actionSaveAs, s, self.onSaveAs)
|
self.connect(m.actionSaveAs, s, self.onSaveAsOrNew)
|
||||||
self.connect(m.actionClose, s, self.onClose)
|
self.connect(m.actionClose, s, self.onClose)
|
||||||
self.connect(m.actionExit, s, self, SLOT("close()"))
|
self.connect(m.actionExit, s, self, SLOT("close()"))
|
||||||
self.connect(m.actionSyncdeck, s, self.syncDeck)
|
self.connect(m.actionSyncdeck, s, self.syncDeck)
|
||||||
|
|
Loading…
Reference in a new issue