Qt5 et Qt6 Compatible #4

Merged
Colas merged 4 commits from tlaveille/plugin_gn_tools:master into master 2026-04-22 14:38:10 +02:00
4 changed files with 39 additions and 39 deletions
Showing only changes of commit e5b3e2fedd - Show all commits

View File

@ -2,10 +2,10 @@
import json
import time
# Import PyQt libs
from PyQt5.QtCore import QObject, pyqtSignal, QUrl, Qt, QVariant
from PyQt5.QtGui import QColor
from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
from PyQt5.QtWidgets import QDialog, QPushButton, QApplication, QVBoxLayout, QHBoxLayout, QButtonGroup, QCheckBox, QLabel
from qgis.PyQt.QtCore import QObject, pyqtSignal, QUrl, Qt, QVariant
from qgis.PyQt.QtGui import QColor
from qgis.PyQt.QtNetwork import QNetworkRequest, QNetworkReply
from qgis.PyQt.QtWidgets import QDialog, QPushButton, QApplication, QVBoxLayout, QHBoxLayout, QButtonGroup, QCheckBox, QLabel
# Import PyQgis libs
from qgis.utils import iface
from qgis.core import QgsProject, QgsFeature, QgsDataSourceUri, QgsRectangle, QgsNetworkAccessManager, QgsVectorLayer, QgsPointXY, QgsWkbTypes, QgsMapLayerProxyModel, QgsGeometry, QgsCoordinateReferenceSystem, QgsCoordinateTransform, QgsField
@ -60,7 +60,7 @@ class GetTaxrefId(QObject):
url = "https://api.checklistbank.org/nameusage/search?content=SCIENTIFIC_NAME&datasetKey=2008&facet=datasetKey&facet=rank&facet=issue&facet=status&facet=nomStatus&facet=nameType&facet=field&facet=authorship&facet=authorshipYear&facet=extinct&facet=environment&facet=origin&limit=50&offset=0&q={nom}&rank={rank}&type=PREFIX".format(nom=nom.split("(")[0], rank=rank.lower())
print(url)
request = QNetworkRequest(QUrl(url))
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json")
reply = self.network_manager.get(request)
reply.finished.connect(lambda: self.handle_finished(reply, feature_id))
self._iterate_names += 1
@ -68,7 +68,7 @@ class GetTaxrefId(QObject):
def handle_finished(self, reply, feature_id):
self._pending_downloads -= 1
if reply.error() != QNetworkReply.NoError:
if reply.error() != QNetworkReply.NetworkError(0):
print(f"code: {reply.error()} message: {reply.errorString()}")
if reply.error() == 403:
print("Service down")
@ -146,14 +146,14 @@ class ImportDataGbif(QObject):
self.nb_request = 1
print(url)
request = QNetworkRequest(url)
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json")
reply = self.network_manager.get(request)
reply.finished.connect(lambda: self.handle_finished(reply))
self._pending_downloads += 1
def handle_finished(self, reply):
self._pending_downloads -= 1
if reply.error() != QNetworkReply.NoError:
if reply.error() != QNetworkReply.NetworkError(0):
print(f"code: {reply.error()} message: {reply.errorString()}")
if reply.error() == 403:
print("Service down")

View File

@ -8,8 +8,8 @@ from qgis.PyQt.QtCore import QByteArray, QJsonDocument, QObject, QUrl, pyqtSigna
from qgis.PyQt.QtNetwork import QNetworkReply, QNetworkRequest
from qgis.PyQt.QtWidgets import QAction, QMessageBox, QDialog
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtWidgets import QApplication
# from PyQt6.QtCore import Qt
# from PyQt6.QtWidgets import QApplication
@ -42,7 +42,7 @@ class GetLogin(QDialog):
# self.total_zh = 0
# PyQt5 - Version
QApplication.setOverrideCursor(Qt.WaitCursor)
QApplication.setOverrideCursor(Qt.CursorShape(3))
# PyQt6 - Version
# QApplication.setOverrideCursor(Qt.CursorShape.WaitCursor)
self._pending_downloads = 0
@ -57,14 +57,14 @@ class GetLogin(QDialog):
QApplication.restoreOverrideCursor()
# If reply is an error or reply is a redirection, login is not accepted
print(reply.attribute(
QNetworkRequest.HttpStatusCodeAttribute
QNetworkRequest.Attribute(0)
))
print('Login : ',reply.error())
self.network_manager.cookieStatus = reply.attribute(
QNetworkRequest.HttpStatusCodeAttribute
QNetworkRequest.Attribute(0)
)
if (
reply.error() != QNetworkReply.NoError
reply.error() != QNetworkReply.NetworkError(0)
or self.network_manager.cookieStatus != 200
):
# Error code 299 means the logins are invalid
@ -98,7 +98,7 @@ class GetLogin(QDialog):
else:
self.cookies = self.network_manager.cookieJar()
self.is_connect.setText("Good Job !")
QApplication.setOverrideCursor(Qt.CursorShape(0))
# If the authenfication configuration already exists,
# modify it with the new values
# self.manager_config.setConfigMap(
@ -156,7 +156,7 @@ class GetLogin(QDialog):
}
print(url)
request = QNetworkRequest(url)
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json")
document = QJsonDocument(data_json)
print(document.toJson())
reply = self.network_manager.post(request, document.toJson())

View File

