Browse Source

Update TableView and TableModel in DigitalLibrary plugin.

This is not backwards compatible with Cura < 5.0 due to the removal of Qt.labs

CURA-8640
j.delarago 2 years ago
parent
commit
e86f860a2c

+ 11 - 5
plugins/DigitalLibrary/resources/qml/OpenProjectFilesPage.qml

@@ -1,7 +1,6 @@
 //Copyright (C) 2022 Ultimaker B.V.
 //Cura is released under the terms of the LGPLv3 or higher.
 
-import Qt.labs.qmlmodels 1.0
 import QtQuick 2.15
 import QtQuick.Window 2.2
 import QtQuick.Controls 2.3
@@ -19,6 +18,7 @@ Item
     height: parent.height
 
     property var fileModel: manager.digitalFactoryFileModel
+    property var modelRows: manager.digitalFactoryFileModel.items
 
     signal openFilePressed()
     signal selectDifferentProjectPressed()
@@ -57,9 +57,8 @@ Item
         border.width: UM.Theme.getSize("default_lining").width
         border.color: UM.Theme.getColor("lining")
 
-        //We can't use Cura's TableView here, since in Cura >= 5.0 this uses QtQuick.TableView, while in Cura < 5.0 this uses QtControls1.TableView.
-        //So we have to define our own. Once support for 4.13 and earlier is dropped, we can switch to Cura.TableView.
-        Table
+        // This is not backwards compatible with Cura < 5.0 due to QT.labs being removed in PyQt6
+        Cura.TableView
         {
             id: filesTableView
             anchors.fill: parent
@@ -68,8 +67,9 @@ Item
             columnHeaders: ["Name", "Uploaded by", "Uploaded at"]
             model: UM.TableModel
             {
+                id: tableModel
                 headers: ["fileName", "username", "uploadedAt"]
-                rows: manager.digitalFactoryFileModel.items
+                rows: modelRows
             }
 
             onCurrentRowChanged:
@@ -177,4 +177,10 @@ Item
         openFilesButton.clicked.connect(base.openFilePressed)
         selectDifferentProjectButton.clicked.connect(base.selectDifferentProjectPressed)
     }
+
+    onModelRowsChanged:
+    {
+        tableModel.clear()
+        tableModel.rows = modelRows
+    }
 }

+ 15 - 10
plugins/DigitalLibrary/resources/qml/SaveProjectFilesPage.qml

@@ -1,12 +1,11 @@
 //Copyright (C) 2022 Ultimaker B.V.
 //Cura is released under the terms of the LGPLv3 or higher.
 
-import Qt.labs.qmlmodels 1.0
-import QtQuick 2.10
+import QtQuick 2.15
 import QtQuick.Window 2.2
 import QtQuick.Controls 2.3
 
-import UM 1.5 as UM
+import UM 1.6 as UM
 import Cura 1.6 as Cura
 
 import DigitalFactory 1.0 as DF
@@ -17,7 +16,9 @@ Item
     id: base
     width: parent.width
     height: parent.height
+
     property var fileModel: manager.digitalFactoryFileModel
+    property var modelRows: manager.digitalFactoryFileModel.items
 
     signal savePressed()
     signal selectDifferentProjectPressed()
@@ -92,9 +93,8 @@ Item
         border.width: UM.Theme.getSize("default_lining").width
         border.color: UM.Theme.getColor("lining")
 
-        //We can't use Cura's TableView here, since in Cura >= 5.0 this uses QtQuick.TableView, while in Cura < 5.0 this uses QtControls1.TableView.
-        //So we have to define our own. Once support for 4.13 and earlier is dropped, we can switch to Cura.TableView.
-        Table
+        // This is not backwards compatible with Cura < 5.0 due to QT.labs being removed in PyQt6
+        Cura.TableView
         {
             id: filesTableView
             anchors.fill: parent
@@ -102,11 +102,10 @@ Item
 
             allowSelection: false
             columnHeaders: ["Name", "Uploaded by", "Uploaded at"]
-            model: TableModel
+            model: UM.TableModel
             {
-                TableModelColumn { display: "fileName" }
-                TableModelColumn { display: "username" }
-                TableModelColumn { display: "uploadedAt" }
+                id: tableModel
+                headers: ["fileName", "username", "uploadedAt"]
                 rows: manager.digitalFactoryFileModel.items
             }
         }
@@ -248,4 +247,10 @@ Item
         saveButton.clicked.connect(base.savePressed)
         selectDifferentProjectButton.clicked.connect(base.selectDifferentProjectPressed)
     }
+
+    onModelRowsChanged:
+    {
+        tableModel.clear()
+        tableModel.rows = modelRows
+    }
 }