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

__author__ = 'wanger'
__date__ = '2024-08-21'
__copyright__ = '(C) 2024 by siwei'
__revision__ = '1.0'

from typing import Optional

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QIcon
from PyQt5.QtNetwork import QNetworkCookie
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView
import sys


class CustomWebView:
    def __init__(
            self,
            weburi: str,  # webview uri
            title: Optional[str] = "自定义窗口",  # window title
            cookieName: Optional[str] = None,  # cookie name
            cookieValue: Optional[str] = None,  # cookie value
            windowW: Optional[int] = 1200,  # window min width default 1200
            windowH: Optional[int] = 700,  # window min height default 1200
            icon: Optional[str] = "E:\\projects\\sanya\\real3d-portalsite\\src\\assets\\logo.png",
            # window icon type png
    ):
        self.uri = weburi
        app = QApplication(sys.argv)
        web_view = QWebEngineView()
        web_view.setWindowTitle(title)
        web_view.setMinimumSize(windowW, windowH)
        web_view.setWindowIcon(QIcon(icon))
        page = QWebEnginePage()
        page.load(QUrl(self.uri))
        web_view.setPage(page)
        if cookieName is not None and cookieValue is not None:
            # Cookie
            netcookie = QNetworkCookie()
            netcookie.setName(bytes(cookieName, encoding='utf-8'))
            netcookie.setValue(bytes(cookieValue, encoding='utf-8'))
            page.profile().cookieStore().setCookie(netcookie, QUrl(self.uri))
        web_view.show()
        sys.exit(app.exec_())
