Skip to content

Commit

Permalink
Register custom profile source in QgsProfileSourceRegistry from plugi…
Browse files Browse the repository at this point in the history
…n's initGui() and unregister it from registry in plugin's unload()
  • Loading branch information
gacarrillor committed Apr 26, 2024
1 parent 2e7c743 commit 4b89f81
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion swiss_locator/swiss_locator_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import os
from PyQt5.QtCore import QCoreApplication, QLocale, QSettings, QTranslator
from PyQt5.QtWidgets import QWidget
from qgis.core import Qgis, NULL
from qgis.core import Qgis, QgsApplication, NULL
from qgis.gui import QgisInterface, QgsMessageBarItem

from swiss_locator.core.filters.swiss_locator_filter_feature import (
Expand All @@ -33,6 +33,7 @@
SwissLocatorFilterLocation,
)
from swiss_locator.core.filters.swiss_locator_filter_wmts import SwissLocatorFilterWMTS
from swiss_locator.core.profiles.profile_generator import SwissProfileSource


class SwissLocatorPlugin:
Expand All @@ -49,6 +50,7 @@ def __init__(self, iface: QgisInterface):
QCoreApplication.installTranslator(self.translator)

self.locator_filters = []
self.profile_source = SwissProfileSource()

def initGui(self):
for _filter in (
Expand All @@ -61,11 +63,15 @@ def initGui(self):
self.iface.registerLocatorFilter(self.locator_filters[-1])
self.locator_filters[-1].message_emitted.connect(self.show_message)

QgsApplication.profileSourceRegistry().registerProfileSource(self.profile_source)

def unload(self):
for locator_filter in self.locator_filters:
locator_filter.message_emitted.disconnect(self.show_message)
self.iface.deregisterLocatorFilter(locator_filter)

QgsApplication.profileSourceRegistry().unregisterProfileSource(self.profile_source)

def show_message(
self, title: str, msg: str, level: Qgis.MessageLevel, widget: QWidget = None
):
Expand Down

0 comments on commit 4b89f81

Please sign in to comment.