ó
‹²,]c           @   sø   d  Z  d d l j Z d d l Z d d l m Z m Z m Z m	 Z	 d d l
 m Z d d l m Z d d l m Z d d l m Z m Z d d l m Z d d	 l m Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z e d k rô e ƒ  n  d S(   s   pydoc widgetiÿÿÿÿN(   t   Qtt   QThreadt   QUrlt   Signal(   t   QCursor(   t   QApplication(   t   _(   t   PY3t   to_text_string(   t   select_port(   t
   WebBrowsert   PydocServerc           B   sG   e  Z d  Z e ƒ  Z d d „ Z d „  Z d „  Z d „  Z d „  Z	 RS(   s   Pydoc serveri(  c         C   s,   t  j |  ƒ | |  _ d  |  _ t |  _ d  S(   N(   R   t   __init__t   portt   Nonet   servert   Falset   complete(   t   selfR   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR      s    		c         C   s—   d d  l  } t rw y& |  j | j | j d |  j ƒƒ Wq“ t k
 rs |  j | j | j d d d |  j ƒƒ q“ Xn | j |  j |  j |  j ƒ d  S(   NiÿÿÿÿR   t   hostnamet	   localhost(	   t   pydocR   t   callbackt   _start_servert   _url_handlerR   t	   TypeErrort   servet	   completer(   R   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   run#   s    c         C   s   | |  _  |  j j ƒ  d  S(   N(   R   t   server_startedt   emit(   R   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR   3   s    	c         C   s   t  |  _ d  S(   N(   t   TrueR   (   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR   7   s    c         C   sP   t  r1 |  j ƒ  rL |  j j rL |  j j ƒ  qL n |  j ƒ  rL d |  j _ n  d  S(   Ni   (   R   t   is_server_runningR   t   servingt   stopt   quit(   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   quit_server:   s
    (
   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   R$   (    (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR      s   				t   PydocBrowserc           B   sn   e  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   s   
    pydoc widget
    i°u  c         C   s&   t  j |  | ƒ d  |  _ d  |  _ d  S(   N(   R
   R   R   R   R   (   R   t   parent(    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR   K   s    	c         C   s.   t  j t t j ƒ ƒ t  j ƒ  |  j ƒ  d S(   s   Start pydoc serverN(   R   t   setOverrideCursorR   R    t
   WaitCursort   processEventst   start_server(   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt
   initializeP   s    
c         C   s   |  j  ƒ  t j ƒ  d S(   s   Load home pageN(   t   go_homeR   t   restoreOverrideCursor(   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   initialize_continuedW   s    
c         C   s   |  j  d k	 S(   s.   Return True if pydoc server is already runningN(   R   R   (   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR    \   s    c         C   s*   |  j  ƒ  r |  j j ƒ  n  | j ƒ  d  S(   N(   R    R   R$   t   accept(   R   t   event(    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt
   closeEvent`   s    c         C   s¬   |  j  d k r; t d |  j ƒ |  _ |  j d |  j ƒ n5 |  j  j ƒ  rp |  j  j j |  j	 ƒ |  j  j
 ƒ  n  t d |  j ƒ |  _  |  j  j j |  j	 ƒ |  j  j ƒ  d S(   s   Start pydoc servert   default_ports   http://localhost:%d/R   N(   R   R   R	   t   DEFAULT_PORTR   t   set_home_urlt	   isRunningR   t
   disconnectR1   R#   R   t   connectt   start(   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR-   h   s    c         C   s
   t  d ƒ S(   s   Return address label texts   Module or package:(   R   (   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt	   get_labelu   s    c         C   s   |  j  ƒ  t j |  ƒ d S(   s   Reload pageN(   R-   R
   t   reload(   R   (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR=   y   s    
c         C   s7   | j  d ƒ r | d } n  t |  j j ƒ  | d ƒ S(   s%   Convert text address into QUrl objectt   /i   s   .html(   t
   startswithR   t   home_urlt   toString(   R   t   text(    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   text_to_url~   s    c         C   s!   t  j t | j ƒ  ƒ ƒ d d S(   s2   Convert QUrl object to displayed text in combo boxi    i   (   t   ospt   splitextR   t   path(   R   t   url(    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   url_to_text„   s    (   R%   R&   R'   R6   R   R.   R1   R    R4   R-   R<   R=   RC   RH   (    (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyR(   E   s   									c          C   sV   d d l  m }  |  d d ƒ } t d ƒ } | j ƒ  | j ƒ  t j | j ƒ  ƒ d S(   s   Run web browseriÿÿÿÿ(   t   qapplicationt	   test_timei   N(	   t   spyder.utils.qthelpersRI   R(   R   t   showR.   t   syst   exitt   exec_(   RI   t   appt   widget(    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   test‰   s    

t   __main__(   R'   t   os.pathRF   RD   RM   t   qtpy.QtCoreR    R   R   R   t
   qtpy.QtGuiR   t   qtpy.QtWidgetsR   t   spyder.config.baseR   t   spyder.py3compatR   R   t   spyder.utils.miscR	   t   spyder.widgets.browserR
   R   R(   RR   R%   (    (    (    s6   lib/python2.7/site-packages/spyder/widgets/pydocgui.pyt   <module>   s   ",D	
