UI/UserInterface.py

changeset 55
b5c84934de9c
parent 53
c3eb7cc1ff8b
child 65
ca6449ba4824
equal deleted inserted replaced
54:31463df17fd5 55:b5c84934de9c
15 from PyQt4.QtCore import * 15 from PyQt4.QtCore import *
16 from PyQt4.QtGui import * 16 from PyQt4.QtGui import *
17 from PyQt4.Qsci import QSCINTILLA_VERSION_STR 17 from PyQt4.Qsci import QSCINTILLA_VERSION_STR
18 from PyQt4.QtNetwork import QHttp, QNetworkProxy 18 from PyQt4.QtNetwork import QHttp, QNetworkProxy
19 19
20 from E4Gui.E4Application import e5App 20 from E5Gui.E5Application import e5App
21 21
22 from Debugger.DebugUI import DebugUI 22 from Debugger.DebugUI import DebugUI
23 from Debugger.DebugServer import DebugServer 23 from Debugger.DebugServer import DebugServer
24 from Debugger.DebugViewer import DebugViewer 24 from Debugger.DebugViewer import DebugViewer
25 from Debugger.DebugClientCapabilities import HasUnittest 25 from Debugger.DebugClientCapabilities import HasUnittest
66 from .LogView import LogViewer 66 from .LogView import LogViewer
67 from .FindFileDialog import FindFileDialog 67 from .FindFileDialog import FindFileDialog
68 from .FindFileNameDialog import FindFileNameDialog 68 from .FindFileNameDialog import FindFileNameDialog
69 from .AuthenticationDialog import AuthenticationDialog 69 from .AuthenticationDialog import AuthenticationDialog
70 70
71 from E4Gui.E4SingleApplication import E4SingleApplicationServer 71 from E5Gui.E5SingleApplication import E5SingleApplicationServer
72 from E4Gui.E4Action import E4Action, createActionGroup 72 from E5Gui.E5Action import E5Action, createActionGroup
73 from E4Gui.E4ToolBarManager import E4ToolBarManager 73 from E5Gui.E5ToolBarManager import E5ToolBarManager
74 from E4Gui.E4ToolBarDialog import E4ToolBarDialog 74 from E5Gui.E5ToolBarDialog import E5ToolBarDialog
75 from E4Gui.E4SqueezeLabels import E4SqueezeLabelPath 75 from E5Gui.E5SqueezeLabels import E5SqueezeLabelPath
76 from E4Gui.E4ToolBox import E4VerticalToolBox, E4HorizontalToolBox 76 from E5Gui.E5ToolBox import E5VerticalToolBox, E5HorizontalToolBox
77 from E4Gui.E4SideBar import E4SideBar 77 from E5Gui.E5SideBar import E5SideBar
78 from E4Gui.E4TabWidget import E4TabWidget 78 from E5Gui.E5TabWidget import E5TabWidget
79 79
80 from VCS.StatusMonitorLed import StatusMonitorLed 80 from VCS.StatusMonitorLed import StatusMonitorLed
81 81
82 import Preferences 82 import Preferences
83 import ViewManager 83 import ViewManager
495 # generate the diff dialogs 495 # generate the diff dialogs
496 self.diffDlg = DiffDialog() 496 self.diffDlg = DiffDialog()
497 self.compareDlg = CompareDialog() 497 self.compareDlg = CompareDialog()
498 498
499 # create the toolbar manager object 499 # create the toolbar manager object
500 self.toolbarManager = E4ToolBarManager(self, self) 500 self.toolbarManager = E5ToolBarManager(self, self)
501 self.toolbarManager.setMainWindow(self) 501 self.toolbarManager.setMainWindow(self)
502 502
503 # Initialize the tool groups and list of started tools 503 # Initialize the tool groups and list of started tools
504 splash.showMessage(self.trUtf8("Initializing Tools...")) 504 splash.showMessage(self.trUtf8("Initializing Tools..."))
505 self.toolGroups, self.currentToolGroup = Preferences.readToolGroups() 505 self.toolGroups, self.currentToolGroup = Preferences.readToolGroups()
558 ## sys.stderr = self.stderr 558 ## sys.stderr = self.stderr
559 559
560 # now fire up the single application server 560 # now fire up the single application server
561 if Preferences.getUI("SingleApplicationMode"): 561 if Preferences.getUI("SingleApplicationMode"):
562 splash.showMessage(self.trUtf8("Initializing Single Application Server...")) 562 splash.showMessage(self.trUtf8("Initializing Single Application Server..."))
563 self.SAServer = E4SingleApplicationServer() 563 self.SAServer = E5SingleApplicationServer()
564 else: 564 else:
565 self.SAServer = None 565 self.SAServer = None
566 566
567 # now finalize the plugin manager setup 567 # now finalize the plugin manager setup
568 self.pluginManager.finalizeSetup() 568 self.pluginManager.finalizeSetup()
830 830
831 @param debugServer reference to the debug server object 831 @param debugServer reference to the debug server object
832 """ 832 """
833 # Create the vertical toolbox 833 # Create the vertical toolbox
834 self.vToolboxDock = self.__createDockWindow("vToolboxDock") 834 self.vToolboxDock = self.__createDockWindow("vToolboxDock")
835 self.vToolbox = E4VerticalToolBox(self.vToolboxDock) 835 self.vToolbox = E5VerticalToolBox(self.vToolboxDock)
836 self.__setupDockWindow(self.vToolboxDock, Qt.LeftDockWidgetArea, 836 self.__setupDockWindow(self.vToolboxDock, Qt.LeftDockWidgetArea,
837 self.vToolbox, self.trUtf8("Vertical Toolbox")) 837 self.vToolbox, self.trUtf8("Vertical Toolbox"))
838 838
839 # Create the horizontal toolbox 839 # Create the horizontal toolbox
840 self.hToolboxDock = self.__createDockWindow("hToolboxDock") 840 self.hToolboxDock = self.__createDockWindow("hToolboxDock")
841 self.hToolbox = E4HorizontalToolBox(self.hToolboxDock) 841 self.hToolbox = E5HorizontalToolBox(self.hToolboxDock)
842 self.__setupDockWindow(self.hToolboxDock, Qt.BottomDockWidgetArea, 842 self.__setupDockWindow(self.hToolboxDock, Qt.BottomDockWidgetArea,
843 self.hToolbox, self.trUtf8("Horizontal Toolbox")) 843 self.hToolbox, self.trUtf8("Horizontal Toolbox"))
844 844
845 # Create the project browser 845 # Create the project browser
846 self.projectBrowser = ProjectBrowser(self.project, None, 846 self.projectBrowser = ProjectBrowser(self.project, None,
919 Private method to create the Sidebars layout. 919 Private method to create the Sidebars layout.
920 920
921 @param debugServer reference to the debug server object 921 @param debugServer reference to the debug server object
922 """ 922 """
923 # Create the left sidebar 923 # Create the left sidebar
924 self.leftSidebar = E4SideBar(E4SideBar.West) 924 self.leftSidebar = E5SideBar(E5SideBar.West)
925 925
926 # Create the bottom sidebar 926 # Create the bottom sidebar
927 self.bottomSidebar = E4SideBar(E4SideBar.South) 927 self.bottomSidebar = E5SideBar(E5SideBar.South)
928 928
929 # Create the project browser 929 # Create the project browser
930 logging.debug("Creating Project Browser...") 930 logging.debug("Creating Project Browser...")
931 self.projectBrowser = ProjectBrowser(self.project, None, 931 self.projectBrowser = ProjectBrowser(self.project, None,
932 embeddedBrowser=(self.embeddedFileBrowser == 2)) 932 embeddedBrowser=(self.embeddedFileBrowser == 2))
1248 Private method to define the user interface actions. 1248 Private method to define the user interface actions.
1249 """ 1249 """
1250 self.actions = [] 1250 self.actions = []
1251 self.wizardsActions = [] 1251 self.wizardsActions = []
1252 1252
1253 self.exitAct = E4Action(self.trUtf8('Quit'), 1253 self.exitAct = E5Action(self.trUtf8('Quit'),
1254 UI.PixmapCache.getIcon("exit.png"), 1254 UI.PixmapCache.getIcon("exit.png"),
1255 self.trUtf8('&Quit'), 1255 self.trUtf8('&Quit'),
1256 QKeySequence(self.trUtf8("Ctrl+Q","File|Quit")), 1256 QKeySequence(self.trUtf8("Ctrl+Q","File|Quit")),
1257 0, self, 'quit') 1257 0, self, 'quit')
1258 self.exitAct.setStatusTip(self.trUtf8('Quit the IDE')) 1258 self.exitAct.setStatusTip(self.trUtf8('Quit the IDE'))
1265 self.connect(self.exitAct, SIGNAL('triggered()'), self.__quit) 1265 self.connect(self.exitAct, SIGNAL('triggered()'), self.__quit)
1266 self.actions.append(self.exitAct) 1266 self.actions.append(self.exitAct)
1267 1267
1268 self.viewProfileActGrp = createActionGroup(self, "viewprofiles", True) 1268 self.viewProfileActGrp = createActionGroup(self, "viewprofiles", True)
1269 1269
1270 self.setEditProfileAct = E4Action(self.trUtf8('Edit Profile'), 1270 self.setEditProfileAct = E5Action(self.trUtf8('Edit Profile'),
1271 UI.PixmapCache.getIcon("viewProfileEdit.png"), 1271 UI.PixmapCache.getIcon("viewProfileEdit.png"),
1272 self.trUtf8('Edit Profile'), 1272 self.trUtf8('Edit Profile'),
1273 0, 0, 1273 0, 0,
1274 self.viewProfileActGrp, 'edit_profile', True) 1274 self.viewProfileActGrp, 'edit_profile', True)
1275 self.setEditProfileAct.setStatusTip(self.trUtf8('Activate the edit view profile')) 1275 self.setEditProfileAct.setStatusTip(self.trUtf8('Activate the edit view profile'))
1280 """ "View Profile Configuration" dialog.</p>""" 1280 """ "View Profile Configuration" dialog.</p>"""
1281 )) 1281 ))
1282 self.connect(self.setEditProfileAct, SIGNAL('triggered()'), self.__setEditProfile) 1282 self.connect(self.setEditProfileAct, SIGNAL('triggered()'), self.__setEditProfile)
1283 self.actions.append(self.setEditProfileAct) 1283 self.actions.append(self.setEditProfileAct)
1284 1284
1285 self.setDebugProfileAct = E4Action(self.trUtf8('Debug Profile'), 1285 self.setDebugProfileAct = E5Action(self.trUtf8('Debug Profile'),
1286 UI.PixmapCache.getIcon("viewProfileDebug.png"), 1286 UI.PixmapCache.getIcon("viewProfileDebug.png"),
1287 self.trUtf8('Debug Profile'), 1287 self.trUtf8('Debug Profile'),
1288 0, 0, 1288 0, 0,
1289 self.viewProfileActGrp, 'debug_profile', True) 1289 self.viewProfileActGrp, 'debug_profile', True)
1290 self.setDebugProfileAct.setStatusTip(\ 1290 self.setDebugProfileAct.setStatusTip(\
1296 """ "View Profile Configuration" dialog.</p>""" 1296 """ "View Profile Configuration" dialog.</p>"""
1297 )) 1297 ))
1298 self.connect(self.setDebugProfileAct, SIGNAL('triggered()'), self.setDebugProfile) 1298 self.connect(self.setDebugProfileAct, SIGNAL('triggered()'), self.setDebugProfile)
1299 self.actions.append(self.setDebugProfileAct) 1299 self.actions.append(self.setDebugProfileAct)
1300 1300
1301 self.pbAct = E4Action(self.trUtf8('Project-Viewer'), 1301 self.pbAct = E5Action(self.trUtf8('Project-Viewer'),
1302 self.trUtf8('&Project-Viewer'), 0, 0, self, 'project_viewer', True) 1302 self.trUtf8('&Project-Viewer'), 0, 0, self, 'project_viewer', True)
1303 self.pbAct.setStatusTip(self.trUtf8('Toggle the Project-Viewer window')) 1303 self.pbAct.setStatusTip(self.trUtf8('Toggle the Project-Viewer window'))
1304 self.pbAct.setWhatsThis(self.trUtf8( 1304 self.pbAct.setWhatsThis(self.trUtf8(
1305 """<b>Toggle the Project-Viewer window</b>""" 1305 """<b>Toggle the Project-Viewer window</b>"""
1306 """<p>If the Project-Viewer window is hidden then display it.""" 1306 """<p>If the Project-Viewer window is hidden then display it."""
1307 """ If it is displayed then close it.</p>""" 1307 """ If it is displayed then close it.</p>"""
1308 )) 1308 ))
1309 self.connect(self.pbAct, SIGNAL('triggered()'), self.__toggleProjectBrowser) 1309 self.connect(self.pbAct, SIGNAL('triggered()'), self.__toggleProjectBrowser)
1310 self.actions.append(self.pbAct) 1310 self.actions.append(self.pbAct)
1311 1311
1312 self.pbActivateAct = E4Action(self.trUtf8('Activate Project-Viewer'), 1312 self.pbActivateAct = E5Action(self.trUtf8('Activate Project-Viewer'),
1313 self.trUtf8('Activate Project-Viewer'), 1313 self.trUtf8('Activate Project-Viewer'),
1314 QKeySequence(self.trUtf8("Alt+Shift+P")), 1314 QKeySequence(self.trUtf8("Alt+Shift+P")),
1315 0, self, 1315 0, self,
1316 'project_viewer_activate', True) 1316 'project_viewer_activate', True)
1317 self.connect(self.pbActivateAct, SIGNAL('triggered()'), 1317 self.connect(self.pbActivateAct, SIGNAL('triggered()'),
1318 self.__activateProjectBrowser) 1318 self.__activateProjectBrowser)
1319 self.actions.append(self.pbActivateAct) 1319 self.actions.append(self.pbActivateAct)
1320 self.addAction(self.pbActivateAct) 1320 self.addAction(self.pbActivateAct)
1321 1321
1322 self.mpbAct = E4Action(self.trUtf8('Multiproject-Viewer'), 1322 self.mpbAct = E5Action(self.trUtf8('Multiproject-Viewer'),
1323 self.trUtf8('&Multiproject-Viewer'), 0, 0, self, 1323 self.trUtf8('&Multiproject-Viewer'), 0, 0, self,
1324 'multi_project_viewer', True) 1324 'multi_project_viewer', True)
1325 self.mpbAct.setStatusTip(self.trUtf8('Toggle the Multiproject-Viewer window')) 1325 self.mpbAct.setStatusTip(self.trUtf8('Toggle the Multiproject-Viewer window'))
1326 self.mpbAct.setWhatsThis(self.trUtf8( 1326 self.mpbAct.setWhatsThis(self.trUtf8(
1327 """<b>Toggle the Multiproject-Viewer window</b>""" 1327 """<b>Toggle the Multiproject-Viewer window</b>"""
1329 """ If it is displayed then close it.</p>""" 1329 """ If it is displayed then close it.</p>"""
1330 )) 1330 ))
1331 self.connect(self.mpbAct, SIGNAL('triggered()'), self.__toggleMultiProjectBrowser) 1331 self.connect(self.mpbAct, SIGNAL('triggered()'), self.__toggleMultiProjectBrowser)
1332 self.actions.append(self.mpbAct) 1332 self.actions.append(self.mpbAct)
1333 1333
1334 self.mpbActivateAct = E4Action(self.trUtf8('Activate Multiproject-Viewer'), 1334 self.mpbActivateAct = E5Action(self.trUtf8('Activate Multiproject-Viewer'),
1335 self.trUtf8('Activate Multiproject-Viewer'), 1335 self.trUtf8('Activate Multiproject-Viewer'),
1336 QKeySequence(self.trUtf8("Alt+Shift+M")), 1336 QKeySequence(self.trUtf8("Alt+Shift+M")),
1337 0, self, 1337 0, self,
1338 'multi_project_viewer_activate', True) 1338 'multi_project_viewer_activate', True)
1339 self.connect(self.mpbActivateAct, SIGNAL('triggered()'), 1339 self.connect(self.mpbActivateAct, SIGNAL('triggered()'),
1340 self.__activateMultiProjectBrowser) 1340 self.__activateMultiProjectBrowser)
1341 self.actions.append(self.mpbActivateAct) 1341 self.actions.append(self.mpbActivateAct)
1342 self.addAction(self.mpbActivateAct) 1342 self.addAction(self.mpbActivateAct)
1343 1343
1344 self.debugViewerAct = E4Action(self.trUtf8('Debug-Viewer'), 1344 self.debugViewerAct = E5Action(self.trUtf8('Debug-Viewer'),
1345 self.trUtf8('&Debug-Viewer'), 0, 0, self, 'debug_viewer', True) 1345 self.trUtf8('&Debug-Viewer'), 0, 0, self, 'debug_viewer', True)
1346 self.debugViewerAct.setStatusTip(self.trUtf8('Toggle the Debug-Viewer window')) 1346 self.debugViewerAct.setStatusTip(self.trUtf8('Toggle the Debug-Viewer window'))
1347 self.debugViewerAct.setWhatsThis(self.trUtf8( 1347 self.debugViewerAct.setWhatsThis(self.trUtf8(
1348 """<b>Toggle the Debug-Viewer window</b>""" 1348 """<b>Toggle the Debug-Viewer window</b>"""
1349 """<p>If the Debug-Viewer window is hidden then display it.""" 1349 """<p>If the Debug-Viewer window is hidden then display it."""
1350 """ If it is displayed then close it.</p>""" 1350 """ If it is displayed then close it.</p>"""
1351 )) 1351 ))
1352 self.connect(self.debugViewerAct, SIGNAL('triggered()'), self.__toggleDebugViewer) 1352 self.connect(self.debugViewerAct, SIGNAL('triggered()'), self.__toggleDebugViewer)
1353 self.actions.append(self.debugViewerAct) 1353 self.actions.append(self.debugViewerAct)
1354 1354
1355 self.debugViewerActivateAct = E4Action(self.trUtf8('Activate Debug-Viewer'), 1355 self.debugViewerActivateAct = E5Action(self.trUtf8('Activate Debug-Viewer'),
1356 self.trUtf8('Activate Debug-Viewer'), 1356 self.trUtf8('Activate Debug-Viewer'),
1357 QKeySequence(self.trUtf8("Alt+Shift+D")), 1357 QKeySequence(self.trUtf8("Alt+Shift+D")),
1358 0, self, 1358 0, self,
1359 'debug_viewer_activate', True) 1359 'debug_viewer_activate', True)
1360 self.connect(self.debugViewerActivateAct, SIGNAL('triggered()'), 1360 self.connect(self.debugViewerActivateAct, SIGNAL('triggered()'),
1361 self.__activateDebugViewer) 1361 self.__activateDebugViewer)
1362 self.actions.append(self.debugViewerActivateAct) 1362 self.actions.append(self.debugViewerActivateAct)
1363 self.addAction(self.debugViewerActivateAct) 1363 self.addAction(self.debugViewerActivateAct)
1364 1364
1365 self.shellAct = E4Action(self.trUtf8('Shell'), 1365 self.shellAct = E5Action(self.trUtf8('Shell'),
1366 self.trUtf8('&Shell'), 0, 0, self, 'interpreter_shell', True) 1366 self.trUtf8('&Shell'), 0, 0, self, 'interpreter_shell', True)
1367 self.shellAct.setStatusTip(self.trUtf8('Toggle the Shell window')) 1367 self.shellAct.setStatusTip(self.trUtf8('Toggle the Shell window'))
1368 self.shellAct.setWhatsThis(self.trUtf8( 1368 self.shellAct.setWhatsThis(self.trUtf8(
1369 """<b>Toggle the Shell window</b>""" 1369 """<b>Toggle the Shell window</b>"""
1370 """<p>If the Shell window is hidden then display it.""" 1370 """<p>If the Shell window is hidden then display it."""
1372 )) 1372 ))
1373 if not self.embeddedShell: 1373 if not self.embeddedShell:
1374 self.connect(self.shellAct, SIGNAL('triggered()'), self.__toggleShell) 1374 self.connect(self.shellAct, SIGNAL('triggered()'), self.__toggleShell)
1375 self.actions.append(self.shellAct) 1375 self.actions.append(self.shellAct)
1376 1376
1377 self.shellActivateAct = E4Action(self.trUtf8('Activate Shell'), 1377 self.shellActivateAct = E5Action(self.trUtf8('Activate Shell'),
1378 self.trUtf8('Activate Shell'), 1378 self.trUtf8('Activate Shell'),
1379 QKeySequence(self.trUtf8("Alt+Shift+S")), 1379 QKeySequence(self.trUtf8("Alt+Shift+S")),
1380 0, self, 1380 0, self,
1381 'interprter_shell_activate', True) 1381 'interprter_shell_activate', True)
1382 self.connect(self.shellActivateAct, SIGNAL('triggered()'), self.__activateShell) 1382 self.connect(self.shellActivateAct, SIGNAL('triggered()'), self.__activateShell)
1383 self.actions.append(self.shellActivateAct) 1383 self.actions.append(self.shellActivateAct)
1384 self.addAction(self.shellActivateAct) 1384 self.addAction(self.shellActivateAct)
1385 1385
1386 self.terminalAct = E4Action(self.trUtf8('Terminal'), 1386 self.terminalAct = E5Action(self.trUtf8('Terminal'),
1387 self.trUtf8('Te&rminal'), 0, 0, self, 'terminal', True) 1387 self.trUtf8('Te&rminal'), 0, 0, self, 'terminal', True)
1388 self.terminalAct.setStatusTip(self.trUtf8('Toggle the Terminal window')) 1388 self.terminalAct.setStatusTip(self.trUtf8('Toggle the Terminal window'))
1389 self.terminalAct.setWhatsThis(self.trUtf8( 1389 self.terminalAct.setWhatsThis(self.trUtf8(
1390 """<b>Toggle the Terminal window</b>""" 1390 """<b>Toggle the Terminal window</b>"""
1391 """<p>If the Terminal window is hidden then display it.""" 1391 """<p>If the Terminal window is hidden then display it."""
1392 """ If it is displayed then close it.</p>""" 1392 """ If it is displayed then close it.</p>"""
1393 )) 1393 ))
1394 self.connect(self.terminalAct, SIGNAL('triggered()'), self.__toggleTerminal) 1394 self.connect(self.terminalAct, SIGNAL('triggered()'), self.__toggleTerminal)
1395 self.actions.append(self.terminalAct) 1395 self.actions.append(self.terminalAct)
1396 1396
1397 self.terminalActivateAct = E4Action(self.trUtf8('Activate Terminal'), 1397 self.terminalActivateAct = E5Action(self.trUtf8('Activate Terminal'),
1398 self.trUtf8('Activate Terminal'), 1398 self.trUtf8('Activate Terminal'),
1399 QKeySequence(self.trUtf8("Alt+Shift+R")), 1399 QKeySequence(self.trUtf8("Alt+Shift+R")),
1400 0, self, 1400 0, self,
1401 'terminal_activate', True) 1401 'terminal_activate', True)
1402 self.connect(self.terminalActivateAct, SIGNAL('triggered()'), 1402 self.connect(self.terminalActivateAct, SIGNAL('triggered()'),
1403 self.__activateTerminal) 1403 self.__activateTerminal)
1404 self.actions.append(self.terminalActivateAct) 1404 self.actions.append(self.terminalActivateAct)
1405 self.addAction(self.terminalActivateAct) 1405 self.addAction(self.terminalActivateAct)
1406 1406
1407 self.browserAct = E4Action(self.trUtf8('File-Browser'), 1407 self.browserAct = E5Action(self.trUtf8('File-Browser'),
1408 self.trUtf8('File-&Browser'), 0, 0, self, 'file_browser', True) 1408 self.trUtf8('File-&Browser'), 0, 0, self, 'file_browser', True)
1409 self.browserAct.setStatusTip(self.trUtf8('Toggle the File-Browser window')) 1409 self.browserAct.setStatusTip(self.trUtf8('Toggle the File-Browser window'))
1410 self.browserAct.setWhatsThis(self.trUtf8( 1410 self.browserAct.setWhatsThis(self.trUtf8(
1411 """<b>Toggle the File-Browser window</b>""" 1411 """<b>Toggle the File-Browser window</b>"""
1412 """<p>If the File-Browser window is hidden then display it.""" 1412 """<p>If the File-Browser window is hidden then display it."""
1414 )) 1414 ))
1415 if not self.embeddedFileBrowser: 1415 if not self.embeddedFileBrowser:
1416 self.connect(self.browserAct, SIGNAL('triggered()'), self.__toggleBrowser) 1416 self.connect(self.browserAct, SIGNAL('triggered()'), self.__toggleBrowser)
1417 self.actions.append(self.browserAct) 1417 self.actions.append(self.browserAct)
1418 1418
1419 self.browserActivateAct = E4Action(self.trUtf8('Activate File-Browser'), 1419 self.browserActivateAct = E5Action(self.trUtf8('Activate File-Browser'),
1420 self.trUtf8('Activate File-Browser'), 1420 self.trUtf8('Activate File-Browser'),
1421 QKeySequence(self.trUtf8("Alt+Shift+F")), 1421 QKeySequence(self.trUtf8("Alt+Shift+F")),
1422 0, self, 1422 0, self,
1423 'file_browser_activate', True) 1423 'file_browser_activate', True)
1424 self.connect(self.browserActivateAct, SIGNAL('triggered()'), 1424 self.connect(self.browserActivateAct, SIGNAL('triggered()'),
1425 self.__activateBrowser) 1425 self.__activateBrowser)
1426 self.actions.append(self.browserActivateAct) 1426 self.actions.append(self.browserActivateAct)
1427 self.addAction(self.browserActivateAct) 1427 self.addAction(self.browserActivateAct)
1428 1428
1429 self.logViewerAct = E4Action(self.trUtf8('Log-Viewer'), 1429 self.logViewerAct = E5Action(self.trUtf8('Log-Viewer'),
1430 self.trUtf8('&Log-Viewer'), 0, 0, self, 'log_viewer', True) 1430 self.trUtf8('&Log-Viewer'), 0, 0, self, 'log_viewer', True)
1431 self.logViewerAct.setStatusTip(self.trUtf8('Toggle the Log-Viewer window')) 1431 self.logViewerAct.setStatusTip(self.trUtf8('Toggle the Log-Viewer window'))
1432 self.logViewerAct.setWhatsThis(self.trUtf8( 1432 self.logViewerAct.setWhatsThis(self.trUtf8(
1433 """<b>Toggle the Log-Viewer window</b>""" 1433 """<b>Toggle the Log-Viewer window</b>"""
1434 """<p>If the Log-Viewer window is hidden then display it.""" 1434 """<p>If the Log-Viewer window is hidden then display it."""
1435 """ If it is displayed then close it.</p>""" 1435 """ If it is displayed then close it.</p>"""
1436 )) 1436 ))
1437 self.connect(self.logViewerAct, SIGNAL('triggered()'), self.__toggleLogViewer) 1437 self.connect(self.logViewerAct, SIGNAL('triggered()'), self.__toggleLogViewer)
1438 self.actions.append(self.logViewerAct) 1438 self.actions.append(self.logViewerAct)
1439 1439
1440 self.logViewerActivateAct = E4Action(self.trUtf8('Activate Log-Viewer'), 1440 self.logViewerActivateAct = E5Action(self.trUtf8('Activate Log-Viewer'),
1441 self.trUtf8('Activate Log-Viewer'), 1441 self.trUtf8('Activate Log-Viewer'),
1442 QKeySequence(self.trUtf8("Alt+Shift+G")), 1442 QKeySequence(self.trUtf8("Alt+Shift+G")),
1443 0, self, 1443 0, self,
1444 'log_viewer_activate', True) 1444 'log_viewer_activate', True)
1445 self.connect(self.logViewerActivateAct, SIGNAL('triggered()'), 1445 self.connect(self.logViewerActivateAct, SIGNAL('triggered()'),
1446 self.__activateLogViewer) 1446 self.__activateLogViewer)
1447 self.actions.append(self.logViewerActivateAct) 1447 self.actions.append(self.logViewerActivateAct)
1448 self.addAction(self.logViewerActivateAct) 1448 self.addAction(self.logViewerActivateAct)
1449 1449
1450 self.taskViewerAct = E4Action(self.trUtf8('Task-Viewer'), 1450 self.taskViewerAct = E5Action(self.trUtf8('Task-Viewer'),
1451 self.trUtf8('T&ask-Viewer'), 0, 0, self, 'task_viewer', True) 1451 self.trUtf8('T&ask-Viewer'), 0, 0, self, 'task_viewer', True)
1452 self.taskViewerAct.setStatusTip(self.trUtf8('Toggle the Task-Viewer window')) 1452 self.taskViewerAct.setStatusTip(self.trUtf8('Toggle the Task-Viewer window'))
1453 self.taskViewerAct.setWhatsThis(self.trUtf8( 1453 self.taskViewerAct.setWhatsThis(self.trUtf8(
1454 """<b>Toggle the Task-Viewer window</b>""" 1454 """<b>Toggle the Task-Viewer window</b>"""
1455 """<p>If the Task-Viewer window is hidden then display it.""" 1455 """<p>If the Task-Viewer window is hidden then display it."""
1456 """ If it is displayed then close it.</p>""" 1456 """ If it is displayed then close it.</p>"""
1457 )) 1457 ))
1458 self.connect(self.taskViewerAct, SIGNAL('triggered()'), self.__toggleTaskViewer) 1458 self.connect(self.taskViewerAct, SIGNAL('triggered()'), self.__toggleTaskViewer)
1459 self.actions.append(self.taskViewerAct) 1459 self.actions.append(self.taskViewerAct)
1460 1460
1461 self.taskViewerActivateAct = E4Action(self.trUtf8('Activate Task-Viewer'), 1461 self.taskViewerActivateAct = E5Action(self.trUtf8('Activate Task-Viewer'),
1462 self.trUtf8('Activate Task-Viewer'), 1462 self.trUtf8('Activate Task-Viewer'),
1463 QKeySequence(self.trUtf8("Alt+Shift+T")), 1463 QKeySequence(self.trUtf8("Alt+Shift+T")),
1464 0, self, 1464 0, self,
1465 'task_viewer_activate',1) 1465 'task_viewer_activate',1)
1466 self.connect(self.taskViewerActivateAct, SIGNAL('triggered()'), 1466 self.connect(self.taskViewerActivateAct, SIGNAL('triggered()'),
1467 self.__activateTaskViewer) 1467 self.__activateTaskViewer)
1468 self.actions.append(self.taskViewerActivateAct) 1468 self.actions.append(self.taskViewerActivateAct)
1469 self.addAction(self.taskViewerActivateAct) 1469 self.addAction(self.taskViewerActivateAct)
1470 1470
1471 self.templateViewerAct = E4Action(self.trUtf8('Template-Viewer'), 1471 self.templateViewerAct = E5Action(self.trUtf8('Template-Viewer'),
1472 self.trUtf8('Temp&late-Viewer'), 0, 0, self, 'template_viewer', True) 1472 self.trUtf8('Temp&late-Viewer'), 0, 0, self, 'template_viewer', True)
1473 self.templateViewerAct.setStatusTip(\ 1473 self.templateViewerAct.setStatusTip(\
1474 self.trUtf8('Toggle the Template-Viewer window')) 1474 self.trUtf8('Toggle the Template-Viewer window'))
1475 self.templateViewerAct.setWhatsThis(self.trUtf8( 1475 self.templateViewerAct.setWhatsThis(self.trUtf8(
1476 """<b>Toggle the Template-Viewer window</b>""" 1476 """<b>Toggle the Template-Viewer window</b>"""
1479 )) 1479 ))
1480 self.connect(self.templateViewerAct, SIGNAL('triggered()'), 1480 self.connect(self.templateViewerAct, SIGNAL('triggered()'),
1481 self.__toggleTemplateViewer) 1481 self.__toggleTemplateViewer)
1482 self.actions.append(self.templateViewerAct) 1482 self.actions.append(self.templateViewerAct)
1483 1483
1484 self.templateViewerActivateAct = E4Action(self.trUtf8('Activate Template-Viewer'), 1484 self.templateViewerActivateAct = E5Action(self.trUtf8('Activate Template-Viewer'),
1485 self.trUtf8('Activate Template-Viewer'), 1485 self.trUtf8('Activate Template-Viewer'),
1486 QKeySequence(self.trUtf8("Alt+Shift+A")), 1486 QKeySequence(self.trUtf8("Alt+Shift+A")),
1487 0, self, 1487 0, self,
1488 'template_viewer_activate',1) 1488 'template_viewer_activate',1)
1489 self.connect(self.templateViewerActivateAct, SIGNAL('triggered()'), 1489 self.connect(self.templateViewerActivateAct, SIGNAL('triggered()'),
1490 self.__activateTemplateViewer) 1490 self.__activateTemplateViewer)
1491 self.actions.append(self.templateViewerActivateAct) 1491 self.actions.append(self.templateViewerActivateAct)
1492 self.addAction(self.templateViewerActivateAct) 1492 self.addAction(self.templateViewerActivateAct)
1493 1493
1494 self.vtAct = E4Action(self.trUtf8('Vertical Toolbox'), 1494 self.vtAct = E5Action(self.trUtf8('Vertical Toolbox'),
1495 self.trUtf8('&Vertical Toolbox'), 0, 0, self, 'vertical_toolbox', True) 1495 self.trUtf8('&Vertical Toolbox'), 0, 0, self, 'vertical_toolbox', True)
1496 self.vtAct.setStatusTip(self.trUtf8('Toggle the Vertical Toolbox window')) 1496 self.vtAct.setStatusTip(self.trUtf8('Toggle the Vertical Toolbox window'))
1497 self.vtAct.setWhatsThis(self.trUtf8( 1497 self.vtAct.setWhatsThis(self.trUtf8(
1498 """<b>Toggle the Vertical Toolbox window</b>""" 1498 """<b>Toggle the Vertical Toolbox window</b>"""
1499 """<p>If the Vertical Toolbox window is hidden then display it.""" 1499 """<p>If the Vertical Toolbox window is hidden then display it."""
1500 """ If it is displayed then close it.</p>""" 1500 """ If it is displayed then close it.</p>"""
1501 )) 1501 ))
1502 self.connect(self.vtAct, SIGNAL('triggered()'), self.__toggleVerticalToolbox) 1502 self.connect(self.vtAct, SIGNAL('triggered()'), self.__toggleVerticalToolbox)
1503 self.actions.append(self.vtAct) 1503 self.actions.append(self.vtAct)
1504 1504
1505 self.htAct = E4Action(self.trUtf8('Horizontal Toolbox'), 1505 self.htAct = E5Action(self.trUtf8('Horizontal Toolbox'),
1506 self.trUtf8('&Horizontal Toolbox'), 0, 0, self, 1506 self.trUtf8('&Horizontal Toolbox'), 0, 0, self,
1507 'horizontal_toolbox', True) 1507 'horizontal_toolbox', True)
1508 self.htAct.setStatusTip(self.trUtf8('Toggle the Horizontal Toolbox window')) 1508 self.htAct.setStatusTip(self.trUtf8('Toggle the Horizontal Toolbox window'))
1509 self.htAct.setWhatsThis(self.trUtf8( 1509 self.htAct.setWhatsThis(self.trUtf8(
1510 """<b>Toggle the Horizontal Toolbox window</b>""" 1510 """<b>Toggle the Horizontal Toolbox window</b>"""
1512 """ If it is displayed then close it.</p>""" 1512 """ If it is displayed then close it.</p>"""
1513 )) 1513 ))
1514 self.connect(self.htAct, SIGNAL('triggered()'), self.__toggleHorizontalToolbox) 1514 self.connect(self.htAct, SIGNAL('triggered()'), self.__toggleHorizontalToolbox)
1515 self.actions.append(self.htAct) 1515 self.actions.append(self.htAct)
1516 1516
1517 self.lsbAct = E4Action(self.trUtf8('Left Sidebar'), 1517 self.lsbAct = E5Action(self.trUtf8('Left Sidebar'),
1518 self.trUtf8('&Left Sidebar'), 0, 0, self, 'left_sidebar', True) 1518 self.trUtf8('&Left Sidebar'), 0, 0, self, 'left_sidebar', True)
1519 self.lsbAct.setStatusTip(self.trUtf8('Toggle the left sidebar window')) 1519 self.lsbAct.setStatusTip(self.trUtf8('Toggle the left sidebar window'))
1520 self.lsbAct.setWhatsThis(self.trUtf8( 1520 self.lsbAct.setWhatsThis(self.trUtf8(
1521 """<b>Toggle the left sidebar window</b>""" 1521 """<b>Toggle the left sidebar window</b>"""
1522 """<p>If the left sidebar window is hidden then display it.""" 1522 """<p>If the left sidebar window is hidden then display it."""
1523 """ If it is displayed then close it.</p>""" 1523 """ If it is displayed then close it.</p>"""
1524 )) 1524 ))
1525 self.connect(self.lsbAct, SIGNAL('triggered()'), self.__toggleLeftSidebar) 1525 self.connect(self.lsbAct, SIGNAL('triggered()'), self.__toggleLeftSidebar)
1526 self.actions.append(self.lsbAct) 1526 self.actions.append(self.lsbAct)
1527 1527
1528 self.bsbAct = E4Action(self.trUtf8('Bottom Sidebar'), 1528 self.bsbAct = E5Action(self.trUtf8('Bottom Sidebar'),
1529 self.trUtf8('&Bottom Sidebar'), 0, 0, self, 1529 self.trUtf8('&Bottom Sidebar'), 0, 0, self,
1530 'bottom_sidebar', True) 1530 'bottom_sidebar', True)
1531 self.bsbAct.setStatusTip(self.trUtf8('Toggle the bottom sidebar window')) 1531 self.bsbAct.setStatusTip(self.trUtf8('Toggle the bottom sidebar window'))
1532 self.bsbAct.setWhatsThis(self.trUtf8( 1532 self.bsbAct.setWhatsThis(self.trUtf8(
1533 """<b>Toggle the bottom sidebar window</b>""" 1533 """<b>Toggle the bottom sidebar window</b>"""
1535 """ If it is displayed then close it.</p>""" 1535 """ If it is displayed then close it.</p>"""
1536 )) 1536 ))
1537 self.connect(self.bsbAct, SIGNAL('triggered()'), self.__toggleBottomSidebar) 1537 self.connect(self.bsbAct, SIGNAL('triggered()'), self.__toggleBottomSidebar)
1538 self.actions.append(self.bsbAct) 1538 self.actions.append(self.bsbAct)
1539 1539
1540 self.whatsThisAct = E4Action(self.trUtf8('What\'s This?'), 1540 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'),
1541 UI.PixmapCache.getIcon("whatsThis.png"), 1541 UI.PixmapCache.getIcon("whatsThis.png"),
1542 self.trUtf8('&What\'s This?'), 1542 self.trUtf8('&What\'s This?'),
1543 QKeySequence(self.trUtf8("Shift+F1")), 1543 QKeySequence(self.trUtf8("Shift+F1")),
1544 0, self, 'whatsThis') 1544 0, self, 'whatsThis')
1545 self.whatsThisAct.setStatusTip(self.trUtf8('Context sensitive help')) 1545 self.whatsThisAct.setStatusTip(self.trUtf8('Context sensitive help'))
1552 """ titlebar.</p>""" 1552 """ titlebar.</p>"""
1553 )) 1553 ))
1554 self.connect(self.whatsThisAct, SIGNAL('triggered()'), self.__whatsThis) 1554 self.connect(self.whatsThisAct, SIGNAL('triggered()'), self.__whatsThis)
1555 self.actions.append(self.whatsThisAct) 1555 self.actions.append(self.whatsThisAct)
1556 1556
1557 self.helpviewerAct = E4Action(self.trUtf8('Helpviewer'), 1557 self.helpviewerAct = E5Action(self.trUtf8('Helpviewer'),
1558 UI.PixmapCache.getIcon("help.png"), 1558 UI.PixmapCache.getIcon("help.png"),
1559 self.trUtf8('&Helpviewer...'), 1559 self.trUtf8('&Helpviewer...'),
1560 QKeySequence(self.trUtf8("F1")), 1560 QKeySequence(self.trUtf8("F1")),
1561 0, self, 'helpviewer') 1561 0, self, 'helpviewer')
1562 self.helpviewerAct.setStatusTip(self.trUtf8('Open the helpviewer window')) 1562 self.helpviewerAct.setStatusTip(self.trUtf8('Open the helpviewer window'))
1575 self.__initQtDocActions() 1575 self.__initQtDocActions()
1576 self.__initPythonDocAction() 1576 self.__initPythonDocAction()
1577 self.__initEricDocAction() 1577 self.__initEricDocAction()
1578 self.__initPySideDocActions() 1578 self.__initPySideDocActions()
1579 1579
1580 self.versionAct = E4Action(self.trUtf8('Show Versions'), 1580 self.versionAct = E5Action(self.trUtf8('Show Versions'),
1581 self.trUtf8('Show &Versions'), 0, 0, self, 'show_versions') 1581 self.trUtf8('Show &Versions'), 0, 0, self, 'show_versions')
1582 self.versionAct.setStatusTip(self.trUtf8('Display version information')) 1582 self.versionAct.setStatusTip(self.trUtf8('Display version information'))
1583 self.versionAct.setWhatsThis(self.trUtf8( 1583 self.versionAct.setWhatsThis(self.trUtf8(
1584 """<b>Show Versions</b>""" 1584 """<b>Show Versions</b>"""
1585 """<p>Display version information.</p>""" 1585 """<p>Display version information.</p>"""
1586 )) 1586 ))
1587 self.connect(self.versionAct, SIGNAL('triggered()'), self.__showVersions) 1587 self.connect(self.versionAct, SIGNAL('triggered()'), self.__showVersions)
1588 self.actions.append(self.versionAct) 1588 self.actions.append(self.versionAct)
1589 1589
1590 self.checkUpdateAct = E4Action(self.trUtf8('Check for Updates'), 1590 self.checkUpdateAct = E5Action(self.trUtf8('Check for Updates'),
1591 self.trUtf8('Check for &Updates...'), 0, 0, self, 'check_updates') 1591 self.trUtf8('Check for &Updates...'), 0, 0, self, 'check_updates')
1592 self.checkUpdateAct.setStatusTip(self.trUtf8('Check for Updates')) 1592 self.checkUpdateAct.setStatusTip(self.trUtf8('Check for Updates'))
1593 self.checkUpdateAct.setWhatsThis(self.trUtf8( 1593 self.checkUpdateAct.setWhatsThis(self.trUtf8(
1594 """<b>Check for Updates...</b>""" 1594 """<b>Check for Updates...</b>"""
1595 """<p>Checks the internet for updates of eric5.</p>""" 1595 """<p>Checks the internet for updates of eric5.</p>"""
1596 )) 1596 ))
1597 self.connect(self.checkUpdateAct, SIGNAL('triggered()'), self.performVersionCheck) 1597 self.connect(self.checkUpdateAct, SIGNAL('triggered()'), self.performVersionCheck)
1598 self.actions.append(self.checkUpdateAct) 1598 self.actions.append(self.checkUpdateAct)
1599 1599
1600 self.showVersionsAct = E4Action(self.trUtf8('Show downloadable versions'), 1600 self.showVersionsAct = E5Action(self.trUtf8('Show downloadable versions'),
1601 self.trUtf8('Show &downloadable versions...'), 1601 self.trUtf8('Show &downloadable versions...'),
1602 0, 0, self, 'show_downloadable_versions') 1602 0, 0, self, 'show_downloadable_versions')
1603 self.showVersionsAct.setStatusTip(\ 1603 self.showVersionsAct.setStatusTip(\
1604 self.trUtf8('Show the versions available for download')) 1604 self.trUtf8('Show the versions available for download'))
1605 self.showVersionsAct.setWhatsThis(self.trUtf8( 1605 self.showVersionsAct.setWhatsThis(self.trUtf8(
1609 )) 1609 ))
1610 self.connect(self.showVersionsAct, SIGNAL('triggered()'), 1610 self.connect(self.showVersionsAct, SIGNAL('triggered()'),
1611 self.showAvailableVersionsInfo) 1611 self.showAvailableVersionsInfo)
1612 self.actions.append(self.showVersionsAct) 1612 self.actions.append(self.showVersionsAct)
1613 1613
1614 self.reportBugAct = E4Action(self.trUtf8('Report Bug'), 1614 self.reportBugAct = E5Action(self.trUtf8('Report Bug'),
1615 self.trUtf8('Report &Bug...'), 0, 0, self, 'report_bug') 1615 self.trUtf8('Report &Bug...'), 0, 0, self, 'report_bug')
1616 self.reportBugAct.setStatusTip(self.trUtf8('Report a bug')) 1616 self.reportBugAct.setStatusTip(self.trUtf8('Report a bug'))
1617 self.reportBugAct.setWhatsThis(self.trUtf8( 1617 self.reportBugAct.setWhatsThis(self.trUtf8(
1618 """<b>Report Bug...</b>""" 1618 """<b>Report Bug...</b>"""
1619 """<p>Opens a dialog to report a bug.</p>""" 1619 """<p>Opens a dialog to report a bug.</p>"""
1620 )) 1620 ))
1621 self.connect(self.reportBugAct, SIGNAL('triggered()'), self.__reportBug) 1621 self.connect(self.reportBugAct, SIGNAL('triggered()'), self.__reportBug)
1622 self.actions.append(self.reportBugAct) 1622 self.actions.append(self.reportBugAct)
1623 1623
1624 self.requestFeatureAct = E4Action(self.trUtf8('Request Feature'), 1624 self.requestFeatureAct = E5Action(self.trUtf8('Request Feature'),
1625 self.trUtf8('Request &Feature...'), 0, 0, self, 'request_feature') 1625 self.trUtf8('Request &Feature...'), 0, 0, self, 'request_feature')
1626 self.requestFeatureAct.setStatusTip(self.trUtf8('Send a feature request')) 1626 self.requestFeatureAct.setStatusTip(self.trUtf8('Send a feature request'))
1627 self.requestFeatureAct.setWhatsThis(self.trUtf8( 1627 self.requestFeatureAct.setWhatsThis(self.trUtf8(
1628 """<b>Request Feature...</b>""" 1628 """<b>Request Feature...</b>"""
1629 """<p>Opens a dialog to send a feature request.</p>""" 1629 """<p>Opens a dialog to send a feature request.</p>"""
1631 self.connect(self.requestFeatureAct, SIGNAL('triggered()'), self.__requestFeature) 1631 self.connect(self.requestFeatureAct, SIGNAL('triggered()'), self.__requestFeature)
1632 self.actions.append(self.requestFeatureAct) 1632 self.actions.append(self.requestFeatureAct)
1633 1633
1634 self.utActGrp = createActionGroup(self) 1634 self.utActGrp = createActionGroup(self)
1635 1635
1636 self.utDialogAct = E4Action(self.trUtf8('Unittest'), 1636 self.utDialogAct = E5Action(self.trUtf8('Unittest'),
1637 UI.PixmapCache.getIcon("unittest.png"), 1637 UI.PixmapCache.getIcon("unittest.png"),
1638 self.trUtf8('&Unittest...'), 1638 self.trUtf8('&Unittest...'),
1639 0, 0, self.utActGrp, 'unittest') 1639 0, 0, self.utActGrp, 'unittest')
1640 self.utDialogAct.setStatusTip(self.trUtf8('Start unittest dialog')) 1640 self.utDialogAct.setStatusTip(self.trUtf8('Start unittest dialog'))
1641 self.utDialogAct.setWhatsThis(self.trUtf8( 1641 self.utDialogAct.setWhatsThis(self.trUtf8(
1644 """ ability to select and run a unittest suite.</p>""" 1644 """ ability to select and run a unittest suite.</p>"""
1645 )) 1645 ))
1646 self.connect(self.utDialogAct, SIGNAL('triggered()'), self.__unittest) 1646 self.connect(self.utDialogAct, SIGNAL('triggered()'), self.__unittest)
1647 self.actions.append(self.utDialogAct) 1647 self.actions.append(self.utDialogAct)
1648 1648
1649 self.utRestartAct = E4Action(self.trUtf8('Unittest Restart'), 1649 self.utRestartAct = E5Action(self.trUtf8('Unittest Restart'),
1650 UI.PixmapCache.getIcon("unittestRestart.png"), 1650 UI.PixmapCache.getIcon("unittestRestart.png"),
1651 self.trUtf8('&Restart Unittest...'), 1651 self.trUtf8('&Restart Unittest...'),
1652 0, 0, self.utActGrp, 'unittest_restart') 1652 0, 0, self.utActGrp, 'unittest_restart')
1653 self.utRestartAct.setStatusTip(self.trUtf8('Restart last unittest')) 1653 self.utRestartAct.setStatusTip(self.trUtf8('Restart last unittest'))
1654 self.utRestartAct.setWhatsThis(self.trUtf8( 1654 self.utRestartAct.setWhatsThis(self.trUtf8(
1657 )) 1657 ))
1658 self.connect(self.utRestartAct, SIGNAL('triggered()'), self.__unittestRestart) 1658 self.connect(self.utRestartAct, SIGNAL('triggered()'), self.__unittestRestart)
1659 self.utRestartAct.setEnabled(False) 1659 self.utRestartAct.setEnabled(False)
1660 self.actions.append(self.utRestartAct) 1660 self.actions.append(self.utRestartAct)
1661 1661
1662 self.utScriptAct = E4Action(self.trUtf8('Unittest Script'), 1662 self.utScriptAct = E5Action(self.trUtf8('Unittest Script'),
1663 UI.PixmapCache.getIcon("unittestScript.png"), 1663 UI.PixmapCache.getIcon("unittestScript.png"),
1664 self.trUtf8('Unittest &Script...'), 1664 self.trUtf8('Unittest &Script...'),
1665 0, 0, self.utActGrp, 'unittest_script') 1665 0, 0, self.utActGrp, 'unittest_script')
1666 self.utScriptAct.setStatusTip(self.trUtf8('Run unittest with current script')) 1666 self.utScriptAct.setStatusTip(self.trUtf8('Run unittest with current script'))
1667 self.utScriptAct.setWhatsThis(self.trUtf8( 1667 self.utScriptAct.setWhatsThis(self.trUtf8(
1670 )) 1670 ))
1671 self.connect(self.utScriptAct, SIGNAL('triggered()'), self.__unittestScript) 1671 self.connect(self.utScriptAct, SIGNAL('triggered()'), self.__unittestScript)
1672 self.utScriptAct.setEnabled(False) 1672 self.utScriptAct.setEnabled(False)
1673 self.actions.append(self.utScriptAct) 1673 self.actions.append(self.utScriptAct)
1674 1674
1675 self.utProjectAct = E4Action(self.trUtf8('Unittest Project'), 1675 self.utProjectAct = E5Action(self.trUtf8('Unittest Project'),
1676 UI.PixmapCache.getIcon("unittestProject.png"), 1676 UI.PixmapCache.getIcon("unittestProject.png"),
1677 self.trUtf8('Unittest &Project...'), 1677 self.trUtf8('Unittest &Project...'),
1678 0, 0, self.utActGrp, 'unittest_project') 1678 0, 0, self.utActGrp, 'unittest_project')
1679 self.utProjectAct.setStatusTip(self.trUtf8('Run unittest with current project')) 1679 self.utProjectAct.setStatusTip(self.trUtf8('Run unittest with current project'))
1680 self.utProjectAct.setWhatsThis(self.trUtf8( 1680 self.utProjectAct.setWhatsThis(self.trUtf8(
1688 # check for Qt4 designer and linguist 1688 # check for Qt4 designer and linguist
1689 designerExe = Utilities.isWindowsPlatform() and \ 1689 designerExe = Utilities.isWindowsPlatform() and \
1690 "%s.exe" % Utilities.generateQtToolName("designer") or \ 1690 "%s.exe" % Utilities.generateQtToolName("designer") or \
1691 Utilities.generateQtToolName("designer") 1691 Utilities.generateQtToolName("designer")
1692 if Utilities.isinpath(designerExe): 1692 if Utilities.isinpath(designerExe):
1693 self.designer4Act = E4Action(self.trUtf8('Qt-Designer 4'), 1693 self.designer4Act = E5Action(self.trUtf8('Qt-Designer 4'),
1694 UI.PixmapCache.getIcon("designer4.png"), 1694 UI.PixmapCache.getIcon("designer4.png"),
1695 self.trUtf8('&Designer 4...'), 0, 0, self, 'qt_designer4') 1695 self.trUtf8('&Designer 4...'), 0, 0, self, 'qt_designer4')
1696 self.designer4Act.setStatusTip(self.trUtf8('Start Qt-Designer 4')) 1696 self.designer4Act.setStatusTip(self.trUtf8('Start Qt-Designer 4'))
1697 self.designer4Act.setWhatsThis(self.trUtf8( 1697 self.designer4Act.setWhatsThis(self.trUtf8(
1698 """<b>Qt-Designer 4</b>""" 1698 """<b>Qt-Designer 4</b>"""
1705 1705
1706 linguistExe = Utilities.isWindowsPlatform() and \ 1706 linguistExe = Utilities.isWindowsPlatform() and \
1707 "%s.exe" % Utilities.generateQtToolName("linguist") or \ 1707 "%s.exe" % Utilities.generateQtToolName("linguist") or \
1708 Utilities.generateQtToolName("linguist") 1708 Utilities.generateQtToolName("linguist")
1709 if Utilities.isinpath(linguistExe): 1709 if Utilities.isinpath(linguistExe):
1710 self.linguist4Act = E4Action(self.trUtf8('Qt-Linguist 4'), 1710 self.linguist4Act = E5Action(self.trUtf8('Qt-Linguist 4'),
1711 UI.PixmapCache.getIcon("linguist4.png"), 1711 UI.PixmapCache.getIcon("linguist4.png"),
1712 self.trUtf8('&Linguist 4...'), 0, 0, self, 'qt_linguist4') 1712 self.trUtf8('&Linguist 4...'), 0, 0, self, 'qt_linguist4')
1713 self.linguist4Act.setStatusTip(self.trUtf8('Start Qt-Linguist 4')) 1713 self.linguist4Act.setStatusTip(self.trUtf8('Start Qt-Linguist 4'))
1714 self.linguist4Act.setWhatsThis(self.trUtf8( 1714 self.linguist4Act.setWhatsThis(self.trUtf8(
1715 """<b>Qt-Linguist 4</b>""" 1715 """<b>Qt-Linguist 4</b>"""
1718 self.connect(self.linguist4Act, SIGNAL('triggered()'), self.__linguist4) 1718 self.connect(self.linguist4Act, SIGNAL('triggered()'), self.__linguist4)
1719 self.actions.append(self.linguist4Act) 1719 self.actions.append(self.linguist4Act)
1720 else: 1720 else:
1721 self.linguist4Act = None 1721 self.linguist4Act = None
1722 1722
1723 self.uipreviewerAct = E4Action(self.trUtf8('UI Previewer'), 1723 self.uipreviewerAct = E5Action(self.trUtf8('UI Previewer'),
1724 UI.PixmapCache.getIcon("uiPreviewer.png"), 1724 UI.PixmapCache.getIcon("uiPreviewer.png"),
1725 self.trUtf8('&UI Previewer...'), 0, 0, self, 'ui_previewer') 1725 self.trUtf8('&UI Previewer...'), 0, 0, self, 'ui_previewer')
1726 self.uipreviewerAct.setStatusTip(self.trUtf8('Start the UI Previewer')) 1726 self.uipreviewerAct.setStatusTip(self.trUtf8('Start the UI Previewer'))
1727 self.uipreviewerAct.setWhatsThis(self.trUtf8( 1727 self.uipreviewerAct.setWhatsThis(self.trUtf8(
1728 """<b>UI Previewer</b>""" 1728 """<b>UI Previewer</b>"""
1729 """<p>Start the UI Previewer.</p>""" 1729 """<p>Start the UI Previewer.</p>"""
1730 )) 1730 ))
1731 self.connect(self.uipreviewerAct, SIGNAL('triggered()'), self.__UIPreviewer) 1731 self.connect(self.uipreviewerAct, SIGNAL('triggered()'), self.__UIPreviewer)
1732 self.actions.append(self.uipreviewerAct) 1732 self.actions.append(self.uipreviewerAct)
1733 1733
1734 self.trpreviewerAct = E4Action(self.trUtf8('Translations Previewer'), 1734 self.trpreviewerAct = E5Action(self.trUtf8('Translations Previewer'),
1735 UI.PixmapCache.getIcon("trPreviewer.png"), 1735 UI.PixmapCache.getIcon("trPreviewer.png"),
1736 self.trUtf8('&Translations Previewer...'), 0, 0, self, 'tr_previewer') 1736 self.trUtf8('&Translations Previewer...'), 0, 0, self, 'tr_previewer')
1737 self.trpreviewerAct.setStatusTip(self.trUtf8('Start the Translations Previewer')) 1737 self.trpreviewerAct.setStatusTip(self.trUtf8('Start the Translations Previewer'))
1738 self.trpreviewerAct.setWhatsThis(self.trUtf8( 1738 self.trpreviewerAct.setWhatsThis(self.trUtf8(
1739 """<b>Translations Previewer</b>""" 1739 """<b>Translations Previewer</b>"""
1740 """<p>Start the Translations Previewer.</p>""" 1740 """<p>Start the Translations Previewer.</p>"""
1741 )) 1741 ))
1742 self.connect(self.trpreviewerAct, SIGNAL('triggered()'), self.__TRPreviewer) 1742 self.connect(self.trpreviewerAct, SIGNAL('triggered()'), self.__TRPreviewer)
1743 self.actions.append(self.trpreviewerAct) 1743 self.actions.append(self.trpreviewerAct)
1744 1744
1745 self.diffAct = E4Action(self.trUtf8('Compare Files'), 1745 self.diffAct = E5Action(self.trUtf8('Compare Files'),
1746 UI.PixmapCache.getIcon("diffFiles.png"), 1746 UI.PixmapCache.getIcon("diffFiles.png"),
1747 self.trUtf8('&Compare Files...'), 0, 0, self, 'diff_files') 1747 self.trUtf8('&Compare Files...'), 0, 0, self, 'diff_files')
1748 self.diffAct.setStatusTip(self.trUtf8('Compare two files')) 1748 self.diffAct.setStatusTip(self.trUtf8('Compare two files'))
1749 self.diffAct.setWhatsThis(self.trUtf8( 1749 self.diffAct.setWhatsThis(self.trUtf8(
1750 """<b>Compare Files</b>""" 1750 """<b>Compare Files</b>"""
1751 """<p>Open a dialog to compare two files.</p>""" 1751 """<p>Open a dialog to compare two files.</p>"""
1752 )) 1752 ))
1753 self.connect(self.diffAct, SIGNAL('triggered()'), self.__compareFiles) 1753 self.connect(self.diffAct, SIGNAL('triggered()'), self.__compareFiles)
1754 self.actions.append(self.diffAct) 1754 self.actions.append(self.diffAct)
1755 1755
1756 self.compareAct = E4Action(self.trUtf8('Compare Files side by side'), 1756 self.compareAct = E5Action(self.trUtf8('Compare Files side by side'),
1757 UI.PixmapCache.getIcon("compareFiles.png"), 1757 UI.PixmapCache.getIcon("compareFiles.png"),
1758 self.trUtf8('Compare Files &side by side...'), 1758 self.trUtf8('Compare Files &side by side...'),
1759 0, 0, self, 'compare_files') 1759 0, 0, self, 'compare_files')
1760 self.compareAct.setStatusTip(self.trUtf8('Compare two files')) 1760 self.compareAct.setStatusTip(self.trUtf8('Compare two files'))
1761 self.compareAct.setWhatsThis(self.trUtf8( 1761 self.compareAct.setWhatsThis(self.trUtf8(
1764 """ side by side.</p>""" 1764 """ side by side.</p>"""
1765 )) 1765 ))
1766 self.connect(self.compareAct, SIGNAL('triggered()'), self.__compareFilesSbs) 1766 self.connect(self.compareAct, SIGNAL('triggered()'), self.__compareFilesSbs)
1767 self.actions.append(self.compareAct) 1767 self.actions.append(self.compareAct)
1768 1768
1769 self.sqlBrowserAct = E4Action(self.trUtf8('SQL Browser'), 1769 self.sqlBrowserAct = E5Action(self.trUtf8('SQL Browser'),
1770 UI.PixmapCache.getIcon("sqlBrowser.png"), 1770 UI.PixmapCache.getIcon("sqlBrowser.png"),
1771 self.trUtf8('SQL &Browser...'), 1771 self.trUtf8('SQL &Browser...'),
1772 0, 0, self, 'sql_browser') 1772 0, 0, self, 'sql_browser')
1773 self.sqlBrowserAct.setStatusTip(self.trUtf8('Browse a SQL database')) 1773 self.sqlBrowserAct.setStatusTip(self.trUtf8('Browse a SQL database'))
1774 self.sqlBrowserAct.setWhatsThis(self.trUtf8( 1774 self.sqlBrowserAct.setWhatsThis(self.trUtf8(
1776 """<p>Browse a SQL database.</p>""" 1776 """<p>Browse a SQL database.</p>"""
1777 )) 1777 ))
1778 self.connect(self.sqlBrowserAct, SIGNAL('triggered()'), self.__sqlBrowser) 1778 self.connect(self.sqlBrowserAct, SIGNAL('triggered()'), self.__sqlBrowser)
1779 self.actions.append(self.sqlBrowserAct) 1779 self.actions.append(self.sqlBrowserAct)
1780 1780
1781 self.miniEditorAct = E4Action(self.trUtf8('Mini Editor'), 1781 self.miniEditorAct = E5Action(self.trUtf8('Mini Editor'),
1782 UI.PixmapCache.getIcon("editor.png"), 1782 UI.PixmapCache.getIcon("editor.png"),
1783 self.trUtf8('Mini &Editor...'), 1783 self.trUtf8('Mini &Editor...'),
1784 0, 0, self, 'mini_editor') 1784 0, 0, self, 'mini_editor')
1785 self.miniEditorAct.setStatusTip(self.trUtf8('Mini Editor')) 1785 self.miniEditorAct.setStatusTip(self.trUtf8('Mini Editor'))
1786 self.miniEditorAct.setWhatsThis(self.trUtf8( 1786 self.miniEditorAct.setWhatsThis(self.trUtf8(
1788 """<p>Open a dialog with a simplified editor.</p>""" 1788 """<p>Open a dialog with a simplified editor.</p>"""
1789 )) 1789 ))
1790 self.connect(self.miniEditorAct, SIGNAL('triggered()'), self.__openMiniEditor) 1790 self.connect(self.miniEditorAct, SIGNAL('triggered()'), self.__openMiniEditor)
1791 self.actions.append(self.miniEditorAct) 1791 self.actions.append(self.miniEditorAct)
1792 1792
1793 self.webBrowserAct = E4Action(self.trUtf8('Web Browser'), 1793 self.webBrowserAct = E5Action(self.trUtf8('Web Browser'),
1794 UI.PixmapCache.getIcon("ericWeb.png"), 1794 UI.PixmapCache.getIcon("ericWeb.png"),
1795 self.trUtf8('&Web Browser...'), 1795 self.trUtf8('&Web Browser...'),
1796 0, 0, self, 'web_browser') 1796 0, 0, self, 'web_browser')
1797 self.webBrowserAct.setStatusTip(self.trUtf8('Start the eric5 Web Browser')) 1797 self.webBrowserAct.setStatusTip(self.trUtf8('Start the eric5 Web Browser'))
1798 self.webBrowserAct.setWhatsThis(self.trUtf8( 1798 self.webBrowserAct.setWhatsThis(self.trUtf8(
1800 """<p>Browse the Internet with the eric5 Web Browser.</p>""" 1800 """<p>Browse the Internet with the eric5 Web Browser.</p>"""
1801 )) 1801 ))
1802 self.connect(self.webBrowserAct, SIGNAL('triggered()'), self.__webBrowser) 1802 self.connect(self.webBrowserAct, SIGNAL('triggered()'), self.__webBrowser)
1803 self.actions.append(self.webBrowserAct) 1803 self.actions.append(self.webBrowserAct)
1804 1804
1805 self.iconEditorAct = E4Action(self.trUtf8('Icon Editor'), 1805 self.iconEditorAct = E5Action(self.trUtf8('Icon Editor'),
1806 UI.PixmapCache.getIcon("iconEditor.png"), 1806 UI.PixmapCache.getIcon("iconEditor.png"),
1807 self.trUtf8('&Icon Editor...'), 1807 self.trUtf8('&Icon Editor...'),
1808 0, 0, self, 'icon_editor') 1808 0, 0, self, 'icon_editor')
1809 self.iconEditorAct.setStatusTip(self.trUtf8('Start the eric5 Icon Editor')) 1809 self.iconEditorAct.setStatusTip(self.trUtf8('Start the eric5 Icon Editor'))
1810 self.iconEditorAct.setWhatsThis(self.trUtf8( 1810 self.iconEditorAct.setWhatsThis(self.trUtf8(
1812 """<p>Starts the eric5 Icon Editor for editing simple icons.</p>""" 1812 """<p>Starts the eric5 Icon Editor for editing simple icons.</p>"""
1813 )) 1813 ))
1814 self.connect(self.iconEditorAct, SIGNAL('triggered()'), self.__editPixmap) 1814 self.connect(self.iconEditorAct, SIGNAL('triggered()'), self.__editPixmap)
1815 self.actions.append(self.iconEditorAct) 1815 self.actions.append(self.iconEditorAct)
1816 1816
1817 self.prefAct = E4Action(self.trUtf8('Preferences'), 1817 self.prefAct = E5Action(self.trUtf8('Preferences'),
1818 UI.PixmapCache.getIcon("configure.png"), 1818 UI.PixmapCache.getIcon("configure.png"),
1819 self.trUtf8('&Preferences...'), 0, 0, self, 'preferences') 1819 self.trUtf8('&Preferences...'), 0, 0, self, 'preferences')
1820 self.prefAct.setStatusTip(self.trUtf8('Set the prefered configuration')) 1820 self.prefAct.setStatusTip(self.trUtf8('Set the prefered configuration'))
1821 self.prefAct.setWhatsThis(self.trUtf8( 1821 self.prefAct.setWhatsThis(self.trUtf8(
1822 """<b>Preferences</b>""" 1822 """<b>Preferences</b>"""
1824 """ with your prefered values.</p>""" 1824 """ with your prefered values.</p>"""
1825 )) 1825 ))
1826 self.connect(self.prefAct, SIGNAL('triggered()'), self.showPreferences) 1826 self.connect(self.prefAct, SIGNAL('triggered()'), self.showPreferences)
1827 self.actions.append(self.prefAct) 1827 self.actions.append(self.prefAct)
1828 1828
1829 self.prefExportAct = E4Action(self.trUtf8('Export Preferences'), 1829 self.prefExportAct = E5Action(self.trUtf8('Export Preferences'),
1830 UI.PixmapCache.getIcon("configureExport.png"), 1830 UI.PixmapCache.getIcon("configureExport.png"),
1831 self.trUtf8('E&xport Preferences...'), 0, 0, self, 'export_preferences') 1831 self.trUtf8('E&xport Preferences...'), 0, 0, self, 'export_preferences')
1832 self.prefExportAct.setStatusTip(self.trUtf8('Export the current configuration')) 1832 self.prefExportAct.setStatusTip(self.trUtf8('Export the current configuration'))
1833 self.prefExportAct.setWhatsThis(self.trUtf8( 1833 self.prefExportAct.setWhatsThis(self.trUtf8(
1834 """<b>Export Preferences</b>""" 1834 """<b>Export Preferences</b>"""
1835 """<p>Export the current configuration to a file.</p>""" 1835 """<p>Export the current configuration to a file.</p>"""
1836 )) 1836 ))
1837 self.connect(self.prefExportAct, SIGNAL('triggered()'), self.__exportPreferences) 1837 self.connect(self.prefExportAct, SIGNAL('triggered()'), self.__exportPreferences)
1838 self.actions.append(self.prefExportAct) 1838 self.actions.append(self.prefExportAct)
1839 1839
1840 self.prefImportAct = E4Action(self.trUtf8('Import Preferences'), 1840 self.prefImportAct = E5Action(self.trUtf8('Import Preferences'),
1841 UI.PixmapCache.getIcon("configureImport.png"), 1841 UI.PixmapCache.getIcon("configureImport.png"),
1842 self.trUtf8('I&mport Preferences...'), 0, 0, self, 'import_preferences') 1842 self.trUtf8('I&mport Preferences...'), 0, 0, self, 'import_preferences')
1843 self.prefImportAct.setStatusTip(self.trUtf8( 1843 self.prefImportAct.setStatusTip(self.trUtf8(
1844 'Import a previously exported configuration')) 1844 'Import a previously exported configuration'))
1845 self.prefImportAct.setWhatsThis(self.trUtf8( 1845 self.prefImportAct.setWhatsThis(self.trUtf8(
1847 """<p>Import a previously exported configuration.</p>""" 1847 """<p>Import a previously exported configuration.</p>"""
1848 )) 1848 ))
1849 self.connect(self.prefImportAct, SIGNAL('triggered()'), self.__importPreferences) 1849 self.connect(self.prefImportAct, SIGNAL('triggered()'), self.__importPreferences)
1850 self.actions.append(self.prefImportAct) 1850 self.actions.append(self.prefImportAct)
1851 1851
1852 self.reloadAPIsAct = E4Action(self.trUtf8('Reload APIs'), 1852 self.reloadAPIsAct = E5Action(self.trUtf8('Reload APIs'),
1853 self.trUtf8('Reload &APIs'), 0, 0, self, 'reload_apis') 1853 self.trUtf8('Reload &APIs'), 0, 0, self, 'reload_apis')
1854 self.reloadAPIsAct.setStatusTip(self.trUtf8('Reload the API information')) 1854 self.reloadAPIsAct.setStatusTip(self.trUtf8('Reload the API information'))
1855 self.reloadAPIsAct.setWhatsThis(self.trUtf8( 1855 self.reloadAPIsAct.setWhatsThis(self.trUtf8(
1856 """<b>Reload APIs</b>""" 1856 """<b>Reload APIs</b>"""
1857 """<p>Reload the API information.</p>""" 1857 """<p>Reload the API information.</p>"""
1858 )) 1858 ))
1859 self.connect(self.reloadAPIsAct, SIGNAL('triggered()'), self.__reloadAPIs) 1859 self.connect(self.reloadAPIsAct, SIGNAL('triggered()'), self.__reloadAPIs)
1860 self.actions.append(self.reloadAPIsAct) 1860 self.actions.append(self.reloadAPIsAct)
1861 1861
1862 self.showExternalToolsAct = E4Action(self.trUtf8('Show external tools'), 1862 self.showExternalToolsAct = E5Action(self.trUtf8('Show external tools'),
1863 UI.PixmapCache.getIcon("showPrograms.png"), 1863 UI.PixmapCache.getIcon("showPrograms.png"),
1864 self.trUtf8('Show external &tools'), 0, 0, self, 'show_external_tools') 1864 self.trUtf8('Show external &tools'), 0, 0, self, 'show_external_tools')
1865 self.showExternalToolsAct.setStatusTip(self.trUtf8('Reload the API information')) 1865 self.showExternalToolsAct.setStatusTip(self.trUtf8('Reload the API information'))
1866 self.showExternalToolsAct.setWhatsThis(self.trUtf8( 1866 self.showExternalToolsAct.setWhatsThis(self.trUtf8(
1867 """<b>Show external tools</b>""" 1867 """<b>Show external tools</b>"""
1870 )) 1870 ))
1871 self.connect(self.showExternalToolsAct, SIGNAL('triggered()'), 1871 self.connect(self.showExternalToolsAct, SIGNAL('triggered()'),
1872 self.__showExternalTools) 1872 self.__showExternalTools)
1873 self.actions.append(self.showExternalToolsAct) 1873 self.actions.append(self.showExternalToolsAct)
1874 1874
1875 self.configViewProfilesAct = E4Action(self.trUtf8('View Profiles'), 1875 self.configViewProfilesAct = E5Action(self.trUtf8('View Profiles'),
1876 UI.PixmapCache.getIcon("configureViewProfiles.png"), 1876 UI.PixmapCache.getIcon("configureViewProfiles.png"),
1877 self.trUtf8('&View Profiles...'), 0, 0, self, 'view_profiles') 1877 self.trUtf8('&View Profiles...'), 0, 0, self, 'view_profiles')
1878 self.configViewProfilesAct.setStatusTip(self.trUtf8('Configure view profiles')) 1878 self.configViewProfilesAct.setStatusTip(self.trUtf8('Configure view profiles'))
1879 self.configViewProfilesAct.setWhatsThis(self.trUtf8( 1879 self.configViewProfilesAct.setWhatsThis(self.trUtf8(
1880 """<b>View Profiles</b>""" 1880 """<b>View Profiles</b>"""
1884 )) 1884 ))
1885 self.connect(self.configViewProfilesAct, SIGNAL('triggered()'), 1885 self.connect(self.configViewProfilesAct, SIGNAL('triggered()'),
1886 self.__configViewProfiles) 1886 self.__configViewProfiles)
1887 self.actions.append(self.configViewProfilesAct) 1887 self.actions.append(self.configViewProfilesAct)
1888 1888
1889 self.configToolBarsAct = E4Action(self.trUtf8('Toolbars'), 1889 self.configToolBarsAct = E5Action(self.trUtf8('Toolbars'),
1890 UI.PixmapCache.getIcon("toolbarsConfigure.png"), 1890 UI.PixmapCache.getIcon("toolbarsConfigure.png"),
1891 self.trUtf8('Tool&bars...'), 0, 0, self, 'configure_toolbars') 1891 self.trUtf8('Tool&bars...'), 0, 0, self, 'configure_toolbars')
1892 self.configToolBarsAct.setStatusTip(self.trUtf8('Configure toolbars')) 1892 self.configToolBarsAct.setStatusTip(self.trUtf8('Configure toolbars'))
1893 self.configToolBarsAct.setWhatsThis(self.trUtf8( 1893 self.configToolBarsAct.setWhatsThis(self.trUtf8(
1894 """<b>Toolbars</b>""" 1894 """<b>Toolbars</b>"""
1897 """ define your own toolbars.</p>""" 1897 """ define your own toolbars.</p>"""
1898 )) 1898 ))
1899 self.connect(self.configToolBarsAct, SIGNAL('triggered()'), self.__configToolBars) 1899 self.connect(self.configToolBarsAct, SIGNAL('triggered()'), self.__configToolBars)
1900 self.actions.append(self.configToolBarsAct) 1900 self.actions.append(self.configToolBarsAct)
1901 1901
1902 self.shortcutsAct = E4Action(self.trUtf8('Keyboard Shortcuts'), 1902 self.shortcutsAct = E5Action(self.trUtf8('Keyboard Shortcuts'),
1903 UI.PixmapCache.getIcon("configureShortcuts.png"), 1903 UI.PixmapCache.getIcon("configureShortcuts.png"),
1904 self.trUtf8('Keyboard &Shortcuts...'), 0, 0, self, 'keyboard_shortcuts') 1904 self.trUtf8('Keyboard &Shortcuts...'), 0, 0, self, 'keyboard_shortcuts')
1905 self.shortcutsAct.setStatusTip(self.trUtf8('Set the keyboard shortcuts')) 1905 self.shortcutsAct.setStatusTip(self.trUtf8('Set the keyboard shortcuts'))
1906 self.shortcutsAct.setWhatsThis(self.trUtf8( 1906 self.shortcutsAct.setWhatsThis(self.trUtf8(
1907 """<b>Keyboard Shortcuts</b>""" 1907 """<b>Keyboard Shortcuts</b>"""
1909 """ with your prefered values.</p>""" 1909 """ with your prefered values.</p>"""
1910 )) 1910 ))
1911 self.connect(self.shortcutsAct, SIGNAL('triggered()'), self.__configShortcuts) 1911 self.connect(self.shortcutsAct, SIGNAL('triggered()'), self.__configShortcuts)
1912 self.actions.append(self.shortcutsAct) 1912 self.actions.append(self.shortcutsAct)
1913 1913
1914 self.exportShortcutsAct = E4Action(self.trUtf8('Export Keyboard Shortcuts'), 1914 self.exportShortcutsAct = E5Action(self.trUtf8('Export Keyboard Shortcuts'),
1915 UI.PixmapCache.getIcon("exportShortcuts.png"), 1915 UI.PixmapCache.getIcon("exportShortcuts.png"),
1916 self.trUtf8('&Export Keyboard Shortcuts...'), 0, 0, self, 1916 self.trUtf8('&Export Keyboard Shortcuts...'), 0, 0, self,
1917 'export_keyboard_shortcuts') 1917 'export_keyboard_shortcuts')
1918 self.exportShortcutsAct.setStatusTip(self.trUtf8('Export the keyboard shortcuts')) 1918 self.exportShortcutsAct.setStatusTip(self.trUtf8('Export the keyboard shortcuts'))
1919 self.exportShortcutsAct.setWhatsThis(self.trUtf8( 1919 self.exportShortcutsAct.setWhatsThis(self.trUtf8(
1922 )) 1922 ))
1923 self.connect(self.exportShortcutsAct, SIGNAL('triggered()'), 1923 self.connect(self.exportShortcutsAct, SIGNAL('triggered()'),
1924 self.__exportShortcuts) 1924 self.__exportShortcuts)
1925 self.actions.append(self.exportShortcutsAct) 1925 self.actions.append(self.exportShortcutsAct)
1926 1926
1927 self.importShortcutsAct = E4Action(self.trUtf8('Import Keyboard Shortcuts'), 1927 self.importShortcutsAct = E5Action(self.trUtf8('Import Keyboard Shortcuts'),
1928 UI.PixmapCache.getIcon("importShortcuts.png"), 1928 UI.PixmapCache.getIcon("importShortcuts.png"),
1929 self.trUtf8('&Import Keyboard Shortcuts...'), 0, 0, self, 1929 self.trUtf8('&Import Keyboard Shortcuts...'), 0, 0, self,
1930 'import_keyboard_shortcuts') 1930 'import_keyboard_shortcuts')
1931 self.importShortcutsAct.setStatusTip(self.trUtf8('Import the keyboard shortcuts')) 1931 self.importShortcutsAct.setStatusTip(self.trUtf8('Import the keyboard shortcuts'))
1932 self.importShortcutsAct.setWhatsThis(self.trUtf8( 1932 self.importShortcutsAct.setWhatsThis(self.trUtf8(
1935 )) 1935 ))
1936 self.connect(self.importShortcutsAct, SIGNAL('triggered()'), 1936 self.connect(self.importShortcutsAct, SIGNAL('triggered()'),
1937 self.__importShortcuts) 1937 self.__importShortcuts)
1938 self.actions.append(self.importShortcutsAct) 1938 self.actions.append(self.importShortcutsAct)
1939 1939
1940 self.viewmanagerActivateAct = E4Action(self.trUtf8('Activate current editor'), 1940 self.viewmanagerActivateAct = E5Action(self.trUtf8('Activate current editor'),
1941 self.trUtf8('Activate current editor'), 1941 self.trUtf8('Activate current editor'),
1942 QKeySequence(self.trUtf8("Alt+Shift+E")), 1942 QKeySequence(self.trUtf8("Alt+Shift+E")),
1943 0, self, 1943 0, self,
1944 'viewmanager_activate',1) 1944 'viewmanager_activate',1)
1945 self.connect(self.viewmanagerActivateAct, SIGNAL('triggered()'), 1945 self.connect(self.viewmanagerActivateAct, SIGNAL('triggered()'),
1946 self.__activateViewmanager) 1946 self.__activateViewmanager)
1947 self.actions.append(self.viewmanagerActivateAct) 1947 self.actions.append(self.viewmanagerActivateAct)
1948 self.addAction(self.viewmanagerActivateAct) 1948 self.addAction(self.viewmanagerActivateAct)
1949 1949
1950 self.nextTabAct = E4Action(self.trUtf8('Show next'), 1950 self.nextTabAct = E5Action(self.trUtf8('Show next'),
1951 self.trUtf8('Show next'), 1951 self.trUtf8('Show next'),
1952 QKeySequence(self.trUtf8('Ctrl+Alt+Tab')), 0, 1952 QKeySequence(self.trUtf8('Ctrl+Alt+Tab')), 0,
1953 self, 'view_next_tab') 1953 self, 'view_next_tab')
1954 self.connect(self.nextTabAct, SIGNAL('triggered()'), self.__showNext) 1954 self.connect(self.nextTabAct, SIGNAL('triggered()'), self.__showNext)
1955 self.actions.append(self.nextTabAct) 1955 self.actions.append(self.nextTabAct)
1956 self.addAction(self.nextTabAct) 1956 self.addAction(self.nextTabAct)
1957 1957
1958 self.prevTabAct = E4Action(self.trUtf8('Show previous'), 1958 self.prevTabAct = E5Action(self.trUtf8('Show previous'),
1959 self.trUtf8('Show previous'), 1959 self.trUtf8('Show previous'),
1960 QKeySequence(self.trUtf8('Shift+Ctrl+Alt+Tab')), 0, 1960 QKeySequence(self.trUtf8('Shift+Ctrl+Alt+Tab')), 0,
1961 self, 'view_previous_tab') 1961 self, 'view_previous_tab')
1962 self.connect(self.prevTabAct, SIGNAL('triggered()'), self.__showPrevious) 1962 self.connect(self.prevTabAct, SIGNAL('triggered()'), self.__showPrevious)
1963 self.actions.append(self.prevTabAct) 1963 self.actions.append(self.prevTabAct)
1964 self.addAction(self.prevTabAct) 1964 self.addAction(self.prevTabAct)
1965 1965
1966 self.switchTabAct = E4Action(self.trUtf8('Switch between tabs'), 1966 self.switchTabAct = E5Action(self.trUtf8('Switch between tabs'),
1967 self.trUtf8('Switch between tabs'), 1967 self.trUtf8('Switch between tabs'),
1968 QKeySequence(self.trUtf8('Ctrl+1')), 0, 1968 QKeySequence(self.trUtf8('Ctrl+1')), 0,
1969 self, 'switch_tabs') 1969 self, 'switch_tabs')
1970 self.connect(self.switchTabAct, SIGNAL('triggered()'), self.__switchTab) 1970 self.connect(self.switchTabAct, SIGNAL('triggered()'), self.__switchTab)
1971 self.actions.append(self.switchTabAct) 1971 self.actions.append(self.switchTabAct)
1972 self.addAction(self.switchTabAct) 1972 self.addAction(self.switchTabAct)
1973 1973
1974 self.pluginInfoAct = E4Action(self.trUtf8('Plugin Infos'), 1974 self.pluginInfoAct = E5Action(self.trUtf8('Plugin Infos'),
1975 UI.PixmapCache.getIcon("plugin.png"), 1975 UI.PixmapCache.getIcon("plugin.png"),
1976 self.trUtf8('&Plugin Infos...'), 0, 0, self, 'plugin_infos') 1976 self.trUtf8('&Plugin Infos...'), 0, 0, self, 'plugin_infos')
1977 self.pluginInfoAct.setStatusTip(self.trUtf8('Show Plugin Infos')) 1977 self.pluginInfoAct.setStatusTip(self.trUtf8('Show Plugin Infos'))
1978 self.pluginInfoAct.setWhatsThis(self.trUtf8( 1978 self.pluginInfoAct.setWhatsThis(self.trUtf8(
1979 """<b>Plugin Infos...</b>""" 1979 """<b>Plugin Infos...</b>"""
1981 """ loaded plugins.</p>""" 1981 """ loaded plugins.</p>"""
1982 )) 1982 ))
1983 self.connect(self.pluginInfoAct, SIGNAL('triggered()'), self.__showPluginInfo) 1983 self.connect(self.pluginInfoAct, SIGNAL('triggered()'), self.__showPluginInfo)
1984 self.actions.append(self.pluginInfoAct) 1984 self.actions.append(self.pluginInfoAct)
1985 1985
1986 self.pluginInstallAct = E4Action(self.trUtf8('Install Plugins'), 1986 self.pluginInstallAct = E5Action(self.trUtf8('Install Plugins'),
1987 UI.PixmapCache.getIcon("pluginInstall.png"), 1987 UI.PixmapCache.getIcon("pluginInstall.png"),
1988 self.trUtf8('&Install Plugins...'), 0, 0, self, 'plugin_install') 1988 self.trUtf8('&Install Plugins...'), 0, 0, self, 'plugin_install')
1989 self.pluginInstallAct.setStatusTip(self.trUtf8('Install Plugins')) 1989 self.pluginInstallAct.setStatusTip(self.trUtf8('Install Plugins'))
1990 self.pluginInstallAct.setWhatsThis(self.trUtf8( 1990 self.pluginInstallAct.setWhatsThis(self.trUtf8(
1991 """<b>Install Plugins...</b>""" 1991 """<b>Install Plugins...</b>"""
1992 """<p>This opens a dialog to install or update plugins.</p>""" 1992 """<p>This opens a dialog to install or update plugins.</p>"""
1993 )) 1993 ))
1994 self.connect(self.pluginInstallAct, SIGNAL('triggered()'), self.__installPlugins) 1994 self.connect(self.pluginInstallAct, SIGNAL('triggered()'), self.__installPlugins)
1995 self.actions.append(self.pluginInstallAct) 1995 self.actions.append(self.pluginInstallAct)
1996 1996
1997 self.pluginDeinstallAct = E4Action(self.trUtf8('Uninstall Plugin'), 1997 self.pluginDeinstallAct = E5Action(self.trUtf8('Uninstall Plugin'),
1998 UI.PixmapCache.getIcon("pluginUninstall.png"), 1998 UI.PixmapCache.getIcon("pluginUninstall.png"),
1999 self.trUtf8('&Uninstall Plugin...'), 0, 0, self, 'plugin_deinstall') 1999 self.trUtf8('&Uninstall Plugin...'), 0, 0, self, 'plugin_deinstall')
2000 self.pluginDeinstallAct.setStatusTip(self.trUtf8('Uninstall Plugin')) 2000 self.pluginDeinstallAct.setStatusTip(self.trUtf8('Uninstall Plugin'))
2001 self.pluginDeinstallAct.setWhatsThis(self.trUtf8( 2001 self.pluginDeinstallAct.setWhatsThis(self.trUtf8(
2002 """<b>Uninstall Plugin...</b>""" 2002 """<b>Uninstall Plugin...</b>"""
2004 )) 2004 ))
2005 self.connect(self.pluginDeinstallAct, SIGNAL('triggered()'), 2005 self.connect(self.pluginDeinstallAct, SIGNAL('triggered()'),
2006 self.__deinstallPlugin) 2006 self.__deinstallPlugin)
2007 self.actions.append(self.pluginDeinstallAct) 2007 self.actions.append(self.pluginDeinstallAct)
2008 2008
2009 self.pluginRepoAct = E4Action(self.trUtf8('Plugin Repository'), 2009 self.pluginRepoAct = E5Action(self.trUtf8('Plugin Repository'),
2010 UI.PixmapCache.getIcon("pluginRepository.png"), 2010 UI.PixmapCache.getIcon("pluginRepository.png"),
2011 self.trUtf8('Plugin &Repository...'), 0, 0, self, 'plugin_repository') 2011 self.trUtf8('Plugin &Repository...'), 0, 0, self, 'plugin_repository')
2012 self.pluginRepoAct.setStatusTip(self.trUtf8( 2012 self.pluginRepoAct.setStatusTip(self.trUtf8(
2013 'Show Plugins available for download')) 2013 'Show Plugins available for download'))
2014 self.pluginRepoAct.setWhatsThis(self.trUtf8( 2014 self.pluginRepoAct.setWhatsThis(self.trUtf8(
2034 2034
2035 def __initQtDocActions(self): 2035 def __initQtDocActions(self):
2036 """ 2036 """
2037 Private slot to initilize the action to show the Qt documentation. 2037 Private slot to initilize the action to show the Qt documentation.
2038 """ 2038 """
2039 self.qt4DocAct = E4Action(self.trUtf8('Qt4 Documentation'), 2039 self.qt4DocAct = E5Action(self.trUtf8('Qt4 Documentation'),
2040 self.trUtf8('Qt&4 Documentation'), 0, 0, self, 'qt4_documentation') 2040 self.trUtf8('Qt&4 Documentation'), 0, 0, self, 'qt4_documentation')
2041 self.qt4DocAct.setStatusTip(self.trUtf8('Open Qt4 Documentation')) 2041 self.qt4DocAct.setStatusTip(self.trUtf8('Open Qt4 Documentation'))
2042 self.qt4DocAct.setWhatsThis(self.trUtf8( 2042 self.qt4DocAct.setWhatsThis(self.trUtf8(
2043 """<b>Qt4 Documentation</b>""" 2043 """<b>Qt4 Documentation</b>"""
2044 """<p>Display the Qt4 Documentation. Dependant upon your settings, this""" 2044 """<p>Display the Qt4 Documentation. Dependant upon your settings, this"""
2046 """ a web browser or Qt Assistant. </p>""" 2046 """ a web browser or Qt Assistant. </p>"""
2047 )) 2047 ))
2048 self.connect(self.qt4DocAct, SIGNAL('triggered()'), self.__showQt4Doc) 2048 self.connect(self.qt4DocAct, SIGNAL('triggered()'), self.__showQt4Doc)
2049 self.actions.append(self.qt4DocAct) 2049 self.actions.append(self.qt4DocAct)
2050 2050
2051 self.pyqt4DocAct = E4Action(self.trUtf8('PyQt4 Documentation'), 2051 self.pyqt4DocAct = E5Action(self.trUtf8('PyQt4 Documentation'),
2052 self.trUtf8('P&yQt4 Documentation'), 0, 0, self, 'pyqt4_documentation') 2052 self.trUtf8('P&yQt4 Documentation'), 0, 0, self, 'pyqt4_documentation')
2053 self.pyqt4DocAct.setStatusTip(self.trUtf8('Open PyQt4 Documentation')) 2053 self.pyqt4DocAct.setStatusTip(self.trUtf8('Open PyQt4 Documentation'))
2054 self.pyqt4DocAct.setWhatsThis(self.trUtf8( 2054 self.pyqt4DocAct.setWhatsThis(self.trUtf8(
2055 """<b>PyQt4 Documentation</b>""" 2055 """<b>PyQt4 Documentation</b>"""
2056 """<p>Display the PyQt4 Documentation. Dependant upon your settings, this""" 2056 """<p>Display the PyQt4 Documentation. Dependant upon your settings, this"""
2062 2062
2063 def __initPythonDocAction(self): 2063 def __initPythonDocAction(self):
2064 """ 2064 """
2065 Private slot to initilize the action to show the Python documentation. 2065 Private slot to initilize the action to show the Python documentation.
2066 """ 2066 """
2067 self.pythonDocAct = E4Action(self.trUtf8('Python Documentation'), 2067 self.pythonDocAct = E5Action(self.trUtf8('Python Documentation'),
2068 self.trUtf8('&Python Documentation'), 0, 0, self, 'python_documentation') 2068 self.trUtf8('&Python Documentation'), 0, 0, self, 'python_documentation')
2069 self.pythonDocAct.setStatusTip(self.trUtf8('Open Python Documentation')) 2069 self.pythonDocAct.setStatusTip(self.trUtf8('Open Python Documentation'))
2070 self.pythonDocAct.setWhatsThis(self.trUtf8( 2070 self.pythonDocAct.setWhatsThis(self.trUtf8(
2071 """<b>Python Documentation</b>""" 2071 """<b>Python Documentation</b>"""
2072 """<p>Display the python documentation.""" 2072 """<p>Display the python documentation."""
2081 2081
2082 def __initEricDocAction(self): 2082 def __initEricDocAction(self):
2083 """ 2083 """
2084 Private slot to initialize the action to show the eric5 documentation. 2084 Private slot to initialize the action to show the eric5 documentation.
2085 """ 2085 """
2086 self.ericDocAct = E4Action(self.trUtf8("Eric API Documentation"), 2086 self.ericDocAct = E5Action(self.trUtf8("Eric API Documentation"),
2087 self.trUtf8('&Eric API Documentation'), 0, 0, self, 'eric_documentation') 2087 self.trUtf8('&Eric API Documentation'), 0, 0, self, 'eric_documentation')
2088 self.ericDocAct.setStatusTip(self.trUtf8("Open Eric API Documentation")) 2088 self.ericDocAct.setStatusTip(self.trUtf8("Open Eric API Documentation"))
2089 self.ericDocAct.setWhatsThis(self.trUtf8( 2089 self.ericDocAct.setWhatsThis(self.trUtf8(
2090 """<b>Eric API Documentation</b>""" 2090 """<b>Eric API Documentation</b>"""
2091 """<p>Display the Eric API documentation.""" 2091 """<p>Display the Eric API documentation."""
2099 """ 2099 """
2100 Private slot to initilize the action to show the PySide documentation. 2100 Private slot to initilize the action to show the PySide documentation.
2101 """ 2101 """
2102 try: 2102 try:
2103 import PySide 2103 import PySide
2104 self.pysideDocAct = E4Action(self.trUtf8('PySide Documentation'), 2104 self.pysideDocAct = E5Action(self.trUtf8('PySide Documentation'),
2105 self.trUtf8('Py&Side Documentation'), 0, 0, self, 'pyside_documentation') 2105 self.trUtf8('Py&Side Documentation'), 0, 0, self, 'pyside_documentation')
2106 self.pysideDocAct.setStatusTip(self.trUtf8('Open PySide Documentation')) 2106 self.pysideDocAct.setStatusTip(self.trUtf8('Open PySide Documentation'))
2107 self.pysideDocAct.setWhatsThis(self.trUtf8( 2107 self.pysideDocAct.setWhatsThis(self.trUtf8(
2108 """<b>PySide Documentation</b>""" 2108 """<b>PySide Documentation</b>"""
2109 """<p>Display the PySide Documentation. Dependant upon your settings, """ 2109 """<p>Display the PySide Documentation. Dependant upon your settings, """
2435 self.sbWritable.setWhatsThis(self.trUtf8( 2435 self.sbWritable.setWhatsThis(self.trUtf8(
2436 """<p>This part of the status bar displays an indication of the""" 2436 """<p>This part of the status bar displays an indication of the"""
2437 """ current editors files writability.</p>""" 2437 """ current editors files writability.</p>"""
2438 )) 2438 ))
2439 2439
2440 self.sbFile = E4SqueezeLabelPath(self.__statusBar) 2440 self.sbFile = E5SqueezeLabelPath(self.__statusBar)
2441 self.sbFile.setMaximumWidth(500) 2441 self.sbFile.setMaximumWidth(500)
2442 self.sbFile.setMinimumWidth(100) 2442 self.sbFile.setMinimumWidth(100)
2443 self.__statusBar.addPermanentWidget(self.sbFile, True) 2443 self.__statusBar.addPermanentWidget(self.sbFile, True)
2444 self.sbFile.setWhatsThis(self.trUtf8( 2444 self.sbFile.setWhatsThis(self.trUtf8(
2445 """<p>This part of the status bar displays the name of the file of""" 2445 """<p>This part of the status bar displays the name of the file of"""
2751 Private slot to show a mini editor window. 2751 Private slot to show a mini editor window.
2752 """ 2752 """
2753 editor = MiniEditor(parent = self) 2753 editor = MiniEditor(parent = self)
2754 editor.show() 2754 editor.show()
2755 2755
2756 def addE4Actions(self, actions, type): 2756 def addE5Actions(self, actions, type):
2757 """ 2757 """
2758 Public method to add actions to the list of actions. 2758 Public method to add actions to the list of actions.
2759 2759
2760 @param type string denoting the action set to get. 2760 @param type string denoting the action set to get.
2761 It must be one of "ui" or "wizards". 2761 It must be one of "ui" or "wizards".
2762 @param actions list of actions to be added (list of E4Action) 2762 @param actions list of actions to be added (list of E5Action)
2763 """ 2763 """
2764 if type == 'ui': 2764 if type == 'ui':
2765 self.actions.extend(actions) 2765 self.actions.extend(actions)
2766 elif type == 'wizards': 2766 elif type == 'wizards':
2767 self.wizardsActions.extend(actions) 2767 self.wizardsActions.extend(actions)
2768 2768
2769 def removeE4Actions(self, actions, type = 'ui'): 2769 def removeE5Actions(self, actions, type = 'ui'):
2770 """ 2770 """
2771 Public method to remove actions from the list of actions. 2771 Public method to remove actions from the list of actions.
2772 2772
2773 @param type string denoting the action set to get. 2773 @param type string denoting the action set to get.
2774 It must be one of "ui" or "wizards". 2774 It must be one of "ui" or "wizards".
2775 @param actions list of actions (list of E4Action) 2775 @param actions list of actions (list of E5Action)
2776 """ 2776 """
2777 for act in actions: 2777 for act in actions:
2778 try: 2778 try:
2779 if type == 'ui': 2779 if type == 'ui':
2780 self.actions.remove(act) 2780 self.actions.remove(act)
2787 """ 2787 """
2788 Public method to get a list of all actions. 2788 Public method to get a list of all actions.
2789 2789
2790 @param type string denoting the action set to get. 2790 @param type string denoting the action set to get.
2791 It must be one of "ui" or "wizards". 2791 It must be one of "ui" or "wizards".
2792 @return list of all actions (list of E4Action) 2792 @return list of all actions (list of E5Action)
2793 """ 2793 """
2794 if type == 'ui': 2794 if type == 'ui':
2795 return self.actions[:] 2795 return self.actions[:]
2796 elif type == 'wizards': 2796 elif type == 'wizards':
2797 return self.wizardsActions[:] 2797 return self.wizardsActions[:]
4609 """ 4609 """
4610 self.__setStyle() 4610 self.__setStyle()
4611 4611
4612 if Preferences.getUI("SingleApplicationMode"): 4612 if Preferences.getUI("SingleApplicationMode"):
4613 if self.SAServer is None: 4613 if self.SAServer is None:
4614 self.SAServer = E4SingleApplicationServer() 4614 self.SAServer = E5SingleApplicationServer()
4615 else: 4615 else:
4616 if self.SAServer is not None: 4616 if self.SAServer is not None:
4617 self.SAServer.shutdown() 4617 self.SAServer.shutdown()
4618 self.SAServer = None 4618 self.SAServer = None
4619 4619
4667 4667
4668 def __configToolBars(self): 4668 def __configToolBars(self):
4669 """ 4669 """
4670 Private slot to configure the various toolbars. 4670 Private slot to configure the various toolbars.
4671 """ 4671 """
4672 dlg = E4ToolBarDialog(self.toolbarManager) 4672 dlg = E5ToolBarDialog(self.toolbarManager)
4673 if dlg.exec_() == QDialog.Accepted: 4673 if dlg.exec_() == QDialog.Accepted:
4674 Preferences.setUI("ToolbarManagerState", self.toolbarManager.saveState()) 4674 Preferences.setUI("ToolbarManagerState", self.toolbarManager.saveState())
4675 4675
4676 def __configShortcuts(self): 4676 def __configShortcuts(self):
4677 """ 4677 """

eric ide

mercurial