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 |