Open/Save As/Create last accessed directory

This commit is contained in:
LingSamuel 2018-12-07 19:06:39 +08:00 committed by Curtis Gedak
parent 7bbc112d25
commit cbf35fa373

View file

@ -53,6 +53,18 @@ class welcome(QWidget, Ui_welcome):
# Recent Files # Recent Files
self.loadRecents() self.loadRecents()
def getLastAccessedDirectory(self):
sttgs = QSettings()
lastDirectory = sttgs.value("lastAccessedDirectory", defaultValue=".", type=str)
if lastDirectory != '.':
print(qApp.translate("lastAccessedDirectoryInfo", "Last accessed directory \"{}\" loaded.").format(
lastDirectory))
return lastDirectory
def setLastAccessedDirectory(self, dir):
sttgs = QSettings()
sttgs.setValue("lastAccessedDirectory", dir)
############################################################################### ###############################################################################
# AUTOLOAD # AUTOLOAD
############################################################################### ###############################################################################
@ -138,10 +150,7 @@ class welcome(QWidget, Ui_welcome):
############################################################################### ###############################################################################
def openFile(self): def openFile(self):
sttgs = QSettings() lastDirectory = self.getLastAccessedDirectory()
lastDirectory = sttgs.value("lastAccessedDirectory", defaultValue=".", type=str)
if lastDirectory != '.':
print(qApp.translate("lastAccessedDirectoryInfo", "Last accessed directory \"{}\" loaded.").format(lastDirectory))
"""File dialog that request an existing file. For opening project.""" """File dialog that request an existing file. For opening project."""
filename = QFileDialog.getOpenFileName(self, filename = QFileDialog.getOpenFileName(self,
@ -149,19 +158,22 @@ class welcome(QWidget, Ui_welcome):
lastDirectory, lastDirectory,
self.tr("Manuskript project (*.msk);;All files (*)"))[0] self.tr("Manuskript project (*.msk);;All files (*)"))[0]
if filename: if filename:
sttgs.setValue("lastAccessedDirectory", os.path.dirname(filename)) self.setLastAccessedDirectory(os.path.dirname(filename))
self.appendToRecentFiles(filename) self.appendToRecentFiles(filename)
self.mw.loadProject(filename) self.mw.loadProject(filename)
def saveAsFile(self): def saveAsFile(self):
lastDirectory = self.getLastAccessedDirectory()
"""File dialog that request a file, existing or not. """File dialog that request a file, existing or not.
Save data to that file, which then becomes the current project.""" Save data to that file, which then becomes the current project."""
filename = QFileDialog.getSaveFileName(self, filename = QFileDialog.getSaveFileName(self,
self.tr("Save project as..."), self.tr("Save project as..."),
".", lastDirectory,
self.tr("Manuskript project (*.msk)"))[0] self.tr("Manuskript project (*.msk)"))[0]
if filename: if filename:
self.setLastAccessedDirectory(os.path.dirname(filename))
if filename[-4:] != ".msk": if filename[-4:] != ".msk":
filename += ".msk" filename += ".msk"
self.appendToRecentFiles(filename) self.appendToRecentFiles(filename)
@ -174,16 +186,19 @@ class welcome(QWidget, Ui_welcome):
self.mw.setWindowTitle(pName + " - " + self.tr("Manuskript")) self.mw.setWindowTitle(pName + " - " + self.tr("Manuskript"))
def createFile(self, filename=None, overwrite=False): def createFile(self, filename=None, overwrite=False):
lastDirectory = self.getLastAccessedDirectory()
"""When starting a new project, ask for a place to save it. """When starting a new project, ask for a place to save it.
Datas are not loaded from file, so they must be populated another way.""" Datas are not loaded from file, so they must be populated another way."""
if not filename: if not filename:
filename = QFileDialog.getSaveFileName( filename = QFileDialog.getSaveFileName(
self, self,
self.tr("Create New Project"), self.tr("Create New Project"),
".", lastDirectory,
self.tr("Manuskript project (*.msk)"))[0] self.tr("Manuskript project (*.msk)"))[0]
if filename: if filename:
self.setLastAccessedDirectory(os.path.dirname(filename))
if filename[-4:] != ".msk": if filename[-4:] != ".msk":
filename += ".msk" filename += ".msk"
if os.path.exists(filename) and not overwrite: if os.path.exists(filename) and not overwrite: