77
88from activity_browser import app
99from activity_browser .app .actions .base import ABAction , exception_dialogs
10+ from activity_browser .ui .core .application import global_shortcut
1011
1112from .project_migrate25 import ProjectMigrate25
1213
@@ -43,7 +44,7 @@ def run(project_name: str, reload: bool = False):
4344 logger .debug (f"Brightway2 already selected: { project_name } " )
4445 return
4546
46- dialog = ProjectChangeDialog (project_name , app .main_window )
47+ dialog = ProjectChangeDialog (project_name , reload , app .main_window )
4748 dialog .show ()
4849 app .application .processEvents ()
4950
@@ -67,14 +68,23 @@ def run(project_name: str, reload: bool = False):
6768 def set_warning_bar ():
6869 app .main_window .addToolBar (ProjectWarningBar ())
6970
71+ @global_shortcut ("F5" )
72+ @staticmethod
73+ def reload_project ():
74+ ProjectSwitch .run (bd .projects .current , reload = True )
75+
7076
7177class ProjectChangeDialog (QtWidgets .QDialog ):
72- def __init__ (self , project_name : str , parent = None ):
78+ def __init__ (self , project_name : str , reload : bool , parent = None ):
7379 super ().__init__ (parent , QtCore .Qt .WindowTitleHint )
74- self .setWindowTitle (f"Switching project" )
80+
81+ title = "Reloading project" if reload else "Switching project"
82+ subtitle = f"Reloading project: <b>{ project_name } </b>" if reload else f"Switching to project: <b>{ project_name } </b>"
83+
84+ self .setWindowTitle (title )
7585 self .setModal (True )
7686
77- self .label = QtWidgets .QLabel (f"Switching to project: <b> { project_name } </b>" , self )
87+ self .label = QtWidgets .QLabel (subtitle , self )
7888
7989 layout = QtWidgets .QVBoxLayout (self )
8090 layout .addWidget (self .label )
0 commit comments