mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-19 08:07:36 +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.Qt.ListModel import ListModel
|
||||||
from UM.PluginRegistry import PluginRegistry
|
from UM.PluginRegistry import PluginRegistry
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
|
from UM.Version import Version
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
|
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
|
||||||
from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot
|
from PyQt5.QtCore import QUrl, QObject, Qt, pyqtProperty, pyqtSignal, pyqtSlot
|
||||||
@ -100,19 +101,29 @@ class PluginBrowser(QObject, Extension):
|
|||||||
else:
|
else:
|
||||||
self._plugins_model.clear()
|
self._plugins_model.clear()
|
||||||
items = []
|
items = []
|
||||||
plugin_registry = PluginRegistry.getInstance()
|
|
||||||
for metadata in self._plugins_metadata:
|
for metadata in self._plugins_metadata:
|
||||||
items.append({
|
items.append({
|
||||||
"name": metadata["label"],
|
"name": metadata["label"],
|
||||||
"version": metadata["version"],
|
"version": metadata["version"],
|
||||||
"short_description": metadata["short_description"],
|
"short_description": metadata["short_description"],
|
||||||
"author": metadata["author"],
|
"author": metadata["author"],
|
||||||
"already_installed": plugin_registry.getMetaData(metadata["id"]) != {},
|
"already_installed": self._checkAlreadyInstalled(metadata["id"], metadata["version"]),
|
||||||
"file_location": metadata["file_location"]
|
"file_location": metadata["file_location"]
|
||||||
})
|
})
|
||||||
self._plugins_model.setItems(items)
|
self._plugins_model.setItems(items)
|
||||||
return self._plugins_model
|
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):
|
def _onRequestFinished(self, reply):
|
||||||
reply_url = reply.url().toString()
|
reply_url = reply.url().toString()
|
||||||
if reply.operation() == QNetworkAccessManager.GetOperation:
|
if reply.operation() == QNetworkAccessManager.GetOperation:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user