-
Notifications
You must be signed in to change notification settings - Fork 0
/
docview.py
100 lines (78 loc) · 2.86 KB
/
docview.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import os
import platform
import sys
import json
from qtpy.QtCore import *
from qtpy.QtGui import *
from qtpy.QtWebEngineWidgets import *
from qtpy.QtWidgets import *
from QCustomWidgets import KBMainWindow
import qtawesome as qta
from utils import load_theme, detect_dark
START_FULL_SCREEN = False
EMULATE_REAL_REMOTE = True
# windows support
if platform.system() == "Windows":
import ctypes
WIN_APP_ID = "kevinbot.kevinbot.remote.sysinfo" # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(WIN_APP_ID)
settings = json.load(open("settings.json", encoding="utf-8"))
class MainWindow(KBMainWindow):
"""Kevinbot About App Window"""
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle("Remote Info")
self.setWindowIcon(
QIcon(os.path.join(os.path.dirname(__file__), "icons/help.svg"))
)
try:
load_theme(
self,
settings["window_properties"]["theme"],
settings["window_properties"]["theme_colors"],
)
except NameError:
load_theme(self, settings["window_properties"]["theme"])
if EMULATE_REAL_REMOTE:
self.setWindowFlags(Qt.FramelessWindowHint)
self.setFixedSize(QSize(800, 480))
self.ensurePolished()
if detect_dark(
(
QColor(self.palette().color(QPalette.Window)).getRgb()[0],
QColor(self.palette().color(QPalette.Window)).getRgb()[1],
QColor(self.palette().color(QPalette.Window)).getRgb()[2],
)
):
self.fg_color = Qt.GlobalColor.white
else:
self.fg_color = Qt.GlobalColor.black
self.widget = QWidget(self)
self.setCentralWidget(self.widget)
self.layout = QVBoxLayout()
self.widget.setLayout(self.layout)
self.browser = QWebEngineView()
self.layout.addWidget(self.browser)
self.browser.load(
QUrl().fromLocalFile(
os.path.split(os.path.abspath(__file__))[0] + r"/built_docs/index.html"
)
)
self.close_button = QPushButton()
self.close_button.setIcon(qta.icon("fa5s.window-close", color="#F44336"))
self.close_button.setIconSize(QSize(22, 22))
self.close_button.clicked.connect(self.close)
self.close_button.setFixedSize(QSize(36, 24))
self.layout.addWidget(self.close_button, alignment=Qt.AlignmentFlag.AlignCenter)
if settings["dev_mode"]:
self.createDevTools()
if START_FULL_SCREEN:
self.showFullScreen()
else:
self.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setApplicationName("Remote Info")
app.setApplicationVersion("1.0")
window = MainWindow()
sys.exit(app.exec_())