Don't save/restore the desktop app window geometry if the embedded browser has been disabled.

master
Pacman Ghost 6 years ago
parent 513dbfdfec
commit ee94c53b90
  1. 5
      vasl_templates/main.py
  2. 39
      vasl_templates/main_window.py

@ -104,10 +104,13 @@ def main( template_pack, remote_debugging, debug ):
opengl_type = getattr( Qt, opengl_type )
QApplication.setAttribute( opengl_type )
# check if we should disable the embedded browser
disable_browser = webapp.config.get( "DISABLE_WEBENGINEVIEW" )
# run the application
app = QApplication( sys.argv )
url = "http://localhost:{}".format( port )
main_window = MainWindow( settings, url )
main_window = MainWindow( settings, url, disable_browser )
main_window.show()
ret_code = app.exec_()

@ -8,7 +8,7 @@ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QMessageBox
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile, QWebEnginePage
from PyQt5.QtWebChannel import QWebChannel
from PyQt5.QtGui import QDesktopServices, QIcon
from PyQt5.QtCore import QUrl, pyqtSlot
from PyQt5.QtCore import Qt, QUrl, pyqtSlot
from vasl_templates.webapp.config.constants import APP_NAME
from vasl_templates.webapp import app as webapp
@ -41,7 +41,7 @@ class AppWebPage( QWebEnginePage ):
class MainWindow( QWidget ):
"""Main application window."""
def __init__( self, settings, url ):
def __init__( self, settings, url, disable_browser ):
# initialize
super().__init__()
@ -54,14 +54,18 @@ class MainWindow( QWidget ):
self.setWindowIcon( QIcon(
os.path.join( os.path.split(__file__)[0], "webapp/static/images/snippet.png" )
) )
self.setMinimumSize( 800, 500 )
# restore the window geometry
val = self.settings.value( "MainWindow/geometry" )
if val :
self.restoreGeometry( val )
else :
self.resize( 1000, 600 )
# set the window geometry
if disable_browser:
self.setFixedSize( 300, 100 )
else:
# restore it from the previous session
val = self.settings.value( "MainWindow/geometry" )
if val :
self.restoreGeometry( val )
else :
self.resize( 1000, 600 )
self.setMinimumSize( 800, 500 )
# initialize the layout
# FUDGE! We offer the option to disable the QWebEngineView since getting it to run
@ -70,7 +74,7 @@ class MainWindow( QWidget ):
# and non-technical users can then open an external browser and connect to the webapp
# that way. Sigh...
layout = QVBoxLayout( self )
if not webapp.config.get( "DISABLE_WEBENGINEVIEW" ):
if not disable_browser:
# initialize the web view
self._view = QWebEngineView()
@ -100,12 +104,16 @@ class MainWindow( QWidget ):
# show a minimal UI
label = QLabel()
label.setText( "Running the {} application.\n\nClose this window when you're done.".format( APP_NAME ) )
label.setTextFormat( Qt.RichText )
label.setText(
"Running the <em>{}</em> application. <br>" \
"Click <a href='{}'>here</a> to connect." \
"<p> Close this window when you're done.".format(
APP_NAME, url
) )
label.setOpenExternalLinks( True )
layout.addWidget( label )
# open the webapp in an external browser
QDesktopServices.openUrl( QUrl(url) )
def closeEvent( self, evt ) :
"""Handle requests to close the window (i.e. exit the application)."""
@ -115,7 +123,8 @@ class MainWindow( QWidget ):
def close_window():
"""Close the main window."""
self.settings.setValue( "MainWindow/geometry" , self.saveGeometry() )
if self._view:
self.settings.setValue( "MainWindow/geometry" , self.saveGeometry() )
self.close()
# check if the scenario is dirty

Loading…
Cancel
Save