ó
Ò:\c           @  s¾  d  Z  d d l m Z m Z m Z m Z d d l Z d d l m Z m	 Z	 d d l
 m Z m Z m Z m Z m Z m Z d d l m Z m Z m Z m Z d d l m Z 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# d d l$ m% Z% m& Z& d d l' m( Z( d d l) m* Z* d d l+ m, Z, e j Z- e  j. e  j/ e  j0 e  j1 g Z2 d e f d „  ƒ  YZ3 d e f d „  ƒ  YZ4 d „  Z5 e6 d k rºe5 ƒ  n  d S(   u   Conda packages table view.iÿÿÿÿ(   t   divisiont   print_functiont   unicode_literalst   with_statementN(   t   PYQT4t   PYQT5(   t   QEventt   QPointt   QSizet   Qtt   QUrlt   Signal(   t   QColort   QDesktopServicest   QIcont   QPen(   t   QAbstractItemViewt   QHeaderViewt   QItemDelegatet   QMenut
   QTableView(   t   MAC(   t	   constants(   t   get_image_path(   t   to_text_string(   t   add_actionst   create_action(   t   load_style_sheet(   t   MultiColumnSortFilterProxy(   t   CondaPackagesModelt   CustomDelegatec           B  s    e  Z d  Z d „  Z d „  Z RS(   u<   Custom delegate to handle selected/hovered behavior of rows.c   
      C  s"  t  j |  | | | ƒ | j ƒ  } | j ƒ  } | j } | t j t j t j g k rª t	 ƒ  } | j
 d ƒ | j t d ƒ ƒ | j | ƒ | j | j ƒ  | j ƒ  ƒ n  | |  j ƒ  k sÚ | |  j ƒ  k rs|  j ƒ  rst	 ƒ  } | j
 d ƒ | |  j ƒ  k r| j t d ƒ ƒ n | j t d ƒ ƒ | j | ƒ | j | j ƒ  | j ƒ  ƒ | j | j ƒ  | j ƒ  ƒ n  | |  j ƒ  k r|  j ƒ  r| t j g k rt	 ƒ  } | j
 d ƒ | j t d ƒ ƒ | j | ƒ t d d ƒ } t d d ƒ }	 | j | j ƒ  |	 | j ƒ  | ƒ n  d	 S(
   u   Override Qt method.i   u   #dddu   #007041u   #43b02ai
   i    i   i   N(   R   t   paintt   columnt   rowt   rectt   Ct   COL_NAMEt   COL_DESCRIPTIONt   COL_VERSIONR   t   setWidtht   setColorR   t   setPent   drawLinet   topRightt   bottomRightt   current_hover_rowt   current_rowt   has_focus_or_contextt   topLeftt
   bottomLeftt	   COL_STARTR   (
   t   selft   paintert   optiont   indexR    R!   R"   t   pent   dytt   dyb(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR   8   s:    			$		c         C  sH   | j  ƒ  } | t j t j g k r1 t d d ƒ St j |  | | ƒ Sd S(   u   Override Qt method.i    N(   R    R#   t   ACTION_COLUMNSt   COL_PACKAGE_TYPER   R   t   sizeHint(   R3   t   stylet   model_indexR    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR<   c   s    (   t   __name__t
   __module__t   __doc__R   R<   (    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR   5   s   	+t   TableCondaPackagesc           B  sy  e  Z d  Z d Z d Z d Z d Z e e e e e ƒ Z	 e e
 e e
 e e ƒ Z e e
 e ƒ Z e e ƒ Z e ƒ  Z e ƒ  Z d „  Z e d „ 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 d „  Z  d „  Z! d „  Z" d „  Z# e$ j% e d „ Z& e' d „ Z( d „  Z) d „  Z* d „  Z+ e d „ Z, e- d „  ƒ Z. RS(   u   Conda packages table view.i   ix   iZ   c         C  s2  t  t |  ƒ j | ƒ | |  _ d |  _ t j |  _ t |  ƒ |  _	 d |  _ t |  _ d |  _ d |  _ i  |  _ d |  _ t |  _ d |  _ d |  _ t |  _ d |  _ d |  _ |  j t j ƒ |  j t ƒ |  j t j ƒ |  j ƒ  j  ƒ  |  j! t ƒ |  j" t ƒ |  j# |  j	 _# |  j$ |  j	 _$ |  j% |  j	 _& |  j' |  j	 _' |  j( |  j	 ƒ |  j) t ƒ |  j* t ƒ |  j+ t, j- ƒ |  j. ƒ  |  _/ t0 r§|  j/ j1 t2 j3 ƒ nG t4 rîy |  j/ j1 t2 j3 ƒ Wqît5 k
 rê|  j/ j6 t2 j3 ƒ qîXn  |  j/ j7 d ƒ |  j8 t j9 t, j: ƒ |  j; t, j< ƒ |  j= ƒ  d S(   u   Conda packages table view.u    u/   QHeaderView {border: 0px; border-radius: 0px;};N(>   t   superRB   t   __init__t   _parentt
   _searchboxR#   t   ALLt
   _filterboxR   t	   _delegatet   Nonet	   row_countt   Truet   _advanced_modet   _current_hover_rowt   _menut   _palettet   _model_index_clickedt   Falset   validt   column_t   current_indext   pressed_heret   source_modelt   proxy_modelt   setSelectionBehaviorR   t
   SelectRowst   setAlternatingRowColorst   setSelectionModet   NoSelectiont   verticalHeadert   hidet   setSortingEnabledt   setMouseTrackingR.   R-   t   updatet   update_indexR/   t   setItemDelegatet   setShowGridt   setWordWrapt   setHorizontalScrollBarPolicyR	   t   ScrollBarAlwaysOfft   horizontalHeadert   _hheaderR   t   setSectionResizeModeR   t   FixedR   t	   Exceptiont   setResizeModet   setStyleSheett   sortByColumnR$   t   AscendingOrdert   setContextMenuPolicyt   CustomContextMenut   hide_columns(   R3   t   parent(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRD   {   sX    															c         C  s  t  |  ƒ |  _ t |  | | ƒ |  _ |  j j |  j ƒ |  j |  j ƒ | rS | n i  |  _ i  } x% | D] } | | j d ƒ | | <qi W| |  _ |  j j	 t
 ƒ d „  } d „  } |  j ƒ  j d | ƒ |  j ƒ  j d | ƒ |  j ƒ  j j |  j ƒ |  j ƒ  |  j ƒ  |  j ƒ  d S(   u   Setup model content.u   sizec           s`   t  ‡  f d †  t | ƒ j ƒ  j ƒ  Dƒ ƒ } t  ‡  f d †  t | ƒ j ƒ  Dƒ ƒ } | p_ | S(   u   Filter text helper function.c         3  s(   |  ] } | ˆ  t  j j ƒ  k Vq d  S(   N(   R#   R$   t   lower(   t   .0t   t(   R!   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pys	   <genexpr>Ê   s   c         3  s(   |  ] } | ˆ  t  j j ƒ  k Vq d  S(   N(   R#   R%   Rv   (   Rw   Rx   (   R!   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pys	   <genexpr>Î   s   (   t   allR   Rv   t   split(   R!   t   textt   statust   in_namet   in_desc(    (   R!   sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   filter_textÇ   s    c         S  sH   t  |  t j ƒ t  | ƒ k } t  |  t j ƒ t  | ƒ k } | pG | S(   u   Filter status helper function.(   R   R#   t
   COL_STATUSt
   COL_ACTION(   R!   R{   R|   t   test1t   test2(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   filter_statusÓ   s    u   text-searchu   status-searchN(   R   RX   R   RW   t   setSourceModelt   setModelt   metadata_linkst   gett   _packages_sizest   setDynamicSortFilterRL   t   modelt   add_filter_functiont   verticalScrollBart   valueChangedt   connectt   resize_rowsRt   t   refresh_actions(   R3   t   packagest   dataR‡   t   packages_sizest   nameR   R„   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   setup_model¶   s$    			

c         C  s…   d } |  j  ƒ  } d } xf | | k  r€ |  j | ƒ } |  j | ƒ |  j | ƒ } |  j | | | ƒ | |  j | ƒ | 7} q Wd S(   u   Resize rows to fit the content.i
   i    N(   t   heightt   rowAtt   resizeRowToContentst	   rowHeightt   setRowHeight(   R3   t   delta_yR—   t   yR!   t
   row_height(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR   ã   s    c         C  s‰   x t  j D] } |  j | ƒ q
 Wt } |  j rW t  j } | j t  j ƒ | | 7} n | t  j g 7} x | D] } |  j | ƒ qn Wd S(   u   Hide unused columns.N(	   R#   t   COLUMNSt
   showColumnt   HIDE_COLUMNSRM   R:   t   removeR   t
   hideColumn(   R3   t   colR_   t   columns(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRt   ï   s    	
c         C  sß  |  j  } |  j } | t j g k rr d j t t j ƒ t t j ƒ t t j ƒ t t j	 ƒ t t j
 ƒ g ƒ } n8| t j g k rÆ d j t t j ƒ t t j ƒ t t j	 ƒ t t j
 ƒ g ƒ } nä | t j g k rd j t t j ƒ t t j
 ƒ g ƒ } n¨ | t j	 g k r>d j t t j	 ƒ t t j
 ƒ g ƒ } nl | t j g k ržd j t t j ƒ t t j ƒ t t j ƒ t t j ƒ t t j ƒ g ƒ } n t | ƒ } |  j d k	 rÙ|  j j | | ƒ |  j ƒ  n  |  j ƒ  j ƒ  } | d k rt d ƒ } n@ | d k r!t d ƒ } n% | d k rFt | ƒ t d ƒ } n  | d k rn| t d ƒ j | ƒ } n  d } |  j rÂ|  j j ƒ  } | rÂ| d k r¤d	 n d } d
 j | | ƒ } qÂn  |  j j | | d d ƒ d S(   u   Trigger the filter.u   -i    u   0 packages available i   u   1 package available u    packages available u    u   matching "{0}"u   su   {0} package{1} selectedN(   RH   RF   R#   RG   t   joinR   t	   INSTALLEDt
   UPGRADABLEt   NOT_INSTALLEDt   DOWNGRADABLEt   MIXGRADABLEt   SELECTEDt   ACTION_INSTALLt   ACTION_REMOVEt   ACTION_UPGRADEt   ACTION_DOWNGRADEt   ACTION_UPDATERX   RJ   t
   set_filterR   R^   t   countt   _t   formatRW   t   get_action_countt   sig_status_updatedt   emit(   R3   t   groupR{   R³   t
   count_textt   selected_textt   action_countt   plural(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   filter_changedÿ   sf    			c         C  s#   t  | ƒ } | |  _ |  j ƒ  d S(   u   Update the search string text.N(   R   RF   R¾   (   R3   R{   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   search_string_changedL  s    	c         C  s#   t  j j | ƒ |  _ |  j ƒ  d S(   u!   Update the type string selection.N(   R#   t   COMBOBOX_VALUESRˆ   RH   R¾   (   R3   R{   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   filter_status_changedR  s    c         C  sJ  |  j  ƒ  } d } d } |  j r0 t j g } n t j t j t j t j g } |  j t j	 | ƒ |  j t j
 |  j ƒ |  j t j |  j ƒ |  j t j |  j ƒ | | |  j |  j |  j |  j t | ƒ |  j | d } |  j t j | ƒ |  j t j | ƒ x! | D] } |  j | |  j ƒ qWt j |  | ƒ |  j ƒ  d S(   u   Override Qt method.i   i    i
   N(   t   widthRM   R#   R   t   COL_UPGRADEt   COL_INSTALLt
   COL_REMOVEt   COL_DOWNGRADEt   setColumnWidthR2   R;   t
   WIDTH_TYPER$   t
   WIDTH_NAMER&   t   WIDTH_VERSIONt   WIDTH_ACTIONSt   lenR%   t   COL_ENDR   t   resizeEventR   (   R3   t   eventt   wt   width_startt	   width_endt   action_colst   w_newR¤   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRÎ   W  s"    	?c         C  sŠ   |  j  ƒ  } | j ƒ  } |  j r† xU t | d | d ƒ D]< } x3 t j D]( } |  j j | | ƒ } |  j | ƒ qI Wq9 W|  j ƒ  n  d S(   u3   Update range of visible rows close to selected row.i2   N(	   t   currentIndexR!   RX   t   rangeR#   RŸ   R6   Rb   R   (   R3   RU   R!   t   rt   coR6   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   update_visible_rowsu  s    	c         C  sL   |  j  r( |  j  j ƒ  r( |  j ƒ  j ƒ  S|  j ƒ  rD |  j ƒ  j ƒ  Sd Sd S(   u"   Return the currently selected row.iÿÿÿÿN(   RO   t	   isVisibleRÕ   R!   t   hasFocus(   R3   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR.     s
    c         C  s   |  j  S(   u!   Return the currently hovered row.(   RN   (   R3   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR-   Š  s    c         C  s"   |  j  ƒ  p! |  j o! |  j j ƒ  S(   u;   Return if the table has focus of if the context menu is on.(   RÛ   RO   RÚ   (   R3   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR/   Ž  s    c         C  s>   t  t |  ƒ j | ƒ | j ƒ  } |  j | j ƒ  ƒ |  _ d S(   u   Override Qt method.N(   RC   RB   t   mouseMoveEventt   posR˜   R   RN   (   R3   RÏ   RÝ   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRÜ   ’  s    c         C  s-   t  t |  ƒ j | ƒ d |  _ |  j ƒ  d S(   u   Override Qt method.N(   RC   RB   t
   leaveEventRJ   RN   t   repaint(   R3   RÏ   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRÞ   ˜  s    	c   	      C  s«  |  j  ƒ  } | j ƒ  } |  j ƒ  j ƒ  } t rk| t j k rk |  j ƒ  |  j |  j	 ƒ  j
 d d ƒ ƒ qk| t j k rª |  j ƒ  |  j |  j	 ƒ  j
 | d d ƒ ƒ qk| t j k r| j ƒ  d d k rß | j ƒ  d n d } |  j |  j	 ƒ  j
 | d ƒ ƒ qk| t j k rk| j ƒ  d | k  r<| j ƒ  d n | d } |  j |  j	 ƒ  j
 | d ƒ ƒ qkn  | t j t j g k r´|  j |  j j
 | j ƒ  t j ƒ ƒ t |  _ né | t j g k r*| j ƒ  d } |  j sõ| |  j j ƒ  k r|  j j ƒ  q|  j j
 | d ƒ } |  j | ƒ ns | t j g k r| j ƒ  d } | d k  rh|  j j ƒ  q|  j j
 | d ƒ } |  j | ƒ n t j |  | ƒ |  j ƒ  d S(   u   Override Qt method.i    i   N(    RÕ   t   keyR^   R³   R   R	   t   Key_Homet   scrollToTopt   setCurrentIndexR‹   R6   t   Key_Endt   scrollToBottomt   Key_UpR!   t   Key_Downt	   Key_Entert
   Key_ReturnRX   R#   R   RL   RV   t   Key_Tabt   rowCountt   sig_next_focusR¸   t   Key_Backtabt   sig_previous_focusR   t   keyPressEventRÙ   (	   R3   RÏ   R6   Rà   t   rowst   previoust   next_t   new_rowt	   new_index(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRï   ž  sD    
"
&,"0%c         C  s½   t  j |  | ƒ | j ƒ  } |  j ƒ  } | t j t j g k rY |  j rY |  j | ƒ nM | t j	 g k r¦ |  j
 |  j j | j ƒ  t j ƒ ƒ |  j | d t ƒn  t |  _ |  j ƒ  d S(   u   Override Qt method.t   right_clickN(   R   t   keyReleaseEventRà   RÕ   R	   Rè   Ré   RV   t   context_menu_requestedt   Key_MenuRã   RX   R6   R!   R#   R   RL   RR   RÙ   (   R3   RÏ   Rà   R6   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRö   Ë  s    !	c         C  s  t  j |  | ƒ t | j ƒ  | j ƒ  ƒ } |  j | ƒ } |  j } |  j d k sa |  j d k re d S|  j j	 | ƒ } | j
 ƒ  } | d k r“ d S| j ƒ  } |  j j
 | ƒ } t |  j j ƒ  ƒ }	 t |  j j ƒ  ƒ }
 | t j } | t j } | j ƒ  t j k } | j ƒ  t j k } | t j k r¼| sI| rY| t j k rY|  j | ƒ q| r| t j k r| t j k rš|	 rš|  j | t j ƒ q¹| r¹|  j | t j ƒ q¹qnH | t j k r| j | ƒ r| r|
 r|	 r|  j | t j ƒ n  |  j ƒ  d S(   u   Override Qt method.Niÿÿÿÿ(   R   t   mousePressEventR   t   xR   t   indexAtRW   RX   RJ   t   mapToSourceR!   R    t   boolt   count_remove_actionst   count_install_actionsR#   R   R€   t   buttonR	   t   RightButtont
   LeftButtonR©   R÷   t   ACTION_NONEt   set_action_statusR­   R&   t   is_upgradableR±   RÙ   (   R3   RÏ   RÝ   R6   R‹   R>   R!   R    t   row_datat   remove_actionst   install_actionst   actionR|   Rõ   t
   left_click(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRù   Ú  s<    	c         C  s   |  j  ƒ  d S(   u   Override Qt method.N(   RÙ   (   R3   RÏ   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   mouseReleaseEvent  s    c         C  s.   |  j  j | | | ƒ |  j ƒ  |  j ƒ  d S(   u   Set model index action status.N(   RW   R  R¾   R‘   (   R3   R>   R|   t   version(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR    s    
c   (        s
  ˆ j  d k r d St ˆ ƒ ˆ _ | } ˆ j ƒ  } ˆ j  j | ƒ ‰ ˆ j j ˆ j ƒ  ƒ } ˆ j ƒ  } | t	 j
 } ˆ j j | ƒ } ˆ j j | ƒ ‰  | t	 j }	 | t	 j }
 | t	 j } t ˆ j j ƒ  ƒ } t ˆ j j ƒ  ƒ } t ˆ j j ƒ  ƒ } | t	 j g k rÕ| rÕˆ j j ˆ ƒ } ˆ j j ˆ ƒ } ˆ j j ˆ ƒ } ˆ j j ˆ ƒ } g  } t ˆ t d ƒ d ‡  ‡ ‡ f d †  ƒ} t ˆ t d ƒ d ‡ ‡ f d †  ƒ} t ˆ t d ƒ d ‡ ‡ f d	 †  ƒ} t ˆ t d
 ƒ d ‡  ‡ ‡ f d †  ƒ} g  } xgt | ƒ D]Y} ˆ t	 j | ‡ f d † } | ˆ  k rªt ˆ | d t ƒ  d | ˆ t	 j | ƒ ƒ} | s@| j t ƒ | j  t ƒ | j! t ƒ q@n– | ˆ  k r@| | k oÎ| j" | ƒ ˆ  | k oæ| j" ˆ  ƒ k røt	 j# } n	 t	 j$ } | rt	 j } n  t ˆ | d t ƒ  d | ˆ | | ƒ ƒ} n  |	 | k ri| j t ƒ | j  t ƒ n  | j% | ƒ qWt d ˆ ƒ } t& | | ƒ | | | | g } | d | g 7} x( | | D] } | rÃ| j' t ƒ qÃqÃW| t	 j( k rŸ| j) t* ƒ | j) | ƒ | j) | ƒ | j) | ƒ | rI| j! t ƒ | j! t ƒ nF | rl| j! t ƒ | j! t ƒ n# | r| j! t ƒ | j! t ƒ n  | j! t* ƒ nb| t	 j k rò| j) t ƒ | j) t* ƒ | j  t ƒ | j) t* ƒ | j) t* ƒ n| t	 j+ k rE| j) t ƒ | j) t* ƒ | j) t* ƒ | j) t* ƒ | j  t ƒ n¼ | t	 j, k r˜| j) t ƒ | j) t* ƒ | j) t* ƒ | j  t ƒ | j) t* ƒ ni | t	 j# t	 j$ g k r| j) t ƒ | j) t* ƒ | j) t* ƒ | j  t* ƒ | j) t* ƒ | j) t* ƒ n  |
 t	 j- k r-| j) t* ƒ | j) t* ƒ n  | t	 j. k rs| j) t* ƒ | j) t* ƒ | j) t* ƒ | j) t* ƒ n  x5 | | D]) } | rš| j' t* ƒ n  | j! t ƒ q~W| j) t/ | ƒ d k oÎ| oÎ| ƒ n™| rn	| t	 j0 } ˆ j1 j2 | i  ƒ }  |  j2 d d ƒ ‰ |  j2 d d ƒ ‰ |  j2 d d ƒ ‰ |  j2 d d ƒ ‰ t t3 d ƒ ƒ }! t t3 d ƒ ƒ }" t t3 d ƒ ƒ }# d ˆ k rœt t3 d ƒ ƒ }$ n* d ˆ k r½t t3 d ƒ ƒ }$ n	 t ƒ  }$ d | j4 ƒ  k rád ‰ n! d | j4 ƒ  k rüd ‰ n d ‰ g  } | d k r_| j% t ˆ t d  | ƒ d t ƒ  d ‡ ‡ f d! †  ƒƒ | j% d ƒ n  ˆ d k r¢| j% t ˆ t d" ƒ d |! d ‡ ‡ f d# †  ƒƒ n  ˆ d k rå| j% t ˆ t d$ ƒ d |" d ‡ ‡ f d% †  ƒƒ n  ˆ d k r(	| j% t ˆ t d& ƒ d |# d ‡ ‡ f d' †  ƒƒ n  ˆ d k rn	| j% t ˆ t d( ƒ d |$ d ‡ ‡ f d) †  ƒƒ qn	n  | r
t/ | ƒ d k r
t& ˆ j | ƒ | j5 ƒ  t6 j7 k rØ	ˆ j8 | ƒ }% ˆ j9 ƒ  j: |% j; ƒ  ƒ }& n0 t< | j= ƒ  | j> ƒ  ƒ }' ˆ j9 ƒ  j: |' ƒ }& ˆ j j? |& ƒ n  d S(*   u   Custom context menu.Nu   Unmarkt	   triggeredc             s   ˆ j  ˆ t j ˆ  ƒ S(   N(   R  R#   R  (    (   t   current_versionR>   R3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   <lambda>4  s   u   Mark for installationt   toggledc             s   ˆ j  ˆ  t j ƒ S(   N(   R  R#   R­   (    (   R>   R3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  :  s   u   Mark for updatec             s   ˆ j  ˆ  t j d  ƒ S(   N(   R  R#   R±   RJ   (    (   R>   R3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  @  s   u   Mark for removalc             s   ˆ j  ˆ t j ˆ  ƒ S(   N(   R  R#   R®   (    (   R  R>   R3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  F  s   c           s   ‡  ‡ ‡ ‡ f d †  S(   Nc             s   ˆ j  ˆ d ˆ  d ˆ ƒS(   NR|   R  (   R  (    (   R	  R>   R3   R  (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  R  s   (    (   R>   R	  R  (   R3   (   R	  R>   R  sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   triggerM  s    t   iconu&   Mark for specific version installationi   u   pypiu    u   homeu   devu   docsu
   python.pngu   home.pngu   conda_docs.pngu   gitu   conda_github.pngu	   bitbucketu   conda_bitbucket.pngu   mitu"   http://opensource.org/licenses/MITu   bsdu+   http://opensource.org/licenses/BSD-3-Clauseu	   License: c             s   ˆ j  ˆ  ƒ S(   N(   t   open_url(    (   t   licR3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  ñ  t    u   Python Package Indexc             s   ˆ j  ˆ  ƒ S(   N(   R  (    (   t   pypiR3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  ü  R  u   Homepagec             s   ˆ j  ˆ  ƒ S(   N(   R  (    (   t   homeR3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR    R  u   Documentationc             s   ˆ j  ˆ  ƒ S(   N(   R  (    (   t   docsR3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR    R  u   Developmentc             s   ˆ j  ˆ  ƒ S(   N(   R  (    (   t   devR3   (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR    R  (@   RX   RJ   R   RO   RÕ   Rü   RW   R!   R    R#   R$   t   get_package_versionst   get_package_versiont   COL_ACTION_VERSIONR€   R;   Rý   Rþ   Rÿ   t   count_update_actionsR   t   is_installablet   is_removableR  t   action_statusR   R´   t   reversedR­   R   t   setCheckableRL   t
   setCheckedt   setDisabledR6   R¯   R°   t   appendR   t   blockSignalsR  t
   setEnabledRR   R®   R±   R©   t   PIP_PACKAGERÌ   t   COL_LICENSER‡   Rˆ   R   Rv   t   typeR   t
   KeyReleaset
   visualRectt   viewportt   mapToGlobalR,   R   Rú   R   t   popup((   R3   RÏ   Rõ   R
  R6   R  R    R•   t   versionst   action_versiont   package_statust   package_typeR  R  t   update_actionsR  R  R  R   t   actionst   action_unmarkt   action_installt   action_updatet   action_removet   version_actionsR  R  t   version_actiont   upgrade_or_downgrade_actiont   install_versions_menut   act   license_t   metadatat   q_pypit   q_homet   q_docst   q_devR"   t
   global_posRÝ   (    (   R  R  R  R  R  R>   R  R3   sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR÷     s”   								c         C  s   |  j  r |  j  j ƒ  Sd S(   u"   Return currently selected actions.N(   RW   t   get_actions(   R3   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRF  '  s    	c         C  sT   |  j  ƒ  } |  j r9 |  j j ƒ  |  j ƒ  |  j ƒ  n  |  j ƒ  |  j | ƒ d S(   u   Clear selected actions.N(   RÕ   RW   t   clear_actionsR‘   R¾   t   setFocusRã   (   R3   R6   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRG  ,  s    	

c         C  s{   |  j  rw |  j  j ƒ  } d } xC | D]; } | | } x( | D]  } | | } | t | ƒ 7} q< Wq% W|  j j | ƒ n  d S(   u!   Refresh package selected actions.i    N(   RW   RF  RÌ   t   sig_actions_updatedR¸   (   R3   t   actions_per_package_typet   number_of_actionst   type_R5  Rà   R“   (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR‘   6  s    	

c         C  s8   | d k r t ƒ  |  _ n	 | |  _ |  j |  j ƒ d S(   u   Update custom CSS style sheet.N(   RJ   R   t   style_sheetRo   (   R3   RM  (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   update_style_sheetB  s    	c         C  s    |  r t  j t |  ƒ ƒ n  d S(   ud   
        Open link from action in default operating system browser.

        ADD TRACKING!.
        N(   R   t   openUrlR
   (   t   url(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyR  J  s    (/   R?   R@   RA   RÈ   RÉ   RË   RÊ   R   t   objectR·   t   strt   intt   sig_conda_action_requestedt   sig_pip_action_requestedRI  Rì   Rî   RD   RJ   R–   R   Rt   R¾   R¿   RÁ   RÎ   RÙ   R.   R-   R/   RÜ   RÞ   Rï   Rö   Rù   R  R#   R  R  RR   R÷   RF  RG  R‘   RN  t   staticmethodR  (    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyRB   l   sJ   			;-			M											-		-	ÿ 		
	c          C  s=   d d l  m }  |  ƒ  } t d ƒ } | j ƒ  | j ƒ  d S(   u   Run local test.iÿÿÿÿ(   t   qapplicationN(   t"   anaconda_navigator.utils.qthelpersRW  RB   RJ   t   showt   exec_(   RW  t   appt   widget(    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt
   local_testV  s
    	
u   __main__(7   RA   t
   __future__R    R   R   R   t   gettextt   qtpyR   R   t   qtpy.QtCoreR   R   R   R	   R
   R   t
   qtpy.QtGuiR   R   R   R   t   qtpy.QtWidgetsR   R   R   R   R   t   anaconda_navigator.configR   t   anaconda_navigator.utilsR   R#   R   t"   anaconda_navigator.utils.py3compatR   RX  R   R   t   anaconda_navigator.utils.stylesR   t)   anaconda_navigator.widgets.manager.filterR   t(   anaconda_navigator.widgets.manager.modelR   R´   R€   t   COL_URLR)  R  R¡   R   RB   R]  R?   (    (    (    sG   lib/python2.7/site-packages/anaconda_navigator/widgets/manager/table.pyt   <module>   s4   "."(	7ÿ ÿ ì	
