ó
‹²,]c           @  sÒ  d  Z  d d l m Z d d l j Z d d l Z d d l m Z d d l	 m
 Z
 m Z m Z d d l m Z m Z m Z m Z d d l m Z m Z d d l m Z d d	 l m Z d d
 l m Z m Z m Z m Z d d l m  Z  d e! f d „  ƒ  YZ" d e f d „  ƒ  YZ# d e f d „  ƒ  YZ$ d e$ f d „  ƒ  YZ% d e$ f d „  ƒ  YZ& d e$ f d „  ƒ  YZ' d e$ f d „  ƒ  YZ( d „  Z) d „  Z* e+ e+ d „ Z, d e  f d „  ƒ  YZ- d e f d  „  ƒ  YZ. d S(!   s$   Editor tools: outline explorer, etc.iÿÿÿÿ(   t   print_functionN(   t   from_qvariant(   t   Qtt   Signalt   Slot(   t   QHBoxLayoutt   QTreeWidgetItemt   QVBoxLayoutt   QWidget(   t   _t   STDOUT(   t   to_text_string(   t   icon_manager(   t   create_actiont   create_toolbuttont   set_item_user_textt   create_plugin_layout(   t   OneColumnTreet	   PythonCFMc           B  s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s%  
    Collection of helpers to match functions and classes
    for Python language
    This has to be reimplemented for other languages for the outline explorer 
    to be supported (not implemented yet: outline explorer won't be populated
    unless the current script is a Python script)
    c         C  s3   t  j d | | ƒ } | d  k	 r/ | j d ƒ Sd  S(   Ns#   [\ ]*%s ([a-zA-Z0-9_]*)[\ ]*[\(|\:]i   (   t   ret   matcht   Nonet   group(   t   selft   statmtt   textR   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt
   __get_name'   s    c         C  s   |  j  d | ƒ S(   Nt   def(   t   _PythonCFM__get_name(   R   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   get_function_name,   s    c         C  s   |  j  d | ƒ S(   Nt   class(   R   (   R   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   get_class_name/   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR      s   		t   FileRootItemc           B  s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C  sY   t  j |  | t  j ƒ | |  _ |  j d t j d ƒ ƒ |  j d | ƒ t |  | ƒ d  S(   Ni    t   python(	   R   t   __init__t   Typet   patht   setIcont   imat   icont
   setToolTipR   (   R   R'   t
   treewidget(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR%   4   s
    	c         C  s   | |  _  |  j | ƒ d  S(   N(   R'   t   set_text(   R   R'   t   fullpath(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   set_path;   s    	c         C  s/   |  j  d | r |  j n t j |  j ƒ ƒ d  S(   Ni    (   t   setTextR'   t   ospt   basename(   R   R.   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR-   ?   s    (   R    R!   R%   R/   R-   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR#   3   s   		t   TreeItemc           B  s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s   Class browser item base classc         C  s÷   | d  k r% t j |  | t j ƒ n‚ | | k	 ri x5 | j ƒ  | k	 re | j ƒ  } | d  k r4 Pq4 q4 Wn  | d  k rŽ t j |  | t j ƒ n t j |  | | t j ƒ |  j d | ƒ t | j d t j	 ƒ t
 ƒ } t |  | d | ƒ | |  _ d  S(   Ni    t   /(   R   R   R%   R&   t   parentR0   R   t   dataR   t   UserRoleR   R   t   line(   R   t   nameR8   R5   t	   precedingt   parent_text(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR%   D   s     
	c         C  s   |  j  d | ƒ d  S(   Ni    (   R(   (   R   R*   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   set_iconZ   s    c         C  s'   |  j  d t d ƒ t |  j ƒ ƒ d  S(   Ni    s   Line %s(   R+   R	   t   strR8   (   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   setup]   s    (   R    R!   R"   R%   R<   R>   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR3   B   s   		t	   ClassItemc           B  s   e  Z d  „  Z RS(   c         C  s=   |  j  t j d ƒ ƒ |  j d t d ƒ t |  j ƒ ƒ d  S(   NR   i    s   Class defined at line %s(   R<   R)   R*   R+   R	   R=   R8   (   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR>   a   s    (   R    R!   R>   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR?   `   s   t   FunctionItemc           B  s   e  Z d  „  Z d „  Z RS(   c         C  s   t  |  j ƒ  t ƒ S(   N(   t
   isinstanceR5   R?   (   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt	   is_methodf   s    c         C  sê   |  j  ƒ  r­ |  j d t d ƒ t |  j ƒ ƒ t |  j d ƒ ƒ } | j d ƒ rl |  j t	 j
 d ƒ ƒ qæ | j d ƒ r” |  j t	 j
 d ƒ ƒ qæ |  j t	 j
 d ƒ ƒ n9 |  j t	 j
 d ƒ ƒ |  j d t d	 ƒ t |  j ƒ ƒ d  S(
   Ni    s   Method defined at line %st   __t   private2R	   t   private1t   methodt   functions   Function defined at line %s(   RB   R+   R	   R=   R8   R   R   t
   startswithR<   R)   R*   (   R   R9   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR>   i   s    #(   R    R!   RB   R>   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR@   e   s   	t   CommentItemc           B  s   e  Z d  „  Z d „  Z RS(   c         C  s,   | j  d ƒ } t j |  | | | | ƒ d  S(   Ns   # (   t   lstripR3   R%   (   R   R9   R8   R5   R:   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR%   y   s    c         C  si   |  j  t j d ƒ ƒ |  j d ƒ } | j t ƒ |  j d | ƒ |  j d t d ƒ t	 |  j
 ƒ ƒ d  S(   Nt   blockcommenti    s   Line %s(   R<   R)   R*   t   fontt	   setItalict   Truet   setFontR+   R	   R=   R8   (   R   RL   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR>   }   s
    (   R    R!   R%   R>   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRI   x   s   	t   CellItemc           B  s   e  Z d  „  Z d „  Z RS(   c         C  s’   | j  d ƒ } | j d ƒ r1 | d j  ƒ  } nD | j d ƒ ru | d } | j d ƒ rf | d  } n  | j ƒ  } n  t j |  | | | | ƒ d  S(   Ns   #% s
   <codecell>i
   s   In[i   s   ]:iÿÿÿÿ(   RJ   RH   t   endswitht   stripR3   R%   (   R   R9   R8   R5   R:   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR%   …   s    
c         C  si   |  j  t j d ƒ ƒ |  j d ƒ } | j t ƒ |  j d | ƒ |  j d t d ƒ t	 |  j
 ƒ ƒ d  S(   Nt   celli    s   Cell starts at line %s(   R<   R)   R*   RL   RM   RN   RO   R+   R	   R=   R8   (   R   RL   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR>      s
    (   R    R!   R%   R>   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRP   „   s   	c         C  sx   g  t  |  j ƒ  ƒ D] } |  j | ƒ ^ q } x4 | D]+ } t | ƒ } | d  k	 r6 | | 7} q6 q6 Wt | d d „  ƒS(   Nt   keyc         S  s   |  j  S(   N(   R8   (   t   child(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   <lambda>   t    (   t   ranget
   childCountRU   t   get_item_childrenR   t   sorted(   t   itemt   indext   childrenRU   t   others(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRZ   —   s    .c         C  s:   |  } x- t  |  ƒ D] } | j | k r, | S| } q Wd  S(   N(   RZ   R8   (   t	   root_itemR8   t   previous_itemR\   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   item_at_lineŸ   s
    c   	      C  sî   | d  k rK x< t |  j ƒ  ƒ D]% \ } \ } } } | | k r Pq q Wn  |  j | ƒ \ } } } y` xF g  t | j ƒ  ƒ D] } | j | ƒ ^ q| D] } t |  d | ƒq• W| j ƒ  j	 | ƒ Wn$ t
 k
 ré t d | d t ƒn Xd  S(   NR\   s   unable to remove tree item: t   file(   R   t   listt   itemst   popRX   RY   RU   t   remove_from_tree_cacheR5   t   removeChildt   RuntimeErrort   printR
   (	   t
   tree_cacheR8   R\   t   _itt   _levelt   _debugt   debugt   _iRU   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRg   §   s    (5t   OutlineExplorerTreeWidgetc           B  sì   e  Z e e e d  „ Z d „  Z e e ƒ d „  ƒ Z d „  Z	 e e ƒ d „  ƒ Z
 e e ƒ d „  ƒ Z e ƒ  d „  ƒ Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C  s   | |  _  | |  _ | |  _ t j |  | ƒ t |  _ i  |  _ i  |  _ i  |  _	 d  |  _ t d ƒ } |  j | ƒ |  j | ƒ |  j t ƒ d  S(   Nt   Outline(   t   show_fullpatht   show_all_filest   show_commentsR   R%   t   Falset   freezet   editor_itemst   editor_tree_cachet
   editor_idsR   t   current_editorR	   t	   set_titlet   setWindowTitlet   setUniformRowHeightsRN   (   R   R5   Rs   Rt   Ru   t   title(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR%   ·   s    								c         C  sÙ   t  |  d t d ƒ d t j d ƒ d |  j ƒ} t  |  d t d ƒ d |  j ƒ} | j |  j ƒ t  |  d t d ƒ d |  j ƒ} | j |  j	 ƒ t  |  d t d	 ƒ d |  j
 ƒ} | j |  j ƒ | | | | g } | S(
   s"   Reimplemented OneColumnTree methodR   s   Go to cursor positionR*   t
   fromcursort	   triggereds   Show absolute patht   toggleds   Show all filess   Show special comments(   R   R	   R)   R*   t   go_to_cursor_positiont   toggle_fullpath_modet
   setCheckedRs   t   toggle_show_all_filesRt   t   toggle_show_commentsRu   (   R   Re   t   fromcursor_actt   fullpath_actt   allfiles_actt   comment_actt   actions(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   get_actions_from_itemsÇ   s    c         C  se   | |  _  |  j | r t j n t j ƒ x6 t |  j ƒ  ƒ D]" } |  j | ƒ j d |  j  ƒ q; Wd  S(   NR.   (	   Rs   t   setTextElideModeR   t   ElideMiddlet
   ElideRightRX   t   topLevelItemCountt   topLevelItemR-   (   R   t   stateR]   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR„   Ø   s    	c         C  s8   x1 |  j  ƒ  D]# } | j | | k	 o, |  j ƒ q Wd S(   s‹   
        show_all_files option is disabled: hide all root items except *item*
        show_all_files option is enabled: do nothing
        N(   t   get_top_level_itemst	   setHiddenRt   (   R   R\   Rl   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   __hide_or_show_root_itemsß   s    c         C  sI   | |  _  |  j d  k	 rE |  j |  j } |  j | } |  j | ƒ n  d  S(   N(   Rt   R{   R   Rz   Rx   t3   _OutlineExplorerTreeWidget__hide_or_show_root_items(   R   R“   t	   editor_idR\   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR†   ç   s
    	c         C  s   | |  _  |  j ƒ  d  S(   N(   Ru   t
   update_all(   R   R“   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR‡   ï   s    	c         C  sk   |  j  d  k	 rg |  j  j ƒ  } |  j |  j  } |  j | } t | | ƒ } |  j | ƒ |  j | ƒ n  d  S(   N(   R{   R   t   get_cursor_line_numberRz   Rx   Rb   t   setCurrentItemt   scrollToItem(   R   R8   R˜   R`   R\   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRƒ   ô   s    c         C  s   |  j  d ƒ t j |  ƒ d S(   s   Reimplemented Qt methodRW   N(   R|   R   t   clear(   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR   þ   s    c         C  sR  | j  ƒ  } | t |  j j ƒ  ƒ k r§ |  j | } |  j sg |  j | ƒ |  j | ƒ |  j | ƒ n  | r&|  j	 ƒ  |  j
 | } |  j | | | ƒ |  j ƒ  q&n t | |  ƒ } | j d |  j ƒ |  j | | ƒ } |  j ƒ  |  j | ƒ |  j | ƒ | |  j | <| |  j
 | <|  j d ƒ | |  j k rE| |  j | <n  | |  _ d S(   s   Bind editor instanceR.   i    N(   t   get_document_idRd   Rz   t   valuesRx   Rw   Rœ   t   root_item_selectedR—   t   save_expanded_stateRy   t   populate_brancht   restore_expanded_stateR#   R-   Rs   t/   _OutlineExplorerTreeWidget__sort_toplevel_itemst   resizeColumnToContentsR{   (   R   t   editort   fnamet   updateR˜   R\   Rk   R`   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   set_current_editor  s0    	

c         C  s[   | j  ƒ  } | t |  j j ƒ  ƒ k rW |  j | } | j | d |  j ƒ|  j ƒ  n  d S(   s0   File was renamed, updating outline explorer treeR.   N(   Rž   Rd   Rz   RŸ   Rx   R/   Rs   R¤   (   R   R¦   t   new_filenameR˜   R`   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   file_renamed"  s
    c         C  sk   |  j  ƒ  xP t |  j j ƒ  ƒ D]9 \ } } |  j | } |  j | } |  j | | | ƒ q  W|  j ƒ  d  S(   N(   R¡   Rd   Rz   Re   Rx   Ry   R¢   R£   (   R   R¦   R˜   R\   Rk   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR™   *  s    
"c         C  s±   | |  j  k r­ |  j | k r* d  |  _ n  |  j  j | ƒ } | t |  j  j ƒ  ƒ k r­ |  j j | ƒ } |  j j | ƒ y |  j |  j	 | ƒ ƒ Wqª t
 k
 r¦ qª Xq­ n  d  S(   N(   Rz   R{   R   Rf   Rd   RŸ   Rx   Ry   t   takeTopLevelItemt   indexOfTopLevelItemRi   (   R   R¦   R˜   R`   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   remove_editor2  s    c         C  s   d „  } |  j  d | ƒ d  S(   Nc         S  s   t  j |  j j ƒ  ƒ S(   N(   R1   R2   R'   t   lower(   R\   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRV   A  RW   RT   (   t   sort_top_level_items(   R   t	   sort_func(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   __sort_toplevel_items@  s    	c         C  sÓ  | d  k r i  } n  xN t | j ƒ  ƒ D]: } | | j ƒ  k r( | | k rb t | d | ƒqb q( q( W| d f g } d  } d  } | j j ƒ  } | j d t ƒ | _	 x't
 | j ƒ  ƒ D]}	 |	 d }
 | j |	 ƒ } | d  k rì d  } n	 | j } | j |
 d
 ƒ \ } } } | d  k rA| d  k	 r¸ t | d |
 ƒq¸ q¸ n  | j ƒ  } | s®| j ƒ  } | d  k r®| j ƒ  } | d  k r«| d  k	 r¸ t | d |
 ƒq¸ q¸ q«q®n  | d  k	 rF| | k rÉqF| | d k rßq¸ qF| | k r| j | | f ƒ qFxB t | ƒ d k rB| | k rB| j d ƒ | d \ } } qWn  | d \ } } | d  k	 rzt | j d ƒ ƒ } n  | d  k rŒ| n | } | rŽ| j ƒ  rÓ|  j rÓ| d  k	 r¸ t | d |
 ƒq¸ q¸ n  | d  k	 r| j | k r| | k r| } | } q¸ qt | d |
 ƒn  | j ƒ  rs| j | j k rXt | j |
 | | ƒ } q‹t | j |
 | | ƒ } qYt | j |
 | | ƒ } nË | d  k	 rû| d  k	 rã| | k rÐ| | k rÐ| } | } q¸ qãt | d |
 ƒn  t | |
 | | ƒ } n^ | d  k	 rD| | k r1| | k r1| } | } q¸ qDt | d |
 ƒn  t | |
 | | ƒ } | j ƒ  d t | j ƒ j  d	 ƒ t | j! ƒ  j d ƒ ƒ t | j d ƒ ƒ f } | | | f | |
 <| } | } q¸ W| S(   NR8   i    t   found_cell_separatorsi   RW   i   iÿÿÿÿs   %s -- %s/%si   (   NNRW   ("   R   Rd   t   keyst   get_line_countRg   t   highlightert   get_outlineexplorer_datat   getRv   t   has_cell_separatorsRX   t
   fold_levelt   is_not_class_nor_functionR   R   t   appendt   lenRf   R   R   t
   is_commentRu   t   def_typet   CELLRP   RI   R3   R?   R@   R>   R=   R8   t   rjustR5   (   R   R¦   R`   Rk   t   _lt	   ancestorsRa   t   previous_levelt   oe_datat   block_nbt   line_nbR6   t   levelt   citemt   clevelt   _dt   not_class_nor_functiont
   class_namet	   func_namet   _itemR5   Rm   t   cnameR:   R\   Ro   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR¢   D  sª    	
		!

c         C  sY   xR t  |  j ƒ  ƒ D]> } |  j | ƒ } | | k rD |  j | ƒ q |  j | ƒ q Wd S(   s?   Root item has been selected: expanding it and collapsing othersN(   RX   R‘   R’   t
   expandItemt   collapseItem(   R   R\   R]   R`   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR    ²  s
    c         C  sD   |  j  d k	 r@ |  j ƒ  |  j |  j  } |  j |  j | ƒ n  d S(   s"   Reimplemented OneColumnTree methodN(   R{   R   t   collapseAllRz   R    Rx   (   R   R˜   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   restore»  s    
c         C  s2   | } x% t  | j ƒ  t ƒ r- | j ƒ  } q	 W| S(   N(   RA   R5   R   (   R   R\   R`   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   get_root_itemÂ  s    c   	      C  s&  d } t  | t ƒ r! | j } n  |  j | ƒ } t |  _ | rj |  j ƒ  j j | j	 | | j
 d ƒ ƒ n |  j ƒ  j j | j	 ƒ t |  _ |  j j ƒ  } x„ t |  j j ƒ  ƒ D]m \ } } | | k r± xN t |  j j ƒ  ƒ D]7 \ } } | | k rß | j ƒ  | k rß | |  _ Pqß qß WPq± q± Wd S(   s   Double-click eventi    N(   RA   R3   R8   RÕ   RN   Rw   R5   t	   edit_gotot   emitR'   R   t   editRv   R{   Rd   Rx   Re   Rz   (	   R   R\   R8   R`   R5   R˜   t   i_itemR¦   t   _id(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt	   activatedÈ  s"    	+	""	c         C  s0   t  | t ƒ r |  j | ƒ n  |  j | ƒ d S(   s   Click eventN(   RA   R#   R    RÛ   (   R   R\   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   clickedÝ  s    N(   R    R!   Rv   RN   R%   R   R   t   boolR„   R—   R†   R‡   Rƒ   R   R©   R«   R™   R®   R¤   R   R¢   R    RÔ   RÕ   RÛ   RÜ   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRq   ¶   s(   		
						n					t   OutlineExplorerWidgetc           B  s•   e  Z d  Z e e e e ƒ Z e e ƒ Z e ƒ  Z d	 e
 e
 e
 d „ Z e e ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(
   s   Class browserc         C  sÈ   t  j |  | ƒ t |  d | d | d | ƒ|  _ t |  t d ƒ d d d |  j ƒ|  _ |  j j t	 ƒ t
 ƒ  } | j t j ƒ x! |  j ƒ  D] } | j | ƒ qŽ Wt | |  j ƒ } |  j | ƒ d  S(   NRs   Rt   Ru   s   Show/hide outline explorerR*   s   outline_explorer_vis.pngR‚   (   R   R%   Rq   R,   R   R	   t   toggle_visibilityt   visibility_actionR…   RN   R   t   setAlignmentR   t	   AlignLeftt   setup_buttonst	   addWidgetR   t	   setLayout(   R   R5   Rs   Rt   Ru   t
   btn_layoutt   btnt   layout(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR%   ê  s     		c         C  sV   |  j  | ƒ |  j j } | d  k	 rR | j ƒ  | j ƒ  | rR |  j j ƒ  qR n  d  S(   N(   t
   setVisibleR,   R{   R   t
   clearFocust   setFocust   outlineexplorer_is_visibleR×   (   R   R“   R{   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRß     s    

c         C  s¢   t  |  d t j d ƒ d t d ƒ d |  j j ƒ} | g } x_ |  j j |  j j |  j j |  j j	 |  j j
 g D]* } | j t  |  ƒ ƒ | d j | ƒ qp W| S(   s9   Setup the buttons of the outline explorer widget toolbar.R*   R€   t   tips   Go to cursor positionR   iÿÿÿÿ(   R   R)   R*   R	   R,   Rƒ   t   collapse_all_actiont   expand_all_actiont   restore_actiont   collapse_selection_actiont   expand_selection_actionR¼   t   setDefaultAction(   R   t   fromcursor_btnt   buttonst   action(    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRã     s    				c         C  sB   | r |  j  | ƒ n  | j d  k	 r> |  j j | | | ƒ n  d  S(   N(   R®   R¶   R   R,   R©   (   R   R¦   R§   R¨   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR©     s    c         C  s   |  j  j | ƒ d  S(   N(   R,   R®   (   R   R¦   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR®   "  s    c         C  sU   t  d |  j j d |  j j d |  j j d |  j j ƒ  d |  j j ƒ  d |  j ƒ  ƒ S(   s1   
        Return outline explorer options
        Rs   Rt   Ru   t   expanded_statet   scrollbar_positiont
   visibility(   t   dictR,   Rs   Rt   Ru   t   get_expanded_statet   get_scrollbar_positiont	   isVisible(   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   get_options%  s    c         C  s   |  j  j ƒ  d  S(   N(   R,   R™   (   R   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR¨   0  s    c         C  s   |  j  j | | ƒ d  S(   N(   R,   R«   (   R   R¦   Rª   (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyR«   3  s    N(   R    R!   R"   R   R=   t   intRÖ   RØ   Rì   R   RN   R%   R   RÝ   Rß   Rã   R©   R®   Rþ   R¨   R«   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyRÞ   ä  s   	
					(/   R"   t
   __future__R    t   os.pathR'   R1   R   t   qtpy.compatR   t   qtpy.QtCoreR   R   R   t   qtpy.QtWidgetsR   R   R   R   t   spyder.config.baseR	   R
   t   spyder.py3compatR   t   spyder.utilsR   R)   t   spyder.utils.qthelpersR   R   R   R   t   spyder.widgets.onecolumntreeR   t   objectR   R#   R3   R?   R@   RI   RP   RZ   Rb   R   Rg   Rq   RÞ   (    (    (    s9   lib/python2.7/site-packages/spyder/widgets/editortools.pyt   <module>   s0   ""		ÿ /