this now handles the displaying of errors, using a function compiled to
activate the right profile and catching AppError exceptions and
displaying QErrorMessages with Gui.showError
menuItem_Profile = self.menuProfiles.addAction(pr)
#Using lambda function to pass additional arguments to the function, in this case the path of the profile
menuItem_Profile = self.menuProfiles.addAction(pr)
#Using lambda function to pass additional arguments to the function, in this case the path of the profile
- receiver = lambda pr=pr: self.profileManager.activateProfile(pr)
+ receiver = self.activateProfileAction(pr)
self.connect(menuItem_Profile, SIGNAL('triggered()'), receiver)
#set menu item ToolTip
menuItem_Profile.setToolTip("Activate profile: "+pr)
self.connect(menuItem_Profile, SIGNAL('triggered()'), receiver)
#set menu item ToolTip
menuItem_Profile.setToolTip("Activate profile: "+pr)
self.menuProfiles.activateWindow()
self.menuProfiles.popup(QtGui.QCursor.pos())
self.menuProfiles.activateWindow()
self.menuProfiles.popup(QtGui.QCursor.pos())
+ def activateProfileAction(self, pr):
+ """ Returns a callable to be passed as an action for the switching profile mechanism
+ to self.connect(menuItem_Profile...
+ It compiles a function with a profile name as argument and also handle the displaying of errors."""
+
+ def f():
+ try:
+ self.profileManager.activateProfile(pr)
+ except AppError, e:
+ self.showError(str(e))
+ return f
+
def addProfile(self):
""" Gui frontend to add a new Profile, it requests the user a profile name
through a QInputDialog and creates a new profile with the help of the ProfHandler embedded in the Gui """
def addProfile(self):
""" Gui frontend to add a new Profile, it requests the user a profile name
through a QInputDialog and creates a new profile with the help of the ProfHandler embedded in the Gui """