Ignore:
Timestamp:
01/16/13 18:32:53 (15 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Children:
11265:698f59d642c2, 11289:4f67585127bc
Message:

Providing help for widgets.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/canvasmain.py

    r11259 r11264  
    1414    QMainWindow, QWidget, QAction, QActionGroup, QMenu, QMenuBar, QDialog, 
    1515    QFileDialog, QMessageBox, QVBoxLayout, QSizePolicy, QColor, QKeySequence, 
    16     QIcon, QToolBar, QToolButton, QDockWidget, QDesktopServices, 
    17     QApplication 
     16    QIcon, QToolBar, QToolButton, QDockWidget, QDesktopServices, QApplication 
    1817) 
    1918 
     
    2221) 
    2322 
     23from PyQt4.QtWebKit import QWebView 
     24 
    2425from PyQt4.QtCore import pyqtProperty as Property 
    2526 
     
    2829from ..gui.dock import CollapsibleDockWidget 
    2930from ..gui.quickhelp import QuickHelpTipEvent 
    30 from ..gui.utils import message_critical, message_question, message_information 
     31from ..gui.utils import message_critical, message_question 
     32 
     33from ..help import HelpManager 
    3134 
    3235from .canvastooldock import CanvasToolDock, QuickCategoryToolbar 
     
    111114        self.recent_schemes = config.recent_schemes() 
    112115 
     116        self.help = HelpManager(self) 
     117 
    113118        self.setup_actions() 
    114119        self.setup_ui() 
     
    199204        self.dock_help = canvas_tool_dock.help 
    200205        self.dock_help.setMaximumHeight(150) 
    201         self.dock_help.document().setDefaultStyleSheet("h3 {color: orange;}") 
     206        self.dock_help.document().setDefaultStyleSheet("h3, a {color: orange;}") 
    202207 
    203208        self.dock_help_action = canvas_tool_dock.toogleQuickHelpAction() 
     
    268273        self.output_dock = QDockWidget(self.tr("Output"), 
    269274                                       objectName="output-dock") 
     275 
    270276        self.output_dock.setAllowedAreas(Qt.BottomDockWidgetArea) 
    271277 
     
    277283        output_view = OutputView() 
    278284        self.output_dock.setWidget(output_view) 
     285 
     286        self.help_dock = QDockWidget(self.tr("Help"), 
     287                                     objectName="help-dock") 
     288        self.addDockWidget(Qt.LeftDockWidgetArea, self.help_dock) 
     289        self.help_dock.setFloating(True) 
     290        self.help_dock.setAllowedAreas(Qt.NoDockWidgetArea) 
     291 
     292        self.help_dock.hide() 
     293 
     294        self.help_view = QWebView() 
     295        self.help_dock.setWidget(self.help_view) 
    279296 
    280297        self.setMinimumSize(600, 500) 
     
    623640 
    624641        self.scheme_widget.setRegistry(widget_registry) 
     642 
     643        self.help.set_registry(widget_registry) 
    625644 
    626645        # Restore possibly saved widget toolbox tab states 
     
    12091228        if len(nodes) == 1: 
    12101229            doc.editNodeTitle(nodes[0]) 
    1211  
    1212     def widget_help(self): 
    1213         """Open widget help page. 
    1214         """ 
    1215         doc = self.current_document() 
    1216         nodes = doc.selectedNodes() 
    1217         help_url = None 
    1218         if len(nodes) == 1: 
    1219             node = nodes[0] 
    1220             desc = node.description 
    1221             if desc.help: 
    1222                 help_url = desc.help 
    1223  
    1224         if help_url is not None: 
    1225             QDesktopServices.openUrl(QUrl(help_url)) 
    1226         else: 
    1227             message_information( 
    1228                 self.tr("Sorry there is documentation available for " 
    1229                         "this widget."), 
    1230                 parent=self) 
    12311230 
    12321231    def open_canvas_settings(self): 
     
    14181417            return True 
    14191418 
     1419        elif event.type() == QEvent.WhatsThisClicked: 
     1420            ref = event.href() 
     1421            url = QUrl(ref) 
     1422 
     1423            if url.scheme() == "help" and url.authority() == "search": 
     1424                try: 
     1425                    url = self.help.search(url) 
     1426                except KeyError: 
     1427                    log.info("No help topic found for %r", url) 
     1428                    return False 
     1429 
     1430            if url: 
     1431                log.info("Setting help to url: %r", url) 
     1432                self.help_view.setUrl(QUrl(url)) 
     1433                self.help_dock.show() 
     1434                return True 
     1435 
    14201436        return QMainWindow.event(self, event) 
    14211437 
     
    15071523def index(sequence, *what, **kwargs): 
    15081524    """index(sequence, what, [key=None, [predicate=None]]) 
     1525 
    15091526    Return index of `what` in `sequence`. 
     1527 
    15101528    """ 
    15111529    what = what[0] 
Note: See TracChangeset for help on using the changeset viewer.