Browse Source

Remove almost duplicate file

CURA-11800
c.lamboo 11 months ago
parent
commit
b3d3c4d00a

+ 18 - 42
resources/qml/Cura.qml

@@ -702,32 +702,23 @@ UM.MainWindow
             if (hasProjectFile)
             {
                 var projectFile = projectFileUrlList[0]
-                var is_ucp = CuraApplication.isProjectUcp(projectFile);
-                if (is_ucp)
+                // check preference
+                var choice = UM.Preferences.getValue("cura/choice_on_open_project");
+                if (choice == "open_as_project")
                 {
-                    askOpenAsProjectOrUcpOrImportModelsDialog.fileUrl = projectFile;
-                    askOpenAsProjectOrUcpOrImportModelsDialog.addToRecent = true;
-                    askOpenAsProjectOrUcpOrImportModelsDialog.show();
+                    openFilesIncludingProjectsDialog.loadProjectFile(projectFile);
                 }
-                else
+                else if (choice == "open_as_model")
                 {
-                    // check preference
-                    var choice = UM.Preferences.getValue("cura/choice_on_open_project");
-                    if (choice == "open_as_project")
-                    {
-                        openFilesIncludingProjectsDialog.loadProjectFile(projectFile);
-                    }
-                    else if (choice == "open_as_model")
-                    {
-                        openFilesIncludingProjectsDialog.loadModelFiles([projectFile].slice());
-                    }
-                    else    // always ask
-                    {
-                        // ask whether to open as project or as models
-                        askOpenAsProjectOrModelsDialog.fileUrl = projectFile;
-                        askOpenAsProjectOrModelsDialog.addToRecent = true;
-                        askOpenAsProjectOrModelsDialog.show();
-                    }
+                    openFilesIncludingProjectsDialog.loadModelFiles([projectFile].slice());
+                }
+                else    // always ask
+                {
+                    // ask whether to open as project or as models
+                    askOpenAsProjectOrModelsDialog.is_ucp = CuraApplication.isProjectUcp(projectFile);
+                    askOpenAsProjectOrModelsDialog.fileUrl = projectFile;
+                    askOpenAsProjectOrModelsDialog.addToRecent = true;
+                    askOpenAsProjectOrModelsDialog.show();
                 }
             }
             else
@@ -778,30 +769,15 @@ UM.MainWindow
         id: askOpenAsProjectOrModelsDialog
     }
 
-    AskOpenAsProjectOrUcpOrImportModel
-    {
-        id: askOpenAsProjectOrUcpOrImportModelsDialog
-    }
-
     Connections
     {
         target: CuraApplication
         function onOpenProjectFile(project_file, add_to_recent_files)
         {
-            var is_ucp = CuraApplication.isProjectUcp(project_file);
-            if (is_ucp)
-            {
-
-                askOpenAsProjectOrUcpOrImportModelsDialog.fileUrl = project_file;
-                askOpenAsProjectOrUcpOrImportModelsDialog.addToRecent = add_to_recent_files;
-                askOpenAsProjectOrUcpOrImportModelsDialog.show();
-            }
-            else
-            {
-                askOpenAsProjectOrModelsDialog.fileUrl = project_file;
-                askOpenAsProjectOrModelsDialog.addToRecent = add_to_recent_files;
-                askOpenAsProjectOrModelsDialog.show();
-            }
+            askOpenAsProjectOrModelsDialog.is_ucp = CuraApplication.isProjectUcp(project_file);
+            askOpenAsProjectOrModelsDialog.fileUrl = project_file;
+            askOpenAsProjectOrModelsDialog.addToRecent = add_to_recent_files;
+            askOpenAsProjectOrModelsDialog.show();
         }
     }
 

+ 15 - 2
resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml

@@ -14,7 +14,9 @@ UM.Dialog
     // This dialog asks the user whether he/she wants to open a project file as a project or import models.
     id: base
 
-    title: catalog.i18nc("@title:window", "Open project file")
+    title: base.is_ucp
+        ? catalog.i18nc("@title:window Don't translate 'Universal Cura Project'", "Open Universal Cura Project (UCP) file")
+        : catalog.i18nc("@title:window", "Open project file")
     width: UM.Theme.getSize("small_popup_dialog").width
     height: UM.Theme.getSize("small_popup_dialog").height
     backgroundColor: UM.Theme.getColor("main_background")
