UI/UserInterface.py

changeset 5900
cd90bfdc1247
parent 5899
0516f6548ca6
child 5905
f31960634997
equal deleted inserted replaced
5899:0516f6548ca6 5900:cd90bfdc1247
529 e5App().registerObject("ToolbarManager", self.toolbarManager) 529 e5App().registerObject("ToolbarManager", self.toolbarManager)
530 e5App().registerObject("Cooperation", self.cooperation) 530 e5App().registerObject("Cooperation", self.cooperation)
531 e5App().registerObject("IRC", self.irc) 531 e5App().registerObject("IRC", self.irc)
532 e5App().registerObject("Symbols", self.symbolsViewer) 532 e5App().registerObject("Symbols", self.symbolsViewer)
533 e5App().registerObject("Numbers", self.numbersViewer) 533 e5App().registerObject("Numbers", self.numbersViewer)
534 e5App().registerObject("DocuViewer", self.codeDocumentationViewer)
534 535
535 # list of web addresses serving the versions file 536 # list of web addresses serving the versions file
536 self.__httpAlternatives = Preferences.getUI("VersionsUrls6") 537 self.__httpAlternatives = Preferences.getUI("VersionsUrls6")
537 self.__inVersionCheck = False 538 self.__inVersionCheck = False
538 self.__versionCheckProgress = None 539 self.__versionCheckProgress = None
640 641
641 # set the keyboard input interval 642 # set the keyboard input interval
642 interval = Preferences.getUI("KeyboardInputInterval") 643 interval = Preferences.getUI("KeyboardInputInterval")
643 if interval > 0: 644 if interval > 0:
644 QApplication.setKeyboardInputInterval(interval) 645 QApplication.setKeyboardInputInterval(interval)
646
647 # finalize the initialization of the code documentation viewer
648 self.codeDocumentationViewer.finalizeSetup()
645 649
646 def __createLayout(self, debugServer): 650 def __createLayout(self, debugServer):
647 """ 651 """
648 Private method to create the layout of the various windows. 652 Private method to create the layout of the various windows.
649 653
699 703
700 @param debugServer reference to the debug server object 704 @param debugServer reference to the debug server object
701 """ 705 """
702 from E5Gui.E5ToolBox import E5VerticalToolBox, E5HorizontalToolBox 706 from E5Gui.E5ToolBox import E5VerticalToolBox, E5HorizontalToolBox
703 707
708 logging.debug("Creating Toolboxes Layout...")
709
704 # Create the left toolbox 710 # Create the left toolbox
705 self.lToolboxDock = self.__createDockWindow("lToolboxDock") 711 self.lToolboxDock = self.__createDockWindow("lToolboxDock")
706 self.lToolbox = E5VerticalToolBox(self.lToolboxDock) 712 self.lToolbox = E5VerticalToolBox(self.lToolboxDock)
707 self.__setupDockWindow(self.lToolboxDock, Qt.LeftDockWidgetArea, 713 self.__setupDockWindow(self.lToolboxDock, Qt.LeftDockWidgetArea,
708 self.lToolbox, self.tr("Left Toolbox")) 714 self.lToolbox, self.tr("Left Toolbox"))
719 self.rToolbox = E5VerticalToolBox(self.rToolboxDock) 725 self.rToolbox = E5VerticalToolBox(self.rToolboxDock)
720 self.__setupDockWindow(self.rToolboxDock, Qt.RightDockWidgetArea, 726 self.__setupDockWindow(self.rToolboxDock, Qt.RightDockWidgetArea,
721 self.rToolbox, self.tr("Right Toolbox")) 727 self.rToolbox, self.tr("Right Toolbox"))
722 728
723 # Create the project browser 729 # Create the project browser
730 logging.debug("Creating Project Browser...")
724 from Project.ProjectBrowser import ProjectBrowser 731 from Project.ProjectBrowser import ProjectBrowser
725 self.projectBrowser = ProjectBrowser( 732 self.projectBrowser = ProjectBrowser(
726 self.project, None, 733 self.project, None,
727 embeddedBrowser=(self.embeddedFileBrowser == 2)) 734 embeddedBrowser=(self.embeddedFileBrowser == 2))
728 self.lToolbox.addItem(self.projectBrowser, 735 self.lToolbox.addItem(self.projectBrowser,
729 UI.PixmapCache.getIcon("projectViewer.png"), 736 UI.PixmapCache.getIcon("projectViewer.png"),
730 self.tr("Project-Viewer")) 737 self.tr("Project-Viewer"))
731 738
732 # Create the multi project browser 739 # Create the multi project browser
740 logging.debug("Creating Multiproject Browser...")
733 from MultiProject.MultiProjectBrowser import MultiProjectBrowser 741 from MultiProject.MultiProjectBrowser import MultiProjectBrowser
734 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject, 742 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject,
735 self.project) 743 self.project)
736 self.lToolbox.addItem(self.multiProjectBrowser, 744 self.lToolbox.addItem(self.multiProjectBrowser,
737 UI.PixmapCache.getIcon("multiProjectViewer.png"), 745 UI.PixmapCache.getIcon("multiProjectViewer.png"),
738 self.tr("Multiproject-Viewer")) 746 self.tr("Multiproject-Viewer"))
739 747
740 # Create the template viewer part of the user interface 748 # Create the template viewer part of the user interface
749 logging.debug("Creating Template Viewer...")
741 from Templates.TemplateViewer import TemplateViewer 750 from Templates.TemplateViewer import TemplateViewer
742 self.templateViewer = TemplateViewer(None, 751 self.templateViewer = TemplateViewer(None,
743 self.viewmanager) 752 self.viewmanager)
744 self.lToolbox.addItem(self.templateViewer, 753 self.lToolbox.addItem(self.templateViewer,
745 UI.PixmapCache.getIcon("templateViewer.png"), 754 UI.PixmapCache.getIcon("templateViewer.png"),
746 self.tr("Template-Viewer")) 755 self.tr("Template-Viewer"))
747 756
757 # Create the code documentation viewer
758 logging.debug("Creating Code Documentation Viewer...")
759 from .CodeDocumentationViewer import CodeDocumentationViewer
760 self.codeDocumentationViewer = CodeDocumentationViewer(self)
761 self.rToolbox.addItem(self.codeDocumentationViewer,
762 UI.PixmapCache.getIcon("codeDocuViewer.png"),
763 self.tr("Code Documentation Viewer"))
764
748 # Create the debug viewer maybe without the embedded shell 765 # Create the debug viewer maybe without the embedded shell
766 logging.debug("Creating Debug Viewer...")
749 from Debugger.DebugViewer import DebugViewer 767 from Debugger.DebugViewer import DebugViewer
750 self.debugViewer = DebugViewer( 768 self.debugViewer = DebugViewer(
751 debugServer, True, self.viewmanager, None, 769 debugServer, True, self.viewmanager, None,
752 embeddedShell=self.embeddedShell, 770 embeddedShell=self.embeddedShell,
753 embeddedBrowser=(self.embeddedFileBrowser == 1)) 771 embeddedBrowser=(self.embeddedFileBrowser == 1))
754 self.rToolbox.addItem(self.debugViewer, 772 self.rToolbox.addItem(self.debugViewer,
755 UI.PixmapCache.getIcon("debugViewer.png"), 773 UI.PixmapCache.getIcon("debugViewer.png"),
756 self.tr("Debug-Viewer")) 774 self.tr("Debug-Viewer"))
757 775
758 # Create the chat part of the user interface 776 # Create the chat part of the user interface
777 logging.debug("Creating Chat Widget...")
759 from Cooperation.ChatWidget import ChatWidget 778 from Cooperation.ChatWidget import ChatWidget
760 self.cooperation = ChatWidget(self) 779 self.cooperation = ChatWidget(self)
761 self.rToolbox.addItem(self.cooperation, 780 self.rToolbox.addItem(self.cooperation,
762 UI.PixmapCache.getIcon("cooperation.png"), 781 UI.PixmapCache.getIcon("cooperation.png"),
763 self.tr("Cooperation")) 782 self.tr("Cooperation"))
764 783
765 # Create the IRC part of the user interface 784 # Create the IRC part of the user interface
785 logging.debug("Creating IRC Widget...")
766 from Network.IRC.IrcWidget import IrcWidget 786 from Network.IRC.IrcWidget import IrcWidget
767 self.irc = IrcWidget(self) 787 self.irc = IrcWidget(self)
768 self.rToolbox.addItem(self.irc, 788 self.rToolbox.addItem(self.irc,
769 UI.PixmapCache.getIcon("irc.png"), 789 UI.PixmapCache.getIcon("irc.png"),
770 self.tr("IRC")) 790 self.tr("IRC"))
771 791
772 # Create the task viewer part of the user interface 792 # Create the task viewer part of the user interface
793 logging.debug("Creating Task Viewer...")
773 from Tasks.TaskViewer import TaskViewer 794 from Tasks.TaskViewer import TaskViewer
774 self.taskViewer = TaskViewer(None, self.project) 795 self.taskViewer = TaskViewer(None, self.project)
775 self.hToolbox.addItem(self.taskViewer, 796 self.hToolbox.addItem(self.taskViewer,
776 UI.PixmapCache.getIcon("task.png"), 797 UI.PixmapCache.getIcon("task.png"),
777 self.tr("Task-Viewer")) 798 self.tr("Task-Viewer"))
778 799
779 # Create the log viewer part of the user interface 800 # Create the log viewer part of the user interface
801 logging.debug("Creating Log Viewer...")
780 from .LogView import LogViewer 802 from .LogView import LogViewer
781 self.logViewer = LogViewer(self) 803 self.logViewer = LogViewer(self)
782 self.hToolbox.addItem(self.logViewer, 804 self.hToolbox.addItem(self.logViewer,
783 UI.PixmapCache.getIcon("logViewer.png"), 805 UI.PixmapCache.getIcon("logViewer.png"),
784 self.tr("Log-Viewer")) 806 self.tr("Log-Viewer"))
785 807
786 if self.embeddedShell: 808 if self.embeddedShell:
787 self.shell = self.debugViewer.shell 809 self.shell = self.debugViewer.shell
788 else: 810 else:
789 # Create the shell 811 # Create the shell
812 logging.debug("Creating Shell...")
790 from QScintilla.Shell import ShellAssembly 813 from QScintilla.Shell import ShellAssembly
791 self.shellAssembly = \ 814 self.shellAssembly = \
792 ShellAssembly(debugServer, self.viewmanager, True) 815 ShellAssembly(debugServer, self.viewmanager, True)
793 self.shell = self.shellAssembly.shell() 816 self.shell = self.shellAssembly.shell()
794 self.hToolbox.insertItem(0, self.shellAssembly, 817 self.hToolbox.insertItem(0, self.shellAssembly,
795 UI.PixmapCache.getIcon("shell.png"), 818 UI.PixmapCache.getIcon("shell.png"),
796 self.tr("Shell")) 819 self.tr("Shell"))
797 820
798 if self.embeddedFileBrowser == 0: # separate window 821 if self.embeddedFileBrowser == 0: # separate window
799 # Create the file browser 822 # Create the file browser
823 logging.debug("Creating File Browser...")
800 from .Browser import Browser 824 from .Browser import Browser
801 self.browser = Browser() 825 self.browser = Browser()
802 self.lToolbox.addItem(self.browser, 826 self.lToolbox.addItem(self.browser,
803 UI.PixmapCache.getIcon("browser.png"), 827 UI.PixmapCache.getIcon("browser.png"),
804 self.tr("File-Browser")) 828 self.tr("File-Browser"))
806 self.browser = self.debugViewer.browser 830 self.browser = self.debugViewer.browser
807 else: # embedded in project browser 831 else: # embedded in project browser
808 self.browser = self.projectBrowser.fileBrowser 832 self.browser = self.projectBrowser.fileBrowser
809 833
810 # Create the symbols viewer 834 # Create the symbols viewer
835 logging.debug("Creating Symbols Viewer...")
811 from .SymbolsWidget import SymbolsWidget 836 from .SymbolsWidget import SymbolsWidget
812 self.symbolsViewer = SymbolsWidget() 837 self.symbolsViewer = SymbolsWidget()
813 self.lToolbox.addItem(self.symbolsViewer, 838 self.lToolbox.addItem(self.symbolsViewer,
814 UI.PixmapCache.getIcon("symbols.png"), 839 UI.PixmapCache.getIcon("symbols.png"),
815 self.tr("Symbols")) 840 self.tr("Symbols"))
816 841
817 # Create the numbers viewer 842 # Create the numbers viewer
843 logging.debug("Creating Numbers Viewer...")
818 from .NumbersWidget import NumbersWidget 844 from .NumbersWidget import NumbersWidget
819 self.numbersViewer = NumbersWidget() 845 self.numbersViewer = NumbersWidget()
820 self.hToolbox.addItem(self.numbersViewer, 846 self.hToolbox.addItem(self.numbersViewer,
821 UI.PixmapCache.getIcon("numbers.png"), 847 UI.PixmapCache.getIcon("numbers.png"),
822 self.tr("Numbers")) 848 self.tr("Numbers"))
828 Private method to create the Sidebars layout. 854 Private method to create the Sidebars layout.
829 855
830 @param debugServer reference to the debug server object 856 @param debugServer reference to the debug server object
831 """ 857 """
832 from E5Gui.E5SideBar import E5SideBar 858 from E5Gui.E5SideBar import E5SideBar
859
860 logging.debug("Creating Sidebars Layout...")
833 861
834 delay = Preferences.getUI("SidebarDelay") 862 delay = Preferences.getUI("SidebarDelay")
835 # Create the left sidebar 863 # Create the left sidebar
836 self.leftSidebar = E5SideBar(E5SideBar.West, delay) 864 self.leftSidebar = E5SideBar(E5SideBar.West, delay)
837 865
870 self.leftSidebar.addTab( 898 self.leftSidebar.addTab(
871 self.templateViewer, 899 self.templateViewer,
872 UI.PixmapCache.getIcon("templateViewer.png"), 900 UI.PixmapCache.getIcon("templateViewer.png"),
873 self.tr("Template-Viewer")) 901 self.tr("Template-Viewer"))
874 902
903 # Create the code documentation viewer
904 logging.debug("Creating Code Documentation Viewer...")
905 from .CodeDocumentationViewer import CodeDocumentationViewer
906 self.codeDocumentationViewer = CodeDocumentationViewer(self)
907 self.rightSidebar.addTab(
908 self.codeDocumentationViewer,
909 UI.PixmapCache.getIcon("codeDocuViewer.png"),
910 self.tr("Code Documentation Viewer"))
911
875 # Create the debug viewer maybe without the embedded shell 912 # Create the debug viewer maybe without the embedded shell
876 logging.debug("Creating Debug Viewer...") 913 logging.debug("Creating Debug Viewer...")
877 from Debugger.DebugViewer import DebugViewer 914 from Debugger.DebugViewer import DebugViewer
878 self.debugViewer = DebugViewer( 915 self.debugViewer = DebugViewer(
879 debugServer, True, self.viewmanager, None, 916 debugServer, True, self.viewmanager, None,
4163 """ 4200 """
4164 aw = self.viewmanager.activeWindow() 4201 aw = self.viewmanager.activeWindow()
4165 if aw is not None: 4202 if aw is not None:
4166 aw.setFocus(Qt.ActiveWindowFocusReason) 4203 aw.setFocus(Qt.ActiveWindowFocusReason)
4167 4204
4205 def activateCodeDocumentationViewer(self, switchFocus=True):
4206 """
4207 Public slot to handle the activation of the Code Documentation Viewer.
4208
4209 @param switchFocus flag indicating to transfer the input focus
4210 @type bool
4211 """
4212 if self.layoutType == "Toolboxes":
4213 self.rToolboxDock.show()
4214 self.rToolbox.setCurrentWidget(self.codeDocumentationViewer)
4215 elif self.layoutType == "Sidebars":
4216 self.rightSidebar.show()
4217 self.rightSidebar.setCurrentWidget(self.codeDocumentationViewer)
4218 else:
4219 self.codeDocumentationViewer.show()
4220 if switchFocus:
4221 self.codeDocumentationViewer.setFocus(Qt.ActiveWindowFocusReason)
4222
4168 def __toggleWindow(self, w): 4223 def __toggleWindow(self, w):
4169 """ 4224 """
4170 Private method to toggle a workspace editor window. 4225 Private method to toggle a workspace editor window.
4171 4226
4172 @param w reference to the workspace editor window 4227 @param w reference to the workspace editor window
6264 if not self.viewmanager.closeViewManager(): 6319 if not self.viewmanager.closeViewManager():
6265 return False 6320 return False
6266 6321
6267 if sessionCreated and not self.__disableCrashSession: 6322 if sessionCreated and not self.__disableCrashSession:
6268 self.__deleteCrashSession() 6323 self.__deleteCrashSession()
6324
6325 self.codeDocumentationViewer.shutdown()
6269 6326
6270 self.__previewer.shutdown() 6327 self.__previewer.shutdown()
6271 6328
6272 self.shell.closeShell() 6329 self.shell.closeShell()
6273 6330
6796 def __ircAutoConnected(self): 6853 def __ircAutoConnected(self):
6797 """ 6854 """
6798 Private slot handling the automatic connection of the IRC client. 6855 Private slot handling the automatic connection of the IRC client.
6799 """ 6856 """
6800 self.__activateIRC() 6857 self.__activateIRC()
6858
6859 ###############################################
6860 ## Support for Code Documentation Viewer below
6861 ###############################################
6862
6863 def documentationViewer(self):
6864 """
6865 Public method to provide a reference to the code documentation viewer.
6866
6867 @return reference to the code documentation viewer
6868 @rtype CodeDocumentationViewer
6869 """
6870 return self.codeDocumentationViewer

eric ide

mercurial