@ -15,7 +15,7 @@ from qgis.PyQt.QtCore import (
pyqtSignal,
QJsonDocument,
Qt,
QTextCodec
# QTextCodec
)
from qgis.PyQt.QtNetwork import QNetworkReply, QNetworkRequest
from qgis.PyQt.QtWidgets import (
@ -294,7 +294,7 @@ class PivotStatus(QDialog):
self.cd_nom = cd_nom
self.url_api = self.domain_url + __api_cd_sta__
# QApplication.setOverrideCursor(Qt.WaitCursor)
# QApplication.setOverrideCursor(Qt.CursorShape(3))
self.multi_dep = True
self.cookie = (self.network_manager.cookieJar()
@ -325,17 +325,17 @@ class PivotStatus(QDialog):
+ ','.join(map(str,cd_nom))
)
request = QNetworkRequest(url)
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
request.setHeader(QNetworkRequest.CookieHeader, self.cookie)
request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json")
request.setHeader(QNetworkRequest.KnownHeaders(4), self.cookie)
reply = self.network_manager.get(request)
reply.finished.connect(lambda: self.import_finished(reply))
def import_finished(self, reply):
self._pending_downloads -= 1
print(reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))
print(reply.attribute(QNetworkRequest.Attribute(0)))
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200:
if reply.attribute(QNetworkRequest.Attribute(0)) != 200:
print(f"code: {reply.error()} message: {reply.errorString()}")
else:
data_request = reply.readAll().data().decode()
@ -449,9 +449,9 @@ class PivotStatus(QDialog):
layername = data['layer_name']
fcString = json.dumps(data)
codec = QTextCodec.codecForName("UTF-8")
fields = QgsJsonUtils.stringToFields(fcString, codec)
feats = QgsJsonUtils.stringToFeatureList(fcString, fields, codec)
# codec = QTextCodec.codecForName("UTF-8")
fields = QgsJsonUtils.stringToFields(fcString)
feats = QgsJsonUtils.stringToFeatureList(fcString, fields)
vl = QgsVectorLayer(geom_type, layername, "memory")
if vl.sourceCrs() != self.layer_crs:

View File

@ -17,7 +17,7 @@ from qgis.PyQt.QtCore import (
QObject,
QUrl,
pyqtSignal,
QTextCodec,
# QTextCodec,
Qt
)
from qgis.PyQt.QtNetwork import QNetworkReply, QNetworkRequest
@ -68,7 +68,8 @@ class ParamWidget(QDialog):
self.print_change
)
else :
QApplication.setOverrideCursor(Qt.WaitCursor)
QApplication.setOverrideCursor(Qt.CursorShape(3))
print(network_manager.cookieJar().cookiesForUrl(QUrl(self.domain_url)))
self.cookie = (network_manager.cookieJar()
.cookiesForUrl(QUrl(self.domain_url))[0]
)
@ -104,9 +105,9 @@ class ParamWidget(QDialog):
def import_finished(self, reply):
self._pending_downloads -= 1
QApplication.restoreOverrideCursor()
print(reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))
print(reply.attribute(QNetworkRequest.Attribute(0)))
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200:
if reply.attribute(QNetworkRequest.Attribute(0)) != 200:
print(f"code: {reply.error()} message: {reply.errorString()}")
else:
self.lst_exp = ['Synthèse taxons']
@ -146,8 +147,8 @@ class ParamWidget(QDialog):
# Define request properties (cookie, header)
request = QNetworkRequest(url)
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
request.setHeader(QNetworkRequest.CookieHeader, self.cookie)
request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json")
request.setHeader(QNetworkRequest.KnownHeaders(4), self.cookie)
if apiFilter:
doc = QJsonDocument(self.json_filter)
@ -194,7 +195,7 @@ class LoadingImport(QDialog):
# self.json_filter = {}
# self.total_zh = 0
QApplication.setOverrideCursor(Qt.WaitCursor)
QApplication.setOverrideCursor(Qt.CursorShape(3))
self._pending_downloads = 0
self.run()
@ -283,10 +284,10 @@ class LoadingImport(QDialog):
# Define request properties (cookie, header)
request = QNetworkRequest(url)
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
request.setHeader(QNetworkRequest.KnownHeaders(0), "application/json")
if self.cookie:
request.setHeader(QNetworkRequest.CookieHeader, self.cookie)
request.setHeader(QNetworkRequest.KnownHeaders(4), self.cookie)
if 'Synthèse taxons' in self.source :
reply = self.network_manager.post(request,doc.toJson())
@ -297,9 +298,9 @@ class LoadingImport(QDialog):
def loading_finished(self,reply):
self._pending_downloads -= 1
print(reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))
print(reply.attribute(QNetworkRequest.Attribute(0)))
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200:
if reply.attribute(QNetworkRequest.Attribute(0)) != 200:
print(f"code: {reply.error()} message: {reply.errorString()}")
else:
data_request = reply.readAll().data().decode()
@ -399,9 +400,8 @@ class LoadingImport(QDialog):
fcString = json.dumps(data)
codec = QTextCodec.codecForName("UTF-8")
fields = QgsJsonUtils.stringToFields(fcString, codec)
feats = QgsJsonUtils.stringToFeatureList(fcString, fields, codec)
fields = QgsJsonUtils.stringToFields(fcString)
feats = QgsJsonUtils.stringToFeatureList(fcString, fields)
if self.api:
crs_api = QgsCoordinateReferenceSystem(self.api['geometry_srid'])