UI/UserInterface.py

changeset 4392
7ce50a66cff0
parent 4216
bca19a75be32
child 4396
17373689237b
equal deleted inserted replaced
4390:c0d9ef07020b 4392:7ce50a66cff0
2433 self.wizardsMenuAct = self.__menus["extras"].addMenu( 2433 self.wizardsMenuAct = self.__menus["extras"].addMenu(
2434 self.__menus["wizards"]) 2434 self.__menus["wizards"])
2435 self.wizardsMenuAct.setEnabled(False) 2435 self.wizardsMenuAct.setEnabled(False)
2436 self.__menus["macros"] = self.viewmanager.initMacroMenu() 2436 self.__menus["macros"] = self.viewmanager.initMacroMenu()
2437 self.__menus["extras"].addMenu(self.__menus["macros"]) 2437 self.__menus["extras"].addMenu(self.__menus["macros"])
2438 self.__menus["tools"] = QMenu(self.tr('&Tools'), self)
2439 self.__menus["tools"].aboutToShow.connect(self.__showToolsMenu)
2440 self.__menus["tools"].triggered.connect(self.__toolExecute)
2441 self.toolGroupsMenu = QMenu(self.tr("Select Tool Group"), self) 2438 self.toolGroupsMenu = QMenu(self.tr("Select Tool Group"), self)
2442 self.toolGroupsMenu.aboutToShow.connect(self.__showToolGroupsMenu) 2439 self.toolGroupsMenu.aboutToShow.connect(self.__showToolGroupsMenu)
2443 self.toolGroupsMenu.triggered.connect(self.__toolGroupSelected) 2440 self.toolGroupsMenu.triggered.connect(self.__toolGroupSelected)
2444 self.toolGroupsMenuTriggered = False 2441 self.toolGroupsMenuTriggered = False
2442 self.__menus["tools"] = self.__initToolsMenu()
2445 self.__menus["extras"].addMenu(self.__menus["tools"]) 2443 self.__menus["extras"].addMenu(self.__menus["tools"])
2446 2444
2447 self.__menus["settings"] = QMenu(self.tr('Se&ttings'), self) 2445 self.__menus["settings"] = QMenu(self.tr('Se&ttings'), self)
2448 mb.addMenu(self.__menus["settings"]) 2446 mb.addMenu(self.__menus["settings"])
2449 self.__menus["settings"].setTearOffEnabled(True) 2447 self.__menus["settings"].setTearOffEnabled(True)
3301 program = sys.executable 3299 program = sys.executable
3302 eric6 = os.path.join(getConfig("ericDir"), "eric6.py") 3300 eric6 = os.path.join(getConfig("ericDir"), "eric6.py")
3303 args = [eric6] 3301 args = [eric6]
3304 QProcess.startDetached(program, args) 3302 QProcess.startDetached(program, args)
3305 3303
3306 def __showToolsMenu(self): 3304 def __initToolsMenu(self):
3307 """ 3305 """
3308 Private slot to display the Tools menu. 3306 Private slot to initialize the Tools menu.
3309 """ 3307
3310 self.__menus["tools"].clear() 3308 @return populated Tools menu
3311 3309 @rtype QMenu
3312 self.__menus["tools"].addMenu(self.toolGroupsMenu) 3310 """
3313 act = self.__menus["tools"].addAction( 3311 menu = QMenu(self.tr('&Tools'), self)
3312
3313 btMenu = QMenu(self.tr("&Builtin Tools"), self)
3314 if self.designer4Act is not None:
3315 btMenu.addAction(self.designer4Act)
3316 if self.linguist4Act is not None:
3317 btMenu.addAction(self.linguist4Act)
3318 btMenu.addAction(self.uipreviewerAct)
3319 btMenu.addAction(self.trpreviewerAct)
3320 btMenu.addAction(self.diffAct)
3321 btMenu.addAction(self.compareAct)
3322 btMenu.addAction(self.sqlBrowserAct)
3323 btMenu.addAction(self.miniEditorAct)
3324 btMenu.addAction(self.iconEditorAct)
3325 btMenu.addAction(self.snapshotAct)
3326 btMenu.addAction(self.webBrowserAct)
3327
3328 ptMenu = QMenu(self.tr("&Plugin Tools"), self)
3329 ptMenu.aboutToShow.connect(self.__showPluginToolsMenu)
3330
3331 utMenu = QMenu(self.tr("&User Tools"), self)
3332 utMenu.triggered.connect(self.__toolExecute)
3333 utMenu.aboutToShow.connect(self.__showUserToolsMenu)
3334
3335 menu.addMenu(btMenu)
3336 menu.addMenu(ptMenu)
3337 menu.addMenu(utMenu)
3338
3339 self.__menus["builtin_tools"] = btMenu
3340 self.__menus["plugin_tools"] = ptMenu
3341 self.__menus["user_tools"] = utMenu
3342
3343 return menu
3344
3345 def __showPluginToolsMenu(self):
3346 """
3347 Private slot to show the Plugin Tools menu.
3348 """
3349 # TODO: This doesn't work on Mac OS X with Qt compiled against
3350 # Cocoa anymore
3351 # TODO: Change tools plug-ins to populate the menu statically
3352 # and just enabled the actions/menus accordingly
3353 self.showMenu.emit("Tools", self.__menus["plugin_tools"])
3354
3355 def __showUserToolsMenu(self):
3356 """
3357 Private slot to display the User Tools menu.
3358 """
3359 self.__menus["user_tools"].clear()
3360
3361 self.__menus["user_tools"].addMenu(self.toolGroupsMenu)
3362 act = self.__menus["user_tools"].addAction(
3314 self.tr("Configure Tool Groups ..."), 3363 self.tr("Configure Tool Groups ..."),
3315 self.__toolGroupsConfiguration) 3364 self.__toolGroupsConfiguration)
3316 act.setData(-1) 3365 act.setData(-1)
3317 act = self.__menus["tools"].addAction( 3366 act = self.__menus["user_tools"].addAction(
3318 self.tr("Configure current Tool Group ..."), 3367 self.tr("Configure current Tool Group ..."),
3319 self.__toolsConfiguration) 3368 self.__toolsConfiguration)
3320 act.setData(-2) 3369 act.setData(-2)
3321 self.__menus["tools"].addSeparator() 3370 act.setEnabled(self.currentToolGroup >= 0)
3322 3371 self.__menus["user_tools"].addSeparator()
3323 if self.currentToolGroup == -1: 3372
3324 act.setEnabled(False) 3373 # add the configurable entries
3325 # add the default entries 3374 idx = 0
3326 if self.designer4Act is not None: 3375 try:
3327 self.__menus["tools"].addAction(self.designer4Act) 3376 for tool in self.toolGroups[self.currentToolGroup][1]:
3328 if self.linguist4Act is not None: 3377 if tool['menutext'] == '--':
3329 self.__menus["tools"].addAction(self.linguist4Act) 3378 self.__menus["user_tools"].addSeparator()
3330 self.__menus["tools"].addAction(self.uipreviewerAct) 3379 else:
3331 self.__menus["tools"].addAction(self.trpreviewerAct) 3380 act = self.__menus["user_tools"].addAction(
3332 self.__menus["tools"].addAction(self.diffAct) 3381 UI.PixmapCache.getIcon(tool['icon']),
3333 self.__menus["tools"].addAction(self.compareAct) 3382 tool['menutext'])
3334 self.__menus["tools"].addAction(self.sqlBrowserAct) 3383 act.setData(idx)
3335 self.__menus["tools"].addAction(self.miniEditorAct) 3384 idx += 1
3336 self.__menus["tools"].addAction(self.iconEditorAct) 3385 except IndexError:
3337 self.__menus["tools"].addAction(self.snapshotAct) 3386 # the current tool group might have been deleted
3338 self.__menus["tools"].addAction(self.webBrowserAct) 3387 act = self.__menus["user_tools"].addAction(
3339 elif self.currentToolGroup == -2: 3388 self.tr("No User Tools Configured"))
3340 act.setEnabled(False) 3389 act.setData(-3)
3341 # add the plugin entries 3390
3342 self.showMenu.emit("Tools", self.__menus["tools"]) 3391 def __showToolGroupsMenu(self):
3343 else: 3392 """
3344 # add the configurable entries 3393 Private slot to display the Tool Groups menu.
3394 """
3395 self.toolGroupsMenu.clear()
3396
3397 # add the configurable tool groups
3398 if self.toolGroups:
3345 idx = 0 3399 idx = 0
3346 try: 3400 for toolGroup in self.toolGroups:
3347 for tool in self.toolGroups[self.currentToolGroup][1]: 3401 act = self.toolGroupsMenu.addAction(toolGroup[0])
3348 if tool['menutext'] == '--': 3402 act.setData(idx)
3349 self.__menus["tools"].addSeparator() 3403 if self.currentToolGroup == idx:
3350 else: 3404 font = act.font()
3351 act = self.__menus["tools"].addAction( 3405 font.setBold(True)
3352 UI.PixmapCache.getIcon(tool['icon']), 3406 act.setFont(font)
3353 tool['menutext']) 3407 idx += 1
3354 act.setData(idx) 3408 else:
3355 idx += 1 3409 act = self.toolGroupsMenu.addAction(
3356 except IndexError: 3410 self.tr("No User Tools Configured"))
3357 # the current tool group might have been deleted 3411 act.setData(-3)
3358 pass
3359
3360 def __showToolGroupsMenu(self):
3361 """
3362 Private slot to display the Tool Groups menu.
3363 """
3364 self.toolGroupsMenu.clear()
3365
3366 # add the default entry
3367 act = self.toolGroupsMenu.addAction(self.tr("&Builtin Tools"))
3368 act.setData(-1)
3369 if self.currentToolGroup == -1:
3370 font = act.font()
3371 font.setBold(True)
3372 act.setFont(font)
3373
3374 # add the plugins entry
3375 act = self.toolGroupsMenu.addAction(self.tr("&Plugin Tools"))
3376 act.setData(-2)
3377 if self.currentToolGroup == -2:
3378 font = act.font()
3379 font.setBold(True)
3380 act.setFont(font)
3381
3382 # add the configurable tool groups
3383 idx = 0
3384 for toolGroup in self.toolGroups:
3385 act = self.toolGroupsMenu.addAction(toolGroup[0])
3386 act.setData(idx)
3387 if self.currentToolGroup == idx:
3388 font = act.font()
3389 font.setBold(True)
3390 act.setFont(font)
3391 idx += 1
3392 3412
3393 def __toolGroupSelected(self, act): 3413 def __toolGroupSelected(self, act):
3394 """ 3414 """
3395 Private slot to set the current tool group. 3415 Private slot to set the current tool group.
3396 3416
4608 # ignore actions triggered from the select tool group submenu 4628 # ignore actions triggered from the select tool group submenu
4609 self.toolGroupsMenuTriggered = False 4629 self.toolGroupsMenuTriggered = False
4610 return 4630 return
4611 4631
4612 if self.currentToolGroup < 0: 4632 if self.currentToolGroup < 0:
4613 # it was a built in or plugin tool, don't handle it here 4633 # it was an action not to be handled here
4614 return 4634 return
4615 4635
4616 idx = act.data() 4636 idx = act.data()
4617 if idx is not None and idx >= 0: 4637 if idx is not None and idx >= 0:
4618 tool = self.toolGroups[self.currentToolGroup][1][idx] 4638 tool = self.toolGroups[self.currentToolGroup][1][idx]

eric ide

mercurial