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 getPageId(self): return self.page 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