# Window.py -- Pamhyr # Copyright (C) 2023 INRAE # # 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 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # -*- coding: utf-8 -*- import os import logging from View.Tools.PamhyrWindow import PamhyrWindow from PyQt5.QtCore import QCoreApplication _translate = QCoreApplication.translate logger = logging.getLogger() from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout from PyQt5.QtCore import QUrl from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings class DocWindow(PamhyrWindow): _pamhyr_ui = "WebView" _pamhyr_name = "Doc" def _path_file(self, filename): return os.path.abspath( os.path.join( os.path.dirname(__file__), "..", "..", "..", "doc", filename ) ) def __init__(self, filename=None, study=None, config=None, parent=None): super(DocWindow, self).__init__( title = self._pamhyr_name, study = study, config = config, options = [], parent = parent ) self.setup_web_engine() self.setup_url(filename) def setup_web_engine(self): vl = self.find(QVBoxLayout, "verticalLayout") self._web_view = QWebEngineView() settings = self._web_view.settings() settings.setAttribute(QWebEngineSettings.PluginsEnabled, True) settings.setAttribute(QWebEngineSettings.JavascriptEnabled, False) vl.addWidget(self._web_view) def setup_url(self, filename): self._web_view.setUrl(QUrl(f"file://{self._path_file(filename)}"))