forked from CEN-RA/Plugin_QGIS
115 lines
3.6 KiB
Python
115 lines
3.6 KiB
Python
__copyright__ = "Copyright 2021, 3Liz"
|
|
__license__ = "GPL version 3"
|
|
__email__ = "info@3liz.org"
|
|
|
|
|
|
from qgis.core import QgsApplication
|
|
from qgis.PyQt.QtCore import QCoreApplication, Qt, QTranslator, QUrl
|
|
from qgis.PyQt.QtGui import QDesktopServices, QIcon
|
|
from qgis.PyQt.QtWidgets import QAction, QMessageBox
|
|
from qgis.utils import iface
|
|
import qgis
|
|
|
|
|
|
#include <QSettings>
|
|
|
|
import os
|
|
from .tools.resources import (
|
|
plugin_path,
|
|
resources_path,
|
|
maj_verif,
|
|
)
|
|
from .postgis_editor import Postgis_Editor
|
|
from .postgis_creator import Postgis_Creator
|
|
from .about_form import PostgisAboutDialog
|
|
|
|
from PyQt5.QtCore import *
|
|
|
|
class PgPostgis:
|
|
def __init__(self):
|
|
""" Constructor. """
|
|
self.action_editor = None
|
|
self.action_creator = None
|
|
# self.issues = None
|
|
self.provider = None
|
|
self.locator_filter = None
|
|
self.dock_action = None
|
|
self.help_action = None
|
|
plugin_dir = os.path.dirname(__file__)
|
|
end_find = plugin_dir.rfind('\\')+1
|
|
global NAME
|
|
NAME = plugin_dir[end_find:]
|
|
maj_verif(NAME)
|
|
|
|
# Display About window on first use
|
|
version = qgis.utils.pluginMetadata('CenRa_POSTGIS','version')
|
|
s = QSettings()
|
|
versionUse = s.value("postgis/version", 1, type=str)
|
|
if str(versionUse) != str(version) :
|
|
s.setValue("postgis/version", str(version))
|
|
print(versionUse,version)
|
|
self.open_about_dialog()
|
|
|
|
def initGui(self):
|
|
""" Build the plugin GUI. """
|
|
|
|
self.toolBar = iface.addToolBar("CenRa_Postgis")
|
|
self.toolBar.setObjectName("CenRa_Postgis")
|
|
|
|
icon = QIcon(resources_path('icons', 'page_new.png'))
|
|
icon2 = QIcon(resources_path('icons', 'page_ajout.png'))
|
|
|
|
# Open the online help
|
|
self.help_action = QAction(icon, "CenRa_Postgis", iface.mainWindow())
|
|
iface.pluginHelpMenu().addAction(self.help_action)
|
|
self.help_action.triggered.connect(self.open_help)
|
|
if not self.action_creator:
|
|
self.action_creator = Postgis_Creator()
|
|
|
|
self.postgis_creator = QAction(icon, 'dossier_creator',None)
|
|
self.toolBar.addAction(self.postgis_creator)
|
|
self.postgis_creator.triggered.connect(self.open_creator)
|
|
if not self.action_editor:
|
|
self.action_editor = Postgis_Editor()
|
|
|
|
self.postgis_editor = QAction(icon2, 'dossier_editor',None)
|
|
self.toolBar.addAction(self.postgis_editor)
|
|
self.postgis_editor.triggered.connect(self.open_editor)
|
|
|
|
def open_about_dialog(self):
|
|
"""
|
|
About dialog
|
|
"""
|
|
dialog = PostgisAboutDialog(iface)
|
|
dialog.exec_()
|
|
def open_help():
|
|
""" Open the online help. """
|
|
QDesktopServices.openUrl(QUrl('https://plateformesig.cenra-outils.org/'))
|
|
|
|
def open_editor(self):
|
|
self.action_editor.show()
|
|
self.action_editor.raise_()
|
|
|
|
def open_creator(self):
|
|
self.action_creator.show()
|
|
self.action_creator.raise_()
|
|
|
|
def unload(self):
|
|
""" Unload the plugin. """
|
|
if self.action_editor:
|
|
iface.removePluginMenu('CenRa_Postgis',self.postgis_editor)
|
|
if self.action_creator:
|
|
iface.removePluginMenu('CenRa_Postgis',self.postgis_creator)
|
|
|
|
if self.provider:
|
|
QgsApplication.processingRegistry().removeProvider(self.provider)
|
|
del self.provider
|
|
|
|
if self.locator_filter:
|
|
iface.deregisterLocatorFilter(self.locator_filter)
|
|
del self.locator_filter
|
|
|
|
if self.help_action:
|
|
iface.pluginHelpMenu().removeAction(self.help_action)
|
|
del self.help_action
|