mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-28 23:04:34 +08:00
81 lines
2.3 KiB
QML
81 lines
2.3 KiB
QML
// Copyright (c) 2016 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.2
|
|
import QtQuick.Controls 1.1
|
|
|
|
import UM 1.3 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
import "../Dialogs"
|
|
|
|
Menu
|
|
{
|
|
id: menu
|
|
title: catalog.i18nc("@title:menu menubar:file", "Open &Recent")
|
|
iconName: "document-open-recent";
|
|
|
|
enabled: CuraApplication.recentFiles.length > 0;
|
|
|
|
Instantiator
|
|
{
|
|
model: CuraApplication.recentFiles
|
|
MenuItem
|
|
{
|
|
text:
|
|
{
|
|
var path = modelData.toString()
|
|
return (index + 1) + ". " + path.slice(path.lastIndexOf("/") + 1);
|
|
}
|
|
onTriggered:
|
|
{
|
|
var toShowDialog = false;
|
|
var toOpenAsProject = false;
|
|
var toOpenAsModel = false;
|
|
|
|
if (CuraApplication.checkIsValidProjectFile(modelData)) {
|
|
// check preference
|
|
var choice = UM.Preferences.getValue("cura/choice_on_open_project");
|
|
|
|
if (choice == "open_as_project")
|
|
{
|
|
toOpenAsProject = true;
|
|
}else if (choice == "open_as_model"){
|
|
toOpenAsModel = true;
|
|
}else{
|
|
toShowDialog = true;
|
|
}
|
|
}
|
|
else {
|
|
toOpenAsModel = true;
|
|
}
|
|
|
|
if (toShowDialog) {
|
|
askOpenAsProjectOrModelsDialog.fileUrl = modelData;
|
|
askOpenAsProjectOrModelsDialog.show();
|
|
return;
|
|
}
|
|
|
|
// open file in the prefered way
|
|
if (toOpenAsProject)
|
|
{
|
|
UM.WorkspaceFileHandler.readLocalFile(modelData);
|
|
}
|
|
else if (toOpenAsModel)
|
|
{
|
|
CuraApplication.readLocalFile(modelData, true);
|
|
}
|
|
var meshName = backgroundItem.getMeshName(modelData.toString())
|
|
backgroundItem.hasMesh(decodeURIComponent(meshName))
|
|
}
|
|
}
|
|
onObjectAdded: menu.insertItem(index, object)
|
|
onObjectRemoved: menu.removeItem(object)
|
|
}
|
|
|
|
Cura.AskOpenAsProjectOrModelsDialog
|
|
{
|
|
id: askOpenAsProjectOrModelsDialog
|
|
}
|
|
}
|