Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/guiframe/documentation_window.py

    r9d566b2 r959eb01  
    1616import os 
    1717import logging 
     18import wx 
    1819import webbrowser 
    1920import urllib 
    2021import sys 
    2122 
    22 import wx 
    23 try: 
    24     import wx.html2 as html 
    25     WX_SUPPORTS_HTML2 = True 
    26 except ImportError: 
    27     WX_SUPPORTS_HTML2 = False 
    28  
    29 from .gui_manager import get_app_dir 
    30  
    3123logger = logging.getLogger(__name__) 
    3224 
    3325SPHINX_DOC_ENV = "SASVIEW_DOC_PATH" 
     26WX_SUPPORTS_HTML2 = True 
     27try: 
     28    import wx.html2 as html 
     29except: 
     30    WX_SUPPORTS_HTML2 = False 
    3431 
    35 THREAD_STARTED = False 
    36 def start_documentation_server(doc_root, port): 
    37     import thread 
    38     global THREAD_STARTED 
    39     if not THREAD_STARTED: 
    40         thread.start_new_thread(_documentation_server, (doc_root, port)) 
    41         THREAD_STARTED = True 
    4232 
    43 def _documentation_server(doc_root, port): 
    44     from SimpleHTTPServer import SimpleHTTPRequestHandler 
    45     from SocketServer import TCPServer 
     33from gui_manager import get_app_dir 
    4634 
    47     os.chdir(doc_root) 
    48     httpd = TCPServer(("127.0.0.1", port), SimpleHTTPRequestHandler, bind_and_activate=False) 
    49     httpd.allow_reuse_address = True 
    50     try: 
    51         httpd.server_bind() 
    52         httpd.server_activate() 
    53         httpd.serve_forever() 
    54     finally: 
    55         httpd.server_close() 
    5635 
    5736class DocumentationWindow(wx.Frame): 
     
    9170        #Note added June 21, 2015     PDB 
    9271        file_path = os.path.join(docs_path, path) 
    93         if path.startswith('http'): 
    94             url = path 
    95         elif not os.path.exists(file_path): 
    96             url = "index.html" 
     72        url = "file:///" + urllib.quote(file_path, r'/\:')+ url_instruction 
     73 
     74        if not os.path.exists(file_path): 
    9775            logger.error("Could not find Sphinx documentation at %s \ 
    9876            -- has it been built?", file_path) 
    99         elif True: 
    100             start_documentation_server(docs_path, port=7999) 
    101             url = "http://localhost:7999/" + path.replace('\\', '/') + url_instruction 
    102         else: 
    103             url = "file:///" + urllib.quote(file_path, r'/\:')+ url_instruction 
    104  
    105         logger.info("showing url " + url) 
    106         if WX_SUPPORTS_HTML2: 
     77        elif WX_SUPPORTS_HTML2: 
    10778            # Complete HTML/CSS support! 
    10879            self.view = html.WebView.New(self) 
    10980            self.view.LoadURL(url) 
    110             self.Bind(html.EVT_WEBVIEW_ERROR, self.OnError, self.view) 
    11181            self.Show() 
    11282        else: 
     
    11888            webbrowser.open_new_tab(url) 
    11989 
    120     def OnError(self, evt): 
    121         logger.error("%d: %s", evt.GetInt(), evt.GetString()) 
    122  
    12390def main(): 
    12491    """ 
    12592    main loop function if running alone for testing. 
    12693    """ 
    127     url = "index.html" if len(sys.argv) <= 1 else sys.argv[1] 
    12894    app = wx.App() 
    129     DocumentationWindow(None, -1, url, "", "Documentation",) 
     95    DocumentationWindow(None, -1, "index.html", "", "Documentation",) 
    13096    app.MainLoop() 
    13197 
Note: See TracChangeset for help on using the changeset viewer.