--- a/ProjectDjango/Project.py Wed Jan 01 14:47:54 2014 +0100 +++ b/ProjectDjango/Project.py Sat Jan 25 17:41:00 2014 +0100 @@ -97,7 +97,7 @@ self.__e5project = e5App().getObject("Project") self.__hooksInstalled = False - self.__mainMenu = None + self.__menus = {} # dictionary with references to menus self.__serverProc = None self.__testServerProc = None @@ -642,6 +642,8 @@ @return the menu generated (QMenu) """ + self.__menus = {} # clear menus references + menu = QMenu(self.trUtf8('D&jango'), self.__ui) menu.setTearOffEnabled(True) @@ -670,7 +672,7 @@ menu.addSeparator() menu.addAction(self.helpAct) - self.__mainMenu = menu + self.__menus["main"] = menu return menu @@ -693,6 +695,8 @@ menu.addSeparator() menu.addMenu(self.__initDatabaseSqlMenu()) + self.__menus["database"] = menu + return menu def __initDatabaseSqlMenu(self): @@ -715,6 +719,8 @@ menu.addAction(self.databaseSqlFlushAct) menu.addAction(self.databaseSqlResetSeqAct) + self.__menus["sql"] = menu + return menu def __initToolsMenu(self): @@ -732,6 +738,8 @@ menu.addSeparator() menu.addAction(self.runPythonShellAct) + self.__menus["tools"] = menu + return menu def __initTestingMenu(self): @@ -749,6 +757,8 @@ menu.addAction(self.runTestAct) menu.addAction(self.runTestServerAct) + self.__menus["testing"] = menu + return menu def __initAuthorizationMenu(self): @@ -763,6 +773,8 @@ menu.addAction(self.changePasswordAct) menu.addAction(self.createSuperUserAct) + self.__menus["authorization"] = menu + return menu def __initSessionMenu(self): @@ -776,7 +788,30 @@ menu.addAction(self.clearSessionsAct) + self.__menus["session"] = menu + return menu + + def getMenu(self, name): + """ + Public method to get a reference to the requested menu. + + @param name name of the menu (string) + @return reference to the menu (QMenu) or None, if no + menu with the given name exists + """ + if name in self.__menus: + return self.__menus[name] + else: + return None + + def getMenuNames(self): + """ + Public method to get the names of all menus. + + @return menu names (list of string) + """ + return list(self.__menus.keys()) ################################################################## ## methods below implement the various hook related functions