Mon, 03 Oct 2011 18:52:38 +0200
Added source navigation function for Python 2, Python 3 and Ruby sources.
--- a/APIs/Python3/eric5.api Mon Oct 03 16:08:32 2011 +0200 +++ b/APIs/Python3/eric5.api Mon Oct 03 18:52:38 2011 +0200 @@ -3081,24 +3081,6 @@ eric5.Plugins.PluginVmListspace.pyqtApi?7 eric5.Plugins.PluginVmListspace.shortDescription?7 eric5.Plugins.PluginVmListspace.version?7 -eric5.Plugins.PluginVmMdiArea.VmMdiAreaPlugin.activate?4() -eric5.Plugins.PluginVmMdiArea.VmMdiAreaPlugin.deactivate?4() -eric5.Plugins.PluginVmMdiArea.VmMdiAreaPlugin?1(ui) -eric5.Plugins.PluginVmMdiArea.author?7 -eric5.Plugins.PluginVmMdiArea.autoactivate?7 -eric5.Plugins.PluginVmMdiArea.className?7 -eric5.Plugins.PluginVmMdiArea.deactivateable?7 -eric5.Plugins.PluginVmMdiArea.displayString?7 -eric5.Plugins.PluginVmMdiArea.error?7 -eric5.Plugins.PluginVmMdiArea.longDescription?7 -eric5.Plugins.PluginVmMdiArea.name?7 -eric5.Plugins.PluginVmMdiArea.packageName?7 -eric5.Plugins.PluginVmMdiArea.pluginType?7 -eric5.Plugins.PluginVmMdiArea.pluginTypename?7 -eric5.Plugins.PluginVmMdiArea.previewPix?4() -eric5.Plugins.PluginVmMdiArea.pyqtApi?7 -eric5.Plugins.PluginVmMdiArea.shortDescription?7 -eric5.Plugins.PluginVmMdiArea.version?7 eric5.Plugins.PluginVmTabview.VmTabviewPlugin.activate?4() eric5.Plugins.PluginVmTabview.VmTabviewPlugin.deactivate?4() eric5.Plugins.PluginVmTabview.VmTabviewPlugin?1(ui) @@ -4252,6 +4234,7 @@ eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.Listspace.tile?4() eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.Listspace?1(parent) eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.addWidget?4(editor) +eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.currentWidget?4() eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.firstEditor?4() eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.hasEditor?4(editor) eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.nextTab?4() @@ -4260,36 +4243,6 @@ eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.setCurrentIndex?4(index) eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget.setCurrentWidget?4(widget) eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.StackedWidget?1(parent) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._addView?5(win, fn=None, noName="") -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._initWindowActions?5() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._modificationStatusChanged?5(m, editor) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._removeAllViews?5() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._removeView?5(win) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._showView?5(win, fn=None) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea._syntaxErrorToggled?5(editor) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.activeWindow?4() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.bookmarkToggled?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.breakpointToggled?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.canCascade?4() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.canSplit?4() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.canTile?4() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.cascade?4() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.changeCaption?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.checkActions?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.cursorChanged?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.editorChanged?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.editorClosed?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.editorClosedEd?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.editorOpened?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.editorOpenedEd?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.editorSaved?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.eventFilter?4(watched, event) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.lastEditorClosed?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.setEditorName?4(editor, newName) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.showWindowMenu?4(windowMenu) -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.syntaxerrorToggled?7 -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea.tile?4() -eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.MdiArea?1(parent) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabBar.dragEnterEvent?4(event) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabBar.dropEvent?4(event) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabBar.mouseMoveEvent?4(event) @@ -4304,10 +4257,12 @@ eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.currentWidget?4() eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.hasEditor?4(editor) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.hasEditors?4() +eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.indexOf?4(object) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.insertWidget?4(index, editor, title) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.mouseDoubleClickEvent?4(event) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.relocateTab?4(sourceId, sourceIndex, targetIndex) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.removeWidget?4(object) +eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.setCurrentWidget?4(editor) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget.showIndicator?4(on) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.TabWidget?1(vm) eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.Tabview._addView?5(win, fn=None, noName="") @@ -5615,6 +5570,8 @@ eric5.QScintilla.Editor.Editor?1(dbs, fn=None, vm=None, filetype="", editor=None, tv=None) eric5.QScintilla.Editor.EditorAutoCompletionListID?7 eric5.QScintilla.Editor.TemplateCompletionListID?7 +eric5.QScintilla.EditorAssembly.EditorAssembly.getEditor?4() +eric5.QScintilla.EditorAssembly.EditorAssembly?1(dbs, fn=None, vm=None, filetype="", editor=None, tv=None) eric5.QScintilla.Exporters.ExporterBase.ExporterBase._getFileName?5(filter) eric5.QScintilla.Exporters.ExporterBase.ExporterBase.exportSource?4() eric5.QScintilla.Exporters.ExporterBase.ExporterBase?1(editor, parent=None) @@ -6693,12 +6650,14 @@ eric5.Utilities.ModuleParser.Module.getType?4() eric5.Utilities.ModuleParser.Module.scan?4(src) eric5.Utilities.ModuleParser.Module?1(name, file=None, type=None) +eric5.Utilities.ModuleParser.PARSEABLE_TYPES?7 eric5.Utilities.ModuleParser.PTL_SOURCE?7 eric5.Utilities.ModuleParser.RB_SOURCE?7 eric5.Utilities.ModuleParser.RbModule.addClass?4(name, _class) eric5.Utilities.ModuleParser.RbModule?1(module, name, file, lineno) eric5.Utilities.ModuleParser.SUPPORTED_TYPES?7 eric5.Utilities.ModuleParser.TABWIDTH?7 +eric5.Utilities.ModuleParser.TYPE_MAPPING?7 eric5.Utilities.ModuleParser.VisibilityBase.isPrivate?4() eric5.Utilities.ModuleParser.VisibilityBase.isProtected?4() eric5.Utilities.ModuleParser.VisibilityBase.isPublic?4() @@ -6712,6 +6671,7 @@ eric5.Utilities.ModuleParser._py_getnext?8 eric5.Utilities.ModuleParser._rb_getnext?8 eric5.Utilities.ModuleParser.find_module?4(name, path, extensions) +eric5.Utilities.ModuleParser.getTypeFromTypeName?4(name) eric5.Utilities.ModuleParser.readModule?4(module, path=[], inpackage=False, basename="", extensions=None, caching=True) eric5.Utilities.ModuleParser.resetParsedModule?4(module, basename="") eric5.Utilities.ModuleParser.resetParsedModules?4()
--- a/APIs/Python3/eric5.bas Mon Oct 03 16:08:32 2011 +0200 +++ b/APIs/Python3/eric5.bas Mon Oct 03 18:52:38 2011 +0200 @@ -155,6 +155,7 @@ EditWatchpointDialog QDialog Ui_EditWatchpointDialog Editor QsciScintillaCompat EditorAPIsPage ConfigurationPageBase Ui_EditorAPIsPage +EditorAssembly QWidget EditorAutocompletionPage ConfigurationPageBase Ui_EditorAutocompletionPage EditorAutocompletionQScintillaPage ConfigurationPageBase Ui_EditorAutocompletionQScintillaPage EditorCalltipsPage ConfigurationPageBase Ui_EditorCalltipsPage @@ -344,7 +345,6 @@ Listspace QSplitter ViewManager LogViewer QTextEdit MasterPasswordEntryDialog QDialog Ui_MasterPasswordEntryDialog -MdiArea QMdiArea ViewManager MercurialPage ConfigurationPageBase Ui_MercurialPage MessageBoxWizard QObject MessageBoxWizardDialog QDialog Ui_MessageBoxWizardDialog @@ -616,7 +616,6 @@ VirusTotalAPI QObject VisibilityMixin ClbrBaseClasses.ClbrVisibilityMixinBase VmListspacePlugin QObject -VmMdiAreaPlugin QObject VmTabviewPlugin QObject WatchPointModel QAbstractItemModel WatchPointViewer QTreeView
--- a/Documentation/Help/source.qhp Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Help/source.qhp Mon Oct 03 18:52:38 2011 +0200 @@ -519,9 +519,6 @@ <section title="eric5.Plugins.ViewManagerPlugins.Listspace" ref="index-eric5.Plugins.ViewManagerPlugins.Listspace.html"> <section title="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html" /> </section> - <section title="eric5.Plugins.ViewManagerPlugins.MdiArea" ref="index-eric5.Plugins.ViewManagerPlugins.MdiArea.html"> - <section title="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html" /> - </section> <section title="eric5.Plugins.ViewManagerPlugins.Tabview" ref="index-eric5.Plugins.ViewManagerPlugins.Tabview.html"> <section title="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html" /> </section> @@ -566,7 +563,6 @@ <section title="eric5.Plugins.PluginVcsPySvn" ref="eric5.Plugins.PluginVcsPySvn.html" /> <section title="eric5.Plugins.PluginVcsSubversion" ref="eric5.Plugins.PluginVcsSubversion.html" /> <section title="eric5.Plugins.PluginVmListspace" ref="eric5.Plugins.PluginVmListspace.html" /> - <section title="eric5.Plugins.PluginVmMdiArea" ref="eric5.Plugins.PluginVmMdiArea.html" /> <section title="eric5.Plugins.PluginVmTabview" ref="eric5.Plugins.PluginVmTabview.html" /> <section title="eric5.Plugins.PluginWizardE5MessageBox" ref="eric5.Plugins.PluginWizardE5MessageBox.html" /> <section title="eric5.Plugins.PluginWizardPyRegExp" ref="eric5.Plugins.PluginWizardPyRegExp.html" /> @@ -730,6 +726,7 @@ </section> <section title="eric5.QScintilla.APIsManager" ref="eric5.QScintilla.APIsManager.html" /> <section title="eric5.QScintilla.Editor" ref="eric5.QScintilla.Editor.html" /> + <section title="eric5.QScintilla.EditorAssembly" ref="eric5.QScintilla.EditorAssembly.html" /> <section title="eric5.QScintilla.GotoDialog" ref="eric5.QScintilla.GotoDialog.html" /> <section title="eric5.QScintilla.MiniEditor" ref="eric5.QScintilla.MiniEditor.html" /> <section title="eric5.QScintilla.Printer" ref="eric5.QScintilla.Printer.html" /> @@ -2527,6 +2524,7 @@ <keyword name="VisibilityBase" id="VisibilityBase" ref="eric5.Utilities.ModuleParser.html#VisibilityBase" /> <keyword name="_indent" id="_indent" ref="eric5.Utilities.ModuleParser.html#_indent" /> <keyword name="find_module" id="find_module" ref="eric5.Utilities.ModuleParser.html#find_module" /> + <keyword name="getTypeFromTypeName" id="getTypeFromTypeName" ref="eric5.Utilities.ModuleParser.html#getTypeFromTypeName" /> <keyword name="readModule" id="readModule" ref="eric5.Utilities.ModuleParser.html#readModule" /> <keyword name="resetParsedModule" id="resetParsedModule" ref="eric5.Utilities.ModuleParser.html#resetParsedModule" /> <keyword name="resetParsedModules" id="resetParsedModules" ref="eric5.Utilities.ModuleParser.html#resetParsedModules" /> @@ -5314,12 +5312,6 @@ <keyword name="EricdocPlugin.__projectShowMenu" id="EricdocPlugin.__projectShowMenu" ref="eric5.Plugins.PluginEricdoc.html#EricdocPlugin.__projectShowMenu" /> <keyword name="EricdocPlugin.activate" id="EricdocPlugin.activate" ref="eric5.Plugins.PluginEricdoc.html#EricdocPlugin.activate" /> <keyword name="EricdocPlugin.deactivate" id="EricdocPlugin.deactivate" ref="eric5.Plugins.PluginEricdoc.html#EricdocPlugin.deactivate" /> - <keyword name="PluginVmMdiArea (Module)" id="PluginVmMdiArea (Module)" ref="eric5.Plugins.PluginVmMdiArea.html" /> - <keyword name="VmMdiAreaPlugin" id="VmMdiAreaPlugin" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin" /> - <keyword name="previewPix" id="previewPix" ref="eric5.Plugins.PluginVmMdiArea.html#previewPix" /> - <keyword name="VmMdiAreaPlugin (Constructor)" id="VmMdiAreaPlugin (Constructor)" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin.__init__" /> - <keyword name="VmMdiAreaPlugin.activate" id="VmMdiAreaPlugin.activate" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin.activate" /> - <keyword name="VmMdiAreaPlugin.deactivate" id="VmMdiAreaPlugin.deactivate" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin.deactivate" /> <keyword name="PluginVcsMercurial (Module)" id="PluginVcsMercurial (Module)" ref="eric5.Plugins.PluginVcsMercurial.html" /> <keyword name="VcsMercurialPlugin" id="VcsMercurialPlugin" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin" /> <keyword name="createConfigurationPage" id="createConfigurationPage" ref="eric5.Plugins.PluginVcsMercurial.html#createConfigurationPage" /> @@ -6326,6 +6318,14 @@ <keyword name="Printer" id="Printer" ref="eric5.QScintilla.Printer.html#Printer" /> <keyword name="Printer (Constructor)" id="Printer (Constructor)" ref="eric5.QScintilla.Printer.html#Printer.__init__" /> <keyword name="Printer.formatPage" id="Printer.formatPage" ref="eric5.QScintilla.Printer.html#Printer.formatPage" /> + <keyword name="EditorAssembly (Module)" id="EditorAssembly (Module)" ref="eric5.QScintilla.EditorAssembly.html" /> + <keyword name="EditorAssembly" id="EditorAssembly" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly" /> + <keyword name="EditorAssembly (Constructor)" id="EditorAssembly (Constructor)" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly.__init__" /> + <keyword name="EditorAssembly.__globalsActivated" id="EditorAssembly.__globalsActivated" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly.__globalsActivated" /> + <keyword name="EditorAssembly.__membersActivated" id="EditorAssembly.__membersActivated" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly.__membersActivated" /> + <keyword name="EditorAssembly.__parseEditor" id="EditorAssembly.__parseEditor" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly.__parseEditor" /> + <keyword name="EditorAssembly.__resetParseTimer" id="EditorAssembly.__resetParseTimer" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly.__resetParseTimer" /> + <keyword name="EditorAssembly.getEditor" id="EditorAssembly.getEditor" ref="eric5.QScintilla.EditorAssembly.html#EditorAssembly.getEditor" /> <keyword name="ZoomDialog (Module)" id="ZoomDialog (Module)" ref="eric5.QScintilla.ZoomDialog.html" /> <keyword name="ZoomDialog" id="ZoomDialog" ref="eric5.QScintilla.ZoomDialog.html#ZoomDialog" /> <keyword name="ZoomDialog (Constructor)" id="ZoomDialog (Constructor)" ref="eric5.QScintilla.ZoomDialog.html#ZoomDialog.__init__" /> @@ -10433,6 +10433,7 @@ <keyword name="Listspace.tile" id="Listspace.tile" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#Listspace.tile" /> <keyword name="StackedWidget (Constructor)" id="StackedWidget (Constructor)" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.__init__" /> <keyword name="StackedWidget.addWidget" id="StackedWidget.addWidget" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.addWidget" /> + <keyword name="StackedWidget.currentWidget" id="StackedWidget.currentWidget" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.currentWidget" /> <keyword name="StackedWidget.firstEditor" id="StackedWidget.firstEditor" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.firstEditor" /> <keyword name="StackedWidget.hasEditor" id="StackedWidget.hasEditor" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.hasEditor" /> <keyword name="StackedWidget.nextTab" id="StackedWidget.nextTab" ref="eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.nextTab" /> @@ -10477,10 +10478,12 @@ <keyword name="TabWidget.currentWidget" id="TabWidget.currentWidget" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.currentWidget" /> <keyword name="TabWidget.hasEditor" id="TabWidget.hasEditor" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.hasEditor" /> <keyword name="TabWidget.hasEditors" id="TabWidget.hasEditors" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.hasEditors" /> + <keyword name="TabWidget.indexOf" id="TabWidget.indexOf" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.indexOf" /> <keyword name="TabWidget.insertWidget" id="TabWidget.insertWidget" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.insertWidget" /> <keyword name="TabWidget.mouseDoubleClickEvent" id="TabWidget.mouseDoubleClickEvent" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.mouseDoubleClickEvent" /> <keyword name="TabWidget.relocateTab" id="TabWidget.relocateTab" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.relocateTab" /> <keyword name="TabWidget.removeWidget" id="TabWidget.removeWidget" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.removeWidget" /> + <keyword name="TabWidget.setCurrentWidget" id="TabWidget.setCurrentWidget" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.setCurrentWidget" /> <keyword name="TabWidget.showIndicator" id="TabWidget.showIndicator" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#TabWidget.showIndicator" /> <keyword name="Tabview (Constructor)" id="Tabview (Constructor)" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview.__init__" /> <keyword name="Tabview.__currentChanged" id="Tabview.__currentChanged" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview.__currentChanged" /> @@ -10508,31 +10511,6 @@ <keyword name="Tabview.setSplitOrientation" id="Tabview.setSplitOrientation" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview.setSplitOrientation" /> <keyword name="Tabview.showWindowMenu" id="Tabview.showWindowMenu" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview.showWindowMenu" /> <keyword name="Tabview.tile" id="Tabview.tile" ref="eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview.tile" /> - <keyword name="MdiArea (Package)" id="MdiArea (Package)" ref="index-eric5.Plugins.ViewManagerPlugins.MdiArea.html" /> - <keyword name="MdiArea (Module)" id="MdiArea (Module)" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html" /> - <keyword name="MdiArea" id="MdiArea" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea" /> - <keyword name="MdiArea (Constructor)" id="MdiArea (Constructor)" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.__init__" /> - <keyword name="MdiArea.__iconizeAllWindows" id="MdiArea.__iconizeAllWindows" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.__iconizeAllWindows" /> - <keyword name="MdiArea.__mapped" id="MdiArea.__mapped" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.__mapped" /> - <keyword name="MdiArea.__restoreAllWindows" id="MdiArea.__restoreAllWindows" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.__restoreAllWindows" /> - <keyword name="MdiArea.__setSubWindowIcon" id="MdiArea.__setSubWindowIcon" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.__setSubWindowIcon" /> - <keyword name="MdiArea.__subWindowActivated" id="MdiArea.__subWindowActivated" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.__subWindowActivated" /> - <keyword name="MdiArea._addView" id="MdiArea._addView" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._addView" /> - <keyword name="MdiArea._initWindowActions" id="MdiArea._initWindowActions" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._initWindowActions" /> - <keyword name="MdiArea._modificationStatusChanged" id="MdiArea._modificationStatusChanged" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._modificationStatusChanged" /> - <keyword name="MdiArea._removeAllViews" id="MdiArea._removeAllViews" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._removeAllViews" /> - <keyword name="MdiArea._removeView" id="MdiArea._removeView" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._removeView" /> - <keyword name="MdiArea._showView" id="MdiArea._showView" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._showView" /> - <keyword name="MdiArea._syntaxErrorToggled" id="MdiArea._syntaxErrorToggled" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea._syntaxErrorToggled" /> - <keyword name="MdiArea.activeWindow" id="MdiArea.activeWindow" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.activeWindow" /> - <keyword name="MdiArea.canCascade" id="MdiArea.canCascade" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.canCascade" /> - <keyword name="MdiArea.canSplit" id="MdiArea.canSplit" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.canSplit" /> - <keyword name="MdiArea.canTile" id="MdiArea.canTile" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.canTile" /> - <keyword name="MdiArea.cascade" id="MdiArea.cascade" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.cascade" /> - <keyword name="MdiArea.eventFilter" id="MdiArea.eventFilter" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.eventFilter" /> - <keyword name="MdiArea.setEditorName" id="MdiArea.setEditorName" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.setEditorName" /> - <keyword name="MdiArea.showWindowMenu" id="MdiArea.showWindowMenu" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.showWindowMenu" /> - <keyword name="MdiArea.tile" id="MdiArea.tile" ref="eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html#MdiArea.tile" /> <keyword name="QRegExpWizard (Package)" id="QRegExpWizard (Package)" ref="index-eric5.Plugins.WizardPlugins.QRegExpWizard.html" /> <keyword name="QRegExpWizardCharactersDialog (Module)" id="QRegExpWizardCharactersDialog (Module)" ref="eric5.Plugins.WizardPlugins.QRegExpWizard.QRegExpWizardCharactersDialog.html" /> <keyword name="QRegExpWizardCharactersDialog" id="QRegExpWizardCharactersDialog" ref="eric5.Plugins.WizardPlugins.QRegExpWizard.QRegExpWizardCharactersDialog.html#QRegExpWizardCharactersDialog" /> @@ -11410,7 +11388,6 @@ <file>eric5.Plugins.PluginVcsPySvn.html</file> <file>eric5.Plugins.PluginVcsSubversion.html</file> <file>eric5.Plugins.PluginVmListspace.html</file> - <file>eric5.Plugins.PluginVmMdiArea.html</file> <file>eric5.Plugins.PluginVmTabview.html</file> <file>eric5.Plugins.PluginWizardE5MessageBox.html</file> <file>eric5.Plugins.PluginWizardPyRegExp.html</file> @@ -11549,7 +11526,6 @@ <file>eric5.Plugins.VcsPlugins.vcsSubversion.SvnUtilities.html</file> <file>eric5.Plugins.VcsPlugins.vcsSubversion.subversion.html</file> <file>eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html</file> - <file>eric5.Plugins.ViewManagerPlugins.MdiArea.MdiArea.html</file> <file>eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html</file> <file>eric5.Plugins.WizardPlugins.ColorDialogWizard.ColorDialogWizardDialog.html</file> <file>eric5.Plugins.WizardPlugins.E5MessageBoxWizard.E5MessageBoxWizardDialog.html</file> @@ -11655,6 +11631,7 @@ <file>eric5.PyUnit.UnittestDialog.html</file> <file>eric5.QScintilla.APIsManager.html</file> <file>eric5.QScintilla.Editor.html</file> + <file>eric5.QScintilla.EditorAssembly.html</file> <file>eric5.QScintilla.Exporters.ExporterBase.html</file> <file>eric5.QScintilla.Exporters.ExporterHTML.html</file> <file>eric5.QScintilla.Exporters.ExporterODT.html</file> @@ -11860,7 +11837,6 @@ <file>index-eric5.Plugins.VcsPlugins.vcsSubversion.ConfigurationPage.html</file> <file>index-eric5.Plugins.VcsPlugins.vcsSubversion.html</file> <file>index-eric5.Plugins.ViewManagerPlugins.Listspace.html</file> - <file>index-eric5.Plugins.ViewManagerPlugins.MdiArea.html</file> <file>index-eric5.Plugins.ViewManagerPlugins.Tabview.html</file> <file>index-eric5.Plugins.ViewManagerPlugins.html</file> <file>index-eric5.Plugins.WizardPlugins.ColorDialogWizard.html</file>
--- a/Documentation/Source/eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Source/eric5.Plugins.ViewManagerPlugins.Listspace.Listspace.html Mon Oct 03 18:52:38 2011 +0200 @@ -539,6 +539,9 @@ <td><a href="#StackedWidget.addWidget">addWidget</a></td> <td>Overwritten method to add a new widget.</td> </tr><tr> +<td><a href="#StackedWidget.currentWidget">currentWidget</a></td> +<td>Public method to get a reference to the current editor.</td> +</tr><tr> <td><a href="#StackedWidget.firstEditor">firstEditor</a></td> <td>Public method to retrieve the first editor in the list of managed editors.</td> </tr><tr> @@ -585,6 +588,16 @@ <dd> the editor object to be added (QScintilla.Editor.Editor) </dd> +</dl><a NAME="StackedWidget.currentWidget" ID="StackedWidget.currentWidget"></a> +<h4>StackedWidget.currentWidget</h4> +<b>currentWidget</b>(<i></i>) +<p> + Public method to get a reference to the current editor. +</p><dl> +<dt>Returns:</dt> +<dd> +reference to the current editor (Editor) +</dd> </dl><a NAME="StackedWidget.firstEditor" ID="StackedWidget.firstEditor"></a> <h4>StackedWidget.firstEditor</h4> <b>firstEditor</b>(<i></i>)
--- a/Documentation/Source/eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Source/eric5.Plugins.ViewManagerPlugins.Tabview.Tabview.html Mon Oct 03 18:52:38 2011 +0200 @@ -257,6 +257,9 @@ <td><a href="#TabWidget.hasEditors">hasEditors</a></td> <td>Public method to test, if any editor is managed.</td> </tr><tr> +<td><a href="#TabWidget.indexOf">indexOf</a></td> +<td>Public method to get the tab index of the given editor.</td> +</tr><tr> <td><a href="#TabWidget.insertWidget">insertWidget</a></td> <td>Overwritten method to insert a new tab.</td> </tr><tr> @@ -269,6 +272,9 @@ <td><a href="#TabWidget.removeWidget">removeWidget</a></td> <td>Public method to remove a widget.</td> </tr><tr> +<td><a href="#TabWidget.setCurrentWidget">setCurrentWidget</a></td> +<td>Public method to set the current tab by the given editor.</td> +</tr><tr> <td><a href="#TabWidget.showIndicator">showIndicator</a></td> <td>Public slot to set the indicator on or off.</td> </tr> @@ -465,7 +471,7 @@ </p><dl> <dt>Returns:</dt> <dd> -reference to the current page (QWidget) +reference to the current page (Editor) </dd> </dl><a NAME="TabWidget.hasEditor" ID="TabWidget.hasEditor"></a> <h4>TabWidget.hasEditor</h4> @@ -493,6 +499,21 @@ <dd> flag indicating editors are managed </dd> +</dl><a NAME="TabWidget.indexOf" ID="TabWidget.indexOf"></a> +<h4>TabWidget.indexOf</h4> +<b>indexOf</b>(<i>object</i>) +<p> + Public method to get the tab index of the given editor. +</p><dl> +<dt><i>object</i></dt> +<dd> +object to get the index for (QLabel or Editor) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +tab index of the editor (integer) +</dd> </dl><a NAME="TabWidget.insertWidget" ID="TabWidget.insertWidget"></a> <h4>TabWidget.insertWidget</h4> <b>insertWidget</b>(<i>index, editor, title</i>) @@ -550,6 +571,16 @@ <dd> object to be removed (QWidget) </dd> +</dl><a NAME="TabWidget.setCurrentWidget" ID="TabWidget.setCurrentWidget"></a> +<h4>TabWidget.setCurrentWidget</h4> +<b>setCurrentWidget</b>(<i>editor</i>) +<p> + Public method to set the current tab by the given editor. +</p><dl> +<dt><i>editor</i></dt> +<dd> +editor to determine current tab from (Editor) +</dd> </dl><a NAME="TabWidget.showIndicator" ID="TabWidget.showIndicator"></a> <h4>TabWidget.showIndicator</h4> <b>showIndicator</b>(<i>on</i>)
--- a/Documentation/Source/eric5.Utilities.ModuleParser.html Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Source/eric5.Utilities.ModuleParser.html Mon Oct 03 18:52:38 2011 +0200 @@ -35,7 +35,7 @@ </p> <h3>Global Attributes</h3> <table> -<tr><td>PTL_SOURCE</td></tr><tr><td>RB_SOURCE</td></tr><tr><td>SUPPORTED_TYPES</td></tr><tr><td>TABWIDTH</td></tr><tr><td>__all__</td></tr><tr><td>_commentsub</td></tr><tr><td>_hashsub</td></tr><tr><td>_modules</td></tr><tr><td>_py_getnext</td></tr><tr><td>_rb_getnext</td></tr> +<tr><td>PARSEABLE_TYPES</td></tr><tr><td>PTL_SOURCE</td></tr><tr><td>RB_SOURCE</td></tr><tr><td>SUPPORTED_TYPES</td></tr><tr><td>TABWIDTH</td></tr><tr><td>TYPE_MAPPING</td></tr><tr><td>__all__</td></tr><tr><td>_commentsub</td></tr><tr><td>_hashsub</td></tr><tr><td>_modules</td></tr><tr><td>_py_getnext</td></tr><tr><td>_rb_getnext</td></tr> </table> <h3>Classes</h3> <table> @@ -68,6 +68,9 @@ <td><a href="#find_module">find_module</a></td> <td>Module function to extend the Python module finding mechanism.</td> </tr><tr> +<td><a href="#getTypeFromTypeName">getTypeFromTypeName</a></td> +<td>Module function to determine the module type given the module type name.</td> +</tr><tr> <td><a href="#readModule">readModule</a></td> <td>Function to read a module file and parse it.</td> </tr><tr> @@ -858,6 +861,24 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> +<a NAME="getTypeFromTypeName" ID="getTypeFromTypeName"></a> +<h2>getTypeFromTypeName</h2> +<b>getTypeFromTypeName</b>(<i>name</i>) +<p> + Module function to determine the module type given the module type name. +</p><dl> +<dt><i>name</i></dt> +<dd> +module type name (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +module type or -1 for failure (integer) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> <a NAME="readModule" ID="readModule"></a> <h2>readModule</h2> <b>readModule</b>(<i>module, path=[], inpackage=False, basename="", extensions=None, caching=True</i>)
--- a/Documentation/Source/index-eric5.Plugins.ViewManagerPlugins.html Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Source/index-eric5.Plugins.ViewManagerPlugins.html Mon Oct 03 18:52:38 2011 +0200 @@ -31,9 +31,6 @@ <td><a href="index-eric5.Plugins.ViewManagerPlugins.Listspace.html">Listspace</a></td> <td>Package containing the listspace view manager plugin.</td> </tr><tr> -<td><a href="index-eric5.Plugins.ViewManagerPlugins.MdiArea.html">MdiArea</a></td> -<td>Package containing the mdi area view manager plugin.</td> -</tr><tr> <td><a href="index-eric5.Plugins.ViewManagerPlugins.Tabview.html">Tabview</a></td> <td>Package containing the tabview view manager plugin.</td> </tr>
--- a/Documentation/Source/index-eric5.Plugins.html Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Source/index-eric5.Plugins.html Mon Oct 03 18:52:38 2011 +0200 @@ -81,9 +81,6 @@ <td><a href="eric5.Plugins.PluginVmListspace.html">PluginVmListspace</a></td> <td>Module implementing the Tabview view manager plugin.</td> </tr><tr> -<td><a href="eric5.Plugins.PluginVmMdiArea.html">PluginVmMdiArea</a></td> -<td>Module implementing the mdi area view manager plugin.</td> -</tr><tr> <td><a href="eric5.Plugins.PluginVmTabview.html">PluginVmTabview</a></td> <td>Module implementing the Tabview view manager plugin.</td> </tr><tr>
--- a/Documentation/Source/index-eric5.QScintilla.html Mon Oct 03 16:08:32 2011 +0200 +++ b/Documentation/Source/index-eric5.QScintilla.html Mon Oct 03 18:52:38 2011 +0200 @@ -57,6 +57,9 @@ <td><a href="eric5.QScintilla.Editor.html">Editor</a></td> <td>Module implementing the editor component of the eric5 IDE.</td> </tr><tr> +<td><a href="eric5.QScintilla.EditorAssembly.html">EditorAssembly</a></td> +<td>Module implementing the editor assembly widget containing the navigation combos and the editor widget.</td> +</tr><tr> <td><a href="eric5.QScintilla.GotoDialog.html">GotoDialog</a></td> <td>Module implementing the Goto dialog.</td> </tr><tr>
--- a/Plugins/ViewManagerPlugins/Listspace/Listspace.py Mon Oct 03 16:08:32 2011 +0200 +++ b/Plugins/ViewManagerPlugins/Listspace/Listspace.py Mon Oct 03 18:52:38 2011 +0200 @@ -42,7 +42,7 @@ @param editor the editor object to be added (QScintilla.Editor.Editor) """ - super().addWidget(editor) + super().addWidget(editor.parent()) if not editor in self.editors: self.editors.append(editor) @@ -52,9 +52,21 @@ @param widget widget to be removed (QWidget) """ - super().removeWidget(widget) if isinstance(widget, QScintilla.Editor.Editor): self.editors.remove(widget) + widget = widget.parent() + super().removeWidget(widget) + + def currentWidget(self): + """ + Public method to get a reference to the current editor. + + @return reference to the current editor (Editor) + """ + widget = super().currentWidget() + if widget is not None: + widget = widget.getEditor() + return widget def setCurrentWidget(self, widget): """ @@ -65,6 +77,7 @@ if isinstance(widget, QScintilla.Editor.Editor): self.editors.remove(widget) self.editors.insert(0, widget) + widget = widget.parent() super().setCurrentWidget(widget) def setCurrentIndex(self, index):
--- a/Plugins/ViewManagerPlugins/Tabview/Tabview.py Mon Oct 03 16:08:32 2011 +0200 +++ b/Plugins/ViewManagerPlugins/Tabview/Tabview.py Mon Oct 03 18:52:38 2011 +0200 @@ -56,7 +56,7 @@ @param parent reference to the parent widget (QWidget) """ - E5WheelTabBar.__init__(self, parent) + super().__init__(parent) self.setAcceptDrops(True) self.__dragStartPos = QPoint() @@ -69,7 +69,7 @@ """ if event.button() == Qt.LeftButton: self.__dragStartPos = QPoint(event.pos()) - E5WheelTabBar.mousePressEvent(self, event) + super().mousePressEvent(event) def mouseMoveEvent(self, event): """ @@ -94,7 +94,7 @@ drag.exec_(Qt.DropActions(Qt.CopyAction)) elif event.modifiers() == Qt.KeyboardModifiers(Qt.NoModifier): drag.exec_(Qt.DropActions(Qt.MoveAction)) - E5WheelTabBar.mouseMoveEvent(self, event) + super().mouseMoveEvent(event) def dragEnterEvent(self, event): """ @@ -110,7 +110,7 @@ "source-index" in formats and \ "tabwidget-id" in formats: event.acceptProposedAction() - E5WheelTabBar.dragEnterEvent(self, event) + super().dragEnterEvent(event) def dropEvent(self, event): """ @@ -138,7 +138,7 @@ elif event.proposedAction() == Qt.CopyAction: self.tabCopyRequested.emit(fromIndex, toIndex) event.acceptProposedAction() - E5WheelTabBar.dropEvent(self, event) + super().dropEvent(event) class TabWidget(E5TabWidget): @@ -151,7 +151,7 @@ @param vm view manager widget (Tabview) """ - E5TabWidget.__init__(self) + super().__init__() self.setAttribute(Qt.WA_DeleteOnClose, True) self.__tabBar = TabBar(self) @@ -210,7 +210,7 @@ self.emptyLabel = QLabel() self.emptyLabel.setPixmap(ericPic) self.emptyLabel.setAlignment(Qt.AlignVCenter | Qt.AlignHCenter) - E5TabWidget.addTab(self, self.emptyLabel, UI.PixmapCache.getIcon("empty.png"), "") + super().addTab(self.emptyLabel, UI.PixmapCache.getIcon("empty.png"), "") def __initMenu(self): """ @@ -263,7 +263,7 @@ @param index index of the tab the menu is requested for (integer) """ if self.editors: - self.contextMenuEditor = self.widget(index) + self.contextMenuEditor = self.widget(index).getEditor() if self.contextMenuEditor: self.saveMenuAct.setEnabled(self.contextMenuEditor.isModified()) fileName = self.contextMenuEditor.getFileName() @@ -323,7 +323,8 @@ @param editor the editor object to be added (QScintilla.Editor.Editor) @param title title for the new tab (string) """ - E5TabWidget.addTab(self, editor, UI.PixmapCache.getIcon("empty.png"), title) + assembly = editor.parent() + super().addTab(assembly, UI.PixmapCache.getIcon("empty.png"), title) if self.closeButton: self.closeButton.setEnabled(True) else: @@ -347,9 +348,10 @@ @param title title for the new tab (string) @return index of the inserted tab (integer) """ - newIndex = E5TabWidget.insertTab(self, index, editor, - UI.PixmapCache.getIcon("empty.png"), - title) + assembly = editor.parent() + newIndex = super().insertTab(index, assembly, + UI.PixmapCache.getIcon("empty.png"), + title) if self.closeButton: self.closeButton.setEnabled(True) else: @@ -388,7 +390,8 @@ if editor.isReadOnly(): txt = self.trUtf8("{0} (ro)").format(txt) - index = self.indexOf(editor) + assembly = editor.parent() + index = self.indexOf(assembly) if index > -1: self.setTabText(index, txt) self.setTabToolTip(index, fn) @@ -399,17 +402,17 @@ @param object object to be removed (QWidget) """ - index = self.indexOf(object) + if isinstance(object, QScintilla.Editor.Editor): + object.captionChanged.disconnect(self.__captionChange) + self.editors.remove(object) + index = self.indexOf(object.parent()) + else: + index = self.indexOf(object) if index > -1: self.removeTab(index) - if isinstance(object, QScintilla.Editor.Editor): - object.captionChanged.disconnect(self.__captionChange) - self.editors.remove(object) - if not self.editors: - E5TabWidget.addTab(self, self.emptyLabel, - UI.PixmapCache.getIcon("empty.png"), "") + super().addTab(self.emptyLabel, UI.PixmapCache.getIcon("empty.png"), "") self.emptyLabel.show() if self.closeButton: self.closeButton.setEnabled(False) @@ -432,7 +435,7 @@ text = tw.tabText(sourceIndex) icon = tw.tabIcon(sourceIndex) whatsThis = tw.tabWhatsThis(sourceIndex) - editor = tw.widget(sourceIndex) + editor = tw.widget(sourceIndex).getEditor() # step 2: relocate the tab tw.removeWidget(editor) @@ -456,7 +459,7 @@ """ tw = self.vm.getTabWidgetById(sourceId) if tw is not None: - editor = tw.widget(sourceIndex) + editor = tw.widget(sourceIndex).getEditor() newEditor = self.vm.cloneEditor(editor, editor.getFileType(), editor.getFileName()) self.vm.insertView(newEditor, self, targetIndex, @@ -469,7 +472,7 @@ @param sourceIndex index of the tab (integer) @param targetIndex index position to place it to (integer) """ - editor = self.widget(sourceIndex) + editor = self.widget(sourceIndex).getEditor() newEditor = self.vm.cloneEditor(editor, editor.getFileType(), editor.getFileName()) self.vm.insertView(newEditor, self, targetIndex, @@ -479,12 +482,34 @@ """ Overridden method to return a reference to the current page. - @return reference to the current page (QWidget) + @return reference to the current page (Editor) """ if not self.editors: return None else: - return E5TabWidget.currentWidget(self) + try: + return super().currentWidget().getEditor() + except AttributeError: + return super().currentWidget() + + def setCurrentWidget(self, editor): + """ + Public method to set the current tab by the given editor. + + @param editor editor to determine current tab from (Editor) + """ + super().setCurrentWidget(editor.parent()) + + def indexOf(self, object): + """ + Public method to get the tab index of the given editor. + + @param object object to get the index for (QLabel or Editor) + @return tab index of the editor (integer) + """ + if isinstance(object, QScintilla.Editor.Editor): + object = object.parent() + return super().indexOf(object) def hasEditor(self, editor): """ @@ -518,7 +543,7 @@ index = self.contextMenuIndex for i in list(range(self.count() - 1, index, -1)) + \ list(range(index - 1, -1, -1)): - editor = self.widget(i) + editor = self.widget(i).getEditor() self.vm.closeEditorWindow(editor) def __contextMenuCloseAll(self): @@ -605,7 +630,7 @@ """ Private method to handle the press of the close button. """ - self.vm.closeEditorWindow(self.currentWidget()) + self.vm.closeEditorWindow(self.currentWidget().getEditor()) def __closeRequested(self, index): """ @@ -614,7 +639,7 @@ @param index index of the tab (integer) """ if index >= 0: - self.vm.closeEditorWindow(self.widget(index)) + self.vm.closeEditorWindow(self.widget(index).getEditor()) def mouseDoubleClickEvent(self, event): """
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QScintilla/EditorAssembly.py Mon Oct 03 18:52:38 2011 +0200 @@ -0,0 +1,207 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the editor assembly widget containing the navigation combos and +the editor widget. +""" + +from PyQt4.QtCore import QTimer +from PyQt4.QtGui import QWidget, QGridLayout, QComboBox + +from .Editor import Editor + +from Utilities.ModuleParser import Module, Function, getTypeFromTypeName + +import UI.PixmapCache + + +class EditorAssembly(QWidget): + """ + Class implementing the editor assembly widget containing the navigation combos and + the editor widget. + """ + def __init__(self, dbs, fn=None, vm=None, filetype="", editor=None, tv=None): + """ + Constructor + + @param dbs reference to the debug server object + @param fn name of the file to be opened (string). If it is None, + a new (empty) editor is opened + @param vm reference to the view manager object (ViewManager.ViewManager) + @param filetype type of the source file (string) + @param editor reference to an Editor object, if this is a cloned view + @param tv reference to the task viewer object + """ + super().__init__() + + self.__layout = QGridLayout(self) + self.__layout.setContentsMargins(0, 0, 0, 0) + self.__layout.setSpacing(1) + + self.__globalsCombo = QComboBox() + self.__membersCombo = QComboBox() + self.__editor = Editor(dbs, fn, vm, filetype, editor, tv) + + self.__layout.addWidget(self.__globalsCombo, 0, 0) + self.__layout.addWidget(self.__membersCombo, 0, 1) + self.__layout.addWidget(self.__editor, 1, 0, 1, -1) + + self.__module = None + + self.__globalsCombo.activated[int].connect(self.__globalsActivated) + self.__membersCombo.activated[int].connect(self.__membersActivated) + + self.__parseTimer = QTimer(self) + self.__parseTimer.setSingleShot(True) + self.__parseTimer.setInterval(5 * 1000) + self.__parseTimer.timeout.connect(self.__parseEditor) + self.__editor.textChanged.connect(self.__resetParseTimer) + + QTimer.singleShot(0, self.__parseEditor) + + def getEditor(self): + """ + Public method to get the reference to the editor widget. + + @return reference to the editor widget (Editor) + """ + return self.__editor + + def __globalsActivated(self, index): + """ + Private method to jump to the line of the selected global entry and to populate + the members combo box. + + @param index index of the selected entry (integer) + """ + # step 1: go to the line of the selected entry + lineno = self.__globalsCombo.itemData(index) + txt = self.__editor.text(lineno - 1).rstrip() + pos = len(txt.replace(txt.strip(), "")) + self.__editor.gotoLine(lineno, pos if pos == 0 else pos +1) + self.__editor.setFocus() + + # step 2: populate the members combo, if the entry is a class + self.__membersCombo.clear() + entryName = self.__globalsCombo.itemText(index) + if self.__module and entryName in self.__module.classes: + cl = self.__module.classes[entryName] + + # step 2.1: add class methods + items = [] + for meth in cl.methods.values(): + if meth.modifier == Function.Static: + icon = UI.PixmapCache.getIcon("method_static.png") + elif meth.modifier == Function.Class: + icon = UI.PixmapCache.getIcon("method_class.png") + elif meth.isPrivate(): + icon = UI.PixmapCache.getIcon("method_private.png") + elif meth.isProtected(): + icon = UI.PixmapCache.getIcon("method_protected.png") + else: + icon = UI.PixmapCache.getIcon("method.png") + items.append((meth.name, icon, meth.lineno)) + for itm in sorted(items): + self.__membersCombo.addItem(itm[1], itm[0], itm[2]) + + # step 2.2: add class instance attributes + items = [] + for attr in cl.attributes.values(): + if attr.isPrivate(): + icon = UI.PixmapCache.getIcon("attribute_private.png") + elif attr.isProtected(): + icon = UI.PixmapCache.getIcon("attribute_protected.png") + else: + icon = UI.PixmapCache.getIcon("attribute.png") + items.append((attr.name, icon, attr.lineno)) + for itm in sorted(items): + self.__membersCombo.addItem(itm[1], itm[0], itm[2]) + + # step 2.3: add class attributes + items = [] + icon = UI.PixmapCache.getIcon("attribute_class.png") + for glob in cl.globals.values(): + items.append((glob.name, icon, glob.lineno)) + for itm in sorted(items): + self.__membersCombo.addItem(itm[1], itm[0], itm[2]) + + def __membersActivated(self, index): + """ + Private method to jump to the line of the selected members entry. + + @param index index of the selected entry (integer) + """ + lineno = self.__membersCombo.itemData(index) + txt = self.__editor.text(lineno - 1).rstrip() + pos = len(txt.replace(txt.strip(), "")) + self.__editor.gotoLine(lineno, pos if pos == 0 else pos +1) + self.__editor.setFocus() + + def __resetParseTimer(self): + """ + Private slot to reset the parse timer. + """ + self.__parseTimer.stop() + self.__parseTimer.start() + + def __parseEditor(self): + """ + Private method to parse the editor source and repopulate the globals combo. + """ + self.__module = None + sourceType = getTypeFromTypeName(self.__editor.determineFileType()) + if sourceType != -1: + src = self.__editor.text() + if src: + fn = self.__editor.getFileName() + if fn is None: + fn = "" + self.__module = Module("", fn, sourceType) + self.__module.scan(src) + + self.__globalsCombo.clear() + self.__membersCombo.clear() + + self.__globalsCombo.addItem("") + + # step 1: add classes + items = [] + for cl in self.__module.classes.values(): + if cl.isPrivate(): + icon = UI.PixmapCache.getIcon("class_private.png") + elif cl.isProtected(): + icon = UI.PixmapCache.getIcon("class_protected.png") + else: + icon = UI.PixmapCache.getIcon("class.png") + items.append((cl.name, icon, cl.lineno)) + for itm in sorted(items): + self.__globalsCombo.addItem(itm[1], itm[0], itm[2]) + + # step 2: add functions + items = [] + for func in self.__module.functions.values(): + if func.isPrivate(): + icon = UI.PixmapCache.getIcon("method_private.png") + elif func.isProtected(): + icon = UI.PixmapCache.getIcon("method_protected.png") + else: + icon = UI.PixmapCache.getIcon("method.png") + items.append((func.name, icon, func.lineno)) + for itm in sorted(items): + self.__globalsCombo.addItem(itm[1], itm[0], itm[2]) + + # step 3: add attributes + items = [] + for glob in self.__module.globals.values(): + if glob.isPrivate(): + icon = UI.PixmapCache.getIcon("attribute_private.png") + elif glob.isProtected(): + icon = UI.PixmapCache.getIcon("attribute_protected.png") + else: + icon = UI.PixmapCache.getIcon("attribute.png") + items.append((glob.name, icon, glob.lineno)) + for itm in sorted(items): + self.__globalsCombo.addItem(itm[1], itm[0], itm[2])
--- a/Utilities/ModuleParser.py Mon Oct 03 16:08:32 2011 +0200 +++ b/Utilities/ModuleParser.py Mon Oct 03 18:52:38 2011 +0200 @@ -25,7 +25,8 @@ from functools import reduce import Preferences -__all__ = ["Module", "Class", "Function", "RbModule", "readModule"] +__all__ = ["Module", "Class", "Function", "Attribute", "RbModule", "readModule", + "getTypeFromTypeName"] TABWIDTH = 4 @@ -33,6 +34,27 @@ RB_SOURCE = 129 SUPPORTED_TYPES = [imp.PY_SOURCE, PTL_SOURCE, RB_SOURCE] +PARSEABLE_TYPES = ["Python", "Python2", "Python3", "Ruby"] +TYPE_MAPPING = { + "Python": imp.PY_SOURCE, + "Python2": imp.PY_SOURCE, + "Python3": imp.PY_SOURCE, + "Ruby": RB_SOURCE, +} + + +def getTypeFromTypeName(name): + """ + Module function to determine the module type given the module type name. + + @param name module type name (string) + @return module type or -1 for failure (integer) + """ + if name in TYPE_MAPPING: + return TYPE_MAPPING[name] + else: + return -1 + _py_getnext = re.compile(r""" (?P<String>
--- a/ViewManager/ViewManager.py Mon Oct 03 16:08:32 2011 +0200 +++ b/ViewManager/ViewManager.py Mon Oct 03 18:52:38 2011 +0200 @@ -25,6 +25,7 @@ from .BookmarkedFilesDialog import BookmarkedFilesDialog from QScintilla.Editor import Editor +from QScintilla.EditorAssembly import EditorAssembly from QScintilla.GotoDialog import GotoDialog from QScintilla.SearchReplaceWidget import SearchReplaceWidget from QScintilla.ZoomDialog import ZoomDialog @@ -3256,8 +3257,9 @@ @param fn filename of this view @return reference to the new editor object (Editor.Editor) """ - editor = Editor(self.dbs, fn, self, filetype=filetype, editor=caller, - tv=e5App().getObject("TaskViewer")) + assembly = EditorAssembly(self.dbs, fn, self, filetype=filetype, editor=caller, + tv=e5App().getObject("TaskViewer")) + editor = assembly.getEditor() self.editors.append(editor) self.__connectEditor(editor) self.__editorOpened() @@ -3409,8 +3411,9 @@ if Utilities.samepath(fn, editor.getFileName()): break else: - editor = Editor(self.dbs, fn, self, filetype=filetype, - tv=e5App().getObject("TaskViewer")) + assembly = EditorAssembly(self.dbs, fn, self, filetype=filetype, + tv=e5App().getObject("TaskViewer")) + editor = assembly.getEditor() self.editors.append(editor) self.__connectEditor(editor) self.__editorOpened() @@ -3583,7 +3586,9 @@ """ Public slot to generate a new empty editor. """ - editor = Editor(self.dbs, None, self, tv=e5App().getObject("TaskViewer")) + assembly = EditorAssembly(self.dbs, None, self, + tv=e5App().getObject("TaskViewer")) + editor = assembly.getEditor() self.editors.append(editor) self.__connectEditor(editor) self._addView(editor, None)
--- a/changelog Mon Oct 03 16:08:32 2011 +0200 +++ b/changelog Mon Oct 03 18:52:38 2011 +0200 @@ -14,6 +14,7 @@ view managers to open an associated 'rejections' file (i.e. same file name with '.rej' appended) -- added a syntax check while typing function + -- added source navigation function for Python 2, Python 3 and Ruby sources - enhancements of the cooperation functions -- added code to the cooperation functions to support IPv6 - enhancements of the source browser
--- a/eric5.e4p Mon Oct 03 16:08:32 2011 +0200 +++ b/eric5.e4p Mon Oct 03 18:52:38 2011 +0200 @@ -401,9 +401,6 @@ <Source>MultiProject/AddProjectDialog.py</Source> <Source>MultiProject/MultiProjectBrowser.py</Source> <Source>Preferences/ConfigurationPages/MultiProjectPage.py</Source> - <Source>Plugins/ViewManagerPlugins/MdiArea/__init__.py</Source> - <Source>Plugins/ViewManagerPlugins/MdiArea/MdiArea.py</Source> - <Source>Plugins/PluginVmMdiArea.py</Source> <Source>QScintilla/Lexers/LexerTCL.py</Source> <Source>Graphics/SvgDiagram.py</Source> <Source>Project/ProjectBrowserFlags.py</Source> @@ -933,6 +930,7 @@ <Source>Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py</Source> <Source>Plugins/VcsPlugins/vcsMercurial/HgClientPromptDialog.py</Source> <Source>Preferences/ConfigurationPages/EditorSyntaxPage.py</Source> + <Source>QScintilla/EditorAssembly.py</Source> </Sources> <Forms> <Form>PyUnit/UnittestDialog.ui</Form> @@ -1244,7 +1242,6 @@ <Other>CodeTemplates</Other> <Other>Plugins/ViewManagerPlugins/Listspace/preview.png</Other> <Other>Plugins/ViewManagerPlugins/Tabview/preview.png</Other> - <Other>Plugins/ViewManagerPlugins/MdiArea/preview.png</Other> <Other>Plugins/VcsPlugins/vcsPySvn/icons/pysvn.png</Other> <Other>Plugins/VcsPlugins/vcsSubversion/icons/subversion.png</Other> <Other>Plugins/VcsPlugins/vcsPySvn/icons/preferences-subversion.png</Other>