diff --git a/modules/gui/pymod/CMakeLists.txt b/modules/gui/pymod/CMakeLists.txt index 00a08e2578ab167f29bae1372f2b942e73e88993..4a530facf4d810f4863fba48776efa34d116265d 100644 --- a/modules/gui/pymod/CMakeLists.txt +++ b/modules/gui/pymod/CMakeLists.txt @@ -84,6 +84,7 @@ set(OST_GUI_PYMOD_MODULES init_spacenav.py init_splash.py traj.py + helpwidget.py ) set(OST_GUI_PYMOD_DNG_MODULES diff --git a/modules/gui/pymod/helpwidget.py b/modules/gui/pymod/helpwidget.py new file mode 100644 index 0000000000000000000000000000000000000000..117230ece30d2a1d1ec1488d9c66020b24ff100d --- /dev/null +++ b/modules/gui/pymod/helpwidget.py @@ -0,0 +1,42 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from ost import gui +class DocWidget(QWidget): + def __init__(self, parent=None): + QWidget.__init__(self, parent) + l=QVBoxLayout(self) + l.setMargin(0) + self.setWindowTitle('OpenStructure Help') + self.searchbox=QLineEdit(self) + l.addWidget(self.searchbox) + self.doctext=QTextEdit('', self) + l.addWidget(self.doctext) + self.setLayout(l) + QObject.connect(self.searchbox, SIGNAL('returnPressed()'), + self.OnReturnPressed) + def OnReturnPressed(self): + help(str(self.searchbox.text())) +doc_widget=DocWidget() +doc_widget_for_panel=gui.Widget(doc_widget) +panels=gui.GostyApp.Instance().perspective.panels +panels.AddWidgetToPool("Doc",doc_widget_for_panel) + + +class Help: + def __call__(self, what=None): + import pydoc + d=pydoc.HTMLDoc() + if what==None: + doc_widget.doctext.setHtml('') + doc_widget.show() + doc_widget.searchbox.setText('') + return + s=d.document(pydoc.resolve(what)[0]) + doc_widget.doctext.setHtml(s) + doc_widget.searchbox.setText('') + if not doc_widget.isVisible(): + panels.AddWidget(gui.PanelPosition.RIGHT_PANEL, doc_widget_for_panel, False) + def __repr__(self): + return 'Type help() for interactive help, or help(object) for help about object.' + +help=Help() diff --git a/modules/gui/src/gl_win.cc b/modules/gui/src/gl_win.cc index 6e2fbdf2fd40eb933144403cb1e6b195cda10f55..25b1b9f1b4ad94bb05d02c1d76c3e9e6d9fcf433 100644 --- a/modules/gui/src/gl_win.cc +++ b/modules/gui/src/gl_win.cc @@ -115,10 +115,6 @@ gl_canvas_(NULL) #if OST_IMG_ENABLED ToolManager::Instance().AddTool(new MapTool); #endif - QBoxLayout* l=new QVBoxLayout(this); - l->setMargin(0); - l->setSpacing(0); - l->addWidget(main); } void GLWin::ActiveToolChanged(Tool* t) diff --git a/modules/gui/src/widget.cc b/modules/gui/src/widget.cc index b67f4b50fa97fef66985c237115a39a3c061a5f3..7a94cc0dd7cb595175f4100c3baa7194d9468126 100644 --- a/modules/gui/src/widget.cc +++ b/modules/gui/src/widget.cc @@ -17,6 +17,7 @@ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA //------------------------------------------------------------------------------ #include <cassert> +#include <QVBoxLayout> #include "widget.hh" @@ -52,6 +53,10 @@ void Widget::SetInternalWidget(QWidget* widget) { assert(internal_==NULL); internal_=widget; + QBoxLayout* l=new QVBoxLayout(this); + l->setMargin(0); + l->setSpacing(0); + l->addWidget(widget); widget->setParent(this); } diff --git a/scripts/init.py b/scripts/init.py index 4ca4cb7a0a0e5fdc16735b22274b632fffc92be3..11c4507fb466f7c23cb98e03feb1d95070bbf6d0 100644 --- a/scripts/init.py +++ b/scripts/init.py @@ -3,6 +3,7 @@ import sys import os.path import optparse from ost import io, mol, seq, geom, conop, gui, settings + import ost try: from ost import img @@ -20,6 +21,7 @@ from ost.gui.init_spacenav import _InitSpaceNav from ost.gui.init_context_menu import _InitContextMenu from ost.gui.init_splash import _InitSplash from ost.gui.dng import termuse +from ost.gui.helpwidget import help from PyQt4.QtGui import * def _my_exit(code):