From 2dad3ce90306aeff05bcd2e7d54635605392acb3 Mon Sep 17 00:00:00 2001 From: Juan Pablo Caram Date: Sat, 29 Nov 2014 16:09:38 -0500 Subject: [PATCH] Moved last used folder into application defaults. --- FlatCAMApp.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index a0b57bb7..167e5ad4 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -10,7 +10,6 @@ import webbrowser import os import Tkinter import re - from PyQt4 import QtCore ######################################## @@ -23,7 +22,6 @@ from PlotCanvas import * from FlatCAMGUI import * from FlatCAMCommon import LoudDict from FlatCAMTool import * - from FlatCAMShell import FCShell from FlatCAMDraw import FlatCAMDraw @@ -142,8 +140,6 @@ class App(QtCore.QObject): self.project_filename = None - self.last_folder = None - self.toggle_units_ignore = False self.defaults_form = GlobalOptionsUI() @@ -218,6 +214,9 @@ class App(QtCore.QObject): "cncjob_tooldia": 0.016, "cncjob_append": "", + # Persistence + "last_folder": None, + # Constants... "defaults_save_period_ms": 20000, # Time between default saves. "shell_shape": [500, 300], # Shape of the shell in pixels. @@ -521,6 +520,9 @@ class App(QtCore.QObject): self.draw.drawing_toolbar.setDisabled(True) geo.plot() + def get_last_folder(self): + return self.defaults["last_folder"] + def report_usage(self, resource): """ Increments usage counter for the given resource @@ -1323,7 +1325,7 @@ class App(QtCore.QObject): try: filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber", - directory=self.last_folder) + directory=self.get_last_folder()) except TypeError: filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber") @@ -1350,7 +1352,7 @@ class App(QtCore.QObject): try: filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon", - directory=self.last_folder) + directory=self.get_last_folder()) except TypeError: filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon") @@ -1377,7 +1379,7 @@ class App(QtCore.QObject): try: filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code", - directory=self.last_folder) + directory=self.get_last_folder()) except TypeError: filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code") @@ -1404,7 +1406,7 @@ class App(QtCore.QObject): try: filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project", - directory=self.last_folder) + directory=self.get_last_folder()) except TypeError: filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project") @@ -1453,7 +1455,7 @@ class App(QtCore.QObject): try: filename = QtGui.QFileDialog.getSaveFileName(caption="Save Project As ...", - directory=self.last_folder) + directory=self.get_last_folder()) except TypeError: filename = QtGui.QFileDialog.getSaveFileName(caption="Save Project As ...") @@ -1511,6 +1513,7 @@ class App(QtCore.QObject): except IOError: app_obj.inform.emit("[error] Failed to open file: " + filename) app_obj.progress.emit(0) + raise IOError('Failed to open file: ' + filename) # Further parsing self.progress.emit(70) # TODO: Note the mixture of self and app_obj used here @@ -1566,7 +1569,7 @@ class App(QtCore.QObject): except IOError: app_obj.inform.emit("[error] Cannot open file: " + filename) self.progress.emit(0) # TODO: self and app_bjj mixed - raise IOError + raise IOError("Cannot open file: " + filename) excellon_obj.create_geometry() self.progress.emit(70) @@ -1616,9 +1619,14 @@ class App(QtCore.QObject): assert isinstance(app_obj_, App) self.progress.emit(10) - f = open(filename) - gcode = f.read() - f.close() + try: + f = open(filename) + gcode = f.read() + f.close() + except IOError: + app_obj_.inform.emit("[error] Failed to open " + filename) + self.progress.emit(0) + raise IOError("Failed to open " + filename) job_obj.gcode = gcode @@ -1750,7 +1758,7 @@ class App(QtCore.QObject): self.worker_task.emit({'fcn': worker_task, 'params': [self]}) def register_folder(self, filename): - self.last_folder = os.path.split(str(filename))[0] + self.defaults["last_folder"] = os.path.split(str(filename))[0] def set_progress_bar(self, percentage, text=""): self.ui.progress_bar.setValue(int(percentage))