11
2- import subprocess
2+
33from msg import cmdconfig , msgconfig
44from dialog import CustomDialog
5- import browser_config
5+ from browser_config import Config
66from internal import pb_url
7- from subprocess import DEVNULL , STDOUT
8- try :
9- subprocess .run (cmdconfig .installcmd , stdout = DEVNULL , stderr = DEVNULL )
10- from PyQt5 .QtWidgets import QApplication , QMainWindow , QLineEdit , QPushButton , QHBoxLayout , QVBoxLayout , QWidget , QMessageBox , QDialog , QLabel ,QDialogButtonBox
11- from PyQt5 .QtWebEngineWidgets import QWebEngineView
12- from PyQt5 .QtCore import QUrl
13- except ImportError as e :
14- CustomDialog .NewOkDialog ("Error" , msgconfig .ErrorMsg .importErrorMsg (e ))
15- exit (1 )
7+ from time import sleep
8+
9+
10+ from PyQt5 .QtWidgets import QApplication , QMainWindow , QLineEdit , QPushButton , QHBoxLayout , QVBoxLayout , QWidget , QMessageBox , QDialog , QLabel ,QDialogButtonBox
11+ from PyQt5 .QtWebEngineWidgets import QWebEngineView
12+ from PyQt5 .QtCore import QUrl
13+
14+
1615import sys
1716
1817
1918class SimpleBrowser (QMainWindow ):
2019 def __init__ (self ):
2120 super ().__init__ ()
2221
23- self .setGeometry (browser_config .windowDimensions [0 ], browser_config .windowDimensions [1 ], browser_config .windowDimensions [2 ], browser_config .windowDimensions [3 ])
22+ self .setGeometry (Config .windowDimensions [0 ], Config .windowDimensions [1 ], Config .windowDimensions [2 ], Config .windowDimensions [3 ])
2423
2524 # Create browser widget
2625 self .browser = QWebEngineView ()
27- self .browser .setUrl (QUrl (browser_config .startingpage ))
28- if browser_config .runMode .lower () == "fullscreen" : self .showFullScreen ()
29- if browser_config .runMode .lower () == "maximized" : self .showMaximized ()
30- if browser_config .runMode .lower () == "minimized" : self .showMinimized ()
31- if browser_config .runMode .lower () == "normal" : self .showNormal ()
32- if browser_config .runMode .lower () not in ['normal' , 'minimized' , 'maximized' , 'fullscreen' ]:
26+ self .browser .setUrl (QUrl (Config .startingpage ))
27+ if Config .runMode .lower () == "fullscreen" : self .showFullScreen ()
28+ if Config .runMode .lower () == "maximized" : self .showMaximized ()
29+ if Config .runMode .lower () == "minimized" : self .showMinimized ()
30+ if Config .runMode .lower () == "normal" : self .showNormal ()
31+ if Config .runMode .lower () not in ['normal' , 'minimized' , 'maximized' , 'fullscreen' ]:
3332 CustomDialog .NewOkDialog ("Error" , msgconfig .ErrorMsg .invalidParamError )
3433 exit (1 )
3534 # Create navigation bar
3635 self .url_bar = QLineEdit ()
3736 self .url_bar .returnPressed .connect (self .navigateToURL )
38- self .url_bar .setDisabled (browser_config .urlBarDisabled )
39- if browser_config .showHomeButton :
37+ self .url_bar .setDisabled (Config .urlBarDisabled )
38+ if Config .showHomeButton :
4039 self .go_btn = QPushButton (msgconfig .ButtonText .homeButton )
4140 self .go_btn .clicked .connect (self .navigate_to_home )
42- if browser_config .showBackButton :
41+ if Config .showBackButton :
4342 self .back_btn = QPushButton (msgconfig .ButtonText .backButton )
4443 self .back_btn .clicked .connect (self .browser .back )
45- if browser_config .showForwardButton :
44+ if Config .showForwardButton :
4645 self .forward_btn = QPushButton (msgconfig .ButtonText .forwardButton )
4746 self .forward_btn .clicked .connect (self .browser .forward )
48- if browser_config .showRefreshButton :
47+ if Config .showRefreshButton :
4948 self .refresh_btn = QPushButton (msgconfig .ButtonText .refreshButton )
5049 self .refresh_btn .clicked .connect (self .browser .reload )
5150
5251 # Layout for navigation bar
5352 nav_layout = QHBoxLayout ()
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 )
53+ if Config .showBackButton : nav_layout .addWidget (self .back_btn )
54+ if Config .showForwardButton : nav_layout .addWidget (self .forward_btn )
55+ if Config .showRefreshButton : nav_layout .addWidget (self .refresh_btn )
5756 nav_layout .addWidget (self .url_bar )
58- if browser_config .showHomeButton : nav_layout .addWidget (self .go_btn )
57+ if Config .showHomeButton : nav_layout .addWidget (self .go_btn )
5958
6059 # Main layout
6160 main_layout = QVBoxLayout ()
6261 main_layout .addLayout (nav_layout )
6362 main_layout .addWidget (self .browser )
64-
63+
6564 # Main widget
6665 container = QWidget ()
6766 container .setLayout (main_layout )
6867 self .setCentralWidget (container )
6968
7069 # Update URL bar when URL changes
7170 self .browser .urlChanged .connect (self .update_url_bar )
71+ self .browser .loadStarted .connect (self .onLoadStarted )
72+ self .browser .loadFinished .connect (self .onLoadFinished )
7273 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 ()
74+ if self .url_bar .text ().startswith ("pb:" ) and Config .pbUrlsEnabled :
75+ if self .url_bar .text () == "pb:exit" and Config .exitURLEnabled : exit ()
7576 elif self .url_bar .text () == "pb:exit" : self .browser .setUrl (QUrl ("" ))
76- if self .url_bar .text () == "pb:about" and browser_config .aboutURLEnabled : pb_url .ShowAbout ()
77+ if self .url_bar .text () == "pb:about" and Config .aboutURLEnabled : pb_url .ShowAbout ()
7778 elif self .url_bar .text () == "pb:about" : self .browser .setUrl (QUrl ("" ))
78- if self .url_bar .text () == "pb:policy" and browser_config .policyURLEnabled : pb_url .ShowPolicy ()
79+ if self .url_bar .text () == "pb:policy" and Config .policyURLEnabled : pb_url .ShowPolicy ()
80+ elif self .url_bar .text () == "pb:policy" : self .browser .setUrl (QUrl ("" ))
7981
80- for url in browser_config .url_blocklist :
82+ for url in Config .url_blocklist :
8183 if url in self .url_bar .text ():
8284 CustomDialog .NewOkDialog (msgconfig .ErrorMsg .siteBlockedError [0 ], msgconfig .ErrorMsg .siteBlockedError [1 ])
8385 self .url_bar .setText ("" )
@@ -88,10 +90,24 @@ def navigateToURL(self):
8890
8991 def navigate_to_home (self ):
9092
91- self .browser .setUrl (QUrl (browser_config .homepage ))
93+ self .browser .setUrl (QUrl (Config .homepage ))
9294
9395 def update_url_bar (self , q ):
9496 self .url_bar .setText (q .toString ())
97+ def onLoadStarted (self ):
98+ if Config .showRefreshButton :
99+ self .refresh_btn .setText ("Loading..." )
100+ self .refresh_btn .setDisabled (True )
101+ else :
102+ print ("Started page loading..." )
103+ def onLoadFinished (self ):
104+ if Config .showRefreshButton :
105+ # self.refresh_btn.setText("Finished!")
106+
107+ self .refresh_btn .setText ("Refresh" )
108+ self .refresh_btn .setDisabled (False )
109+ else :
110+ print ("Finished page loading!" )
95111
96112
97113
0 commit comments