Cura/plugins/CuraDrive/src/models/BackupListModel.py
Lipu Fei 8c07a6e89b Fix typing issues
CURA-6005
2018-12-12 10:35:39 +01:00

39 lines
1.3 KiB
Python

# Copyright (c) 2018 Ultimaker B.V.
from typing import Any, List, Dict
from UM.Qt.ListModel import ListModel
from PyQt5.QtCore import Qt
class BackupListModel(ListModel):
"""
The BackupListModel transforms the backups data that came from the server so it can be served to the Qt UI.
"""
def __init__(self, parent = None) -> None:
super().__init__(parent)
self.addRoleName(Qt.UserRole + 1, "backup_id")
self.addRoleName(Qt.UserRole + 2, "download_url")
self.addRoleName(Qt.UserRole + 3, "generated_time")
self.addRoleName(Qt.UserRole + 4, "md5_hash")
self.addRoleName(Qt.UserRole + 5, "data")
def loadBackups(self, data: List[Dict[str, Any]]) -> None:
"""
Populate the model with server data.
:param data:
"""
items = []
for backup in data:
# We do this loop because we only want to append these specific fields.
# Without this, ListModel will break.
items.append({
"backup_id": backup["backup_id"],
"download_url": backup["download_url"],
"generated_time": backup["generated_time"],
"md5_hash": backup["md5_hash"],
"data": backup["metadata"]
})
self.setItems(items)