Browse Source

Add a reusable WizardDialog

CURA-6435
Lipu Fei 6 years ago
parent
commit
3ee32944d5
2 changed files with 58 additions and 0 deletions
  1. 52 0
      resources/qml/WelcomePages/WizardDialog.qml
  2. 6 0
      resources/qml/qmldir

+ 52 - 0
resources/qml/WelcomePages/WizardDialog.qml

@@ -0,0 +1,52 @@
+// Copyright (c) 2019 Ultimaker B.V.
+// Cura is released under the terms of the LGPLv3 or higher.
+
+import QtQuick 2.10
+import QtQuick.Controls 2.3
+import QtQuick.Window 2.2
+
+import UM 1.3 as UM
+import Cura 1.1 as Cura
+
+
+//
+// This is a dialog for showing a set of processes that's defined in a WelcomePagesModel or some other Qt ListModel with
+// a compatible interface.
+//
+Window
+{
+    UM.I18nCatalog { id: catalog; name: "cura" }
+
+    id: dialog
+
+    flags: Qt.Dialog
+
+    minimumWidth: 580 * screenScaleFactor
+    minimumHeight: 600 * screenScaleFactor
+
+    color: UM.Theme.getColor("main_background")
+
+    property var model: null  // Needs to be set by whoever is using this dialog.
+
+    onVisibilityChanged:
+    {
+        if (visible)
+        {
+            model.resetState()
+        }
+    }
+
+    WizardPanel
+    {
+        id: wizardPanel
+        anchors.fill: parent
+        model: dialog.model
+    }
+
+    // Close this dialog when there's no more page to show
+    Connections
+    {
+        target: model
+        onAllFinished: dialog.hide()
+    }
+}

+ 6 - 0
resources/qml/qmldir

@@ -19,6 +19,12 @@ CheckBoxWithTooltip 1.0 CheckBoxWithTooltip.qml
 ToolTip 1.0 ToolTip.qml
 
 
+# Cura/WelcomePages
+
+WizardPanel         1.0 WizardPanel.qml
+WizardDialog        1.0 WizardDialog.qml
+
+
 # Cura/Widgets
 
 CheckBox            1.0 CheckBox.qml