@@ -28,6 +30,7 @@ UM.Dialog
 
     property var fileUrl
     property var addToRecent: true //Whether to add this file to the recent files list after reading it.
+    property bool is_ucp: false
 
     // load the entire project
     function loadProjectFile() {
@@ -81,7 +84,9 @@ UM.Dialog
         {
             id: questionText
             width: parent.width
-            text: catalog.i18nc("@text:window", "This is a Cura project file. Would you like to open it as a project or import the models from it?")
+            text: base.is_ucp
+                ? catalog.i18nc("@text:window", "This is a Cura Universal project file. Would you like to open it as a Cura project or Cura Universal Project or import the models from it?")
+                : catalog.i18nc("@text:window", "This is a Cura project file. Would you like to open it as a project or import the models from it?")
             wrapMode: Text.WordWrap
         }
 
@@ -100,10 +105,18 @@ UM.Dialog
 
     rightButtons:
     [
+        Cura.PrimaryButton
+        {
+            text: catalog.i18nc("@action:button", "Open as UCP")
+            iconSource: UM.Theme.getIcon("CuraShareIcon")
+            onClicked: loadProjectFile()
+            visible: base.is_ucp
+        },
         Cura.PrimaryButton
         {
             text: catalog.i18nc("@action:button", "Open as project")
             onClicked: loadProjectFile()
+            visible: !base.is_ucp
         },
         Cura.SecondaryButton
         {

+ 0 - 91
resources/qml/Dialogs/AskOpenAsProjectOrUcpOrImportModel.qml

@@ -1,91 +0,0 @@
-// Copyright (c) 2022 Ultimaker B.V.
-// Cura is released under the terms of the LGPLv3 or higher.
-
-import QtQuick 2.2
-import QtQuick.Controls 2.1
-import QtQuick.Layouts 1.1
-
-import UM 1.5 as UM
-import Cura 1.0 as Cura
-
-
-UM.Dialog
-{
-    // This dialog asks the user whether he/she wants to open a project file as a project or import models.
-    id: base
-
-    title: catalog.i18nc("@title:window Don't translate 'Universal Cura Project'", "Open Universal Cura Project (UCP) file")
-    width: UM.Theme.getSize("small_popup_dialog").width
-    height: UM.Theme.getSize("small_popup_dialog").height
-    backgroundColor: UM.Theme.getColor("main_background")
-
-    maximumHeight: height
-    maximumWidth: width
-    minimumHeight: maximumHeight
-    minimumWidth: maximumWidth
-
-    modality: Qt.WindowModal
-
-    property var fileUrl
-    property var addToRecent: true //Whether to add this file to the recent files list after reading it.
-
-
-    // load the project file as separated models
-    function loadModelFiles() {
-        CuraApplication.readLocalFile(base.fileUrl, "open_as_model", base.addToRecent)
-
-        base.hide()
-    }
-
-    // load the project file as Universal cura project
-    function loadUcpFiles() {
-        CuraApplication.readLocalUcpFile(base.fileUrl, base.addToRecent)
-
-        base.hide()
-    }
-
-    // override UM.Dialog accept
-    function accept () {
-
-        // when hitting 'enter', we always open as project unless open_as_model was explicitly stored as preference
-        if (openAsPreference == "open_as_model") {
-            loadModelFiles()
-        } else{
-            loadUcpFiles()
-        }
-    }
-
-    Column
-    {
-        anchors.fill: parent
-        spacing: UM.Theme.getSize("default_margin").height
-
-        UM.Label
-        {
-            id: questionText
-            width: parent.width
-            text: catalog.i18nc("@text:window", "This is a Cura Universal project file. Would you like to open it as a Cura project or Cura Universal Project or import the models from it?")
-            wrapMode: Text.WordWrap
-        }
-    }
-
-    onAccepted: loadUcpFile()
-    onRejected: loadModelFiles()
-
-    buttonSpacing: UM.Theme.getSize("thin_margin").width
-
-    rightButtons:
-    [
-        Cura.PrimaryButton
-        {
-            text: catalog.i18nc("@action:button", "Open as UCP")
-            iconSource: UM.Theme.getIcon("CuraShareIcon")
-            onClicked: loadUcpFiles()
-        },
-        Cura.SecondaryButton
-        {
-            text: catalog.i18nc("@action:button", "Import models")
-            onClicked: loadModelFiles()
-        }
-    ]
-}