79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
import base
|
|
from callhandler import CallHandler
|
|
from browser import Browser
|
|
from PyQt6.QtCore import Qt
|
|
from PyQt6.QtWidgets import QMainWindow, QWidget, QVBoxLayout
|
|
|
|
class Sight(QWidget):
|
|
def __init__(self, id, page):
|
|
super().__init__()
|
|
|
|
self.id = id
|
|
self.page = page
|
|
self.data = {} # private data(s) of the sight
|
|
self.children = []
|
|
self.parent = None
|
|
|
|
base.data["active_sight"] = self.id
|
|
self.title = id
|
|
|
|
if base.frameSupported():
|
|
self.setWindowFlags(Qt.WindowType(0x00000800)) # remove the os windows frame (borders, close and other buttons
|
|
self.setAttribute(Qt.WidgetAttribute(0x78)) # (int: 120)) # Make Transparent
|
|
|
|
self.browser = Browser()
|
|
self.browser.addObject('handler', CallHandler(self) )
|
|
|
|
#self.browser.loadAdminContent(page)
|
|
if "sight-admin" in id:
|
|
self.browser.loadAdminContent(page)
|
|
else:
|
|
self.browser.loadContent(page)
|
|
|
|
self.layout = QVBoxLayout()
|
|
self.layout.addWidget(self.browser)
|
|
self.layout.setSpacing(0);
|
|
self.layout.setContentsMargins(1, 1, 1, 1); #Need 1,1,1,1 if it is 0,0,0,0 I got setgeometry warnings
|
|
|
|
self.setLayout(self.layout)
|
|
|
|
# use when the frameSupported is False (for instance wayland)
|
|
def closeEvent(self, event):
|
|
base.sights.close(self.id)
|
|
|
|
def getParent(self):
|
|
return self.parent
|
|
|
|
def setParent(self, id):
|
|
self.parent = id
|
|
|
|
def addChild(self, id):
|
|
self.children.insert(0, id)
|
|
print(self.children)
|
|
|
|
def getChildren(self):
|
|
return self.children
|
|
|
|
def removeChild(self, id):
|
|
if id in self.children:
|
|
self.children.remove(id)
|
|
print(self.children)
|
|
|
|
def setLayoutContentMargins(self,a,b,c,d):
|
|
self.layout.setContentsMargins(a, b, c, d)
|
|
|
|
def setTitle(self, title):
|
|
self.title = title
|
|
|
|
def getTitle(self):
|
|
return self.title
|
|
def getId(self):
|
|
return self.id
|
|
def addData(self, key, value):
|
|
self.data[key] = value
|
|
def getData(self, key):
|
|
if key in self.data:
|
|
return self.data[key]
|
|
return None
|
|
|