"""Implement the "about" dialog.""" import os import json import time from PyQt5 import uic from PyQt5.QtWidgets import QDialog from vasl_templates.webapp.config.constants import APP_NAME, APP_VERSION, BASE_DIR # --------------------------------------------------------------------- class AboutDialog( QDialog ): """Show the about box.""" def __init__( self, parent ) : # initialize super().__init__( parent=parent ) # initialize the UI base_dir = os.path.split( __file__ )[0] dname = os.path.join( base_dir, "ui/about.ui" ) uic.loadUi( dname, self ) self.setFixedSize( self.size() ) self.close_button.clicked.connect( self.on_close ) # get the build info dname = os.path.join( BASE_DIR, "config" ) fname = os.path.join( dname, "build-info.json" ) if os.path.isfile( fname ): build_info = json.load( open( fname, "r" ) ) else: build_info = None # load the dialog self.app_name.setText( "{} ({})".format( APP_NAME, APP_VERSION ) ) self.license.setText( "Licensed under the GNU Affero General Public License (v3)." ) if build_info: timestamp = build_info[ "timestamp" ] self.build_info.setText( "Built {}.".format( time.strftime( "%d %B %Y %H:%S", time.localtime( timestamp ) ) # nb: "-d" doesn't work on Windows :-/ ) ) else: self.build_info.setText( "" ) self.home_url.setText( "Get the source code and releases from Github." ) def on_close( self ): """Close the dialog.""" self.close()