Dialog_profile/material/load_path is now saved and used.

CURA-1900
This commit is contained in:
Jack Ha 2016-07-19 15:59:44 +02:00
parent 10296362ec
commit 7731f9406c
4 changed files with 28 additions and 9 deletions

View File

@ -194,6 +194,14 @@ class CuraApplication(QtApplication):
Preferences.getInstance().addPreference("view/center_on_select", True)
Preferences.getInstance().addPreference("mesh/scale_to_fit", True)
Preferences.getInstance().addPreference("mesh/scale_tiny_meshes", True)
for key in [
"dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin
"dialog_profile_path",
"dialog_material_path"]:
Preferences.getInstance().addPreference("local_file/%s" % key, "~/")
Preferences.getInstance().setDefault("local_file/last_used_type", "text/x-gcode")
Preferences.getInstance().setDefault("general/visible_settings", """
@ -332,10 +340,16 @@ class CuraApplication(QtApplication):
f.write(data)
@pyqtSlot(result = QUrl)
def getDefaultPath(self):
return QUrl.fromLocalFile(os.path.expanduser("~/"))
@pyqtSlot(str, result = QUrl)
def getDefaultPath(self, key):
#return QUrl.fromLocalFile(os.path.expanduser("~/"))
default_path = Preferences.getInstance().getValue("local_file/%s" % key)
return QUrl.fromLocalFile(default_path)
@pyqtSlot(str, str)
def setDefaultPath(self, key, default_path):
Preferences.getInstance().setValue("local_file/%s" % key, default_path)
## Handle loading of all plugin types (and the backend explicitly)
# \sa PluginRegistery
def _loadPlugins(self):

View File

@ -638,7 +638,7 @@ UM.MainWindow
//TODO: Support multiple file selection, workaround bug in KDE file dialog
//selectMultiple: true
nameFilters: UM.MeshFileHandler.supportedReadFileTypes;
folder: Printer.getDefaultPath()
folder: CuraApplication.getDefaultPath("dialog_load_path")
onAccepted:
{
//Because several implementations of the file dialog only update the folder
@ -646,6 +646,7 @@ UM.MainWindow
var f = folder;
folder = f;
CuraApplication.setDefaultPath("dialog_load_path", folder);
UM.MeshFileHandler.readLocalFile(fileUrl)
var meshName = backgroundItem.getMeshName(fileUrl.toString())
backgroundItem.hasMesh(decodeURIComponent(meshName))

View File

@ -200,7 +200,7 @@ UM.ManagementPage
title: catalog.i18nc("@title:window", "Import Material");
selectExisting: true;
nameFilters: Cura.ContainerManager.getContainerNameFilters("material")
folder: CuraApplication.getDefaultPath()
folder: CuraApplication.getDefaultPath("dialog_material_path")
onAccepted:
{
var result = Cura.ContainerManager.importContainer(fileUrl)
@ -221,6 +221,7 @@ UM.ManagementPage
messageDialog.icon = StandardIcon.Critical
}
messageDialog.open()
CuraApplication.setDefaultPath("dialog_material_path", folder)
}
}
@ -230,7 +231,7 @@ UM.ManagementPage
title: catalog.i18nc("@title:window", "Export Material");
selectExisting: false;
nameFilters: Cura.ContainerManager.getContainerNameFilters("material")
folder: CuraApplication.getDefaultPath()
folder: CuraApplication.getDefaultPath("dialog_material_path")
onAccepted:
{
if(base.currentItem.metadata.base_file)
@ -255,6 +256,7 @@ UM.ManagementPage
messageDialog.text = catalog.i18nc("@info:status", "Successfully exported material to <filename>%1</filename>").arg(fileUrl)
messageDialog.open()
}
CuraApplication.setDefaultPath("dialog_material_path", folder)
}
}

View File

@ -291,7 +291,7 @@ UM.ManagementPage
title: catalog.i18nc("@title:window", "Import Profile");
selectExisting: true;
nameFilters: base.model.getFileNameFilters("profile_reader")
folder: base.model.getDefaultPath()
folder: CuraApplication.getDefaultPath("dialog_profile_path")
onAccepted:
{
var result = base.model.importProfile(fileUrl)
@ -309,6 +309,7 @@ UM.ManagementPage
messageDialog.icon = StandardIcon.Critical
}
messageDialog.open()
CuraApplication.setDefaultPath("dialog_profile_path", folder)
}
}
@ -318,7 +319,7 @@ UM.ManagementPage
title: catalog.i18nc("@title:window", "Export Profile");
selectExisting: false;
nameFilters: base.model.getFileNameFilters("profile_writer")
folder: base.model.getDefaultPath()
folder: CuraApplication.getDefaultPath("dialog_profile_path")
onAccepted:
{
var result = base.model.exportProfile(base.currentItem.id, fileUrl, selectedNameFilter)
@ -329,6 +330,7 @@ UM.ManagementPage
messageDialog.open()
}
// else pop-up Message thing from python code
CuraApplication.setDefaultPath("dialog_profile_path", folder)
}
}
}