Skip to content

Commit b723a46

Browse files
committed
Release version 1.2
- Fixed browser not blocking urls properly - Added options to disable browser buttons - Added exit url that can be disabled - add pb: urls that spawn popups * pb:exit * pb:about
1 parent 959b8ca commit b723a46

File tree

8 files changed

+49
-20
lines changed

8 files changed

+49
-20
lines changed

browser_config.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,14 @@
44
startingpage = "https://slausonrobotics.top" # if starting page should be different than homepage, set to your homepage URL enclosed in quotes
55
runMode = "fullscreen" # options: fullscreen, maximized, minimized, or normal
66
windowDimensions = [100, 100, 1000, 600] # dimensions: ax, ay, aw, ah (see PyQt5 setGeometry() function)
7-
urlBarDisabled = False
7+
urlBarDisabled = False
8+
showBackButton = True
9+
showForwardButton = True
10+
showRefreshButton = False
11+
showHomeButton = False
12+
13+
#enablePolicyConfirm = True
14+
# pb: url settings below
15+
pbUrlsEnabled = True
16+
exitURLEnabled = False
17+
abouURLEnabled = True

internal/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pass
159 Bytes
Binary file not shown.
606 Bytes
Binary file not shown.

internal/about.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from dialog import CustomDialog
2+
from msg import msgconfig
3+
def ShowAbout():
4+
CustomDialog.NewOkDialog(msgconfig.InternalPageContent.aboutText[0], msgconfig.InternalPageContent.aboutText[1])

main.py

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
CurrentVersion = "1.2"
12
import subprocess
23
from msg import cmdconfig, msgconfig
34
from dialog import CustomDialog
45
import browser_config
6+
from internal import about
57
from subprocess import DEVNULL, STDOUT
68
try:
79
subprocess.run(cmdconfig.installcmd, stdout=DEVNULL, stderr=DEVNULL)
@@ -34,25 +36,26 @@ def __init__(self):
3436
self.url_bar = QLineEdit()
3537
self.url_bar.returnPressed.connect(self.navigateToURL)
3638
self.url_bar.setDisabled(browser_config.urlBarDisabled)
37-
self.go_btn = QPushButton(msgconfig.ButtonText.homeButton)
38-
self.go_btn.clicked.connect(self.navigate_to_home)
39-
40-
self.back_btn = QPushButton(msgconfig.ButtonText.backButton)
41-
self.back_btn.clicked.connect(self.browser.back)
42-
43-
self.forward_btn = QPushButton(msgconfig.ButtonText.forwardButton)
44-
self.forward_btn.clicked.connect(self.browser.forward)
45-
46-
self.refresh_btn = QPushButton(msgconfig.ButtonText.refreshButton)
47-
self.refresh_btn.clicked.connect(self.browser.reload)
39+
if browser_config.showHomeButton:
40+
self.go_btn = QPushButton(msgconfig.ButtonText.homeButton)
41+
self.go_btn.clicked.connect(self.navigate_to_home)
42+
if browser_config.showBackButton:
43+
self.back_btn = QPushButton(msgconfig.ButtonText.backButton)
44+
self.back_btn.clicked.connect(self.browser.back)
45+
if browser_config.showForwardButton:
46+
self.forward_btn = QPushButton(msgconfig.ButtonText.forwardButton)
47+
self.forward_btn.clicked.connect(self.browser.forward)
48+
if browser_config.showRefreshButton:
49+
self.refresh_btn = QPushButton(msgconfig.ButtonText.refreshButton)
50+
self.refresh_btn.clicked.connect(self.browser.reload)
4851

4952
# Layout for navigation bar
5053
nav_layout = QHBoxLayout()
51-
nav_layout.addWidget(self.back_btn)
52-
nav_layout.addWidget(self.forward_btn)
53-
nav_layout.addWidget(self.refresh_btn)
54+
if browser_config.showBackButton: nav_layout.addWidget(self.back_btn)
55+
if browser_config.showForwardButton: nav_layout.addWidget(self.forward_btn)
56+
if browser_config.showRefreshButton: nav_layout.addWidget(self.refresh_btn)
5457
nav_layout.addWidget(self.url_bar)
55-
nav_layout.addWidget(self.go_btn)
58+
if browser_config.showHomeButton: nav_layout.addWidget(self.go_btn)
5659

5760
# Main layout
5861
main_layout = QVBoxLayout()
@@ -67,6 +70,17 @@ def __init__(self):
6770
# Update URL bar when URL changes
6871
self.browser.urlChanged.connect(self.update_url_bar)
6972
def navigateToURL(self):
73+
if self.url_bar.text().startswith("pb:") and browser_config.pbUrlsEnabled:
74+
if self.url_bar.text() == "pb:exit" and browser_config.exitURLEnabled: exit()
75+
elif self.url_bar.text() == "pb:exit": self.browser.setUrl(QUrl(""))
76+
if self.url_bar.text() == "pb:about" and browser_config.abouURLEnabled: about.ShowAbout()
77+
elif self.url_bar.text() == "pb:about": self.browser.setUrl(QUrl(""))
78+
79+
for url in browser_config.url_blocklist:
80+
if url in self.url_bar.text():
81+
CustomDialog.NewOkDialog(msgconfig.ErrorMsg.siteBlockedError[0], msgconfig.ErrorMsg.siteBlockedError[1])
82+
self.url_bar.setText("")
83+
return
7084
if not self.url_bar.text().startswith(("https://", "http://")):
7185
self.url_bar.setText("http://" + self.url_bar.text())
7286
self.browser.setUrl(QUrl(self.url_bar.text()))
@@ -77,9 +91,6 @@ def navigate_to_home(self):
7791

7892
def update_url_bar(self, q):
7993
self.url_bar.setText(q.toString())
80-
if str(self.browser.url().toString()).startswith(tuple(browser_config.url_blocklist)):
81-
self.browser.setUrl(QUrl(browser_config.homepage))
82-
CustomDialog.NewOkDialog(msgconfig.ErrorMsg.siteBlockedError[0], msgconfig.ErrorMsg.siteBlockedError[1])
8394

8495

8596

365 Bytes
Binary file not shown.

msg/msgconfig.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
CURRENTVERSION="1.2"
12
# title, msg
23
openBrowserConfirmation = ["", "Are you sure you want to start the browser?"]
34
# error msgs
@@ -12,4 +13,6 @@ class ButtonText():
1213
homeButton = "Home"
1314
backButton = "Back"
1415
forwardButton = "Forward"
15-
refreshButton = "Refresh"
16+
refreshButton = "Refresh"
17+
class InternalPageContent():
18+
aboutText = ["About This Program", f"Poly Browser version {CURRENTVERSION}\nDeveloped by Matt Fichter with the help of AI"]

0 commit comments

Comments
 (0)