UI/UserInterface.py

changeset 149
a134031209be
parent 137
9b3f3e8fc798
child 150
6ca76837a2d4
equal deleted inserted replaced
148:727a907b8305 149:a134031209be
54 from MultiProject.MultiProjectBrowser import MultiProjectBrowser 54 from MultiProject.MultiProjectBrowser import MultiProjectBrowser
55 55
56 from Tasks.TaskViewer import TaskViewer 56 from Tasks.TaskViewer import TaskViewer
57 57
58 from Templates.TemplateViewer import TemplateViewer 58 from Templates.TemplateViewer import TemplateViewer
59
60 from Cooperation.ChatWidget import ChatWidget
59 61
60 from .Browser import Browser 62 from .Browser import Browser
61 from .Info import * 63 from .Info import *
62 from . import Config 64 from . import Config
63 from .EmailDialog import EmailDialog 65 from .EmailDialog import EmailDialog
452 self.taskViewer.handlePreferencesChanged) 454 self.taskViewer.handlePreferencesChanged)
453 self.connect(self, SIGNAL('preferencesChanged'), 455 self.connect(self, SIGNAL('preferencesChanged'),
454 self.pluginManager.preferencesChanged) 456 self.pluginManager.preferencesChanged)
455 self.connect(self, SIGNAL('preferencesChanged'), 457 self.connect(self, SIGNAL('preferencesChanged'),
456 debugServer.preferencesChanged) 458 debugServer.preferencesChanged)
459 self.connect(self, SIGNAL('preferencesChanged'),
460 self.cooperation.preferencesChanged)
457 461
458 self.connect(self.viewmanager, SIGNAL('editorSaved'), 462 self.connect(self.viewmanager, SIGNAL('editorSaved'),
459 self.project.repopulateItem) 463 self.project.repopulateItem)
460 self.connect(self.viewmanager, SIGNAL('lastEditorClosed'), 464 self.connect(self.viewmanager, SIGNAL('lastEditorClosed'),
461 self.__lastEditorClosed) 465 self.__lastEditorClosed)
704 self.debugViewer = DebugViewer(debugServer, False, self.viewmanager, None, 708 self.debugViewer = DebugViewer(debugServer, False, self.viewmanager, None,
705 embeddedShell=self.embeddedShell, 709 embeddedShell=self.embeddedShell,
706 embeddedBrowser=(self.embeddedFileBrowser == 1)) 710 embeddedBrowser=(self.embeddedFileBrowser == 1))
707 self.debugViewer.setWindowTitle(self.trUtf8("Debug-Viewer")) 711 self.debugViewer.setWindowTitle(self.trUtf8("Debug-Viewer"))
708 712
713 # Create the chat part of the user interface
714 self.cooperation = ChatWidget()
715 self.cooperation.setWindowTitle(self.trUtf8("Cooperation"))
716
709 # Create the log viewer part of the user interface 717 # Create the log viewer part of the user interface
710 self.logViewer = LogViewer(None) 718 self.logViewer = LogViewer(None)
711 self.logViewer.setWindowTitle(self.trUtf8("Log-Viewer")) 719 self.logViewer.setWindowTitle(self.trUtf8("Log-Viewer"))
712 720
713 # Create the task viewer part of the user interface 721 # Create the task viewer part of the user interface
722 self.terminal = Terminal(self.viewmanager) 730 self.terminal = Terminal(self.viewmanager)
723 self.terminal.setWindowTitle(self.trUtf8("Terminal")) 731 self.terminal.setWindowTitle(self.trUtf8("Terminal"))
724 732
725 self.windows = [self.projectBrowser, None, self.debugViewer, 733 self.windows = [self.projectBrowser, None, self.debugViewer,
726 None, self.logViewer, self.taskViewer, self.templateViewer, 734 None, self.logViewer, self.taskViewer, self.templateViewer,
727 self.multiProjectBrowser, self.terminal] 735 self.multiProjectBrowser, self.terminal, self.cooperation]
728 736
729 if self.embeddedShell: 737 if self.embeddedShell:
730 self.shell = self.debugViewer.shell 738 self.shell = self.debugViewer.shell
731 else: 739 else:
732 # Create the shell 740 # Create the shell
771 embeddedShell=self.embeddedShell, 779 embeddedShell=self.embeddedShell,
772 embeddedBrowser=(self.embeddedFileBrowser == 1)) 780 embeddedBrowser=(self.embeddedFileBrowser == 1))
773 self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea, 781 self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea,
774 self.debugViewer, self.trUtf8("Debug-Viewer")) 782 self.debugViewer, self.trUtf8("Debug-Viewer"))
775 783
784 # Create the chat part of the user interface
785 self.cooperationDock = self.__createDockWindow("CooperationDock")
786 self.cooperation = ChatWidget(parent = self.cooperationDock)
787 self.__setupDockWindow(self.cooperationDock, Qt.RightDockWidgetArea,
788 self.cooperation, self.trUtf8("Cooperation"))
789
776 # Create the log viewer part of the user interface 790 # Create the log viewer part of the user interface
777 self.logViewerDock = self.__createDockWindow("LogViewerDock") 791 self.logViewerDock = self.__createDockWindow("LogViewerDock")
778 self.logViewer = LogViewer(self.logViewerDock) 792 self.logViewer = LogViewer(self.logViewerDock)
779 self.__setupDockWindow(self.logViewerDock, Qt.BottomDockWidgetArea, 793 self.__setupDockWindow(self.logViewerDock, Qt.BottomDockWidgetArea,
780 self.logViewer, self.trUtf8("Log-Viewer")) 794 self.logViewer, self.trUtf8("Log-Viewer"))
798 self.__setupDockWindow(self.terminalDock, Qt.BottomDockWidgetArea, 812 self.__setupDockWindow(self.terminalDock, Qt.BottomDockWidgetArea,
799 self.terminal, self.trUtf8("Terminal")) 813 self.terminal, self.trUtf8("Terminal"))
800 814
801 self.windows = [self.projectBrowserDock, None, self.debugViewerDock, 815 self.windows = [self.projectBrowserDock, None, self.debugViewerDock,
802 None, self.logViewerDock, self.taskViewerDock, self.templateViewerDock, 816 None, self.logViewerDock, self.taskViewerDock, self.templateViewerDock,
803 self.multiProjectBrowserDock, self.terminalDock] 817 self.multiProjectBrowserDock, self.terminalDock, self.cooperationDock]
804 818
805 if self.embeddedShell: 819 if self.embeddedShell:
806 self.shell = self.debugViewer.shell 820 self.shell = self.debugViewer.shell
807 else: 821 else:
808 # Create the shell 822 # Create the shell
869 embeddedShell=self.embeddedShell, 883 embeddedShell=self.embeddedShell,
870 embeddedBrowser=(self.embeddedFileBrowser == 1)) 884 embeddedBrowser=(self.embeddedFileBrowser == 1))
871 self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea, 885 self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea,
872 self.debugViewer, self.trUtf8("Debug-Viewer")) 886 self.debugViewer, self.trUtf8("Debug-Viewer"))
873 887
888 # Create the chat part of the user interface
889 self.cooperationDock = self.__createDockWindow("CooperationDock")
890 self.cooperation = ChatWidget(parent = self.cooperationDock)
891 self.__setupDockWindow(self.cooperationDock, Qt.RightDockWidgetArea,
892 self.cooperation, self.trUtf8("Cooperation"))
893
874 # Create the terminal part of the user interface 894 # Create the terminal part of the user interface
875 self.terminal = Terminal(self.viewmanager) 895 self.terminal = Terminal(self.viewmanager)
876 self.hToolbox.addItem(self.terminal, 896 self.hToolbox.addItem(self.terminal,
877 UI.PixmapCache.getIcon("terminal.png"), 897 UI.PixmapCache.getIcon("terminal.png"),
878 self.trUtf8("Terminal")) 898 self.trUtf8("Terminal"))
887 self.logViewer = LogViewer() 907 self.logViewer = LogViewer()
888 self.hToolbox.addItem(self.logViewer, 908 self.hToolbox.addItem(self.logViewer,
889 UI.PixmapCache.getIcon("logViewer.png"), 909 UI.PixmapCache.getIcon("logViewer.png"),
890 self.trUtf8("Log-Viewer")) 910 self.trUtf8("Log-Viewer"))
891 911
892 self.windows = [None, None, self.debugViewerDock, 912 self.windows = [None, None, self.debugViewerDock, None, None,
893 None, None, None, None, None] 913 None, None, None, None, self.cooperationDock]
894 914
895 if self.embeddedShell: 915 if self.embeddedShell:
896 self.shell = self.debugViewer.shell 916 self.shell = self.debugViewer.shell
897 else: 917 else:
898 # Create the shell 918 # Create the shell
957 embeddedShell=self.embeddedShell, 977 embeddedShell=self.embeddedShell,
958 embeddedBrowser=(self.embeddedFileBrowser == 1)) 978 embeddedBrowser=(self.embeddedFileBrowser == 1))
959 self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea, 979 self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea,
960 self.debugViewer, self.trUtf8("Debug-Viewer")) 980 self.debugViewer, self.trUtf8("Debug-Viewer"))
961 981
982 # Create the chat part of the user interface
983 self.cooperationDock = self.__createDockWindow("CooperationDock")
984 self.cooperation = ChatWidget(parent = self.cooperationDock)
985 self.__setupDockWindow(self.cooperationDock, Qt.RightDockWidgetArea,
986 self.cooperation, self.trUtf8("Cooperation"))
987
962 # Create the terminal part of the user interface 988 # Create the terminal part of the user interface
963 logging.debug("Creating Terminal...") 989 logging.debug("Creating Terminal...")
964 self.terminal = Terminal(self.viewmanager) 990 self.terminal = Terminal(self.viewmanager)
965 self.bottomSidebar.addTab(self.terminal, 991 self.bottomSidebar.addTab(self.terminal,
966 UI.PixmapCache.getIcon("terminal.png"), 992 UI.PixmapCache.getIcon("terminal.png"),
978 self.logViewer = LogViewer() 1004 self.logViewer = LogViewer()
979 self.bottomSidebar.addTab(self.logViewer, 1005 self.bottomSidebar.addTab(self.logViewer,
980 UI.PixmapCache.getIcon("logViewer.png"), 1006 UI.PixmapCache.getIcon("logViewer.png"),
981 self.trUtf8("Log-Viewer")) 1007 self.trUtf8("Log-Viewer"))
982 1008
983 self.windows = [None, None, self.debugViewerDock, None, None, None, None, None] 1009 self.windows = [None, None, self.debugViewerDock, None, None,
1010 None, None, None, None, self.cooperationDock]
984 1011
985 if self.embeddedShell: 1012 if self.embeddedShell:
986 self.shell = self.debugViewer.shell 1013 self.shell = self.debugViewer.shell
987 else: 1014 else:
988 # Create the shell 1015 # Create the shell
1534 """ If it is displayed then close it.</p>""" 1561 """ If it is displayed then close it.</p>"""
1535 )) 1562 ))
1536 self.connect(self.bsbAct, SIGNAL('triggered()'), self.__toggleBottomSidebar) 1563 self.connect(self.bsbAct, SIGNAL('triggered()'), self.__toggleBottomSidebar)
1537 self.actions.append(self.bsbAct) 1564 self.actions.append(self.bsbAct)
1538 1565
1566 self.cooperationViewerAct = E5Action(self.trUtf8('Cooperation'),
1567 self.trUtf8('&Cooperation'), 0, 0, self, 'cooperation_viewer', True)
1568 self.cooperationViewerAct.setStatusTip(self.trUtf8(
1569 'Toggle the Cooperation window'))
1570 self.cooperationViewerAct.setWhatsThis(self.trUtf8(
1571 """<b>Toggle the Cooperation window</b>"""
1572 """<p>If the Cooperation window is hidden then display it."""
1573 """ If it is displayed then close it.</p>"""
1574 ))
1575 self.connect(self.cooperationViewerAct, SIGNAL('triggered()'),
1576 self.__toggleCooperationViewer)
1577 self.actions.append(self.cooperationViewerAct)
1578
1579 self.cooperationViewerActivateAct = E5Action(
1580 self.trUtf8('Activate Cooperation-Viewer'),
1581 self.trUtf8('Activate Cooperation-Viewer'),
1582 QKeySequence(self.trUtf8("Alt+Shift+O")),
1583 0, self,
1584 'cooperation_viewer_activate', True)
1585 self.connect(self.cooperationViewerActivateAct, SIGNAL('triggered()'),
1586 self.__activateCooperationViewer)
1587 self.actions.append(self.cooperationViewerActivateAct)
1588 self.addAction(self.cooperationViewerActivateAct)
1589
1539 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'), 1590 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'),
1540 UI.PixmapCache.getIcon("whatsThis.png"), 1591 UI.PixmapCache.getIcon("whatsThis.png"),
1541 self.trUtf8('&What\'s This?'), 1592 self.trUtf8('&What\'s This?'),
1542 QKeySequence(self.trUtf8("Shift+F1")), 1593 QKeySequence(self.trUtf8("Shift+F1")),
1543 0, self, 'whatsThis') 1594 0, self, 'whatsThis')
3034 if self.layout == "Toolboxes": 3085 if self.layout == "Toolboxes":
3035 self.__menus["window"].addAction(self.vtAct) 3086 self.__menus["window"].addAction(self.vtAct)
3036 self.vtAct.setChecked(not self.vToolboxDock.isHidden()) 3087 self.vtAct.setChecked(not self.vToolboxDock.isHidden())
3037 self.__menus["window"].addAction(self.htAct) 3088 self.__menus["window"].addAction(self.htAct)
3038 self.htAct.setChecked(not self.hToolboxDock.isHidden()) 3089 self.htAct.setChecked(not self.hToolboxDock.isHidden())
3090 self.__menus["window"].addAction(self.cooperationViewerAct)
3091 self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
3039 self.__menus["window"].addAction(self.debugViewerAct) 3092 self.__menus["window"].addAction(self.debugViewerAct)
3040 self.debugViewerAct.setChecked(not self.debugViewerDock.isHidden()) 3093 self.debugViewerAct.setChecked(not self.debugViewerDock.isHidden())
3041 elif self.layout == "Sidebars": 3094 elif self.layout == "Sidebars":
3042 self.__menus["window"].addAction(self.lsbAct) 3095 self.__menus["window"].addAction(self.lsbAct)
3043 self.lsbAct.setChecked(not self.leftSidebar.isHidden()) 3096 self.lsbAct.setChecked(not self.leftSidebar.isHidden())
3044 self.__menus["window"].addAction(self.bsbAct) 3097 self.__menus["window"].addAction(self.bsbAct)
3045 self.bsbAct.setChecked(not self.bottomSidebar.isHidden()) 3098 self.bsbAct.setChecked(not self.bottomSidebar.isHidden())
3099 self.__menus["window"].addAction(self.cooperationViewerAct)
3100 self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
3046 self.__menus["window"].addAction(self.debugViewerAct) 3101 self.__menus["window"].addAction(self.debugViewerAct)
3047 self.debugViewerAct.setChecked(not self.debugViewerDock.isHidden()) 3102 self.debugViewerAct.setChecked(not self.debugViewerDock.isHidden())
3048 else: 3103 else:
3049 # Set the options according to what is being displayed. 3104 # Set the options according to what is being displayed.
3050 self.__menus["window"].addAction(self.pbAct) 3105 self.__menus["window"].addAction(self.pbAct)
3100 self.__menus["window"].addAction(self.templateViewerAct) 3155 self.__menus["window"].addAction(self.templateViewerAct)
3101 if self.layout == "DockWindows": 3156 if self.layout == "DockWindows":
3102 self.templateViewerAct.setChecked(not self.templateViewerDock.isHidden()) 3157 self.templateViewerAct.setChecked(not self.templateViewerDock.isHidden())
3103 else: 3158 else:
3104 self.templateViewerAct.setChecked(not self.templateViewer.isHidden()) 3159 self.templateViewerAct.setChecked(not self.templateViewer.isHidden())
3160
3161 self.__menus["window"].addAction(self.cooperationViewerAct)
3162 if self.layout == "DockWindows":
3163 self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
3164 else:
3165 self.cooperationViewerAct.setChecked(not self.cooperation.isHidden())
3105 3166
3106 # Insert menu entry for toolbar settings 3167 # Insert menu entry for toolbar settings
3107 self.__menus["window"].addSeparator() 3168 self.__menus["window"].addSeparator()
3108 self.__menus["window"].addMenu(self.__menus["toolbars"]) 3169 self.__menus["window"].addMenu(self.__menus["toolbars"])
3109 3170
3671 self.bottomSidebar.currentWidget().setFocus(Qt.ActiveWindowFocusReason) 3732 self.bottomSidebar.currentWidget().setFocus(Qt.ActiveWindowFocusReason)
3672 else: 3733 else:
3673 if hasFocus: 3734 if hasFocus:
3674 self.__activateViewmanager() 3735 self.__activateViewmanager()
3675 3736
3737 def __toggleCooperationViewer(self):
3738 """
3739 Private slot to handle the toggle of the cooperation window.
3740 """
3741 hasFocus = self.cooperation.hasFocus()
3742 if self.layout in ["DockWindows", "Toolboxes", "Sidebars"]:
3743 shown = self.__toggleWindow(self.cooperationDock)
3744 else:
3745 shown = self.__toggleWindow(self.cooperation)
3746 if shown:
3747 self.__activateCooperationViewer()
3748 else:
3749 if hasFocus:
3750 self.__activateViewmanager()
3751
3752 def __activateCooperationViewer(self):
3753 """
3754 Private slot to handle the activation of the cooperation window.
3755 """
3756 if self.layout in ["DockWindows", "Toolboxes", "Sidebars"]:
3757 self.cooperationDock.show()
3758 self.cooperationDock.raise_()
3759 else:
3760 self.cooperation.show()
3761 self.cooperation.setFocus(Qt.ActiveWindowFocusReason)
3762
3676 def __activateViewmanager(self): 3763 def __activateViewmanager(self):
3677 """ 3764 """
3678 Private slot to handle the activation of the current editor. 3765 Private slot to handle the activation of the current editor.
3679 """ 3766 """
3680 aw = self.viewmanager.activeWindow() 3767 aw = self.viewmanager.activeWindow()

eric ide

mercurial