forked from CEN-RA/Plugin_QGIS
144 lines
4.9 KiB
Python
144 lines
4.9 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>
|
||
'''
|
||
from pg_metadata.connection_manager import (
|
||
store_connections,
|
||
validate_connections_names,
|
||
)
|
||
|
||
|
||
from pg_metadata.locator import LocatorFilter
|
||
from pg_metadata.processing.provider import PgMetadataProvider
|
||
from pg_metadata.qgis_plugin_tools.tools.custom_logging import setup_logger
|
||
'''
|
||
import os
|
||
from .tools.resources import (
|
||
plugin_path,
|
||
resources_path,
|
||
maj_verif,
|
||
)
|
||
from .canvas_editor import AutoMap_Editor
|
||
from .about_form import AutoMapAboutDialog
|
||
|
||
from PyQt5.QtCore import *
|
||
|
||
class PgAutoMap:
|
||
def __init__(self):
|
||
""" Constructor. """
|
||
self.canvas_editor = 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('CenIsere_AUTOMAP','version')
|
||
s = QSettings()
|
||
versionUse = s.value("automap/version", 1, type=str)
|
||
if str(versionUse) != str(version) :
|
||
s.setValue("automap/version", str(version))
|
||
print(versionUse,version)
|
||
self.open_about_dialog()
|
||
|
||
def initGui(self):
|
||
""" Build the plugin GUI. """
|
||
|
||
self.toolBar = iface.addToolBar("CenIsere_AutoMap")
|
||
self.toolBar.setObjectName("CenIsere_AutoMap")
|
||
|
||
icon = QIcon(resources_path('icons', 'icon.png'))
|
||
|
||
# Open the online help
|
||
self.help_action = QAction(icon, 'CenIsere_AutoMap', iface.mainWindow())
|
||
iface.pluginHelpMenu().addAction(self.help_action)
|
||
self.help_action.triggered.connect(self.open_help)
|
||
if not self.canvas_editor:
|
||
self.canvas_editor = AutoMap_Editor()
|
||
|
||
|
||
self.automap_action = QAction(icon, 'CenIsere_AutoMap',None)
|
||
self.toolBar.addAction(self.automap_action)
|
||
self.automap_action.triggered.connect(self.open_editor)
|
||
# '''
|
||
# if not self.locator_filter:
|
||
# self.locator_filter = LocatorFilter(iface)
|
||
# iface.registerLocatorFilter(self.locator_filter)
|
||
|
||
# @staticmethod
|
||
# def check_invalid_connection_names():
|
||
# """ Check for invalid connection names in the QgsSettings. """
|
||
# valid, invalid = validate_connections_names()
|
||
# n_invalid = len(invalid)
|
||
|
||
# if n_invalid == 0:
|
||
# return
|
||
|
||
# invalid_text = ', '.join(invalid)
|
||
# msg = QMessageBox()
|
||
# msg.setIcon(QMessageBox.Warning)
|
||
# msg.setWindowTitle(tr('PgMetadata: Database connection(s) not available'))
|
||
# msg.setText(tr(
|
||
# f'{n_invalid} connection(s) listed in PgMetadata’s settings are invalid or '
|
||
# f'no longer available: {invalid_text}'))
|
||
# msg.setInformativeText(tr(
|
||
# 'Do you want to remove these connection(s) from the PgMetadata settings? '
|
||
# '(You can also do this later with the “Set Connections” tool.)'))
|
||
# msg.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
|
||
# clicked = msg.exec()
|
||
|
||
# if clicked == QMessageBox.Yes:
|
||
# iface.messageBar().pushSuccess('PgMetadata', tr(f'{n_invalid} invalid connection(s) removed.'))
|
||
# store_connections(valid)
|
||
# if clicked == QMessageBox.No:
|
||
# iface.messageBar().pushInfo('PgMetadata', tr(f'Keeping {n_invalid} invalid connections.'))
|
||
# '''
|
||
def open_about_dialog(self):
|
||
"""
|
||
About dialog
|
||
"""
|
||
dialog = AutoMapAboutDialog(iface)
|
||
dialog.exec_()
|
||
|
||
def open_help():
|
||
""" Open the online help. """
|
||
# QDesktopServices.openUrl(QUrl('https://plateformesig.CenIsere-outils.org/'))
|
||
|
||
def open_editor(self):
|
||
self.canvas_editor.show()
|
||
self.canvas_editor.raise_()
|
||
|
||
def unload(self):
|
||
""" Unload the plugin. """
|
||
if self.canvas_editor:
|
||
iface.removePluginMenu('CenIsere_AutoMap',self.automap_action)
|
||
|
||
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
|