UI/UserInterface.py

branch
6_0_x
changeset 4399
76cce1718c1c
parent 4198
417706a8fddb
child 4400
8d4986c8d120
equal deleted inserted replaced
4394:064305c201c9 4399:76cce1718c1c
2427 self.wizardsMenuAct = self.__menus["extras"].addMenu( 2427 self.wizardsMenuAct = self.__menus["extras"].addMenu(
2428 self.__menus["wizards"]) 2428 self.__menus["wizards"])
2429 self.wizardsMenuAct.setEnabled(False) 2429 self.wizardsMenuAct.setEnabled(False)
2430 self.__menus["macros"] = self.viewmanager.initMacroMenu() 2430 self.__menus["macros"] = self.viewmanager.initMacroMenu()
2431 self.__menus["extras"].addMenu(self.__menus["macros"]) 2431 self.__menus["extras"].addMenu(self.__menus["macros"])
2432 self.__menus["tools"] = QMenu(self.tr('&Tools'), self)
2433 self.__menus["tools"].aboutToShow.connect(self.__showToolsMenu)
2434 self.__menus["tools"].triggered.connect(self.__toolExecute)
2435 self.toolGroupsMenu = QMenu(self.tr("Select Tool Group"), self) 2432 self.toolGroupsMenu = QMenu(self.tr("Select Tool Group"), self)
2436 self.toolGroupsMenu.aboutToShow.connect(self.__showToolGroupsMenu) 2433 self.toolGroupsMenu.aboutToShow.connect(self.__showToolGroupsMenu)
2437 self.toolGroupsMenu.triggered.connect(self.__toolGroupSelected) 2434 self.toolGroupsMenu.triggered.connect(self.__toolGroupSelected)
2438 self.toolGroupsMenuTriggered = False 2435 self.toolGroupsMenuTriggered = False
2436 self.__menus["tools"] = self.__initToolsMenu()
2439 self.__menus["extras"].addMenu(self.__menus["tools"]) 2437 self.__menus["extras"].addMenu(self.__menus["tools"])
2440 2438
2441 self.__menus["settings"] = QMenu(self.tr('Se&ttings'), self) 2439 self.__menus["settings"] = QMenu(self.tr('Se&ttings'), self)
2442 mb.addMenu(self.__menus["settings"]) 2440 mb.addMenu(self.__menus["settings"])
2443 self.__menus["settings"].setTearOffEnabled(True) 2441 self.__menus["settings"].setTearOffEnabled(True)
3293 program = sys.executable 3291 program = sys.executable
3294 eric6 = os.path.join(getConfig("ericDir"), "eric6.py") 3292 eric6 = os.path.join(getConfig("ericDir"), "eric6.py")
3295 args = [eric6] 3293 args = [eric6]
3296 QProcess.startDetached(program, args) 3294 QProcess.startDetached(program, args)
3297 3295
3298 def __showToolsMenu(self): 3296 def __initToolsMenu(self):
3299 """ 3297 """
3300 Private slot to display the Tools menu. 3298 Private slot to initialize the Tools menu.
3301 """ 3299
3302 self.__menus["tools"].clear() 3300 @return populated Tools menu
3303 3301 @rtype QMenu
3304 self.__menus["tools"].addMenu(self.toolGroupsMenu) 3302 """
3305 act = self.__menus["tools"].addAction( 3303 menu = QMenu(self.tr('&Tools'), self)
3304
3305 btMenu = QMenu(self.tr("&Builtin Tools"), self)
3306 if self.designer4Act is not None:
3307 btMenu.addAction(self.designer4Act)
3308 if self.linguist4Act is not None:
3309 btMenu.addAction(self.linguist4Act)
3310 btMenu.addAction(self.uipreviewerAct)
3311 btMenu.addAction(self.trpreviewerAct)
3312 btMenu.addAction(self.diffAct)
3313 btMenu.addAction(self.compareAct)
3314 btMenu.addAction(self.sqlBrowserAct)
3315 btMenu.addAction(self.miniEditorAct)
3316 btMenu.addAction(self.iconEditorAct)
3317 btMenu.addAction(self.snapshotAct)
3318 btMenu.addAction(self.webBrowserAct)
3319
3320 ptMenu = QMenu(self.tr("&Plugin Tools"), self)
3321 ptMenu.aboutToShow.connect(self.__showPluginToolsMenu)
3322
3323 utMenu = QMenu(self.tr("&User Tools"), self)
3324 utMenu.triggered.connect(self.__toolExecute)
3325 utMenu.aboutToShow.connect(self.__showUserToolsMenu)
3326
3327 menu.addMenu(btMenu)
3328 menu.addMenu(ptMenu)
3329 menu.addMenu(utMenu)
3330
3331 self.__menus["builtin_tools"] = btMenu
3332 self.__menus["plugin_tools"] = ptMenu
3333 self.__menus["user_tools"] = utMenu
3334
3335 return menu
3336
3337 def __showPluginToolsMenu(self):
3338 """
3339 Private slot to show the Plugin Tools menu.
3340 """
3341 # TODO: This doesn't work on Mac OS X with Qt compiled against
3342 # Cocoa anymore
3343 # TODO: Change tools plug-ins to populate the menu statically
3344 # and just enabled the actions/menus accordingly
3345 self.showMenu.emit("Tools", self.__menus["plugin_tools"])
3346
3347 def __showUserToolsMenu(self):
3348 """
3349 Private slot to display the User Tools menu.
3350 """
3351 self.__menus["user_tools"].clear()
3352
3353 self.__menus["user_tools"].addMenu(self.toolGroupsMenu)
3354 act = self.__menus["user_tools"].addAction(
3306 self.tr("Configure Tool Groups ..."), 3355 self.tr("Configure Tool Groups ..."),
3307 self.__toolGroupsConfiguration) 3356 self.__toolGroupsConfiguration)
3308 act.setData(-1) 3357 act.setData(-1)
3309 act = self.__menus["tools"].addAction( 3358 act = self.__menus["user_tools"].addAction(
3310 self.tr("Configure current Tool Group ..."), 3359 self.tr("Configure current Tool Group ..."),
3311 self.__toolsConfiguration) 3360 self.__toolsConfiguration)
3312 act.setData(-2) 3361 act.setData(-2)
3313 self.__menus["tools"].addSeparator() 3362 act.setEnabled(self.currentToolGroup >= 0)
3314 3363 self.__menus["user_tools"].addSeparator()
3315 if self.currentToolGroup == -1: 3364
3316 act.setEnabled(False) 3365 # add the configurable entries
3317 # add the default entries 3366 idx = 0
3318 if self.designer4Act is not None: 3367 try:
3319 self.__menus["tools"].addAction(self.designer4Act) 3368 for tool in self.toolGroups[self.currentToolGroup][1]:
3320 if self.linguist4Act is not None: 3369 if tool['menutext'] == '--':
3321 self.__menus["tools"].addAction(self.linguist4Act) 3370 self.__menus["user_tools"].addSeparator()
3322 self.__menus["tools"].addAction(self.uipreviewerAct) 3371 else:
3323 self.__menus["tools"].addAction(self.trpreviewerAct) 3372 act = self.__menus["user_tools"].addAction(
3324 self.__menus["tools"].addAction(self.diffAct) 3373 UI.PixmapCache.getIcon(tool['icon']),
3325 self.__menus["tools"].addAction(self.compareAct) 3374 tool['menutext'])
3326 self.__menus["tools"].addAction(self.sqlBrowserAct) 3375 act.setData(idx)
3327 self.__menus["tools"].addAction(self.miniEditorAct) 3376 idx += 1
3328 self.__menus["tools"].addAction(self.iconEditorAct) 3377 except IndexError:
3329 self.__menus["tools"].addAction(self.snapshotAct) 3378 # the current tool group might have been deleted
3330 self.__menus["tools"].addAction(self.webBrowserAct) 3379 act = self.__menus["user_tools"].addAction(
3331 elif self.currentToolGroup == -2: 3380 self.tr("No User Tools Configured"))
3332 act.setEnabled(False) 3381 act.setData(-3)
3333 # add the plugin entries 3382
3334 self.showMenu.emit("Tools", self.__menus["tools"]) 3383 def __showToolGroupsMenu(self):
3335 else: 3384 """
3336 # add the configurable entries 3385 Private slot to display the Tool Groups menu.
3386 """
3387 self.toolGroupsMenu.clear()
3388
3389 # add the configurable tool groups
3390 if self.toolGroups:
3337 idx = 0 3391 idx = 0
3338 try: 3392 for toolGroup in self.toolGroups:
3339 for tool in self.toolGroups[self.currentToolGroup][1]: 3393 act = self.toolGroupsMenu.addAction(toolGroup[0])
3340 if tool['menutext'] == '--': 3394 act.setData(idx)
3341 self.__menus["tools"].addSeparator() 3395 if self.currentToolGroup == idx:
3342 else: 3396 font = act.font()
3343 act = self.__menus["tools"].addAction( 3397 font.setBold(True)
3344 UI.PixmapCache.getIcon(tool['icon']), 3398 act.setFont(font)
3345 tool['menutext']) 3399 idx += 1
3346 act.setData(idx) 3400 else:
3347 idx += 1 3401 act = self.toolGroupsMenu.addAction(
3348 except IndexError: 3402 self.tr("No User Tools Configured"))
3349 # the current tool group might have been deleted 3403 act.setData(-3)
3350 pass
3351
3352 def __showToolGroupsMenu(self):
3353 """
3354 Private slot to display the Tool Groups menu.
3355 """
3356 self.toolGroupsMenu.clear()
3357
3358 # add the default entry
3359 act = self.toolGroupsMenu.addAction(self.tr("&Builtin Tools"))
3360 act.setData(-1)
3361 if self.currentToolGroup == -1:
3362 font = act.font()
3363 font.setBold(True)
3364 act.setFont(font)
3365
3366 # add the plugins entry
3367 act = self.toolGroupsMenu.addAction(self.tr("&Plugin Tools"))
3368 act.setData(-2)
3369 if self.currentToolGroup == -2:
3370 font = act.font()
3371 font.setBold(True)
3372 act.setFont(font)
3373
3374 # add the configurable tool groups
3375 idx = 0
3376 for toolGroup in self.toolGroups:
3377 act = self.toolGroupsMenu.addAction(toolGroup[0])
3378 act.setData(idx)
3379 if self.currentToolGroup == idx:
3380 font = act.font()
3381 font.setBold(True)
3382 act.setFont(font)
3383 idx += 1
3384 3404
3385 def __toolGroupSelected(self, act): 3405 def __toolGroupSelected(self, act):
3386 """ 3406 """
3387 Private slot to set the current tool group. 3407 Private slot to set the current tool group.
3388 3408
4555 # ignore actions triggered from the select tool group submenu 4575 # ignore actions triggered from the select tool group submenu
4556 self.toolGroupsMenuTriggered = False 4576 self.toolGroupsMenuTriggered = False
4557 return 4577 return
4558 4578
4559 if self.currentToolGroup < 0: 4579 if self.currentToolGroup < 0:
4560 # it was a built in or plugin tool, don't handle it here 4580 # it was an action not to be handled here
4561 return 4581 return
4562 4582
4563 idx = act.data() 4583 idx = act.data()
4564 if idx is not None and idx >= 0: 4584 if idx is not None and idx >= 0:
4565 tool = self.toolGroups[self.currentToolGroup][1][idx] 4585 tool = self.toolGroups[self.currentToolGroup][1][idx]

eric ide

mercurial