Compare commits

..
9 Commits
Author SHA1 Message Date
tlaveille 3719456f04 Optimisation et Compatibiliter Qt6 2025-07-23 11:59:48 +02:00
tlaveille bea31c870b Ouverture de Raster en base psql 2025-07-22 16:55:07 +02:00
tlaveille 2d04e34ed2 Ouverture de Raster en base psql 2025-07-22 16:52:32 +02:00
tlaveille ac070f866e Nouvelle version 2025-07-21 11:48:35 +02:00
tlaveille 4851339008 Fix Erreur sur QMessageBox 2025-07-21 11:27:11 +02:00
tlaveille f2d11a64e4 PyQt5 & PyQt6 2025-05-19 15:38:35 +02:00
tlaveille 4c52c85efb v1.7 2025-05-19 14:03:49 +02:00
tlaveille 3ef37aa696 Plugin PyQt5 and PyQt6 compatible & CenRa_Copie bug fix 2025-05-19 14:00:58 +02:00
tlaveille 3b0758ea5c v1.6 2025-04-11 10:28:16 +02:00
39 changed files with 896 additions and 394 deletions
+5 -3
View File
@@ -36,7 +36,9 @@ from .canvas_editor import AutoMap_Editor
from .style_invoke import AutoMap_Style from .style_invoke import AutoMap_Style
from .about_form import AboutDialog from .about_form import AboutDialog
from PyQt5.QtCore import *
from qgis.PyQt.QtCore import *
class PgAutoMap: class PgAutoMap:
def __init__(self): def __init__(self):
@@ -86,7 +88,7 @@ class PgAutoMap:
self.style_dock = AutoMap_Style() self.style_dock = AutoMap_Style()
if os.environ['USERNAME'] == 'tlaveille' or os.environ['USERNAME'] == 'lpoulin' or os.environ['USERNAME'] == 'rclement': if os.environ['USERNAME'] == 'tlaveille' or os.environ['USERNAME'] == 'lpoulin' or os.environ['USERNAME'] == 'rclement':
iface.addDockWidget(Qt.LeftDockWidgetArea, self.style_dock) iface.addDockWidget(Qt.DockWidgetArea(0x1), self.style_dock)
''' '''
if not self.locator_filter: if not self.locator_filter:
@@ -126,7 +128,7 @@ class PgAutoMap:
About dialog About dialog
""" """
dialog = AboutDialog(iface) dialog = AboutDialog(iface)
dialog.exec_() dialog.exec()
def open_help(): def open_help():
""" Open the online help. """ """ Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
+25 -20
View File
@@ -1,6 +1,6 @@
import logging import logging
import os import os
from PyQt5.QtCore import QSettings
from collections import namedtuple from collections import namedtuple
from enum import Enum from enum import Enum
from functools import partial from functools import partial
@@ -44,7 +44,7 @@ from qgis.core import (
from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime, Qt from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime, Qt
from qgis.PyQt.QtGui import QDesktopServices, QIcon, QColor, QFont, QMovie from qgis.PyQt.QtGui import QDesktopServices, QIcon, QColor, QFont, QMovie
from qgis.PyQt.QtPrintSupport import QPrinter from qgis.PyQt.QtPrintSupport import QPrinter
from qgis.PyQt.QtWebKitWidgets import QWebPage #from qgis.PyQt.QtWebKitWidgets import QWebPage
from qgis.PyQt.QtWidgets import ( from qgis.PyQt.QtWidgets import (
QDialog, QDialog,
QAction, QAction,
@@ -59,8 +59,12 @@ from qgis.PyQt.QtWidgets import (
QTableWidgetItem, QTableWidgetItem,
QVBoxLayout, QVBoxLayout,
) )
from PyQt5 import QtGui
from PyQt5 import QtWidgets from qgis.PyQt.QtCore import QSettings
from qgis.PyQt import QtGui
from qgis.PyQt import QtWidgets
from qgis.PyQt.QtXml import QDomDocument from qgis.PyQt.QtXml import QDomDocument
from qgis.utils import iface from qgis.utils import iface
import glob import glob
@@ -121,7 +125,7 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
for i in plugin_dir[1:]: for i in plugin_dir[1:]:
ix = ix+1 ix = ix+1
path = path+'/'+i path = path+'/'+i
self.tabWidget.setStyleSheet('background-image: url('+path+'/tools/bg/Capture.png);') #self.tabWidget.setStyleSheet('background-image: url('+path+'/tools/bg/Capture.png);')
self.verticalScrollBar.hide() self.verticalScrollBar.hide()
self.commandLinkButton.clicked.connect(self.chargement_qpt) self.commandLinkButton.clicked.connect(self.chargement_qpt)
@@ -526,7 +530,7 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
self.layout.addLayoutItem(title) self.layout.addLayoutItem(title)
titre = titre_layout_name titre = titre_layout_name
title.setText(titre) title.setText(titre)
title.setFont(QFont("Calibri", 15, QFont.Bold)) title.setFont(QFont("Calibri", 15, False))
title.setItemRotation(self.template_parameters['Titre_rotate']) title.setItemRotation(self.template_parameters['Titre_rotate'])
title.attemptResize(self.template_parameters['Titre_size']) title.attemptResize(self.template_parameters['Titre_size'])
title.attemptMove(self.template_parameters['Titre_locals']) title.attemptMove(self.template_parameters['Titre_locals'])
@@ -535,8 +539,8 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
title.setBackgroundColor(QColor(255, 255, 255, 130)) title.setBackgroundColor(QColor(255, 255, 255, 130))
self.layout.addItem(title) self.layout.addItem(title)
# title.adjustSizeToText() on n'utilise plutot setFixedSize pour pouvoir centrer le titre de manière plus optimale ici # title.adjustSizeToText() on n'utilise plutot setFixedSize pour pouvoir centrer le titre de manière plus optimale ici
title.setHAlign(Qt.AlignHCenter) title.setHAlign(Qt.AlignmentFlag(0x0004))
title.setVAlign(Qt.AlignVCenter) title.setVAlign(Qt.AlignmentFlag(0x0080))
## Ajout d'un sous titre à la mise en page ## Ajout d'un sous titre à la mise en page
@@ -554,8 +558,8 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
subtitle.setBackgroundEnabled(True) subtitle.setBackgroundEnabled(True)
subtitle.setBackgroundColor(QColor(255, 255, 255, 130)) subtitle.setBackgroundColor(QColor(255, 255, 255, 130))
self.layout.addItem(subtitle) self.layout.addItem(subtitle)
subtitle.setHAlign(Qt.AlignHCenter) subtitle.setHAlign(Qt.AlignmentFlag(0x0004))
subtitle.setVAlign(Qt.AlignVCenter) subtitle.setVAlign(Qt.AlignmentFlag(0x0080))
## Ajout du logo CEN NA en haut à gauche de la page ## Ajout du logo CEN NA en haut à gauche de la page
@@ -712,15 +716,15 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
credit_text = QgsLayoutItemLabel(self.layout) credit_text = QgsLayoutItemLabel(self.layout)
credit_text.setText(info[0]) credit_text.setText(info[0])
credit_text.setFont(QFont("Calibri", 9)) credit_text.setFont(QFont("Calibri", 9))
credit_text.setHAlign(Qt.AlignRight) credit_text.setHAlign(Qt.AlignmentFlag(0x0002))
credit_text.setVAlign(Qt.AlignVCenter) credit_text.setVAlign(Qt.AlignmentFlag(0x0080))
credit_text.setBackgroundEnabled(True) credit_text.setBackgroundEnabled(True)
credit_text.setBackgroundColor(QColor(255, 255, 255, 130)) credit_text.setBackgroundColor(QColor(255, 255, 255, 130))
credit_text2 = QgsLayoutItemLabel(self.layout) credit_text2 = QgsLayoutItemLabel(self.layout)
credit_text2.setText(info_text) credit_text2.setText(info_text)
credit_text2.setFont(QFont("Calibri", 9)) credit_text2.setFont(QFont("Calibri", 9))
credit_text2.setHAlign(Qt.AlignRight) credit_text2.setHAlign(Qt.AlignmentFlag(0x0002))
credit_text2.setVAlign(Qt.AlignVCenter) credit_text2.setVAlign(Qt.AlignmentFlag(0x0080))
credit_text.setItemRotation(self.template_parameters['Credit_rotate']) credit_text.setItemRotation(self.template_parameters['Credit_rotate'])
credit_text.attemptResize(self.template_parameters['Credit_size']) credit_text.attemptResize(self.template_parameters['Credit_size'])
credit_text.attemptMove(self.template_parameters['Credit_locals']) credit_text.attemptMove(self.template_parameters['Credit_locals'])
@@ -740,7 +744,8 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
logo_credit.setMode(QgsLayoutItemPicture.FormatRaster) logo_credit.setMode(QgsLayoutItemPicture.FormatRaster)
cur_x = self.template_parameters['Logo_2_locals'].x() cur_x = self.template_parameters['Logo_2_locals'].x()
logo_credit.attemptMove(self.template_parameters['Logo_2_locals']) logo_credit.attemptMove(self.template_parameters['Logo_2_locals'])
logo_credit.setPictureAnchor(4) print(logo_credit.pictureAnchor())
#logo_credit.setPictureAnchor(4)
self.template_parameters['Logo_2_locals'].setX(cur_x+(logo_div/len_item)) self.template_parameters['Logo_2_locals'].setX(cur_x+(logo_div/len_item))
logo_credit.setFixedSize(self.template_parameters['Logo_2_size']) logo_credit.setFixedSize(self.template_parameters['Logo_2_size'])
if logo_run[0] == ' ': if logo_run[0] == ' ':
@@ -760,17 +765,17 @@ class AutoMap_Editor(QDialog, EDITOR_CLASS):
if existing_layout: if existing_layout:
self.QMBquestion = QMessageBox() self.QMBquestion = QMessageBox()
self.QMBquestion.setWindowTitle(u"Attention !") self.QMBquestion.setWindowTitle(u"Attention !")
self.QMBquestion.setIcon(QMessageBox.Warning) self.QMBquestion.setIcon(QMessageBox.Icon.Warning)
self.QMBquestion.setText("Mise en page existante, la mise en page va être écrasée !") self.QMBquestion.setText("Mise en page existante, la mise en page va être écrasée !")
self.QMBquestion.setStandardButtons(QMessageBox.Yes|QMessageBox.No) self.QMBquestion.setStandardButtons(QMessageBox.StandardButton(0x00004000)|QMessageBox.StandardButton(0x00010000))
self.QMBquestion.addButton(QPushButton('Autre mise en page'),QMessageBox.AcceptRole) self.QMBquestion.addButton(QPushButton('Autre mise en page'),QMessageBox.ButtonRole(0))
self.QMBquestion = self.QMBquestion.exec() self.QMBquestion = self.QMBquestion.exec()
#if self.radioButton_12.isChecked() != 1: #if self.radioButton_12.isChecked() != 1:
if self.QMBquestion == QMessageBox.Yes: if self.QMBquestion == QMessageBox.StandardButton(0x00004000):
project.layoutManager().removeLayout(existing_layout) project.layoutManager().removeLayout(existing_layout)
result = project.layoutManager().addLayout(self.layout) result = project.layoutManager().addLayout(self.layout)
if self.QMBquestion == QMessageBox.AcceptRole: elif self.QMBquestion != QMessageBox.StandardButton(0x00010000):
LayoutCOUNT=0 LayoutCOUNT=0
arrayManager = [] arrayManager = []
for AddArrayManager in project.layoutManager().layouts(): for AddArrayManager in project.layoutManager().layouts():
+3 -2
View File
@@ -5,8 +5,9 @@
[general] [general]
name=CenRa_AutoMap name=CenRa_AutoMap
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=CenRa_AutoMap description=CenRa_AutoMap
version=1.6 version=2.0
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -21,7 +22,7 @@ tracker=https://gitea.cenra-outils.org/api/v1/repos/CEN-RA/Plugin_QGIS/issues
hasProcessingProvider=no hasProcessingProvider=no
# Uncomment the following line and add your changelog: # Uncomment the following line and add your changelog:
changelog=<h2>CenRa_AUTOMAP:</h2></br><p><h3>09/04/2025 - Version 1.6: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 1.5: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 1.4: </h3> - Mise a jour de securite.</p></br><p><h3>20/03/2025 - Version 1.3: </h3> - Fenêtre redimensionnable avec déplaçable avec la mollette sourit.</p></br><p><h3>25/02/2025 - Version 1.2: </h3> - DockWidget pour ouverture de couche avec theme.</p></br><p><h3>28/01/2025 - Version 1.1: </h3> - Multi-Composeur pris en charge.</p></br><p><h3>27/01/2025 - Version 1.0: </h3> - Version releases.</br> - Ajoute un message d'avertissement au moment d'écraser la mise en page.</br> - Ajoute prénom et nom dans la réalisation.</br> - Utilisation de Calibri.</p></br><p><h3>13/01/2025 - Version 0.1.10: </h3> - Correctif.</p></br><p><h3>07/01/2025 - Version 0.1.9: </h3> - ByPass du certif ssl ci erreur.</p></br><p><h3>19/12/2024 - Version 0.1.8: </h3> - Nouvelle mise en page.</br> - Incrémentation automatique de nouveau modele de mise en page. </br> - Correctif de bug.</p></br><p><h3>21/10/2024 - Version 0.1.7: </h3> - Epurations du code.</p></br><p><h3>07/10/2024 - Version 0.1.6: </h3> - Option de bibliotheque de logo custome.</p></br><p><h3>03/10/2024 - Version 0.1.5: </h3> - Remonte la fênetre dans la pille.</br> - Gestion du nombre de colonne dans la légend.</br></p></br><p><h3>02/10/2024 - Version 0.1.4: </h3> - Mise en page plein écrant.</br></p></br><p><h3>01/10/2024 - Version 0.1.3: </h3> - Récupération du titre et sous-titre pour mise en page existente.</br> - Integration de bibliotheque de logo.</br> - Integration de gestionaire pour les source de donnée.</br> - Mise en place d'une bar d'echelle adaptative. </br></p></br><p><h3>30/09/2024 - Version 0.1.2: </h3> - Activation du thème. </br> - Ajouter une carte de suivie. </br><p></br><h3>27/09/2024 - Version 0.1.1: </h3> - Ajout d'une liste déroulante pour les sources de données. </br>- Bouton pour ajouter des fonts de carte customisés. </br>- Fonctionnalité de génération d'atlas. </p></br><p><h3>26/09/2024 - Version 0.1.0: </h3> - Lancement du plugin CenRa_AutoMap avec une seul mise en page. </p></br> changelog=<h2>CenRa_AUTOMAP:</h2></br><p><h3>19/05/2025 - Version 2.0: </h3> - Compatible PyQt5 et PyQt6</p></br><p><h3>11/04/2025 - Version 1.7: </h3> - Correctif d'orthographe.</p></br><p><h3>09/04/2025 - Version 1.6: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 1.5: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 1.4: </h3> - Mise a jour de securite.</p></br><p><h3>20/03/2025 - Version 1.3: </h3> - Fenêtre redimensionnable avec déplaçable avec la mollette sourit.</p></br><p><h3>25/02/2025 - Version 1.2: </h3> - DockWidget pour ouverture de couche avec theme.</p></br><p><h3>28/01/2025 - Version 1.1: </h3> - Multi-Composeur pris en charge.</p></br><p><h3>27/01/2025 - Version 1.0: </h3> - Version releases.</br> - Ajoute un message d'avertissement au moment d'écraser la mise en page.</br> - Ajoute prénom et nom dans la réalisation.</br> - Utilisation de Calibri.</p></br><p><h3>13/01/2025 - Version 0.1.10: </h3> - Correctif.</p></br><p><h3>07/01/2025 - Version 0.1.9: </h3> - ByPass du certif ssl ci erreur.</p></br><p><h3>19/12/2024 - Version 0.1.8: </h3> - Nouvelle mise en page.</br> - Incrémentation automatique de nouveau modele de mise en page. </br> - Correctif de bug.</p></br><p><h3>21/10/2024 - Version 0.1.7: </h3> - Epurations du code.</p></br><p><h3>07/10/2024 - Version 0.1.6: </h3> - Option de bibliotheque de logo custome.</p></br><p><h3>03/10/2024 - Version 0.1.5: </h3> - Remonte la fênetre dans la pille.</br> - Gestion du nombre de colonne dans la légend.</br></p></br><p><h3>02/10/2024 - Version 0.1.4: </h3> - Mise en page plein écrant.</br></p></br><p><h3>01/10/2024 - Version 0.1.3: </h3> - Récupération du titre et sous-titre pour mise en page existente.</br> - Integration de bibliotheque de logo.</br> - Integration de gestionaire pour les source de donnée.</br> - Mise en place d'une bar d'echelle adaptative. </br></p></br><p><h3>30/09/2024 - Version 0.1.2: </h3> - Activation du thème. </br> - Ajouter une carte de suivie. </br><p></br><h3>27/09/2024 - Version 0.1.1: </h3> - Ajout d'une liste déroulante pour les sources de données. </br>- Bouton pour ajouter des fonts de carte customisés. </br>- Fonctionnalité de génération d'atlas. </p></br><p><h3>26/09/2024 - Version 0.1.0: </h3> - Lancement du plugin CenRa_AutoMap avec une seul mise en page. </p></br>
# Tags are comma separated with spaces allowed # Tags are comma separated with spaces allowed
tags=python tags=python
+6 -2
View File
@@ -1,6 +1,5 @@
import logging import logging
import os import os
from PyQt5.QtCore import QSettings
from collections import namedtuple from collections import namedtuple
from enum import Enum from enum import Enum
from functools import partial from functools import partial
@@ -45,7 +44,6 @@ from qgis.core import (
from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime, Qt from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime, Qt
from qgis.PyQt.QtGui import QDesktopServices, QIcon, QColor, QFont, QMovie from qgis.PyQt.QtGui import QDesktopServices, QIcon, QColor, QFont, QMovie
from qgis.PyQt.QtPrintSupport import QPrinter from qgis.PyQt.QtPrintSupport import QPrinter
from qgis.PyQt.QtWebKitWidgets import QWebPage
from qgis.PyQt.QtWidgets import ( from qgis.PyQt.QtWidgets import (
QDockWidget, QDockWidget,
QAction, QAction,
@@ -61,8 +59,14 @@ from qgis.PyQt.QtWidgets import (
QVBoxLayout, QVBoxLayout,
) )
import psycopg2 import psycopg2
try:
from PyQt5.QtCore import QSettings
from PyQt5 import QtGui from PyQt5 import QtGui
from PyQt5 import QtWidgets from PyQt5 import QtWidgets
except:
from PyQt6.QtCore import QSettings
from PyQt6 import QtGui
from PyQt6 import QtWidgets
from qgis.PyQt.QtXml import QDomDocument from qgis.PyQt.QtXml import QDomDocument
from qgis.utils import iface from qgis.utils import iface
import glob import glob
+3 -18
View File
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+2 -2
View File
@@ -24,7 +24,7 @@ pyperclip()
from .copie_editor import Copie_Editor from .copie_editor import Copie_Editor
from .about_form import AboutDialog from .about_form import AboutDialog
from PyQt5.QtCore import * from qgis.PyQt.QtCore import *
class PgCopie: class PgCopie:
def __init__(self): def __init__(self):
@@ -78,7 +78,7 @@ class PgCopie:
About dialog About dialog
""" """
dialog = AboutDialog(iface) dialog = AboutDialog(iface)
dialog.exec_() dialog.exec()
def open_help(): def open_help():
""" Open the online help. """ """ Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
+13 -5
View File
@@ -9,9 +9,11 @@ import qgis
from qgis.PyQt.QtCore import QSettings from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog
from qgis.PyQt.QtGui import QIcon from qgis.PyQt.QtGui import QIcon
from PyQt5.QtCore import *
from PyQt5.QtGui import * from qgis.PyQt.QtCore import *
from PyQt5 import QtGui from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import * from qgis.core import *
from qgis.core import QgsDataSourceUri from qgis.core import QgsDataSourceUri
import os import os
@@ -114,7 +116,7 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
# show the dialog # show the dialog
self.show() self.show()
# Run the dialog event loop # Run the dialog event loop
result = self.exec_() result = self.exec()
# See if OK was pressed # See if OK was pressed
if result: if result:
#******************************debut script********************************* #******************************debut script*********************************
@@ -163,7 +165,6 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
else : else :
SQL_table = "CREATE TABLE " + schema + "." + tablename + " AS SELECT * FROM " + source_schema + "." + source_tablename SQL_table = "CREATE TABLE " + schema + "." + tablename + " AS SELECT * FROM " + source_schema + "." + source_tablename
SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)" SQL_pkey = "ALTER TABLE " + schema + "." + tablename + " ADD CONSTRAINT " + tablename + "_pkey" + " PRIMARY KEY (gid)"
SQL_sequence_01 = "CREATE SEQUENCE " + schema + "." + tablename + "_gid_seq" + " INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;" SQL_sequence_01 = "CREATE SEQUENCE " + schema + "." + tablename + "_gid_seq" + " INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;"
SQL_sequence_02 = "ALTER TABLE " + schema + "." + tablename + " ALTER COLUMN gid SET DEFAULT nextval(\'" + schema + "." + tablename + "_gid_seq\'::regclass);" SQL_sequence_02 = "ALTER TABLE " + schema + "." + tablename + " ALTER COLUMN gid SET DEFAULT nextval(\'" + schema + "." + tablename + "_gid_seq\'::regclass);"
@@ -183,6 +184,13 @@ class Copie_Editor(QDialog, EDITOR_CLASS):
cur.execute(SQL_sequence_03) cur.execute(SQL_sequence_03)
cur.execute(SQL_sequence_04) cur.execute(SQL_sequence_04)
RETURNE = "SELECT pg_get_serial_sequence('"+schema + "."+ tablename+"','gid')"
cur.execute(RETURNE)
sequence_name = cur.fetchone()[0]
print(sequence_name)
SQL_GRANT_TABLE="GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_qgis;GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON "+schema+"."+tablename+" TO grp_sig;GRANT ALL ON SEQUENCE "+sequence_name+" TO grp_qgis;"
cur.execute(SQL_GRANT_TABLE)
if layer.wkbType() == QgsWkbTypes.PointGeometry : if layer.wkbType() == QgsWkbTypes.PointGeometry :
cur.execute(SQL_trigger_coordonnees) cur.execute(SQL_trigger_coordonnees)
+3 -2
View File
@@ -9,8 +9,9 @@
[general] [general]
name=CenRA_COPIE name=CenRA_COPIE
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=Permet la copie d'une table dans une base PostGis description=Permet la copie d'une table dans une base PostGis
version=2.4 version=3.0
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -19,7 +20,7 @@ email=si_besoin@cen-rhonealpes.fr
# Recommended items: # Recommended items:
# Uncomment the following line and add your changelog: # Uncomment the following line and add your changelog:
changelog=<h2>CenRa_COPIE:</h2></br><p><h3>09/04/2025 - Version 2.4: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 2.3: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 2.2: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 2.1: </h3> - ByPass du certif ssl ci erreur.</br></p><p><h3>22/10/2024 - Version 2:</h3>- Refonte du code.</p></br><p><h3>13/09/2024 - Version 1.5:</h3>- Ajoute d'un changelog et vérification de mise à jour.</p> changelog=<h2>CenRa_COPIE:</h2></br><p><h3>19/05/2025 - Version 3.0: </h3> - Compatible PyQt5 et PyQt6</p></br><p><h3>11/04/2025 - Version 2.5: </h3> - Correctif de bug.</p></br><p><h3>09/04/2025 - Version 2.4: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 2.3: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 2.2: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 2.1: </h3> - ByPass du certif ssl ci erreur.</br></p><p><h3>22/10/2024 - Version 2:</h3>- Refonte du code.</p></br><p><h3>13/09/2024 - Version 1.5:</h3>- Ajoute d'un changelog et vérification de mise à jour.</p>
# Tags are comma separated with spaces allowed # Tags are comma separated with spaces allowed
tags=cenra, database, table tags=cenra, database, table
+3 -18
View File
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+3 -2
View File
@@ -24,7 +24,8 @@ pyperclip()
from .flux_editor import Flux_Editor from .flux_editor import Flux_Editor
from .about_form import AboutDialog from .about_form import AboutDialog
from PyQt5.QtCore import * from qgis.PyQt.QtCore import *
class PgFlux: class PgFlux:
def __init__(self): def __init__(self):
@@ -78,7 +79,7 @@ class PgFlux:
About dialog About dialog
""" """
dialog = AboutDialog(iface) dialog = AboutDialog(iface)
dialog.exec_() dialog.exec()
def open_help(): def open_help():
""" Open the online help. """ """ Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
+60 -10
View File
@@ -11,9 +11,15 @@ from qgis.PyQt.QtCore import QSettings
from qgis.PyQt import QtWidgets from qgis.PyQt import QtWidgets
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog
from qgis.PyQt.QtGui import QIcon from qgis.PyQt.QtGui import QIcon
try:
from PyQt5.QtCore import * from PyQt5.QtCore import *
from PyQt5.QtGui import * from PyQt5.QtGui import *
from PyQt5 import QtGui from PyQt5 import QtGui
except:
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6 import QtGui
from qgis.core import * from qgis.core import *
from qgis.core import QgsDataSourceUri from qgis.core import QgsDataSourceUri
from qgis.PyQt.QtWidgets import ( from qgis.PyQt.QtWidgets import (
@@ -196,8 +202,8 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
self.commandLinkButton.setIcon(QtGui.QIcon(resources_path('ui','arrow-bottom.png'))) self.commandLinkButton.setIcon(QtGui.QIcon(resources_path('ui','arrow-bottom.png')))
self.commandLinkButton_2.setIcon(QtGui.QIcon(resources_path('ui','arrow-up.png'))) self.commandLinkButton_2.setIcon(QtGui.QIcon(resources_path('ui','arrow-up.png')))
self.tableWidget.setSelectionBehavior(QTableWidget.SelectRows) #self.tableWidget.setSelectionBehavior(QTableWidget.selectRow)
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger(0))
self.toolButton.setIcon(QtGui.QIcon(resources_path('ui','find.png'))) self.toolButton.setIcon(QtGui.QIcon(resources_path('ui','find.png')))
self.comboBox_2.addItem("SIG") self.comboBox_2.addItem("SIG")
self.comboBox_2.addItem('REF') self.comboBox_2.addItem('REF')
@@ -213,7 +219,7 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
self.toolButton.clicked.connect(self.getCanevas) self.toolButton.clicked.connect(self.getCanevas)
layout = QVBoxLayout() layout = QVBoxLayout()
self.lineEdit.textChanged.connect(self.filtre_dynamique) self.lineEdit.textChanged.connect(self.filtre_dynamique)
self.viewer.titleChanged.connect(self.NewTitle) self.viewer.textChanged.connect(self.NewTitle)
layout.addWidget(self.lineEdit) layout.addWidget(self.lineEdit)
self.viewer.hide() self.viewer.hide()
self.DeBUG.addItem('') self.DeBUG.addItem('')
@@ -392,7 +398,7 @@ var Travaux = L.geoJSON(TravauxJSON,{
# show the dialog # show the dialog
self.show() self.show()
# Run the dialog event loop # Run the dialog event loop
result = self.exec_() result = self.exec()
# See if OK was pressed # See if OK was pressed
if result: if result:
# Do something useful here - delete the line containing pass and # Do something useful here - delete the line containing pass and
@@ -416,7 +422,7 @@ var Travaux = L.geoJSON(TravauxJSON,{
# show the dialog # show the dialog
self.show() self.show()
# Run the dialog event loop # Run the dialog event loop
result = self.exec_() result = self.exec()
# See if OK was pressed # See if OK was pressed
if result: if result:
# Do something useful here - delete the line containing pass and # Do something useful here - delete the line containing pass and
@@ -449,6 +455,13 @@ var Travaux = L.geoJSON(TravauxJSON,{
cur.execute(custom_list) cur.execute(custom_list)
list_schema = cur.fetchall() list_schema = cur.fetchall()
SQLraster = """SELECT concat(r_table_schema,'.',r_table_name) from public.raster_columns; """
cur.execute(SQLraster)
list_raster = cur.fetchall()
RasterList = []
for rasterFind in list_raster:
RasterList.append(rasterFind[0])
self.tableWidget.setRowCount(len(list_schema)) self.tableWidget.setRowCount(len(list_schema))
self.tableWidget.setColumnCount(3) self.tableWidget.setColumnCount(3)
i=0 i=0
@@ -477,11 +490,26 @@ var Travaux = L.geoJSON(TravauxJSON,{
schema_name=str(value[0]) schema_name=str(value[0])
table_name=str(value[1]) table_name=str(value[1])
elif type_val != '00' and type_val != '01' and type_val != '07' and type_val != '26' and type_val != '42' and type_val != '69' and type_val != 'ra': elif type_val != '00' and type_val != '01' and type_val != '07' and type_val != '26' and type_val != '42' and type_val != '69' and type_val != 'ra':
if dbtype == refdb:
if (schema_name+'.'+table_name) in RasterList:
SVG = 'mIconRaster.svg'
else:
SVG = 'mIconWfs.svg'
itemIcon = QTableWidgetItem()
icon = QIcon()
icon.addPixmap(QtGui.QPixmap(resources_path('icons',SVG)), QIcon.Mode(0), QIcon.State(1))
itemIcon.setIcon(icon)
else:
type_val='agregation' type_val='agregation'
schema_name=str(value[0]) schema_name=str(value[0])
table_name=str(value[1]) table_name=str(value[1])
item = QTableWidgetItem(type_val) item = QTableWidgetItem(type_val)
if dbtype == refdb:
self.tableWidget.setItem(i,0,itemIcon)
else:
self.tableWidget.setCellWidget(i,0,None)
self.tableWidget.setItem(i,0,item) self.tableWidget.setItem(i,0,item)
item = QTableWidgetItem(schema_name) item = QTableWidgetItem(schema_name)
self.tableWidget.setItem(i,1,item) self.tableWidget.setItem(i,1,item)
@@ -498,6 +526,7 @@ var Travaux = L.geoJSON(TravauxJSON,{
selected_items = self.tableWidget.selectedItems() selected_items = self.tableWidget.selectedItems()
# Assuming you want to compare items in the first column for uniqueness # Assuming you want to compare items in the first column for uniqueness
svgTake = (selected_items[2].tableWidget().cellWidget(0,0))
new_item_text = selected_items[2].text() new_item_text = selected_items[2].text()
if not self.item_already_exists(new_item_text): if not self.item_already_exists(new_item_text):
@@ -516,7 +545,7 @@ var Travaux = L.geoJSON(TravauxJSON,{
def item_already_exists(self, new_item_text): def item_already_exists(self, new_item_text):
# Assuming you want to compare items in the first column for uniqueness # Assuming you want to compare items in the first column for uniqueness
existing_items = self.tableWidget_2.findItems(new_item_text, QtCore.Qt.MatchExactly) existing_items = self.tableWidget_2.findItems(new_item_text, QtCore.Qt.MatchFlag(0))
# Check if there are any existing items with the same text in the first column # Check if there are any existing items with the same text in the first column
return len(existing_items) > 0 return len(existing_items) > 0
@@ -529,11 +558,11 @@ var Travaux = L.geoJSON(TravauxJSON,{
self.QMBquestion = QMessageBox.question(iface.mainWindow(), u"Attention !", self.QMBquestion = QMessageBox.question(iface.mainWindow(), u"Attention !",
"Le nombre de flux à charger en une seule fois est limité à 5 pour des questions de performances. Souhaitez vous tout de même charger les " + str( "Le nombre de flux à charger en une seule fois est limité à 5 pour des questions de performances. Souhaitez vous tout de même charger les " + str(
self.tableWidget_2.rowCount()) + " flux sélectionnés ? (risque de plantage de QGIS)", self.tableWidget_2.rowCount()) + " flux sélectionnés ? (risque de plantage de QGIS)",
QMessageBox.Yes | QMessageBox.No) QMessageBox.StandardButton(0x00004000)|QMessageBox.StandardButton(0x00010000))
if self.QMBquestion == QMessageBox.Yes: if self.QMBquestion == QMessageBox.StandardButton(0x00004000):
self.chargement_flux() self.chargement_flux()
if self.QMBquestion == QMessageBox.No: if self.QMBquestion == QMessageBox.StandardButton(0x00001000):
print("Annulation du chargement des couches") print("Annulation du chargement des couches")
if self.tableWidget_2.rowCount() <= 5: if self.tableWidget_2.rowCount() <= 5:
@@ -541,6 +570,13 @@ var Travaux = L.geoJSON(TravauxJSON,{
def openPostGIS(self,schema,table): def openPostGIS(self,schema,table):
uri = QgsDataSourceUri() uri = QgsDataSourceUri()
uri.setConnection(host ,port ,sigdb ,user ,mdp) uri.setConnection(host ,port ,sigdb ,user ,mdp)
if (schema+'.'+table) in RasterList:
uri.setDataSource(schema, table, "rast")
uri.setKeyColumn('rid')
uri.setSrid('2154')
layer = QgsRasterLayer(uri.uri(), table, "postgresraster")
else:
uri.setDataSource(schema, table, "geom") uri.setDataSource(schema, table, "geom")
uri.setKeyColumn('gid') uri.setKeyColumn('gid')
uri.setSrid('2154') uri.setSrid('2154')
@@ -568,6 +604,13 @@ var Travaux = L.geoJSON(TravauxJSON,{
def displayOnWindows(type, uri, name): def displayOnWindows(type, uri, name):
p = [] p = []
SQLraster = """SELECT concat(r_table_schema,'.',r_table_name) from public.raster_columns; """
cur.execute(SQLraster)
list_raster = cur.fetchall()
RasterList = []
for rasterFind in list_raster:
RasterList.append(rasterFind[0])
for row in range(0, self.tableWidget_2.rowCount()): for row in range(0, self.tableWidget_2.rowCount()):
color_rgba = 855030089 color_rgba = 855030089
if self.tableWidget_2.item(row, 0).background().color().rgba() != 855030089: if self.tableWidget_2.item(row, 0).background().color().rgba() != 855030089:
@@ -590,6 +633,13 @@ var Travaux = L.geoJSON(TravauxJSON,{
# nom du schéma à remplacer: "hydrographie" à supprimer et mettre "couches_collaboratives" lorsqu'on aura regroupé les couches à modifier dans un même schéma # nom du schéma à remplacer: "hydrographie" à supprimer et mettre "couches_collaboratives" lorsqu'on aura regroupé les couches à modifier dans un même schéma
if (schema+'.'+table) in RasterList:
uri.setDataSource(schema, table, "rast")
uri.setKeyColumn('rid')
uri.setSrid('2154')
layer = QgsRasterLayer(uri.uri(), table, "postgresraster")
QgsProject.instance().addMapLayer(layer)
else:
uri.setDataSource(schema, table, "geom") uri.setDataSource(schema, table, "geom")
uri.setKeyColumn('gid') uri.setKeyColumn('gid')
@@ -621,7 +671,7 @@ var Travaux = L.geoJSON(TravauxJSON,{
# Ajout de la couche au canevas QGIS # Ajout de la couche au canevas QGIS
QgsProject.instance().addMapLayer(layer) QgsProject.instance().addMapLayer(layer)
else: else:
self.QMBquestion = QMessageBox.question(iface.mainWindow(), u"Attention !","La couche «" + str(self.tableWidget_2.item(row,1).text()) +' '+ str(self.tableWidget_2.item(row,2).text()) + "» ne ce trouve pas dans cette BD !",QMessageBox.Yes) self.QMBquestion = QMessageBox.question(iface.mainWindow(), u"Attention !","La couche «" + str(self.tableWidget_2.item(row,1).text()) +' '+ str(self.tableWidget_2.item(row,2).text()) + "» ne ce trouve pas dans cette BD !",QMessageBox.StandardButton(0x00004000))
def combobox_custom(self): def combobox_custom(self):
if dbtype == sigdb: if dbtype == sigdb:
self.toolButton.setEnabled(1) self.toolButton.setEnabled(1)
+3 -2
View File
@@ -5,8 +5,9 @@
[general] [general]
name=CenRa_FLUX name=CenRa_FLUX
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=Permet d'ouvrire une table dans la base PostGis description=Permet d'ouvrire une table dans la base PostGis
version=2.9 version=3.2
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -32,7 +33,7 @@ icon=icon.png
# experimental flag # experimental flag
experimental=False experimental=False
changelog=<h2>CenRa_FLUX:</h2></br><p><h3>09/04/2025 - Version 2.9: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 2.8: </h3> - Optimisation pour le TT.</p></br><p><h3>07/04/2025 - Version 2.7: </h3> - mode debug.</p></br><p><h3>03/04/2025 - Version 2.6: </h3> - Mise a jour de securite.</p></br><p><h3>20/03/2025 - Version 2.5: </h3> - Visualisation distincte des couches ne se trouvant pas dans l'antenne.</p></br><p><h3>13/02/2025 - Version 2.4: </h3> - Ajoute redimensionnement et déplacement mollette.</p></br><p><h3>05/02/2025 - Version 2.3: </h3> - Bouton de visualisation des couches se trouvent uniquement dans le canva de la carte.</p></br><p><h3>07/01/2025 - Version 2.2: </h3> - ByPass du certif ssl ci erreur.</p></br><p><h3>22/10/2024 - Version 2.1:</h3> - Correctif de bug.</br> - Evolution de la limit de 3 à 5. </br></p></br><p><h3>22/10/2024 - Version 2.0:</h3> - Reformatage du code.</br></p></br><p><h3>03/10/2024 - Version 1.14:</h3> - Remonte la fênetre dans la pille.</br></p><p><h3>13/09/2024 - Version 1.13:</h3>- MAJ sur le lien du changelog</br>- Bug-fix: Ouvre MultiPolygone et Polygon séparément.</p></br><p><h3>10/09/2024 - Version 1.11:</h3>- Ouverture de table contenant plusieurs géométries.</p></br><p><h3>26/08/2024 - Version 1.10:</h3>- Ajoute d'un changelog et vérification de mise à jour.</p> changelog=<h2>CenRa_FLUX:</h2></br><p><h3>22/07/2025 - Version 3.2: </h3> - Visualisation des format raster et vecteur dans REF.</p></br><p><h3>21/07/2025 - Version 3.1: </h3> - Bug fix pour l'ouverture de plus de 5 couches.</p></br><p><h3>19/05/2025 - Version 3.0: </h3> - Compatible PyQt5 et PyQt6.</p></br><p><h3>09/04/2025 - Version 2.9: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 2.8: </h3> - Optimisation pour le TT.</p></br><p><h3>07/04/2025 - Version 2.7: </h3> - mode debug.</p></br><p><h3>03/04/2025 - Version 2.6: </h3> - Mise a jour de securite.</p></br><p><h3>20/03/2025 - Version 2.5: </h3> - Visualisation distincte des couches ne se trouvant pas dans l'antenne.</p></br><p><h3>13/02/2025 - Version 2.4: </h3> - Ajoute redimensionnement et déplacement mollette.</p></br><p><h3>05/02/2025 - Version 2.3: </h3> - Bouton de visualisation des couches se trouvent uniquement dans le canva de la carte.</p></br><p><h3>07/01/2025 - Version 2.2: </h3> - ByPass du certif ssl ci erreur.</p></br><p><h3>22/10/2024 - Version 2.1:</h3> - Correctif de bug.</br> - Evolution de la limit de 3 à 5. </br></p></br><p><h3>22/10/2024 - Version 2.0:</h3> - Reformatage du code.</br></p></br><p><h3>03/10/2024 - Version 1.14:</h3> - Remonte la fênetre dans la pille.</br></p><p><h3>13/09/2024 - Version 1.13:</h3>- MAJ sur le lien du changelog</br>- Bug-fix: Ouvre MultiPolygone et Polygon séparément.</p></br><p><h3>10/09/2024 - Version 1.11:</h3>- Ouverture de table contenant plusieurs géométries.</p></br><p><h3>26/08/2024 - Version 1.10:</h3>- Ajoute d'un changelog et vérification de mise à jour.</p>
# deprecated flag (applies to the whole plugin, not just a single version) # deprecated flag (applies to the whole plugin, not just a single version)
deprecated=False deprecated=False
+230
View File
@@ -0,0 +1,230 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg5692"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="mActionAddRasterLayer.svg"
inkscape:export-filename="/home/denis/Desktop/oracle.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<title
id="title2829">GIS icon theme 0.2</title>
<defs
id="defs5694">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 16 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="32 : 16 : 1"
inkscape:persp3d-origin="16 : 10.666667 : 1"
id="perspective3486" />
<inkscape:perspective
id="perspective3496"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3600"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective7871"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective8710"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective9811"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4762"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.539029"
inkscape:cx="0.66325675"
inkscape:cy="15.235866"
inkscape:current-layer="layer2"
showgrid="true"
inkscape:grid-bbox="true"
inkscape:document-units="px"
borderlayer="false"
inkscape:window-width="1855"
inkscape:window-height="1056"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:snap-global="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-object-midpoints="false"
inkscape:snap-grids="true"
inkscape:object-paths="false">
<inkscape:grid
type="xygrid"
id="grid5700"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
dotted="true"
originx="2.5px"
originy="2.5px" />
</sodipodi:namedview>
<metadata
id="metadata5697">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>GIS icon theme 0.2</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Robert Szczepanek</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>Robert Szczepanek</dc:title>
</cc:Agent>
</dc:rights>
<dc:subject>
<rdf:Bag>
<rdf:li>GIS icons</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:coverage>GIS icons</dc:coverage>
<dc:description>http://robert.szczepanek.pl/</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer"
style="display:inline"
transform="translate(0,-8)">
<rect
style="fill:#6e97c4;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect6419"
width="7.999999"
height="7.999999"
x="7.9999986"
y="7.9999995" />
<rect
style="fill:#2b3b4d;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-6"
width="7.999999"
height="7.999999"
x="16.000002"
y="7.9999995" />
<rect
style="fill:#2b3b4d;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-6-9"
width="7.999999"
height="7.999999"
x="7.9999986"
y="16"
inkscape:transform-center-x="-3.9999992"
inkscape:transform-center-y="-5.3333316" />
<rect
style="fill:#6d97c4;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-0"
width="7.999999"
height="7.999999"
x="16.000002"
y="16" />
<rect
style="fill:#2d3e4d;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-6-7"
width="7.999999"
height="7.999999"
x="-4.7683716e-07"
y="7.9999995" />
<rect
style="fill:#6d97c4;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-3"
width="7.999999"
height="7.999999"
x="-4.7683716e-07"
y="16" />
<rect
style="fill:#6d97c4;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-5"
width="7.999999"
height="7.999999"
x="7.9999986"
y="24.000002" />
<rect
style="fill:#2b3b4d;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
id="rect6419-6-6"
width="7.999999"
height="7.999999"
x="-4.7683716e-07"
y="24.000002" />
<rect
style="fill:none;stroke:none"
id="rect6554"
width="23.999998"
height="23.999998"
x="-4.7683716e-07"
y="7.9999995" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

+312
View File
@@ -0,0 +1,312 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg5692"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="mActionAddWfsLayer.svg"
inkscape:export-filename="/media/home1/robert/svn/graphics/trunk/toolbar-icons/32x32/layer-vector.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<title
id="title2829">GIS icon theme 0.2</title>
<defs
id="defs5694">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 16 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="32 : 16 : 1"
inkscape:persp3d-origin="16 : 10.666667 : 1"
id="perspective3486" />
<inkscape:perspective
id="perspective3496"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3600"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective7871"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective8710"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective9811"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4762"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective4762-4" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective9811-2" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective8710-0" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective7871-7" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3600-9" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
id="perspective3496-4" />
<inkscape:perspective
id="perspective3486-0"
inkscape:persp3d-origin="16 : 10.666667 : 1"
inkscape:vp_z="32 : 16 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 16 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3952"
inkscape:persp3d-origin="12 : 8 : 1"
inkscape:vp_z="24 : 12 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 12 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="16"
inkscape:cx="-0.094554179"
inkscape:cy="17.125349"
inkscape:current-layer="layer2"
showgrid="true"
inkscape:grid-bbox="true"
inkscape:document-units="px"
borderlayer="false"
inkscape:window-width="1855"
inkscape:window-height="1056"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:snap-global="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-grids="false"
inkscape:object-paths="false"
inkscape:snap-bbox="true"
inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid5700"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
dotted="true"
originx="2.5px"
originy="2.5px" />
</sodipodi:namedview>
<metadata
id="metadata5697">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>GIS icon theme 0.2</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Robert Szczepanek</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>Robert Szczepanek</dc:title>
</cc:Agent>
</dc:rights>
<dc:subject>
<rdf:Bag>
<rdf:li>GIS icons</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:coverage>GIS icons</dc:coverage>
<dc:description>http://robert.szczepanek.pl/</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer"
style="display:inline"
transform="translate(0,-8)">
<g
id="g3028"
transform="matrix(0.75161647,0,0,0.75161647,-0.02586348,9.4769448)">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3775"
d="m 16.000001,1.0775438 c 9.467477,4.6992805 8.114981,22.3215822 0,25.8460432"
style="fill:none;stroke:#749fcf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path3773"
d="m 1.1225356,14.000566 29.7549294,0"
style="fill:none;stroke:#749fcf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3773-1"
d="m 2.9484075,6.9340877 c 7.5739815,1.0094969 18.3939565,1.0094969 25.9679385,0"
style="fill:none;stroke:#749fcf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3773-4"
d="m 2.9484075,21.067042 c 7.5739815,-1.009496 18.3939565,-1.009496 25.9679385,0"
style="fill:none;stroke:#749fcf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3777"
d="m 16.000001,1.0775438 c -8.1149812,3.5244605 -9.467478,21.1467632 0,25.8460432"
style="fill:none;stroke:#749fcf;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
transform="matrix(1.2562074,0,0,1.0871977,22.465232,-1.0129089)"
d="m 6.9656949,13.809332 c 0,6.713955 -5.4228716,12.15669 -12.1123228,12.15669 -6.6894511,0 -12.1123231,-5.442735 -12.1123231,-12.15669 0,-6.7139549 5.422872,-12.1566907 12.1123231,-12.1566907 6.6894512,0 12.1123228,5.4427358 12.1123228,12.1566907 z"
sodipodi:ry="12.156691"
sodipodi:rx="12.112323"
sodipodi:cy="13.809332"
sodipodi:cx="-5.1466279"
id="path3003"
style="fill:none;stroke:#5488c4;stroke-width:1.28353083;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cccc"
id="path2960"
d="M 7.3400991,7.2779254 13.185401,22.026434 19.613856,7.4154701 24.89957,7.3945152"
style="color:#000000;fill:none;stroke:#172739;stroke-width:1.29794168;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:connector-curvature="0" />
<path
transform="matrix(1.5475161,0,0,1.6212881,1.923793,-12.988176)"
d="m 4.5,12.5 c 0,0.552285 -0.4477153,1 -1,1 -0.5522847,0 -1,-0.447715 -1,-1 0,-0.552285 0.4477153,-1 1,-1 0.5522847,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="12.5"
sodipodi:cx="3.5"
id="path2958"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#172739;stroke-width:0.94698602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.5839392,0,0,1.6212881,7.641614,1.7603321)"
d="m 4.5,12.5 c 0,0.552285 -0.4477153,1 -1,1 -0.5522847,0 -1,-0.447715 -1,-1 0,-0.552285 0.4477153,-1 1,-1 0.5522847,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="12.5"
sodipodi:cx="3.5"
id="path2958-0"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#172739;stroke-width:0.93603462;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.5475161,0,0,1.6212881,14.034218,-12.884972)"
d="m 4.5,12.5 c 0,0.552285 -0.4477153,1 -1,1 -0.5522847,0 -1,-0.447715 -1,-1 0,-0.552285 0.4477153,-1 1,-1 0.5522847,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="12.5"
sodipodi:cx="3.5"
id="path2958-9"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#172739;stroke-width:0.94698602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.5475161,0,0,1.6212881,19.483264,-12.871586)"
d="m 4.5,12.5 c 0,0.552285 -0.4477153,1 -1,1 -0.5522847,0 -1,-0.447715 -1,-1 0,-0.552285 0.4477153,-1 1,-1 0.5522847,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="12.5"
sodipodi:cx="3.5"
id="path2958-6"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#172739;stroke-width:0.94698602;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

+26 -41
View File
@@ -59,7 +59,7 @@
</size> </size>
</property> </property>
<property name="inputMethodHints"> <property name="inputMethodHints">
<set>Qt::ImhNoEditMenu</set> <set>Qt::ImhNoEditMenu|Qt::ImhNoTextHandles</set>
</property> </property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
@@ -159,9 +159,15 @@
<height>181</height> <height>181</height>
</rect> </rect>
</property> </property>
<property name="inputMethodHints">
<set>Qt::ImhNoEditMenu|Qt::ImhNoTextHandles</set>
</property>
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum> <enum>QAbstractItemView::SingleSelection</enum>
</property> </property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
</widget> </widget>
<widget class="QComboBox" name="comboBox"> <widget class="QComboBox" name="comboBox">
<property name="geometry"> <property name="geometry">
@@ -235,9 +241,15 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="editTriggers">
<set>QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked</set>
</property>
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum> <enum>QAbstractItemView::SingleSelection</enum>
</property> </property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="sortingEnabled"> <property name="sortingEnabled">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -326,24 +338,6 @@
</size> </size>
</property> </property>
</widget> </widget>
<widget class="QWebView" name="viewer" native="true">
<property name="geometry">
<rect>
<x>90</x>
<y>10</y>
<width>730</width>
<height>730</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255,0.50);</string>
</property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget>
<widget class="QCheckBox" name="checkBox"> <widget class="QCheckBox" name="checkBox">
<property name="geometry"> <property name="geometry">
<rect> <rect>
@@ -379,33 +373,24 @@
<string notr="true"/> <string notr="true"/>
</property> </property>
</widget> </widget>
<zorder>viewer</zorder> <widget class="QTextBrowser" name="viewer">
<zorder>commandLinkButton_2</zorder> <property name="geometry">
<zorder>pushButton_2</zorder> <rect>
<zorder>label</zorder> <x>90</x>
<zorder>tableWidget_2</zorder> <y>10</y>
<zorder>comboBox</zorder> <width>731</width>
<zorder>lineEdit</zorder> <height>731</height>
<zorder>toolButton</zorder> </rect>
<zorder>tableWidget</zorder> </property>
<zorder>label_2</zorder> <property name="styleSheet">
<zorder>label_3</zorder> <string notr="true">background-color: rgba(255, 255, 255,0.50);</string>
<zorder>comboBox_2</zorder> </property>
<zorder>commandLinkButton</zorder> </widget>
<zorder>checkBox</zorder>
<zorder>DeBUG</zorder>
</widget> </widget>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+3 -18
View File
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+4 -3
View File
@@ -36,7 +36,8 @@ from .editor import Metabase_Editor
from .about_form import MetabaseAboutDialog from .about_form import MetabaseAboutDialog
#from CenRa_Metabase.issues import CenRa_Issues #from CenRa_Metabase.issues import CenRa_Issues
from PyQt5.QtCore import * from qgis.PyQt.QtCore import *
class PgMetadata: class PgMetadata:
def __init__(self): def __init__(self):
@@ -106,7 +107,7 @@ class PgMetadata:
if not self.dock: if not self.dock:
self.dock = CenRa_Metabase() self.dock = CenRa_Metabase()
iface.addDockWidget(Qt.RightDockWidgetArea, self.dock) iface.addDockWidget(Qt.DockWidgetArea(0x2), self.dock)
# Open/close the dock from plugin menu # Open/close the dock from plugin menu
self.dock_action = QAction(icon, 'CenRa_Metabase', iface.mainWindow()) self.dock_action = QAction(icon, 'CenRa_Metabase', iface.mainWindow())
@@ -157,7 +158,7 @@ class PgMetadata:
About dialog About dialog
""" """
dialog = MetabaseAboutDialog(iface) dialog = MetabaseAboutDialog(iface)
dialog.exec_() dialog.exec()
def open_help(): def open_help():
""" Open the online help. """ """ Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
+1 -1
View File
@@ -12,7 +12,7 @@ ABOUT_FORM_CLASS, _ = uic.loadUiType(
os.path.join( os.path.join(
str(Path(__file__).resolve().parent), str(Path(__file__).resolve().parent),
'tools/ui', 'tools/ui',
'CenRa_Metabase_about_form.ui' 'CenRa_about_form.ui'
) )
) )
+8 -8
View File
@@ -27,7 +27,7 @@ from qgis.core import (
from qgis.PyQt.QtCore import QLocale, QUrl from qgis.PyQt.QtCore import QLocale, QUrl
from qgis.PyQt.QtGui import QDesktopServices, QIcon from qgis.PyQt.QtGui import QDesktopServices, QIcon
from qgis.PyQt.QtPrintSupport import QPrinter from qgis.PyQt.QtPrintSupport import QPrinter
from qgis.PyQt.QtWebKitWidgets import QWebPage #from qgis.PyQt.QtWebKitWidgets import QWebPage
from qgis.PyQt.QtWidgets import ( from qgis.PyQt.QtWidgets import (
QDialog, QDialog,
QAction, QAction,
@@ -84,8 +84,8 @@ class CenRa_Metabase(QDockWidget, DOCK_CLASS):
self.current_datasource_uri = None self.current_datasource_uri = None
self.current_connection = None self.current_connection = None
self.viewer.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) #self.viewer.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
self.viewer.page().linkClicked.connect(self.open_link) #self.viewer.page().linkClicked.connect(self.open_link)
# Help button # Help button
self.external_help.setText('') self.external_help.setText('')
@@ -101,7 +101,7 @@ class CenRa_Metabase(QDockWidget, DOCK_CLASS):
# Settings menu # Settings menu
self.config.setAutoRaise(True) self.config.setAutoRaise(True)
#self.config.setToolTip(tr("Settings")) #self.config.setToolTip(tr("Settings"))
self.config.setPopupMode(QToolButton.InstantPopup) self.config.setPopupMode(QToolButton.ToolButtonPopupMode(2))
self.config.setIcon(QgsApplication.getThemeIcon("/mActionOptions.svg")) self.config.setIcon(QgsApplication.getThemeIcon("/mActionOptions.svg"))
self.auto_open_dock_action = QAction( self.auto_open_dock_action = QAction(
@@ -119,7 +119,7 @@ class CenRa_Metabase(QDockWidget, DOCK_CLASS):
# Setting PDF/HTML menu # Setting PDF/HTML menu
self.save_button.setAutoRaise(True) self.save_button.setAutoRaise(True)
#self.save_button.setToolTip(tr("Save metadata")) #self.save_button.setToolTip(tr("Save metadata"))
self.save_button.setPopupMode(QToolButton.InstantPopup) self.save_button.setPopupMode(QToolButton.ToolButtonPopupMode(2))
self.save_button.setIcon(QIcon(QgsApplication.iconPath('mActionFileSave.svg'))) self.save_button.setIcon(QIcon(QgsApplication.iconPath('mActionFileSave.svg')))
self.save_as_pdf = QAction( self.save_as_pdf = QAction(
@@ -191,8 +191,8 @@ class CenRa_Metabase(QDockWidget, DOCK_CLASS):
if output_format == OutputFormats.PDF: if output_format == OutputFormats.PDF:
printer = QPrinter() printer = QPrinter()
printer.setOutputFormat(QPrinter.PdfFormat) printer.setOutputFormat(QPrinter.OutputFormat(1))
printer.setPageMargins(20, 20, 20, 20, QPrinter.Millimeter) #printer.setPageMargins(20,20,20,20,QPrinter.Unit(0))
printer.setOutputFileName(output_file_path) printer.setOutputFileName(output_file_path)
self.viewer.print(printer) self.viewer.print(printer)
iface.messageBar().pushSuccess( iface.messageBar().pushSuccess(
@@ -357,7 +357,7 @@ publisher+
# It must be a file, even if it does not exist on the file system. # It must be a file, even if it does not exist on the file system.
base_url = QUrl.fromLocalFile(resources_path('images', 'must_be_a_file.png')) base_url = QUrl.fromLocalFile(resources_path('images', 'must_be_a_file.png'))
self.viewer.setHtml(html, base_url) self.viewer.setHtml(html)#, base_url)
def ce_trouve_dans_psql(self,layer): def ce_trouve_dans_psql(self,layer):
try: try:
+2 -2
View File
@@ -20,11 +20,11 @@ from qgis.core import (
QgsGeometry, QgsGeometry,
QgsWkbTypes, QgsWkbTypes,
) )
from PyQt5 import QtGui from qgis.PyQt import QtGui
from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime
from qgis.PyQt.QtGui import QDesktopServices, QIcon from qgis.PyQt.QtGui import QDesktopServices, QIcon
from qgis.PyQt.QtPrintSupport import QPrinter from qgis.PyQt.QtPrintSupport import QPrinter
from qgis.PyQt.QtWebKitWidgets import QWebPage #from qgis.PyQt.QtWebKitWidgets import QWebPage
from qgis.PyQt.QtWidgets import ( from qgis.PyQt.QtWidgets import (
QDialog, QDialog,
QAction, QAction,
+3 -2
View File
@@ -5,8 +5,9 @@
[general] [general]
name=CenRa_Metabase name=CenRa_Metabase
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=CenRa_METABASE description=CenRa_METABASE
version=0.2.3 version=0.3.0
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -21,7 +22,7 @@ tracker=https://gitea.cenra-outils.org/api/v1/repos/CEN-RA/Plugin_QGIS/issues
hasProcessingProvider=no hasProcessingProvider=no
# Uncomment the following line and add your changelog: # Uncomment the following line and add your changelog:
changelog=<h2>CenRa_METABASE:</h2></br><p><h3>09/04/2025 - Version 0.2.3: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 0.2.2: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 0.2.1: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 0.2.0: </h3> - Deployment sur serveur SIG.</p></br><p><h3>07/01/2025 - Version 0.1.6: </h3> - ByPass du certif ssl ci erreur</p></br><p><h3>19/12/2024 - Version 0.1.5: </h3> - Fix les problem de lenteur qu'en la base est down.</p></br><p><h3>12/12/2024 - Version 0.1.4: </h3> - Crash Fix .</p></br><p><h3>08/10/2024 - Version 0.1.3: </h3> - Lecture de métadonnée des flux WMS/WFS.</p></br><p><h3>07/10/2024 - Version 0.1.2: </h3> - Correctif de bug.</p></br><p><h3>03/10/2024 - Version 0.1.1: </h3> - Remonte la fênetre dans la pille.</p></br><p><h3>26/08/2024 - Version 0.1.0: </h3> - Lancement du plugin CenRa_Metabase </p> changelog=<h2>CenRa_METABASE:</h2></br><p><h3>19/05/2025 - Version 0.3.0: </h3> - Compatible PyQt5 et PyQt6</p></br><p><h3>09/04/2025 - Version 0.2.3: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 0.2.2: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 0.2.1: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 0.2.0: </h3> - Deployment sur serveur SIG.</p></br><p><h3>07/01/2025 - Version 0.1.6: </h3> - ByPass du certif ssl ci erreur</p></br><p><h3>19/12/2024 - Version 0.1.5: </h3> - Fix les problem de lenteur qu'en la base est down.</p></br><p><h3>12/12/2024 - Version 0.1.4: </h3> - Crash Fix .</p></br><p><h3>08/10/2024 - Version 0.1.3: </h3> - Lecture de métadonnée des flux WMS/WFS.</p></br><p><h3>07/10/2024 - Version 0.1.2: </h3> - Correctif de bug.</p></br><p><h3>03/10/2024 - Version 0.1.1: </h3> - Remonte la fênetre dans la pille.</p></br><p><h3>26/08/2024 - Version 0.1.0: </h3> - Lancement du plugin CenRa_Metabase </p>
# Tags are comma separated with spaces allowed # Tags are comma separated with spaces allowed
tags=python tags=python
@@ -64,24 +64,11 @@
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer"/>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
@@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Metabase</string> <string>Journal des modifications</string>
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset> <iconset>
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+3 -2
View File
@@ -32,7 +32,8 @@ from .tools.resources import (
from .canvas_editor import PageRender_Editor from .canvas_editor import PageRender_Editor
from .about_form import AboutDialog from .about_form import AboutDialog
from PyQt5.QtCore import * from qgis.PyQt.QtCore import *
class PgPageRender: class PgPageRender:
def __init__(self): def __init__(self):
@@ -115,7 +116,7 @@ class PgPageRender:
About dialog About dialog
""" """
dialog = AboutDialog(iface) dialog = AboutDialog(iface)
dialog.exec_() dialog.exec()
def open_help(): def open_help():
""" Open the online help. """ """ Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
+11 -9
View File
@@ -1,6 +1,5 @@
import logging import logging
import os import os
from PyQt5.QtCore import QSettings,QPointF
from collections import namedtuple from collections import namedtuple
from enum import Enum from enum import Enum
from functools import partial from functools import partial
@@ -44,7 +43,7 @@ from qgis.core import (
from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime, Qt from qgis.PyQt.QtCore import QLocale, QUrl, QDateTime, Qt
from qgis.PyQt.QtGui import QDesktopServices, QIcon, QColor, QFont, QMovie from qgis.PyQt.QtGui import QDesktopServices, QIcon, QColor, QFont, QMovie
from qgis.PyQt.QtPrintSupport import QPrinter from qgis.PyQt.QtPrintSupport import QPrinter
from qgis.PyQt.QtWebKitWidgets import QWebPage #from qgis.PyQt.QtWebKitWidgets import QWebPage
from qgis.PyQt.QtWidgets import ( from qgis.PyQt.QtWidgets import (
QDialog, QDialog,
QAction, QAction,
@@ -57,8 +56,11 @@ from qgis.PyQt.QtWidgets import (
QTableWidgetItem, QTableWidgetItem,
QVBoxLayout, QVBoxLayout,
) )
from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication from qgis.PyQt import QtGui
from qgis.PyQt.QtWidgets import QApplication
from qgis.PyQt.QtCore import QSettings,QPointF
from qgis.PyQt.QtXml import QDomDocument from qgis.PyQt.QtXml import QDomDocument
from qgis.utils import iface from qgis.utils import iface
import glob import glob
@@ -158,7 +160,7 @@ class PageRender_Editor(QDialog, EDITOR_CLASS):
self.verticalScrollBar.setValue(self.frame.y()) self.verticalScrollBar.setValue(self.frame.y())
def mousePressEvent(self, event): def mousePressEvent(self, event):
if self.tableWidget.currentItem() != None: if self.tableWidget.currentItem() != None:
QApplication.setOverrideCursor(Qt.OpenHandCursor) QApplication.setOverrideCursor(Qt.CursorShape(18))
global lastPos global lastPos
lastPos = {'x':event.pos().x(),'y':event.pos().y()} lastPos = {'x':event.pos().x(),'y':event.pos().y()}
@@ -167,13 +169,13 @@ class PageRender_Editor(QDialog, EDITOR_CLASS):
def keyPressEvent(self, event): def keyPressEvent(self, event):
#if event.modifiers() & Qt.ControlModifier: #if event.modifiers() & Qt.ControlModifier:
if event.key() == Qt.Key_Up: if event.key() == Qt.Key(0x01000015):
self.verticalSlider.setValue(self.spinBox_2.value()+1) self.verticalSlider.setValue(self.spinBox_2.value()+1)
if event.key() == Qt.Key_Down: if event.key() == Qt.Key(0x01000013):
self.verticalSlider.setValue(self.spinBox_2.value()-1) self.verticalSlider.setValue(self.spinBox_2.value()-1)
if event.key() == Qt.Key_Right: if event.key() == Qt.Key(0x01000014):
self.horizontalSlider.setValue(self.spinBox.value()+1) self.horizontalSlider.setValue(self.spinBox.value()+1)
if event.key() == Qt.Key_Left: if event.key() == Qt.Key(0x01000012):
self.horizontalSlider.setValue(self.spinBox.value()-1) self.horizontalSlider.setValue(self.spinBox.value()-1)
+3 -2
View File
@@ -5,8 +5,9 @@
[general] [general]
name=CenRa_PageRender name=CenRa_PageRender
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=CenRa_PageRender description=CenRa_PageRender
version=0.1.6 version=0.2.0
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -21,7 +22,7 @@ tracker=https://gitea.cenra-outils.org/api/v1/repos/CEN-RA/Plugin_QGIS/issues
hasProcessingProvider=no hasProcessingProvider=no
# Uncomment the following line and add your changelog: # Uncomment the following line and add your changelog:
changelog=<h2>CenRa_PAGERENDER:</h2></br><p><h3>03/04/2025 - Version 0.1.6: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 0.1.5: </h3> - ByPass du certif ssl ci erreur.</br></p><p><h3>14/11/2024 - Version 0.1.4: </h3> - Implementation de la mollet. </br> - Implementation du dragging pour déplacer et modification de la taille </br></p></br><p><h3>08/11/2024 - Version 0.1.3: </h3> - Correctif de bug. </br><p><h3>21/10/2024 - Version 0.1.1: </h3> - Les match en if. </br> - Bouton de scroll et adaptation portrait.</p></br><p><h3>09/10/2024 - Version 0.1.0: </h3> - Création.</p> changelog=<h2>CenRa_PAGERENDER:</h2></br><p><h3>19/05/2025 - Version 0.2.0: </h3> - Compatible PyQt5 et PyQt6</p></br><p><h3>03/04/2025 - Version 0.1.6: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 0.1.5: </h3> - ByPass du certif ssl ci erreur.</br></p><p><h3>14/11/2024 - Version 0.1.4: </h3> - Implementation de la mollet. </br> - Implementation du dragging pour déplacer et modification de la taille </br></p></br><p><h3>08/11/2024 - Version 0.1.3: </h3> - Correctif de bug. </br><p><h3>21/10/2024 - Version 0.1.1: </h3> - Les match en if. </br> - Bouton de scroll et adaptation portrait.</p></br><p><h3>09/10/2024 - Version 0.1.0: </h3> - Création.</p>
# Tags are comma separated with spaces allowed # Tags are comma separated with spaces allowed
tags=python tags=python
+3 -18
View File
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+3 -2
View File
@@ -28,7 +28,8 @@ from .postgis_creator import Postgis_Creator
from .postgis_rename import Postgis_Rename from .postgis_rename import Postgis_Rename
from .about_form import AboutDialog from .about_form import AboutDialog
from PyQt5.QtCore import * from qgis.PyQt.QtCore import *
IPAddr=socket.gethostbyname(socket.gethostname()) IPAddr=socket.gethostbyname(socket.gethostname())
@@ -119,7 +120,7 @@ class PgPostgis:
About dialog About dialog
""" """
dialog = AboutDialog(iface) dialog = AboutDialog(iface)
dialog.exec_() dialog.exec()
def open_help(): def open_help():
""" Open the online help. """ """ Open the online help. """
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/')) QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
+3 -2
View File
@@ -11,8 +11,9 @@
[general] [general]
name=CenRa_POSTGIS name=CenRa_POSTGIS
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=Permet de crée un dossier dans la base PostGis description=Permet de crée un dossier dans la base PostGis
version=2.9 version=3.0
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -21,7 +22,7 @@ email=si_besoin@cen-rhonealpes.fr
# Optional items: # Optional items:
# Uncomment the following line and add your changelog entries: # Uncomment the following line and add your changelog entries:
changelog=<h2>CenRa_POSTGIS:</h2></br><p><h3>09/04/2025 - Version 2.9: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 2.8: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 2.7: </h3> - Mise a jour de securite.</p></br><p><h3>12/02/2025 - Version 2.6: </h3> - InDev:renomé les schema et table.</p></br><p><h3>04/02/2025 - Version 2.5: </h3> - Correctif bug création de couche.</p></br><p><h3>23/01/2025 - Version 2.4: </h3> - Correctif sur les pkey.</p></br><p><h3>22/01/2025 - Version 2.3: </h3> - Correctif sur la creation de projet.</p></br><p><h3>21/01/2025 - Version 2.2: </h3> - Correctif sur la longeur des nom.</p></br><p><h3>07/01/2025 - Version 2.1: </h3> - ByPass du certif ssl ci erreur.</p></br><p><h3>22/10/2024 - Version 2.0:</h3>- Refont du code.</p> changelog=<h2>CenRa_POSTGIS:</h2></br><p><h3>19/05/2025 - Version 3.0: </h3> - Compatible PyQt5 et PyQt6</p></br><p><h3>09/04/2025 - Version 2.9: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 2.8: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 2.7: </h3> - Mise a jour de securite.</p></br><p><h3>12/02/2025 - Version 2.6: </h3> - InDev:renomé les schema et table.</p></br><p><h3>04/02/2025 - Version 2.5: </h3> - Correctif bug création de couche.</p></br><p><h3>23/01/2025 - Version 2.4: </h3> - Correctif sur les pkey.</p></br><p><h3>22/01/2025 - Version 2.3: </h3> - Correctif sur la creation de projet.</p></br><p><h3>21/01/2025 - Version 2.2: </h3> - Correctif sur la longeur des nom.</p></br><p><h3>07/01/2025 - Version 2.1: </h3> - ByPass du certif ssl ci erreur.</p></br><p><h3>22/10/2024 - Version 2.0:</h3>- Refont du code.</p>
# tags are comma separated with spaces allowed # tags are comma separated with spaces allowed
tags=cenra, postgis, database tags=cenra, postgis, database
+6 -4
View File
@@ -9,9 +9,11 @@ import qgis
from qgis.PyQt.QtCore import QSettings from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog,QMessageBox from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog,QMessageBox
from qgis.PyQt.QtGui import QIcon from qgis.PyQt.QtGui import QIcon
from PyQt5.QtCore import *
from PyQt5.QtGui import * from qgis.PyQt.QtCore import *
from PyQt5 import QtGui from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import * from qgis.core import *
from qgis.core import QgsDataSourceUri from qgis.core import QgsDataSourceUri
@@ -59,7 +61,7 @@ class Postgis_Creator(QDialog, EDITOR_CLASS):
# show the dialog # show the dialog
self.show() self.show()
# Run the dialog event loop # Run the dialog event loop
result = self.exec_() result = self.exec()
# See if OK was pressed # See if OK was pressed
if result == 1: if result == 1:
+6 -4
View File
@@ -9,9 +9,11 @@ import qgis
from qgis.PyQt.QtCore import QSettings from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog
from qgis.PyQt.QtGui import QIcon from qgis.PyQt.QtGui import QIcon
from PyQt5.QtCore import *
from PyQt5.QtGui import * from qgis.PyQt.QtCore import *
from PyQt5 import QtGui from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import * from qgis.core import *
from qgis.core import QgsDataSourceUri from qgis.core import QgsDataSourceUri
@@ -89,7 +91,7 @@ class Postgis_Editor(QDialog, EDITOR_CLASS):
# show the dialog # show the dialog
self.show() self.show()
# Run the dialog event loop # Run the dialog event loop
result = self.exec_() result = self.exec()
# See if OK was pressed # See if OK was pressed
if result == 1: if result == 1:
#******************************debut script********************************* #******************************debut script*********************************
+11 -9
View File
@@ -9,9 +9,11 @@ import qgis
from qgis.PyQt.QtCore import QSettings from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog, QMessageBox,QDialogButtonBox from qgis.PyQt.QtWidgets import QAction, QMenu, QDialog, QMessageBox,QDialogButtonBox
from qgis.PyQt.QtGui import QIcon from qgis.PyQt.QtGui import QIcon
from PyQt5.QtCore import *
from PyQt5.QtGui import * from qgis.PyQt.QtCore import *
from PyQt5 import QtGui from qgis.PyQt.QtGui import *
from qgis.PyQt import QtGui
from qgis.core import * from qgis.core import *
from qgis.core import QgsDataSourceUri from qgis.core import QgsDataSourceUri
@@ -69,7 +71,7 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
def raise_(self): def raise_(self):
self.activateWindow() self.activateWindow()
self.groupBox_3.hide() self.groupBox_3.hide()
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) self.buttonBox.button(QDialogButtonBox.StandardButton(0x00000400)).setEnabled(False)
GET_ALL_SCHEMA = """SELECT DISTINCT table_schema FROM information_schema.tables WHERE table_schema LIKE '_form_%' OR table_schema LIKE '_01_%' OR table_schema LIKE '_07_%' OR table_schema LIKE '_26_%' OR table_schema LIKE '_42_%' OR table_schema LIKE '_69_%' ORDER BY table_schema;""" GET_ALL_SCHEMA = """SELECT DISTINCT table_schema FROM information_schema.tables WHERE table_schema LIKE '_form_%' OR table_schema LIKE '_01_%' OR table_schema LIKE '_07_%' OR table_schema LIKE '_26_%' OR table_schema LIKE '_42_%' OR table_schema LIKE '_69_%' ORDER BY table_schema;"""
cur.execute(GET_ALL_SCHEMA) cur.execute(GET_ALL_SCHEMA)
AllSchema = cur.fetchall() AllSchema = cur.fetchall()
@@ -118,10 +120,10 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
if allIsGood == 2: if allIsGood == 2:
self.groupBox_3.show() self.groupBox_3.show()
self.loadValue() self.loadValue()
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(True) self.buttonBox.button(QDialogButtonBox.StandardButton(0x00000400)).setEnabled(True)
else: else:
self.groupBox_3.hide() self.groupBox_3.hide()
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) self.buttonBox.button(QDialogButtonBox.StandardButton(0x00000400)).setEnabled(False)
else: else:
self.old_name.setText('') self.old_name.setText('')
self.compte.setChecked(0) self.compte.setChecked(0)
@@ -220,9 +222,9 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
def msgBox(self): def msgBox(self):
self.QMBquestion = QMessageBox() self.QMBquestion = QMessageBox()
self.QMBquestion.setWindowTitle(u"Attention !") self.QMBquestion.setWindowTitle(u"Attention !")
self.QMBquestion.setIcon(QMessageBox.Warning) self.QMBquestion.setIcon(QMessageBox.Icon.Warning)
self.QMBquestion.setText("Attention, le renommage de dossier PostGIS peut engendrer des pertes de liaisons avec des projets QGIS !") self.QMBquestion.setText("Attention, le renommage de dossier PostGIS peut engendrer des pertes de liaisons avec des projets QGIS !")
self.QMBquestion.setStandardButtons(QMessageBox.Yes|QMessageBox.No) self.QMBquestion.setStandardButtons(QMessageBox.StandardButton(0x00004000)|QMessageBox.StandardButton(0x00010000))
if self.new_name.text() != '': if self.new_name.text() != '':
error_caracteres = 0 error_caracteres = 0
for caracteres in ch : for caracteres in ch :
@@ -234,5 +236,5 @@ class Postgis_Rename(QDialog, EDITOR_CLASS):
QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.new_name.text().lower() ) QMessageBox.warning(None, "Oups :", u"Le nom de dossier ne doit pas comporter de caractères spéciaux, ni d'espaces !\n\n\t" + self.new_name.text().lower() )
else: else:
QMessageBox.warning(None, "Oups :", "Votre projet doit avoire un nom !") QMessageBox.warning(None, "Oups :", "Votre projet doit avoire un nom !")
if self.QMBquestion == QMessageBox.Yes: if self.QMBquestion == QMessageBox.StandardButton(0x00004000):
self.updateName() self.updateName()
+3 -18
View File
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+3 -18
View File
@@ -29,9 +29,6 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@@ -41,7 +38,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>453</width> <width>453</width>
<height>547</height> <height>570</height>
</rect> </rect>
</property> </property>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
@@ -56,7 +53,7 @@
<property name="title"> <property name="title">
<string>DevLog</string> <string>DevLog</string>
</property> </property>
<widget class="QWebView" name="viewer" native="true"> <widget class="QTextBrowser" name="viewer">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@@ -65,11 +62,6 @@
<height>511</height> <height>511</height>
</rect> </rect>
</property> </property>
<property name="url" stdset="0">
<url>
<string>about:blank</string>
</url>
</property>
</widget> </widget>
</widget> </widget>
</widget> </widget>
@@ -78,19 +70,12 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Ok</set> <set>QDialogButtonBox::NoButton</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header location="global">QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>
+3 -2
View File
@@ -11,8 +11,9 @@
[general] [general]
name=CenRa SICEN name=CenRa SICEN
qgisMinimumVersion=3.0 qgisMinimumVersion=3.0
supportsQt6=True
description=Filtre des données saisies dans SICEN et export d'une liste d'espèces. description=Filtre des données saisies dans SICEN et export d'une liste d'espèces.
version=1.11 version=2.0
author=Conservatoire d'Espaces Naturels de Rhône-Alpes author=Conservatoire d'Espaces Naturels de Rhône-Alpes
email=si_besoin@cen-rhonealpes.fr email=si_besoin@cen-rhonealpes.fr
@@ -21,7 +22,7 @@ email=si_besoin@cen-rhonealpes.fr
# Optional items: # Optional items:
# Uncomment the following line and add your changelog entries: # Uncomment the following line and add your changelog entries:
changelog=<h2>CenRa_SICEN:</h2></br><p><h3>09/04/2025 - Version 1.11: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 1.10: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 1.9: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 1.8: </h3> - ByPass du certif ssl ci erreur.</br></p><p><h3>13/09/2024 - Version 1.7:</h3> - Il est maintenant possible de sélectionné plusieurs entité pour le filtre par Emprise.</br>- Ajoute d'un changelog.</br>- Ajoute une vérification de mise à jour.</p> changelog=<h2>CenRa_SICEN:</h2></br><p><h3>19/05/2025 - Version 2.0: </h3> - Compatible PyQt5 et PyQt6</p></br><p><h3>09/04/2025 - Version 1.11: </h3> - Correctif bug en TT.</p></br><p><h3>09/04/2025 - Version 1.10: </h3> - Optimisation pour le TT.</p></br><p><h3>03/04/2025 - Version 1.9: </h3> - Mise a jour de securite.</p></br><p><h3>07/01/2025 - Version 1.8: </h3> - ByPass du certif ssl ci erreur.</br></p><p><h3>13/09/2024 - Version 1.7:</h3> - Il est maintenant possible de sélectionné plusieurs entité pour le filtre par Emprise.</br>- Ajoute d'un changelog.</br>- Ajoute une vérification de mise à jour.</p>
# tags are comma separated with spaces allowed # tags are comma separated with spaces allowed
tags=cenra, postgis, sicen tags=cenra, postgis, sicen
+3 -2
View File
@@ -5,9 +5,10 @@
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) # Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
try:
from PyQt5 import QtCore from PyQt5 import QtCore
except:
from PyQt6 import QtCore
qt_resource_data = b"\ qt_resource_data = b"\
\x00\x00\x0d\x89\ \x00\x00\x0d\x89\
\x89\ \x89\
+6 -2
View File
@@ -32,8 +32,12 @@ from qgis.utils import iface"""
from builtins import str from builtins import str
from builtins import object from builtins import object
import os import os
try:
from PyQt5.QtCore import * from PyQt5.QtCore import *
from PyQt5.QtGui import * from PyQt5.QtGui import *
except:
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from qgis.PyQt import uic from qgis.PyQt import uic
from qgis.core import * from qgis.core import *
from qgis.core import QgsDataSourceUri, QgsWkbTypes, QgsLayerTreeGroup, QgsLayerTreeLayer from qgis.core import QgsDataSourceUri, QgsWkbTypes, QgsLayerTreeGroup, QgsLayerTreeLayer
@@ -152,7 +156,7 @@ class SICEN(object):
def open_about_dialog(self): def open_about_dialog(self):
dialog = AboutDialog(self.iface) dialog = AboutDialog(self.iface)
dialog.exec_() dialog.exec()
def unload(self): def unload(self):
# Remove the plugin menu item and icon # Remove the plugin menu item and icon
@@ -265,7 +269,7 @@ class SICEN(object):
# show the dialog # show the dialog
self.dlg.show() self.dlg.show()
# Run the dialog event loop # Run the dialog event loop
result = self.dlg.exec_() result = self.dlg.exec()
# See if OK was pressed # See if OK was pressed
if result == 1: if result == 1:
+41 -41
View File
@@ -33,8 +33,8 @@ class Ui_SICEN(object):
SICEN.resize(592, 556) SICEN.resize(592, 556)
self.buttonBox = QDialogButtonBox(SICEN) self.buttonBox = QDialogButtonBox(SICEN)
self.buttonBox.setGeometry(QtCore.QRect(390, 520, 161, 32)) self.buttonBox.setGeometry(QtCore.QRect(390, 520, 161, 32))
self.buttonBox.setOrientation(QtCore.Qt.Horizontal) #self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok) self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton(0x00400000)|QDialogButtonBox.StandardButton(0x00000400))
self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
self.Titre = QLabel(SICEN) self.Titre = QLabel(SICEN)
self.Titre.setGeometry(QtCore.QRect(110, 10, 331, 31)) self.Titre.setGeometry(QtCore.QRect(110, 10, 331, 31))
@@ -46,8 +46,8 @@ class Ui_SICEN(object):
self.Titre.setObjectName(_fromUtf8("Titre")) self.Titre.setObjectName(_fromUtf8("Titre"))
self.Emprise = QTabWidget(SICEN) self.Emprise = QTabWidget(SICEN)
self.Emprise.setGeometry(QtCore.QRect(10, 80, 571, 431)) self.Emprise.setGeometry(QtCore.QRect(10, 80, 571, 431))
self.Emprise.setTabPosition(QTabWidget.North) self.Emprise.setTabPosition(QTabWidget.TabPosition(0))
self.Emprise.setTabShape(QTabWidget.Rounded) self.Emprise.setTabShape(QTabWidget.TabShape(0))
self.Emprise.setObjectName(_fromUtf8("Emprise")) self.Emprise.setObjectName(_fromUtf8("Emprise"))
self.tab_2 = QWidget() self.tab_2 = QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2")) self.tab_2.setObjectName(_fromUtf8("tab_2"))
@@ -57,7 +57,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_4.setFont(font) self.groupBox_4.setFont(font)
self.groupBox_4.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_4.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox_4.setObjectName(_fromUtf8("groupBox_4")) self.groupBox_4.setObjectName(_fromUtf8("groupBox_4"))
self.gridLayoutWidget_5 = QWidget(self.groupBox_4) self.gridLayoutWidget_5 = QWidget(self.groupBox_4)
self.gridLayoutWidget_5.setGeometry(QtCore.QRect(10, 20, 521, 51)) self.gridLayoutWidget_5.setGeometry(QtCore.QRect(10, 20, 521, 51))
@@ -99,7 +99,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_5.setFont(font) self.groupBox_5.setFont(font)
self.groupBox_5.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_5.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox_5.setObjectName(_fromUtf8("groupBox_5")) self.groupBox_5.setObjectName(_fromUtf8("groupBox_5"))
self.gridLayoutWidget_6 = QWidget(self.groupBox_5) self.gridLayoutWidget_6 = QWidget(self.groupBox_5)
self.gridLayoutWidget_6.setGeometry(QtCore.QRect(10, 20, 521, 41)) self.gridLayoutWidget_6.setGeometry(QtCore.QRect(10, 20, 521, 41))
@@ -113,7 +113,7 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label.setFont(font) self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setAlignment(QtCore.Qt.Alignment(5))
self.label.setObjectName(_fromUtf8("label")) self.label.setObjectName(_fromUtf8("label"))
self.gridLayout_6.addWidget(self.label, 0, 0, 1, 1) self.gridLayout_6.addWidget(self.label, 0, 0, 1, 1)
self.label_2 = QLabel(self.gridLayoutWidget_6) self.label_2 = QLabel(self.gridLayoutWidget_6)
@@ -122,7 +122,7 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label_2.setFont(font) self.label_2.setFont(font)
self.label_2.setAlignment(QtCore.Qt.AlignCenter) self.label_2.setAlignment(QtCore.Qt.Alignment(5))
self.label_2.setObjectName(_fromUtf8("label_2")) self.label_2.setObjectName(_fromUtf8("label_2"))
self.gridLayout_6.addWidget(self.label_2, 0, 1, 1, 1) self.gridLayout_6.addWidget(self.label_2, 0, 1, 1, 1)
self.nom_com_1 = QComboBox(self.gridLayoutWidget_6) self.nom_com_1 = QComboBox(self.gridLayoutWidget_6)
@@ -147,7 +147,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_7.setFont(font) self.groupBox_7.setFont(font)
self.groupBox_7.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_7.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox_7.setObjectName(_fromUtf8("groupBox_7")) self.groupBox_7.setObjectName(_fromUtf8("groupBox_7"))
self.gridLayoutWidget_8 = QWidget(self.groupBox_7) self.gridLayoutWidget_8 = QWidget(self.groupBox_7)
self.gridLayoutWidget_8.setGeometry(QtCore.QRect(10, 20, 520, 191)) self.gridLayoutWidget_8.setGeometry(QtCore.QRect(10, 20, 520, 191))
@@ -161,7 +161,7 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label_3.setFont(font) self.label_3.setFont(font)
self.label_3.setAlignment(QtCore.Qt.AlignCenter) self.label_3.setAlignment(QtCore.Qt.Alignment(5))
self.label_3.setObjectName(_fromUtf8("label_3")) self.label_3.setObjectName(_fromUtf8("label_3"))
self.gridLayout_8.addWidget(self.label_3, 0, 0, 1, 1) self.gridLayout_8.addWidget(self.label_3, 0, 0, 1, 1)
self.label_4 = QLabel(self.gridLayoutWidget_8) self.label_4 = QLabel(self.gridLayoutWidget_8)
@@ -170,7 +170,7 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label_4.setFont(font) self.label_4.setFont(font)
self.label_4.setAlignment(QtCore.Qt.AlignCenter) self.label_4.setAlignment(QtCore.Qt.Alignment(5))
self.label_4.setObjectName(_fromUtf8("label_4")) self.label_4.setObjectName(_fromUtf8("label_4"))
self.gridLayout_8.addWidget(self.label_4, 0, 1, 1, 1) self.gridLayout_8.addWidget(self.label_4, 0, 1, 1, 1)
self.date_min = QCalendarWidget(self.gridLayoutWidget_8) self.date_min = QCalendarWidget(self.gridLayoutWidget_8)
@@ -188,7 +188,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_8.setFont(font) self.groupBox_8.setFont(font)
self.groupBox_8.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_8.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox_8.setObjectName(_fromUtf8("groupBox_8")) self.groupBox_8.setObjectName(_fromUtf8("groupBox_8"))
self.gridLayoutWidget_9 = QWidget(self.groupBox_8) self.gridLayoutWidget_9 = QWidget(self.groupBox_8)
self.gridLayoutWidget_9.setGeometry(QtCore.QRect(10, 20, 491, 21)) self.gridLayoutWidget_9.setGeometry(QtCore.QRect(10, 20, 491, 21))
@@ -202,7 +202,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.Animalia.setFont(font) self.Animalia.setFont(font)
self.Animalia.setLayoutDirection(QtCore.Qt.RightToLeft) self.Animalia.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.Animalia.setObjectName(_fromUtf8("Animalia")) self.Animalia.setObjectName(_fromUtf8("Animalia"))
self.gridLayout_9.addWidget(self.Animalia, 0, 0, 1, 1) self.gridLayout_9.addWidget(self.Animalia, 0, 0, 1, 1)
self.Plantae = QCheckBox(self.gridLayoutWidget_9) self.Plantae = QCheckBox(self.gridLayoutWidget_9)
@@ -226,8 +226,8 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label_6.setFont(font) self.label_6.setFont(font)
self.label_6.setLayoutDirection(QtCore.Qt.LeftToRight) self.label_6.setLayoutDirection(QtCore.Qt.LayoutDirection(0))
self.label_6.setAlignment(QtCore.Qt.AlignCenter) self.label_6.setAlignment(QtCore.Qt.Alignment(5))
self.label_6.setObjectName(_fromUtf8("label_6")) self.label_6.setObjectName(_fromUtf8("label_6"))
self.gridLayout_11.addWidget(self.label_6, 4, 0, 1, 1) self.gridLayout_11.addWidget(self.label_6, 4, 0, 1, 1)
self.nom_vern = QComboBox(self.gridLayoutWidget_10) self.nom_vern = QComboBox(self.gridLayoutWidget_10)
@@ -245,7 +245,7 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label_5.setFont(font) self.label_5.setFont(font)
self.label_5.setAlignment(QtCore.Qt.AlignCenter) self.label_5.setAlignment(QtCore.Qt.Alignment(5))
self.label_5.setObjectName(_fromUtf8("label_5")) self.label_5.setObjectName(_fromUtf8("label_5"))
self.gridLayout_11.addWidget(self.label_5, 2, 0, 1, 1) self.gridLayout_11.addWidget(self.label_5, 2, 0, 1, 1)
self.nom_complet = QComboBox(self.gridLayoutWidget_10) self.nom_complet = QComboBox(self.gridLayoutWidget_10)
@@ -271,7 +271,7 @@ class Ui_SICEN(object):
font.setItalic(True) font.setItalic(True)
font.setWeight(50) font.setWeight(50)
self.label_13.setFont(font) self.label_13.setFont(font)
self.label_13.setAlignment(QtCore.Qt.AlignCenter) self.label_13.setAlignment(QtCore.Qt.Alignment(5))
self.label_13.setObjectName(_fromUtf8("label_13")) self.label_13.setObjectName(_fromUtf8("label_13"))
self.gridLayout_11.addWidget(self.label_13, 0, 0, 1, 1) self.gridLayout_11.addWidget(self.label_13, 0, 0, 1, 1)
self.Emprise.addTab(self.tab, _fromUtf8("")) self.Emprise.addTab(self.tab, _fromUtf8(""))
@@ -279,8 +279,8 @@ class Ui_SICEN(object):
self.tab_3.setObjectName(_fromUtf8("tab_3")) self.tab_3.setObjectName(_fromUtf8("tab_3"))
self.protections = QToolBox(self.tab_3) self.protections = QToolBox(self.tab_3)
self.protections.setGeometry(QtCore.QRect(10, 10, 511, 391)) self.protections.setGeometry(QtCore.QRect(10, 10, 511, 391))
self.protections.setFrameShape(QFrame.NoFrame) self.protections.setFrameShape(QFrame.Shape(0))
self.protections.setFrameShadow(QFrame.Plain) self.protections.setFrameShadow(QFrame.Shadow(0x0010))
self.protections.setLineWidth(1) self.protections.setLineWidth(1)
self.protections.setObjectName(_fromUtf8("protections")) self.protections.setObjectName(_fromUtf8("protections"))
self.page_2 = QWidget() self.page_2 = QWidget()
@@ -292,7 +292,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox.setFont(font) self.groupBox.setFont(font)
self.groupBox.setAlignment(QtCore.Qt.AlignCenter) self.groupBox.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox.setObjectName(_fromUtf8("groupBox")) self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.gridLayoutWidget_2 = QWidget(self.groupBox) self.gridLayoutWidget_2 = QWidget(self.groupBox)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(10, 20, 491, 88)) self.gridLayoutWidget_2.setGeometry(QtCore.QRect(10, 20, 491, 88))
@@ -306,7 +306,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRD_38.setFont(font) self.LRD_38.setFont(font)
self.LRD_38.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRD_38.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRD_38.setObjectName(_fromUtf8("LRD_38")) self.LRD_38.setObjectName(_fromUtf8("LRD_38"))
self.gridLayout_2.addWidget(self.LRD_38, 3, 0, 1, 1) self.gridLayout_2.addWidget(self.LRD_38, 3, 0, 1, 1)
self.LRD_01 = QCheckBox(self.gridLayoutWidget_2) self.LRD_01 = QCheckBox(self.gridLayoutWidget_2)
@@ -314,7 +314,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRD_01.setFont(font) self.LRD_01.setFont(font)
self.LRD_01.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRD_01.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRD_01.setObjectName(_fromUtf8("LRD_01")) self.LRD_01.setObjectName(_fromUtf8("LRD_01"))
self.gridLayout_2.addWidget(self.LRD_01, 0, 0, 1, 1) self.gridLayout_2.addWidget(self.LRD_01, 0, 0, 1, 1)
self.LRD_07 = QCheckBox(self.gridLayoutWidget_2) self.LRD_07 = QCheckBox(self.gridLayoutWidget_2)
@@ -322,7 +322,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRD_07.setFont(font) self.LRD_07.setFont(font)
self.LRD_07.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRD_07.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRD_07.setObjectName(_fromUtf8("LRD_07")) self.LRD_07.setObjectName(_fromUtf8("LRD_07"))
self.gridLayout_2.addWidget(self.LRD_07, 1, 0, 1, 1) self.gridLayout_2.addWidget(self.LRD_07, 1, 0, 1, 1)
self.LRD_26 = QCheckBox(self.gridLayoutWidget_2) self.LRD_26 = QCheckBox(self.gridLayoutWidget_2)
@@ -330,7 +330,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRD_26.setFont(font) self.LRD_26.setFont(font)
self.LRD_26.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRD_26.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRD_26.setObjectName(_fromUtf8("LRD_26")) self.LRD_26.setObjectName(_fromUtf8("LRD_26"))
self.gridLayout_2.addWidget(self.LRD_26, 2, 0, 1, 1) self.gridLayout_2.addWidget(self.LRD_26, 2, 0, 1, 1)
self.LRD_42 = QCheckBox(self.gridLayoutWidget_2) self.LRD_42 = QCheckBox(self.gridLayoutWidget_2)
@@ -367,7 +367,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_2.setFont(font) self.groupBox_2.setFont(font)
self.groupBox_2.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_2.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) self.groupBox_2.setObjectName(_fromUtf8("groupBox_2"))
self.gridLayoutWidget_3 = QWidget(self.groupBox_2) self.gridLayoutWidget_3 = QWidget(self.groupBox_2)
self.gridLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 491, 42)) self.gridLayoutWidget_3.setGeometry(QtCore.QRect(10, 20, 491, 42))
@@ -381,7 +381,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRR_Flore.setFont(font) self.LRR_Flore.setFont(font)
self.LRR_Flore.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRR_Flore.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRR_Flore.setObjectName(_fromUtf8("LRR_Flore")) self.LRR_Flore.setObjectName(_fromUtf8("LRR_Flore"))
self.gridLayout_3.addWidget(self.LRR_Flore, 0, 0, 1, 1) self.gridLayout_3.addWidget(self.LRR_Flore, 0, 0, 1, 1)
self.LRR_Oiseaux = QCheckBox(self.gridLayoutWidget_3) self.LRR_Oiseaux = QCheckBox(self.gridLayoutWidget_3)
@@ -389,7 +389,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRR_Oiseaux.setFont(font) self.LRR_Oiseaux.setFont(font)
self.LRR_Oiseaux.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRR_Oiseaux.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRR_Oiseaux.setObjectName(_fromUtf8("LRR_Oiseaux")) self.LRR_Oiseaux.setObjectName(_fromUtf8("LRR_Oiseaux"))
self.gridLayout_3.addWidget(self.LRR_Oiseaux, 1, 0, 1, 1) self.gridLayout_3.addWidget(self.LRR_Oiseaux, 1, 0, 1, 1)
self.LRR_Autre = QCheckBox(self.gridLayoutWidget_3) self.LRR_Autre = QCheckBox(self.gridLayoutWidget_3)
@@ -405,7 +405,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_3.setFont(font) self.groupBox_3.setFont(font)
self.groupBox_3.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_3.setAlignment(QtCore.Qt.Alignment(5))
self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3"))
self.gridLayoutWidget_4 = QWidget(self.groupBox_3) self.gridLayoutWidget_4 = QWidget(self.groupBox_3)
self.gridLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 491, 42)) self.gridLayoutWidget_4.setGeometry(QtCore.QRect(10, 20, 491, 42))
@@ -426,7 +426,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRN_Flore.setFont(font) self.LRN_Flore.setFont(font)
self.LRN_Flore.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRN_Flore.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRN_Flore.setObjectName(_fromUtf8("LRN_Flore")) self.LRN_Flore.setObjectName(_fromUtf8("LRN_Flore"))
self.gridLayout_4.addWidget(self.LRN_Flore, 0, 0, 1, 1) self.gridLayout_4.addWidget(self.LRN_Flore, 0, 0, 1, 1)
self.LRN_Oiseaux = QCheckBox(self.gridLayoutWidget_4) self.LRN_Oiseaux = QCheckBox(self.gridLayoutWidget_4)
@@ -434,7 +434,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.LRN_Oiseaux.setFont(font) self.LRN_Oiseaux.setFont(font)
self.LRN_Oiseaux.setLayoutDirection(QtCore.Qt.RightToLeft) self.LRN_Oiseaux.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.LRN_Oiseaux.setObjectName(_fromUtf8("LRN_Oiseaux")) self.LRN_Oiseaux.setObjectName(_fromUtf8("LRN_Oiseaux"))
self.gridLayout_4.addWidget(self.LRN_Oiseaux, 1, 0, 1, 1) self.gridLayout_4.addWidget(self.LRN_Oiseaux, 1, 0, 1, 1)
self.LRN_Ortho = QCheckBox(self.gridLayoutWidget_4) self.LRN_Ortho = QCheckBox(self.gridLayoutWidget_4)
@@ -456,7 +456,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.UICN.setFont(font) self.UICN.setFont(font)
self.UICN.setLayoutDirection(QtCore.Qt.RightToLeft) self.UICN.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.UICN.setObjectName(_fromUtf8("UICN")) self.UICN.setObjectName(_fromUtf8("UICN"))
self.gridLayout_12.addWidget(self.UICN, 0, 0, 1, 1) self.gridLayout_12.addWidget(self.UICN, 0, 0, 1, 1)
self.LRE = QCheckBox(self.gridLayoutWidget_11) self.LRE = QCheckBox(self.gridLayoutWidget_11)
@@ -485,19 +485,19 @@ class Ui_SICEN(object):
self.gridLayout.setHorizontalSpacing(50) self.gridLayout.setHorizontalSpacing(50)
self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.PATRI38 = QCheckBox(self.gridLayoutWidget) self.PATRI38 = QCheckBox(self.gridLayoutWidget)
self.PATRI38.setLayoutDirection(QtCore.Qt.RightToLeft) self.PATRI38.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.PATRI38.setObjectName(_fromUtf8("PATRI38")) self.PATRI38.setObjectName(_fromUtf8("PATRI38"))
self.gridLayout.addWidget(self.PATRI38, 3, 0, 1, 1) self.gridLayout.addWidget(self.PATRI38, 3, 0, 1, 1)
self.PATRI01 = QCheckBox(self.gridLayoutWidget) self.PATRI01 = QCheckBox(self.gridLayoutWidget)
self.PATRI01.setLayoutDirection(QtCore.Qt.RightToLeft) self.PATRI01.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.PATRI01.setObjectName(_fromUtf8("PATRI01")) self.PATRI01.setObjectName(_fromUtf8("PATRI01"))
self.gridLayout.addWidget(self.PATRI01, 0, 0, 1, 1) self.gridLayout.addWidget(self.PATRI01, 0, 0, 1, 1)
self.PATRI07 = QCheckBox(self.gridLayoutWidget) self.PATRI07 = QCheckBox(self.gridLayoutWidget)
self.PATRI07.setLayoutDirection(QtCore.Qt.RightToLeft) self.PATRI07.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.PATRI07.setObjectName(_fromUtf8("PATRI07")) self.PATRI07.setObjectName(_fromUtf8("PATRI07"))
self.gridLayout.addWidget(self.PATRI07, 1, 0, 1, 1) self.gridLayout.addWidget(self.PATRI07, 1, 0, 1, 1)
self.PATRI26 = QCheckBox(self.gridLayoutWidget) self.PATRI26 = QCheckBox(self.gridLayoutWidget)
self.PATRI26.setLayoutDirection(QtCore.Qt.RightToLeft) self.PATRI26.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.PATRI26.setObjectName(_fromUtf8("PATRI26")) self.PATRI26.setObjectName(_fromUtf8("PATRI26"))
self.gridLayout.addWidget(self.PATRI26, 2, 0, 1, 1) self.gridLayout.addWidget(self.PATRI26, 2, 0, 1, 1)
self.PATRI42 = QCheckBox(self.gridLayoutWidget) self.PATRI42 = QCheckBox(self.gridLayoutWidget)
@@ -529,7 +529,7 @@ class Ui_SICEN(object):
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.groupBox_6.setFont(font) self.groupBox_6.setFont(font)
self.groupBox_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.groupBox_6.setAlignment(QtCore.Qt.AlignmentFlag(0x0001)|QtCore.Qt.AlignmentFlag(0x0001)|QtCore.Qt.AlignmentFlag(0x0080))
self.groupBox_6.setObjectName(_fromUtf8("groupBox_6")) self.groupBox_6.setObjectName(_fromUtf8("groupBox_6"))
self.gridLayoutWidget_7 = QWidget(self.groupBox_6) self.gridLayoutWidget_7 = QWidget(self.groupBox_6)
self.gridLayoutWidget_7.setGeometry(QtCore.QRect(10, 20, 491, 21)) self.gridLayoutWidget_7.setGeometry(QtCore.QRect(10, 20, 491, 21))
@@ -550,7 +550,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.PD_38.setFont(font) self.PD_38.setFont(font)
self.PD_38.setLayoutDirection(QtCore.Qt.RightToLeft) self.PD_38.setLayoutDirection(QtCore.Qt.LayoutDirection(1))
self.PD_38.setObjectName(_fromUtf8("PD_38")) self.PD_38.setObjectName(_fromUtf8("PD_38"))
self.gridLayout_7.addWidget(self.PD_38, 0, 0, 1, 1) self.gridLayout_7.addWidget(self.PD_38, 0, 0, 1, 1)
self.PR = QCheckBox(self.page_3) self.PR = QCheckBox(self.page_3)
@@ -604,14 +604,14 @@ class Ui_SICEN(object):
self.label_12.setObjectName(_fromUtf8("label_12")) self.label_12.setObjectName(_fromUtf8("label_12"))
self.gridLayout_10.addWidget(self.label_12, 1, 1, 1, 1) self.gridLayout_10.addWidget(self.label_12, 1, 1, 1, 1)
self.buffer = QLineEdit(self.gridLayoutWidget_12) self.buffer = QLineEdit(self.gridLayoutWidget_12)
sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy = QSizePolicy(QSizePolicy.Policy(4), QSizePolicy.Policy(0))
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.buffer.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.buffer.sizePolicy().hasHeightForWidth())
self.buffer.setSizePolicy(sizePolicy) self.buffer.setSizePolicy(sizePolicy)
self.buffer.setMaximumSize(QtCore.QSize(100, 16777215)) self.buffer.setMaximumSize(QtCore.QSize(100, 16777215))
self.buffer.setInputMethodHints(QtCore.Qt.ImhPreferNumbers) self.buffer.setInputMethodHints(QtCore.Qt.InputMethodHint(0x8))
self.buffer.setAlignment(QtCore.Qt.AlignCenter) self.buffer.setAlignment(QtCore.Qt.Alignment(5))
self.buffer.setObjectName(_fromUtf8("buffer")) self.buffer.setObjectName(_fromUtf8("buffer"))
self.gridLayout_10.addWidget(self.buffer, 2, 2, 1, 1) self.gridLayout_10.addWidget(self.buffer, 2, 2, 1, 1)
self.label_8 = QLabel(self.gridLayoutWidget_12) self.label_8 = QLabel(self.gridLayoutWidget_12)
@@ -664,7 +664,7 @@ class Ui_SICEN(object):
font.setBold(False) font.setBold(False)
font.setWeight(50) font.setWeight(50)
self.bouton_geom.setFont(font) self.bouton_geom.setFont(font)
self.bouton_geom.setLayoutDirection(QtCore.Qt.LeftToRight) self.bouton_geom.setLayoutDirection(QtCore.Qt.LayoutDirection(0))
self.bouton_geom.setText(_fromUtf8("")) self.bouton_geom.setText(_fromUtf8(""))
self.bouton_geom.setIconSize(QtCore.QSize(20, 20)) self.bouton_geom.setIconSize(QtCore.QSize(20, 20))
self.bouton_geom.setObjectName(_fromUtf8("bouton_geom")) self.bouton_geom.setObjectName(_fromUtf8("bouton_geom"))
+21 -21
View File
@@ -1,7 +1,7 @@
<plugins> <plugins>
<pyqgis_plugin name="CenRa_POSTGIS" version="2.9"> <pyqgis_plugin name="CenRa_POSTGIS" version="3.0">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>2.9</version> <version>3.0</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_POSTGIS.zip</file_name> <file_name>CenRa_POSTGIS.zip</file_name>
@@ -10,15 +10,15 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_POSTGIS.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_POSTGIS.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-02-06</create_date> <create_date>2024-02-06</create_date>
<update_date>2025-04-09</update_date> <update_date>2025-05-19</update_date>
<experimental>False</experimental> <experimental>False</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,postgis</tags> <tags>cenra,postgis</tags>
</pyqgis_plugin> </pyqgis_plugin>
<pyqgis_plugin name="CenRa_COPIE" version="2.4"> <pyqgis_plugin name="CenRa_COPIE" version="3.0">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>2.4</version> <version>3.0</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_COPIE.zip</file_name> <file_name>CenRa_COPIE.zip</file_name>
@@ -27,15 +27,15 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_COPIE.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_COPIE.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-02-06</create_date> <create_date>2024-02-06</create_date>
<update_date>2025-04-09</update_date> <update_date>2025-05-19</update_date>
<experimental>False</experimental> <experimental>False</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,copie</tags> <tags>cenra,copie</tags>
</pyqgis_plugin> </pyqgis_plugin>
<pyqgis_plugin name="CenRa_SICEN" version="1.11"> <pyqgis_plugin name="CenRa_SICEN" version="2.0">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>1.11</version> <version>2.0</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_SICEN.zip</file_name> <file_name>CenRa_SICEN.zip</file_name>
@@ -44,15 +44,15 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_SICEN.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_SICEN.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-02-06</create_date> <create_date>2024-02-06</create_date>
<update_date>2025-04-09</update_date> <update_date>2025-05-19</update_date>
<experimental>False</experimental> <experimental>False</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,sicen</tags> <tags>cenra,sicen</tags>
</pyqgis_plugin> </pyqgis_plugin>
<pyqgis_plugin name="CenRa_FLUX" version="2.9"> <pyqgis_plugin name="CenRa_FLUX" version="3.2">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>2.9</version> <version>3.2</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_FLUX.zip</file_name> <file_name>CenRa_FLUX.zip</file_name>
@@ -61,15 +61,15 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_FLUX.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_FLUX.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-02-06</create_date> <create_date>2024-02-06</create_date>
<update_date>2025-04-09</update_date> <update_date>2025-07-22</update_date>
<experimental>False</experimental> <experimental>False</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,flux</tags> <tags>cenra,flux</tags>
</pyqgis_plugin> </pyqgis_plugin>
<pyqgis_plugin name="CenRa_METABASE" version="0.2.3"> <pyqgis_plugin name="CenRa_METABASE" version="0.3.0">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>0.2.3</version> <version>0.3.0</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_METABASE.zip</file_name> <file_name>CenRa_METABASE.zip</file_name>
@@ -78,15 +78,15 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_METABASE.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_METABASE.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-09-12</create_date> <create_date>2024-09-12</create_date>
<update_date>2025-04-09</update_date> <update_date>2025-05-19</update_date>
<experimental>True</experimental> <experimental>True</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,metabase</tags> <tags>cenra,metabase</tags>
</pyqgis_plugin> </pyqgis_plugin>
<pyqgis_plugin name="CenRa_AUTOMAP" version="1.6"> <pyqgis_plugin name="CenRa_AUTOMAP" version="2.0">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>1.6</version> <version>2.0</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_AUTOMAP.zip</file_name> <file_name>CenRa_AUTOMAP.zip</file_name>
@@ -95,15 +95,15 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_AUTOMAP.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_AUTOMAP.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-09-25</create_date> <create_date>2024-09-25</create_date>
<update_date>2025-04-09</update_date> <update_date>2025-05-19</update_date>
<experimental>False</experimental> <experimental>False</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,mise en page,atlas</tags> <tags>cenra,mise en page,atlas</tags>
</pyqgis_plugin> </pyqgis_plugin>
<pyqgis_plugin name="CenRa_PAGERENDER" version="0.1.6"> <pyqgis_plugin name="CenRa_PAGERENDER" version="0.2.0">
<description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description> <description>Depot pour les extensiont QGIS du CEN Rhone-Alpes, sur GitHub.</description>
<version>0.1.6</version> <version>0.2.0</version>
<qgis_minimum_version>3.16</qgis_minimum_version> <qgis_minimum_version>3.16</qgis_minimum_version>
<homepage>https://plateformesig.cenra-outils.org/</homepage> <homepage>https://plateformesig.cenra-outils.org/</homepage>
<file_name>CenRa_PAGERENDER.zip</file_name> <file_name>CenRa_PAGERENDER.zip</file_name>
@@ -112,7 +112,7 @@
<download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_PAGERENDER.zip</download_url> <download_url>https://gitea.cenra-outils.org/CEN-RA/Plugin_QGIS/releases/download/latest/CenRa_PAGERENDER.zip</download_url>
<uploaded_by>CEN-Rhone-Alpes</uploaded_by> <uploaded_by>CEN-Rhone-Alpes</uploaded_by>
<create_date>2024-10-09</create_date> <create_date>2024-10-09</create_date>
<update_date>2025-04-03</update_date> <update_date>2025-05-19</update_date>
<experimental>True</experimental> <experimental>True</experimental>
<deprecated>False</deprecated> <deprecated>False</deprecated>
<tags>cenra,mise en page,atlas</tags> <tags>cenra,mise en page,atlas</tags>