mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-19 04:17:29 +08:00
Plugin browser now also uses version to check if plugin is already installed
CURA-3856
This commit is contained in:
parent
e3dffd6610
commit
e6a3577e9d
@ -6,6 +6,7 @@ from UM.Logger import Logger
|
||||
from UM.Qt.ListModel import ListModel
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
from UM.Application import Application
|
||||
from UM.Version import Version
|
||||
|
||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
|
||||
from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot
|
||||
@ -100,19 +101,29 @@ class PluginBrowser(QObject, Extension):
|
||||
else:
|
||||
self._plugins_model.clear()
|
||||
items = []
|
||||
plugin_registry = PluginRegistry.getInstance()
|
||||
for metadata in self._plugins_metadata:
|
||||
items.append({
|
||||
"name": metadata["label"],
|
||||
"version": metadata["version"],
|
||||
"short_description": metadata["short_description"],
|
||||
"author": metadata["author"],
|
||||
"already_installed": plugin_registry.getMetaData(metadata["id"]) != {},
|
||||
"already_installed": self._checkAlreadyInstalled(metadata["id"], metadata["version"]),
|
||||
"file_location": metadata["file_location"]
|
||||
})
|
||||
self._plugins_model.setItems(items)
|
||||
return self._plugins_model
|
||||
|
||||
def _checkAlreadyInstalled(self, id, version):
|
||||
plugin_registry = PluginRegistry.getInstance()
|
||||
metadata = plugin_registry.getMetaData(id)
|
||||
if metadata != {}:
|
||||
current_version = Version(metadata["plugin"]["version"])
|
||||
new_version = Version(version)
|
||||
if new_version > current_version:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def _onRequestFinished(self, reply):
|
||||
reply_url = reply.url().toString()
|
||||
if reply.operation() == QNetworkAccessManager.GetOperation:
|
||||
|
Loading…
x
Reference in New Issue
Block a user