Source code for marche_a_lombre.marche_a_lombre

# -*- coding: utf-8 -*-

# /***************************************************************************
#  MarcheALOmbre
#                                  A QGIS plugin
#  This plugin calculates for a given hike the shady and sunny parts
#  Generated by Plugin Builder: http://g-sherman.github.io/Qgis-Plugin-Builder/
#                               -------------------
#         begin                : 2025-12-11
#         copyright            : (C) 2025 by Yolanda Seifert
#         email                : yolanda.seifert@gmx.de
#  ***************************************************************************/

# /***************************************************************************
#  *                                                                         *
#  *   This program is free software; you can redistribute it and/or modify  *
#  *   it under the terms of the GNU General Public License as published by  *
#  *   the Free Software Foundation; either version 2 of the License, or     *
#  *   (at your option) any later version.                                   *
#  *                                                                         *
#  ***************************************************************************/

__author__ = 'Yolanda Seifert'
__date__ = '2025-12-11'
__copyright__ = '(C) 2025 by Yolanda Seifert'

# This will get replaced with a git SHA1 when you do a git archive

__revision__ = '$Format:%H$'

import os
import sys
import inspect
import webbrowser

from qgis.core import QgsProcessingAlgorithm, QgsApplication
from .marche_a_lombre_provider import MarcheALOmbreProvider
from qgis.PyQt.QtWidgets import QAction
from qgis.PyQt.QtGui import QIcon

from qgis.core import QgsProcessingAlgorithm, QgsApplication
import processing

cmd_folder = os.path.split(inspect.getfile(inspect.currentframe()))[0]

if cmd_folder not in sys.path:
    sys.path.insert(0, cmd_folder)


[docs] class MarcheALOmbrePlugin(object): def __init__(self, iface): self.provider = None self.iface = iface
[docs] def initProcessing(self): """Init Processing provider for QGIS >= 3.8.""" self.provider = MarcheALOmbreProvider() QgsApplication.processingRegistry().addProvider(self.provider)
[docs] def initGui(self): self.initProcessing() icon = os.path.join(os.path.join(cmd_folder, 'logo.png')) self.action = QAction( QIcon(icon), u"Marche à l'ombre", self.iface.mainWindow()) self.action.triggered.connect(self.run) self.help_action = QAction(u"Help", self.iface.mainWindow()) self.help_action.triggered.connect(self.open_help) self.iface.addPluginToMenu(u"&MarcheALOmbre", self.action) self.iface.addPluginToMenu(u"&MarcheALOmbre", self.help_action) self.iface.addToolBarIcon(self.action)
[docs] def unload(self): QgsApplication.processingRegistry().removeProvider(self.provider) self.iface.removePluginMenu(u"&MarcheALOmbre", self.action) self.iface.removePluginMenu(u"&MarcheALOmbre", self.help_action) self.iface.removeToolBarIcon(self.action)
[docs] def open_help(self): """Opens the documentation in a web browser""" help_path = os.path.join(cmd_folder, 'help', 'build', 'html', 'index.html') if os.path.exists(help_path): webbrowser.open(f"file://{help_path}") else: # Fallback if local help isn't built webbrowser.open("https://github.com/yolanda225/qgis-marche-a-lombre")
[docs] def run(self): processing.execAlgorithmDialog("marchealombre:marche_a_lombre")