ó
‹²,]c           @   s  d  Z  d d l Z d d l m Z m Z m Z m Z d d l m Z m	 Z	 d d l
 m Z m Z m Z m Z m Z m Z m Z 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 e f d „  ƒ  YZ d „  Z e d k re ƒ  n  d S(   s   Layout dialogsiÿÿÿÿN(   t   QAbstractTableModelt   QModelIndext   QSizet   Qt(   t   from_qvariantt   to_qvariant(	   t   QAbstractItemViewt	   QComboBoxt   QDialogt   QDialogButtonBoxt	   QGroupBoxt   QHBoxLayoutt   QPushButtont
   QTableViewt   QVBoxLayout(   t   _(   t   to_text_stringt   LayoutModelc           B   sq   e  Z d  Z d „  Z d „  Z d „  Z e j d „ Z d „  Z	 e
 ƒ  d „ Z e
 ƒ  d „ Z d „  Z d	 „  Z RS(
   t    c         C   sN   t  t |  ƒ j | ƒ | |  _ | |  _ | |  _ g  |  _ |  j | | ƒ d  S(   N(   t   superR   t   __init__t   _parentt   ordert   activet   _rowst   set_data(   t   selft   parentR   R   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR      s    				c         C   sg   g  |  _  | |  _ | |  _ xE | D]= } | | k rC | t g } n | t g } |  j  j | ƒ q" Wd S(   R   N(   R   R   R   t   Truet   Falset   append(   R   R   R   t   namet   row(    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR   $   s    			c         C   sd   | j  ƒ  s t j S| j ƒ  } | d k rP t j t j t j Bt j Bt j Bƒ St j t j ƒ Sd S(   s   Override Qt methodi    N(   i    (   t   isValidR   t   ItemIsEnabledt   columnt	   ItemFlagst   ItemIsSelectablet   ItemIsUserCheckablet   ItemIsEditable(   R   t   indexR#   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   flags0   s    c         C   sö   | j  ƒ  s9 d | j ƒ  k o3 t |  j ƒ k  n r@ t ƒ  S| j ƒ  } | j ƒ  } |  j | ƒ \ } } | t j k s‹ | t j k r¤ | d k rï t | ƒ SnK | t j	 k rï | d k rÖ | rÌ t j
 St j Sn  | d k rï t | ƒ Sn  t ƒ  S(   s   Override Qt methodi    i   (   R!   R    t   lenR   R   R#   R   t   DisplayRolet   EditRolet   CheckStateRolet   Checkedt	   Unchecked(   R   R(   t   roleR    R#   R   t   state(    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   data;   s     9
c         C   sÄ   | j  ƒ  } |  j  | ƒ \ } } | t j k r{ |  j | | | g ƒ |  j j | ƒ |  j j ƒ  |  j j | | ƒ t	 S| t j
 k rÀ |  j | t | t ƒ | g ƒ |  j j | | ƒ t	 St	 S(   s   Override Qt method(   R    R   R-   t   set_rowR   t   setCurrentIndext   setFocust   dataChangedt   emitR   R,   R   R   (   R   R(   t   valueR0   R    R   R1   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   setDataQ   s    c         C   s   t  |  j ƒ S(   s   Override Qt method(   R*   R   (   R   R(   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   rowCountb   s    c         C   s   d S(   s   Override Qt methodi   (    (   R   R(   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   columnCountf   s    c         C   s(   |  j  g  k r d d g S|  j  | Sd S(   R   N(   R   t   None(   R   t   rownum(    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR    j   s    
c         C   s   | |  j  | <d S(   R   N(   R   (   R   R=   R8   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR3   q   s    (   t   __name__t
   __module__t   __doc__R   R   R)   R   R+   R2   R9   R   R:   R;   R    R3   (    (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR      s   	
				t   LayoutSaveDialogc           B   s    e  Z d  Z d „  Z d „  Z RS(   R   c         C   s‘  t  t |  ƒ j | ƒ | |  _ t |  ƒ |  _ |  j j | ƒ |  j j t ƒ |  j j	 ƒ  t
 t
 j t
 j Bt j |  ƒ |  _ |  j j t
 j ƒ |  _ |  j j t
 j ƒ |  _ |  j j t ƒ t d d ƒ |  _ |  j d ƒ |  j t ƒ |  j |  j ƒ |  j |  j ƒ t ƒ  |  _ |  j j |  j ƒ |  j j |  j ƒ |  j |  j ƒ |  j j j  |  j! ƒ |  j j" j  |  j# ƒ |  j j$ j  |  j% ƒ d  S(   Ni,  id   s   Save layout as(&   R   RA   R   R   R   t	   combo_boxt   addItemst   setEditableR   t   clearEditTextR	   t   Okt   CancelR   t
   Horizontalt
   button_boxt   buttont	   button_okt   button_cancelt
   setEnabledR   R   t   dialog_sizet   setWindowTitlet   setModalt   setMinimumSizet   setFixedSizeR   t   layoutt	   addWidgett	   setLayoutt   acceptedt   connectt   acceptt   rejectedt   closet   editTextChangedt
   check_text(   R   R   R   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR   x   s0    		c         C   s9   t  | ƒ d k r% |  j j t ƒ n |  j j t ƒ d S(   s%   Disable empty layout name possibilityu    N(   R   RK   RM   R   R   (   R   t   text(    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR\   œ   s    (   R>   R?   R@   R   R\   (    (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyRA   v   s   	$t   LayoutSettingsDialogc           B   s5   e  Z d  Z d „  Z d „  Z e d „ Z d „  Z RS(   s   Layout settings dialogc   	         sÓ  t  t ˆ  ƒ j | ƒ | ˆ  _ d  ˆ  _ | ˆ  _ | ˆ  _ | ˆ  _ t	 t
 d ƒ ƒ ˆ  _ t	 t
 d ƒ ƒ ˆ  _ t	 t
 d ƒ ƒ ˆ  _ t t j t j Bt j ˆ  ƒ ˆ  _ t t
 d ƒ ƒ ˆ  _ t ˆ  ƒ ˆ  _ ˆ  j j t j ƒ ˆ  _ ˆ  j j t j ƒ ˆ  _ ˆ  j j t ƒ ˆ  j j t ƒ t d d ƒ ˆ  _ ˆ  j  ˆ  j ƒ ˆ  j! ˆ  j ƒ ˆ  j" d ƒ ˆ  j j# t$ ˆ  j | | ƒ ƒ ˆ  j j% t& j' ƒ ˆ  j j( t& j) ƒ ˆ  j j* ƒ  j+ ƒ  ˆ  j j, ƒ  j+ ƒ  ˆ  j j- t ƒ ˆ  j j. t/ ƒ ˆ  j j0 t j1 ƒ ˆ  j j, ƒ  j2 t ƒ ˆ  j j3 d t ƒ ˆ  j j4 ƒ  ˆ  _ t5 ƒ  } | j6 ˆ  j ƒ | j6 ˆ  j ƒ | j7 ƒ  | j6 ˆ  j ƒ t8 ƒ  } | j6 ˆ  j ƒ | j9 | ƒ ˆ  j j: | ƒ t5 ƒ  } | j6 ˆ  j ƒ | j6 ˆ  j ƒ ˆ  j: | ƒ ˆ  j j; j< ˆ  j= ƒ ˆ  j j> j< ˆ  j? ƒ ˆ  j j@ j< ˆ  jA ƒ ˆ  j j@ j< ‡  f d	 †  ƒ ˆ  j j@ j< ‡  f d
 †  ƒ ˆ  j jB ƒ  jC j< ‡  f d †  ƒ ˆ  j jD j< ‡  f d †  ƒ ˆ  j jB ƒ  jE d d ƒ } ˆ  j jF | ƒ ˆ  j jG ƒ  d  S(   Ns   Move Ups	   Move Downs   Delete Layouts   Layout Display and Orderi,  iÈ   s   Layout Settingsi   c              s   ˆ  j  t ƒ S(   N(   t   move_layoutR   (    (   R   (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   <lambda>è   t    c              s   ˆ  j  t ƒ S(   N(   R_   R   (    (   R   (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR`   é   Ra   c              s   ˆ  j  d  d  ƒ S(   N(   t   selection_changedR<   (    (   R   (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR`   ë   Ra   c              s   ˆ  j  d  d  ƒ S(   N(   Rb   R<   (    (   R   (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR`   í   Ra   i    (H   R   R^   R   R   R<   t   _selection_modelt   namesR   R   R   R   t   button_move_upt   button_move_downt   button_deleteR	   RF   RG   R   RH   RI   R
   t	   group_boxR   t   tableRJ   t	   ok_buttont   cancel_buttont
   setDefaultR   t   setAutoDefaultR   RN   RQ   RR   RO   t   setModelR   t   setSelectionBehaviorR   t
   SelectRowst   setSelectionModet   SingleSelectiont   verticalHeadert   hidet   horizontalHeadert   setAlternatingRowColorst   setShowGridR   t   setHorizontalScrollBarPolicyt   ScrollBarAlwaysOfft   setStretchLastSectiont   setColumnHiddent   selectionModelR   RT   t
   addStretchR   t	   addLayoutRU   RV   RW   RX   RY   RZ   t   clickedt   delete_layoutt   modelR6   t   selectionChangedR(   R4   R5   (	   R   R   Rd   R   R   t   buttons_layoutt   group_layoutRS   R(   (    (   R   s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR   ¦   st    							
		c         C   sh  |  j  |  j |  j } } } t |  j j ƒ  j ƒ  j ƒ  t ƒ } | | k r_ | j | ƒ } n  | d k rd| j	 | ƒ d | | <| | k rž | j	 | ƒ n  | | | |  _  |  _ |  _ |  j j ƒ  j | | ƒ |  j j ƒ  j d d ƒ } |  j j | ƒ |  j j ƒ  |  j d d ƒ t | ƒ d k rd|  j j t ƒ |  j j t ƒ |  j j t ƒ qdn  d S(   R   iÿÿÿÿi    N(   Rd   R   R   Ri   R|   t   currentIndexR2   R   R(   t   removeR<   R   R   R   R4   R5   Rb   R*   Re   t   setDisabledR   Rf   Rg   (   R   Rd   R   R   R   R(   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR€   ô   s(    	
c         C   sæ   |  j  |  j |  j } } } |  j j ƒ  j ƒ  j ƒ  } | } | rQ | d 8} n
 | d 7} | | | | | | <| | <| |  _ |  j j ƒ  j | | ƒ |  j j ƒ  j	 | d ƒ } |  j j
 | ƒ |  j j ƒ  |  j d d ƒ d S(   R   i   i    N(   Rd   R   R   Ri   R|   R…   R    R   R   R(   R4   R5   Rb   R<   (   R   t   upRd   R   R   R    t   row_newR(   (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR_     s    
	c         C   s¿  |  j  j ƒ  } |  j  j ƒ  } | j ƒ  } |  j |  j |  j } } } | j | ƒ d }	 | j | ƒ d }
 |
 | k rÔ | d k rÔ | | } |
 | | <|
 | | j | ƒ <| | k rÑ |
 | | j | ƒ <qÑ qÔ n  |	 rù |
 | k r| j |
 ƒ qn |
 | k r| j	 |
 ƒ n  | |  _ |  j
 j t ƒ |  j j t ƒ | d k r]|  j
 j t ƒ n  | t | ƒ d k r†|  j j t ƒ n  t | ƒ d k r»|  j
 j t ƒ |  j j t ƒ n  d S(   R   i   i    iÿÿÿÿN(   Ri   R   R…   R    R   Rd   R   R(   R   R†   Re   R‡   R   Rf   R   R*   (   R   t	   selectiont   deselectionR   R(   R    R   Rd   R   R1   R   t   old_name(    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyRb   !  s8    

	(   R>   R?   R@   R   R€   R   R_   Rb   (    (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyR^   ¤   s
   	N	c          C   sž   d d l  m }  |  ƒ  } d d d d d g } d d d d d g } d d g } t d | | | ƒ } t d | ƒ } | j ƒ  | j ƒ  t j | j ƒ  ƒ d S(	   s   Run layout test widget testiÿÿÿÿ(   t   qapplicationt   testt   testert   20t   30t   40N(	   t   spyder.utils.qthelpersR   R^   R<   RA   t   showt   syst   exitt   exec_(   R   t   appRd   R   R   t   widget_1t   widget_2(    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyRŽ   I  s    	

t   __main__(   R@   R•   t   qtpy.QtCoreR    R   R   R   t   qtpy.compatR   R   t   qtpy.QtWidgetsR   R   R   R	   R
   R   R   R   R   t   spyder.config.baseR   t   spyder.py3compatR   R   RA   R^   RŽ   R>   (    (    (    s:   lib/python2.7/site-packages/spyder/plugins/layoutdialog.pyt   <module>   s   "@^.¥	